Как настроить форму материала-индикатор вкладки пользовательского интерфейса

#javascript #reactjs #material-ui

Вопрос:

Я пытаюсь превратить индикатор вкладки material-ui в треугольник. На данный момент я могу манипулировать индикатором только прямоугольниками/квадратами разного размера. Можно ли превратить его в стрелку или перевернутый треугольник?

Вот что у меня есть до сих пор:
красная площадь-это индикатор

Вот код для индикатора:

 TabIndicatorProps={{
                style: {
                  alignSelf: "flex-start",
                  height: "15px",
                  width: "15px",
                  transform: "translateY(-100px)",
                  backgroundImage: ArrowDropDownIcon,
                  backgroundColor: "#CC0202",
                  marginLeft: "6px",
                },
              }}
 

Ответ №1:

Вместо использования значка вы можете создать треугольник с помощью CSS, и я думаю, что это даст тот же результат, который вы ищете:

 <Tabs
  TabIndicatorProps={{
    style: {
      width: 0,
      height: 0,
      borderLeft: "10px solid transparent",
      borderRight: "10px solid transparent",
      borderTop: "10px solid #f00",
      transform: "translateY(-100px)",
      alignSelf: "flex-start",
      marginLeft: "5px",
    },
  }}
  indicatorColor='primary.main'
>
 

Пример индикатора с треугольным дизайном


Редактировать:

Есть также другой способ сделать это, который, я думаю, лучше, так как он устраняет зависимость от границ и пикселей, и у вас больше свободы с вашими формами:

 TabIndicatorProps={{
  style: {
    top: theme.spacing(2),
    height: 10, 
    width: 12,
    marginLeft: theme.spacing(1),
    backgroundColor: "#be0000",
    clipPath: 'polygon(0 0, 100% 0, 50% 100%)',
  },
}}
 

Кроме того, поскольку в этой версии используется путь к клипу, из-за чего цвет фона применяется только к фигуре, нет необходимости устанавливать indicatorColor цвет фона.

Я также заменил часть выполняемого форматирования пикселями, чтобы вместо этого использовать theme.spacing. Это должно помочь ему быть более отзывчивым.

Индикатор вкладки с пользовательской формой V2