Marque (brand.ts)
brand.ts est la seule entrée du thème. createBrandTheme(brand) de @daroms/theme en dérive tous les tokens et thèmes Tamagui v3 ; changer d’identité = changer ces valeurs. L’éditeur de la page d’accueil utilise exactement ce calcul.
import { defineBrand } from '@daroms/theme/brand'
export default defineBrand({ primary: '#0F766E', accent: '#F59E0B', font: 'inter', radius: 'lg', tone: 'minimal' })| Valeur | Type | Défaut | Effet |
|---|---|---|---|
primary |
hex #RRGGBB |
requis | palette brand-*, sous-thèmes brand et soft, boutons, liens, éléments actifs, teinte des neutres |
accent |
hex #RRGGBB |
requis | palette accent-*, sous-thèmes accent et highlight |
font |
inter, system |
inter |
Inter embarquée, ou San Francisco / Roboto |
radius |
none, sm, md, lg, xl, full |
lg |
rayon de base : 0, 4, 8, 12, 16 px ; full = boutons et champs en pilule |
tone |
playful, pro, minimal |
pro |
rayons, espacements, graisses, rebond des animations, teinte des neutres |
Palettes
Section intitulée « Palettes »- 11 nuances
50à950par couleur, calculées en OKLCH sur une échelle de luminosité proche de Tailwind v4. - Ta couleur est gardée telle quelle sur la nuance de luminosité la plus proche (souvent 500 ou 600) ; les voisines suivent son écart de luminosité, la chroma suit une courbe pleine au milieu et faible aux extrémités.
- Neutres (
surface-*) : gris teintés par la teinte deprimary, avec la chroma du ton (0 enminimal, gris pur).
Thèmes et sous-thèmes
Section intitulée « Thèmes et sous-thèmes »Thèmes light et dark, avec des sous-thèmes aux noms fixes (typés), utilisables partout avec theme="..." :
| Sous-thème | Palette | Rendu |
|---|---|---|
brand |
brand, plein | fond de la couleur principale |
soft |
brand, teinté | fond léger de la couleur principale |
accent |
accent, teinté | mise en avant discrète |
highlight |
accent, plein | mise en avant forte |
success, warning, danger |
émeraude, ambre, rouge, teintés | états |
destructive |
rouge, plein | action irréversible |
level2..level4, inverse |
surface | profondeur, inversion clair/sombre |
Les noms des sous-thèmes sont en minuscules d’un seul mot (une majuscule casse la résolution des niveaux relatifs de Tamagui v3).
Ce que change le ton
Section intitulée « Ce que change le ton »playful |
pro |
minimal |
|
|---|---|---|---|
| Chroma des neutres | 0.018 | 0.01 | 0 |
| Multiplicateur de rayon | x 1.25 | x 1 | x 0.75 |
| Rebond des ressorts | 0.35 | 0.12 | 0 |
| Graisse des titres | 800 | 700 | 600 |
| Interlettrage des titres | -0.4 | -0.3 | -0.2 |
gutter / section / stack |
20 / 28 / 14 | 16 / 24 / 12 | 24 / 32 / 16 |
inline / tight |
10 / 6 | 8 / 4 | 8 / 4 |
Rayons sémantiques
Section intitulée « Rayons sémantiques »Rayon de base = rayon du preset x multiplicateur du ton.
| Token | Valeur |
|---|---|
button, input |
base (pilule si radius: 'full') |
card |
base x 1.5 (24 si full) |
sheet |
base x 1.5 + 8 (28 si full) |
chip, badge |
pilule (0 si radius: 'none') |
avatar, pill |
pilule |
Animations
Section intitulée « Animations »Durées partagées : fast 160 ms, medium 280 ms, slow 420 ms. Ressorts fast, medium, slow, bouncy, lazy réglés par le rebond du ton. Usage : transition="fast" sur un composant Tamagui.
defineBrand, BrandSchema, createBrandTheme, createBrandPalettes, createPalette, createNeutral, anchorShade, contrastRatio, semanticRadius, semanticSpace, springs, TONES, DURATIONS, Z_INDEX. Voir Paquets.
Mode d’emploi : Changer la marque.