Zum Inhalt springen

Typografie

Typografie

Ökosystem-weite Font-Strategie und Type Scale — System-Schrift zuerst, Inter als Fallback, Scale nach improdent.

--font-sans:
-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Inter",
ui-sans-serif, sans-serif;
--font-display: var(--font-sans);
TokenWertZweck
--font-sansSystem + InterFließtext, UI
--font-displayvar(--font-sans)Display/Hero-Rolle (gleiche Familie)
--font-bodyvar(--font-sans)Alias für Body
--font-headingvar(--font-sans)Alias für Headings
--font-monoSystem-MonospaceCode, Labels

Referenz-Implementierung Font-Stack: süper / addxion-docs (brand.css). Inter global als Fallback; auf Apple oft SF Pro.

Größen, Gewichte und Tracking folgen dem improdent-Muster. Schriftfamilie bleibt der ADDXION-Stack — keine Familjen Grotesk, keine Google Fonts.

RolleTokenGröße / ZeileTrackingWeight
Display (Hero)--text-displayclamp(2.5rem, 5vw, 4rem) / 1.05-0.04em400
Heading (Section)--text-heading--text-heading-lg1.875rem/2.25rem2.5rem/2.5rem-0.03em400
Title (PageHeader UI)--text-title1.5rem / 2rem-0.03em400
Body--text-body1rem / 1.75rem (base/7)400
Body lg--text-body-lg1.125rem / 2rem (lg/8)400

Regeln

  • Headings (h1h6) standardmäßig font-weight: 400 (nicht 500/600)
  • Große Titel: text-wrap: balance bzw. pretty
  • Display nur für Marketing-Heroes — nicht als Standard-Doc-H1 (Content-Spalte)

Tokens leben in Consumer-brand.css (z. B. addxion-docs). Referenz-Metriken: improdent Heading / Subheading / Text.

AltStatus
Google Fonts CDN (fonts.googleapis.com)entfernt
DM Sans, Syne, JetBrains Mono als Neon-Defaultsentfernt
@fontsource-variable/dm-sans in addxion.aientfernt
Separates Display-Font (z. B. Familjen Grotesk) im Ökosystemnicht übernehmen

Marken-spezifische Fonts gehören nur in Consumer-brand.css, wenn ein Produkt bewusst abweicht — nicht in @addxion/core.

PfadInhalt
addxion-neon/packages/core/assets/fonts/InterVariable.woff2Inter Variable, normal
addxion-neon/packages/core/assets/fonts/InterVariable-Italic.woff2Inter Variable, kursiv

@font-face liegt in packages/core/src/fonts/inter.css.

@import "@addxion/neon/fonts/inter.css";

In Consumer-brand.css Stack + Type-Scale-Tokens setzen (siehe addxion-docs src/styles/brand.css).

:root {
--sl-font: var(--font-sans);
--sl-font-mono: var(--font-mono);
}

Markdown-Content nutzt Heading-/Body-Tokens; PageHeader-Titel nutzt --text-title.

SurfaceTypografie
App (Auth, Shell)Body + Heading; PageHeader .page-title = --text-title
Guest / Login / Marketingwie Marketing-Sites: Hero → Display, Sections → Heading, Fließtext → Body

Scale-Tokens in brand.css / styles.css des Consumers; nicht in @addxion/shell hardcoden.

Siehe Websites entwickeln: Hero → Display, Section → Heading, Body base/7.

ImportInhalt
@addxion/neon/fonts/inter.cssRe-Export von @addxion/core/fonts/inter.css
@addxion/core/assets/fonts/*Rohdateien (woff2)
@addxion/neon/stylesTokens + Inter (via @addxion/core)

Primitives definieren --font-sans und --font-mono. Consumer-brand.css darf überschreiben und die Type Scale ergänzen.

RepoÄnderung
addxion-neonInter-Assets, inter.css, Primitives
addxion-docsbrand.css Scale-Tokens, Starlight/Prose, diese Seite
addxion-combrand.css Scale für Marketing
addxion-aiApp + Guest: Scale in Consumer-Styles
addxion-cms / addxion-com/cms@addxion/neon Dependency
  • font-display: swap — Text bleibt lesbar während Inter lädt
  • Auf Apple-Geräten greift SF Pro; Inter wird oft gar nicht gerendert
  • Keine externen DNS-Lookups oder CDN-Abhängigkeiten
IDWahrheit
T-NEON-FONTSKeine Google Fonts, self-hosted Inter
T-NEON-BRANDMarkenwerte in Consumer brand.css
T-PKG-NEONConsumer-Einstieg: @addxion/neon, nicht @addxion/core

Scope: Typografie — Font-Stack und Type Scale.

  • Schriften aus @addxion/neon/fonts/inter.css
  • System-Schrift (Apple SF) hat Vorrang; Inter als Fallback
  • Scale-Tokens in Consumer-brand.css (Display / Heading / Title / Body)
  • Headings: font-weight: 400, Tracking -0.03em / Display -0.04em
  • Display nur für Marketing-Heroes, nicht als Doc-H1
  • Marken-Fonts nur in Consumer-brand.css
  • addxion-ai: PageHeader = Title; Guest/Marketing = Display/Heading/Body wie Marketing-Sites