Styled API for creating atomic, theme-aware component styling.
pnpm add @yamada-ui/core
# or
yarn add @yamada-ui/core
# or
npm install @yamada-ui/core
# or
bun add @yamada-ui/core
In modern web development, we have lots of solutions and architectures that have tried to unify how components are styled. We've seen CSS architectures like BEM, SMACSS, etc, and frameworks like Bootstrap, and Tailwind CSS.
While these solutions work great, we still think there is a sheer amount of work required to create a fully customizable, theme-aware component.
Moreover, Many existing UI component libraries, which have been around for a long time, are facing challenges in aligning with the requirements of modern web development.
Yamada UI provides enhanced JSX elements that can be styled directly via props, or
can accept the common sx
prop for custom styles.
We'll provide a ui function, just like styled-components. Users can create
any component using the ui.[element]
. The resulting component will be a
styled component and have all system props.
<ui.div bg="green" _hover={{ bg: "red" }}>Hover me</ui.div>
<ui.h1 fontSize="2rem">Yamada UI</ui.h1>
// create your own box
const Box = ui.div
// or
const Box = ui("div", {
baseStyle: {
// ... your styles
}
})
// you can still use the `as` prop
<Box as="h1">This is my box</Box>
// components that inherit the logic of Yamada UI.
const UIComponent = ui(YourComponent)
Wouldn't you like to contribute? That's amazing! We have prepared a contribution guide to assist you.
This package is licensed under the terms of the MIT license.