Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
palette-mix()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die palette-mix() CSS-Funktion kann verwendet werden, um einen neuen font-palette-Wert zu erstellen, indem zwei font-palette-Werte durch spezifizierte Prozentsätze und Farbinterpolationsmethoden zusammen gemischt werden.
Syntax
/* Blending font-defined palettes */
font-palette: palette-mix(in lch, normal, dark)
/* Blending author-defined palettes */
font-palette: palette-mix(in lch, --blues, --yellows)
/* Varying percentage of each palette mixed */
font-palette: palette-mix(in lch, --blues 50%, --yellows 50%)
font-palette: palette-mix(in lch, --blues 70%, --yellows 30%)
/* Varying color interpolation method */
font-palette: palette-mix(in srgb, --blues, --yellows)
font-palette: palette-mix(in hsl, --blues, --yellows)
font-palette: palette-mix(in hsl shorter hue, --blues, --yellows)
Werte
Funktionale Notation:
palette-mix(method, palette1 [p1], palette2 [p2])
method-
Eine
<color-interpolation-method>, die den Interpolationsfarbraum angibt. palette1,palette2-
Die
font-palette-Werte, die zusammen gemischt werden sollen. Diese können beliebigefont-palette-Werte sein, einschließlichpalette-mix()-Funktionen,normal,darkundlight. p1,p2Optional-
<percentage>-Werte zwischen0%und100%, die die Menge jeder Palette angeben, die gemischt werden soll. Sie werden wie folgt normalisiert:- Wenn sowohl
p1als auchp2weggelassen werden, dannp1 = p2 = 50%. - Wenn
p1weggelassen wird, dannp1 = 100% - p2. - Wenn
p2weggelassen wird, dannp2 = 100% - p1. - Wenn
p1 = p2 = 0%, ist die Funktion ungültig. - Wenn
p1 + p2 ≠ 100%, dannp1' = p1 / (p1 + p2)undp2' = p2 / (p1 + p2), wobeip1'undp2'die Normalisierungsergebnisse sind.
- Wenn sowohl
Formale Syntax
<palette-mix()> =
palette-mix( <color-interpolation-method> , [ [ normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]> ? ] # {2} )
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
Beispiele
>Verwenden von palette-mix(), um zwei Paletten zu mischen
Dieses Beispiel zeigt, wie die palette-mix()-Funktion verwendet wird, um eine neue Palette zu erstellen, indem zwei andere vermischt werden.
HTML
Das HTML enthält drei Absätze, um unsere Schriftinformationen anzuwenden:
<p class="yellowPalette">Yellow palette</p>
<p class="bluePalette">Blue palette</p>
<p class="mixedPalette">Mixed palette</p>
CSS
Im CSS importieren wir eine Farbenschriftart von Google Fonts und definieren zwei benutzerdefinierte font-palette-Werte mit der @font-palette-values-At-Regel. Wir wenden dann drei verschiedene font-palette-Werte auf die Absätze an – --yellow, --blue und eine neue grüne Palette, die mit palette-mix() erstellt wird, um die blauen und gelben Paletten zusammen zu mischen.
@import "https://fonts.googleapis.com/css2?family=Nabla&display=swap";
@font-palette-values --blue-nabla {
font-family: "Nabla";
base-palette: 2; /* this is Nabla's blue palette */
}
@font-palette-values --yellow-nabla {
font-family: "Nabla";
base-palette: 7; /* this is Nabla's yellow palette */
}
p {
font-family: "Nabla", fantasy;
font-size: 4rem;
text-align: center;
margin: 0;
}
.yellowPalette {
font-palette: --yellow-nabla;
}
.bluePalette {
font-palette: --blue-nabla;
}
.mixedPalette {
font-palette: palette-mix(in lch, --blue-nabla 55%, --yellow-nabla 45%);
}
Ergebnis
Die Ausgabe sieht so aus:
Spezifikationen
| Specification |
|---|
| CSS Fonts Module Level 4> # typedef-font-palette-palette-mix> |
Browser-Kompatibilität
Loading...