Maison interface Web tutoriel CSS Comment créer des jetons de typographie pour un système de conception à l'aide des mixins Sass

Comment créer des jetons de typographie pour un système de conception à l'aide des mixins Sass

Sep 05, 2024 am 06:47 AM

How to create typography tokens for a design system using Sass mixins

De nombreux systèmes de conception commencent avec des jetons de conception de base pour des éléments tels que les couleurs et les tailles, qui peuvent être facilement traduits en variables CSS (ou Sass, ou Less, etc.).

// tokens.scss
$primary-text-color: #aaa;
$secondary-text-color: #ccc;

$size-s: 8px;
$size-m: 16px;

// some-component.scss
.some-component {
    color: $primary-text-color;
    padding: $size-s $size-m;

    h4 {
        color: $secondary-text-color;
    }
}
Copier après la connexion

Le prochain ajout logique à votre collection de jetons est celui des polices. Et même si vous pouvez appliquer le modèle ci-dessus aux polices, la plupart des designers que j'ai rencontrés pensent à la typographie dans son ensemble. La police et son poids influencent sa taille et sa hauteur de ligne : c'est un tout.

En d'autres termes, la typographie est traitée comme une classe. C'est un excellent cas d'utilisation pour un mixin Sass (ou Less) (malheureusement, il n'y a actuellement pas d'équivalent en CSS natif).

Voici un exemple :

// tokens.scss
$font-sans-serif: Aria, Helvetica, sans-serif;

$size-s: 8px;
$size-m: 16px;
$size-l: 24px;
$size-xl: 48px;

@mixin heading-sans-serif-l {
    font-family: $font-sans-serif;
    font-size: $size-l;
    font-weight: 700;
    line-height: 1.3;
}

@mixin heading-sans-serif-xl {
    font-family: $font-sans-serif;
    font-size: $size-xl;
    font-weight: 700;
    line-height: 1.4;
}

// some-component.scss
@use "tokens";

.some-component {

    h2 {
        @include tokens.heading-sans-serif-xl;

        padding: $size-l $size-xl;  
    }

    h3 {
        @include tokens.heading-sans-serif-l;

        padding: $size-s $size-m;   
    }   
}
Copier après la connexion

Chaque h2 et h3 au sein de n'importe quel composant avec la classe some-component obtiendra tous les styles définis dans son mixin inclus - font-family, font-size, font-weight, line-height - et nous sommes libres de l'étendre en ajoutant du remplissage (vous importez à partir d'un fichier externe en utilisant @use). Vous pouvez également écraser n'importe quelle valeur de mixage, si nécessaire (ou si vous souhaitez faire trembler les yeux d'un concepteur).

C'est l'approche que j'ai adoptée lors de la création d'un système de conception sur Dictionary.com. Cela a certainement contribué à rationaliser les efforts de refonte de notre page d'accueil (Thesaurus.com également !) et de nos pages de navigation (/browse/light en est l'exemple par excellence), qui ont été lancées plus tôt cette année.

Exploitez les mixins pour créer de puissants éléments de base au sein de votre système de conception.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds Tags

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ajout d'ombres de boîte aux blocs et éléments WordPress Ajout d'ombres de boîte aux blocs et éléments WordPress Mar 09, 2025 pm 12:53 PM

Ajout d'ombres de boîte aux blocs et éléments WordPress

Créez un formulaire de contact JavaScript avec le cadre Smart Forms Créez un formulaire de contact JavaScript avec le cadre Smart Forms Mar 07, 2025 am 11:33 AM

Créez un formulaire de contact JavaScript avec le cadre Smart Forms

Créer un éditeur de texte en ligne avec l'attribut satisfaistable Créer un éditeur de texte en ligne avec l'attribut satisfaistable Mar 02, 2025 am 09:03 AM

Créer un éditeur de texte en ligne avec l'attribut satisfaistable

Faire votre première transition Svelte personnalisée Faire votre première transition Svelte personnalisée Mar 15, 2025 am 11:08 AM

Faire votre première transition Svelte personnalisée

Comparaison des 5 meilleurs constructeurs de formulaires PHP (et 3 scripts libres) Comparaison des 5 meilleurs constructeurs de formulaires PHP (et 3 scripts libres) Mar 04, 2025 am 10:22 AM

Comparaison des 5 meilleurs constructeurs de formulaires PHP (et 3 scripts libres)

Téléchargement de fichiers avec Multer dans Node.js et Express Téléchargement de fichiers avec Multer dans Node.js et Express Mar 02, 2025 am 09:15 AM

Téléchargement de fichiers avec Multer dans Node.js et Express

Meilleures animations et effets CSS sur Codecanyon 2025 (payé gratuitement) Meilleures animations et effets CSS sur Codecanyon 2025 (payé gratuitement) Mar 01, 2025 am 09:32 AM

Meilleures animations et effets CSS sur Codecanyon 2025 (payé gratuitement)

Travailler avec GraphQL Caching Travailler avec GraphQL Caching Mar 19, 2025 am 09:36 AM

Travailler avec GraphQL Caching

See all articles