Klean UI
World-class UI. Source you own. Tailwind you know.
Klean UI means Kelvin's Lean UI. It provides accessible, framework-native components for Vue, React, and Svelte, built for The Boring JavaScript Stack.
Copy the source into your application and style it with Tailwind. Native HTML, keyboard behavior, focus, and Durable UI keep the interaction dependable while you make the design your own.
View source usage.vue
<script setup>
import Button from '@/components/ui/button/Button.vue'
</script>
<template>
<Button>Continue</Button>
</template>Installation
Add a component with one command. Klean infers the framework and conventional Boring Stack paths; the files it adds become application source.
Run from your application’s directory. Klean detects your framework and copies the matching source.
npx klean-ui add buttonAlready using Klean source? Check, review, and update it safely.
The contract
- Own the source. Components land in the application as readable files.
- Use the platform. Actions are buttons; navigation is an anchor or the Boring Stack Link.
- Style with Tailwind. There are no visual
variant,size,tone, orradiusprops. - Prefer conventions. Klean detects your Boring Stack framework and component directory.
- Treat accessibility as correctness. Keyboard behavior, focus, naming, state, and reduced motion are part of the component contract.
- Implement Durable UI. Useful state survives, navigation remains shareable, focus recovers, and failed work rolls back.
Start with Button
Button is a useful starting point for learning the Klean contract. Its API is intentionally small: choose the truthful element, pass behavioral state, and write the product's design in class.
Make it yours
Edit the installed source, style it with Tailwind, and compose it with your application's own markup.
Read the Doctrine for the boundaries behind those choices, Updating for source-aware upgrades, or the CLI reference for the complete command contract.