Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Personnalisation

Utilitaires de style et de mise en page

Dodock propose un ensemble de classes CSS utilitaires pour personnaliser rapidement l'apparence et la disposition des éléments dans l'interface. Ces utilitaires sont basés sur le design system Espresso et permettent aux développeurs et administrateurs de créer des interfaces cohérentes sans écrire de CSS personnalisé.

Utilitaires de style et de mise en page

Dodock propose un ensemble de classes CSS utilitaires pour personnaliser rapidement l'apparence et la disposition des éléments dans l'interface. Ces utilitaires sont basés sur le design system Espresso et permettent aux développeurs et administrateurs de créer des interfaces cohérentes sans écrire de CSS personnalisé.

Classes de mise en page (Flexbox)

Les classes Flexbox permettent de contrôler la disposition des éléments dans un conteneur. Elles sont particulièrement utiles pour organiser les formulaires, tableaux de bord et composants d'interface.

Conteneurs Flex

ClasseDescriptionExemple d'utilisation
flexActive le mode flex sur un conteneur<div class="flex">...</div>
flex-rowDisposition horizontale (par défaut)<div class="flex flex-row">...</div>
flex-colDisposition verticale<div class="flex flex-col">...</div>
flex-wrapAutorise le retour à la ligne<div class="flex flex-wrap">...</div>
flex-nowrapEmpêche le retour à la ligne<div class="flex flex-nowrap">...</div>

Alignement et justification

ClasseDescriptionExemple d'utilisation
justify-startAligne les éléments au début<div class="flex justify-start">...</div>
justify-centerCentre les éléments horizontalement<div class="flex justify-center">...</div>
justify-endAligne les éléments à la fin<div class="flex justify-end">...</div>
justify-betweenEspace les éléments uniformément<div class="flex justify-between">...</div>
items-startAligne les éléments en haut<div class="flex items-start">...</div>
items-centerCentre les éléments verticalement<div class="flex items-center">...</div>
items-endAligne les éléments en bas<div class="flex items-end">...</div>

Espacement entre éléments

ClasseDescriptionExemple d'utilisation
gap-1Espacement de 4px<div class="flex gap-1">...</div>
gap-2Espacement de 8px<div class="flex gap-2">...</div>
gap-3Espacement de 12px<div class="flex gap-3">...</div>
gap-4Espacement de 16px<div class="flex gap-4">...</div>
gap-5Espacement de 20px<div class="flex gap-5">...</div>

Ordre des éléments

ClasseDescriptionExemple d'utilisation
order-firstPlace l'élément en premier<div class="order-first">...</div>
order-lastPlace l'élément en dernier<div class="order-last">...</div>
order-noneOrdre par défaut<div class="order-none">...</div>

Classes d'espacement

Les classes d'espacement permettent de contrôler les marges et les paddings des éléments.

Marges

ClasseDescriptionExemple d'utilisation
m-1Marge de 4px (toutes directions)<div class="m-1">...</div>
m-2Marge de 8px<div class="m-2">...</div>
m-3Marge de 12px<div class="m-3">...</div>
m-4Marge de 16px<div class="m-4">...</div>
mx-2Marge horizontale de 8px<div class="mx-2">...</div>
my-2Marge verticale de 8px<div class="my-2">...</div>
mt-2Marge supérieure de 8px<div class="mt-2">...</div>
mb-2Marge inférieure de 8px<div class="mb-2">...</div>
ml-2Marge gauche de 8px<div class="ml-2">...</div>
mr-2Marge droite de 8px<div class="mr-2">...</div>

Paddings

ClasseDescriptionExemple d'utilisation
p-1Padding de 4px (toutes directions)<div class="p-1">...</div>
p-2Padding de 8px<div class="p-2">...</div>
p-3Padding de 12px<div class="p-3">...</div>
p-4Padding de 16px<div class="p-4">...</div>
px-2Padding horizontal de 8px<div class="px-2">...</div>
py-2Padding vertical de 8px<div class="py-2">...</div>
pt-2Padding supérieur de 8px<div class="pt-2">...</div>
pb-2Padding inférieur de 8px<div class="pb-2">...</div>
pl-2Padding gauche de 8px<div class="pl-2">...</div>
pr-2Padding droite de 8px<div class="pr-2">...</div>

Classes de typographie

Les classes de typographie permettent de contrôler la taille, le poids et le style du texte.

ClasseDescriptionExemple d'utilisation
text-xsTaille de texte extra-small<p class="text-xs">...</p>
text-smTaille de texte small<p class="text-sm">...</p>
text-baseTaille de texte par défaut<p class="text-base">...</p>
text-lgTaille de texte large<p class="text-lg">...</p>
text-xlTaille de texte extra-large<p class="text-xl">...</p>
font-boldTexte en gras<p class="font-bold">...</p>
font-mediumTexte semi-gras<p class="font-medium">...</p>
font-normalTexte normal<p class="font-normal">...</p>
italicTexte en italique<p class="italic">...</p>
underlineTexte souligné<p class="underline">...</p>
line-throughTexte barré<p class="line-through">...</p>

Classes de visibilité

ClasseDescriptionExemple d'utilisation
hiddenMasque l'élément<div class="hidden">...</div>
visibleRend l'élément visible<div class="visible">...</div>
invisibleMasque l'élément mais conserve son espace<div class="invisible">...</div>

Classes de bordure

ClasseDescriptionExemple d'utilisation
borderAjoute une bordure<div class="border">...</div>
border-tBordure supérieure<div class="border-t">...</div>
border-bBordure inférieure<div class="border-b">...</div>
border-lBordure gauche<div class="border-l">...</div>
border-rBordure droite<div class="border-r">...</div>
border-solidBordure pleine<div class="border border-solid">...</div>
border-dashedBordure en pointillés<div class="border border-dashed">...</div>
border-dottedBordure en points<div class="border border-dotted">...</div>
roundedCoins arrondis<div class="rounded">...</div>
rounded-smCoins légèrement arrondis<div class="rounded-sm">...</div>
rounded-mdCoins moyennement arrondis<div class="rounded-md">...</div>
rounded-lgCoins très arrondis<div class="rounded-lg">...</div>

Classes de taille

ClasseDescriptionExemple d'utilisation
w-fullLargeur à 100%<div class="w-full">...</div>
w-1/2Largeur à 50%<div class="w-1/2">...</div>
w-1/3Largeur à 33%<div class="w-1/3">...</div>
w-1/4Largeur à 25%<div class="w-1/4">...</div>
h-fullHauteur à 100%<div class="h-full">...</div>
h-screenHauteur à 100vh<div class="h-screen">...</div>

Exemples d'utilisation

Exemple 1 : Disposition d'un formulaire

<div class="flex flex-col gap-3 p-4 border rounded-md">
  <div class="flex flex-row justify-between items-center">
    <label class="font-medium">Nom du client</label>
    <input type="text" class="border rounded p-2 w-1/2" />
  </div>
  <div class="flex flex-row justify-between items-center">
    <label class="font-medium">Date de commande</label>
    <input type="date" class="border rounded p-2 w-1/2" />
  </div>
  <div class="flex justify-end gap-2 mt-4">
    <button class="px-4 py-2 border rounded">Annuler</button>
    <button class="px-4 py-2 bg-blue-500 text-white rounded">Enregistrer</button>
  </div>
</div>

Exemple 2 : Carte de tableau de bord

<div class="flex flex-col gap-2 p-4 border rounded-lg shadow-sm">
  <div class="flex justify-between items-center">
    <h3 class="font-bold text-lg">Statistiques des ventes</h3>
    <span class="text-sm text-gray-500">Mois en cours</span>
  </div>
  <div class="flex gap-4">
    <div class="flex flex-col items-center">
      <span class="text-2xl font-bold">120</span>
      <span class="text-sm text-gray-500">Commandes</span>
    </div>
    <div class="flex flex-col items-center">
      <span class="text-2xl font-bold">45 000 €</span>
      <span class="text-sm text-gray-500">Chiffre d'affaires</span>
    </div>
  </div>
</div>

Bonnes pratiques

  • Cohérence : Utilisez les mêmes classes d'espacement et de typographie dans toute votre application pour garantir une apparence uniforme.
  • Performance : Privilégiez les classes utilitaires plutôt que d'écrire du CSS personnalisé pour réduire la taille des fichiers et améliorer les performances.
  • Accessibilité : Assurez-vous que les contrastes de couleur et les tailles de texte respectent les normes d'accessibilité (WCAG).
  • Documentation : Documentez les classes utilitaires utilisées dans vos projets pour faciliter la maintenance et la collaboration.

Pour les développeurs

Les classes utilitaires sont définies dans les fichiers SCSS suivants :

  • frappe/public/scss/common/flex.scss : Classes Flexbox.
  • frappe/public/scss/common/utilities.scss : Classes d'espacement, de typographie, de bordure et de visibilité.
  • frappe/public/scss/espresso/_typography.scss : Classes de typographie spécifiques au design system Espresso.

Pour ajouter de nouvelles classes utilitaires, modifiez ces fichiers et recompilez les assets avec bench build.

Importation : Les classes utilitaires sont importées dans frappe/public/scss/desk.bundle.scss. Pour les utiliser sur les pages du site web, ajoutez l'import suivant dans frappe/public/scss/website.bundle.scss :

@import "./common/utilities";