identité 6 : la règle f mesurée au-dessus du dessin, les chapitres posés sur leurs filets, les coins arrondis dégagés
Règle f, selon la précision de DA du 03/11 après 17h35 : au-dessus d'un oiseau perché, le vide
se mesure du haut de son dessin jusqu'à la plus basse ligne de texte ou au plus bas bloc qui
passe au-dessus de sa largeur peinte. Les lignes de son propre titre comptent, et l'en-tête
collant aussi en haut de page. Quinze perchés en défaut sur bb8fad9 changent de pose, sans
sortir de la liste fermée :
- accueil :
- le DJ se tient derrière le pupitre de la console, seule sa tête dépasse ;
- l'accordéoniste passe en S, visible à partir de 1200 px ;
- la factrice passe à 76 px ;
- la lectrice sort 20 px plus bas ;
- au téléphone, l'oiseau de l'intitulé est un oiseau plat : codeuse, maraîchère, potier, et le
cycliste livreur sur productions collectives ;
- authentification, tarifs de l'eau, commande : en marge droite, sur l'arête haute de la carte ;
- en musique : le danseur passe en S ;
- évènement :
- l'acrobate se tient avant la devise ;
- le régisseur passe en S, posé sur l'arête des cartes ;
- le clown passe en M ;
- le marionnettiste se tient sur le filet du pied de page (option 1 d'orch). Son décalage
est tiré de --seal-block, le bloc du sceau défini dans le layout ;
- chapitres : le calligraphe se tient sur le filet du titre, le typographe sur celui de la
navigation, le cartonnier en marge des boutons. Plus aucune hauteur en %.
Règle g, rectangle du bloc (décision d'orch) : le porteur de serveur et l'administrateur réseau
sortent de la découpe des coins arrondis.
La liste fermée (docs/da-oiseaux.md) reçoit les précisions d'orch :
- e vaut pour un oiseau « libre » dont le centre sort de son bloc ;
- g se mesure sur le rectangle du bloc ;
- un oiseau derrière une carte reste « derrière ».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -140,9 +140,9 @@ const OISEAUX_PAGE: Record<string, OiseauxPage> = {
|
||||
],
|
||||
},
|
||||
'tarifs-eau': {
|
||||
// the summary stands right of the project card: the actor stands on the card, where the
|
||||
// links row above leaves the page empty
|
||||
projet: [{ nom: 'comedien', pose: 'perche', right: '24px', w: 100, retourne: true }],
|
||||
// the actor in the right margin, feet on the card's top edge: perched on the card, it stood
|
||||
// 11 px under the introduction (rule f, DA 03/11 after 17h35); the summary starts lower
|
||||
projet: [{ nom: 'comedien', pose: 'marge-d', ecart: '24px', bottom: '100%', w: 100, retourne: true }],
|
||||
texte: [{ nom: 'potier', pose: 'marge-g', ecart: '52px', w: 112 }],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
<div class="container-content">
|
||||
<header class="mb-12 text-center">
|
||||
<p class="relative mb-2 font-mono text-sm tracking-widest text-primary uppercase">
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="vigie" pose="perche" bout :w="72" retourne mobile-seul />
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline.
|
||||
A flat bird (37-44 px tall at 72 px wide): 93 px separate this baseline from the sticky
|
||||
header, and a perched bird keeps a void of its own height above it (rule f) -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="potier" pose="perche" bout :w="72" mobile-seul />
|
||||
</p>
|
||||
<h1 class="page-title relative font-display font-bold tracking-tight" style="color: hsl(var(--color-text))">
|
||||
<!-- At the end of the title, on its baseline (rule e, docs/da-oiseaux.md) -->
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
<div class="container-content">
|
||||
<div class="mx-auto max-w-2xl">
|
||||
<div class="section-icon relative mx-auto mb-6">
|
||||
<!-- The reader stands on the bag: a real edge, with the page's top margin above -->
|
||||
<UiOiseauPose nom="lectrice" pose="perche" left="14px" :w="84" retourne :seuil="1024" />
|
||||
<div class="i-lucide-shopping-bag h-12 w-12" />
|
||||
</div>
|
||||
|
||||
@@ -24,6 +22,9 @@
|
||||
<!-- Bookelis CTA -->
|
||||
<div class="cta-block mb-8">
|
||||
<UiOiseauPose nom="cycliste-livreur" pose="marge-g" ecart="54px" :w="150" />
|
||||
<!-- The reader in the right margin, feet on the card's top edge: on the bag, under the
|
||||
sticky header, she had 22 px of void above her (rule f, DA 03/11 after 17h35) -->
|
||||
<UiOiseauPose nom="lectrice" pose="marge-d" ecart="24px" bottom="100%" :w="84" retourne />
|
||||
<div class="cta-icon">
|
||||
<div class="i-lucide-globe h-5 w-5" />
|
||||
</div>
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
<!-- Header -->
|
||||
<header class="mb-12 text-center">
|
||||
<p class="relative mb-2 font-mono text-sm tracking-widest text-primary uppercase">
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="pompeur-de-g1" pose="perche" bout :w="72" retourne mobile-seul />
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline.
|
||||
A flat bird (37-44 px tall at 72 px wide): 93 px separate this baseline from the sticky
|
||||
header, and a perched bird keeps a void of its own height above it (rule f) -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="maraichere" pose="perche" bout :w="72" retourne mobile-seul />
|
||||
</p>
|
||||
<h1 class="page-title font-display font-bold tracking-tight" style="color: hsl(var(--color-text))">
|
||||
{{ content?.title }}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<template>
|
||||
<div v-if="chapter" class="relative">
|
||||
<!-- The book's trades in the margins: the two who write keep their way, on the left -->
|
||||
<UiOiseauPose nom="calligraphe" pose="libre" right="calc(100% + 40px)" top="40px" :w="112" />
|
||||
<UiOiseauPose nom="typographe" pose="libre" right="calc(100% + 64px)" top="46%" :w="100" />
|
||||
<!-- The book's trades in the margins, each on a line of the chapter (rule e): the two who
|
||||
write keep their way, on the left, the calligrapher on the title's rule (in the chapter
|
||||
header), the typographer on the navigation's rule; the box maker in the right margin, by
|
||||
the PDF and songs buttons (in the header); the proofreader on the right, by the last
|
||||
paragraph -->
|
||||
<UiOiseauPose nom="correcteur" pose="libre" left="calc(100% + 40px)" bottom="140px" :w="108" retourne />
|
||||
<BookChapterHeader
|
||||
:title="chapter.title"
|
||||
@@ -15,9 +17,10 @@
|
||||
<BookChapterContent :content="chapter" />
|
||||
|
||||
<!-- Prev / Next navigation. The rule above it is drawn (border-t alone sets no style here):
|
||||
the box maker stands on it -->
|
||||
the typographer stands on it, in the left margin. Perched in the column, the box maker had
|
||||
20 to 27 px of void under the last paragraph (rule f) -->
|
||||
<nav class="relative mt-16 flex items-center justify-between border-t border-t-solid border-white/8 pt-8">
|
||||
<UiOiseauPose nom="cartonnier" pose="perche" left="calc(50% - 38px)" :w="76" />
|
||||
<UiOiseauPose nom="typographe" pose="marge-g" ecart="64px" bottom="100%" :w="100" />
|
||||
<NuxtLink
|
||||
v-if="prevChapter"
|
||||
:to="`/economique/modele-eco/${prevChapter.stem?.split('/').pop()}`"
|
||||
|
||||
@@ -27,7 +27,9 @@
|
||||
|
||||
<!-- Content -->
|
||||
<div v-if="content?.content" class="prose-block mb-10">
|
||||
<UiOiseauPose nom="menuisier" pose="perche" left="20px" :w="84" mobile />
|
||||
<UiOiseauPose nom="menuisier" pose="perche" left="20px" :w="84" />
|
||||
<!-- Phone: a flatter bird at the same place, the text above leaves 89 px (rule f) -->
|
||||
<UiOiseauPose nom="cycliste-livreur" pose="perche" left="20px" :w="72" mobile-seul />
|
||||
<UiOiseauPose nom="forgeron" pose="marge-g" ecart="70px" :w="140" />
|
||||
<UiOiseauPose nom="berger" pose="derriere" left="calc(100% - 110px)" bottom="-46px" :w="230" />
|
||||
<p class="leading-relaxed whitespace-pre-line" style="color: hsl(var(--color-text-muted))">
|
||||
|
||||
@@ -72,7 +72,9 @@
|
||||
|
||||
<!-- Song list -->
|
||||
<div v-if="viewMode === 'list'" class="relative flex flex-col gap-2">
|
||||
<UiOiseauPose nom="danseur" pose="perche" left="calc(64% - 60px)" :w="120" :seuil="1200" />
|
||||
<!-- S, not M: above it the buttons leave 150 px, and a perched bird keeps a void of its own
|
||||
height above its head (rule f, DA 03/11 after 17h35) -->
|
||||
<UiOiseauPose nom="danseur" pose="perche" left="calc(64% - 60px)" :w="80" :seuil="1200" />
|
||||
<SongItem
|
||||
v-for="song in filteredSongs"
|
||||
:key="song.id"
|
||||
|
||||
+21
-10
@@ -26,14 +26,15 @@
|
||||
|
||||
<!-- Leitmotiv -->
|
||||
<div v-if="evtContent?.leitmotiv" class="mt-8 flex flex-col items-center gap-3">
|
||||
<p class="relative font-display text-xl font-bold" style="color: hsl(var(--color-text))">
|
||||
<p class="font-display text-xl font-bold" style="color: hsl(var(--color-text))">
|
||||
« {{ evtContent.leitmotiv }} »
|
||||
<!-- The acrobat on the line of the leitmotiv, before it: by « Format & lieu », the stage
|
||||
manager stands alone (two birds there would stand at the same height) -->
|
||||
<UiOiseauPose nom="acrobate" pose="perche" right="calc(100% + 14px)" bottom="0px" :w="72" />
|
||||
</p>
|
||||
<p v-if="evtContent?.tagline" class="font-mono text-sm tracking-widest uppercase" style="color: hsl(var(--color-primary))">
|
||||
<!-- The acrobat before the tagline, on its line: the tagline is narrower than the leitmotiv,
|
||||
28 px keep it out from under the leitmotiv, and above it the description ends higher
|
||||
(rule f, DA 03/11 after 17h35). By « Format & lieu », the stage manager stands alone -->
|
||||
<p v-if="evtContent?.tagline" class="relative font-mono text-sm tracking-widest uppercase" style="color: hsl(var(--color-primary))">
|
||||
{{ evtContent.tagline }}
|
||||
<UiOiseauPose nom="acrobate" pose="perche" right="calc(100% + 28px)" bottom="0px" :w="72" />
|
||||
</p>
|
||||
<span v-if="evtContent?.gestation" class="evt-gestation-badge">
|
||||
<div class="i-lucide-flask-conical h-3.5 w-3.5" />
|
||||
@@ -44,14 +45,21 @@
|
||||
</div>
|
||||
|
||||
<!-- ══ Contenu événement ══ -->
|
||||
<section v-if="evtContent?.axes || evtContent?.espaces || evtContent?.config" class="evt-content section-padding">
|
||||
<section v-if="evtContent?.axes || evtContent?.espaces || evtContent?.config" class="evt-content relative section-padding">
|
||||
<!-- The puppeteer stands on the footer's top rule, from 1200 px: under « Espaces & programme »
|
||||
the axes cards leave 100 px, half what it needs (rule f), and each row of cards holds one
|
||||
bird (rule c). The only bird of the page out of its block (orch, 03/11, option 1). Its
|
||||
offset is the seal's block of the layout (--seal-block), between this section and the
|
||||
footer; the bird check verifies it stands on the rule -->
|
||||
<UiOiseauPose nom="marionnettiste" pose="perche" left="18%" bottom="calc(-1 * var(--seal-block))" :w="112" retourne :seuil="1200" />
|
||||
<div class="container-content flex flex-col gap-14">
|
||||
|
||||
<!-- 3 axes -->
|
||||
<div v-if="evtContent?.axes">
|
||||
<h2 class="evt-section-title relative">
|
||||
<!-- The section birds stand at the end of their title, on its baseline (rule e) -->
|
||||
Trois axes d'émancipation<UiOiseauPose nom="clown" pose="perche" bout left="14px" :w="84" retourne ton="accent" />
|
||||
<!-- The clown at the end of its title, on its baseline (rule e). M: between 768 and
|
||||
1199 px the four birds shown would all be S otherwise (rule a) -->
|
||||
Trois axes d'émancipation<UiOiseauPose nom="clown" pose="perche" bout left="14px" :w="108" retourne ton="accent" />
|
||||
</h2>
|
||||
<p class="evt-section-sub">« je subis — ou je m'affranchis »</p>
|
||||
<div class="axes-grid">
|
||||
@@ -76,7 +84,7 @@
|
||||
<!-- Espaces permanents -->
|
||||
<div v-if="evtContent?.espaces">
|
||||
<h2 class="evt-section-title relative">
|
||||
Espaces & programme<UiOiseauPose nom="marionnettiste" pose="perche" bout left="14px" :w="112" retourne />
|
||||
Espaces & programme
|
||||
</h2>
|
||||
<p class="evt-section-sub">Chorégraphie séquencée de plénières, ateliers et espaces permanents</p>
|
||||
<div class="espaces-grid">
|
||||
@@ -97,7 +105,10 @@
|
||||
<div v-if="evtContent?.config">
|
||||
<h2 class="evt-section-title relative">
|
||||
Format & lieu
|
||||
<UiOiseauPose nom="regisseur" pose="perche" right="24%" bottom="0px" :w="92" retourne />
|
||||
<!-- S at 72 px, feet on the cards' top edge (the title's 0.25rem margin under it): the
|
||||
espaces cards above leave 106 px at 768 px, and a perched bird keeps a void of its own
|
||||
height above it (rule f) -->
|
||||
<UiOiseauPose nom="regisseur" pose="perche" right="24%" bottom="-0.25rem" :w="72" retourne />
|
||||
</h2>
|
||||
<div class="config-grid">
|
||||
<div v-for="(cfg, i) in evtContent.config" :key="i" class="config-card">
|
||||
|
||||
@@ -448,10 +448,13 @@ const OISEAUX_PAGE: Record<string, OiseauxPage> = {
|
||||
},
|
||||
'authentification-wot': {
|
||||
projet: [
|
||||
{ nom: 'porteur-de-serveur', pose: 'derriere', left: '-130px', bottom: '-30px', w: 210 },
|
||||
// the Ğ1 pump (Duniter) perched on the project card: 74 px of void above it at every width,
|
||||
// and the left margin keeps no column of three (rule d)
|
||||
{ nom: 'pompeur-de-g1', pose: 'perche', right: '14px', w: 96 },
|
||||
// behind the card, out of its bottom-left corner: no painted pixel in the cut of the rounded
|
||||
// corner, inside the card's rectangle (rule g, orch 03/11 after 17h58)
|
||||
{ nom: 'porteur-de-serveur', pose: 'derriere', left: '-142px', bottom: '-24px', w: 210 },
|
||||
// the Ğ1 pump (Duniter) in the right margin, feet on the card's top edge: perched on the
|
||||
// card it stood 11 px under the third line of the introduction (rule f). The summary starts
|
||||
// under the card, and the left margin keeps no column of three (rule d)
|
||||
{ nom: 'pompeur-de-g1', pose: 'marge-d', ecart: '24px', bottom: '100%', w: 96 },
|
||||
],
|
||||
sections: {
|
||||
// the steps have no background: in the margin, on their last line, small and close to the
|
||||
@@ -462,9 +465,10 @@ const OISEAUX_PAGE: Record<string, OiseauxPage> = {
|
||||
},
|
||||
},
|
||||
'cloud-libre': {
|
||||
projet: [{ nom: 'porteur-de-serveur', pose: 'derriere', left: '-130px', bottom: '-30px', w: 210 }],
|
||||
// both out of the cut of their card's rounded corner (rule g, as on the web of trust)
|
||||
projet: [{ nom: 'porteur-de-serveur', pose: 'derriere', left: '-142px', bottom: '-24px', w: 210 }],
|
||||
sections: {
|
||||
1: [{ nom: 'admin-reseau', pose: 'derriere', left: '-110px', bottom: '-20px', w: 220 }],
|
||||
1: [{ nom: 'admin-reseau', pose: 'derriere', left: '-110px', bottom: '-32px', w: 220 }],
|
||||
5: [{ nom: 'imprimeuse-3d', pose: 'marge-g', ecart: '48px', w: 84 }],
|
||||
},
|
||||
},
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
<div class="container-content">
|
||||
<header class="mb-12 text-center">
|
||||
<p class="relative mb-2 font-mono text-sm tracking-widest text-primary uppercase">
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="droneuse" pose="perche" bout :w="72" mobile-seul />
|
||||
<!-- Phone: the title fills the width; the bird stands at the end of this line, on its baseline.
|
||||
A flat bird (37-44 px tall at 72 px wide): 93 px separate this baseline from the sticky
|
||||
header, and a perched bird keeps a void of its own height above it (rule f) -->
|
||||
{{ content?.kicker }}<UiOiseauPose nom="codeuse" pose="perche" bout :w="72" mobile-seul />
|
||||
</p>
|
||||
<h1 class="page-title relative font-display font-bold tracking-tight" style="color: hsl(var(--color-text))">
|
||||
<!-- At the end of the title, on its baseline (rule e, docs/da-oiseaux.md) -->
|
||||
|
||||
Reference in New Issue
Block a user