CircularProgress
Progression & retour visuel
Engine\Native\CircularProgress est l'équivalent natif du CircularProgress HTML : un anneau de progression déterminé, à un pourcentage connu à l'instant du rendu. Le dessin passe par deux appels à Canvas::arc() — un anneau de piste sur 360° puis un anneau de remplissage partiel démarrant à -90° (midi), ce qui reproduit sans rotation de canvas l'astuce -rotate-90 du SVG de la version HTML. L'épaisseur du trait se déduit automatiquement de la taille (size / 16, minimum 2px).
Exemple
<?php
use Engine\Native\CircularProgress;
use Engine\Color;
$progress = new CircularProgress(
percent: 0.72,
size: 56.0,
color: Color::indigo(600),
);Un anneau de 56px affiche 72% de sweep en indigo sur une piste grise par défaut ; le pourcentage est recalculé à chaque rendu côté serveur, contrairement à Spinner qui tourne tout seul côté client.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| percent | float | — | Valeur entre 0.0 et 1.0, bornée automatiquement (max(0, min(1, …))). |
| size | float | 64.0 | Diamètre total du carré occupé par l'anneau. |
| trackColor | ?Color | null → Tokens::surfaceMuted() | Couleur de la piste de fond (anneau complet). |
| color | ?Color | null → Tokens::ink() | Couleur de l'arc de remplissage. |
À savoir. Si
percentest à 0, seul l'arc de piste est dessiné (l'arc de remplissage est sauté entièrement) — unpercentnégatif ou supérieur à 1 est silencieusement bridé plutôt que de produire un sweep invalide.