Referenz für die wichtigsten SASS-Variablen und Utilities im admorris Pro Template.
Der gesamte CSS-Output wird mit Lightning CSS verarbeitet. Lightning CSS übernimmt automatisch die Minification des Output.
Alle eigenen Styles werden in styles/sass/user-styles/ angelegt. Die Dateien sind nach Funktion und Seitentyp aufgeteilt:
| Datei | Zweck |
|---|---|
_user-variables.scss | Variablen überschreiben, die zuvor definiert wurden (z.B. Farben, Abstände, Fonts, Bootstrap und Admorris Pro Variablen). Wird vor den restlichen Styles geladen, damit !default-Werte überschrieben werden. |
_user-functions.scss | Eigene SASS-Funktionen und Mixins, die automatisch in alles user-styles geladen werden. |
| Datei | Zweck |
|---|---|
_user-styles.scss | Allgemeine Styles, die auf allen Seiten geladen werden. |
_non-critical.scss | Styles für Elemente, die nicht above-the-fold sichtbar sind (z.B. Dropdowns, Modals, Overlays). Werden asynchron geladen. |
Die übrigen Dateien werden nur auf dem jeweiligen Seitentyp geladen. Dadurch wird der CSS-Code pro Seite kleiner gehalten – weniger CSS = schnelleres Laden = besserer PageSpeed.
| Datei | Seitentyp |
|---|---|
_homepage.scss | Startseite |
_productlist.scss | Kategorieseiten / Listen |
_productdetails.scss | Produktdetailseiten |
_cart.scss | Warenkorb |
_checkout.scss | Checkout |
_account.scss | Kundenkonto |
_blog.scss | Blog / News |
_wishlist.scss | Wunschzettel |
_comparelist.scss | Vergleichsliste |
_configuration.scss | Konfigurator |
_slider.scss | Slider |
// _user-variables.scss
$primary: #e63946;
$container-sizes: (
xs: 650px,
s: 900px,
m: 1200px,
l: 1400px,
xl: 1600px,
fullwidth: 2800px,
);
Die einfachste Weise die Bootstrap Breakpoints zu verwenden, ist die Breakpoint Function breakpoint-min() und breakpoint-max(), die die Werte der Breakpoints zurückgeben. Diese können direkt in Media Queries verwendet werden, entweder in der klassischen Syntax oder in der neuen Range-Syntax.
Wichtig: Die alten Bootstrap-Variablen im Format $screen-xx (z.B. $screen-lg) sind veraltet. Stattdessen sollten vorzugsweise die Breakpoint-Helfer verwendet werden (z.B. breakpoint-min(lg) / breakpoint-max(md)) direkt in Media Queries. Vermeide die direkten $screen-xx-Variablen, da sie nur noch zur Abwärtskompatibilität vorhanden sind.
@media (min-width: breakpoint-min(lg)) {
// ...
}
// Kleiner als ein Breakpoint
@media (width < breakpoint-min(sm)) {
// ...
}
// Größer als ein Breakpoint
@media (width >= breakpoint-min(lg)) {
// ...
}
// Kombiniert
@media (breakpoint-min(md) <= width < breakpoint-min(xl)) {
// ...
}
| Name | Wert |
|---|---|
xs | 0 |
sm | 576px |
md | 768px |
lg | 992px |
xl | 1200px |
xxl | 1500px |
Breakpoint-Funktionen aus bootstrap/mixins/_breakpoints.scss:
breakpoint-min($name) – Gibt den Minimalwert zurück (z.B. breakpoint-min(md) → 768px)breakpoint-max($name) – Gibt den Maximalwert zurück (breakpoint-min des nächsten Breakpoints minus 0.02px)Definiert in _variables-custom.scss. Alle Werte sind mit !default überschreibbar.
$container-sizes: (
xs: 650px,
s: 900px,
m: 1260px,
l: 1480px,
xl: 1680px,
fullwidth: 2800px,
) !default;
Das Container-Padding wird fluid berechnet (20px → 50px zwischen 320px und 1240px Viewport-Breite):
$container-padding: utopia.calculateClamp(
(
'minWidth': 320,
'maxWidth': 1240,
'minSize': 20,
'maxSize': 50,
'usePx': true,
'relativeTo': 'viewport-width',
)
) !default;
Als CSS Custom Property verfügbar:
var(--container-padding)
Die Theme-Farben basieren auf Bootstrap und können über die $theme-colors Map überschrieben werden:
$primary: $blue !default;
$secondary: $gray-600 !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-800 !default;
Zugriff über die theme-color() Funktion:
color: theme-color('primary');
background: theme-color('danger');
$brand-custom-tones: false !default;
$brand-text-muted: rgba($tone-base, 60%) !default;
$brand-tone50: rgba($tone-base, 60%) !default;
$brand-tone25: rgba($tone-base, 25%) !default;
// Success
$alert-success-color: #36593d;
$alert-success-bg: #edfff1;
// Info
$alert-info-color: #27373f;
$alert-info-bg: #eef9ff;
// Warning
$alert-warning-color: #68522c;
$alert-warning-bg: #fcf8e3;
// Danger
$alert-danger-color: #683b46;
$alert-danger-bg: #ffedf1;
Das Template nutzt Utopia für fluid-responsive Typografie und Spacing. Die CSS Custom Properties werden auf :root generiert.
--step-*)Generiert über utopia.generateTypeScale() mit den Einstellungen: Basis 16px–18px, Scale 1.2–1.25.
| CSS Variable | Beschreibung |
|---|---|
--step--2 | 2 Stufen kleiner als Basis |
--step--1 | 1 Stufe kleiner als Basis |
--step-0 | Basis-Schriftgröße (fluid 16–18px) |
--step-1 | 1 Stufe größer |
--step-2 | 2 Stufen größer |
--step-3 | 3 Stufen größer |
--step-4 | 4 Stufen größer |
--step-5 | 5 Stufen größer |
Verwendung:
h1 {
font-size: var(--step-5);
}
h2 {
font-size: var(--step-4);
}
p {
font-size: var(--step-0);
}
small {
font-size: var(--step--1);
}
--space-*)Generiert über utopia.generateSpaceScale(). Die Werte skalieren fluid zwischen 320px und 1240px Viewport-Breite.
| CSS Variable | Multiplikator | Beschreibung |
|---|---|---|
--space-3xs | 0.25× | Sehr kleiner Abstand |
--space-2xs | 0.5× | Kleiner Abstand |
--space-xs | 0.75× | Extra-klein |
--space-s | 1× | Standard (Basis) |
--space-m | 1.5× | Mittel |
--space-l | 2× | Groß |
--space-xl | 3× | Extra-groß |
--space-2xl | 4× | Sehr groß |
--space-3xl | 6× | Maximal |
| CSS Variable | Bereich |
|---|---|
--space-3xs-2xs | 3xs min → 2xs max |
--space-2xs-xs | 2xs min → xs max |
--space-xs-s | xs min → s max |
--space-s-m | s min → m max |
--space-m-l | m min → l max |
--space-l-xl | l min → xl max |
--space-xl-2xl | xl min → 2xl max |
--space-2xl-3xl | 2xl min → 3xl max |
| CSS Variable | Bereich |
|---|---|
--space-s-l | s min → l max |
Verwendung:
.card {
padding: var(--space-s-m); // fluid padding
margin-bottom: var(--space-l);
gap: var(--space-xs);
}
.section {
padding-block: var(--space-xl-2xl); // größerer fluid Abstand
}
calculateClampMit der Funktion utopia.calculateClamp() können eigene fluid Werte berechnet werden, die nicht Teil der generierten Scale sein müssen.
@use '../vendor/utopia/utopia';
utopia.calculateClamp((
'minWidth': <viewport-min>, // untere Viewport-Grenze (unitless, in px)
'maxWidth': <viewport-max>, // obere Viewport-Grenze (unitless, in px)
'minSize': <size-min>, // Wert bei minWidth (unitless)
'maxSize': <size-max>, // Wert bei maxWidth (unitless)
'usePx': true | false, // Optional: Ausgabe in px statt rem (default: false)
'relativeTo': 'viewport' | 'viewport-width' | 'container',
// Optional: vi (default), vw, oder cqi
));
Fluid Padding (20px → 50px):
.element {
padding: #{utopia.calculateClamp(
(
'minWidth': 320,
'maxWidth': 1240,
'minSize': 20,
'maxSize': 50,
'usePx': true,
'relativeTo': 'viewport-width',
)
)};
}
Fluid Font-Size (14px → 18px, in rem):
.text {
font-size: #{utopia.calculateClamp(
(
'minWidth': 320,
'maxWidth': 1240,
'minSize': 14,
'maxSize': 18,
)
)};
}
Fluid Gap relativ zum Container:
.grid {
gap: #{utopia.calculateClamp(
(
'minWidth': 320,
'maxWidth': 1240,
'minSize': 8,
'maxSize': 24,
'usePx': true,
'relativeTo': 'container',
)
)};
}
relativeTo Optionen| Wert | CSS-Unit | Beschreibung |
|---|---|---|
| (nicht gesetzt) | vi | Viewport inline-size (default) |
'viewport-width' | vw | Viewport-Breite |
'container' | cqi | Container query inline-size |
:root {
--my-fluid-size: #{utopia.calculateClamp(
(
'minWidth': 320,
'maxWidth': 1240,
'minSize': 16,
'maxSize': 32,
)
)};
}
Dann im CSS verwenden:
.element {
margin: var(--my-fluid-size);
}
Wichtige Typografie- und Navigation-Variablen, die für eigene User Styles oft überschrieben werden:
$mobile-nav-breakpoint — Steuerung ab wann die mobile Navigation greift (Standard im Template: 1030px).$font-family-base — Basis-Schriftfamilie für Body-Text.$headings-font-family — Schriftfamilie für Überschriften (H1–H6).$headings-font-weight — Standard Font-Weight für Überschriften.$headings-line-height — Zeilenhöhe für Überschriften.$h1-font-size, $h2-font-size, $h3-font-size, $h4-font-size, $h5-font-size, $h6-font-size — Falls gesetzt: explizite Default-Größen für H1–H6.Diese Variablen werden in den styles/sass/abstracts/_variables-custom.scss und in den Bootstrap-Variable-Files definiert. Um Werte zu überschreiben, lege die Änderungen in styles/sass/user-styles/_user-variables.scss (nur Variablen) ab, sodass die !default-Werte vorher im Build ersetzt werden.
Beispiel Override:
// styles/sass/user-styles/_user-variables.scss
$mobile-nav-breakpoint: 980px;
$font-family-base:
'Inter',
system-ui,
-apple-system,
'Segoe UI',
Roboto,
'Helvetica Neue',
Arial;
$headings-font-family: 'Chromium Serif', Georgia, 'Times New Roman', serif;
Hinweis: Nach dem Überschreiben in _user-variables.scss können die restlichen User-Style-Dateien (_user-styles.scss, _non-critical.scss, Seite-spezifische Dateien) die neuen Werte direkt verwenden.