假设我们有一个使用react-bootstrap开发的反应式Web应用程序。此应用程序必须使用颜色选择器进行自定义。用户选择基色,并在整个Web应用程序GUI中采用具有多种自动选择的二次色的配色方案。
记住react-way是为每个单独的组件使用内联样式,我想知道如何在与react-bootstrap做出反应时这样做?
答案 0 :(得分:2)
您可能希望查看React CSS Modules,这将允许您使用动态样式对象。代码可以轻松读取并正常运行。但是,这需要预定义的主题。
第二种方法是在redux商店或相邻组件中定义颜色,将其作为道具传递给所有儿童。
但是我建议不要让用户使用自定义颜色选择器挑选任何颜色。如果您让用户选择RGB颜色,请记住有16777216种颜色组合。你不仅可以通过使任何给定的颜色变暗来轻松地制作替代颜色,因为很有可能只改变例如颜色。降低亮度可能会降低与二次色的对比度。
答案 1 :(得分:2)
如果您想制作应用themable
,则可能需要:
作为一种工具,你可以尝试这个storybook-addon-material-ui(尽管标题中存在Material-UI,但它允许为所有目的创建主题对象)
然后,为了向您的应用提供主题,您可以使用react-theme-provider。它只是将主题数据传递到您的Components
via上下文中,因此您可以在需要时实现任何框架或设置颜色。它还有一个用于主题切换的API。