In der Dokumentation der frayme-CSS-Bibliothek – ein Werkzeugkasten für konsistentes und flexibles Webdesign. Diese Bibliothek basiert auf CSS-Variablen und modularen Klassen, die es ermöglichen, Farben, Typografie und Layouts zentral zu steuern – und das mit minimalem Aufwand.
frayme ist eine Dokumentaion meiner persönlichen CSS-Bibliothek um Websiten leichter und schneller erstellen zu können
frayme
Welcome
Schriftbild
Die Schriftbild-Module von frayme umfassen Schriftgrößen, Schriftarten, Text-Stile, Listen und Tabellen. Die Größen basieren auf dem Goldenen Schnitt und skalieren von einem Ausgangswert von 1 rem (16 px). Alle wesentlichen Parameter lassen sich über CSS-Variablen anpassen, ergänzende Utility-Klassen decken den direkten Einsatz im Markup ab.
Schriftgrößen
Der Ausgangswert aller Schriftgrößen ist 1 rem was 16px +- Zeilenabstand entspricht, und wird duch die Klasse typo-size-1 representiert. Diese Größe kann an der Variable --font-size-basic in variables.css angepasst werden. Von diesem Wert ausgehend, ändern sich alle weiteren Schriftgrößen nach dem goldenen Schnitt.
Der Multiplikator für Schriftgrößen kann an der Variable --multiplikator-font verändert werden.
die Schriftgrößen haben einen anderen Multiplikator als die Abstände – basieren aber alle standartmäßig auf dem Golden Schnitt. Um weiche Abstufungen für die Schriftgößen zu schaffen habe ich ihnen einen eigenen Multiplikator erzeugt, der der Quadratwurzel des Goldenen Schnitts entspricht
Die responsiven Schriftgrößen wurden nach Augenmaß erstellt und folgen nur in ihrer Abstufung dem goldenen Schnitt. Sie lassen sich an den Variablen --font-size-resp-1,--font-size-resp-2 und --font-size-resp-3 einstellen.
Hamburg -8
Hamburg -7
Hamburg -6
Hamburg -5
Hamburg -4
Hamburg -3
Hamburg -2
Hamburg -1 ( immer 16px )
Hamburg -n1
Hamburg -n2
Hamburg -resp-1
responsiv:
min
font-size-1 – max font-size-3
Hamburg -resp-2
responsiv: min font-size-2 – max font-size-4
Hamburg -resp-3
responsiv: min font-size-3 – max font-size-6
Hamburg -resp-4
responsiv: min font-size-3 – max font-size-8
Hamburg -resp-5
responsiv: min font-size-5 – max font-size-6
Hamburg -resp-6
responsiv: min font-size-5 – max font-size-8
HINWEIS: Margin-Werte aller Headline-Elemente
können an den Variablen --h1-marigin bis --h6-margin global
angepasst werden.
-
font-weight-200, -300, -400, -600 und -700
- Schriftschnitt ändern
<p class="font-size-8"></p> <p class="font-size-7"></p>
<p class="font-size-6"></p>
<p class="font-size-5"></p>
<p class="font-size-4"></p>
<p class="font-size-3"></p>
<p class="font-size-2"></p>
<p class="font-size-1"></p>
<p class="font-size-n1"></p>
<p class="font-size-n2"></p>
<p class="font-size-resp-1"></p>
<p class="font-size-resp-2"></p>
<p class="font-size-resp-3"></p>
<p class="font-size-resp-4"></p>
<p class="font-size-resp-5"></p>
<p class="font-size-resp-6"></p>
<p class="font-weight-200"></p>
<p class="font-weight-300"></p>
<p class="font-weight-400"></p>
<p class="font-weight-600"></p>
<p class="font-weight-700"></p>
Überschriften
Hamburg H1
Hamburg H2
Hamburg H3
Hamburg H4
Hamburg H5
Hamburg H6
<h1 class="h1"></h1>
<h2 class="h2"></h2>
<h3 class="h3"></h3>
<h4 class="h4"></h4>
<h5 class="h5"></h5>
<h6 class="h6"></h6>
Schriftarten
Universelle Fonts der Website
Schrift muss nach dem Download selbst eingebunden werden. Dafür ist die fonts.css vorgesehen. Es sind Voreinstellungen für zwei verschiedene fonts vorzufinden. Für mehr fonts können diese Einstellungen in der variables.css und der basic.css erweitert werden.
Text-Stile
Ein konsistentes Typografie-System sorgt für klare Strukturen und optimale Lesbarkeit. Diese Bibliothek bietet vordefinierte Klassen für Schriftgrößen, Gewichte und Abstände, die über CSS-Variablen zentral gesteuert werden. So lassen sich Textelemente mühelos an das jeweilige Layout anpassen.
- text
- Hiermit wird Text formatiert. Wird direkt in das entsprechende Element eingetragen.
- An folgenden Variablen kann die Formatierung angepasst werden:
--text-max-width--text-line-height--text-letter-spacing--text-margin-bottom--text-hyphenate-limit-chars-
--font-size-basic— Achtung: GLOBAL! Diese Variable bezieht sich auf die Ausgangs font-size und beeinflusst alle Schriftgrößen auf der gesamten Seite. Soll die Schriftgröße selektiv angepasst werden, verwende die Klassen für die Schriftgrößen.
-
text__initial-letter
- Letter mit der Klasse werden zur Initialie. Wird direkt in das entsprechende Element eingetragen.
- Bei Änderungen am Zeilenabstand muss ggf. das margin-left an der
Variable
--initial-letter-margin-leftund/oder--inital-letter-line-heightangepasst werden. Bei Änderungen der Schriftart muss evtl. mehr (im Regelsatz.text__initial-letterincomponents.css) angepasst werden.--initial-letter-margin-left--inital-letter-line-height
-
text--column-count
- Text wird mehrspaltig (responsiv). Wird direkt in das entsprechende Element eingetragen.
- An folgenden Variablen einstellbar:
--column-count--column-gap--column-width--column-count-max-width--column-rule
-
text--einzug
- Erzeugt einen Einzug der ersten Zeile.
--einzug
- Erzeugt einen Einzug der ersten Zeile.
-
text--line-height-change
- Zweiter Zeilenabstand.
--text-line-height-change
- Zweiter Zeilenabstand.
-
text--width-change
- Eine zweite Text-Breite.
--text-max-width-change
- Eine zweite Text-Breite.
-
text--smallcaps
- Alles in Kapitälchen.
-
text--uppercase
- Alles in Majuskeln.
-
text-decoration-none
- Entfernt Text-Dekoration.
Utility-Klassen
-
line-height (0 bis 2)
- Klassen zur Steuerung der
line-heightin 0.1er-Schritten. - Werte:
line-height-0= 0-
line-height-01bis09= 0.1 bis 0.9 line-height-1= 1-
line-height-11bis19= 1.1 bis 1.9 line-height-2= 2
- Klassen zur Steuerung der
-
text-align
- Steuert die horizontale Ausrichtung des Textes.
- Klassen:
-
text-align-left/-center/-right - Responsive Suffixe:
-sm,-md,-lg,-xl,-xxl
-
-
Word-Wrap & White-Space
- Beeinflusst, wie Text bei Platzmangel umgebrochen wird.
- Klassen:
-
wrap(Erzwingt Umbruch:word-break: break-all) -
no-wrap-whitespace(Verhindert Umbruch:white-space: nowrap)
-
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolore ipsa
voluptatem
incidunt, eaque itaque ipsam quisquam. Sit itaque unde dolores? Provident
consequatur eveniet, nostrum illum unde explicabo repellat quas sed! italic Lorem ipsum dolor sit amet consectetur adipisicing
elit.
Dolore eos unde harum et strong, asperiores tempore
ea
quis eius excepturi explicabo corporis, pariatur laudantium rerum quidem magnam quisquam
voluptates sed itaque repellat underline. Odio veniam laborum
illo dolorum impedit illum id culpa
enim unde quidem atque, inventore praesentium
architecto
doloremque maiores sequi provident corrupti! Repellendus obcaecati necessitatibus porro
dolor eos fugit rerum aut.
text--column-count
Text__initial-letter sit
amet,
consectetur adipisicing elit. Obcaecati, ratione aliquid quae dolores natus sit debitis
accusamus nulla itaque fugit quia labore odit corrupti voluptatibus distinctio fuga
tenetur
blanditiis illo ut vero eos? Minus perferendis eligendi accusantium debitis, reiciendis,
nemo eos dicta aspernatur officia reprehenderit necessitatibus earum eveniet quis cum
incidunt adipisci quo inventore assumenda voluptates commodi voluptate, officiis porro
sit?
At, ut. Eveniet quam omnis unde amet ad, sed adipisci incidunt beatae voluptatum nisi
dicta!
Mollitia quae reiciendis asperiores est quia officiis numquam modi odio amet eius,
aliquam,
maiores deserunt adipisci minima repellat atque tempora dolorem sapiente?
Expedita
distinctio ex iusto dignissimos dicta molestiae suscipit reprehenderit, libero nam, eum
amet
sit commodi assumenda totam quaerat ut sed vitae! Totam esse at harum, facere, quibusdam
excepturi dolorum incidunt perspiciatis beatae labore quam ipsa temporibus numquam ipsam
debitis in velit similique doloribus aliquid doloremque. At, placeat soluta dolorum
dicta
vero voluptatibus voluptate quia porro nulla nihil expedita, totam, reiciendis
aspernatur
animi nostrum minus cupiditate voluptas asperiores culpa. Accusantium, eveniet itaque
suscipit blanditiis cum ab in voluptatem obcaecati similique nesciunt debitis omnis odit
inventore quae quis architecto libero sapiente odio non explicabo, aliquid at, corrupti
temporibus! Sapiente beatae impedit excepturi atque nisi totam numquam neque doloremque!
Temporibus corrupti eum sint, dolor quo obcaecati quae ex magni porro laudantium,
blanditiis
veniam excepturi aut minima sed quibusdam alias recusandae impedit vero ipsa nam
doloribus
laboriosam optio adipisci? Illum quam maxime cumque assumenda, nobis atque dicta odio
adipisci labore tempora eligendi fugiat aspernatur. Sequi nisi eum totam, rem voluptatum
quidem maiores cupiditate, magni esse rerum unde similique sint necessitatibus nostrum
quaerat doloremque non sunt. Mollitia officiis voluptates quibusdam ratione, in aut,
repudiandae eaque, odio voluptas dolore fugit qui necessitatibus. Illum, fugit cum
reiciendis velit nesciunt maxime modi neque sint assumenda ratione enim nobis, totam
voluptates.
text--width-change / text--line-height-change
text--einzug dolor sit amet consectetur, adipisicing elit. Ab nemo odit corrupti repudiandae nulla est tenetur voluptate repellat temporibus. Ut nesciunt dignissimos ipsa illo expedita, iste et tempora itaque deleniti tempore ratione iure. Fuga omnis praesentium minima cum odio facilis, tempore perspiciatis, autem illum voluptas facere repellendus quis obcaecati quasi, maxime illo ipsum. Veniam, dolor dolores? Nulla explicabo tempora blanditiis iusto animi rerum eveniet, cum officia pariatur at sint maxime dolores provident incidunt fugiat, consequatur obcaecati iure mollitia quae sunt asperiores esse quos. Ea, provident doloremque dolorem odio laudantium beatae eaque quam aspernatur reprehenderit quibusdam ipsum deleniti, sit perferendis placeat?Lorem ipsum dolor sit amet consectetur adipisicing elit.
text--smallcaps / text--uppercase
Veniam, nemo ducimus. Doloribus ipsa ut deleniti modi ducimus et adipisci nam inventore cum quaerat beatae enim eligendi rem fugit harum ad aliquid nisi dolore porro itaque, ullam labore! Non, facere. Fugit necessitatibus libero quis ipsa voluptatum dignissimos possimus nesciunt vero reprehenderit.
blockquote-tag
"You can cut all the flowers, but you cannot stop the spring from coming."
probably -- Ernesto Che Guevara --
<p class="text text--column-count"><span class="text__initial-letter">L</span>Lorem ipsum</p>
<p class="text text--width-change text--einzug text--line-height-change">Lorem ipsum <span class="text--uppercase">lorem</span><span class="text--smallcaps">lorem</span></p>
Listen-Stile
Listen sind essenziell für die Strukturierung von Inhalten. Diese Bibliothek bietet ein flexibles System für ungeordnete und geordnete Listen, das von einfachen Textaufzählungen bis hin zu komplexen Navigationen mit Icons oder Bildern reicht. Über Modifier lassen sich Abstände, Breiten und die Art der Listenzeichen präzise steuern.
-
list
- Voreingestellte Liste. Wird in das Elternelement eingetragen.
- Konfigurierbar über folgende Variablen:
--list-max-width--list-line-height--list-hyphenate-limit-chars
-
list__link
- Für Links in Listen ohne Decoration. Wird direkt in das entsprechende Element eingetragen.
-
list__link--u
- Für Links in Listen mit Decoration und vererbter Farbe. Wird direkt in das entsprechende Element eingetragen.
-
list__link--active
- Für Links in Listen mit Decoration. Wird direkt in das entsprechende Element eingetragen.
-
list--stil-2
- Ändert maximale Breite, Zeilenhöhe und setzt
margin-top und bottom auf 0. Wird in das Elternelement
eingetragen.
--list-max-width-2--list-line-height-2
- Ändert maximale Breite, Zeilenhöhe und setzt
margin-top und bottom auf 0. Wird in das Elternelement
eingetragen.
-
list--marker-color, list--marker-color-2
- Hiermit erhält man farbige Listenzeichen. Wird in das
Elternelement eingetragen.
--list-style-type-marker--list-style-type-marker-2
- Hiermit erhält man farbige Listenzeichen. Wird in das
Elternelement eingetragen.
-
list--style-type-none
- Entfernt Listenzeichen. Wird in das Elternelement eingetragen.
-
list--style-type-content, list--style-type-content-2
-
Ersetzt die Listenzeichen durch eigene Zeichen. Wird in
das
Elternelement eingetragen.
--list-style-type-content--list-style-type-content-2
-
Ersetzt die Listenzeichen durch eigene Zeichen. Wird in
das
Elternelement eingetragen.
-
list--style-type-img
- Hiermit können Bilder vor die Listeneinträge eingefügt
werden. Wird in das Elternelement eingetragen.
--list-img-width
- Hiermit können Bilder vor die Listeneinträge eingefügt
werden. Wird in das Elternelement eingetragen.
-
list--with-icons
- Hiermit können Icons vor die Listeneinträge eingefügt
werden. Wird in das Elternelement eingetragen.
--list-icon-size--list-icon-fill
- Hiermit können Icons vor die Listeneinträge eingefügt
werden. Wird in das Elternelement eingetragen.
-
list
- list--style-type-none
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis cum praesentium adipisci autem sequi nesciunt.
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Id sit repudiandae magnam eveniet numquam est.
-
list list-stil-2
- Listen-Eintrag
- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Doloribus reprehenderit blanditiis qui odit voluptatum doloremque tenetur cumque omnis dolorem quis.
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis cum praesentium adipisci autem sequi nesciunt.
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, sit! Esse cum error, quibusdam officiis a doloribus commodi labore consequuntur, necessitatibus aliquid modi culpa provident vel vero suscipit illum natus illo sapiente delectus eaque repellat.
- Listen-Eintrag
-
list--marker-color-2
- list--marker-color
- list--style-type-content
- list--marker-color
- list--marker-color
-
list--marker-color
- list--marker-color
- list--style-type-content-2
- list--marker-color
- list--marker-color
- list--with-icons
- list--style-type-img / Anpassungs-Beispiel
-
list--style-type-img, sit amet consectetur
adipisicing elit. Doloribus reprehenderit blanditiis qui odit voluptatum
doloremque tenetur cumque omnis dolorem quis.
-
list--style-type-img, consectetur adipisicing
elit. Veritatis cum praesentium adipisci autem sequi nesciunt.
-
list--style-type-img dolor sit amet
consectetur
adipisicing elit. Fugiat, sit! Esse cum error, quibusdam officiis a
doloribus
commodi labore consequuntur, necessitatibus aliquid modi culpa provident vel
vero suscipit illum natus illo sapiente delectus eaque repellat.
<ul class="list">
<li><strong">list</strong>
<ul class="list--style-type-none">
<li>list--style-type-none
<ul>
<li><a class="list__link--active" href="">list__link--active</a></li>
<li><a class="list__link--u" href="">list__link--u</a></li>
<li><a href="">Lorem ipsum <span class="list__link--active">list__link--active</span> dolor sit amet.</a></li>
</ul>
</li>
<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis cum praesentium adipisci autem sequi nesciunt.</li>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Id sit repudiandae magnam eveniet numquam est.</li>
</ul>
</ul>
Tabellen
Die Table-Komponente stellt strukturierte Datentabellen mit konsistentem Styling bereit. Der Wrapper übernimmt horizontales Scrollen auf kleinen Viewports, während Kopf-, Daten- und Fußbereich über eigene BEM-Elemente gesteuert werden. Zeilen und Zellen lassen sich mit Status-Modifiern, Ausrichtungsklassen und Badges flexibel kennzeichnen. Eine eingebaute JavaScript-Sortierfunktion ermöglicht clientseitiges Sortieren nach String-, Zahlen- und Datumswerten ohne externe Abhängigkeiten.
-
table
- Wrapper-Container für die Tabelle. Ermöglicht horizontales
Scrollen auf kleinen Viewports. Wird um das
<table>-Element gelegt. - Konfigurierbar über folgende Variablen:
--table-bg--table-min-width
- Wrapper-Container für die Tabelle. Ermöglicht horizontales
Scrollen auf kleinen Viewports. Wird um das
-
table__element
- Das eigentliche
<table>-Element. Setzt Basisstile wie Schriftart, Farbe undborder-collapse. Wird auf das<table>-Tag angewendet.
- Das eigentliche
-
table__caption
- Beschriftung oberhalb der Tabelle. Stellt einen Titel oder
Kontext für den Tabelleninhalt bereit. Wird auf das
<caption>-Tag angewendet.
- Beschriftung oberhalb der Tabelle. Stellt einen Titel oder
Kontext für den Tabelleninhalt bereit. Wird auf das
-
table__head
- Kopfbereich der Tabelle mit abgesetztem Hintergrund.
Wird
auf das
<thead>-Tag angewendet.
- Kopfbereich der Tabelle mit abgesetztem Hintergrund.
Wird
auf das
-
table__body
- Datenbereich der Tabelle. Enthält die Zeilen-Striping- und
Hover-Logik. Wird auf das
<tbody>-Tag angewendet.
- Datenbereich der Tabelle. Enthält die Zeilen-Striping- und
Hover-Logik. Wird auf das
-
table__foot
- Fußbereich der Tabelle, z. B. für Summenzeilen. Wird
auf
das
<tfoot>-Tag angewendet.
- Fußbereich der Tabelle, z. B. für Summenzeilen. Wird
auf
das
-
table__row
- Eine Tabellenzeile mit unterem Trennstrich. Wird auf
das
<tr>-Tag angewendet.
- Eine Tabellenzeile mit unterem Trennstrich. Wird auf
das
-
table__head-cell
- Kopfzelle mit Großbuchstaben, erhöhtem Letter-Spacing
und
inverser Textfarbe. Wird auf das
<th>-Tag angewendet.
- Kopfzelle mit Großbuchstaben, erhöhtem Letter-Spacing
und
inverser Textfarbe. Wird auf das
-
table__cell
- Standard-Datenzelle mit definiertem Padding und rechtem
Trennstrich. Wird auf das
<td>-Tag angewendet.
- Standard-Datenzelle mit definiertem Padding und rechtem
Trennstrich. Wird auf das
-
table__badge
- Kleines Pill-Label für Status- oder Typangaben
innerhalb
einer Zelle. Wird als
<span>innerhalb einer Zelle eingesetzt.
- Kleines Pill-Label für Status- oder Typangaben
innerhalb
einer Zelle. Wird als
-
table__sort
- Schaltfläche in einer Kopfzelle zum Sortieren der
Spalte.
Zeigt per Pfeil-Icon die aktuelle Sortierrichtung an. Wird als
<button>innerhalb vontable__head-celleingesetzt. Benötigt das Attributdata-sortmit den Wertenstring,numberoderdate.
- Schaltfläche in einer Kopfzelle zum Sortieren der
Spalte.
Zeigt per Pfeil-Icon die aktuelle Sortierrichtung an. Wird als
-
table__row--success
- Hebt eine Zeile mit grüner Hintergrundfarbe hervor.
Wird
auf
table__rowangewendet.
- Hebt eine Zeile mit grüner Hintergrundfarbe hervor.
Wird
auf
-
table__row--warning
- Hebt eine Zeile mit gelber Hintergrundfarbe hervor.
Wird
auf
table__rowangewendet.
- Hebt eine Zeile mit gelber Hintergrundfarbe hervor.
Wird
auf
-
table__row--danger
- Hebt eine Zeile mit roter Hintergrundfarbe hervor.
Wird
auf
table__rowangewendet.
- Hebt eine Zeile mit roter Hintergrundfarbe hervor.
Wird
auf
-
table__cell--right, table__head-cell--right
- Richtet den Zelleninhalt rechtsbündig aus.
-
table__cell--center, table__head-cell--center
- Richtet den Zelleninhalt zentriert aus.
-
table__cell--mono
- Setzt den Zelleninhalt in Monospace-Schrift, z. B. für Zahlen oder Dateinamen.
-
table__cell--muted, table__head-cell--muted
- Reduziert die Textfarbe auf einen gedämpften Ton für sekundäre Inhalte.
-
table__cell--accent
- Hebt den Zelleninhalt mit Akzentfarbe und Fettschrift hervor.
-
table__badge--success
- Badge in Grün für positive Zustände.
-
table__badge--warning
- Badge in Gelb für Warnzustände.
-
table__badge--danger
- Badge in Rot für kritische Zustände.
-
table__badge--info
- Badge in Blau für neutrale oder informative Zustände.
-
table--bordered
- Fügt dem Wrapper-Container einen äußeren Rahmen hinzu.
Wird auf
tableangewendet.
- Fügt dem Wrapper-Container einen äußeren Rahmen hinzu.
Wird auf
-
table--compact
- Reduziert das Padding aller Zellen für eine platzsparende
Darstellung. Wird auf
tableangewendet. Konfigurierbar über:--table-padding-compact-v--table-padding-compact-h
- Reduziert das Padding aller Zellen für eine platzsparende
Darstellung. Wird auf
-
table--no-stripe
- Deaktiviert den alternierenden Zeilenhintergrund. Wird
auf
tableangewendet.
- Deaktiviert den alternierenden Zeilenhintergrund. Wird
auf
-
table--no-hover
- Deaktiviert den Hover-Effekt auf Zeilen. Wird auf
tableangewendet.
- Deaktiviert den Hover-Effekt auf Zeilen. Wird auf
-
data-sort-value
- Optionales Attribut auf
table__cell. Überschreibt den Textwert beim Sortieren, z. B. für formatierte Zahlen oder Prozentwerte.
- Optionales Attribut auf
| Website Relaunch | M. Bauer | 12.500,00 | Aktiv | 82 % |
| Branding 2025 | S. Müller | 8.000,00 | Pause | 40 % |
| App Prototyp | T. Koch | 21.000,00 | Verzug | 15 % |
| SEO-Kampagne | L. Vogel | 3.200,00 | Aktiv | 95 % |
| Social Media | R. Engel | 5.750,00 | Planung | 5 % |
| Gesamt | 50.450,00 | |||
<div class="table">
<table class="table__element">
<caption class="table__caption">Projektübersicht Q2 2025</caption>
<thead class="table__head">
<tr class="table__row">
<th class="table__head-cell">
<button class="table__sort" data-sort="string">Projekt</button>
</th>
<th class="table__head-cell">
<button class="table__sort" data-sort="string">Verantwortlich</button>
</th>
<th class="table__head-cell table__head-cell--right">
<button class="table__sort" data-sort="number">Budget (€)</button>
</th>
<th class="table__head-cell table__head-cell--center">
<button class="table__sort" data-sort="string">Status</button>
</th>
<th class="table__head-cell table__head-cell--right">
<button class="table__sort" data-sort="number">Fortschritt</button>
</th>
</tr>
</thead>
<tbody class="table__body">
<tr class="table__row">
<td class="table__cell">Website Relaunch</td>
<td class="table__cell table__cell--muted">M. Bauer</td>
<td class="table__cell table__cell--right table__cell--mono">12.500,00</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--success">Aktiv</span>
</td>
<td class="table__cell table__cell--right table__cell--accent" data-sort-value="82">82 %</td>
</tr>
<tr class="table__row">
<td class="table__cell">Branding 2025</td>
<td class="table__cell table__cell--muted">S. Müller</td>
<td class="table__cell table__cell--right table__cell--mono">8.000,00</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--warning">Pause</span>
</td>
<td class="table__cell table__cell--right" data-sort-value="40">40 %</td>
</tr>
<tr class="table__row table__row--danger">
<td class="table__cell">App Prototyp</td>
<td class="table__cell table__cell--muted">T. Koch</td>
<td class="table__cell table__cell--right table__cell--mono">21.000,00</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--danger">Verzug</span>
</td>
<td class="table__cell table__cell--right" data-sort-value="15">15 %</td>
</tr>
<tr class="table__row">
<td class="table__cell">SEO-Kampagne</td>
<td class="table__cell table__cell--muted">L. Vogel</td>
<td class="table__cell table__cell--right table__cell--mono">3.200,00</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--success">Aktiv</span>
</td>
<td class="table__cell table__cell--right table__cell--accent" data-sort-value="95">95 %</td>
</tr>
<tr class="table__row">
<td class="table__cell">Social Media</td>
<td class="table__cell table__cell--muted">R. Engel</td>
<td class="table__cell table__cell--right table__cell--mono">5.750,00</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--info">Planung</span>
</td>
<td class="table__cell table__cell--right" data-sort-value="5">5 %</td>
</tr>
</tbody>
<tfoot class="table__foot">
<tr class="table__row">
<td class="table__cell" colspan="2">Gesamt</td>
<td class="table__cell table__cell--right table__cell--mono table__cell--accent">50.450,00</td>
<td class="table__cell" colspan="2"></td>
</tr>
</tfoot>
</table>
</div>
| Typ | ||||
|---|---|---|---|---|
| 001 | konzept_final.pdf | 2,4 MB | 12.04.2025 | |
| 002 | design_v3.fig | 18,1 MB | 15.04.2025 | FIG |
| 003 | export_web.zip | 4,7 MB | 17.04.2025 | ZIP |
| 004 | praesentation.pptx | 9,2 MB | 03.04.2025 | PPTX |
<div class="table table--compact table--bordered mb-3">
<table class="table__element">
<thead class="table__head">
<tr class="table__row">
<th class="table__head-cell">
<button class="table__sort" data-sort="string">ID</button>
</th>
<th class="table__head-cell">
<button class="table__sort" data-sort="string">Datei</button>
</th>
<th class="table__head-cell table__head-cell--right">
<button class="table__sort" data-sort="number">Größe</button>
</th>
<th class="table__head-cell table__head-cell--right">
<button class="table__sort" data-sort="date">Datum</button>
</th>
<th class="table__head-cell table__head-cell--center">Typ</th>
</tr>
</thead>
<tbody class="table__body">
<tr class="table__row">
<td class="table__cell table__cell--mono table__cell--muted">001</td>
<td class="table__cell">konzept_final.pdf</td>
<td class="table__cell table__cell--right table__cell--mono" data-sort-value="2.4">2,4 MB</td>
<td class="table__cell table__cell--right table__cell--muted">12.04.2025</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--danger">PDF</span>
</td>
</tr>
<tr class="table__row">
<td class="table__cell table__cell--mono table__cell--muted">002</td>
<td class="table__cell">design_v3.fig</td>
<td class="table__cell table__cell--right table__cell--mono" data-sort-value="18.1">18,1 MB</td>
<td class="table__cell table__cell--right table__cell--muted">15.04.2025</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--warning">FIG</span>
</td>
</tr>
<tr class="table__row">
<td class="table__cell table__cell--mono table__cell--muted">003</td>
<td class="table__cell">export_web.zip</td>
<td class="table__cell table__cell--right table__cell--mono" data-sort-value="4.7">4,7 MB</td>
<td class="table__cell table__cell--right table__cell--muted">17.04.2025</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--success">ZIP</span>
</td>
</tr>
<tr class="table__row">
<td class="table__cell table__cell--mono table__cell--muted">004</td>
<td class="table__cell">praesentation.pptx</td>
<td class="table__cell table__cell--right table__cell--mono" data-sort-value="9.2">9,2 MB</td>
<td class="table__cell table__cell--right table__cell--muted">03.04.2025</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--info">PPTX</span>
</td>
</tr>
</tbody>
</table>
</div>
| Abteilung | Verfügbarkeit | ||
|---|---|---|---|
| Anna Bergmann | Design | 01.03.2022 | Verfügbar |
| Jonas Keller | Entwicklung | 15.07.2021 | Teilzeit |
| Maria Hartmann | Marketing | 10.11.2023 | Verfügbar |
| Felix Wagner | Vertrieb | 05.01.2020 | Abwesend |
<div class="table table--no-stripe table--no-hover">
<table class="table__element">
<caption class="table__caption">Mitarbeitende</caption>
<thead class="table__head">
<tr class="table__row">
<th class="table__head-cell">
<button class="table__sort" data-sort="string">Name</button>
</th>
<th class="table__head-cell">Abteilung</th>
<th class="table__head-cell table__head-cell--center">
<button class="table__sort" data-sort="date">Eintrittsdatum</button>
</th>
<th class="table__head-cell table__head-cell--center">Verfügbarkeit</th>
</tr>
</thead>
<tbody class="table__body">
<tr class="table__row table__row--success">
<td class="table__cell">Anna Bergmann</td>
<td class="table__cell table__cell--muted">Design</td>
<td class="table__cell table__cell--center">01.03.2022</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--success">Verfügbar</span>
</td>
</tr>
<tr class="table__row table__row--warning">
<td class="table__cell">Jonas Keller</td>
<td class="table__cell table__cell--muted">Entwicklung</td>
<td class="table__cell table__cell--center">15.07.2021</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--warning">Teilzeit</span>
</td>
</tr>
<tr class="table__row">
<td class="table__cell">Maria Hartmann</td>
<td class="table__cell table__cell--muted">Marketing</td>
<td class="table__cell table__cell--center">10.11.2023</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--success">Verfügbar</span>
</td>
</tr>
<tr class="table__row table__row--danger">
<td class="table__cell">Felix Wagner</td>
<td class="table__cell table__cell--muted">Vertrieb</td>
<td class="table__cell table__cell--center">05.01.2020</td>
<td class="table__cell table__cell--center">
<span class="table__badge table__badge--danger">Abwesend</span>
</td>
</tr>
</tbody>
</table>
</div>
Layout
Gestaltungsraster, Flexbox und Grid – die Layout-Module stellen alle Bausteine für den strukturellen Aufbau einer Seite bereit. Für das Seitenlayout stehen vorgefertigte Templates sowie ein konfigurierbares Custom-Layout zur Verfügung, jeweils über responsive Suffixe ab definierten Breakpoints aktivierbar. Flexbox- und Grid-Klassen decken den Großteil struktureller Anforderungen direkt im Markup ab, ohne eigene CSS-Regeln schreiben zu müssen.
Gestaltungsraster
Es stehen vier vorgefertigte Layout-Templates zur Auswahl. Diese können
verwendet
werden wenn der body aus folgenden Elementen besteht und
direkte
Kinder dessen sind: header, nav, main, aside (nur einmal),
footer.
Neben den voreingestellten Layouts kann auch ein Custom-Layout verwednet
werden.
Dieses ist in der variables.css an den --layout-custom...
Variablen
konfigurierbar – unset schließt Container im body für das Layout aus.
Spalten-Breiten und -Höhen sind an den Variablen
--layout-column-width
und --layout-row-heigth einstellbar.
HINWEIS:
Sticky Container brauchen u.U. einen Workaround um sticky zu bleiben. Es
kann
helfen dem Container 0.1 viewHeight zu geben – nutze die Klasse
vh-1 oder vh-100 mit dem selben
Suffix wie das Template – ZB vh-1-lg.
-
layout
- Zu verwendender Block-Name für die Layout-Templates.
-
layout--theatre-suffix
- An folgenden Variablen Konfiguriebar:
--layout-column-width--layout-row-heigth--layout-gap
- An folgenden Variablen Konfiguriebar:
-
layout--brick-suffix
-
--layout-column-width--layout-row-heigth--layout-gap
-
-
layout--shelve-suffix
-
--layout-column-width--layout-row-heigth--layout-gap
-
-
layout--spin-suffix
-
--layout-column-width--layout-row-heigth--layout-gap
-
-
layout--custom-suffix
-
--layout-item-1-column(1-10)--layout-item-1-row(1-10)--layout-column-width--layout-row-heigth--layout-gap
-
-
-sm
- schaltet das Layout ab 480px frei
-
-md
- schaltet das Layout ab 768px frei
-
-lg
- schaltet das Layout ab 1024px frei
-
-xl
- schaltet das Layout ab 1280px frei
-
-xxl
- schaltet das Layout ab 1440px frei
Die Layout-Klassen sind an die frayme-Viewports geknüpft. Mit folgenden Suffix's werden die Klassen verwendet:
Es existieren keine Klassen die über alle Viewports hinweg greifen – erst ab einer Breite von 480px können die Layouts verwendet werden. Also beispielsweise mit der Klasse layout--brick-sm wird das layout nach oben hin für alle Breiten aktiviert.
layout--theatre
header
nav
main
aside
layout--brick
header
nav
main
aside
layout--shelve
header
nav
main
aside
layout--spin
header
nav
main
aside
<div class="main-wrapper-center layout layout--shelve-sm layout--theatre-xl">
<header></header>
<nav></nav>
<main></main>
<aside></aside>
<footer></footer>
</div>
<div class="main-wrapper-center-mw layout layout--custom-md">
<div></div>
<section></section>
<section></section>
<div></div>
<div></div>
<section></section>
<section></section>
<section></section>
</div>
Flexbox
Die Flexbox-Utility-Klassen ermöglichen eine schnelle, deklarative Steuerung von Layouts direkt im Markup – ohne eigene CSS-Regeln schreiben zu müssen. Alle Klassen basieren auf den gängigen Flexbox-Eigenschaften und lassen sich durch responsive Suffixe gezielt für bestimmte Viewport-Breiten aktivieren. Sie eignen sich besonders für strukturelle Anpassungen in Kombination mit bestehenden Block-Komponenten.
-
Display & Direction
- Setzt
display: flexsowie die Ausrichtung der Hauptachse..flex.flex-row.flex-column.flex-1–flex: 1.flex-wrap
- Setzt
-
justify-content
- Steuert die Verteilung der Elemente entlang der Hauptachse.
.jc-start.jc-end.jc-center.jc-between.jc-around.jc-evenly
- Steuert die Verteilung der Elemente entlang der Hauptachse.
-
align-items
- Steuert die Ausrichtung der Elemente entlang der Querachse.
.ai-start.ai-end.ai-center.ai-stretch.ai-baseline
- Steuert die Ausrichtung der Elemente entlang der Querachse.
-
align-self
- Überschreibt
align-itemsfür ein einzelnes Kind-Element..as-start.as-end.as-center.as-stretch.as-baseline
- Überschreibt
-
align-content
- Steuert mehrzeilige Flex-Container entlang der Querachse (wirkt nur bei
flex-wrap)..ac-start.ac-end.ac-center.ac-stretch.ac-baseline
- Steuert mehrzeilige Flex-Container entlang der Querachse (wirkt nur bei
-
flex-row + justify-content (kombiniert)
- Kurzklassen für die häufig verwendete Kombination aus
flex-direction: rowundjustify-content..flex-row-start.flex-row-end.flex-row-center.flex-row-between.flex-row-around.flex-row-evenly
- Kurzklassen für die häufig verwendete Kombination aus
-
flex-row-reverse + justify-content (kombiniert)
- Wie oben, jedoch mit umgekehrter Zeilenrichtung
(
row-reverse)..flex-row-reverse-start.flex-row-reverse-end.flex-row-reverse-center.flex-row-reverse-between.flex-row-reverse-around.flex-row-reverse-evenly
- Wie oben, jedoch mit umgekehrter Zeilenrichtung
(
-
flex-column + justify-content (kombiniert)
- Kurzklassen für
flex-direction: columnkombiniert mitjustify-content..flex-column-start.flex-column-end.flex-column-center.flex-column-between.flex-column-around.flex-column-evenly
- Kurzklassen für
-
flex-column-reverse + justify-content (kombiniert)
- Wie oben, jedoch mit umgekehrter Spaltenrichtung
(
column-reverse)..flex-column-reverse-start.flex-column-reverse-end.flex-column-reverse-center.flex-column-reverse-between.flex-column-reverse-around.flex-column-reverse-evenly
- Wie oben, jedoch mit umgekehrter Spaltenrichtung
(
- Alle Klassen sind mit einem responsiven Suffix kombinierbar, z. B.
.flex-row-center-md. Die Klasse greift dann ausschließlich ab dem angegebenen Breakpoint. -
-sm
- aktiviert die Klasse ab 480px
-
-md
- aktiviert die Klasse ab 768px
-
-lg
- aktiviert die Klasse ab 1024px
-
-xl
- aktiviert die Klasse ab 1280px
-
-xxl
- aktiviert die Klasse ab 1440px
Grid
Das Grid-System basiert auf CSS Grid und bietet zwei grundlegende Ansätze: .grid-resp für ein automatisch responsives Raster, dessen Spaltenbreiten über die CSS-Variablen --min-col-width und --max-col-width in der variables.css gesteuert werden, sowie feste Spaltenklassen von .grid--1 bis .grid--20 für explizite Spaltendefinitionen. Ergänzend ermöglichen die Subgrid-Klassen gleichmäßige Zeilenhöhen über mehrere Kind-Elemente hinweg. Alle festen Spaltenklassen sind über responsive Suffixe ab definierten Breakpoints aktivierbar.
-
grid-resp
- Automatisch responsives Raster ohne Breakpoints.
--min-col-width– Mindestspaltenbreite (anpassbar invariables.css)--max-col-width– Maximale Spaltenbreite (anpassbar invariables.css)
- Automatisch responsives Raster ohne Breakpoints.
-
grid
- Setzt
display: gridundheight: 100%auf das Element.
- Setzt
-
grid__item--nostretch
- Verhindert das Strecken eines Grid-Kindes – setzt
justify-self: startundalign-self: start.
- Verhindert das Strecken eines Grid-Kindes – setzt
-
grid--row-subgrid-1 – grid--row-subgrid-5
- Erzeugt gleichmäßige Zeilenhöhen über Kind-Elemente hinweg mittels
subgrid.- grid--row-subgrid-1 =
span 1 - grid--row-subgrid-2 =
span 2 - grid--row-subgrid-3 =
span 3 - grid--row-subgrid-4 =
span 4 - grid--row-subgrid-5 =
span 5
- grid--row-subgrid-1 =
- Erzeugt gleichmäßige Zeilenhöhen über Kind-Elemente hinweg mittels
-
grid--column-subgrid-1 – grid--column-subgrid-5
- Erzeugt gleichmäßige Spaltenbreiten über Kind-Elemente hinweg mittels
subgrid.- grid--column-subgrid-1 =
span 1 - grid--column-subgrid-2 =
span 2 - grid--column-subgrid-3 =
span 3 - grid--column-subgrid-4 =
span 4 - grid--column-subgrid-5 =
span 5
- grid--column-subgrid-1 =
- Erzeugt gleichmäßige Spaltenbreiten über Kind-Elemente hinweg mittels
-
grid--1 – grid--20
- Definiert ein festes Spaltenlayout mit gleich breiten Spalten
(
1fr).- grid--1 =
1 Spalter - grid--6 =
6 Spalter - …
- grid--12 =
12 Spalter
- grid--1 =
- Definiert ein festes Spaltenlayout mit gleich breiten Spalten
(
-
col--1 – col--20
- Legt falls gewünscht die breite eines Grid-Items fest
(
1fr).- col--2 =
Item spannt über 2 spalten - col--3 =
Item spannt über 3 spalten
- col--2 =
- Legt falls gewünscht die breite eines Grid-Items fest
(
- Alle Spaltenklassen (
grid--1bisgrid--20) und (col--1biscol--20) sind mit einem responsiven Suffix kombinierbar, z. B..grid--3-md. Die Klasse greift dann ausschließlich ab dem angegebenen Breakpoint. -
-sm
- aktiviert die Klasse ab 480px
-
-md
- aktiviert die Klasse ab 768px
-
-lg
- aktiviert die Klasse ab 1024px
-
-xl
- aktiviert die Klasse ab 1280px
-
-xxl
- aktiviert die Klasse ab 1440px
Grid – responsiv
4:5 cover
1:1 cover
16:9 contain
<div class="grid grid--1 grid--2-sm grid--3-md grid--3-lg grid--4-xxl gap-1">
<div class="b-full-1 br-full aspect-1-1 bg-neutral-300 alpha-30 col--2-xxl">
<img src="" alt="" class="img--cover-center">
</div>
<div class="b-full-1 br-full aspect-1-1 bg-neutral-300 alpha-30">
<img src="" alt="" class="img--cover-center">
</div>
<div class="b-full-1 br-full aspect-1-1 bg-neutral-300 alpha-30">
<img src="" alt="" class="img--cover-center">
</div>
<div class="b-full-1 br-full aspect-1-1 bg-neutral-300 alpha-30">
<img src="" alt="" class="img--cover-center">
</div>
<div class="b-full-1 br-full aspect-1-1 bg-neutral-300 alpha-30">
<p class="text m-none alpha-100">16:9 contain</p>
<img src="" alt="" class="img--contain-center">
</div>
<div class="b-full-1 br-full aspect-4-5 bg-neutral-300 alpha-30">
<p class="text m-none alpha-100">4:5 cover</p>
<img src="" alt="" class="img--cover-center">
</div>
</div>
Subgrid
Mit CSS Subgrid lassen sich Kindelemente direkt in das Raster des Elterncontainers einbinden – ohne eigene Grid-Definitionen. Verschachtelte Elemente erben die Track-Größen des übergeordneten Grids, was präzise, konsistente Ausrichtung über Komponentengrenzen hinweg ermöglicht. Besonders nützlich für Formulare, Karten-Layouts und komplexe UI-Strukturen.
Überschrift
Lorem ipsum dolor sit amet consectetur adipisicing elit. Recusandae non deleniti aut magnam architecto quasi debitis voluptates dignissimos minus quos.

Überschrift
Subtitel
<div class="grid grid--2 gap-1 mb-3">
<div class="grid--row-subgrid-3">
<div><h4>Überschrift</h4></div>
<div><p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p></div>
<div><img class="aspect-1-1 img--cover-center" src="" alt=""></div>
</div>
<div class="grid--row-subgrid-3">
<div><h4>Überschrift<br>Subtitel</h4></div>
<div>Lorem, ipsum dolor.</div>
<div><img class="aspect-1-1 img--cover-center" src="" alt=""></div>
</div>
</div>
Container
Wrapper
Der .main-wrapper dient als zentrales Layout-Element und begrenzt die maximale Breite des Hauptinhalts über die CSS-Variable --side-max-width, die in der variables.css individuell angepasst werden kann. Durch margin: auto wird der Wrapper automatisch horizontal zentriert und bleibt so stets in der Mitte der Seite – unabhängig von der Bildschirmbreite. Das padding: 0 stellt sicher, dass kein ungewollter Innenabstand entsteht, der das Layout beeinflussen könnte. Damit eignet sich .main-wrapper ideal als äußerer Container für den gesamten Seiteninhalt.
-
.main-wrapper
max-width: var(--side-max-width)– begrenzt die Breite auf den Wert der CSS-Variable--side-max-width, welche in dervariables.cssangepasst werden kannmargin: auto– zentriert den Block horizontalpadding: 0– entfernt den Standard-Innenabstand
Abstände
Padding, Margin, Scroll-Margin und Gap – alle Abstände basieren auf einem gemeinsamen Ausgangswert von 16px und skalieren nach dem Goldenen Schnitt. Jede Klasse ist in statischer und fluider Variante verfügbar und lässt sich über responsive Suffixe auf bestimmte Breakpoints beschränken.
Der Multiplikator kann an der Variable --multiplikator-distance verändert werden
Die Grundlage der responsiven Abstände wurden nach Augenmaß erstellt. Sie wird duch die Variable --space-1-resp representiert und kann an dieser verändert werden. Alle weiteren responsieven Abstände folgen standardmäßig dem Golden Schnitt.
Abestände nur in bestimmten Viewports
Nutze die folgenden Klassen mit dem jeweiligen Suffix für den jeweiligen Viewport.
- -sm = min-width: 480px
- -md = min-width: 768px
- -lg = min-width: 1024px
- -xl = min-width: 1280px
- -xxl = min-width: 1440px
Beispiel: mt-3-lg
padding
Diese Utility-Klassen ermöglichen eine schnelle und konsistente Steuerung von Innenabständen. Sie basieren auf einem logischen Stufensystem, das entweder statische Werte (rem) oder fluide, responsive Werte verwendet. Die Berechnung erfolgt über einen zentralen Multiplikator, um harmonische Abstände im gesamten Layout zu garantieren.
-
p, pt, pe, pb, ps (1-9)
- Klassen für alle Seiten (p), Top (pt), Right (pe), Bottom (pb) und Left (ps).
- Werte:
[prefix]-1= 1rem (--space-1)-
[prefix]-2= p-1 * --multiplikator-distance - ... bis
[prefix]-9
-
p, pt, pe, pb, ps (n1-n5)
- Negative/Verkleinerte Abstufungen unterhalb des Ausgangswerts.
- Werte:
-
[prefix]-n1= p-1 / --multiplikator-distance -
[prefix]-n2= p-n1 / --multiplikator-distance
-
-
p-resp bis ps-resp (1-9)
- Fluide Abstände, die sich der Viewport-Breite anpassen.
- Beispiel-Berechnung:
-
[prefix]-1-resp= 0.3rem, 1.39vw + 0.21px, 1.1rem (--space-1-resp) -
[prefix]-2-resp= p-1-resp * --multiplikator-distance
-
-
p-none, pt-none, pe-none, pb-none, ps-none
- Setzt den jeweiligen Innenabstand auf
0 !important.
- Setzt den jeweiligen Innenabstand auf
-
padding-x-ignore, padding-y-ignore
- Ignoriert das Padding auf der X- oder Y-Achse des Elterncontaiers.
margin
Die Margin-Klassen dienen der Steuerung von Außenabständen zwischen Elementen. Sie folgen derselben Logik wie die Padding-Utilities und bieten zusätzlich die Option für automatische Abstände (auto), um Elemente innerhalb von Containern flexibel zu positionieren.
-
m, mt, me, mb, ms (1-9)
- Klassen für alle Seiten (m), Top (mt), Right (me), Bottom (mb) und Left (ms).
- Werte:
[prefix]-1= 1rem (--space-1)-
[prefix]-2= m-1 * --multiplikator-distance - ... bis
[prefix]-9
-
m, mt, me, mb, ms (n1-n5)
- Verkleinerte Abstufungen unterhalb des Basiswerts.
- Werte:
-
[prefix]-n1= m-1 / --multiplikator-distance -
[prefix]-n2= m-n1 / --multiplikator-distance
-
-
m-resp bis ms-resp (1-9)
- Fluide Außenabstände basierend auf Viewport-Variablen.
- Beispiel-Berechnung:
-
[prefix]-1-resp= 0.3rem, 1.39vw + 0.21px, 1.1rem (--space-1-resp) -
[prefix]-2-resp= m-1-resp * --multiplikator-distance
-
-
m-auto bis ms-auto
- Setzt den Außenabstand auf
auto !important(zentrieren/schieben).
- Setzt den Außenabstand auf
-
m-none bis ms-none
- Setzt den Außenabstand auf
0 !important.
- Setzt den Außenabstand auf
scroll-margin
Diese Utilities steuern den scroll-margin, um
sicherzustellen,
dass Elemente (z. B. Anker-Ziele) beim Ansteuern nicht direkt am Rand des Viewports oder
unter
fixierten Headern kleben. Sie nutzen dasselbe skalierbare System wie die Padding- und
Margin-Klassen.
-
scroll-m (1-9)
- Klassen für den Scroll-Margin aller Seiten.
- Werte:
scroll-m-1= 1rem (--space-1)scroll-m-2= scroll-m-1 * --multiplikator-distance- ... bis
scroll-m-9
-
scroll-m (n1-n5)
- Verkleinerte Scroll-Abstände unterhalb des Basiswerts.
- Werte:
scroll-m-n1= scroll-m-1 / --multiplikator-distancescroll-m-n2= scroll-m-n1 / --multiplikator-distance
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
gap
Diese Utilities definieren die Abstände zwischen Elementen in Flexbox- und
Grid-Layouts. Während gap beide Achsen gleichzeitig bedient, erlauben
row-gap und column-gap eine präzise Steuerung der vertikalen bzw.
horizontalen Zwischenräume.
-
gap, row-gap, column-gap (1-9)
- Klassen für beide Achsen (gap), Zeilen (row-gap) oder Spalten (column-gap).
- Werte:
[prefix]-1= 1rem (--space-1)-
[prefix]-2= [prefix]-1 * --multiplikator-distance - ... bis
[prefix]-9
-
gap, row-gap, column-gap (n1-n5)
- Kompaktere Abstände unterhalb des Basiswerts.
- Werte:
-
[prefix]-n1= [prefix]-1 / --multiplikator-distance -
[prefix]-n2= [prefix]-n1 / --multiplikator-distance
-
-
gap-resp, row-gap-resp, column-gap-resp (1-9)
- Fluide Abstände, die sich automatisch der Bildschirmgröße anpassen.
- Werte:
-
[prefix]-1-resp= 0.3rem, 1.39vw + 0.21px, 1.1rem (--space-1-resp) -
[prefix]-2-resp= [prefix]-1-resp * --multiplikator-distance
-
-
gap-none, row-gap-none, column-gap-none
- Setzt den jeweiligen Abstand auf
0 !important.
- Setzt den jeweiligen Abstand auf
Farben
Das Farbsystem von frayme wird zentral über
CSS-Variablen in der variables.css definiert. Jede Farbe steht
als Utility-Klasse für background-color, color und border
zur Verfügung. Dark-Mode wird systemseitig unterstützt; statische und
invertierte Varianten ermöglichen eine gezielte Steuerung unabhängig vom aktiven Theme.
Transparenzsteuerung
Die Deckkraft (Alpha-Kanal) von Farben kann auf zwei Arten gesteuert werden:
-
Direkt in CSS-Regeln
Die Transparenz wird innerhalb der jeweiligen CSS-Regeln durch die Angabe des Alpha-Werts (z.B. rgba(var(--text-primary), var(--alpha, 1))) definiert. -
Selektiv über Utility-Klassen
Alternativ stehen Hilfsklassen (alpha-0 bis alpha-100 in 5%-Schritten) zur Verfügung, um die Deckkraft direkt im HTML zu steuern. Diese Klassen wirken sich auf:- background-color
- color (Textfarbe)
- border-color
Wichtig: Die Klassen überschreiben die Deckkraft relativ zum Elternelement. Das bedeutet, dass sich die Transparenzwerte innerhalb eines Containers kumulativ von 0% bis 100% überlagern können.
<div class="alpha-50">
<p class="alpha-75">Text mit 75% Deckkraft (relativ zum Eltern-Element).</p>
</div>
Haupt-Farben
Es sind default drei Hauptfarben definiert.
Anpassbar
in:
variables.css unter --primary,
--secondary und tertiary.
Sie
stehen
als
folgende Hilfsklassen zur Verfügung:
primary
background-color
border
color
<div class="bg-primary"></div>
<div class="border-primary"></div>
<div class="text-primary"></div>
secondary
background-color
border
color
<div class="bg-secondary"></div>
<div class="border-secondary"></div>
<div class="text-secondary"></div>
tertiary
background-color
border
color
<div class="bg-tertiary"></div>
<div class="border-tertiary"></div>
<div class="text-tertiary"></div>
Hintergrund-Farben
Es sind für beide Modi zwei Hintergrundfarben definiert.
Anpassbar in: variables.css unter
--background-1 und --background-1.
Sie
stehen als folgende Hilfsklassen zur Verfügung:
background-1
background-color
border
color
<div class="bg-background-1"></div>
<div class="border-background-1"></div>
<div class="text-background-1"></div>
background-2
background-color
border
color
<div class="bg-background-2"></div>
<div class="border-background-2"></div>
<div class="text-background-2"></div>
Schrift-Farben
Schriftfarben & Theme-Logik
Die Schriftfarben sind so konzipiert, dass sie sich wie alle anderen Farben automatisch im Darkmode anpassen. Ergänzend stehen statische und invertierte Varianten zur Verfügung.
-
Einsatz & Logik Die Steuerung erfolgt über drei zentrale
Logik-Ebenen:
-
Dynamische Anpassung:
--fcolorund--fcolor-invertwechseln automatisch (z. B. dunkel → hell). -
Statische Farben:
--fcolor-staticbleibt unabhängig vom Theme (ideal für feste Hintergründe wie Cards). -
Invertierung: Die
-invert-Varianten stellen immer den Kontrast zur Basis-Farbe her.
-
Dynamische Anpassung:
-
Theme-Wechsel & Anpassung Die globale Steuerung erfolgt über
die
variables.css, um eine konsistente Aktualisierung aller
Elemente zu
gewährleisten:
-
Hauptfarben: Anpassung von
--fcolorwirkt sich sofort auf alle.text-fcolorKlassen aus. -
Darkmode-Optimierung: Werte werden spezifisch im
:root[theme="dark"]Block getauscht.
-
Hauptfarben: Anpassung von
Wichtig: Statische Farben (fcolor-static bzw. fcolor-static-invert) sollten nur dann eingesetzt werden, wenn sich der Hintergrund eines Elements beim Theme-Wechsel nicht verändert, um die Lesbarkeit zu garantieren.
fcolor
color
<div class="text-fcolor"></div>
fcolor-invert
color
<div class="text-fcolor-invert"></div>
fcolor-static
color
border
<div class="text-fcolor-static"></div>
<div class="border-fcolor-static"></div>
fcolor-static-invert
color
border
<div class="text-fcolor-static-invert"></div>
<div class="border-fcolor-static-invert"></div>
Rahmen-Farben
Border-Farben (CSS-System)
Das System für Border-Farben funktioniert analog zu den Schriftfarben, nutzt jedoch spezifische Variablen, um Rahmen und Trennlinien unabhängig steuern zu können:
-
Variablen & Logik Die Definition erfolgt über zentrale
CSS-Variablen,
die den Kontrast zum Hintergrund sicherstellen:
- --bcolor: Standard-Border-Farbe (z. B. für Rahmen oder Trennlinien).
-
--bcolor-invert: Gegenteilige Farbe zu
--bcolor(für Kontrast auf farbigen Flächen).
-
Utility-Klassen für HTML Um die Farben direkt im Markup
zuzuweisen,
stehen folgende Klassen zur Verfügung:
- .border-bcolor: Wendet die Standard-Border-Farbe an.
- .border-bcolor-invert: Wendet die invertierte Border-Farbe an.
Hinweis: Die Funktionsweise (Darkmode, Theme-Wechsel) entspricht exakt der Logik der Schriftfarben. Statische Varianten existieren hier nicht, da Border-Farben in der Regel immer dynamisch an das aktive Theme angepasst werden.
bcolor
border
<div class="border-bcolor"></div>
bcolor-invert
border
<div class="border-bcolor-invert"></div>
bcolor-static
border
<div class="border-bcolor-static"></div>
bcolor-static-invert
border
<div class="border-bcolor-static-invert"></div>
Schatten-Farben
Schatten-Farben (CSS-System)
Das System für Schatten-Farben ermöglicht eine präzise Steuerung von Box-Shadows. Es nutzt eigene Variablen, um Schattierungen unabhängig von Text- oder Rahmenfarben anpassen zu können:
-
Variablen & Logik Die Definition der Schattenfarbe erfolgt über
zentrale Variablen, die sich harmonisch in das Theme einfügen:
- --scolor: Standard-Schattenfarbe (z. B. für weiche Schatten auf hellen Flächen).
- --scolor-invert: Invertierte Schattenfarbe (für Kontrasteffekte auf dunklen oder farbigen Hintergründen).
- --scolor-static: statische Schattenfarbe um einen wechsel der Schattenfarbe beim Themewechsel zu verhindern.
- --scolor-static-invert: Invertierte, statische Schattenfarbe (für Kontrasteffekte auf dunklen oder farbigen Hintergründen).
-
Utility-Klassen für HTML Es stehen folgende Klassen für
innere-,
äußere- und Text-Schatten zur Verfügung:
-
Inset-Shadows:
.shadow-1-insetund.shadow-2-inset(inkl. static/invert Varianten) für nach innen gerichtete Schatten. -
Text-Shadows:
.text-shadow-1bis.text-shadow-3zur Akzentuierung von Schriftarten.
-
Inset-Shadows:
Hinweis: Die Funktionsweise hinsichtlich Darkmode und Theme-Wechsel ist identisch mit dem System der Schriftfarben. Auf statische Varianten wurde hier verzichtet, da Schatten in der Regel immer dynamisch auf den Hintergrund des gewählten Themes reagieren müssen.
weiter zu Schatten Klassen
--scolor
shadow Variablen
--scolor-invert
shadow Variablen
--scolor-static
shadow Variablen
--scolor-static-invert
shadow Variablen
Semantische-Farben
Es sind einige Semantische Farben definiert.
Anpassbar
in: variables.css unter --success,
--warning, --error, --info und
--highlight.
Sie stehen als folgende
Hilfsklassen zur Verfügung:
success
background-color
border
color
<div class="bg-success"></div>
<div class="border-success"></div>
<div class="text-success"></div>
warning
background-color
border
color
<div class="bg-warning"></div>
<div class="border-warning"></div>
<div class="text-warning"></div>
error
background-color
border
color
<div class="bg-error"></div>
<div class="border-error"></div>
<div class="text-error"></div>
info
background-color
border
color
<div class="bg-info"></div>
<div class="border-info"></div>
<div class="text-info"></div>
highlight
background-color
border
color
<div class="bg-highlight"></div>
<div class="border-highlight"></div>
<div class="text-highlight"></div>
Funktionale-Farben
Es sind einige Semantische Farben definiert.
Anpassbar
in: variables.css unter --custom-1,
--warning und --neutral-00 - 1500 (in 100er
Schritten).
Sie stehen als folgende Hilfsklassen
zur
Verfügung:
neutral
background-color
border
color
<div class="bg-neutral-100"></div>
<div class="border-neutral-100"></div>
<div class="text-neutral-100"></div>
000
background-color
border
color
<div class="bg-000"></div>
<div class="border-000"></div>
<div class="text-000"></div>
fff
background-color
border
color
<div class="bg-fff"></div>
<div class="border-fff"></div>
<div class="text-fff"></div>
custom-1
background-color
border
color
<div class="bg-custom-1"></div>
<div class="border-custom-1"></div>
<div class="text-custom-1"></div>
custom-2
background-color
border
color
<div class="bg-custom-2"></div>
<div class="border-custom-2"></div>
<div class="text-custom-2"></div>
custom-3
background-color
border
color
<div class="bg-custom-3"></div>
<div class="border-custom-3"></div>
<div class="text-custom-3"></div>
Aussehen
Border / Border-Radius
Border, Border-Radius, Schatten, Bilddarstellung und Seitenverhältnisse –
diese visuellen Utilities steuern das äußere Erscheinungsbild von
Elementen. Alle Werte sind über CSS-Variablen in der
variables.css zentral konfigurierbar und lassen sich per responsivem
Suffix auf bestimmte Breakpoints beschränken.
Border & Border-Radius nur in bestimmten Viewports
Nutze die folgenden Klassen mit dem jeweiligen Suffix für den jeweiligen Viewport.
- -sm = min-width: 480px
- -md = min-width: 768px
- -lg = min-width: 1024px
- -xl = min-width: 1280px
- -xxl = min-width: 1440px
Beispiel: b-full-1-lg
-
b-full, b-top, b-right, b-bottom, b-left (1–3)
- Klassen für alle Seiten (b-full), Top (b-top), Right (b-right), Bottom (b-bottom) und Left (b-left).
- Werte:
[prefix]-1= var(--border-1)[prefix]-2= var(--border-2)[prefix]-3= var(--border-3)
- Farbe:
rgba(var(--bcolor), var(--alpha, 1))
-
b-none
- Entfernt alle Borders:
border: 0px !important
- Entfernt alle Borders:
-
b-top-0, b-right-0, b-bottom-0, b-left-0
- Entfernt den Border der jeweiligen Seite auf
0px !important.
- Entfernt den Border der jeweiligen Seite auf
-
b-dotted, b-dashed
- Ändert den Border-Style auf
dottedbzw.dashed.
- Ändert den Border-Style auf
-
br-full, br-top, br-top-left, br-top-right, br-right, br-bottom,
br-bottom-left, br-bottom-right, br-left
- Setzt den Border-Radius über CSS-Variablen (
--br-top-left,--br-top-rightetc.). - Verfügbar in drei Größen:
br-[side]= normal (var(--br-*))-
br-medium-[side]= mittel (var(--br-medium-*)) -
br-big-[side]= groß (var(--br-big-*))
- Setzt den Border-Radius über CSS-Variablen (
-
br-round
- Setzt den Border-Radius auf
50% !important(Kreis/Pill).
- Setzt den Border-Radius auf
-
br-none, br-top-0, br-top-left-0, br-top-right-0, br-right-0,
br-bottom-0,
br-bottom-left-0, br-bottom-right-0, br-left-0
- Setzt den Border-Radius der jeweiligen Ecke(n) auf
0 !important.
- Setzt den Border-Radius der jeweiligen Ecke(n) auf
Schatten
Die Shadow-Klassen ermöglichen das schnelle Anwenden von Box- und Text-Schatten über Utility-Klassen. Die Schatten-Werte werden über CSS-Variablen in der variables.css definiert und können dort zentral angepasst werden. Box-Schatten sind in sechs Intensitätsstufen verfügbar, jeweils mit Varianten für invertierte, statische und Inset-Schatten. Für Texte stehen vier Schattenstufen bereit.
-
shadow-none
- Entfernt jeden Box-Schatten vom Element.
-
shadow-1 – shadow-6
- Sechs Varianten für Box-Schatten. Jede Stufe ist in vier Farbmodi
verfügbar, die das Verhalten im Dark Mode steuern. Die Schatten-Werte
sind
in der
variables.cssanpassbar.- (ohne Suffix) – normale Farbe, invertiert sich automatisch im Dark Mode
- -invert – invertierte Farbe, wechselt zurück im Dark Mode
- -static – normale Farbe, bleibt im Dark Mode unverändert
- -static-invert – invertierte Farbe, bleibt im Dark Mode unverändert
- Sechs Varianten für Box-Schatten. Jede Stufe ist in vier Farbmodi
verfügbar, die das Verhalten im Dark Mode steuern. Die Schatten-Werte
sind
in der
-
shadow-1-inset – shadow-2-inset
- Nach innen gerichteter Schatten (
inset) in zwei Varianten. Ebenfalls in allen vier Farbmodi verfügbar.- (ohne Suffix) – normale Farbe, invertiert sich automatisch im Dark Mode
- -invert – invertierte Farbe, wechselt zurück im Dark Mode
- -static – normale Farbe, bleibt im Dark Mode unverändert
- -static-invert – invertierte Farbe, bleibt im Dark Mode unverändert
- Nach innen gerichteter Schatten (
-
text-shadow-1 – text-shadow-3 und text-outline
- Setzt einen Text-Schatten in vier Varianten. Die Werte sind in der
variables.cssanpassbar.- text-shadow-1
- text-outline
- Setzt einen Text-Schatten in vier Varianten. Die Werte sind in der
shadow-1
shadow-2
shadow-3
shadow-4
shadow-5
shadow-6
shadow-1-inset
shadow-2-inset
text-shadow-1
Schatten
text-shadow-2
Schatten
text-shadow-3
Schatten
text-outline
Schatten
Images
- .img--cover-top
- .img--cover-center
-
.img--cover-bottom
- = width: 100%; height: 100%; display: block; object-fit: cover; object-position: X;
- .img--contain-top
- .img--contain-center
-
.img--contain-bottom
- = width: 100%; height: 100%; display: block; object-fit: contain; object-position: X center;
HINWEIS: In img-tag eintragen.
Seitenverhältnisse
Aspect
- aspect-1-1 – aspect-191-1
- Setzt
aspect-ratioundoverflow: hiddenauf das Element.- aspect-1-1 =
1 / 1 - aspect-4-3 =
4 / 3 - aspect-3-2 =
3 / 2 - aspect-16-9 =
16 / 9 - aspect-2-1 =
2 / 1 - aspect-21-9 =
21 / 9 - aspect-5-4 =
5 / 4 - aspect-4-5 =
4 / 5 - aspect-9-16 =
9 / 16 - aspect-191-1 =
1.91 / 1
- aspect-1-1 =
- Setzt
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
HINWEIS: Alle mit overflow = hidden.
Animationen
-- coming soon --
Weiteres
Ebenen, Positionen, Größen sowie kleinere Utilities wie Blur, Display und Overflow – dieser Abschnitt fasst ergänzende Klassen zusammen, die sich keinem der anderen Module zuordnen lassen, aber im täglichen Einsatz regelmäßig gebraucht werden.
Ebenen
-
layer-n1
z-index: -1;
-
layer-0 – layer-10
- Setzt den
z-indexauf den jeweiligen Wert von0bis10.
- Setzt den
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
Positions
Diese Klassen steuern die Platzierung von Elementen. Sie ermöglichen es, Elemente aus dem normalen Dokumentenfluss herauszulösen (Absolute/Fixed) oder sie beim Scrollen anzuheften (Sticky).
-
sticky
position: sticky !important;- Haftet an einer definierten Position innerhalb seines Containers.
-
absolute
position: absolute;- Positionierung relativ zum nächsten positionierten Vorfahren.
-
relative
position: relative;- Bleibt im Dokumentenfluss, dient aber als Bezugspunkt für absolute Kinder.
-
fixed
position: fixed !important;- Positionierung relativ zum Viewport (Browserfenster).
-
top-0, bottom-0, start-0, end-0
- Setzt den Abstand zur jeweiligen Seite auf
0 !important.
- Setzt den Abstand zur jeweiligen Seite auf
-
top-50, start-50
- Setzt die Position auf
50%von oben oder links.
- Setzt die Position auf
-
translate-middle
transform: translate(-50%, -50%) !important;- Verschiebt das Element um die Hälfte seiner eigenen Größe zurück (perfekt zum Zentrieren).
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
Größen - Höhen - Breiten
-
w-100, h-100
- Setzt Breite oder Höhe auf
100%des Eltern-Elements.
- Setzt Breite oder Höhe auf
-
vw-100, vw-110, vh-100, vh-110
- Setzt Breite oder Höhe auf
100vw/vh(voller Viewport).
- Setzt Breite oder Höhe auf
-
vh-1
- Spezialwert:
height: 0.1vh;
- Spezialwert:
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
Verschiedenes
Blur
- blur-1 – blur-3
- Setzt einen
backdrop-filter: blur()auf das Element. - blur-1 =
2px - blur-2 =
4px - blur-3 =
8px
- Setzt einen
-
-sm
- schaltet die Klasse ab 480px frei
-
-md
- schaltet die Klasse ab 768px frei
-
-lg
- schaltet die Klasse ab 1024px frei
-
-xl
- schaltet die Klasse ab 1280px frei
-
-xxl
- schaltet die Klasse ab 1440px frei
Display
- .d-block = display=block
- Suffix: -sm bis -xxl
- .d-inline-block = display=inline-block
- Suffix: -sm bis -xxl
- .d-none = display=none
- Suffix: -sm bis -xxl
Verstecken
- .d-none = display=none
- Suffix: -sm bis -xxl
-
.hidden = opacity=0, padding=0, font-size=0
- Suffix: -sm bis -xxl
- .overflow-hidden = overflow=hidden
- Verhindert das Scrollen und Überlaufen des Inhalts in einem Container
- .overflow-x-hidden = overflow-x=hidden
- Verhindert das Scrollen und Überlaufen des Inhalts in einem Container auf der X-Achse
- .overflow-y-hidden = overflow-y=hidden
- Verhindert das Scrollen und Überlaufen des Inhalts in einem Container Container auf der Y-Achse
- .overflow-scroll = overflow=scroll
- Ermöglicht das Scrollen in einem Container und verhindert Überlaufen des Inhalts.
IMG
als
Listenzeichen

