Powered by Tailwind CSS and Reka UI for top performance and accessibility.
Access to over 200,000 customizable icons from Iconify powered by @nuxt/icon.
Performance-optimized fonts with first-class @nuxt/fonts integration.
Dark mode-ready components with @nuxtjs/color-mode module integration.
Translated into 50+ languages, works well with i18n and multi-directional support (LTR/RTL).
Integrates with @nuxt/content to deliver beautiful typography and consistent component styling.
@import "tailwindcss";
@import "@nuxt/ui";
@theme static {
  --font-sans: 'Public Sans', system-ui, sans-serif;
  --color-brand-50: #f0f9ff;
  --color-brand-100: #e0f2fe;
  --color-brand-200: #bae6fd;
  --color-brand-300: #7dd3fc;
  --color-brand-400: #38bdf8;
  --color-brand-500: #3b82f6;
  --color-brand-600: #2563eb;
  --color-brand-700: #1d4ed8;
  --color-brand-800: #1e40af;
  --color-brand-900: #1e3a8a;
  --color-brand-950: #172554;
}
export default defineAppConfig({
  ui: {
    colors: {
      primary: 'brand',
      secondary: 'purple',
      success: 'green',
      info: 'blue',
      warning: 'yellow',
      error: 'red',
      neutral: 'zinc'
    },
    icons: {
      loading: 'i-lucide-loader-circle',
      search: 'i-lucide-search',
      menu: 'i-lucide-menu'
    }
  }
})
@import "tailwindcss";
@import "@nuxt/ui";
:root {
  --ui-primary: black;
  --ui-radius: 0.5rem;
  --ui-container: var(--container-5xl);
  --ui-header-height: --spacing(24);
}
.dark {
  --ui-primary: white;
  --ui-bg: var(--ui-color-neutral-950);
}
<template>
  <div class="bg-default border border-default rounded-lg p-4">
    <span class="text-primary">Primary text</span>
    <span class="text-dimmed">Dimmed text</span>
    <div class="bg-elevated p-3 rounded-md mt-2">
      <span class="text-muted">Elevated background</span>
    </div>
  </div>
</template>
Use the Tailwind Variants API with slots, variants, and compound variants for powerful component theming with intelligent class merging.
export default defineAppConfig({
  ui: {
    button: {
      slots: {
        base: 'font-bold'
      },
      variants: {
        size: {
          md: {
            base: 'px-4 py-2 text-sm'
          }
        }
      },
      defaultVariants: {
        color: 'neutral'
      }
    }
  }
})
<template>
  <UButton
    label="Button"
    size="md"
    variant="outline"
    trailing-icon="i-lucide-chevron-right"
    :ui="{
      trailingIcon: 'rotate-90'
    }"
    class="rounded-full"
  />
</template>