Manuel PDF : couverture pleine page (grille, métadonnées, strip UQO), avis+sommaire regroupés, une section par page, marges d'impression 15 mm, images cadrées max 150 mm
2 changed files +76 −30
modified
public/guide/index.html
+76 −30
@@ -23,24 +23,31 @@ | ||
| 23 | 23 | img.shot{width:100%;height:auto;display:block;border:1px solid rgba(22,24,27,.5);border-radius:2px} |
| 24 | 24 | figure{margin:22px 0 8px} |
| 25 | 25 | figcaption{font-family:"JetBrains Mono",monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gris-2);margin-top:8px} |
| 26 | − /* couverture */ | |
| 27 | − header.cover{background:var(--encre-nuit);color:#e9edee;padding:56px 0 40px} | |
| 26 | + /* couverture — pleine page, grille discrète, métadonnées en pied */ | |
| 27 | + header.cover{position:relative;background:var(--encre-nuit);color:#e9edee;overflow:hidden} | |
| 28 | + .cover-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(43,204,174,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(43,204,174,.06) 1px,transparent 1px);background-size:56px 56px} | |
| 29 | + .cover-inner{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:44px;min-height:min(92vh,900px);padding-top:56px;padding-bottom:44px} | |
| 28 | 30 | .cover .logo{display:flex;align-items:flex-end;gap:16px} |
| 29 | − .cover .logo img{height:52px;width:auto} | |
| 30 | − .cover .logo .eval{font-family:"Space Grotesk",Inter,sans-serif;font-weight:700;font-size:44px;line-height:.9;letter-spacing:-.04em;color:var(--turquoise)} | |
| 31 | − .kick{display:inline-flex;align-items:center;gap:10px;font-family:"JetBrains Mono",monospace;font-size:11.5px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--turquoise);margin-top:26px} | |
| 32 | − .kick::before{content:"";width:22px;height:2px;background:var(--turquoise)} | |
| 33 | − h1{font-family:"Space Grotesk",Inter,sans-serif;font-weight:700;font-size:clamp(34px,6vw,58px);line-height:1;letter-spacing:-.03em;text-transform:uppercase;margin-top:14px} | |
| 34 | − .cover p.lede{max-width:620px;margin-top:16px;color:rgba(233,237,238,.75);font-size:15.5px} | |
| 35 | − .cover .cours{margin-top:22px;border-left:3px solid var(--turquoise);padding:8px 0 8px 16px;font-size:13.5px;color:rgba(233,237,238,.85)} | |
| 36 | − .cover .cours b{color:#fff} | |
| 31 | + .cover .logo img{height:56px;width:auto} | |
| 32 | + .cover .logo .eval{font-family:"Space Grotesk",Inter,sans-serif;font-weight:700;font-size:48px;line-height:.9;letter-spacing:-.04em;color:var(--turquoise)} | |
| 33 | + .kick{display:inline-flex;align-items:center;gap:10px;font-family:"JetBrains Mono",monospace;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--turquoise)} | |
| 34 | + .kick::before{content:"";width:26px;height:2px;background:var(--turquoise)} | |
| 35 | + h1{font-family:"Space Grotesk",Inter,sans-serif;font-weight:700;font-size:clamp(38px,7vw,72px);line-height:.98;letter-spacing:-.03em;text-transform:uppercase;margin-top:16px} | |
| 36 | + .cover p.lede{max-width:600px;margin-top:20px;color:rgba(233,237,238,.75);font-size:15.5px} | |
| 37 | + .cover-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px 32px;border-top:1px solid rgba(233,237,238,.22);padding-top:22px} | |
| 38 | + .cover-meta .k{display:block;font-family:"JetBrains Mono",monospace;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--turquoise)} | |
| 39 | + .cover-meta .v{display:block;margin-top:5px;font-family:"Space Grotesk",Inter,sans-serif;font-weight:700;font-size:13.5px;line-height:1.35;color:#fff} | |
| 40 | + .cover-strip{margin-top:26px;height:6px;background:var(--bleu);position:relative} | |
| 41 | + .cover-strip::after{content:"";position:absolute;left:0;top:0;bottom:0;width:30%;background:var(--turquoise)} | |
| 42 | + .cover-note{margin-top:14px;font-family:"JetBrains Mono",monospace;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(233,237,238,.5)} | |
| 37 | 43 | .bar{height:8px;background:var(--bleu);position:relative} |
| 38 | 44 | .bar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:30%;background:var(--turquoise)} |
| 39 | 45 | /* avis pédagogique */ |
| 40 | 46 | .avis{background:var(--surface);border:1px solid var(--ligne);border-left:4px solid var(--bleu);padding:16px 18px;margin:28px 0;font-size:13.5px;color:var(--gris)} |
| 41 | 47 | .avis b{color:var(--encre)} |
| 42 | 48 | /* sommaire */ |
| 43 | − nav.toc{margin:34px 0 8px} | |
| 49 | + nav.toc{margin:40px 0 8px} | |
| 50 | + nav.toc ol{margin-top:18px} | |
| 44 | 51 | nav.toc ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2px 28px} |
| 45 | 52 | nav.toc a{display:flex;gap:10px;align-items:baseline;padding:9px 2px;border-bottom:1px solid var(--ligne);text-decoration:none;color:var(--encre);font-weight:600;font-size:13.5px} |
| 46 | 53 | nav.toc a:hover{color:var(--bleu)} |
@@ -75,34 +82,71 @@ | ||
| 75 | 82 | .retour{display:inline-block;margin-top:18px;font-family:"JetBrains Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--turquoise)} |
| 76 | 83 | /* impression / PDF */ |
| 77 | 84 | @media print{ |
| 78 | − body{background:#fff} | |
| 79 | − header.cover{page-break-after:always} | |
| 80 | − section{page-break-inside:auto} | |
| 81 | − figure{page-break-inside:avoid} | |
| 82 | − nav.toc{page-break-after:always} | |
| 85 | + @page{size:A4} | |
| 86 | + body{background:#fff;font-size:12.5px} | |
| 87 | + .wrap{max-width:none;padding:0 15mm} | |
| 88 | + /* couverture = première page entière (marge PDF basse 24px déjà réservée) */ | |
| 89 | + header.cover{page-break-after:always;height:279mm} | |
| 90 | + .cover-inner{min-height:100%;height:100%;padding-top:20mm;padding-bottom:16mm} | |
| 91 | + .cover .logo img{height:60px} | |
| 92 | + h1{font-size:52pt} | |
| 93 | + .bar{display:none} | |
| 94 | + .avis{margin-top:10mm;margin-bottom:8mm} | |
| 95 | + /* sommaire : sa propre page, une colonne lisible */ | |
| 96 | + nav.toc{page-break-after:always;margin:0;padding-top:6mm} | |
| 97 | + nav.toc ol{grid-template-columns:1fr 1fr;gap:0 12mm} | |
| 98 | + nav.toc a{padding:10px 2px;font-size:12.5px} | |
| 99 | + /* chaque section démarre sur une page neuve */ | |
| 100 | + section{page-break-before:always;margin:0;padding-top:8mm} | |
| 101 | + .sec-head{border-top-width:2.5px} | |
| 102 | + h2{font-size:21pt} | |
| 103 | + section p, ul.pts, table.tbl, .astuce, .formule{max-width:none} | |
| 104 | + /* images : jamais coupées, jamais plus hautes qu'une page */ | |
| 105 | + figure{page-break-inside:avoid;margin:16px 0 6px} | |
| 106 | + img.shot{max-height:150mm;width:auto;max-width:100%;margin:0 auto;box-shadow:none} | |
| 107 | + .grid2{grid-template-columns:1fr 1fr;gap:14px} | |
| 108 | + .grid2 img.shot{max-height:110mm} | |
| 109 | + ul.pts li{page-break-inside:avoid} | |
| 110 | + table.tbl tr{page-break-inside:avoid} | |
| 111 | + .astuce,.formule,.avis{page-break-inside:avoid} | |
| 112 | + a{color:var(--bleu);text-decoration:none} | |
| 83 | 113 | .retour{display:none} |
| 114 | + footer.fin{page-break-before:always;background:var(--encre-nuit)!important;-webkit-print-color-adjust:exact;padding:20mm 0} | |
| 84 | 115 | } |
| 116 | + /* couleurs fidèles à l'impression */ | |
| 117 | + *{-webkit-print-color-adjust:exact;print-color-adjust:exact} | |
| 85 | 118 | </style> |
| 86 | 119 | </head> |
| 87 | 120 | <body> |
| 88 | 121 | |
| 89 | 122 | <!-- ================= COUVERTURE ================= --> |
| 90 | 123 | <header class="cover"> |
| 91 | − <div class="wrap"> | |
| 92 | − <div class="logo"> | |
| 93 | − <img src="/uqo/uqo-blanc.svg" alt="UQO — Université du Québec en Outaouais"> | |
| 94 | − <span class="eval">Éval</span> | |
| 124 | + <div class="cover-grid" aria-hidden="true"></div> | |
| 125 | + <div class="wrap cover-inner"> | |
| 126 | + <div> | |
| 127 | + <div class="logo"> | |
| 128 | + <img src="/uqo/uqo-blanc.svg" alt="UQO — Université du Québec en Outaouais"> | |
| 129 | + <span class="eval">Éval</span> | |
| 130 | + </div> | |
| 131 | + </div> | |
| 132 | + <div> | |
| 133 | + <span class="kick">Manuel d'utilisation</span> | |
| 134 | + <h1>Le laboratoire<br>pédagogique<br>d'évaluation<br>immobilière</h1> | |
| 135 | + <p class="lede">Ce manuel présente, écran par écran, toutes les fonctionnalités de la plateforme | |
| 136 | + <b style="color:#fff">UQO Éval</b> : recherche d'une propriété, lecture d'une estimation, | |
| 137 | + mode étudiant, comparables, carte, statistiques, parc immobilier, assistante IA | |
| 138 | + et rapports PDF.</p> | |
| 95 | 139 | </div> |
| 96 | − <span class="kick">Manuel d'utilisation</span> | |
| 97 | − <h1>Le laboratoire pédagogique<br>d'évaluation immobilière</h1> | |
| 98 | − <p class="lede">Ce manuel présente, écran par écran, toutes les fonctionnalités de la plateforme | |
| 99 | − <b style="color:#fff">UQO Éval</b> (www.uqo-eval.app) : recherche d'une propriété, lecture d'une | |
| 100 | − estimation, mode étudiant, comparables, carte, statistiques, parc immobilier, assistante IA | |
| 101 | − et rapports PDF.</p> | |
| 102 | − <div class="cours"> | |
| 103 | − Développée dans le cadre des cours <b>IMM1003 — Éléments d'évaluation immobilière</b> et | |
| 104 | − <b>IMM1033 — Méthodes du coût en évaluation immobilière</b>, enseignés par | |
| 105 | − <b>Simon-Pierre Boucher</b> — Université du Québec en Outaouais. | |
| 140 | + <div> | |
| 141 | + <div class="cover-meta"> | |
| 142 | + <div><span class="k">Plateforme</span><span class="v">www.uqo-eval.app</span></div> | |
| 143 | + <div><span class="k">Édition</span><span class="v">1.0 — août 2026</span></div> | |
| 144 | + <div><span class="k">Cours</span><span class="v">IMM1003 — Éléments d'évaluation immobilière<br>IMM1033 — Méthodes du coût en évaluation immobilière</span></div> | |
| 145 | + <div><span class="k">Enseignant</span><span class="v">Simon-Pierre Boucher<br>Université du Québec en Outaouais</span></div> | |
| 146 | + </div> | |
| 147 | + <div class="cover-strip" aria-hidden="true"></div> | |
| 148 | + <p class="cover-note">Plateforme à vocation pédagogique, universitaire et expérimentale — | |
| 149 | + les estimations ne constituent pas une évaluation professionnelle certifiée (OEAQ).</p> | |
| 106 | 150 | </div> |
| 107 | 151 | </div> |
| 108 | 152 | </header> |
@@ -121,6 +165,8 @@ | ||
| 121 | 165 | |
| 122 | 166 | <!-- ================= SOMMAIRE ================= --> |
| 123 | 167 | <nav class="toc" aria-label="Sommaire"> |
| 168 | + <div class="sec-head"><span class="sec-num">Sommaire</span> | |
| 169 | + <h2>Quatorze sections, tout le laboratoire</h2></div> | |
| 124 | 170 | <ol> |
| 125 | 171 | <li><a href="#s1"><span class="n">01</span> La page d'accueil</a></li> |
| 126 | 172 | <li><a href="#s2"><span class="n">02</span> Analyser une propriété (recherche)</a></li> |
modified
public/guide/uqo-eval-manuel.pdf
+0 −0
Binary file not shown.