shipyard verwendet Tailwind CSS 4 mit DaisyUI für das Styling. Diese Anleitung erklärt, wie du Tailwind CSS konfigurierst, damit es korrekt mit shipyard-Komponenten funktioniert.
Erstelle src/styles/app.css:
/* Tailwind CSS 4 Setup */
@import "tailwindcss";
/* Importiere shipyard-Pakete - enthält Styles und @source-Direktiven */
@import "@levino/shipyard-base";
@import "@levino/shipyard-blog";
@import "@levino/shipyard-docs";
@plugin "daisyui";
@plugin "@tailwindcss/typography";
Aktualisiere astro.config.mjs:
import shipyard from '@levino/shipyard-base'
import shipyardDocs from '@levino/shipyard-docs'
import shipyardBlog from '@levino/shipyard-blog'
import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'astro/config'
import appCss from './src/styles/app.css?url'
export default defineConfig({
vite: {
plugins: [tailwindcss()],
},
integrations: [
shipyard({
css: appCss,
brand: 'Meine Seite',
title: 'Meine tolle Seite',
navigation: {
docs: { label: 'Doku', href: '/docs' },
blog: { label: 'Blog', href: '/blog' },
},
}),
shipyardDocs(),
shipyardBlog(),
],
})
Installiere Dependencies:
npm install tailwindcss @tailwindcss/vite daisyui @tailwindcss/typography
Das war’s! Die shipyard-Pakete enthalten eigene @source-Direktiven, sodass Tailwind automatisch alle Komponenten-Klassen erkennt.
Jedes shipyard-Paket exportiert CSS über conditional exports. Bei CSS-Import wird es zu einer CSS-Datei aufgelöst, die enthält:
@apply-DirektivenWenn du @import "@levino/shipyard-base" importierst, macht Tailwind CSS 4:
@source-Direktiven um die Quelldateien des Pakets zu scannenDas bedeutet, du musst keine Pfade manuell konfigurieren oder dir Sorgen um Monorepo vs. normale Installation machen.
| Direktive | Zweck |
|---|---|
@import "tailwindcss" | Initialisiert Tailwind CSS |
@import "@levino/shipyard-*" | Importiert shipyard-Styles und @source-Direktiven |
@plugin "daisyui" | Aktiviert DaisyUI-Komponenten-Klassen |
@plugin "@tailwindcss/typography" | Aktiviert Prosa-Styling für Markdown-Inhalte |
?url Import?Das ?url-Suffix in import appCss from './src/styles/app.css?url' weist Vite an, den Dateipfad zur Build-Zeit aufzulösen. Dies ermöglicht shipyard, dein CSS in der richtigen Verarbeitungsreihenfolge einzubinden.
@tailwindcss/vite?Tailwind CSS 4 verwendet ein Vite-Plugin (@tailwindcss/vite) statt der älteren @astrojs/tailwind-Integration. Dies bietet bessere Performance und native Vite-Integration.
Wenn Komponenten ungestylt erscheinen:
@import "tailwindcss" muss zuerst kommencss: appCss an die shipyard-Integration übergibstDieser Fehler bedeutet, dass Tailwind nicht initialisiert ist, wenn eine CSS-Datei verarbeitet wird. Stelle sicher, dass deine app.css @import "tailwindcss" als ersten Import hat.
Wenn du nach einem Upgrade Fehler siehst, versuche:
node_modules und installiere neurm -rf dist .astroWenn du von Tailwind CSS 3 migrierst:
tailwind.config.mjs - Konfiguration lebt jetzt in CSS@astrojs/tailwind - Nicht mehr benötigt@tailwindcss/vite - Das neue Vite-Pluginsrc/styles/app.css - Mit dem oben gezeigten Setupastro.config.mjs - Füge Vite-Plugin hinzu und importiere CSS mit ?url// astro.config.mjs
import tailwind from '@astrojs/tailwind'
export default defineConfig({
integrations: [
tailwind({ applyBaseStyles: false }),
shipyard({ /* ... */ }),
],
})
// tailwind.config.mjs
export default {
content: [
'./src/**/*.{astro,html,js,jsx,md,mdx,ts,tsx}',
'node_modules/@levino/shipyard-*/**/*.{astro,js,ts}',
],
plugins: [typography, daisyui],
}
// astro.config.mjs
import tailwindcss from '@tailwindcss/vite'
import appCss from './src/styles/app.css?url'
export default defineConfig({
vite: {
plugins: [tailwindcss()],
},
integrations: [
shipyard({
css: appCss,
/* ... */
}),
],
})
/* src/styles/app.css */
@import "tailwindcss";
@import "@levino/shipyard-base";
@import "@levino/shipyard-blog";
@import "@levino/shipyard-docs";
@plugin "daisyui";
@plugin "@tailwindcss/typography";