Files
portfolio-generator-app/assets/css/theme.css
Valentin Le Moign ef1f14335d Textes projet éditables suivant Grav + écriture atomique du store
- Champ Présentation prérempli avec le texte Grav, suivi modifié/synchro
  (textOverride undefined = suit Grav, sinon figé ; bouton Réinitialiser)
- Fix génération PDF : savePortfolio écrit en atomique (temp+rename) pour
  éviter la corruption de lecture par l'autosave concurrent du rendu print
- Toast d'échec de génération explicite (message serveur)
- Refonte architecture visuelle, fond unifié white/tint/full, dispositions
  couverture bandeau/colonne, instantané public complet, index 3 lignes
2026-07-06 13:26:06 +02:00

139 lines
3.8 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.

/* Charte Figures Libres — fontes du thème Grav figureslibres-v2 et canvas
de page A3 paysage (gabarit_book_v3 : 1190,55 × 841,89 pt), communs à
l'aperçu et au PDF. 1 pt = 4/3 px → page = 1587,4 × 1122,5 px. */
@font-face {
font-family: 'Syne';
src: url('/fonts/Syne-regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Syne';
src: url('/fonts/Syne-bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Moche';
src: url('/fonts/Moche-bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Lato';
src: url('/fonts/Lato-regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Lato';
src: url('/fonts/Lato-bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Lato';
src: url('/fonts/Lato-italic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: block;
}
@font-face {
font-family: 'Lato';
src: url('/fonts/Lato-bold-italic.woff2') format('woff2');
font-weight: 700;
font-style: italic;
font-display: block;
}
/* Fontes de titre par « utilité » (mixins du thème Grav) */
@font-face {
font-family: 'Avara';
src: url('/fonts/Avara-bold-italic.woff2') format('woff2');
font-weight: 700;
font-style: italic;
font-display: block;
}
@font-face {
font-family: 'PlayfairDisplay';
src: url('/fonts/PlayfairDisplay-italic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: block;
}
@font-face {
font-family: 'ManifontGrotesk';
src: url('/fonts/ManifontGrotesk-bold-italic.woff2') format('woff2');
font-weight: 700;
font-style: italic;
font-display: block;
}
/* ---- Canvas de page A3 paysage — métriques mesurées dans le gabarit ---- */
:root {
--fl-page-w: 1587.4px; /* 420 mm */
--fl-page-h: 1122.5px; /* 297 mm */
--fl-margin: 30.2px; /* 8 mm — marge extérieure */
--fl-gutter: 14.4px; /* 3,8 mm — gouttière des grilles */
--fl-strip: 18.9px; /* 5 mm — filet haut des pages grille */
--fl-strip-light: 7.6px; /* 2 mm — filet fin du mode clair (couverture + grille) */
--fl-band: 208px; /* 55 mm — bandeau des pages couverture */
}
.fl-page {
position: relative;
width: var(--fl-page-w);
height: var(--fl-page-h);
overflow: hidden;
flex-shrink: 0;
background: #ffffff;
color: #000000;
font-family: 'Syne', sans-serif;
font-size: 16px; /* 12 pt */
line-height: 21.33px; /* 16 pt */
}
.fl-page :is(h1, h2, h3) {
font-family: 'Syne', sans-serif;
font-weight: 400; /* Syne toujours en Regular (seul « Figures Libres » reste en Bold) */
line-height: 1.05;
}
.fl-page img {
display: block;
}
/* Fontes de titre par catégorie (utilité) — plus spécifiques que la règle
Syne des h1/h2/h3 ci-dessus */
.fl-page .fl-font-publique {
font-family: 'PlayfairDisplay', serif;
font-weight: 400;
font-style: italic;
}
.fl-page .fl-font-sociale {
font-family: 'ManifontGrotesk', sans-serif;
font-weight: 700;
font-style: italic;
}
.fl-page .fl-font-culturelle {
font-family: 'Avara', serif;
font-weight: 700;
font-style: italic;
}
/* Texte courant issu du Markdown — Syne 12 pt / interligne 16 pt (gabarit) */
.fl-prose p { margin: 0 0 0.75em; }
.fl-prose p:last-child { margin-bottom: 0; }
.fl-prose a { text-decoration: underline; text-underline-offset: 2px; }
.fl-prose ul, .fl-prose ol { margin: 0 0 0.75em; padding-left: 1.2em; }
.fl-prose ul { list-style: disc; }
.fl-prose ol { list-style: decimal; }
.fl-prose strong { font-weight: 400; } /* Syne en Regular : pas de graisse dans le corps de texte */
.fl-prose em { font-style: italic; }