如何通过反应使Web应用程序颜色方案变化?

时间:2016-11-09 17:32:01

标签: reactjs react-jsx jsx react-bootstrap

假设我们有一个使用react-bootstrap开发的反应式Web应用程序。此应用程序必须使用颜色选择器进行自定义。用户选择基色,并在整个Web应用程序GUI中采用具有多种自动选择的二次色的配色方案。

记住react-way是为每个单独的组件使用内联样式,我想知道如何在与react-bootstrap做出反应时这样做?

2 个答案:

答案 0 :(得分:2)

您可能希望查看React CSS Modules,这将允许您使用动态样式对象。代码可以轻松读取并正常运行。但是,这需要预定义的主题。

第二种方法是在redux商店或相邻组件中定义颜色,将其作为道具传递给所有儿童。

但是我建议不要让用户使用自定义颜色选择器挑选任何颜色。如果您让用户选择RGB颜色,请记住有16777216种颜色组合。你不仅可以通过使任何给定的颜色变暗来轻松地制作替代颜色,因为很有可能只改变例如颜色。降低亮度可能会降低与二次色的对比度。

答案 1 :(得分:2)

如果您想制作应用themable,则可能需要:

  1. 创建主题的工具
  2. 将此主题应用于您的应用的方法
  3. 作为一种工具,你可以尝试这个storybook-addon-material-ui(尽管标题中存在Material-UI,但它允许为所有目的创建主题对象)

    然后,为了向您的应用提供主题,您可以使用react-theme-provider。它只是将主题数据传递到您的Components via上下文中,因此您可以在需要时实现任何框架或设置颜色。它还有一个用于主题切换的API。