Maison > interface Web > tutoriel CSS > Comprendre Galadriel CSS et Nenyr : un guide complet du style déclaratif

Comprendre Galadriel CSS et Nenyr : un guide complet du style déclaratif

Patricia Arquette
Libérer: 2025-01-15 10:25:44
original
284 Les gens l'ont consulté

Dans le monde trépidant du développement Web, la création d'un code maintenable, évolutif et optimisé est plus importante que jamais. Pour les développeurs qui apprécient la modularité et la clarté, Galadriel CSS présente une solution puissante. Au cœur de Galadriel CSS se trouve Nenyr, un langage spécifique à un domaine (DSL) conçu pour simplifier la création de styles de manière déclarative. Dans cet article, nous explorerons les fonctionnalités de base de Galadriel CSS et de Nenyr, en plongeant dans leurs philosophies de conception uniques, les mécanismes qui les animent et comment ils travaillent ensemble pour créer un CSS efficace et axé sur l'utilitaire. Nous démontrerons également comment ces outils interagissent en définissant deux documents Nenyr de base : un central et un module, chacun servant à mettre en évidence les principes clés de Galadriel CSS.

Introduction à Galadriel CSS et Nenyr
Avant d'entrer dans les détails du fonctionnement de Galadriel CSS et Nenyr, il est crucial de comprendre le problème qu'ils visent à résoudre. Dans les flux de travail CSS traditionnels, les définitions de style peuvent devenir confuses et répétitives, ce qui rend difficile la gestion efficace de projets à grande échelle. En introduisant une approche modulaire et hiérarchique, Galadriel CSS cherche à surmonter ces problèmes, en tirant parti de la puissance du langage Nenyr pour apporter clarté et flexibilité à la conception Web.

Qu'est-ce que Galadriel CSS ?
Galadriel CSS est un framework conçu pour optimiser le processus de style des sites Web en créant un système modulaire et évolutif d'écriture CSS. Il décompose le processus de conception en contextes distincts : Central, Mise en page et Module, chacun servant un objectif spécifique dans la gestion des règles de style. Ce système hiérarchique garantit que les styles sont appliqués de manière cohérente dans les différentes parties du site Web, réduisant ainsi le risque de conflits et de redondances.

La fonctionnalité principale de Galadriel CSS est son intégration Nenyr. Nenyr est utilisé comme langage pour définir les styles de manière déclarative, permettant aux développeurs de créer un code clair et réutilisable. Contrairement au CSS traditionnel, qui nécessite des définitions impératives de styles, Nenyr permet la déclaration des propriétés de style d'une manière qui reflète la structure du document lui-même.

Qu'est-ce que Nenyr ?
Nenyr est un langage spécifique à un domaine qui facilite la création de styles de manière plus intuitive et modulaire. Son objectif principal est de fournir une syntaxe déclarative pour définir des styles qui seront ensuite analysés par Galadriel CSS et transformés en une sortie CSS optimisée et axée sur les utilitaires. Les documents Nenyr contiennent des classes, des points d'arrêt, des variables, des alias, des thèmes et d'autres définitions qui définissent les règles de style des éléments HTML, mais au lieu d'écrire manuellement chaque règle en CSS, les utilisateurs définissent leurs styles dans un format structuré et hiérarchique.

Nenyr simplifie le processus d'écriture des styles en permettant la réutilisation des classes et en réduisant la complexité du CSS traditionnel. Il fonctionne en tandem avec Galadriel CSS pour transformer ces définitions de style déclaratif de haut niveau en un fichier CSS final à la fois optimisé et exempt de redondances.

Comment Galadriel CSS et Nenyr travaillent ensemble
Au cœur de Galadriel CSS se trouve un système qui analyse les documents Nenyr, génère un arbre de syntaxe abstraite (AST) et applique des règles spécifiques pour l'héritage, l'extension et l'unicité. Décomposons ce processus plus en détail.

Analyse des documents Nenyr : le rôle de l'analyseur Nenyr
La première étape du flux de travail CSS Galadriel consiste à analyser les documents Nenyr. Lorsqu'un document Nenyr est traité, il est introduit dans l'analyseur Nenyr, qui génère un arbre de syntaxe abstraite (AST). Cet AST représente la structure et le contenu du document Nenyr, le décomposant en règles de style individuelles qui seront ensuite transformées en classes CSS utilitaires à appliquer aux éléments HTML.

L'analyseur Nenyr traite chaque document, en extrayant les définitions, propriétés et valeurs de classe. Une fois analysé, l'AST résultant contient toutes les informations de style nécessaires à Galadriel CSS pour passer aux étapes suivantes. Le principal avantage ici est que le langage Nenyr permet aux développeurs de définir des styles de manière déclarative, conduisant à un code plus efficace et plus lisible.

Application de règles d'extension, d'héritage, contextuelles et d'unicité
Une fois l'AST généré, Galadriel CSS applique plusieurs règles importantes pour garantir que la sortie CSS finale est propre et efficace.

  • Règles d'extension : Ces règles permettent l'héritage des styles à partir des contextes parents. Dans Galadriel CSS, une règle de style peut étendre d'autres règles, garantissant ainsi que les styles communs sont réutilisés dans différentes parties de l'application. Cela réduit le besoin de code répétitif et garde les définitions de style SÈCHES (Ne vous répétez pas).
  • Règles d'héritage : Semblable à l'extension, mais axé sur les classes et non sur le contexte, l'héritage permet à une classe d'hériter des styles de ses ancêtres. Cela facilite la gestion des styles à un niveau supérieur et leur propagation aux éléments enfants.
  • Règles contextuelles : les règles contextuelles sont conçues pour appliquer des styles basés sur le contexte le plus proche ; si Galadriel CSS ne trouve pas de valeur dans le même contexte, il la cherchera plus haut dans la hiérarchie jusqu'à ce qu'il trouve la première valeur et l'utilisera. Cette fonctionnalité s'applique aux variables, aux animations, aux alias et aux classes.
  • Règles Unicity : L'un des aspects les plus importants de Galadriel CSS est sa capacité à empêcher la redondance. Le système vérifie si une règle de style existe déjà dans l'AST global. Si le style est déjà présent, Galadriel CSS ne crée pas de nouvelle règle. Au lieu de cela, il lie simplement la règle existante à la classe Nenyr, garantissant que le CSS généré est exempt de styles redondants. Ce mécanisme contribue à l'efficacité globale de Galadriel CSS en réduisant la taille du fichier CSS final.

Génération du CSS final
Après avoir appliqué les règles d'extension, d'héritage, de prise en compte du contexte et d'unicité, Galadriel CSS génère la sortie CSS finale. Cette sortie est optimisée pour les performances, garantissant que seules les règles de style nécessaires sont incluses et qu'aucune redondance n'est présente. Le fichier CSS résultant est d'abord utilitaire, ce qui signifie qu'il contient des classes atomiques réutilisables qui peuvent être appliquées à divers éléments du site Web.

Exemple pratique : Définition d'un document central et d'un module dans Nenyr
Dans cet article, nous passerons en revue le processus de configuration de Galadriel CSS avec Next.js et montrerons comment créer deux documents Nenyr simples : un document central pour les styles globaux et un document de module pour un composant spécifique. Cette configuration de base vous donnera une vue complète du fonctionnement de Galadriel CSS et de la manière d'utiliser Nenyr pour le style.

Configuration de l'environnement
Avant de commencer, assurez-vous que le serveur de développement CSS Galadriel est installé et correctement configuré. Vous pouvez vous référer à https://galadrielcss-docs.vercel.app/docs/installation pour des instructions d'installation détaillées. Voici

Configuration du CSS Galadriel avec Next.js
Pour commencer, nous devons configurer le serveur de développement CSS Galadriel avec l'application Next.js. Étant donné que Galadriel CSS prend actuellement en charge Webpack (avec des projets futurs pour d'autres bundles comme Vite, ESBuild et Rollup), nous utiliserons Webpack dans cet exemple.

Démarrez le serveur de développement CSS Galadriel : Dans une fenêtre de terminal dédiée, exécutez la commande suivante pour démarrer le serveur de développement CSS Galadriel :

Image description

Cette commande configure le serveur backend qui traitera les fichiers Nenyr et générera du CSS optimisé.

Démarrez le serveur de développement Next.js : dans une fenêtre de terminal séparée, accédez au répertoire de votre projet Next.js et exécutez :

Image description

Cela démarrera le serveur de développement pour Next.js. N'oubliez pas que Galadriel CSS doit être démarré en premier ; sinon, le client d'intégration Webpack tentera de se connecter au backend CSS Galadriel et générera une erreur s'il ne le trouve pas.
Installez le client Galadriel CSS Webpack : Pour intégrer Galadriel CSS à Next.js, vous devez installer le plugin Galadriel CSS pour Webpack. Pour des instructions détaillées sur la façon d'installer et de configurer le client, reportez-vous à la documentation officielle : https://galadrielcss-docs.vercel.app/docs/integrating-with-next-and-docusaurus.

Configuration CSS globale : dans Next.js, les styles globaux sont généralement définis dans le fichier global.css. Pour vous assurer que les styles CSS Galadriel sont inclus, ajoutez la directive suivante en haut de votre global.css :

Image description

Cette directive indique au client d'intégration CSS Galadriel d'injecter les styles générés dans votre application.

Création du document central
Le document central dans Galadriel CSS définit les styles globaux pour l'ensemble de l'application. C’est la base sur laquelle d’autres styles s’appuieront. Pour cet exemple, nous allons créer un fichier nommé central.nyr qui définit un style simple pour le étiquette.

Structure des dossiers
Pour ce tutoriel, nous utilisons la structure de dossiers suivante pour l'application Next.js :

Image description

Vous pouvez placer le fichier central.nyr dans le dossier src, mais pour cet exemple, nous le conserverons dans le répertoire racine pour plus de clarté.

Rédaction du document central Nenyr
Dans le fichier central.nyr, nous définirons le contexte Central et créerons une classe Nenyr pour styliser le élément. Cette classe appliquera le style flexbox pour centrer le contenu du corps et définir la hauteur et la largeur du corps à 100 % de la fenêtre d'affichage.

Image description

Explication
Construct Central : Ceci définit le contexte central dans lequel les styles globaux sont appliqués.
Declare Class("body") : Cela crée une classe Nenyr nommée "body", les styles de cette classe seront ensuite appliqués à l'élément body.
Feuille de style : à l'intérieur de la classe, nous utilisons la méthode Stylesheet pour définir les propriétés Nenyr de la classe. Nous utilisons flexbox pour centrer le contenu verticalement et horizontalement, en définissant la hauteur et la largeur à 100 % de la fenêtre d'affichage en utilisant respectivement 100vh et 100vw.

Une fois le fichier central.nyr créé, Galadriel CSS le traitera automatiquement et générera le CSS correspondant.

Appliquons maintenant la classe "body" du contexte central à l'élément body, modifions le fichier layout.tsx dans votre application Next.js :

Code pour layout.tsx

Image description

Ici, vous devez utiliser le type « @class », ce balisage indique que la classe que nous allons utiliser pour styliser le l'élément est situé à l'intérieur du contexte central ; puis nous spécifions le nom de la classe résidant dans le contexte central. L'application de style finale ressemblera à ceci : className="@class:body". Le client d'intégration Webpack remplace ce marqueur par les noms de classes d'utilitaires appropriés pendant le processus de construction.

Définition du document du module
En plus du contexte central, Galadriel CSS permet également de définir des documents de module. Ceux-ci sont utilisés pour définir des styles spécifiques à certains composants ou parties de votre application. Pour cet exemple, nous allons créer un document module pour styliser un

élément qui affiche le texte "Styled With Galadriel CSS".

Rédaction du document du module Nenyr
Créez un fichier nommé page.nyr dans le dossier src/app. Dans ce fichier, définissez un contexte de module et une classe pour le

étiquette :

Image description

Explication
Module de construction : ceci définit le contexte du module nommé « page » pour les styles de composants spécifiques.
Declare Class("box") : Cela crée une classe Nenyr nommée "box". Les styles à l'intérieur de cette classe seront ensuite appliqués à un élément div.
Feuille de style : la méthode Stylesheet est utilisée pour définir les propriétés de style. Dans ce cas, nous ajoutons un remplissage, définissons la couleur d'arrière-plan, modifions la couleur du texte et centrons le texte dans l'élément, etc.

Avec ce fichier page.nyr en place, Galadriel CSS générera les styles nécessaires pour la classe « box ». Appliquons maintenant la classe box au

élément, mettons à jour le fichier page.tsx :

Code pour page.tsx

Image description

Ici, il faut préciser l'emplacement de la classe dans les documents Nenyr, dans ce cas elle se situe à l'intérieur d'un contexte de module nommé « page ». Ensuite, il faut utiliser le type « @module » pour indiquer qu'elle se trouve dans la carte des modules, puis il faut préciser dans quel module se trouve la classe, dans ce cas, elle se trouve dans le contexte « page », et enfin spécifiez la classe réelle que nous voulons utiliser, voici « box ». Le balisage final sera : className="@module:page::box". Le client d'intégration résout ce marqueur en noms de classes d'utilitaires appropriés situés sur la carte des modules dans le nœud de page pendant le processus de construction.

Ces exemples démontrent la simplicité et la puissance de Galadriel CSS pour un style modulaire et hiérarchique. En séparant les styles globaux et spécifiques aux composants dans des documents Nenyr distincts, vous pouvez obtenir une base de code propre et évolutive.
Le client d'intégration fonctionne comme l'épine dorsale du flux de travail de Galadriel CSS. Pendant le développement, il analyse les composants de l'application pour identifier les espaces réservés spécifiques à Nenyr, ou « balises », tels que « @class:body » ou « @module:page::box ». Ces espaces réservés indiquent où les styles, définis dans les documents Nenyr, doivent être appliqués. Le client d'intégration traite ces marqueurs et les remplace par des noms de classes utilitaires générés dynamiquement par Galadriel CSS.

Chaque classe Nenyr correspond à un ensemble de noms de classes utilitaires CSS, et chaque valeur de propriété au sein d'une classe Nenyr représente une classe utilitaire unique. Par exemple, une valeur de propriété backgroundColor: « blue » dans une classe Nenyr génère une classe utilitaire CSS correspondante pour définir la couleur d'arrière-plan. Le client d'intégration relie ces classes utilitaires aux éléments spécifiés dans vos composants, garantissant ainsi que les bons styles sont appliqués sans intervention manuelle.

Le processus de génération de styles optimisés
Galadriel CSS est conçu avec l'optimisation à la base. Lorsqu'il crée des classes utilitaires CSS, il évite la duplication en vérifiant si une classe utilitaire existe déjà. Si une classe utilitaire est déjà présente, elle établit simplement une référence entre la classe utilitaire CSS existante et la classe Nenyr qui la nécessite. Cette approche élimine la redondance et aboutit à une feuille de style globale simple et efficace.

À la fin du processus, Galadriel CSS produit une carte retraçant toutes les classes Nenyr et les noms de classes utilitaires auxquelles elles sont liées ; qui sera ensuite utilisé par le client d'intégration pour injecter les données nécessaires dans la version de sortie de l'application. Ce mappage améliore non seulement la maintenabilité, mais garantit également que la sortie finale contient uniquement les règles CSS nécessaires. Le résultat est une sortie de build exempte de styles inutilisés, de pollution ou de surcharge CSS, conduisant à une évolutivité et des performances améliorées pour votre application.

Galadriel CSS : révolutionner l'optimisation du style et le flux de travail de développement
Lors de la création d'applications Web modernes, les développeurs sont souvent confrontés à des difficultés pour équilibrer un code propre et maintenable pendant le développement avec une sortie hautement optimisée pour la production. Galadriel CSS offre une solution révolutionnaire à ces défis, offrant une expérience de développement rationalisée et garantissant des performances optimales dans les versions de production.

Développement temps réel avec Galadriel CSS
Si vous avez démarré les serveurs de développement Galadriel CSS et Next.js, vous avez probablement remarqué une fonctionnalité impressionnante : les mises à jour de style en temps réel. Cette expérience transparente est au cœur de la philosophie centrée sur les développeurs de Galadriel CSS. Les modifications apportées à vos styles se reflètent instantanément, ce qui permet aux développeurs d'itérer rapidement et de se concentrer sur la création de designs époustouflants et avancés.

Mais la vraie magie se produit lorsque vous passez du développement à la production. L'exécution de la commande Next.js build, npm run build, déclenche un processus sophistiqué orchestré par le client d'intégration fourni par Galadriel CSS. Cette intégration garantit que votre application reste légère, performante et dépourvue de dépendances inutiles.

Comprendre le processus de construction
L'exécution de la commande build lance Webpack, qui, à son tour, active le client d'intégration CSS Galadriel. Le client effectue les tâches clés suivantes :

  1. Gestion des dépendances
  2. Application de style
  3. Nettoyage

Contrairement aux frameworks CSS traditionnels qui peuvent inclure une surcharge inutile dans la construction finale, Galadriel CSS produit une sortie statique et entièrement optimisée. Cette approche élimine toute dépendance vis-à-vis du système pendant l'exécution, garantissant ainsi que l'environnement de production est simple et efficace.

En mode développement, Galadriel CSS fonctionne sans générer de dossiers de dépendances ni créer de dépendances supplémentaires. Au lieu de cela, il utilise le système installé globalement sur votre machine pour une fonctionnalité transparente. En revanche, en mode construction, le client d'intégration télécharge automatiquement la dernière version de Galadriel CSS à partir des versions GitHub. Cette automatisation rationalise le processus de création, réduisant les interventions manuelles et simplifiant les flux de travail pour les développeurs. En gérant des processus complexes en coulisses, Galadriel CSS permet aux développeurs de se concentrer sans effort sur la création de styles avancés et visuellement époustouflants grâce à sa syntaxe intuitive Nenyr.

Exploration du résultat de la construction
Une fois le processus de construction terminé, le code résultant réside dans le dossier .next. Ce dossier contient à la fois les fichiers HTML et CSS nécessaires à votre application. Pour illustrer la transformation, considérons ce qui suit :

Exemple de code de développement

Image description

Ici, les attributs de classe utilisent les balises Nenyr, une syntaxe déclarative fournie par Nenyr pour définir l'application des styles aux éléments HTML. Cette approche claire et lisible est inestimable pendant le développement, permettant aux développeurs de se concentrer sur la structure et les fonctionnalités sans se soucier de l'encombrement des classes utilitaires.

Exemple de code de construction de sortie

Image description

Ces éléments sont les mêmes que ceux créés lors du développement, mais cette version fait partie de la sortie du build Next.js. Notamment, les balises Nenyr, telles que "@class:body" et "@module:page::box", ne sont plus présentes dans les attributs de classe. Au lieu de cela, les attributs de classe contiennent désormais les noms de classes utilitaires réels qui stylisent chaque élément. Cette transformation est gérée par le client d'intégration, qui remplace les balises Nenyr par les classes utilitaires correspondantes. Les composants de construction sont constitués uniquement de contenu statique, sans aucune référence directe à Galadriel CSS ou Nenyr dans la sortie finale. Chaque classe utilitaire appliquée aux balises body et div correspond à une paire propriété-valeur définie dans une classe Nenyr. Ce système rationalisé et efficace met en évidence la véritable puissance de Galadriel CSS : permettre un code de développement propre et maintenable tout en produisant une sortie de build optimisée et axée sur les performances.

CSS généré : le pouvoir de l'optimisation
Le CSS généré par Galadriel CSS pendant le processus de construction illustre son engagement en faveur de l'efficacité. Vous trouverez ci-dessous un extrait du fichier CSS situé dans .next/static/css :

Image description

Toutes les règles utilitaires générées par Galadriel CSS sont optimisées, sans redondances : seuls les styles nécessaires sont inclus. Par exemple, dans le contexte du document central et du module « page », les styles d'affichage : flex, justifierContent : centre et alignItems : centre ont été définis plusieurs fois. Cependant, Galadriel CSS a généré efficacement une seule classe utilitaire pour chaque style, évitant ainsi les règles CSS répétitives. De plus, ces classes utilitaires ont été appliquées à la fois aux éléments body et div dans la sortie, garantissant ainsi que les styles étaient appliqués de manière cohérente sans dupliquer les règles. Cela illustre la puissance de Galadriel CSS : il maintient le code de développement propre et exempt de l'encombrement des noms de classe souvent observé avec d'autres frameworks, tandis que la sortie de construction reste statique, légère et optimisée pour les performances. En fournissant des flux de travail de développement propres et des résultats de construction efficaces, Galadriel CSS améliore la maintenabilité, l'évolutivité et les performances globales des applications.

Avantages pour les développeurs

1. Flux de travail de développement propre

Galadriel CSS exploite le pouvoir déclaratif de Nenyr, permettant aux développeurs de se concentrer sur la création de styles modulaires et réutilisables sans se laisser distraire par les noms de classes utilitaires. Cela simplifie le processus de développement et améliore la collaboration entre les équipes.

2. Des versions de production évolutives et performantes

Le CSS optimisé généré pendant le processus de construction garantit que les applications sont évolutives et performantes, sans surcharge inutile. Ceci est particulièrement avantageux pour les projets à grande échelle où chaque kilo-octet compte.

3. Automatisation et efficacité

En automatisant des tâches telles que la gestion des dépendances, l'injection de style et le nettoyage, Galadriel CSS réduit les efforts manuels et les erreurs potentielles. Cela permet aux développeurs de consacrer plus de temps à la création d'expériences utilisateur.

4. Maintenabilité améliorée

La séparation des préoccupations de développement et de production améliore la maintenabilité. Les balises Nenyr indiquent clairement la source des styles, ce qui facilite leur localisation et leur mise à jour si nécessaire.

Conclusion
Galadriel CSS, redéfinit la norme en matière de gestion de style dans le développement Web. En offrant une expérience de développement propre avec des balises Nenyr déclaratives et en fournissant des versions de production hautement optimisées, il permet aux développeurs de créer facilement des applications sophistiquées.

Galadriel CSS révolutionne la gestion du style avec son approche modulaire et centrée sur le contexte, abordant la maintenabilité, l'évolutivité et les performances dans le développement Web. Sa conception innovante organise les styles dans des contextes Central, Layout et Module, garantissant l'isolement et la précision tout en favorisant la réutilisation. En tirant parti de son Nenyr DSL personnalisé, le framework minimise la surcharge CSS et génère des styles optimisés axés sur les utilitaires, permettant des applications propres et évolutives qui s'adaptent de manière transparente à mesure qu'elles se développent.

Avec Galadriel CSS, vous pouvez vous concentrer sur ce qui compte vraiment : concevoir des applications Web belles, fonctionnelles et percutantes. Améliorez-le. Rendez-le différent. Adoptez la puissance de Galadriel CSS.


Le référentiel de l'exemple testing-app : https://github.com/patrickgunnar/galadrielcss-testing-app

Pour en savoir plus sur Galadriel CSS : https://galadrielcss-docs.vercel.app/docs

Voici quelques applications construites avec Next.js et stylisées avec Galadriel CSS :

  • https://galadrielcss-docs.vercel.app/
  • https://galadrielcss-analytics-dashboard.vercel.app/
  • https://calculator-styled-with-galadrielcss.vercel.app/
  • https://galadrielcss-pricing-table.vercel.app/

Merci d'avoir pris le temps de vous renseigner sur Galadriel CSS ! J'aimerais entendre vos réflexions et vos commentaires, n'hésitez pas à les partager dans les commentaires ci-dessous.

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