identité : le kit du studio DA intégré, les 61 oiseaux posés sur la page
Copie du kit kit-site (empreinte vérifiée) : logotype dans l'en-tête, signe §, favicons et icônes, og-default (?v=3), frise du pied de page, 61 oiseaux. Les shadoks positionnés à la main (HomeShadoks et les règles des 10 pages) cèdent la place à UiOiseauPose : chaque oiseau se pose sur une arête réelle (perché, marge gauche ou droite, derrière une carte, libre), currentColor, largeur 72 px au moins, opacité 0,18-0,28 près du texte et 0,10-0,14 derrière, jamais deux fois sur une page, calligraphe et typographe jamais en miroir. Sous 768 px, un oiseau par page au plus ; seuls ceux derrière une carte dérivent un peu, et plus du tout en mouvement réduit. Consignes d'Yvv du 03/11 inscrites dans docs/consignes-yvv.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,75 +1,10 @@
|
||||
<template>
|
||||
<div class="relative overflow-hidden section-padding">
|
||||
<!-- Shadok danseur: character dancing with music notes -->
|
||||
<svg class="shadok-danseur" viewBox="0 0 240 300" fill="none" aria-hidden="true">
|
||||
<!-- Body (dynamic pose, leaning) -->
|
||||
<ellipse cx="120" cy="155" rx="38" ry="46" fill="currentColor" opacity="0.85"/>
|
||||
<!-- Head (tilted with joy) -->
|
||||
<ellipse cx="125" cy="92" rx="24" ry="23" fill="currentColor" opacity="0.8"/>
|
||||
<!-- Eyes (happy, squinted) -->
|
||||
<path d="M114 88 Q118 84 122 88" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none" opacity="0.4"/>
|
||||
<path d="M130 88 Q134 84 138 88" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none" opacity="0.4"/>
|
||||
<!-- Big smile -->
|
||||
<path d="M116 100 Q125 108 134 100" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none" opacity="0.35"/>
|
||||
<!-- Arms thrown up (dancing) -->
|
||||
<line x1="85" y1="140" x2="50" y2="100" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<line x1="155" y1="140" x2="190" y2="105" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<!-- Hands -->
|
||||
<circle cx="50" cy="98" r="4" fill="currentColor" opacity="0.4"/>
|
||||
<circle cx="190" cy="103" r="4" fill="currentColor" opacity="0.4"/>
|
||||
<!-- Legs (one kicked up) -->
|
||||
<line x1="105" y1="198" x2="80" y2="255" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<line x1="135" y1="198" x2="170" y2="240" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<!-- Feet -->
|
||||
<path d="M80 255 L68 258 M80 255 L75 261" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" opacity="0.5"/>
|
||||
<path d="M170 240 L180 238 M170 240 L175 246" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" opacity="0.5"/>
|
||||
<!-- Music notes floating around -->
|
||||
<text x="42" y="82" fill="currentColor" opacity="0.3" font-size="18">♪</text>
|
||||
<text x="195" y="88" fill="currentColor" opacity="0.25" font-size="16">♫</text>
|
||||
<text x="60" y="65" fill="currentColor" opacity="0.2" font-size="14">♩</text>
|
||||
<text x="180" y="72" fill="currentColor" opacity="0.2" font-size="20">♪</text>
|
||||
</svg>
|
||||
|
||||
<!-- Shadok DJ: character with headphones behind a turntable -->
|
||||
<svg class="shadok-dj" viewBox="0 0 260 300" fill="none" aria-hidden="true">
|
||||
<!-- Body -->
|
||||
<ellipse cx="130" cy="155" rx="42" ry="50" fill="currentColor" opacity="0.85"/>
|
||||
<!-- Head -->
|
||||
<circle cx="130" cy="88" r="26" fill="currentColor" opacity="0.8"/>
|
||||
<!-- Headphones band -->
|
||||
<path d="M104 78 Q130 55 156 78" stroke="currentColor" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.6"/>
|
||||
<!-- Headphone ear pads -->
|
||||
<ellipse cx="102" cy="85" rx="8" ry="12" fill="currentColor" opacity="0.5"/>
|
||||
<ellipse cx="158" cy="85" rx="8" ry="12" fill="currentColor" opacity="0.5"/>
|
||||
<!-- Eyes (cool, half-lidded) -->
|
||||
<ellipse cx="120" cy="85" rx="5" ry="3" fill="currentColor" opacity="0.25"/>
|
||||
<ellipse cx="140" cy="85" rx="5" ry="3" fill="currentColor" opacity="0.25"/>
|
||||
<circle cx="121" cy="86" r="1.8" fill="currentColor" opacity="0.5"/>
|
||||
<circle cx="141" cy="86" r="1.8" fill="currentColor" opacity="0.5"/>
|
||||
<!-- Mouth (grin) -->
|
||||
<path d="M122 98 Q130 104 138 98" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none" opacity="0.35"/>
|
||||
<!-- Arms reaching to turntable -->
|
||||
<line x1="90" y1="150" x2="55" y2="195" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<line x1="170" y1="150" x2="205" y2="195" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<!-- Turntable body -->
|
||||
<rect x="30" y="200" width="200" height="18" rx="4" fill="currentColor" opacity="0.4"/>
|
||||
<!-- Turntable platter -->
|
||||
<ellipse cx="130" cy="200" rx="55" ry="15" fill="currentColor" opacity="0.25"/>
|
||||
<ellipse cx="130" cy="200" rx="55" ry="15" stroke="currentColor" stroke-width="1.5" fill="none" opacity="0.35"/>
|
||||
<!-- Record center -->
|
||||
<circle cx="130" cy="200" r="5" fill="currentColor" opacity="0.4"/>
|
||||
<!-- Tone arm -->
|
||||
<line x1="195" y1="188" x2="150" y2="195" stroke="currentColor" stroke-width="2" stroke-linecap="round" opacity="0.5"/>
|
||||
<circle cx="195" cy="188" r="3" fill="currentColor" opacity="0.35"/>
|
||||
<!-- Legs -->
|
||||
<line x1="115" y1="202" x2="105" y2="260" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
<line x1="145" y1="202" x2="155" y2="260" stroke="currentColor" stroke-width="3.5" stroke-linecap="round" opacity="0.6"/>
|
||||
</svg>
|
||||
|
||||
<div class="container-content">
|
||||
<!-- Hero section with book cover -->
|
||||
<div class="mb-12 grid items-center gap-8 md:grid-cols-2">
|
||||
<div class="book-cover-wrapper">
|
||||
<div class="book-cover-wrapper relative">
|
||||
<UiOiseauPose nom="trompettiste" pose="libre" left="2%" bottom="0px" :w="116" />
|
||||
<div class="book-cover-3d">
|
||||
<img
|
||||
:src="homeContent?.book.coverImage"
|
||||
@@ -81,8 +16,9 @@
|
||||
|
||||
<div class="text-center md:text-left">
|
||||
<p class="mb-2 font-mono text-sm tracking-widest text-accent uppercase">{{ content?.kicker }}</p>
|
||||
<h1 class="page-title font-display font-bold tracking-tight text-white">
|
||||
<h1 class="page-title relative font-display font-bold tracking-tight text-white">
|
||||
{{ content?.title }}
|
||||
<UiOiseauPose nom="dj" pose="perche" right="0px" bottom="calc(100% + 4px)" :w="100" retourne ton="accent" :seuil="1200" />
|
||||
</h1>
|
||||
<p class="mt-4 text-white/60">
|
||||
{{ content?.description }}
|
||||
@@ -131,7 +67,8 @@
|
||||
</div>
|
||||
|
||||
<!-- Song list -->
|
||||
<div v-if="viewMode === 'list'" class="flex flex-col gap-2">
|
||||
<div v-if="viewMode === 'list'" class="relative flex flex-col gap-2">
|
||||
<UiOiseauPose nom="danseur" pose="perche" left="calc(52% - 60px)" :w="120" />
|
||||
<SongItem
|
||||
v-for="song in filteredSongs"
|
||||
:key="song.id"
|
||||
@@ -237,42 +174,4 @@ const filteredSongs = computed(() => {
|
||||
object-fit: cover;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.shadok-danseur {
|
||||
position: absolute;
|
||||
left: 2%;
|
||||
top: 3%;
|
||||
width: clamp(100px, 14vw, 200px);
|
||||
opacity: 0.28;
|
||||
pointer-events: none;
|
||||
color: hsl(var(--color-primary));
|
||||
animation: shadok-float-danseur 7s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.shadok-dj {
|
||||
position: absolute;
|
||||
right: 2%;
|
||||
top: 3%;
|
||||
width: clamp(120px, 16vw, 230px);
|
||||
opacity: 0.3;
|
||||
pointer-events: none;
|
||||
color: hsl(var(--color-accent));
|
||||
animation: shadok-float-dj 8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes shadok-float-danseur {
|
||||
0%, 100% { transform: translateY(0) rotate(0deg); }
|
||||
25% { transform: translateY(-8px) rotate(2deg); }
|
||||
75% { transform: translateY(-4px) rotate(-2deg); }
|
||||
}
|
||||
|
||||
@keyframes shadok-float-dj {
|
||||
0%, 100% { transform: translateY(0); }
|
||||
50% { transform: translateY(-10px); }
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.shadok-danseur { display: none; }
|
||||
.shadok-dj { display: none; }
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user