Files
portfolio-generator-app/assets/css/theme.css
Valentin Le Moign 59dfbe4155 Générateur de portfolios PDF Figures Libres (app Nuxt autonome)
App Nuxt 3 + Nuxt UI qui lit les projets du CMS Grav et compose des portfolios
A3 paysage exportés en PDF (gabarit book_v3) : composeur WYSIWYG, templates
cover/toc/projet/grille/page libre, pipeline Playwright + Ghostscript, gel du
contenu à la génération, partage public opt-in.

Dépôt autonome : Dockerfile (base Playwright + Ghostscript + ffmpeg + rsync) inclus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 18:37:09 +02:00

138 lines
3.6 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-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: 700;
line-height: 1.1;
}
.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: 700; }
.fl-prose em { font-style: italic; }