Maison > interface Web > tutoriel CSS > Pourquoi ajouter des classes atomiques CSS Tailwind au projet ❓

Pourquoi ajouter des classes atomiques CSS Tailwind au projet ❓

Susan Sarandon
Libérer: 2024-12-12 11:40:10
original
190 Les gens l'ont consulté

Problème

  • Lors de projets avec de nombreux développeurs d'interface utilisateur, commencez à coder les composants à leur manière, chacun déclarant ses propres classes CSS personnalisées, selon les besoins.

Manière traditionnelle

Lorsque nous considérons un problème simple et bien connu consistant à centrer un "div" dans une page, c'est ainsi que nous créons généralement une classe, avec tout le style nécessaire.

<template>
    <div>



<p>output :- </p>

<p><img src="https://img.php.cn/upload/article/000/000/000/173397481225444.jpg" alt="Why add Tailwind CSS Atomic Classes to project ❓"></p>

<p>Pros :- </p>

Copier après la connexion
  • Developers can add any styling for the classes as they please.

Cons :-

  • As project grows, there won't be any uniformed styling for the project.
  • It becomes tedious to apply same styles for new modules, as develepoers need to apply them themselves.
  • Developer intent is not clear, i.e class name is "center-div" but inner styling can be anything they desire.

Tailwind philosophy

Building complex components from a constrained set of primitive utilities.

  • We need to break a component classes from group up with Atomic classes.
<template>
    <div
       >



<p>Output</p>

<p><img src="https://img.php.cn/upload/article/000/000/000/173397481369954.jpg" alt="Why add Tailwind CSS Atomic Classes to project ❓"></p>

<p>What Happened, where are the classes ⁉️</p>

Copier après la connexion
  • As you can see from the code above we have used quite a few classes in our "div"

class="box-border absolute flex justify-items-center top-1-2 left-1-2 fill-gray-alpha color-fill max-w-sm"

  • Each class is registered in the global application scope, which goes like this
.box-border {
    box-sizing: border-box;
}

.absolute {
    position: absolute;
}

.flex {
    display: flex;
}

.justify-items-center {
    justify-items: center;
}

.top-1-2 {
    top: 50%
}

.left-40-p {
    left: 40%;
}

.max-w-sm {
    max-width: 24rem; /* 384px */
}
Copier après la connexion
  • Étant donné que toutes ces classes sont disponibles dans le cadre global, tout développeur peut les utiliser librement.

Avantages

  • Réduit considérablement la taille du bundle CSS.
  • Veille à ce que le style des composants soit cohérent au sein de l'équipe.
  • Les développeurs peuvent rapidement prototyper leurs idées, avec moins d'efforts pour refaire le même style.

Inconvénients

  • Courbe d'apprentissage, chaque développeur doit se familiariser avec les classes déjà existantes.
  • Le projet doit conserver une documentation appropriée lors de l'ajout de ces classes déclarées globales pour que d'autres puissent les consommer.

Pièges de Vue JS

:deep() / ::v-deep

  • le bain ? du ciblage CSS de Vue JS.

Cours traditionnels

  • Le ciblage et l'application du style pour les classes sont très simples
div {
    ::v-deep .center-div {
        background-color: red;
    }
}
Copier après la connexion

Cours de Taiwind

  • Les développeurs doivent faire preuve de beaucoup de créativité lorsqu'ils ciblent "div"
div {
    ::v-deep :first-of-type {
        background-color: red;
    }
}
Copier après la connexion

Comment introduire les classes CSS Tailwind dans votre application

Manière traditionnelle

  • on peut facilement les installer avec

Installation du vent arrière

npm install -D tailwindcss
npx tailwindcss init
Copier après la connexion
  • mais cela installera (c'est-à-dire enregistrera) une pléthore de toutes les classes, dans la portée globale.

Non conventionnel ? chemin

  • Lorsque votre application dispose déjà d'une bibliothèque CSS existante, il serait idéal de sélectionner les classes dont nous avons besoin et de les ajouter dans un fichier CSS et de l'enregistrer globalement dans l'application.

  • Dites que votre application souhaite uniquement de la flexibilité dans le style flexbox
    -- Obtenez une liste des cours dont vous avez besoin à partir de styles flexibles

  • choisissez les cours que vous préférez ? supposer ? votre application a besoin et ajoutez-les selon vos besoins.

  • De cette façon, nous pouvons garder le bundle CSS considérablement petit, mais l'équipe de développement doit avoir un contrôle strict sur les CSS qu'elle applique ?.

/* FlexBox */
.flex {
    display: flex;
}

.flex-row {
    flex-direction: row;
}

.flex-row-reverse {
    flex-direction: row-reverse;
}

.flex-col {
    flex-direction: column;
}

.flex-col-reverse   {
    flex-direction: column-reverse;

}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.grow {
    flex-grow: 1;
}

.grow-0 {
    flex-grow: 0;
}

.shrink {
    flex-shrink: 1;
}
.shrink-0 {
    flex-shrink: 0;
}
.justify-normal {
    justify-content: normal;
}
.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.justify-around {
    justify-content: space-around;
}
.justify-evenly {
    justify-content: space-evenly;
}
.justify-stretch {
    justify-content: stretch;
}
.justify-items-start {
    justify-items: start;
}
.justify-items-end {
    justify-items: end;
}
.justify-items-center {
    justify-items: center;
}
.justify-items-stretch {
    justify-items: stretch;
}
.justify-self-auto {
    justify-self: auto;
}
.justify-self-start {
    justify-self: start;
}
.justify-self-end {
    justify-self: end;
}
.justify-self-center {
    justify-self: center;
}
.justify-self-stretch {
    justify-self: stretch
}
.content-noraml {
    align-content: normal;
}
.content-center {
    align-content: center;
}
.content-start {
    align-content: start;
}
.content-end {
    align-content: end;
}
.content-between {
    align-content: space-between;
}
.content-around {
    align-content: space-around;
}
.content-evenly {
    align-content: space-evenly;
}
.content-baseline {
    align-content: baseline;
}
.content-stretch {
    align-content: stretch;
}
.items-start {
    align-items: start;
}
.items-end {
    align-items: end;
}
.items-center {
    align-items: center;
}
.items-baseline {
    align-items: baseline;
}
.items-stretch {
    align-items: stretch;
}

// Align Self 
.self-auto {
    align-self: auto;
}

.self-start {
    align-self: flex-start;
}

.self-end {
    align-self: flex-end;
}

.self-center {
    align-self: center;
}

.self-stretch {
    align-self: stretch;
}

.self-baseline {
    align-self: baseline;
}

Copier après la connexion

Conclusion

  • Utiliser les classes Atomic avec Tailwind comme référence peut
  • Réduisez l'empreinte CSS d'un projet.
  • Maintenir la cohérence du style dans toute l'application.
  • Augmente la vitesse du développeur, avec un prototypage rapide. ?

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!

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal