Skip to content

Tailwind setup ​

Aurora ships a CSS-first Tailwind v4 theme (theme/css/tailwind.css — tokens, semantic color utilities, typography utilities) plus the raw token definitions (theme/css/design-system.css). There is no JS config or preset — everything is wired through your CSS entry.

Build plugin ​

Use the first-party Vite plugin (or @tailwindcss/postcss for non-Vite pipelines):

ts
// vite.config.ts
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
    plugins: [tailwindcss(), vue()],
})

No tailwind.config.js and no postcss.config.js needed.

CSS entry ​

Import Tailwind, then Aurora's token definitions and theme. Aurora's theme file declares @source for its own components, so their classes are picked up automatically; add @source entries for your app code (or omit source(none) to let Tailwind auto-detect):

css
/* src/style.css (or whatever your entry is) */
@import 'tailwindcss' source(none);

@import '@scaler-tech/aurora/theme/css/design-system.css';
@import '@scaler-tech/aurora/theme/css/tailwind.css';

@source './';

body {
    @apply font-inter bg-primary text-primary;
}

Semantic tokens (bg-primary, text-cta, border-focus, …) are property-scoped custom properties (--background-color-*, --text-color-*, --border-color-*, --ring-color-*). For opacity modifiers use the variable form: bg-(--background-color-secondary)/30.

Vue plugins ​

If you use any Popper-based component (Tooltip, Menu, Modal, Drawer, Combobox, …), aurora animates them with the v-motion directive from @vueuse/motion. Register the plugin once at app startup:

ts
// src/main.ts
import { createApp } from 'vue'
import { MotionPlugin } from '@vueuse/motion'
import App from './App.vue'
import './style.css'

createApp(App).use(MotionPlugin).mount('#app')

Skip this if you don't use any of the components listed above.

Fonts ​

Aurora's typography utilities (heading-1-semibold, paragraph-md, paragraph-sm-mono, …) reference Inter, Manrope, and Geist Mono. Add them to your app's <head>:

html
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
    rel="stylesheet"
    href="https://fonts.googleapis.com/css2?family=Inter:wght@300..700&family=Manrope:wght@200..800&family=Geist+Mono:wght@100..900&display=swap"
/>

If you self-host fonts, just make sure the font-family names match (Inter, Manrope, Geist Mono).

Next ​

→ Render your first component to verify everything is wired up.