按钮上的 Chakra UI colorScheme 道具

Abd*_*aju 9 javascript reactjs chakra-ui

我在 chakra_ui 中扩展了主题提供程序

import React from "react";
import ReactDOM from "react-dom";
import { ChakraProvider, extendTheme } from "@chakra-ui/react";

import App from "./App";

const theme = extendTheme({
  colors: {
    brand: {
      50: "#44337A",
      100: "#B794F4"
    }
  }
});

const rootElement = document.getElementById("root");
ReactDOM.render(
  <React.StrictMode>
    <ChakraProvider theme={theme}>
      <App />
    </ChakraProvider>
  </React.StrictMode>,
  rootElement
);
Run Code Online (Sandbox Code Playgroud)

我使用了 Button 组件,并将 colorScheme 属性设置为我的主题的值:

 <Button size="sm" colorScheme="brand.100">
    Click Me
  </Button>
Run Code Online (Sandbox Code Playgroud)

它在 css 中生成了以下内容:background: brand.50.500;。所以它不应用颜色,有什么问题吗?

我注意到一些东西,没有.number:例如 .50 或 .100...该品牌不起作用,但其他内置颜色起作用。

https://codesandbox.io/s/infallible-allen-1k0tx?file=/src/App.js:257-333

小智 24

colorScheme接受颜色名称。在你的情况下,它将是colorScheme="brand"

如果我们检查 chakra 为实心按钮生成 的方式,colorScheme我们可以注意到它调用${c}.500。这意味着当您创建品牌配色方案时,您需要指定一种颜色500,但您在代码示例中缺少该颜色。

import React from "react";
import ReactDOM from "react-dom";
import { ChakraProvider, extendTheme } from "@chakra-ui/react";

import App from "./App";

const theme = extendTheme({
  colors: {
    brand: {
      50: "#44337A",
      100: "#B794F4",
      500: "#B794F4", // you need this
    }
  }
});

const rootElement = document.getElementById("root");
ReactDOM.render(
  <React.StrictMode>
    <ChakraProvider theme={theme}>
      <App />
    </ChakraProvider>
  </React.StrictMode>,
  rootElement
);
Run Code Online (Sandbox Code Playgroud)

当您调用按钮时,您只需要:

<Button size="sm" colorScheme="brand">
  Click Me
</Button
Run Code Online (Sandbox Code Playgroud)

  • 是的,谢谢,有效,那么盒子阴影脉轮如何渲染它,以及需要在 50 - 900 之间设置什么键 (3认同)