Documentation

Documentation - Syntaxe.

Découvrez Marssel : un framework CSS intelligent, configuration minimale, conçu pour des interfaces rapides et une expérience développeur simplifiée.

Syntaxe

Marssel utilise une syntaxe intuitive basée sur des classes utilitaires pour styliser vos éléments HTML. Cette page explique toutes les conventions et formats disponibles.

Format de base : Syntaxe standard

La syntaxe de base suit le pattern : propriété-[valeur]

<div class="bg-[0B63F3]">Fond bleu</div>
<p class="c-[ff0000]">Texte rouge</p>
<button class="p-[20px]">Padding de 20px</button>

Propriétés abrégées

Marssel propose des raccourcis pour les propriétés courantes :

<!-- Couleurs -->
<div class="bg-[blue]">background-color</div>
<p class="c-[red]">color</p>

<!-- Espacements -->
<div class="p-[10px]">padding</div>
<div class="m-[20px]">margin</div>
<div class="px-[15px]">padding-left et padding-right</div>
<div class="py-[15px]">padding-top et padding-bottom</div>

<!-- Dimensions -->
<div class="w-[100px]">width</div>
<div class="h-[200px]">height</div>

<!-- Typographie -->
<p class="fs-[16px]">font-size</p>
<p class="fw-[700]">font-weight</p>

Valeurs et unités : Unités CSS standard

<!-- Pixels -->
<div class="w-[200px]">Largeur de 200 pixels</div>

<!-- Pourcentages -->
<div class="w-[50%]">Largeur de 50%</div>

<!-- Em / Rem -->
<p class="fs-[1.5rem]">Taille de police de 1.5rem</p>
<p class="m-[2em]">Marge de 2em</p>

<!-- Viewport -->
<div class="h-[100vh]">Hauteur de la fenêtre</div>
<div class="w-[50vw]">Largeur de la fenêtre</div>

Classes de Base Automatiques

Lorsque vous utilisez la syntaxe de composant (`---`), Marssel est suffisamment intelligent pour ajouter automatiquement la classe de base pour vous.

Par exemple, si vous écrivez class="btn-primary---[bg-[blue]]", la logique `autoAddBaseClasses` de Marssel analysera le nom et ajoutera automatiquement la classe `btn-primary` à l'élément. Si vous écrivez md--btn---[bg-[red]], il ajoutera la classe `btn` en responsive.

<button class="btn-primary---[bg-[blue]+c-[white]]">Mon Bouton</button>

Syntaxe Compacte (Groupée)

Pour styliser une variante de composant, vous pouvez regrouper plusieurs utilitaires entre crochets [...] en les séparant par des +.

La syntaxe est [breakpoint]--[composant]---[utilitaire1+utilitaire2].

Aperçu
Contenu de la carte
Alerte importante
<div class="card---[bg-[white]+p-[1rem]+rounded-[8px]]">
    Contenu de la carte
</div>

<button class="md--btn1---[bg-[blue]+c-[white]]:hover">
    Bouton
</button>

<div class="menu---[bg-[gray]+c-[white]]>span menu---[fw-[700]]>a">
    <span>Titre</span>
    <a>Lien</a>
</div>

<div class="alert---[bg-[red]!+c-[white]]!">
    Alerte importante
</div>

Groupes de Styles Racine

Si vous n'avez pas besoin d'une classe de base mais que vous souhaitez simplement regrouper des utilitaires sous une seule classe (pour la clarté ou la réutilisation), vous pouvez omettre la partie `component---`.

La classe entière devient le sélecteur.

Aperçu
Boîte
Texte important

Survolez-moi (L'enfant devient vert au survol du parent)

Survolez-moi Le span devient rouge à l'hover

Survolez-moi Avec une classe

Survolez-moi Avec le reponsive lg--

Survolez-moi Avec le reponsive mmd-- et une classe

<div class="[p-[2rem]+bg-[white]+border-[1px_solid_eee]]">
    Boîte
</div>

<div class="[c-[red]+fw-[700]]!">
    Texte important
</div>

<p class="fs-[40px] c-[green]>span:hover">
    <span>Survolez-moi (L'enfant devient vert au survol du parent)</span>
</p>

<p class="[fs-[20px]+c-[red]!]>span:hover">
    Survolez-moi
    <span>Le span devient rouge à l'hover</span>
</p>

<p class="a---[fs-[40px]+c-[green]>span]!:hover ">
    Survolez-moi
    <span>Avec une classe</span>
</p>

<p class="lg--[fs-[13px]+c-[orange]]!>span">
    Survolez-moi
    <span>Avec le reponsive lg--</span>
</p>

<p class="mmd--a22---[fs-[14px]+c-[purple]]>span">
    Survolez-moi
    <span>Avec le reponsive mmd-- et une classe</span>
</p>

Priorité avec !important

Pour forcer la priorité d'un style, ajoutez le symbole ! à la fin de votre classe. Cela ajoute !important à toutes les déclarations CSS générées.

Style Simple

Ajoutez ! après les crochets de valeur pour rendre le style important.

Aperçu
Background rouge avec !important
Texte avec taille et poids importants
<div class="bg-[red]! c-[white] p-[1rem]">
    Background rouge avec !important
</div>
<div class="fs-[24px]! fw-[700]!">
    Texte avec taille et poids importants
</div>

Syntaxe Compacte

Dans la syntaxe compacte, vous pouvez rendre important soit des styles individuels, soit le groupe entier.

Aperçu
Seul le background est important
Tous les styles sont importants
<!-- Style individuel important -->
<div class="card---[bg-[blue]!+c-[white]+p-[2rem]]">
   Seul le background est important
</div>

<!-- Groupe entier important -->
<div class="alert---[bg-[red]+c-[white]+p-[1rem]]!">
    Tous les styles sont importants
</div>

Avec Pseudo-classes

Le ! fonctionne également avec les pseudo-classes comme :hover, :focus, etc.

Aperçu
<!-- Hover normal -->
<button class="btn2---[bg-[blue]+c-[white]]:hover">
    Hover normal
</button>

<!-- Hover important -->
<button class="btn21---[bg-[red]+c-[white]]!:hover p-[1rem] ml-[1rem]">
    Hover important
</button>

Groupes Racine

Dans les groupes racine (sans composant de base), ajoutez le ! après le crochet fermant final.

Aperçu
Styles normaux
Tous les styles importants
<!-- Styles normaux -->
<div class="[p-[2rem]+bg-[yellow]+c-[black]]">
    Styles normaux
</div>

<!-- Tous les styles importants -->
<div class="[p-[3rem]+bg-[orange]+c-[white]]!">
    Tous les styles importants
</div>
Note : L'utilisation de !important doit être limitée aux cas où vous devez absolument surcharger d'autres styles. Privilégiez une meilleure organisation de vos CSS lorsque c'est possible.

Gestion des Espaces et des Virgules

Pour gérer les valeurs CSS qui contiennent des espaces ou des virgules, Marssel utilise deux conventions simples.

Espaces (Remplacés par _)

Les noms de classe CSS ne peuvent pas contenir d'espaces. Par conséquent, chaque fois que votre valeur CSS nécessite un espace, vous devez utiliser un underscore _. Marssel le convertira automatiquement en espace lors de la génération du CSS.

Aperçu
border: 2px solid #0B63F3
font-family: 'Open Sans'
content: "Bonjour le monde!"
<div class="border-[2px_solid_0B63F3] p-[1rem]">
    border: 2px solid #0B63F3
</div>
<div class="font-[Open_Sans] fw-[700] mt-[1rem]">
    font-family: 'Open Sans'
</div>
<div class="[content-[Bonjour_le_monde!]+c-[red]]:before mt-[1rem]">
    content: "Bonjour le monde!"
</div>

Virgules (Utilisées telles quelles ,)

Pour les fonctions CSS qui nécessitent des virgules (comme `rgba()`, `linear-gradient()`, `box-shadow`, etc.), vous pouvez utiliser la virgule , directement à l'intérieur des crochets []. Marssel la reconnaît et l'inclut correctement dans la valeur générée.

Aperçu
color: rgba(255, 0, 0, 0.7)
background: linear-gradient(to right, blue, red)
box-shadow-[0_20px_6px_rgba(0,0,0,0.1)]
<div class="c-rgba-[255,100,50,0.8]">...</div>

<div class="bg-linear-[to_right,blue,red]">...</div>

<div class="box-shadow-[0_20px_6px_rgba(0,0,0,0.1)]">...</div>