<ui-badge>
Badge atomique (status pill)
Success
<ui-badge label="Prêt" variant="success"></ui-badge>
Error Dot
<ui-badge label="En retard" variant="error" dot></ui-badge>
<ui-button>
Bouton atomique (variants et tailles)
Primary
<ui-button label="Nouvelle commande" variant="primary" icon="plus"></ui-button>
Secondary
<ui-button label="Annuler" variant="secondary"></ui-button>
<ui-confirm-dialog>
Dialog de confirmation atomique
Delete confirm
<div style="width: 100%; min-width: 560px;"><ui-confirm-dialog title="Supprimer le service" message="Cette action est irréversible" confirm="Supprimer" cancel="Annuler"></ui-confirm-dialog></div>
<ui-empty-state>
État vide atomique
No orders
<div style="width: 100%; min-width: 320px;"><ui-empty-state icon="orders" title="Aucune commande" subtitle="Créez votre première commande" action="Créer"></ui-empty-state></div>
<ui-error-banner>
Bannière d’erreur atomique
Inline error
<ui-error-banner message="Le mot de passe est trop court"></ui-error-banner>
<ui-form-field>
Champ de formulaire atomique
Default
<div style="width: 360px;"><ui-form-field label="Email" required placeholder="jean@example.com" hint="Utilisé pour les notifications"></ui-form-field></div>
Error
<div style="width: 360px;"><ui-form-field label="Mot de passe" required value="abc" error></ui-form-field></div>
<ui-icon>
Icône atomique depuis public/icons
Shop
<ui-icon name="shop" size="sm"></ui-icon>
<ui-modal>
Modal atomique
Modal
<div style="width: 100%; min-width: 560px;"><ui-modal title="Changer le statut" body="Confirmez cette action" cancel-label="Annuler" confirm-label="Confirmer" confirm-variant="primary"></ui-modal></div>
<ui-number-stepper>
Stepper numérique atomique
Duration
<ui-number-stepper value="3"></ui-number-stepper>
<ui-page-header>
Header de page atomique
Header
<div style="width: 100%; min-width: 680px;"><ui-page-header title="Commandes" subtitle="14 février 2026"></ui-page-header></div>
<ui-pagination>
Pagination atomique
Pager
<ui-pagination label="1–20 sur 74" prev-disabled></ui-pagination>
<ui-panel-section>
Section interne de panel atomique
Section
<div style="width: 100%; min-width: 420px; background: var(--bg-card); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-elevated);">
<ui-panel-section>Ligne de contenu</ui-panel-section>
</div>
<ui-panel>
Container panel atomique
Panel
Contenu panel
<div style="width: 100%; min-width: 420px;">
<ui-panel>
<div style="padding: var(--space-base) var(--space-md);">Contenu panel</div>
</ui-panel>
</div>
<ui-password-strength>
Indicateur de force de mot de passe atomique
Strong password
<ui-password-strength label="Fort"></ui-password-strength>
<ui-phone-input>
Champ téléphone FR atomique
French phone
<div style="width: 360px;"><ui-phone-input value="612345678"></ui-phone-input></div>
<ui-select>
Select atomique (état ouvert)
Dropdown
<div style="width: 320px;"><ui-select value="Retouche" options="Nettoyage,Retouche,Pressing"></ui-select></div>
<ui-skeleton>
Placeholder skeleton atomique
Line
<div style="width: 320px;">
<ui-skeleton shape="line" width="60%"></ui-skeleton>
</div>
Rect
<div style="width: 320px;">
<ui-skeleton shape="rect" height="120px"></ui-skeleton>
</div>
<ui-spinner>
Spinner atomique
Loading
<div style="width: 120px; min-height: 80px; display: flex; align-items: center; justify-content: center;">
<ui-spinner size="lg"></ui-spinner>
</div>
<ui-table-skeleton>
Skeleton de tableau atomique
Table loading
<div style="width: 100%; min-width: 680px;"><ui-table-skeleton rows="4" cols="4" show-title></ui-table-skeleton></div>
<ui-toggle>
Toggle atomique
On
<ui-toggle label="Boutique fermée" checked></ui-toggle>