Naming Conventions

Le classi CSS del design system seguono la convenzione BEM per la semantica di blocchi, elementi e modificatori, con il prefisso rtds- su ogni classe — sia quelle dei componenti sia le utility generate da Tailwind.

Le classi BEM identificano il componente e le sue parti (atomi, molecole, organismi, oltre agli stili base ricorrenti di pulsanti, link, card e tipografia); gli stili corrispondenti sono definiti nel CSS del componente, dove le utility Tailwind possono essere composte con @apply. Le stesse classi sono anche il riferimento usato dal JavaScript, sia come hook di inizializzazione sia per gli stati applicati a runtime.

Struttura delle classi

Prefisso

  • Tutte le classi del design system iniziano con rtds-, per evitare conflitti con altri stili o framework presenti nella pagina

Componenti base

  • Struttura rtds-[nome-componente]
  • Esempi: rtds-btn, rtds-card, rtds-category

Varianti

  • Modificatore BEM introdotto da --
  • Esempi: rtds-btn--primary, rtds-category--overline

Elementi

  • Elementi interni di un componente separati da __
  • Esempi: rtds-cta-banner__content, rtds-cta-banner__cta

Utility Tailwind

  • Anche le utility Tailwind sono prefissate rtds-, per coerenza con le classi componente e per evitare conflitti con altri framework
  • Esempi: rtds-p-6, rtds-flex, rtds-grid

Stati e modificatori

  • Gli stati applicati da JavaScript sono espressi da classi separate, senza prefisso rtds-
  • Esempi: is-open, is-selected, has-dialog

Responsive

  • Le classi responsive combinano i breakpoint di Tailwind con il prefisso: il breakpoint precede rtds-
  • Esempi: lg:rtds-grid-cols-12, md:rtds-py-8