1

我正在使用脉轮 ui。
我想将按钮颜色更改为#2477b3。我可以通过传递props中的值来改变它,但是每次传递props中的值都需要花费很多时间和精力,所以我想改变默认的Button颜色等。
我想使用的样式A 按钮。
我更改了theme.ts并创建了一个BButton,但样式没有改变。我尝试更改 theme.ts 中的值,但颜色没有改变。

  <Button
      size={'sm'}
      bg="#2B6CB0"
      _hover={{ bg: '#2477b3' }}
      _active={{
        bg: '#2477b3',
        transform: 'scale(0.98)',
        borderColor: '#2477b3',
      }}
      color={'#ffffff'}
    >
     AButton
    </Button>

  <Button>BButton</Button>

主题.ts

import { extendTheme } from '@chakra-ui/react';
export const theme = extendTheme({
  components: {
    Button: {
      baseStyle: {
        fontWeight: 'bold',
        _hover: {
          _disabled: {
            bg: '#2477b3',
          },
        },
      },
      variants: {
        bg: '#2B6CB0',
        _active: {
          bg: '#2477b3',
          transform: 'scale(0.98)',
          borderColor: '#2477b3',
        },
      },
    },
  },
});
4

1 回答 1

2

您需要先正确定义主题覆盖,方法是设置一个变体,然后将默认值设置为该变体

import { extendTheme } from '@chakra-ui/react';
export const theme = extendTheme({
  components: {
    Button: {
      baseStyle: {
        // ...define your base styles
      },
      variants: {
        // Make a variant, we'll call it `base` here and leave it empty
        base: {},
        secondary: {
          //...define other variants        
        }
      },
      defaultProps: {
        // Then here we set the base variant as the default
        variant: 'base'
      }
    },
  },
});
于 2021-04-27T18:18:54.343 回答