我用extendTheme()
在Chakra UI上为React设置了默认主题。当我尝试像这样更改Select组件的样式时,_focus
样式不会应用,而color
的行为符合预期。
参考
- Chakra-UI风格 prop
- How to change the placeholder color globally?
字幕
编码
index.ts
import { extendTheme } from '@chakra-ui/react';
import { Select } from './select';
export const theme = extendTheme({
colors: {
brand: '#008561',
brandLight: '#00b485',
},
components: {
Select,
},
});
select.ts
export const Select = {
parts: ['field'],
baseStyle: ({ colorMode }: any) => ({
field: {
color: 'brandLight',
_focus: {
borderColor: colorMode === 'dark' ? 'brandLight' : 'brand',
},
},
}),
sizes: {},
variants: {},
defaultProps: {},
};
3条答案
按热度按时间bz4sfanl1#
要更改焦点边框颜色,您必须访问
focusBorderColor
选择器,这可以在您想要更改的
variant
中设置,也可以在组件主题的defaultProps
选择器中设置。我看到的另一个解决方法是将全局阴影设置为脉轮颜色,请注意,您定义的任何颜色都可以像下面的示例一样访问
解决方法在这里找到:Chakra-UI问题-663
希望这对你的项目有帮助
km0tfn4u2#
这对我很有效。
syqv5f0l3#
这对我来说很有用
const baseStyle = definePartsStyle({ field: { _focusVisible: { 'border-color': '#F16821 !important', 'box-shadow': '0 0 0 1px #F16821 !important' } } });