Documentation
Parcourir la documentation

DocumentationRéférence

Propriétés de style et tokens

Toutes les propriétés que style.ocss accepte dans un widget PlayerVox OverCrow, avec leurs valeurs et leur valeur initiale, puis les tokens du design system et les icônes. Le style explique les sélecteurs, la mise en page, les tokens et les animations ; cette page en est la liste.

OCSStemplates/chart/style.ocss
.value {
  font-size: var(--font-size-value);
  font-variant-numeric: tabular-nums;
}

Tout ce qui ne figure pas sur cette page est refusé à la vérification du widget : une propriété, un mot-clé ou une unité hors des listes ci-dessous est une erreur, accompagnée du nom le plus proche en suggestion.

Lire une propriété

  • Valeur utilise les notations de valeurs : <px>, <percent>, <color>… Un | sépare des alternatives, ? marque une partie facultative.
  • Valeur initiale est la valeur d’un élément qu’aucune règle ne style.
  • Héritée : la propriété prend la valeur du parent quand aucune règle ne la définit ; définissez-la sur un conteneur.
  • Animable : la propriété peut figurer dans une transition et dans un bloc @keyframes.

Propriétés

Mise en page

PropriétéValeurValeur initialeHéritéeAnimable
displayflex | grid | noneflexnonnon
positionrelative | absoluterelativenonnon
top<px> | <percent> | auto, valeurs négatives admisesautononnon
right<px> | <percent> | auto, valeurs négatives admisesautononnon
bottom<px> | <percent> | auto, valeurs négatives admisesautononnon
left<px> | <percent> | auto, valeurs négatives admisesautononnon
flex-directionrow | column | row-reverse | column-reverserownonnon
flex-wrapnowrap | wrapnowrapnonnon
flex-grownombre de 0 à 10000nonnon
flex-shrinknombre de 0 à 10001nonnon
flex-basis<px> | <percent> | autoautononnon
justify-contentstart | end | center | stretch | space-between | space-around | space-evenlystartnonnon
align-itemsstart | end | center | baseline | stretchstretchnonnon
align-selfauto | start | end | center | baseline | stretchautononnon
align-contentstart | end | center | stretch | space-between | space-around | space-evenlystretchnonnon
justify-itemsstart | end | center | stretchstretchnonnon
justify-selfauto | start | end | center | stretchautononnon
gap1–2 × (<px> | <percent>)0nonnon
row-gap<px> | <percent>0nonnon
column-gap<px> | <percent>0nonnon
grid-template-columnsnone | liste ≤ 24 de <track>, ou repeat(<integer>, <track>)nonenonnon
grid-template-rowsnone | liste ≤ 24 de <track>, ou repeat(<integer>, <track>)nonenonnon
grid-auto-flowrow | columnrownonnon
grid-auto-columns<track>: <px> | <percent> | <fr> | auto | min-content | max-content | minmax(<track>, <track>)autononnon
grid-auto-rows<track>: <px> | <percent> | <fr> | auto | min-content | max-content | minmax(<track>, <track>)autononnon
grid-columnauto | <integer> | span <integer> | <start> / <end>, lignes de 1 à 24autononnon
grid-rowauto | <integer> | span <integer> | <start> / <end>, lignes de 1 à 24autononnon

Boîte

PropriétéValeurValeur initialeHéritéeAnimable
width<px> | <percent> | autoautononnon
height<px> | <percent> | autoautononnon
min-width<px> | <percent> | autoautononnon
min-height<px> | <percent> | autoautononnon
max-width<px> | <percent> | nonenonenonnon
max-height<px> | <percent> | nonenonenonnon
aspect-rationombre de 0.01 à 100autononnon
margin1–4 × (<px> | <percent> | auto), valeurs négatives admises0nonnon
margin-top<px> | <percent> | auto, valeurs négatives admises0nonnon
margin-right<px> | <percent> | auto, valeurs négatives admises0nonnon
margin-bottom<px> | <percent> | auto, valeurs négatives admises0nonnon
margin-left<px> | <percent> | auto, valeurs négatives admises0nonnon
padding1–4 × (<px> | <percent>)0nonnon
padding-top<px> | <percent>0nonnon
padding-right<px> | <percent>0nonnon
padding-bottom<px> | <percent>0nonnon
padding-left<px> | <percent>0nonnon
overflowvisible | hiddenvisiblenonnon

Apparence

PropriétéValeurValeur initialeHéritéeAnimable
background-color<color>transparentnonoui
background<color> | linear-gradient(<angle>?, <color> <percent>?, …), arrêts ≤ 8transparentnonnon
border<px> (solid | none)? <color>?0 nonenonnon
border-top<px> (solid | none)? <color>?0 nonenonnon
border-right<px> (solid | none)? <color>?0 nonenonnon
border-bottom<px> (solid | none)? <color>?0 nonenonnon
border-left<px> (solid | none)? <color>?0 nonenonnon
border-width1–4 × (<px>)0nonnon
border-stylesolid | nonenonenonnon
border-color<color>currentColornonoui
border-radius1–4 × (<px> | <percent>)0nonnon
box-shadownone | var(--shadow-…) seul | liste ≤ 2 de inset? <px> <px> <px>? <px>? <color>nonenonnon
opacitynombre de 0 à 11nonoui
visibilityvisible | hiddenvisibleouinon
object-fitcontain | cover | fill | nonecontainnonnon

Texte

PropriétéValeurValeur initialeHéritéeAnimable
color<color>var(--color-text)ouioui
font-familyui | mono | display, ou un token de policeuiouinon
font-size<px> de 6 px à 96 px, ou un token de taillevar(--font-size-body)ouinon
font-weight400 | 500 | 600 | 700 | normal | bold400ouinon
font-stylenormal | italicnormalouinon
font-variant-numericnormal | tabular-numsnormalouinon
line-heightnombre de 0.5 à 4 (× taille de police) | <px>1.3ouinon
letter-spacing<px>, valeurs négatives admises0ouinon
text-alignstart | center | endstartouinon
text-decorationnone | underline | line-throughnonenonnon
text-transformnone | uppercase | lowercase | capitalizenoneouinon
white-spacenormal | nowrap | pre-wrapnormalouinon
vertical-alignbaseline | middlebaselinenonnon
text-overflowclip | ellipsis | marqueeclipnonnon
line-clampentier de 0 à 640nonnon
overflow-wrapnormal | anywherenormalouinon

Mouvement

PropriétéValeurValeur initialeHéritéeAnimable
transformnone | jusqu’à 4 fonctions parmi translate(<length>, <length>) avec <px> ou <percent>, translateX(), translateY(), scale(<number>{1,2}) de 0 à 8, rotate(<angle>)nonenonoui
transform-origin1–2 × (left | center | right | top | bottom | <percent> | <px>)centernonnon
transitionnone | liste ≤ 8 de <animatable-property> <time> <easing>? <time>?nonenonnon
animationnone | liste ≤ 8 de <keyframes-name> <time> <easing>? <time>? (<integer> | infinite)? <direction>? <fill-mode>?, entier de 1 à 10000nonenonnon

Interaction

PropriétéValeurValeur initialeHéritéeAnimable
cursordefault | pointer | text | not-allowed | grab | grabbingdefaultouinon
pointer-eventsauto | noneautononnon

Valeurs

SyntaxeSignification
<px>12px ; 0 peut se passer d’unité. Nombres décimaux, sans exposant.
<percent>50% du bloc conteneur, comme en CSS ; au plus 1000 dans un sens ou dans l’autre.
<fr>1fr, pour les pistes de grille seulement ; de 0 à 1000.
<time>120ms ou 0.12s, de 0 à 300000 ms.
<angle>4deg ou 0.5turn, au plus 3600 degrés dans un sens ou dans l’autre.
<color>#rgb, #rgba, #rrggbb, #rrggbbaa, rgb(r g b), rgb(r g b / a), transparent, currentColor, ou un token de couleur. Pas de couleurs nommées.
var(--token)Token du design system, du type attendu, comme valeur entière ou comme composante d’une valeur composite. Pas d’argument de repli ; un widget ne peut pas déclarer de propriétés personnalisées.
<easing>linear, ease, ease-in, ease-out, ease-in-out, steps(<integer 1..=MAX_EASING_STEPS>).
<direction>normal, reverse, alternate.
<fill-mode>none, forwards, backwards, both.

Tokens du design system

Un token s’écrit var(--name) là où une valeur de son type est attendue. Les tokens de couleur et d’ombre ont une valeur par thème ; les autres sont identiques dans les deux thèmes.

OCSStemplates/list/style.ocss
.summary {
  font-size: var(--font-size-caption);
  color: var(--color-text-secondary);
}

Couleurs

TokenSombreClairSignification
--color-accent#a3e635#4d7c0fAccent de la marque : actions principales, état coché.
--color-accent-hover#b5f153#3f6212Accent sous le pointeur.
--color-accent-soft#a3e6351c#4d7c0f1fVoile d’accent derrière un contenu sélectionné.
--color-on-accent#09090b#ffffffTexte et icônes dessinés sur l’accent et sur son état de survol.
--color-surface-panel#111114ee#fafafaeeFond du panneau du widget, dessiné par l’hôte derrière le contenu.
--color-surface-raised#1e1e22e0#f4f4f5ebSurface en relief dans le panneau.
--color-surface-hover#28282deb#e4e4e7f0Surface sous le pointeur.
--color-surface-field#0f0f12#ffffffFond d’un champ de texte.
--color-surface-popover#18181c#ffffffFond d’un popover et d’une liste déroulante.
--color-border#ffffff18#0000001aBordure par défaut.
--color-border-strong#ffffff2a#0000002eBordure et séparateur accentués.
--color-text#f7f7f8#18181bTexte principal.
--color-text-secondary#d4d4d8#3f3f46Texte secondaire.
--color-text-muted#a1a1aa#52525bLégendes et métadonnées.
--color-text-subtle#71717a#71717aIndications des champs vides et texte désactivé.
--color-danger#fb7185#e11d48Erreurs et actions destructrices.
--color-danger-soft#fb71851a#e11d481aVoile de danger derrière les confirmations destructrices et les erreurs.
--color-warning#fbbf24#b45309Avertissements.
--color-success#86efac#15803dRéussite et états sains.

Longueurs

TokenValeurSignification
--space-12pxEspacement, palier 1.
--space-24pxEspacement, palier 2.
--space-36pxEspacement, palier 3 (espacement par défaut entre les éléments).
--space-48pxEspacement, palier 4.
--space-512pxEspacement, palier 5.
--space-616pxEspacement, palier 6.
--radius-sm6pxPetits contrôles et images.
--radius-md9pxBoutons.
--radius-lg10pxCartes.
--radius-pill999pxPastilles et boutons ronds.
--control-height28pxHauteur standard d’un contrôle.
--icon-button-size22pxBouton-icône compact.

Tailles de police

TokenValeurSignification
--font-size-caption10pxSurtitres et légendes.
--font-size-small11pxMétadonnées.
--font-size-button13pxLibellés des boutons.
--font-size-body14pxTexte courant.
--font-size-title18pxTitres de section.
--font-size-value22pxValeurs mises en avant (horloge, FPS).

Familles de police

TokenValeurSignification
--font-uiuiNoto Sans UI, la police de l’interface.
--font-monomonoNoto Sans Mono, pour les valeurs.
--font-displaydisplaySpace Grotesk, pour les grades et les scores.

Durées

TokenValeurSignification
--duration-fast120msTransitions d’état.
--duration-medium240msPanneaux et popovers.

Ombres

TokenSombreClairSignification
--shadow-panel0px 4px 16px 0px #000000660px 4px 16px 0px #0000001fOmbre du panneau du widget et des surfaces flottantes de l’hôte.

Icônes

L’élément icon et les lignes du menu d’options prennent le nom d’une icône Lucide, dans sa graphie habituelle : circle-check, rotate-ccw, chevron-down.

OCMLtemplates/list/view.ocml
          <icon name="x"/>

Lucide 1.34.0, 1777 icônes.

Tout autre nom est refusé. Le type IconName du SDK les liste tous : un nom erroné dans la logique est donc une erreur TypeScript. Au sein de l’API v1, le jeu d’icônes peut grandir, mais il ne perd ni ne renomme jamais une icône. PlayerVox OverCrow dessine les icônes lui-même : un widget n’embarque aucune police d’icônes.