Noir et blanc : un système de design conçu pour la concentration
Pourquoi nous bâtissons chaque produit sur un système de design minimaliste en noir et blanc : gammes de gris fermées, hiérarchie d'échelle typographique et accessibilité par défaut.
Par Vitor Lima
Nous construisons chaque produit OLUWA en noir et blanc strict. Pas de bleu de marque, pas de turquoise d'accent, pas de « vert de succès » qui se glisse dans une notification. Un système de design minimaliste en noir et blanc n'est pas de la nostalgie pour le terminal et ce n'est pas un moodboard qui nous a séduits. C'est une contrainte de travail qui rend nos décisions plus rapides, nos interfaces plus lisibles, et notre niveau de base d'accessibilité plus élevé par défaut. Voici pourquoi nous avons choisi le monochrome, ce à quoi nous avons renoncé, et les jetons et règles que vous pourriez adopter dès demain.
Pourquoi nous avons retiré la couleur volontairement
La couleur est la variable la plus abusée dans le design d'interface. Elle est bon marché à ajouter et coûteuse à gouverner. Dès l'instant où vous avez une palette, chaque élément se dispute l'une de vos teintes, et « de quelle couleur cela doit-il être » devient une question à laquelle vous répondez des centaines de fois par semaine, généralement de façon incohérente.
Un bouton destructeur est rouge. Mais un état d'erreur l'est aussi, ainsi qu'un marqueur de champ obligatoire, le badge de notification, et la série de graphique des utilisateurs perdus. Le rouge signifie désormais cinq choses, autant dire qu'il ne signifie rien.
Retirer la couleur supprime toute cette catégorie de décisions. Quand vous ne pouvez pas recourir à une teinte pour signaler l'importance, vous la signalez avec les outils qui portent réellement du sens : la position, la taille, la graisse et le blanc. Ces outils sont plus honnêtes. Un titre se lit comme important parce qu'il est grand et se tient en haut avec de l'espace autour de lui, pas parce que quelqu'un l'a peint en violet.
À retenir : si vous utilisez la couleur pour corriger un problème de hiérarchie, vous avez un problème de hiérarchie, pas un problème de couleur. Le monochrome refuse de vous laisser le masquer.
Une hiérarchie sans couleur : trois leviers
La teinte étant écartée, trois leviers font tout le travail.
L'échelle typographique. Nous utilisons une échelle modulaire avec des sauts nets, pas un dégradé continu de tailles. Des paliers trop rapprochés se lisent comme du bruit ; l'œil a besoin d'un rang sans ambiguïté. Notre échelle de travail est d'environ 12 / 14 / 16 / 20 / 28 / 40 / 64 px. Le texte courant se situe à 16, les métadonnées secondaires à 14, et tout ce qui dépasse 20 est structurel. Si deux éléments doivent sembler différents en importance, ils reçoivent des paliers différents, jamais le même palier en deux nuances de gris.
La graisse et la casse. Avec une seule police et aucune couleur, la graisse devient un signal primaire. Nous utilisons au plus trois graisses : normale, moyenne, et un unique gras réservé à une emphase véritable. Les majuscules avec un interlettrage élargi font le travail d'une « couleur d'étiquette », marquant une chaîne comme catégorie ou surtitre sans teinte.
L'espace. Le blanc est le mur porteur d'une mise en page monochrome. La proximité regroupe les choses liées ; la distance les sépare. Dans MadaiOps, notre application d'ordres crypto, le bordereau d'ordre repose entièrement là-dessus : le prix, la taille et le sens sont étroitement groupés, tandis que l'action de confirmation est repoussée par un espace délibéré pour qu'on ne puisse jamais la toucher par mégarde à côté d'un champ de saisie. Aucun style « danger » rouge requis. C'est l'espacement qui monte la garde.
Le contraste est un système, pas une ambiance
Le piège avec le noir et blanc est de croire que vous n'avez que deux valeurs. Vous avez une gamme complète de niveaux de gris, et la discipline consiste à la brider. Nous définissons un petit ensemble fixe de paliers et interdisons les gris hors gamme. Voici la gamme que nous livrons réellement :
--ink-000: #000000 /* primary text, headings */
--ink-700: #3d3d3d /* body on light, secondary headings */
--ink-500: #6b6b6b /* metadata, captions, disabled-adjacent */
--ink-300: #b0b0b0 /* borders, dividers, placeholder */
--ink-100: #e6e6e6 /* subtle fills, hover backgrounds */
--paper: #ffffff /* base surface */
Six valeurs. C'est tout le système, plus son inverse pour le mode sombre. La règle que nous imposons en revue : aucun gris ne peut exister s'il n'est pas sur la gamme. À l'instant où quelqu'un prélève un #8a8a8a à la pipette parce que « la bordure semblait un poil trop lourde », le système commence à pourrir. Un ensemble fermé de valeurs, c'est ce qui empêche une interface monochrome de dériver vers une uniformité boueuse.
Le texte franchit 4,5:1, la structure franchit 3:1
Chaque appariement texte-sur-surface est vérifié contre les ratios de contraste WCAG avant sa livraison. --ink-500 sur --paper atteint environ 5,7:1, confortablement au-delà du seuil de 4,5:1 pour le texte courant. --ink-300 échoue en tant que texte et n'est donc autorisé que pour les bordures et les séparateurs, où s'applique le seuil de 3:1 pour le non-texte. Encoder la règle dans les usages autorisés du jeton, et non seulement dans sa valeur, c'est ce qui la fait tenir.
Le dividende d'accessibilité
C'est là que le monochrome gagne discrètement. Environ un homme sur douze présente une forme de déficience de la vision des couleurs, et toute interface qui s'appuie sur le rouge contre le vert pour porter du sens est illisible pour une part non négligeable des utilisateurs. Nous ne heurtons jamais ce mur, car nous n'avons jamais encodé de sens dans la teinte au départ. Nos états se distinguent par la forme, l'étiquette, la graisse et la position.
Cette discipline impose partout un schéma plus sain : ne laissez jamais un seul canal porter du sens à lui seul. Un bouton désactivé dans notre système n'est pas simplement plus clair. Il perd sa bordure et son étiquette passe à --ink-300, de sorte que l'état survit à l'identique sur un écran en niveaux de gris, en plein soleil, et pour un utilisateur daltonien. Youp, notre application de journal intime, marque les entrées d'humeur avec des icônes et du texte d'étiquette plutôt qu'avec l'habituel dégradé de sentiment du rouge au vert, si bien que l'historique émotionnel se lit sans dépendre d'un spectre que beaucoup de gens ne peuvent pas voir.
Vous obtenez aussi la prise en charge du contraste élevé et des couleurs forcées presque gratuitement, parce que vous n'avez jamais combattu les propres surcharges d'accessibilité du navigateur avec une palette de marque délicate.
Comment la contrainte accélère les décisions
Le bénéfice sous-estimé, c'est la vélocité. Une palette est une explosion combinatoire : chaque nouveau composant se multiplie par chaque teinte et chaque état. Le monochrome fait s'effondrer cela. Sans décision de couleur à prendre, le design d'un composant se réduit au palier typographique, à la graisse, à l'espacement et au jeton de niveau de gris de la bordure. C'est une décision que vous pouvez prendre en quelques secondes et défendre en revue avec une règle plutôt qu'avec un argument de goût.
Et cela se cumule. Parce que l'ensemble de jetons est minuscule et fermé, les composants se composent de façon prévisible : une carte, une ligne de tableau et une fenêtre modale puisent tous dans les six mêmes gris et les sept mêmes paliers typographiques, si bien qu'ils paraissent apparentés sans aucune coordination. Les nouvelles surfaces héritent de la cohérence au lieu de la négocier. Pour un petit studio qui livre plusieurs produits, ce substrat partagé fait la différence entre quatre applications qui semblent former une même famille et quatre applications qui semblent venir de quatre prestataires.
Le compromis est réel et mérite d'être nommé. Le monochrome a une amplitude expressive brute moindre, et certaines catégories ont réellement besoin de couleur : la visualisation de données à séries multiples, tout ce qui correspond à une couleur physique, les moments de marque qui misent sur la chaleur. Nous ne prétendons pas le contraire. Notre position est que la couleur doit être méritée et rare, introduite délibérément pour un travail précis, jamais comme levier par défaut de la hiérarchie. Quand nous y recourons, elle frappe fort précisément parce que tout ce qui l'entoure est silencieux.
Des règles que vous pouvez adopter dès demain
Si vous voulez essayer cela sans tout reconstruire :
- Fermez votre gamme de gris. Choisissez cinq ou six valeurs, nommez-les, et bannissez en revue de code tout ce qui est hors gamme. Cette seule règle fait l'essentiel du travail.
- Créez une seule échelle typographique et n'utilisez que ses paliers. Pas de tailles de police arbitraires. Si vous avez sans cesse besoin d'une nouvelle taille, l'échelle est mauvaise ; corrigez l'échelle, n'ajoutez pas d'exception ponctuelle.
- Encodez les usages autorisés dans les jetons.
--ink-300, c'est « bordures uniquement », pas seulement une valeur hexadécimale. Documentez-le là où les ingénieurs le liront. - Auditez chaque signal porteur de sens à la recherche d'un second canal. Si retirer la couleur rendait un état ambigu, ajoutez de la forme, une étiquette ou une position jusqu'à ce que ce ne soit plus le cas.
- Traitez le blanc comme un composant. Donnez à l'espacement des jetons nommés et défendez-les en revue comme vous défendez les couleurs ailleurs.
Pensée de clôture
Travailler en noir et blanc n'est pas une limitation que nous tolérons ; c'est une lentille qui clarifie. Retirez la variable la plus facile et les variables structurelles — le rythme, la proportion, le contraste, l'espace — n'ont nulle part où se cacher. L'interface a une vraie hiérarchie ou elle n'en a pas, et vous le découvrez immédiatement. Cette honnêteté vaut à nos yeux plus que n'importe quelle palette.