VaneUI is a React component library powered by Tailwind CSS. Designed for building beautiful and responsive user interfaces.

Oliver is a shy, sweet pup learning to trust. He needs a calm, patient home. Older kids and a gentle dog will help him feel secure.
DogCard.tsx
<Card mobileCol noGap noPadding overflowHidden row sm> <Img className="max-mobile:w-full w-[188px] h-full" sharp sm src="/puppy.png" /> <Stack sm> <Row justifyBetween> <Title>Oliver</Title> <Chip bold sm>male</Chip> </Row> <Divider /> <Text sm>Oliver is a shy, sweet pup learning to trust. He needs a calm, patient home. Older kids and a gentle dog will help him feel secure.</Text> <Row justifyEnd mobileCol sm> <Button className="max-mobile:w-full" filled sm success>Adopt</Button> <Button className="max-mobile:w-full" secondary sm>Learn more</Button> </Row> </Stack></Card>VaneUI bridges the gap between utility-first CSS and component-based development. Write less code, build faster, and maintain consistency across your entire application.
// Other UI framework's button<Button appearance="primary" size="large" variant="filled" />
// VaneUI button:<Button primary lg filled />Style components with simple words like primary, filled, or outline. No complicated settings or long property names.
// Typography and layout scales // on mobile, tablet, and desktop screens <Section xl> <PageTitle>Welcome to My App</PageTitle> <SectionTitle>Features</SectionTitle> <Title>Getting Started</Title></Section>Headings and text scale down on smaller screens without any extra code. Your content looks great on every device right out of the box.
<ThemeProvider themeDefaults={{ button: { filled: true, sm: true }}}> <App /></ThemeProvider>Set default styles for your entire app or customize sections individually. Nest themes to create different looks for different areas.
Watch how changing props instantly transforms components.
CardExample.tsx
<Card row mobileCol overflowHidden> <Img src="/puppy.png" alt="puppy" width={185} height={185} className="shrink-0 max-mobile:w-full"/> <Stack sm> <Row justifyBetween> <Title>{dog.name}</Title> <Chip sm>{dog.gender}</Chip> </Row> <Divider/> <Text sm>{dog.description}</Text> <Row mobileCol> <Button className="max-mobile:w-full">Adopt</Button> <Button className="max-mobile:w-full">Learn more</Button> </Row> </Stack></Card>
Oliver is a shy, sweet pup learning to trust. He needs a calm, patient home. Older kids and a gentle dog will help him feel secure.
Essential UI elements like buttons, badges, and chips.
ButtonComponents.tsx
<Row flexWrap> <Button filled primary>Filled primary button</Button> <Button outline success>Outline success button</Button> <Button danger sharp>Danger sharp button</Button> <Button filled secondary>Filled secondary</Button> <Button pill warning>Outline warning</Button></Row>Scalable text system with built-in hierarchy. From headings to body text, maintain perfect readability across all screen sizes.
TextComponents.tsx
<Col xs> <Text xl>The quick brown fox jumps over the lazy dog</Text> <Text lg>The quick brown fox jumps over the lazy dog</Text> <Text md>The quick brown fox jumps over the lazy dog</Text> <Text sm>The quick brown fox jumps over the lazy dog</Text> <Text xs>The quick brown fox jumps over the lazy dog</Text></Col>The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
Switch between different themes to see how components adapt. Each theme demonstrates the flexibility of the VaneUI theming system.
Theme: balanced. Clean and modern with rounded corners.

Oliver is a shy, sweet pup learning to trust. He needs a calm, patient home. Older kids and a gentle dog will help him feel secure.
.theme-wrapper { --br-unit: 5;}const themeDefaults: ThemeDefaults = { img: { xs: true }, button: { sm: true }, card: { shadow: true, md: true }, chip: { sm: true, bold: true }};