Quelle est la vision pour le système de conception de Discourse ?

J’aimerais créer des thèmes et des composants personnalisés qui soient alignés sur le système de conception de Discourse et qui s’intègrent de manière cohérente et harmonieuse dans l’application.

En regardant simplement le code et la manière dont les styles sont définis et appliqués dans le cœur, je trouve difficile de comprendre la vision d’ensemble et la direction envisagée du système de conception.

J’essaierai de décomposer cela en trois sujets principaux : la couleur, la typographie et l’espacement.

Couleur

Il y a eu une introduction d’une échelle numérique pour certaines valeurs il y a deux ans. Je pense qu’il a été mentionné que cela ne visait qu’à compléter les transformations de couleurs nommées. Pour la valeur de couleur tertiaire, cela ressemble maintenant à ceci :

Je vois les deux modèles appliqués dans le nouveau code du cœur. L’idée à long terme est-elle de continuer à les utiliser côte à côte ou y a-t-il une vision différente ?

Dans tous les cas, ne devrait-il pas y avoir une échelle numérique pour les quatre valeurs de couleur principales ? Pour l’instant, ce n’est que pour le primaire et le tertiaire, mais pas pour le secondaire et le quaternaire.

Typographie

Il existe actuellement trois types différents de progression de la taille de la police définis :

Il n’y a pas eu de mises à jour à ce sujet depuis plus de deux ans. Faut-il les utiliser dans le nouveau code ? Franchement, je n’ai jamais touché aux définitions de multiplicateurs car il est difficile de définir la taille de police finale réelle. Mais je ne comprends pas non plus les définitions de police de base. L’échelle définie serait :

  • 13px - 14px - 15px - 17px - 19px

Mais quand je regarde les tailles de police réelles, l’échelle par défaut utilisée est plus ou moins :

  • 13px - 15px - 17.25px - 22px - 26px

Espacement

Je vois que de nouveaux éléments comme la barre latérale introduisent des variables racines pour l’espacement. Par exemple :

image

Cela facilite certainement l’ajustement de la mise en page de la barre latérale. Mais cela ne se traduit pas par d’autres éléments de mise en page. D’un autre côté, je ne vois pas de variables d’espacement fondamentales être introduites qui permettraient des ajustements de mise en page plus cohérents dans toute l’application. Est-ce que cela est prévu d’une manière ou d’une autre ?

Général

Ce serait formidable de savoir s’il existe des plans pour évoluer vers un système de conception plus cohérent et simple ?

Il semble y avoir trop de définitions non liées et autonomes pour le moment, et elles rendent très difficile la création d’une mise en page cohérente et rythmique avec une notion de facilité (et de joie :slight_smile: ).

Je comprends que c’est une grande application avec une tonne d’éléments différents. Cependant, j’ai juste fait un petit test sur la dernière vue de liste par défaut :

Ceci est une reconstruction avec chaque valeur d’espacement choisie dans une progression géométrique très simple (2px/4px/8px/16px/32px/64px). Et les tailles de police à partir de seulement 4 valeurs :

Il semble simplement qu’en termes de conception, il n’y ait pas besoin du nombre de définitions uniques qui existent actuellement dans toute l’application ?

14 « J'aime »

C’est quelque chose que nous voulions faire, et pour lequel nous avons progressivement travaillé par petites touches, mais ce n’est pas quelque chose qui peut se faire d’un coup. Chaque changement que nous apportons provoque des régressions potentielles de thèmes sur des milliers de sites (et nous devons en corriger beaucoup pour nos clients), donc il faut beaucoup de temps pour apporter de petits changements.

Nous avons également entrepris un travail de modernisation d’Ember depuis un certain temps, qui nécessite également de corriger les régressions et de refactoriser les thèmes existants. Cela est toujours en cours et prendra également du temps pour tout mettre à jour (remplacer notre système de widgets, par exemple, pourrait facilement prendre 6 mois de plus). Il y a beaucoup de priorités à équilibrer.

Il n’y a pas de direction envisagée en dehors d’une plus grande cohérence. Nous avons envisagé de découpler nos styles de base afin que le Discourse “non thémisé” par défaut ait beaucoup moins de CSS (ce qui pourrait faciliter la maintenance des thèmes)… mais ce n’est qu’une idée pour le moment.

Je pense que ceux-ci ont été ajoutés “au besoin”, donc nous n’avons pas eu besoin d’échelles secondaires/quaternaires supplémentaires. Nous n’avons pas l’intention de supprimer les versions nommées, donc l’une ou l’autre peut être utilisée dans un avenir prévisible.

Les tailles smallest/smaller/larger/largest sont pour le réglage de la taille du texte par l’utilisateur. La plupart du temps, elles n’auront pas besoin d’être modifiées.

L’échelle em est grossièrement basée sur une échelle typographique classique (The typographic scale, par exemple). Une échelle plus uniformément espacée comme 13-15-17-19 ne crée pas beaucoup de contraste et tout reste un peu petit à moins d’avoir de nombreuses étapes. Sur une échelle classique, les écarts entre les échelles augmentent avec la taille pour créer plus de contraste.

L’idée derrière l’échelle basée sur em est que tout dans l’application peut être mis à l’échelle proportionnellement, et des sections individuelles de l’application peuvent être mises à l’échelle proportionnellement. Je pourrais donc faire quelque chose comme

.sidebar-wrapper {
  font-size: 20px;
}

et tout ce qui se trouve à l’intérieur serait mis à l’échelle proportionnellement sans avoir à modifier chaque taille de police individuelle et tous les espacements associés.

En interne, les retours sont similaires aux vôtres, dans le sens où les développeurs veulent savoir exactement quelle taille de police ils obtiennent, quel que soit le contexte, ce qui est un inconvénient du système. Idéalement, nous ne nous soucierions pas des tailles exactes et pourrions simplement dire “cela devrait augmenter d’un cran parce que je veux que ce soit plus grand”, mais ce modèle mental ne semble pas venir naturellement.

Il y a un certain désir de passer à un système basé sur rem, mais comme mentionné précédemment… cela prendrait probablement beaucoup de temps à changer car cela affecterait de nombreux sites existants. Je préférerais également la base par défaut du navigateur de 16px plutôt que nos 15px, mais histoire similaire (c’était 14px ! nous avons donc fait au moins un pas).

L’échelle rem est utilisée pour les titres dans le contenu des publications cuisinées, car l’imbrication des balises de titre en utilisant des em signifiait que les individus pouvaient augmenter indéfiniment la taille du texte et causer des problèmes de mise en page.

Oui, cela a été soulevé à quelques reprises… (je ressemble à un disque rayé mais…) ce serait un changement très graduel pour éviter les régressions sur les sites existants. Pour le moment, nous ajoutons des variables partagées dans des zones spécifiques au fur et à mesure que nous les mettons à jour, ce qui est un pas dans la bonne direction.

La vitesse à laquelle ces choses se produisent est compréhensiblement un peu frustrante, mais pendant la majeure partie de l’histoire de Discourse, il n’y avait aucun designer à temps plein. L’équipe de conception est passée à 7 au cours des deux dernières années (y compris des designers dédiés au travail sur des projets clients, qui se déroulent principalement en dehors du regard public), nous allons donc espérons-nous progresser plus rapidement vers une plus grande cohérence maintenant.

12 « J'aime »

Merci pour les explications Kris ! C’est très utile.

Donc, je ne rencontre ce problème qu’à très petite échelle. Je pense parfois cependant qu’il pourrait être utile de changer l’attente générale concernant le Produit. Pour établir que Discourse évolue rapidement.

Ce serait bien, mais je pense que cela nécessiterait toujours des points d’ancrage plus faciles. Il y a tellement de modèles. Même si chacun d’eux a un CSS plus simple, si je ne peux pas les modifier de manière orchestrée, cela représente toujours beaucoup de travail.

C’est un beau modèle mental. Je préférerais avoir des tailles exactes car elles sont beaucoup plus faciles à appliquer. Par exemple, quelqu’un a un système de conception, j’applique simplement les nombres et je regarde le résultat. Alors qu’autrement, j’ai l’impression que je devrais aligner deux systèmes. Comme si je devais comprendre leur caractère et trouver leur air commun.

5 « J'aime »

En réfléchissant davantage à cela… Je pourrais avoir plusieurs visions pour un système de conception Discourse.

Discourse Design System-95
Un système de conception pratique avec des blocs de construction atomiques standardisés. Ce serait toujours une première étape nécessaire, je suppose.


Un système qui abstrait certains composants de haut niveau. Pour Discourse, il pourrait s’agir de modération, de reconnaissance, d’information,…


Un système commun de modèles pour la conversation en ligne. Similaire à la portée fondamentale d’un système comme Material Design.

2 « J'aime »