mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-13 00:16:09 +00:00
Replays du 24/09 : personne ne trouvait comment ajouter. Pour qu'une grand-mère s'en sorte seule depuis un lien : - arbre ouvert zoomé sur la personne de départ quand il est trop grand pour être lisible en entier, sans fiche ouverte par-dessus - carte d'accueil de deux phrases, une seule fois par arbre - barre du bas en toutes lettres : Ajouter un souvenir, Ajouter une personne, Plus (dessin, mode d'emploi, compte) - « Pour qui ? » : recherche par prénom avec portraits, puis les souvenirs de la personne ; panneau simplifié pour la famille - une personne ajoutée part tout de suite à l'envoi (prénom, un mot) - fiche ouverte sur Souvenirs avec le bouton, dates en toutes lettres - bandeau d'envoi masqué tant qu'il n'y a rien à envoyer - portraits de l'arbre perdus après un rechargement sans nouveau placement : horodatage stable et images rechargées à chaque données - page parenthese.io/aide/ avec captures de l'arbre de démo, liée depuis l'accueil, le menu Plus et le message d'invitation Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
100 lines
6.2 KiB
CSS
100 lines
6.2 KiB
CSS
/* Pages guides statiques de parenthese.io : même DA que la landing (accent terracotta, Newsreader + DM Sans).
|
||
Polices chargées par Google Fonts dans le <head> de chaque page. Tokens repris de landing/src/index.css. */
|
||
:root {
|
||
--grege: #fbfaf7; --papier: #ffffff;
|
||
--a50: #fcf3ef; --a100: #f8e4db; --a200: #f4d6c9; --a300: #edb6a4; --a500: #d2694a; --a700: #93402a; --a800: #7a3421;
|
||
--encre: #2a2622; --encre2: #4f4841; --doux: #6b645d; --trait: #ebe6df; --trait-l: #efe3dc;
|
||
--ombre: 0 1px 2px rgba(42,38,34,.05), 0 8px 24px rgba(42,38,34,.07);
|
||
--serif: 'Newsreader', Georgia, 'Times New Roman', serif;
|
||
--sans: 'DM Sans', system-ui, -apple-system, sans-serif;
|
||
--ease-out: cubic-bezier(.23,1,.32,1);
|
||
color-scheme: light;
|
||
}
|
||
* { box-sizing: border-box; }
|
||
html { background: var(--grege); scroll-padding-top: 84px; }
|
||
body { margin: 0; color: var(--encre); background: var(--grege); font: 400 17px/1.65 var(--sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
||
:focus-visible { outline: 2px solid var(--a500); outline-offset: 3px; border-radius: 6px; }
|
||
::selection { background: var(--a200); }
|
||
a { color: var(--a700); text-decoration: underline; text-decoration-color: var(--a300); text-underline-offset: 3px; text-decoration-thickness: 1px; }
|
||
a:hover { color: var(--a800); text-decoration-color: currentColor; }
|
||
|
||
.wrap { width: min(100% - 32px, 720px); margin: 0 auto; }
|
||
|
||
/* Header, calé sur .site-nav de la landing */
|
||
header.top { position: sticky; top: 0; z-index: 10; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); background: rgba(251, 250, 247, 0.86); border-bottom: 1px solid var(--trait); }
|
||
header.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 68px; }
|
||
.brand { display: inline-flex; align-items: center; color: var(--encre); text-decoration: none; }
|
||
.brand img { display: block; height: 22px; width: auto; }
|
||
|
||
/* Boutons, calés sur .btn.p / .btn.s de la landing (fond encre : le blanc sur a500 ne passe pas AA) */
|
||
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--encre); color: #fff; font: 500 14px/1 var(--sans); text-decoration: none; white-space: nowrap; transition: transform 140ms var(--ease-out), background-color 180ms ease; }
|
||
.btn:hover { background: #3d3731; color: #fff; text-decoration: none; }
|
||
.btn:active { transform: scale(0.97); }
|
||
.btn.ghost { background: transparent; color: var(--encre); box-shadow: inset 0 0 0 1px var(--a300); }
|
||
.btn.ghost:hover { background: var(--a50); }
|
||
|
||
/* Article */
|
||
main { padding: 56px 0 24px; }
|
||
.eyebrow { display: inline-block; font: 500 12px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--doux); margin-bottom: 16px; }
|
||
h1, h2, h3 { font-family: var(--serif); text-wrap: balance; color: var(--encre); }
|
||
h1 { font-size: clamp(36px, 5vw, 54px); line-height: 1.06; font-weight: 300; margin: 0 0 20px; letter-spacing: -0.02em; }
|
||
.lead { font-size: 20px; line-height: 1.55; color: var(--encre2); margin: 0 0 40px; }
|
||
h2 { font-size: 30px; line-height: 1.2; font-weight: 400; margin: 52px 0 14px; letter-spacing: -0.01em; }
|
||
h3 { font-size: 23px; line-height: 1.25; font-weight: 400; margin: 32px 0 8px; }
|
||
h1 em, h2 em, h3 em, em.s { font-style: italic; font-weight: 300; }
|
||
p { margin: 0 0 16px; }
|
||
ul, ol { padding-left: 22px; margin: 0 0 16px; }
|
||
li { margin-bottom: 6px; }
|
||
li::marker { color: var(--a500); }
|
||
strong { font-weight: 600; }
|
||
.note { padding: 18px 22px; border-left: 3px solid var(--a500); background: var(--a50); border-radius: 0 14px 14px 0; margin: 24px 0; }
|
||
.note p:last-child { margin-bottom: 0; }
|
||
|
||
/* Captures d'écran de téléphone (mode d'emploi) */
|
||
.shots { display: flex; flex-wrap: wrap; gap: 20px; margin: 20px 0 28px; }
|
||
.shots figure { margin: 0; flex: 0 1 250px; }
|
||
.shots img { display: block; width: 100%; height: auto; border-radius: 26px; border: 1px solid var(--trait); box-shadow: 0 10px 30px rgba(42, 38, 34, .08); }
|
||
|
||
table { width: 100%; border-collapse: collapse; margin: 16px 0 28px; font-size: 15px; line-height: 1.5; }
|
||
th, td { text-align: left; vertical-align: top; padding: 12px 10px; border-bottom: 1px solid var(--trait); }
|
||
th { font: 500 12px/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--doux); border-bottom-color: var(--a300); }
|
||
td:first-child { font-weight: 500; }
|
||
th:first-child, td:first-child { padding-left: 0; }
|
||
|
||
.faq details { border-bottom: 1px solid var(--trait); padding: 14px 0; }
|
||
.faq summary { text-wrap: pretty; cursor: pointer; font: 400 21px/1.3 var(--serif); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
|
||
.faq summary::-webkit-details-marker { display: none; }
|
||
.faq summary::after { content: '+'; font-family: var(--sans); color: var(--a700); flex: none; }
|
||
.faq details[open] summary::after { content: '−'; }
|
||
.faq p { margin: 10px 0 4px; color: var(--encre2); }
|
||
|
||
/* Encart final, calé sur .final de la landing */
|
||
.cta { margin: 64px 0 24px; padding: 40px 32px; border-radius: 22px; background: var(--a100); text-align: center; }
|
||
.cta h2 { margin-top: 0; font-weight: 300; font-size: clamp(28px, 4vw, 36px); line-height: 1.1; }
|
||
.cta p { color: var(--encre2); margin-bottom: 22px; }
|
||
.cta .btn { padding: 15px 24px; font-size: 15px; }
|
||
|
||
footer { border-top: 1px solid var(--trait); padding: 28px 0 40px; font: 400 13px/1.6 var(--sans); color: var(--doux); }
|
||
footer .wrap { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; justify-content: space-between; }
|
||
footer nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }
|
||
footer a { color: inherit; text-decoration: none; }
|
||
footer a:hover { color: var(--encre); }
|
||
|
||
@media (max-width: 600px) {
|
||
.shots figure { flex-basis: calc(50% - 10px); }
|
||
body { font-size: 16px; }
|
||
main { padding-top: 40px; }
|
||
.lead { font-size: 18px; }
|
||
h2 { font-size: 26px; margin-top: 44px; }
|
||
h3 { font-size: 21px; }
|
||
.brand img { height: 20px; }
|
||
.btn span.long { display: none; }
|
||
table { font-size: 14px; }
|
||
th, td { padding: 10px 6px; }
|
||
th:last-child, td:last-child { padding-right: 0; }
|
||
th { font-size: 11px; letter-spacing: 0.04em; }
|
||
.faq summary { font-size: 19px; }
|
||
.cta { padding: 32px 20px; }
|
||
}
|
||
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }
|