Interfaces, in harmony.
Vue components for Nuxt and Tailwind CSS v4. Four small edits, one interface: apply them in turn and watch it become yours.
Give the primary role one colour. Hover, pressed, text and focus values are derived from it, in light and dark.
nuxt.config.ts import { defineColorFromSeed } from '@sewadah/selaras/theme' export default defineNuxtConfig({ selaras: { theme: { colors: { primary: defineColorFromSeed('#0F766E') }, }, }, })One radius token. The small, medium and large radii are derived from it.
main.css :root { --selaras-radius-base: 0px; }Add classes to a component everywhere it appears, without wrapping it.
app.config.ts export default defineAppConfig({ selaras: { ui: { button: { slots: { base: 'uppercase tracking-wider' } }, }, }, })The :ui prop changes a single instance, and wins over everything above.
BookingForm.vue <SButton :ui="{ base: 'rounded-full' }"> Request booking </SButton>
Explore the library
Components
Inputs, navigation, overlays, and the details in between, with keyboard support and typed APIs.
Composites
Resizable dashboards and documentation layouts, composed from the same parts.
Blocks
Complete interfaces to try, inspect, and copy into your project.
Utilities
Open overlays from code, share icons and messages, and add input masks.