Component Theme
In Kuma UI, you can define default and variant styles for your components globally in your theme. This feature provides a consistent look and feel across your application while allowing for extensive customization.
Defining Component Styles
Component styles are defined in the components field of your theme. Each component can have a defaultProps and variants.
You can also define baseStyle for each component but it's deprecated and
will be removed in v2.0. Use defaultProps instead.
Here's an example of how you can define a primary variant and make it default for the Button component:
const theme = createTheme({
components: {
Button: {
defaultProps: {
variant: "primary",
borderRadius: "14px",
p: "16px 32px",
fontWeight: 600,
_hover: {
opacity: 0.8,
},
},
variants: {
primary: {
bg: "#576ddf",
color: "white",
},
secondary: {
bg: "white",
color: "#576ddf",
},
},
},
},
});Using Component Styles
Default Props
defaultProps are applied to all instances of a component by default. For example, with the above theme configuration, you can apply the primary variant to a Button like so.
Variants
Variants offer a way to apply different styles to components based on a prop. For example, with the above theme configuration, you can apply the primary variant to a Button like so:
<Button variant="primary">I'm a primary button</Button>This approach gives you a lot of flexibility in terms of styling your components and ensuring consistency across your application.
Remember, Kuma UI is a headless library, which means styles are not applied unless you define them in your theme. Define your component styles and unleash the power of Kuma UI!