Tiefe und Textur
- Mehrere Schattenebenen für realistische weiche Tiefeneffekte.
- Verwenden Sie
filter: drop-shadow()anstelle vonbox-shadowfür nicht rechteckige Formen oder transparente PNGs. mix-blend-modeundbackground-blend-modefür Beleuchtungs-Overlays verwenden (Umfang mitisolation: isolateeinschränken)
.hero {
background-image: url('texture.png'), linear-gradient(to bottom, #fff, #eee);
background-blend-mode: soft-light;
}
Farbverläufe und color-mix()
Verwenden Sie in oklch oder in oklab, um den Interpolationsfarbraum für Farbverläufe oder color-mix() explizit anzugeben.
in oklcherhält die Chroma besser, kann aber leichter den Farbraum des Geräts verlassen, insbesondere bei größeren Farbunterschieden.in oklabbleibt leichter im Farbraum (vorausgesetzt, die Endpunkte liegen im Farbraum), kann aber in der Mitte verwaschene, entsättigte Farben erzeugen, insbesondere bei der Interpolation zwischen entgegengesetzten Farbtönen.- Verwenden Sie
in srgbNICHT, es sei denn, Sie haben einen bestimmten Grund dafür (z.B. wenn Sie eine Farbauswahl erstellen, die in sRGB interpoliert werden muss).
Fallback
Einige Browser, die vor 2024 veröffentlicht wurden, unterstützen den Interpolationsraum für Farbverläufe nicht. Wenn Sie diese Browser unterstützen möchten, verwenden Sie das Token nur, wenn es sicher ist. Definieren Sie dazu eine Variable:
:root {
--in-oklab: ;
--in-oklch: ;
}
@supports (linear-gradient(in oklab, white, black)) {
:root {
--in-oklab: in oklab;
--in-oklch: in oklch;
}
}
Dann so verwenden:
.card {
background: linear-gradient(to bottom var(--in-oklab), var(--accent-color), var(--darker));
}
- Wichtig: Wenn Sie diese Technik verwenden, achten Sie darauf, dass immer eine nicht leere Präambel für den Farbverlauf vorhanden ist. Andernfalls tritt in älteren Browsern ein Syntaxfehler auf.
- Für
color-mix()ist dies NICHT erforderlich. Wenn ein Browsercolor-mix()unterstützt, unterstützt er auch das Argumentin <color-space>.
Muster
Viele Muster können über CSS-Verläufe und harte Stopps erstellt werden. Diese können flexibler und leistungsfähiger als SVGs oder externe Bilder sein, da sie Zugriff auf CSS-Variablen und -Längen aus dem umgebenden Kontext haben können.
Sie müssen die Position nicht zweimal angeben – verwenden Sie einfach 0 oder 0%. Die Gradientenkorrektur passt sie dann automatisch an.
Beispiele finden Sie unten.
Vertikale Streifen mit einer Breite von jeweils 1em:
background: linear-gradient(to right, var(--color-1) 50%, var(--color-2) 0) 0 / 2em;
Diagonale Streifen mit einer Breite von jeweils 1em:
background: repeating-linear-gradient(-45deg, var(--color-1) 0 1em, var(--color-2) 0 2em);
Schachbrettmuster mit 1em Quadraten:
background: repeating-conic-gradient(var(--color-1) 0 25%, var(--color-2) 0 50%) 0 / 2em 2em;
Polka-Dot-Muster mit Punkten mit einem Radius von .5em und einem Abstand von 2em (horizontal/vertikal – für den diagonalen Abstand mit sqrt(2) multiplizieren):
--distance: 2em;
--radius: .5em;
--polka: radial-gradient(circle, var(--color-1) var(--radius), transparent calc(var(--radius) + 1px));
background: var(--polka) 0 0, var(--polka) var(--distance) var(--distance) var(--color-2);
background-size: calc(var(--distance) * 2) calc(var(--distance) * 2);
Einfaches Kreisdiagramm:
.pie {
--p: 80%;
width: 60px;
aspect-ratio: 1;
border-radius: 50%;
background: conic-gradient(var(--color-1) var(--p), transparent 0%) var(--color-2);
}
Wichtig: Wenn Sie Farbverläufe zum Rendern von Diagrammen verwenden, müssen Sie einen Text-Fallback für Screenreader bereitstellen. OBLIGATORISCH: Sie MÜSSEN eine semantische Datentabelle als barrierefreie Alternative bereitstellen, wie in den Richtlinien für barrierefreien Code unter den Richtlinien für Alternativtext und Medien beschrieben.