Every component of the admin, rendered on the real bundle CSS. Generated from /admin/_catalog.
Colours Typography Spacing & radii Buttons Button group & split Badges & status Avatar Cards Stat Grid list List Accordion Dialog Modal sizes Toast Alerts Form controls Radio cards File upload Icons
Three levels, and a stylesheet cannot enforce them. Coral is one per screen — the thing the user came to do. Two corals on a page and neither means anything.
--aro-color-cta
One per screen: save, publish
--aro-color-primary
Ordinary actions: create, add
--aro-color-secondary
Structural / neutral-dark
--aro-color-success
--aro-color-danger
--aro-color-warning
--aro-color-info
--aro-color-bg
--aro-color-surface
--aro-color-border
--aro-color-text
Poppins, self-hosted. Sizes in rem (scale with browser zoom).
1
2
3
4
6
8
12
xs
sm
input
card
pill
Variants carry the action hierarchy. Sizes shrink text with padding.
Bootstrap .btn-group joins the buttons; our variants carry the state. A segmented view-switcher, and a primary action with a dropdown of alternatives. Any button content works — text, or ux_icon().
.card-primary with the teal top accent.Key figures for dashboards. Atoms (label / value / trend) compose into a bare grid, a bordered card with divided cells, or a grey panel of icon cards. The figure uses the --aro-text-3xl scale step.
Records on a responsive grid of cards (vs. List's single vertical stack). Tiles reuse avatars and badges — here the centered card shape with a split action footer, and the simple initials row.
A stacked list of records — lighter than the DataTable when there are no columns to sort. Avatar + primary/secondary text, with meta / status / chevron / actions on the right, rows on the dashed hairline. Add aro-list--dark for the slate panel.
Bootstrap .accordion, themed. Stacked collapsible panels for FAQs, grouped settings and dense forms. data-bs-parent keeps one open at a time.
A confirmation pattern on Bootstrap's .modal: an intent icon chip, a title, a message and confirm/cancel actions. Shown here as static content — in use it sits inside a .modal. Intents: --danger --warning --success --info (default primary); --centered stacks it.
The size scale, set on .modal-dialog. The same classes drive the Dialog component (new ConfirmDialog({ size: 'lg' })). Widths cap on desktop; modals go full-width on small screens.
Floating flash notifications — white card, coloured left accent + icon, title/message, close. Shown with window.aroToast({type, title, message}); they stack top-right and auto-hide. Built on Bootstrap's native .toast (no plugin).
Inline notices that live in the page flow (unlike the floating Toast) — a soft tinted panel, no border by default, with a leading icon and composable slots: description, error list, text-link actions, a right-aligned link, an --accent left bar and a --close dismiss. One accent per variant drives the tint and the darker text ink.
Certains champs du formulaire sont incomplets. Vérifiez les informations avant d’enregistrer.
L’article est désormais visible sur le site.
Une nouvelle version de l’administration est disponible (2.0.4).
Vous n’avez plus de crédits d’export disponibles.
Import terminé avec succès.
Maintenance planifiée ce dimanche de 2h à 4h.
Mutually-exclusive options as selectable cards — the edge and wash follow the checked radio via :has(), so the whole card is the target and no JS is needed. Plain stacked/inline choices stay on Bootstrap .form-check.
A dropzone with native click-to-browse (a <label> over a hidden input); add .is-dragover from a few drag handlers for the teal highlight. The preview row shows a chosen file.
Rendered inline as SVG in currentColor, so they take the surrounding text colour.