Le système

8 couleurs · 9 rôles de texte · 1 rouge

Tout le site est bâti là-dessus. Rien n’est recopié sur cette page : chaque aplat lit son jeton et chaque composant est le vrai. Bascule le thème dans l’en-tête — la moitié d’en bas suit, l’autre non, et c’est exactement la frontière.

La marque

Huit couleurs, invariantes. Elles ne connaissent pas le thème : ce sont les pigments, pas la peinture.

Minuit--hyko-minuit
Charbon--hyko-charbon
Ardoise--hyko-ardoise
Béton--hyko-beton
Acier--hyko-acier
Cendre--hyko-cendre
Ivoire--hyko-ivoire
Braise--hyko-braise
Les jetons sémantiques

La seule couche qu’un composant a le droit d’employer, et la seule qui bascule. Un composant qui écrit « --hyko-ivoire » se trompe : il veut dire « --text-primary ».

Surfaces
surface-page--surface-pageLe fond de la page
surface-raised--surface-raisedUne carte, un panneau
surface-block--surface-blockUn bloc dans un bloc
surface-field--surface-fieldUn champ de saisie
surface-glass--surface-glassUn voile sur ce qu’il y a dessous
surface-seal--surface-sealLe disque du sceau
Textes
text-primary--text-primaryCe qu’on vient lire
text-secondary--text-secondaryCe qui accompagne
text-accent--text-accentLes étiquettes, les micro-lignes
text-signal--text-signalCe qui appelle — jamais décoratif
text-on-invert--text-on-invertSur un aplat inversé
Filets
line-neutral--line-neutralLa séparation au repos
line-steel--line-steelLa même, au survol
line-signal--line-signalL’onglet actif, l’erreur
États
state-focus--state-focusLe contour de focus — toujours rouge
state-invert-bg--state-invert-bgLe fond d’un bouton au survol
state-disabled-fg--state-disabled-fgCe qui ne répond plus
state-live--state-liveLe point du direct
La typographie

Archivo pour ce qui titre, Inter pour ce qui se lit, Space Mono pour ce qui étiquette. Deux rôles en capitales, pas trois.

DisplayArchivo 700 · 72 px · −0,035 em
TitreArchivo 700 · 44 px · −0,03 em
Titre de pageArchivo 700 · 34 px
IntertitreArchivo 600 · 26 px
Corps largeInter 400 · 18 px
CorpsInter 400 · 16 px
PetitInter 400 · 14 px
ÉtiquetteSpace Mono · 12 px · capitales
MicroSpace Mono · 11 px · capitales
Les marques

Trois formes, et rien d’autre. La marque est le seul cercle du système ; l’écusson ne nomme qu’une pièce de la maison, et ne lui dispute rien.

LogoLe disque Braise et le Y, en tracé. La marque de la maison
DiamondLe séparateur, actif ou non
MarqueDuClubL’écusson du Club. Trois losanges évidés dans le chef, le cœur plein
Les boutons

Trois variantes, deux tailles. Le primaire s’assombrit au survol au lieu de rougir — le rouge est déjà pris.

Étiquette
Les surfaces

Une carte au repos, une carte qui répond au survol. Aucune ombre, nulle part.

Carte

Fond « raised », filet neutre, deux pixels de rayon.

Carte interactive

Survole-moi : le filet s’éclaircit. C’est toute l’élévation du système.

Rail

Un filet vertical au lieu d’une boîte, quand le contenu n’a pas besoin d’être enfermé.

Les champs

Le focus est le seul rouge garanti de l’interface. Il ne se retire jamais.

Cette adresse ne ressemble à rien.
Le mouvement

Une apparition joue une fois, jamais en boucle, et se tait entièrement si le système demande moins d’animations. Recharge la page pour les revoir.

Fade up
La montée par défaut
.hyko-fade-up
Fade in
Sans déplacement
.hyko-fade-in
Fade left
Depuis la droite
.hyko-fade-left
Fade right
Depuis la gauche
.hyko-fade-right
Fade down
Depuis le haut
.hyko-fade-down
Zoom in
Pour les images
.hyko-zoom-in
Les règles

Elles ne vivaient jusqu’ici qu’en commentaires de CSS, où personne ne va les lire.

01
Deux pixels de rayon, au maximum

`--radius-sharp` vaut 2 px et c’est le plafond. Le seul cercle du système est le sceau.

02
L’élévation est un filet, jamais une ombre

Une carte survolée passe de `--line-neutral` à `--line-steel`. Il n’y a pas une seule `box-shadow` dans la maison.

03
Le rouge est un signal, pas une couleur

La braise dit le direct, le focus, l’onglet actif et l’erreur. Un bouton survolé devient noir ou ivoire — jamais plus rouge.

04
Deux rôles en capitales, pas trois

`hyko-label` et `hyko-micro`. Tout le reste se lit en casse normale.

05
Pas d’emoji, pas d’Unicode détourné

Un séparateur est un losange ou un filet de 0,75 px. Une icône est un tracé, pas un caractère.

06
Le mouvement joue une fois

Les apparitions ont `fill-mode: both` et un délai indexé par `--i`. La seule boucle du site est le point du direct.