Du hast ein Astro-Projekt und willst nicht bei null anfangen. Hier ist der schnellste Weg von der leeren Seite zu einer funktionierenden Website mit Navigation, SEO, Accessibility und Design System.
Voraussetzung
Ein bestehendes Astro-Projekt (v4 oder v5). Falls noch keins existiert:
npm create astro@latest mein-projekt
cd mein-projekt
Die 5 Schritte im Überblick
Von der leeren Seite zur fertigen Website
- Paket installieren
Ein npm-Befehl — keine Runtime-Abhängigkeiten, nur .astro- und .ts-Dateien.
- Im Storybook erkunden
549 Stories mit interaktiven Controls durchsuchen und passende Komponenten finden.
- BaseLayout aufsetzen
SEO, Header, Footer, Breadcrumbs und Accessibility-Toolbar in einem Layout vereinen.
- Seiten mit Sections bauen
Hero, Features, FAQ, Testimonials und CTA-Abschnitte zusammensetzen.
- Design mit Tokens anpassen
CSS Custom Properties überschreiben oder den DesignSystemProvider nutzen.
Schritt 1: Installieren
npm install @wendermedia/astro-components
Das Paket hat keine Runtime-Abhängigkeiten. Es bringt nur Astro-Komponenten mit — .astro- und .ts-Dateien, die direkt in deinem Build-Prozess kompiliert werden.
Schritt 2: Im Storybook erkunden
Bevor du irgendetwas importierst, öffne das Live-Storybook und sieh dir an, was verfügbar ist:
wm-astro-components.netlify.app
Die Docs-Seite jeder Komponente zeigt:
- Props mit Typen und Defaults
- Live-Preview mit interaktiven Controls
- Varianten (Light/Dark, verschiedene Größen, Zustände)
- CSS Custom Properties, die die Komponente nutzt
- Accessibility-Check über den A11y-Tab
Schritt 3: BaseLayout aufsetzen
Eine typische Astro-Seite braucht vier Dinge: SEO-Meta-Tags, eine Grundstruktur, Navigation und Accessibility-Tools. Das alles kommt in ein zentrales Layout.
---
// src/layouts/BaseLayout.astro
import { SEO } from '@wendermedia/astro-components/seo';
import { Header, Footer } from '@wendermedia/astro-components/layout';
import { SkipLinks, AccessibilityToolbar } from '@wendermedia/astro-components/accessibility';
import { Breadcrumbs } from '@wendermedia/astro-components/navigation';
interface Props {
title: string;
description: string;
}
const { title, description } = Astro.props;
---
<!doctype html>
<html lang="de">
<head>
<SEO title={title} description={description} />
</head>
<body>
<SkipLinks />
<Header />
<Breadcrumbs items={[{ label: 'Home', href: '/' }, { label: title }]} />
<main id="main-content">
<slot />
</main>
<Footer />
<AccessibilityToolbar position="right" />
</body>
</html> Was du bekommst mit 6 Imports:
- <title> und <meta description> Tags
- Open Graph und Twitter Card Meta-Tags
- Skip-to-Content Navigation (Accessibility)
- Responsive Header mit Navigation
- Breadcrumbs mit BreadcrumbList JSON-LD
- Semantischer <main> Bereich
- Responsive Footer
- Accessibility-Toolbar (Schriftgröße, Kontrast, Fokus) Das sind sechs Imports und du hast: Meta-Tags, Skip-Navigation, Header, Footer, Breadcrumbs mit JSON-LD und einen Accessibility-Toolbar mit Schriftgröße, Kontrast und Fokus-Optionen.
Schritt 4: Seiten bauen
Mit dem Layout steht die Basis. Jetzt kommen Seitenabschnitte aus der sections-Kategorie:
---
// src/pages/index.astro
import BaseLayout from '../layouts/BaseLayout.astro';
import { Hero, Features, FAQ, CTA } from '@wendermedia/astro-components/sections';
import { Testimonials } from '@wendermedia/astro-components/sections';
---
<BaseLayout title="Startseite" description="Beschreibung">
<Hero
title="Überschrift"
subtitle="Unterüberschrift"
ctaText="Jetzt starten"
ctaHref="/kontakt"
/>
<Features features={[
{ title: 'Schnell', description: 'Astro liefert Zero-JS per Default.' },
{ title: 'Barrierefrei', description: 'WCAG 2.2 AA konform.' },
{ title: 'SEO-optimiert', description: 'Strukturierte Daten automatisch.' },
]} />
<Testimonials testimonials={[
{ quote: 'Endlich eine Library ohne Overhead.', author: 'Max M.', role: 'Frontend Dev' },
]} />
<FAQ items={[
{ question: 'Brauche ich React?', answer: 'Nein. Alles ist reines Astro.' },
{ question: 'Funktioniert das mit Tailwind?', answer: 'Ja. CSS Custom Properties kombinieren sich mit Tailwind.' },
]} />
<CTA title="Bereit?" description="Starte jetzt." buttonText="npm installieren" buttonHref="https://www.npmjs.com/package/@wendermedia/astro-components" />
</BaseLayout>
Schritt 5: Design anpassen
Die Komponenten kommen mit neutralen Default-Tokens. Für eigenes Branding gibt es zwei Wege:
---
// Option A: DesignSystemProvider
import { DesignSystemProvider } from '@wendermedia/astro-components/design-system';
---
<DesignSystemProvider
primaryColor="#059669"
secondaryColor="#0284c7"
fontFamily="'DM Sans', sans-serif"
borderRadius="0.75rem"
/> /* Option B: CSS Custom Properties direkt in global.css */
:root {
--color-primary-500: #059669;
--color-secondary-500: #0284c7;
--font-family-body: 'DM Sans', sans-serif;
--radius-md: 0.75rem;
--shadow-md: 0 4px 6px rgba(0,0,0,0.1);
--space-section-md: 4rem;
} Beide Wege sind gleichwertig. Der Provider ist bequemer, die Custom Properties geben mehr Kontrolle.
Import-Pfade aller 17 Kategorien
| Kategorie | Import-Pfad | Anzahl |
|---|---|---|
| Accessibility | @wendermedia/astro-components/accessibility | 12 |
| Content | @wendermedia/astro-components/content | 4 |
| Design System | @wendermedia/astro-components/design-system | 1 |
| E-Commerce | @wendermedia/astro-components/ecommerce | 5 |
| Forms | @wendermedia/astro-components/forms | 6 |
| Gallery | @wendermedia/astro-components/gallery | 3 |
| Images | @wendermedia/astro-components/images | 4 |
| Layout | @wendermedia/astro-components/layout | 3 |
| Layouts | @wendermedia/astro-components/layouts | 15 |
| Maps | @wendermedia/astro-components/maps | 2 |
| Media | @wendermedia/astro-components/media | 3 |
| Navigation | @wendermedia/astro-components/navigation | 4 |
| Products | @wendermedia/astro-components/products | 2 |
| SEO | @wendermedia/astro-components/seo | 8 |
| Sections | @wendermedia/astro-components/sections | 68 |
| Social | @wendermedia/astro-components/social | 3 |
| UI | @wendermedia/astro-components/ui | 19 |
CLI-Tool für neue Projekte
Wer ein komplett neues Projekt starten will, kann das CLI-Tool nutzen:
npx create-wm-component
Acht Templates stehen zur Auswahl: Blog, E-Commerce, Landing Page, Portfolio, Corporate, Docs, SaaS und Affiliate. Jedes Template setzt die richtigen Komponenten, Layouts und Design Tokens auf.
Häufige Setup-Fragen
Setup FAQ
Nein. Alle 150 Komponenten sind reines Astro — .astro-Dateien und CSS Custom Properties. Interaktive Elemente nutzen Vanilla JavaScript. Kein Framework nötig.
Ja. Astro v4 und v5 werden vollständig unterstützt. Die Komponenten nutzen keine experimentellen APIs.
Ja. Einfach npm install laufen lassen und Komponenten importieren. Kein Refactoring des bestehenden Codes nötig.
npm update @wendermedia/astro-components — die Library folgt SemVer. Breaking Changes nur in Major-Versionen.
Ja. Die Komponenten nutzen CSS Custom Properties, die sich mit Tailwind-Klassen kombinieren lassen. Kein Konflikt.
Das Storybook unter wm-astro-components.netlify.app zeigt alle 150 Komponenten mit Live-Preview, Props-Tabelle und interaktiven Controls. Alphabetisch nach Kategorien sortiert.
Alle Komponenten haben TypeScript-Interfaces für Props. Autocomplete und Typ-Checks funktionieren sofort.
Die Library hat null Runtime-Abhängigkeiten. Da Astro nur importierte Komponenten kompiliert, landen nur die tatsächlich genutzten Komponenten im Build.
Nächster Schritt
Öffne das Storybook, such dir eine Komponente aus und bau sie ein. Jede Docs-Seite zeigt den Import-Pfad, die Props und eine Live-Preview.
- Storybook: wm-astro-components.netlify.app
- npm:
@wendermedia/astro-components - GitHub: arnoldwender/wm-project-astro-components