Как я могу настроить цвет флажка в material-ui

Я использую material-ui в своем проекте, и у меня есть флажок в div с черным фоном . Но это выглядит не очень хорошо, потому что флажок тоже черный. Как я могу изменить цвет флажка с черного на другой цвет?


person kellyxiepei    schedule 26.12.2016    source источник


Ответы (11)


Вам нужно использовать iconStyle, но поскольку значок флажка является изображением SVG, вам нужно установить цвет, используя fill вместо color:

https://jsfiddle.net/27Lmaz48/1/

<Checkbox label='My checkbox' 
  labelStyle={{color: 'white'}}
  iconStyle={{fill: 'white'}}
/>
person Jeff McCloud    schedule 27.12.2016
comment
Можете ли вы использовать шестнадцатеричный цвет вместо именованного цвета? - person airowe; 24.01.2018
comment
Если есть что-то, в чем я могу обвинить material-ui, так это в том, что у них нет примеров на их веб-сайте .. Он полон рабочих примеров, но они никогда не показывают исходный код .. - person Arthur Attout; 06.03.2018
comment
какую версию material-ui используете? - person Kushal Jain; 28.06.2018
comment
Я думаю, что этот ответ устарел для Material UI 4.11.3 - person Thibault Walterspieler; 10.05.2021

Вот как вы это делаете:

 <FormControlLabel  
                control={
                  <Checkbox
                    checked={cryon}
                    onChange={this.handleChange('cryon')}
                    style ={{
                      color: "#00e676",
                    }}
                    value="cryon"
                  />
                }
                label={<Typography variant="h6" style={{ color: '#2979ff' }}>Work</Typography>}
              />

введите описание изображения здесь

person Hitesh Sahu    schedule 11.10.2018
comment
Мне нравится это решение, так как оно простое в применении и влияет как на отмеченные, так и на неотмеченные цвета. Работает с material-ui 4.8.0 - person Christiaan Westerbeek; 03.01.2020

Это старый вопрос, но для тех, кто использует материал 1.2.

IconStyle у меня не работает.

Однако я добился этого, перезаписав существующую тему и перенеся компонент «Флажок» в новую.

import { withStyles } from '@material-ui/core/styles';
import Checkbox from '@material-ui/core/Checkbox';



const checkBoxStyles = theme => ({
    root: {
      '&$checked': {
        color: '#3D70B2',
      },
    },
    checked: {},
   })

const CustomCheckbox = withStyles(checkBoxStyles)(Checkbox);

Теперь вы можете использовать компонент CustomCheckbox в функции рендеринга.

И когда он установлен, цвет должен быть тем, который вы назначили.

пример

person molly gu    schedule 27.06.2018

Для меня это решается добавлением root и проверенных классов

const styles = () => ({
  root: {
    "&$checked": {
      color: "rgba(0, 0, 0, 0.54)"
    }
  },
  checked: {}
})

и передав его внутри классов флажка

<Checkbox
          checked={checked}
          classes={{
            root: classes.root,
            checked: classes.checked
          }}
          onChange={handleCheckBox}
        />

надеюсь, это поможет другим

person Ahmed Khan    schedule 05.03.2020

Может быть два подхода.

  1. "местный"

CheckBox имеет реквизиты labelStyle и iconStyle. Полагаю, вы можете начать с их настройки:

<Checkbox
  label="Custom icon"
  labelStyle={{color: 'white'}}
  iconStyle={{color: 'white'}}
/>

Я не уверен, что этого достаточно, так что, возможно, вам нужно поиграть с другим "стилем" реквизит флажка. Оформить заказ на все, что имеет "стиль" в названии.

  1. Создать тему

вы можете установить некоторые настройки темы, которые будут влиять только на флажок:

флажок настройки темы

вы можете использовать storybook-addon-material-ui demo page, чтобы создать свою тему и загрузить ее.

person Oleg Pro    schedule 26.12.2016
comment
Спасибо @Oleg. Я пробовал inputStyle, iconStyle, labelStyle и style. labelStyle не меняет цвет текста метки, но ни один из них не меняет цвет флажка. Вот тестовый jsfiddle. Я думаю, что «локальное» решение - это то, что мне нужно, потому что я хочу, чтобы другие мои флажки использовали стиль по умолчанию. - person kellyxiepei; 27.12.2016
comment
Привет, Олег, спасибо тебе за это. Я искал по всему Интернету свойства каждого элемента в MaterialUI, чтобы разработать свои темы, и, похоже, не нашел полного документа. На веб-сайте material ui этого нет. Я собрал несколько кнопок, переключателей и т. Д. Из разных мест. Есть ли место, где я могу получить полный список свойств для всех элементов, включая то, как настраивать пользовательские? Спасибо - person LOTUSMS; 22.12.2017

Для меня мне просто нужно было изменить флажок заголовка таблицы, это сработало для меня

.thsvg svg{
  fill: white !important;
}


<TableHeader
   className="thsvg"
    displaySelectAll={true}
    adjustForCheckbox={true}
    enableSelectAll={true}>
  <TableRow>     
    <TableHeaderColumn>Name</TableHeaderColumn>
  </TableRow>
</TableHeader>
person user8682962    schedule 27.09.2017

checkBox имеет атрибут с именем color и может иметь значение по умолчанию, основное или дополнительное, например:

 <Checkbox
   onChange={doSth}
   value="checkedIncomplete"
   color="primary"
  />

вы можете изменить основной и вторичный цвета простым способом, написав их классы Css, которые для первичного: .MuiCheckbox-colorPrimary, а для вторичного: .MuiCheckbox-colorSecondary

так что вы можете редактировать в Css: .MuiCheckbox-colorPrimary { color : 'yourColor'}

person Shayan Moghadam    schedule 14.12.2019

Вы можете использовать тему пользовательского интерфейса материала.

const theme = createMuiTheme({
  overrides: {
    MuiCheckbox: {
      colorSecondary: {
        color: '#custom color',
        '&$checked': {
          color: '#custom color',
        },
      },
    },
  },
});

взято отсюда

person Dennis Gloss    schedule 22.04.2021

Это сработало для меня на material-ui 4.1. Определите свойство color в параметре value = "primary" в Checkbox

<Checkbox color="primary"...>

Перезаписать стиль интерфейса материала по основному цвету. Добавьте эту запись в файл css, который импортируется в код javascript, который отображает Checkbox.

.MuiCheckbox-colorPrimary.Mui-checked {
color: #e82997 !important;
}
person Binita Bharati    schedule 13.10.2020

Вы можете назначить настраиваемый значок как для установленного, так и для снятого состояния, а затем стилизовать значки вашего флажка, например: <Checkbox checkedIcon={<CustomIcon style={{color:'red'}}/>} icon={<CustomIcon/>} inputProps={{ 'aria-label': 'decorative checkbox' }} {...props} />

person Sarang Sami    schedule 13.12.2020

Если кто-то придет позже за ответом,
если labelStyle и iconStyle вам не подходят,
и вы захотите изменить цвет позже, попробуйте следующее:

const useStyles = makeStyles<Theme, {color: string}, "root">({
    root: {
        color: (props: {color: string}) => props.color,
    },
})

export default function ColoredCheckbox() {
     const styles = useStyles({color: "#whatevercoloryouwant"})
     return <Checkbox color="default" className={styles.root} />
}
person Vlad - Alexandru Iancu    schedule 23.03.2021