Designsystem

Tokens, Bausteine, Voice.

Die offene Referenz zum visuellen System von Struqo, von den Tokens bis zu ganzen Seiten. Jeder Wert kommt live aus dem Code, Figma folgt ihm. Agents lesen dieselben Bausteine in apps/web/components/styleguide/catalog.ts.

02

Atoms

Bausteine, die sich nicht weiter zerlegen lassen, ohne ihren Zweck zu verlieren. Ohne Bezug zu Holzbau oder Editor-Zustand.

Button
Größen sm 28, md 36, lg 44, xl 48 (Marketing, zwei Register-Module)
<Button variant="primary | secondary | ghost | destructive" size="sm | md | lg | xl">

Textknopf in vier Rängen: Hauptaktion (primary), Nebenweg (secondary), leise Aktion (ghost), unwiderruflich (destructive).

Atoms · ReadyCode: components/ui/Button.tsx
IconButton
Standard, aktiv
<IconButton variant="topbar | tool | ghost" ariaLabel active shortcut>

Knopf nur mit Icon, mit Pflicht-Beschriftung und Tooltip.

Atoms · ReadyCode: components/editor/IconButton.tsx

Besteht aus: Icon-Set

Tooltip
Überfahren
<Tooltip label position="bottom | top | left | right">

Kurzer Hinweis beim Überfahren, über .tooltip-wrap.

Atoms · ReadyCode: components/ui/Tooltip.tsx

Wort-Bild-Marke für Marketing, App und Editor.

Atoms · ReadyCode: components/ui/Logo.tsx
Avatar
<Avatar label={name | email | null} />

Initialen des Kontos im Konto-Menü.

Atoms · ReadyCode: components/ui/Avatar.tsx
ProgressBar

Der Balken einzeln, für Wartezeiten außerhalb der Ladeanzeige. Bewusst ohne value-Prop: solange kein Ladepfad einen echten Fortschritt misst, wäre ein sich füllender Balken eine Behauptung ohne Grundlage. Für Screenreader stumm, die umgebende Live-Region trägt die Aussage.

Determinacy ohne messbaren Fortschritt
<ProgressBar />

Balken für Wartezeiten ohne bekannte Dauer.

Atoms · ReadyCode: components/ui/ProgressBar.tsx

Link der Marketing-Navigation, mit Coming-Soon-Zustand statt totem Link.

Atoms · ReadyCode: components/marketing/NavLink.tsx
Speicher-Punkt

Gesichert ist der Ruhezustand und bleibt stehen, das Speichern pulst. Offline und Speicher-Fehler sind zwei Lagen: amber heißt, es läuft von allein weiter, rot heißt, hier ist etwas zu tun. Der Titel daneben behält in jedem Zustand seine Farbe.

Noch nichts zu sichern
idle
Wird gesichert
saving
Gesichert
saved
Offline, wird nachgeholtWird nachgeholt
offline
Speichern fehlgeschlagen, Struqo versucht es weiterFenster offen lassen
error
Entwurf im BrowserEntwurf im Browser
guest

Punkt oben im Editor: gespeichert, speichert, offline, Fehler.

Atoms · ReadyCode: components/editor/SaveDot.tsx
ThemeToggle

Schalter System, Hell, Dunkel.

Atoms · ReadyCode: components/ui/ThemeToggle.tsx

Ohne Live-Demo auf dieser Seite.

Eyebrow (.eyebrow)

Einziger zugelassener Mono-Label-Stil, 12 px, Versalien.

Atoms · ReadyCode: app/globals.css

Ohne Live-Demo auf dieser Seite.

Color-Swatch-Dot

Farbpunkt in Auswahlen wie der Stift-Farbwahl.

Atoms · DraftCode: components/canvas/PenStrokeContextMenu.tsx

Ohne Live-Demo auf dieser Seite.

Select

Auswahlfeld im Struqo-Stil.

Atoms · DraftCode: components/editor/panels/PanelProperties.tsx

Ohne Live-Demo auf dieser Seite.

Designsystem · Struqo