Das Design System

Das Design-System von Nuxt UI verwendet Tailwind CSS für einfaches Theming und einfache Anpassung.

Tailwind CSS für Mac

Tailwind CSS verwendet eine CSS-First-Konfiguration, mit der Sie Ihre Design-Token mit der [@themexph03xhttps://tailwindcss.com/docs/functions-and-directives#theme-directive)-Direktive direkt in Ihrem CSS definieren können.

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme {
  /* Your custom design tokens go here */
}
Überprüfen Sie die Tailwind CSS-Dokumentation für alle verfügbaren Optionen zur Anpassung von Theme-Variablen.
Tailwind CSS v4 hat seine Preflight geändert, sodass Schaltflächen cursor: default anstelle von cursor: pointer verwenden, um die Browserstandardeinstellungen zu erfüllen. Wenn Sie den Mauszeiger global wiederherstellen möchten, fügen Sie Ihrem CSS diese Basisstile hinzu:
app/assets/css/main.css
@layer base {
  button:not(:disabled),
  [role="button"]:not(:disabled) {
    cursor: pointer;
  }
}

Fonts (englisch)

Verwenden Sie die Variablen des Designs --font-*, um die Schriftfamilie customize utilities in Ihrem Projekt anzupassen.

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme {
  --font-sans: 'Public Sans', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}
Die hier definierten Schriftarten werden vom Modul @nuxt/fonts automatisch geladen und optimiert.

Farben

Verwenden Sie die --color-*-Designvariablen, um Ihre Farben anzupassen ](https://tailwindcss.com/docs/colors#customizing-your-colors) oder override Standardfarben .

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme static {
  /* Override default green color */
  --color-green-50: #EFFDF5;
  --color-green-100: #D9FBE8;
  --color-green-200: #B3F5D1;
  --color-green-300: #75EDAE;
  --color-green-400: #00DC82;
  --color-green-500: #00C16A;
  --color-green-600: #00A155;
  --color-green-700: #007F45;
  --color-green-800: #016538;
  --color-green-900: #0A5331;
  --color-green-950: #052E16;

  /* Define new custom color */
  --color-brand-50: #fef2f2;
  --color-brand-100: #fee2e2;
  --color-brand-200: #fecaca;
  --color-brand-300: #fca5a5;
  --color-brand-400: #f87171;
  --color-brand-500: #ef4444;
  --color-brand-600: #dc2626;
  --color-brand-700: #b91c1c;
  --color-brand-800: #991b1b;
  --color-brand-900: #7f1d1d;
  --color-brand-950: #450a0a;
}
Wenn Sie benutzerdefinierte Farben hinzufügen, stellen Sie sicher, dass Sie alle Schattierungen von 50 bis 950 für jede Farbe definieren.

Breakpoints (Deutsche Übersetzung)

Verwenden Sie die --breakpoint-*-Theme-Variablen, um Ihre Breakpoints customize .

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme {
  --breakpoint-3xl: 1920px;
  --breakpoint-4xl: 2560px;
  --breakpoint-5xl: 3840px;
}

Motion Bearbeiten

Verwenden Sie die --ease-*-Designvariablen, um die easing](https://tailwindcss.com/docs/transition-timing-function#customizing-your-theme) der Animationen und Bewegungsübergänge in Ihrem Projekt anzupassen.

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme {
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

Enter-und Exit-Animationen werden auf --ease-out ausgeführt, unbestimmte Ladeanimationen auf --ease-in-out, sodass diese beiden Wiederholungen der Bibliothek überschrieben werden.

Wenn prefers-reduced-motion eingestellt ist, werden Überlagerungen anstelle von Skalierung oder Schieben ausgeblendet, und Bewegungsübergänge werden deaktiviert.

Das XPH121xColor System

Das Farbsystem von Nuxt UI basiert auf semantic naming und nicht auf bestimmten Farbwerten. Dieser Ansatz macht Ihre Benutzeroberfläche wartbarer und macht das Wechseln des Themas einfach.

semantische Farben

Jeder Alias wird basierend auf einer Farbe aus Ihrer @theme-Konfiguration definiert, die jede Farbe sein kann, die Sie zusätzlich zum default Tailwind CSS palette definieren.

FarbeDefault istDescription
primaryx133x BearbeitenHaupt-CTAs, aktive Navigation, Markenelemente, wichtige Links
secondary nichtx136x BearbeitenSekundäre Buttons, alternative Aktionen, ergänzende UI-Elemente
successx139x BearbeitenErfolgsmeldungen, abgeschlossene Zustände, positive Bestätigungen
info (nicht)x142x BearbeitenInfo-Benachrichtigungen, Tooltips, Hilfetexte, neutrale Benachrichtigungen
warning (nicht)X145x BearbeitenWarnmeldungen, ausstehende Zustände, Aufmerksamkeits-benötigte Elemente
error (nicht)X148x BearbeitenFehlermeldungen, Validierungsfehler, destruktive Aktionen
X150x BearbeitenX151x BearbeitenText, Grenzen, Hintergründe, Staaten mit Behinderungen

Diese semantischen Farben sind in der color-Prop von Nuxt UI-Komponenten verfügbar:

<template>
  <UButton color="primary">Save Changes</UButton>
</template>
Probieren Sie das: prose-icon{name="i-lucide-palette" class="text-primary"}-Themenmenü in der Kopfzeile aus, um sofort zu sehen, wie sich verschiedene Farbschemata auf die gesamte Benutzeroberfläche auswirken, oder öffnen Sie den theme editor, um alles auf einmal anzupassen!

Runtime-Konfiguration

Sie können diese Farben zur Laufzeit in Ihrer app.config.ts-Datei unter dem ui.colors-Schlüssel konfigurieren, sodass eine dynamische Anpassung des Designs möglich ist, ohne den Server neu starten zu müssen:

app/app.config.ts
export default defineAppConfig({
  ui: {
    colors: {
      primary: 'blue',
      secondary: 'purple',
      neutral: 'zinc'
    }
  }
})

Sie können diese Farben zur Laufzeit in Ihrer vite.config.ts-Datei unter der ui.colors-Taste konfigurieren, um eine dynamische Theme-Anpassung zu ermöglichen:

vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui({
      ui: {
        colors: {
          primary: 'blue',
          secondary: 'purple',
          neutral: 'zinc'
        }
      }
    })
  ]
})
Sie können nur Farben verwenden, die in Ihrem Theme vorhanden sind. Entweder:
  • Verwenden Sie Tailwinds Standardfarben (wie blue, green, zinc)
  • Definieren Sie benutzerdefinierte Farben zuerst mit der @theme-Direktive (wie brand in unserem obigen Beispiel)

Erweitern Sie Farben

Sie können zusätzliche semantische Farben über die Standardwerte hinaus definieren, z. B. das Hinzufügen einer tertiary-Farbe:

Registrieren Sie zunächst die neue Farbe in Ihrem nuxt.config.ts unter dem ui.theme.colors-Schlüssel:

nuxt.config.ts
export default defineNuxtConfig({
  ui: {
    theme: {
      colors: [
        'primary',
        'secondary',
        'tertiary',
        'info',
        'success',
        'warning',
        'error'
      ]
    }
  }
})

Dann weisen Sie es in Ihrem app.config.ts unter dem ui.colors-Schlüssel zu:

app/app.config.ts
export default defineAppConfig({
  ui: {
    colors: {
      primary: 'blue',
      secondary: 'purple',
      tertiary: 'indigo'
    }
  }
})

Registrieren und die neue Farbe in Ihrer vite.config.ts-Datei zuweisen:

vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui({
      theme: {
        colors: [
          'primary',
          'secondary',
          'tertiary',
          'info',
          'success',
          'warning',
          'error'
        ]
      },
      ui: {
        colors: {
          primary: 'blue',
          secondary: 'purple',
          tertiary: 'indigo'
        }
      }
    })
  ]
})

Verwenden Sie schließlich diese neue Farbe in Komponenten, die die color-Prop oder as eine class unterstützen:

<UButton color="tertiary">
  Special Action
</UButton>