Apparence
La section Apparence des paramètres d’un produit d’IA : thème, couleur d’accent, teinte de fond, densité, police du chat, tailles de texte et options d’accessibilité, le tout conservé en brouillon jusqu’à l’enregistrement.
Appearance regroupe tout ce qui touche à l’aspect de l’application dans une seule section. Les cartes de thème montrent une petite fenêtre dans chaque thème, dessinée avec la couleur d’accent choisie, pour que le choix soit clair avant d’enregistrer.
System suit l’appareil et indique lequel est actif en ce moment. High contrast renforce les bords et le texte et garde des arrière-plans neutres, donc le curseur de teinte est désactivé lorsqu’il est choisi.
La teinte d’accent est une vraie piste de couleur avec huit choix rapides en dessous, et l’indication nomme la couleur, par exemple Blue 250°. La teinte de fond mélange cet accent aux surfaces. Les cartes de densité et de police du chat montrent un exemple de chaque option, et les deux tailles de texte sont des steppers avec limites.
Reduce motion et Reduce transparency indiquent quand l’appareil demande déjà l’un ou l’autre.
Tout reste un brouillon tant que ce n’est pas enregistré. La barre d’enregistrement de Settings apparaît dès que quelque chose diffère, Discard rétablit l’apparence enregistrée, et Reset remet chaque option à sa valeur par défaut sous forme de brouillon que vous pouvez encore abandonner.
Ajouter le registre Pro à components.json
components.json Ajouter votre token
Créez un token sur votre page de compte et placez-le dans
.env.localsous le nomHEXTAUI_PRO_TOKEN.Ajouter le block
pnpm dlx shadcn@latest add @hextaui-pro/appearance
Enregistrer vers votre API
Passez les valeurs enregistrées et un onSave asynchrone. Rien n’est envoyé tant que l’utilisateur n’appuie pas sur Save dans la barre. Levez une erreur pour afficher votre message dans la barre et conserver ses choix.
Appliquer l’apparence enregistrée
Une fois enregistrées, appliquez les valeurs à votre application selon la manière dont elle gère son thème. normalizeAppearance répare tout ce qu’a stocké une version plus ancienne, donc une mauvaise valeur ne casse jamais la page.
Anatomie
Les parties à composer, de l’extérieur vers l’intérieur.
| Partie | Description |
|---|---|
AppearanceSettings | Le contenu de la section : les groupes d’options, reliés à la barre d’enregistrement de la coque. |
normalizeAppearance | Transforme des valeurs stockées ou partielles en valeurs valides : borne les tailles, boucle la teinte et utilise une valeur de repli pour les noms inconnus. |
appearanceDefaults | Les valeurs auxquelles Reset revient lorsque vous ne passez pas les vôtres. |
AppearanceSettings
À utiliser dans une SettingsSection. Accepte aussi toutes les props de div.
| Prop | Type | Par défaut |
|---|---|---|
valuesCe qui est enregistré actuellement : { theme, hue, intensity, density, chatFont, interfaceSize, codeSize, reduceMotion, reduceTransparency }. Les valeurs invalides sont réparées, et la réparation ne compte pas comme une modification non enregistrée. | AppearanceValues | – |
onSaveEnregistre le brouillon. Levez une erreur pour afficher le message dans la barre d’enregistrement et conserver le brouillon. | (values) => void | errors | Promise<void | errors> | – |
defaultsCe que Reset remet en place. | AppearanceValues | appearanceDefaults |
| Prop | Type | Par défaut |
|---|---|---|
themeSystem suit prefers-color-scheme. | "system" | "light" | "dark" | "contrast" | "system" |
hueLa teinte OKLCH de l’accent, de 0 à 359. | number | 250 |
intensityPart de l’accent qui teinte les arrière-plans, de 0 à 100. | number | 30 |
densityEspace entre les messages et à l’intérieur. | "compact" | "comfortable" | "comfortable" |
chatFontLa police des messages. | "sans" | "serif" | "mono" | "sans" |
interfaceSizeTaille du texte en pixels, de 12 à 18. | number | 14 |
codeSizeTaille du code en pixels, de 11 à 20. | number | 13 |
reduceMotionArrête les spinners et les panneaux glissants. | boolean | false |
reduceTransparencyDes arrière-plans pleins plutôt que flous. | boolean | false |
| Touche | Action |
|---|---|
| ←→ | Dans les cartes de thème, de densité ou de police, choisit la carte précédente ou suivante. Sur la piste de teinte, déplace d’un degré. |
| Shift→ | Sur la piste de teinte, déplace de 15 degrés. Page Up et Page Down font de même. |
| HomeEnd | Sur la piste de teinte, saute à l’une ou l’autre extrémité. |
| ↑↓ | Dans un champ de taille de texte, modifie la taille d’un pixel. |
| ⌘S | Enregistre tant que quelque chose n’est pas enregistré. Ctrl+S sous Windows et Linux. |
- Chaque groupe de cartes est un radio group nommé par sa ligne, et chaque carte est nommée par son propre libellé, de sorte que les lecteurs d’écran annoncent « Dark, radio, 3 of 4 ».
- La piste de teinte lit sa couleur par son nom, par exemple « Blue, 250 degrees », et les choix rapides sont des boutons à bascule nommés par couleur.
- Reset conserve le focus après son exécution et annonce que les valeurs par défaut sont revenues et doivent être enregistrées.
Construit avec
Les composants HextaUI gratuits dont Appearance est constitué. Chacun s’installe séparément.
Code
2 fichiers, ajoutés à components/blocks/appearance.