Использование Chroma Luminance с Styled-компонентами - PullRequest
0 голосов
/ 23 сентября 2019

Я использую Chroma.js для динамического изменения цвета текста в зависимости от фона div.Стилизация выполняется с помощью стилевых компонентов, и я не могу правильно настроить яркость, чтобы светлый текст появлялся на темном фоне.

const DraggableColorBox = SortableElement(props => {
  const { color, name, handleDelete } = props
  return (
    <DraggableWrapper
      style={{ backgroundColor: color }}
    >
      <BoxContent color={color}>
        <span>{name}</span>
        <DeleteOutlinedIcon onClick={handleDelete} />
      </BoxContent>
    </DraggableWrapper>
  )
})

export default DraggableColorBox;

Вот стили для указанного компонента

export const BoxContent = styled.div`
     color: ${props => chroma(props.color).luminance() <= 0.8
       ? 'rgba(255, 255, 255, 0.8)'
       : 'rgba(0, 0, 0, 0.6)'};
   `

Я получаю сообщение об ошибке «Объект (...) не является функцией».

Iтакже попытался стилизовать его с помощью следующего:

${({ color }) => color && css`
      color: ${chroma(color).luminance() <= 0.8
      ? 'rgba(255, 255, 255, 0.8)'
      : 'rgba(0, 0, 0, 0.6)'}
  `}

Это не сработало.Я либо не понимаю, как работают стилевые компоненты, либо мне что-то не хватает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...