Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

<hue-interpolation-method>

Baseline 2024
Newly available

Since ⁨June 2024⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Der <hue-interpolation-method> CSS Datentyp stellt den Algorithmus dar, der zur Interpolation zwischen <hue>-Werten verwendet wird. Der Interpolationsalgorithmus bestimmt, wie ein Mittelpunkt zwischen zwei Farbtonwerten basierend auf einem Farbkreis gefunden wird. Er wird als Bestandteil des Datentyps <color-interpolation-method> verwendet.

Bei der Interpolation von <hue>-Werten ist der Standardalgorithmus für die Farbtoninterpolation shorter.

Syntax

Ein <hue-interpolation-method>-Wert besteht aus dem Namen eines Farbtoninterpolationsalgorithmus, gefolgt von einem Literal hue:

shorter hue
longer hue
increasing hue
decreasing hue

Werte

Jedes Paar von Farbtonwinkeln entspricht zwei Radien auf dem Farbkreis, der den Umfang in zwei mögliche Bögen für die Interpolation unterteilt. Beide Bögen beginnen am ersten Radius und enden am zweiten Radius, aber einer verläuft im Uhrzeigersinn und der andere gegen den Uhrzeigersinn.

Hinweis: Die folgenden Beschreibungen und Abbildungen basieren auf Farbkreisen, bei denen Farbtonwinkel in Uhrzeigerrichtung zunehmen. Beachten Sie, dass es Farbkreise gibt, bei denen eine Winkelerhöhung gegen den Uhrzeigersinn erfolgt.

Für ein Paar von Farbtonwinkeln θ1 und θ2, normalisiert auf den Bereich [0deg, 360deg), gibt es vier Algorithmen, um zu bestimmen, welcher Bogen bei der Interpolation von θ1 zu θ2 verwendet wird:

shorter

Verwenden Sie den kürzeren Bogen. Wenn die beiden Radien zusammenfallen, degeneriert der Bogen zu einem einzelnen Punkt. Wenn beide Bögen die gleiche Länge haben:

  • Wenn θ1 < θ2, verwenden Sie den Uhrzeigerbogen;
  • Wenn θ1 > θ2, verwenden Sie den gegen den Uhrzeigerbogen.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
shorter mit θ1 = 45deg und θ2 = 135deg shorter mit θ1 = 135deg und θ2 = 45deg
longer

Verwenden Sie den längeren Bogen. Wenn die beiden Radien zusammenfallen:

  • Wenn θ1 ≤ θ2, wird der Bogen zum vollen Umfang mit Uhrzeigerrichtung.
  • Wenn θ1 > θ2, wird der Bogen zum vollen Umfang mit gegen den Uhrzeigerrichtung.

Wenn beide Bögen die gleiche Länge haben:

  • Wenn θ1 < θ2, verwenden Sie den Uhrzeigerbogen;
  • Wenn θ1 > θ2, verwenden Sie den gegen den Uhrzeigerbogen.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
longer mit θ1 = 45deg und θ2 = 135deg longer mit θ1 = 135deg und θ2 = 45deg
increasing

Verwenden Sie den Uhrzeigerbogen. Wenn die beiden Radien zusammenfallen, degeneriert der Bogen zu einem einzelnen Punkt.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
increasing mit θ1 = 45deg und θ2 = 135deg increasing mit θ1 = 135deg und θ2 = 45deg
decreasing

Verwenden Sie den gegen den Uhrzeigerbogen. Wenn die beiden Radien zusammenfallen, degeneriert der Bogen zu einem einzelnen Punkt.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
decreasing mit θ1 = 45deg und θ2 = 135deg decreasing mit θ1 = 135deg und θ2 = 45deg

Da es nur zwei Bögen zur Auswahl gibt, sind diese Algorithmen unter bestimmten Umständen paarweise äquivalent. Speziell:

  • Wenn 0deg < θ2 - θ1 < 180deg oder θ2 - θ1 < -180deg, sind shorter und increasing äquivalent, während longer und decreasing äquivalent sind.
  • Wenn -180deg < θ2 - θ1 < 0deg oder θ2 - θ1 > 180deg, sind shorter und decreasing äquivalent, während longer und increasing äquivalent sind.

Eine bemerkenswerte Eigenschaft von increasing und decreasing ist, dass wenn der Unterschied in den Farbtonwinkeln während der Transition oder Animation die 180deg durchläuft, der Bogen nicht wie bei shorter und longer auf die andere Seite wechselt.

Formale Syntax

<hue-interpolation-method> = 
[ shorter | longer | increasing | decreasing ] hue

Beispiele

Vergleich von Farbtoninterpolationsalgorithmen

Das folgende Beispiel zeigt die Wirkung der Verwendung unterschiedlicher Farbtoninterpolationsalgorithmen in einem linear-gradient().

HTML

html
<div class="hsl">
  <p>HSL</p>
</div>
<div class="hsl-increasing">
  <p>HSL increasing</p>
</div>
<div class="hsl-decreasing">
  <p>HSL decreasing</p>
</div>
<div class="hsl-shorter">
  <p>HSL shorter</p>
</div>
<div class="hsl-longer">
  <p>HSL longer</p>
</div>
<div class="hsl-named">
  <p>HSL named</p>
</div>
<div class="hsl-named-longer">
  <p>HSL named (longer)</p>
</div>

CSS

css
.hsl {
  background: linear-gradient(
    to right in hsl,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-increasing {
  background: linear-gradient(
    to right in hsl increasing hue,
    hsl(190deg 100% 50%),
    hsl(180deg 100% 50%)
  );
}
.hsl-decreasing {
  background: linear-gradient(
    to right in hsl decreasing hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-shorter {
  background: linear-gradient(
    to right in hsl shorter hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-longer {
  background: linear-gradient(
    to right in hsl longer hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-named {
  background: linear-gradient(to right in hsl, orange, yellow);
}
.hsl-named-longer {
  background: linear-gradient(to right in hsl longer hue, orange, yellow);
}

Ergebnis

Spezifikationen

Specification
CSS Color Module Level 4
# hue-interpolation

Browser-Kompatibilität

Siehe auch