4Strict & 5Royals — spécification (4S5R)

Version 1.0 · © JoYz / joyz.pro

Principe général. Le système 4Strict&5Royals impose une structure HTML stricte : le body doit contenir exactement quatre conteneurs structurels — header.hd, nav.mn, main.ct et footer.ft — et des règles CSS associées. Ces conteneurs ont des rôles sémantiques précis et ne doivent pas être substitués par d'autres wrappers structurels.

4Strict — quatre balises, quatre rôles

  • header.hd — l'en‑tête du document (branding, titre, résumé).
  • nav.mn — menu de navigation (structure stricte : ol > li > a ; pas d'enveloppes additionnelles).
  • main.ct — contenu principal : règle stricte expliquée ci‑dessous.
  • footer.ft — pied de page (métadonnées, attribution).

5Royals — la règle du slug

La règle 5Royals exige qu'au moins une section identifiée par un id (le « slug ») soit présente dans main.ct. Ex. : <section id="slug">. Cette section#slug constitue la portée sémantique et CSS principale du contenu.

Règle stricte pour main.ct. Les enfants directs de main.ct doivent être uniquement des éléments section. Autrement dit, main.ct = zéro ou plusieurs section (mais au moins une), et aucun autre élément structurel (pas de div, article, etc.) directement sous main.ct. À l'intérieur d'une section, vous pouvez utiliser librement d'autres éléments (article, div, pre, code, etc.).

Exemple minimal conforme

<body>
    <header class="hd">…</header>
    <nav class="mn">…</nav>
    <main class="ct">
        <section id="slug">…contenu…</section>
        <!-- autres sections possibles -->
    </main>
    <footer class="ft">…</footer>
</body>

Règles CSS

Les règles CSS ciblant le contenu doivent être scoppées sur l'ID de la section (par ex. #slug) : #slug { }, #slug h1 { }, #slug table { }. Évitez de cibler les sections sans ID. Limitez la profondeur des sélecteurs à 3 niveaux ; pour des contextes additionnels, ajoutez une classe de contexte sur la même section : <section id="slug" class="ctx-example">.

Attribution : 4Strict&5Royals — Jean‑Yves 'JoYz' Cornet / joyz.pro