|
| 1 | +--- |
| 2 | +title: "<dashed-function> : fonctions personnalisées CSS" |
| 3 | +slug: Web/CSS/Reference/Values/dashed-function |
| 4 | +l10n: |
| 5 | + sourceCommit: 8fd626a7b7f1fcb19193325bbac5b87e719f83ea |
| 6 | +--- |
| 7 | + |
| 8 | +{{SeeCompatTable}} |
| 9 | + |
| 10 | +Le [type de données](/fr/docs/Web/CSS/Reference/Values/Data_types) [CSS](/fr/docs/Web/CSS) **`<dashed-function>`** représente la syntaxe utilisée pour appeler les [fonctions personnalisées CSS](/fr/docs/Web/CSS/Guides/Custom_functions_and_mixins/Using_custom_functions), qui sont définies à l'aide de la règle {{CSSxRef("@function")}}. |
| 11 | + |
| 12 | +## Syntaxe |
| 13 | + |
| 14 | +Une valeur `<dashed-function>` consiste en un [`--nom-de-fonction`](/fr/docs/Web/CSS/Reference/At-rules/@function#--function-name), suivi de parenthèses contenant les arguments de la fonction (par exemple : `--ma-fonction(30px, 3)`). |
| 15 | + |
| 16 | +Vous pouvez inclure des valeurs `<dashed-function>` à la place de valeurs de propriétés CSS classiques ou de composants de valeurs de propriété, dans les cas où vous souhaitez calculer dynamiquement les valeurs selon une logique de fonction plutôt que de fournir des valeurs statiques. |
| 17 | + |
| 18 | +Si vous souhaitez [passer des valeurs contenant des virgules comme arguments](/fr/docs/Web/CSS/Reference/At-rules/@function#passage_de_valeurs_contenant_des_virgules_comme_arguments), vous pouvez le faire en les entourant d'accolades (`{ }`). |
| 19 | + |
| 20 | +## Exemples |
| 21 | + |
| 22 | +Pour plus d'exemples, consultez le guide [Utiliser les fonctions personnalisées CSS](/fr/docs/Web/CSS/Guides/Custom_functions_and_mixins/Using_custom_functions). |
| 23 | + |
| 24 | +### Utilisation basique de `<dashed-function>` |
| 25 | + |
| 26 | +Cet exemple montre une fonction basique qui retourne une version semi-transparente de la couleur passée en argument. |
| 27 | + |
| 28 | +#### HTML |
| 29 | + |
| 30 | +Le balisage comporte un {{HTMLElement("p")}} contenant du texte : |
| 31 | + |
| 32 | +```html live-sample___basic-example |
| 33 | +<p>Du contenu</p> |
| 34 | +``` |
| 35 | + |
| 36 | +#### CSS |
| 37 | + |
| 38 | +Dans nos styles, nous définissons d'abord la fonction personnalisée CSS. La fonction s'appelle `--transparent` et accepte deux paramètres : une couleur et une valeur alpha numérique. Dans le corps de la fonction, nous utilisons la [syntaxe de couleur relative](/fr/docs/Web/CSS/Guides/Colors/Using_relative_colors) pour transformer la couleur passée en une couleur [`oklch()`](/fr/docs/Web/CSS/Reference/Values/color_value/oklch) avec un canal alpha égal à la valeur alpha passée ; cela devient le `resultat` de la fonction : |
| 39 | + |
| 40 | +```css live-sample___basic-example |
| 41 | +@function --transparent(--color <color>, --alpha <number>) { |
| 42 | + result: oklch(from var(--color) l c h / var(--alpha)); |
| 43 | +} |
| 44 | +``` |
| 45 | + |
| 46 | +Ensuite, nous définissons une propriété personnalisée `--base-color` avec la valeur `#faa6ff` sur l'élément `:root`. Nous assignons cette propriété à la couleur de la {{CSSxRef("border")}} de l'élément `<p>`, puis nous définissons la {{CSSxRef("background-color")}} sur une version transparente de la même couleur. Cela se fait en utilisant la syntaxe `<dashed-function>`, en spécifiant la fonction `--transparent()` et en lui passant les arguments `var(--base-color)` et `0.8`. |
| 47 | + |
| 48 | +```css hidden live-sample___basic-example |
| 49 | +html, |
| 50 | +body { |
| 51 | + height: 100%; |
| 52 | +} |
| 53 | + |
| 54 | +body { |
| 55 | + margin: 0; |
| 56 | + display: grid; |
| 57 | + place-items: center; |
| 58 | + font-family: system-ui; |
| 59 | + background-image: repeating-linear-gradient( |
| 60 | + -45deg, |
| 61 | + transparent 0 20px, |
| 62 | + lightgrey 20px 40px |
| 63 | + ); |
| 64 | +} |
| 65 | +``` |
| 66 | + |
| 67 | +```css live-sample___basic-example |
| 68 | +:root { |
| 69 | + --base-color: #faa6ff; |
| 70 | +} |
| 71 | + |
| 72 | +p { |
| 73 | + width: 50%; |
| 74 | + padding: 30px; |
| 75 | + border-radius: 20px; |
| 76 | + border: 3px solid var(--base-color); |
| 77 | + background-color: --transparent(var(--base-color), 0.8); |
| 78 | +} |
| 79 | +``` |
| 80 | + |
| 81 | +#### Résultat |
| 82 | + |
| 83 | +{{ EmbedLiveSample('basic-example', '100%', '150px') }} |
| 84 | + |
| 85 | +## Spécifications |
| 86 | + |
| 87 | +{{Specifications}} |
| 88 | + |
| 89 | +## Compatibilité des navigateurs |
| 90 | + |
| 91 | +{{Compat}} |
| 92 | + |
| 93 | +## Voir aussi |
| 94 | + |
| 95 | +- [Propriétés personnalisées CSS](/fr/docs/Web/CSS/Reference/Properties/--*) |
| 96 | +- La règle {{CSSxRef("@function")}} |
| 97 | +- La fonction [`type()`](/fr/docs/Web/CSS/Reference/Values/type) |
| 98 | +- [Utiliser les fonctions personnalisées CSS](/fr/docs/Web/CSS/Guides/Custom_functions_and_mixins/Using_custom_functions) |
| 99 | +- Le module des [Fonctions et mixins personnalisés CSS](/fr/docs/Web/CSS/Guides/Custom_functions_and_mixins) |
0 commit comments