Files
parenthese/landing/public/guides.css
T
IliesAllaliandClaude Opus 5.5 10f1fc5d14 Typo : plus de mot ni de signe seul en fin de ligne
- text-wrap-style pretty sur les paragraphes, listes, légendes et chapôs, balance sur les titres
  (landing, guides statiques, base pz.css de l'app). Longhand pour ne pas réactiver le retour
  à la ligne là où white-space: nowrap est posé. Les noms de l'arbre sont sur le canvas, non touchés.
- Espaces insécables du français dans le texte visible : fine insécable avant ? ! ;,
  insécable avant : et dans les guillemets, entre un nombre et son unité (Mo, Go, €, dpi).
  Landing (i18n.js, bloc fr hors meta) et pages guides FR (corps de page, hors script).
- App : frenchTypography() appliquée par t() en français, avant le remplacement des variables ;
  le dictionnaire anglais reste indexé sur le français tel qu'écrit. Tests mis à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:06:44 +02:00

103 lines
6.4 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* 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); color: var(--encre); }
/* Pas de mot ni de signe seul en fin de paragraphe, titres équilibrés sur leurs lignes */
h1, h2, h3, h4 { text-wrap-style: balance; }
p, li, blockquote, figcaption, dd, td, .lead, .note { text-wrap-style: pretty; }
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; } }