Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

superellipse()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Expérimental: Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La fonction CSS superellipse() permet de définir la courbure d'une ellipse, et sert à spécifier les formes de coins soit directement, soit via les mots-clés <corner-shape-value>.

Syntaxe

css
superellipse(infinity)
superellipse(4)
superellipse(1.7)
superellipse(0)
superellipse(-2.8)
superellipse(-3)
superellipse(-infinity)

Paramètres

<number>

Un nombre compris entre -infinity et infinity inclus.

Valeur de retour

Une forme de superellipse.

Description

La fonction superellipse() retourne une forme de superellipse, utilisée pour définir les valeurs de corner-shape. Une superellipse est une courbe fermée symétrique, intermédiaire entre un rectangle et une ellipse. Elle ressemble à une ellipse qui conserve les caractéristiques géométriques de ses deux axes.

La forme de superellipse est calculée à partir d'une version modifiée de l'ellipse. L'équation suivante définit une ellipse centrée à l'origine :

x 2 a 2 + y 2 b 2 = 1

Les variables a et b correspondent aux rayons de l'ellipse, tandis que les coordonnées x et y sont des points sur la circonférence de l'ellipse.

Un cercle est une ellipse dont les rayons a et b sont de même longueur. Si a et b valent tous deux r, l'équation du cercle s'écrit :

x 2 + y 2 = r 2

Dans cette équation, x et y sont les coordonnées des points sur la circonférence du cercle, et r est le rayon du cercle, le centre étant (0, 0). L'ellipse est obtenue en étirant la forme du cercle selon l'axe x et/ou y.

Une superellipse est créée en remplaçant l'exposant 2 dans chaque cas par 2K, où K est l'argument passé à la fonction superellipse(), ce qui modifie la courbure de l'ellipse :

x 2 K + y 2 K = 1

Le schéma suivant illustre différentes valeurs de superellipse() pour le coin supérieur droit d'un conteneur : infinity, 1, 0, -1 et -infinity :

Schéma illustrant les ellipses créées avec différentes valeurs de K, comme décrit ci-dessous

  • Une valeur de K égale à 0 crée une ligne droite. Cette valeur permet de créer des coins biseautés et correspond au mot-clé bevel de <corner-shape-value>.
  • Une valeur de K égale à 1 crée une ellipse ordinaire, correspondant au mot-clé round.
  • Une valeur de K supérieure à 1 rend la forme plus carrée ; 2 correspond au mot-clé squircle.
  • Une valeur de K égale à infinity crée un carré parfait (correspondant au mot-clé square), bien que des valeurs de K supérieures ou égales à 10 soient pratiquement indiscernables d'un carré.
  • Des valeurs négatives de K produisent une courbe concave, donnant des coins incurvés vers l'intérieur (« creusés »). Une valeur de K égale à -1 correspond au mot-clé scoop et -infinity au mot-clé notch.

Une superellipse négative ou positive sera symétrique à une superellipse de valeur inverse.

Note : Pour toute valeur du paramètre K passée, la fonction superellipse() retournera toujours la même forme pour cette valeur. Lorsque cette valeur est appliquée à deux éléments, l'apparence du coin peut différer si la taille de la boîte ou la valeur de border-radius diffère.

Syntaxe formelle

<superellipse()> = 
superellipse( <number [-∞,∞]> |
infinity |
-infinity )

Exemples

Comparaison des valeurs superellipse()

Dans cet exemple, deux curseurs <input type="range"> permettent de parcourir différentes valeurs superellipse() pour corner-shape et différentes valeurs de border-radius, afin de comparer leurs effets sur un conteneur. Le code est masqué pour plus de clarté, mais l'explication complète de la comparaison des valeurs superellipse est disponible sur la page de référence corner-shape.

Note : Voir aussi l'exemple de comparaison des valeurs <corner-shape-value>.

Spécifications

Specification
CSS Borders and Box Decorations Module Level 4
# funcdef-superellipse

Compatibilité des navigateurs

Voir aussi