Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
const colors = theme => ({
blue: css`
border-color: ${blue};
`,
'light-blue': css`
border-color: ${lightBlue};
`,
green: css`
border-color: ${green};
`,
orange: css`
border-color: ${orange};
`,
red: css`
border-color: ${red};
`,
yellow: css`
border-color: ${theme === 'dark' ? darkYellow : lightYellow};
`,
white: css`
border-color: ${white};
`,
});
export default ({ color, theme }) => css`
${textColor[theme]};
${colors(theme)[color]};
display: block;
padding: 10px;
text-align: center;
`;
Смена темы на данный момент является базовой функциональностью не только вебсайтов (твиттер, ютуб), но и различных приложений, например, вы наверняка используйте темную тему в своем VS Code. Про % ничего сказать не могу, но уверен, что смена темы — популярная фича.
На работе, CSS UI-Kit выполнен в Emotion
Наверное, в первую очередь надо уменьшить число тем, так как наличие 100500 тем, если речь идет о вебсайте, по моему мнению не обоснованно.
Вместо defaultTo можно просто передать тему по умолчанию в createContext()
Использование Context API в React для создания глобальной темы приложения