feat(marketing): A-2.7b témoignages placeholder + FAQ accordion + CTA + JSON-LD
- Pre-launch testimonials section: 3 placeholder cards (avocat, CPA, municipal)
with persona icons + 'Témoignage à venir' label — NO fabricated quotes
(LPC art. 219). Expected publication mai-juin 2026 from T-4.1 interviews.
- FAQ accordion: 7 verifiable Q&A using Alpine.js core (x-data + x-show +
built-in x-transition; NO x-collapse plugin). Each item has @click toggle,
:aria-expanded, aria-controls, role="region" panel, focusable button.
- Schema.org FAQPage JSON-LD inline at end of FAQ section — striptags +
replace(' ', ' ') to normalize entities for Google FAQ rich result.
- CTA final: 'Réservez votre pré-inscription' (mailto + #tarifs anchor),
cosmic orbs to mirror Hero (page closure), ghost variant secondary button.
- Inline TESTIMONIALS and FAQ Python lists in src/marketing/routes.py
(no PyYAML dep — YAGNI; T-4.1 can introduce it when real data warrants).
- 8 new tests covering testimonials placeholders, forbidden fake names,
7 FAQ panels, Alpine bindings, JSON-LD schema, CTA wording, route data.
This commit is contained in:
@@ -414,6 +414,9 @@
|
||||
.right-1\.5 {
|
||||
right: calc(var(--spacing) * 1.5);
|
||||
}
|
||||
.right-1\/3 {
|
||||
right: calc(1 / 3 * 100%);
|
||||
}
|
||||
.right-1\/4 {
|
||||
right: calc(1 / 4 * 100%);
|
||||
}
|
||||
@@ -741,6 +744,9 @@
|
||||
.h-14 {
|
||||
height: calc(var(--spacing) * 14);
|
||||
}
|
||||
.h-16 {
|
||||
height: calc(var(--spacing) * 16);
|
||||
}
|
||||
.h-20 {
|
||||
height: calc(var(--spacing) * 20);
|
||||
}
|
||||
@@ -762,6 +768,9 @@
|
||||
.h-\[400px\] {
|
||||
height: 400px;
|
||||
}
|
||||
.h-\[450px\] {
|
||||
height: 450px;
|
||||
}
|
||||
.h-\[500px\] {
|
||||
height: 500px;
|
||||
}
|
||||
@@ -897,6 +906,9 @@
|
||||
.w-\[400px\] {
|
||||
width: 400px;
|
||||
}
|
||||
.w-\[450px\] {
|
||||
width: 450px;
|
||||
}
|
||||
.w-\[500px\] {
|
||||
width: 500px;
|
||||
}
|
||||
@@ -933,6 +945,9 @@
|
||||
.max-w-\[300px\] {
|
||||
max-width: 300px;
|
||||
}
|
||||
.max-w-\[820px\] {
|
||||
max-width: 820px;
|
||||
}
|
||||
.max-w-\[1060px\] {
|
||||
max-width: 1060px;
|
||||
}
|
||||
@@ -1029,6 +1044,9 @@
|
||||
--tw-scale-z: 100%;
|
||||
scale: var(--tw-scale-x) var(--tw-scale-y);
|
||||
}
|
||||
.rotate-45 {
|
||||
rotate: 45deg;
|
||||
}
|
||||
.rotate-180 {
|
||||
rotate: 180deg;
|
||||
}
|
||||
@@ -2276,6 +2294,9 @@
|
||||
.text-\[clamp\(2\.5rem\,4vw\,4rem\)\] {
|
||||
font-size: clamp(2.5rem, 4vw, 4rem);
|
||||
}
|
||||
.text-\[clamp\(2\.25rem\,4vw\,3\.5rem\)\] {
|
||||
font-size: clamp(2.25rem, 4vw, 3.5rem);
|
||||
}
|
||||
.text-\[clamp\(2rem\,3vw\,2\.75rem\)\] {
|
||||
font-size: clamp(2rem, 3vw, 2.75rem);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user