SPB Git

spb/poster-ka Public

Posters de présentation des marques du Groupe KA — HTML autonomes, impression A3 portrait

HTML 100%
12.2 KB · 218 lines html
Raw Blame History
1<!DOCTYPE html>2<!-- Auteur : Simon-Pierre Boucher — contact@spboucher.ai -->3<!-- Poster de présentation Food·Ka (by Groupe KA) — thème vert épicerie/lime/tomate de www.food-ka.com. Imprimer en A3 portrait. -->4<html lang="fr">5<head>6<meta charset="UTF-8" />7<meta name="viewport" content="width=device-width, initial-scale=1" />8<title>Food·Ka by Groupe KA — Tous les prix d'épicerie du Québec (poster)</title>9<link rel="preconnect" href="https://fonts.googleapis.com" />10<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />11<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;600&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet" />12<style>13  :root {14    --paper: #faf6ee;15    --ink: #14231a;16    --ink-2: #47564c;17    --ink-3: #839187;18    --sec: #1f7a4d;19    --green-deep: #14523a;20    --accent: #d9f26b;21    --accent-soft: #eef6d4;22    --on-accent: #14231a;23    --tomato: #e8542f;24    --display: "Space Grotesk", system-ui, sans-serif;25    --body: "Inter", system-ui, sans-serif;26    --mono: "JetBrains Mono", ui-monospace, monospace;27  }28  * { margin: 0; padding: 0; box-sizing: border-box; }29  html, body { background: #14231a; }30  body { font-family: var(--body); color: var(--ink); display: flex; justify-content: center; padding: 40px 16px; }3132  .poster {33    width: 860px; min-height: 1216px;34    background: var(--paper);35    border: 3px solid var(--ink);36    box-shadow: 14px 14px 0 rgba(0,0,0,0.45);37    padding: 44px 48px 36px;38    display: flex; flex-direction: column;39    position: relative; overflow: hidden;40  }41  .poster::after {42    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.05;43    background-image: radial-gradient(var(--ink) 0.6px, transparent 0.6px);44    background-size: 5px 5px;45  }4647  .head { display: flex; align-items: flex-end; justify-content: space-between; border-bottom: 2px solid var(--ink); padding-bottom: 18px; }48  .wordmark { font-family: var(--display); font-weight: 700; font-size: 40px; letter-spacing: -0.04em; display: inline-flex; align-items: baseline; gap: 7px; line-height: 1; }49  .kabox { display: inline-block; background: var(--ink); color: var(--accent); border-radius: 8px; padding: 0 10px 4px; transform: rotate(-2deg); }50  .by { display: inline-flex; align-items: baseline; gap: 5px; font-family: var(--mono); font-weight: 700; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); margin-top: 10px; }51  .by .minika { font-family: var(--display); font-size: 13px; letter-spacing: -0.02em; display: inline-flex; align-items: baseline; gap: 3px; color: var(--ink); }52  .by .minibox { display: inline-block; background: #141814; color: #d9f26b; border-radius: 4px; padding: 0 5px 2px; transform: rotate(-2deg); }53  .head .url { font-family: var(--mono); font-weight: 700; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }5455  .kicker { font-family: var(--mono); font-weight: 700; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--sec); margin-top: 26px; }56  h1 { font-family: var(--display); font-weight: 700; font-size: 56px; line-height: 0.99; letter-spacing: -0.035em; text-transform: uppercase; margin-top: 10px; }57  h1 .outline { color: transparent; -webkit-text-stroke: 2px var(--ink); }58  h1 .hl { background: var(--accent); color: var(--on-accent); box-shadow: 0 0 0 4px var(--accent); border-radius: 2px; }59  .lede { margin-top: 16px; max-width: 620px; font-size: 15px; line-height: 1.55; color: var(--ink-2); }60  .lede strong { color: var(--ink); }6162  .figure { margin-top: 24px; display: flex; flex-direction: column; }63  .sources { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 10px; }64  .src { font-family: var(--mono); font-size: 10.5px; font-weight: 500; color: var(--ink-2); background: #fff; border: 1.5px solid var(--ink); border-radius: 999px; padding: 5px 12px; box-shadow: 3px 3px 0 rgba(20,35,26,0.2); white-space: nowrap; }65  .beams { display: block; width: 100%; height: 78px; }66  .beams line { stroke: var(--ink); stroke-width: 1.6; stroke-dasharray: 5 6; opacity: 0.55; animation: flow 1.6s linear infinite; }67  @keyframes flow { to { stroke-dashoffset: -22; } }6869  .core { align-self: center; background: var(--ink); color: var(--paper); border-radius: 14px; padding: 18px 34px 20px; text-align: center; box-shadow: 6px 6px 0 rgba(20,35,26,0.28); transform: rotate(-1deg); position: relative; z-index: 1; }70  .core .k { font-family: var(--display); font-weight: 700; font-size: 42px; letter-spacing: -0.04em; line-height: 1; }71  .core .k .box { display: inline-block; background: var(--accent); color: var(--on-accent); border-radius: 8px; padding: 0 8px 3px; transform: rotate(-2deg); }72  .core .eq { font-family: var(--mono); font-weight: 700; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(250,246,238,0.75); margin-top: 7px; }73  .core .pill { position: absolute; top: -13px; right: -26px; background: var(--tomato); color: #fff; border: 2px solid var(--ink); border-radius: 999px; font-family: var(--mono); font-weight: 700; font-size: 10.5px; padding: 4px 11px; transform: rotate(3deg); white-space: nowrap; }7475  .features { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }76  .feat { background: #fff; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 4px 4px 0 var(--ink); padding: 16px 18px 18px; }77  .feat .n { font-family: var(--mono); font-weight: 700; font-size: 11px; color: var(--sec); }78  .feat h3 { font-family: var(--display); font-weight: 700; font-size: 15.5px; letter-spacing: -0.01em; text-transform: uppercase; margin-top: 6px; }79  .feat p { margin-top: 6px; font-size: 12px; line-height: 1.5; color: var(--ink-2); }80  .feat p strong { color: var(--ink); }8182  .stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }83  .chip { font-family: var(--mono); font-weight: 700; font-size: 11.5px; border: 1.5px solid var(--ink); border-radius: 999px; padding: 7px 14px; background: var(--accent-soft); white-space: nowrap; }84  .chip .dot { display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: var(--tomato); margin-right: 7px; animation: pulse 1.8s ease-in-out infinite; }85  @keyframes pulse { 50% { opacity: 0.35; } }8687  .strip { margin-top: 24px; background: var(--ink); color: var(--paper); border-radius: 14px; padding: 18px 26px; box-shadow: 6px 6px 0 rgba(20,35,26,0.28); display: flex; align-items: center; justify-content: space-between; gap: 24px; }88  .strip .eq { font-family: var(--display); font-weight: 700; font-size: 21px; line-height: 1.15; letter-spacing: -0.02em; text-transform: uppercase; }89  .strip .eq .acc { color: var(--accent); }90  .strip .side { font-family: var(--mono); font-weight: 500; font-size: 11px; line-height: 2; color: rgba(250,246,238,0.78); text-align: right; white-space: nowrap; }91  .strip .side strong { color: var(--accent); font-weight: 700; }9293  .foot { margin-top: auto; border-top: 2px dashed rgba(20,35,26,0.35); padding-top: 18px; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }94  .def { max-width: 540px; }95  .def .term { font-family: var(--display); font-weight: 700; font-size: 22px; letter-spacing: -0.03em; }96  .def .phon { font-family: var(--mono); font-weight: 500; font-size: 11.5px; color: var(--ink-3); margin-left: 6px; }97  .def p { margin-top: 5px; font-size: 12.5px; line-height: 1.5; color: var(--ink-2); }98  .def p strong { color: var(--ink); }99  .contact { text-align: right; font-family: var(--mono); font-size: 11px; font-weight: 700; line-height: 1.9; color: var(--ink-2); white-space: nowrap; }100  .contact .big { font-size: 13px; color: var(--ink); }101102  @media print {103    html, body { background: none; padding: 0; }104    .poster { box-shadow: none; min-height: 1283px; }105    .beams line { animation: none; }106    .chip .dot { animation: none; }107    @page { size: 860px 1283px; margin: 0; }108  }109</style>110</head>111<body>112  <div class="poster">113114    <header class="head">115      <div>116        <span class="wordmark">Food<span class="kabox">Ka</span></span><br />117        <span class="by">by <span class="minika">Groupe <span class="minibox">KA</span></span></span>118      </div>119      <span class="url">www.food-ka.com</span>120    </header>121122    <p class="kicker">Comparateur de prix d&rsquo;épicerie · Québec</p>123    <h1>Tous les prix<br /><span class="outline">d&rsquo;épicerie.</span> <span class="hl">Un seul panier.</span></h1>124    <p class="lede">125      <strong>Les produits et circulaires des grandes bannières d&rsquo;épicerie</strong> —126      Metro, IGA, Maxi, Super C, Provigo et 15 autres — agrégés avec leurs prix,127      soldes et prix unitaires. Comparer son panier entre bannières devient un128      réflexe, pas une corvée.129    </p>130131    <div class="figure">132      <div class="sources">133        <span class="src">metro.ca</span>134        <span class="src">iga.net</span>135        <span class="src">maxi.ca</span>136        <span class="src">superc.ca</span>137        <span class="src">provigo.ca</span>138        <span class="src">circulaires.qc</span>139        <span class="src">+ 15 bannières</span>140      </div>141      <svg class="beams" viewBox="0 0 860 78" preserveAspectRatio="none" aria-hidden="true">142        <line x1="90"  y1="6" x2="430" y2="76" />143        <line x1="205" y1="6" x2="430" y2="76" />144        <line x1="320" y1="6" x2="430" y2="76" />145        <line x1="430" y1="6" x2="430" y2="76" />146        <line x1="540" y1="6" x2="430" y2="76" />147        <line x1="655" y1="6" x2="430" y2="76" />148        <line x1="770" y1="6" x2="430" y2="76" />149      </svg>150      <div class="core">151        <span class="pill">2 900+ soldes actifs</span>152        <div class="k">Food<span class="box">Ka</span></div>153        <div class="eq">= toute l&rsquo;épicerie, au même endroit</div>154      </div>155    </div>156157    <div class="features">158      <article class="feat">159        <span class="n">01</span>160        <h3>Comparer les bannières</h3>161        <p><strong>Produit par produit</strong>, le même panier chiffré chez chaque bannière — la différence saute aux yeux.</p>162      </article>163      <article class="feat">164        <span class="n">02</span>165        <h3>Prix unitaires vrais</h3>166        <p>Prix normalisés en <strong>$/100 g et $/L</strong> pour comparer vraiment, au-delà des formats d&rsquo;emballage.</p>167      </article>168      <article class="feat">169        <span class="n">03</span>170        <h3>Soldes en un flux</h3>171        <p><strong>Soldes et circulaires de la semaine</strong> réunis en un seul flux — plus besoin de feuilleter 20 dépliants.</p>172      </article>173      <article class="feat">174        <span class="n">04</span>175        <h3>Catégories complètes</h3>176        <p>Des catégories d&rsquo;épicerie complètes, <strong>du frais au garde-manger</strong>, suivies en continu.</p>177      </article>178    </div>179180    <div class="stats">181      <span class="chip"><span class="dot"></span>23 700+ produits suivis</span>182      <span class="chip">20 bannières comparées</span>183      <span class="chip">2 900+ soldes actifs</span>184      <span class="chip">$/100 g · $/L normalisés</span>185    </div>186187    <div class="strip">188      <p class="eq">189        Le même panier,<br />190        <span class="acc">chiffré chez 20 bannières.</span>191      </p>192      <p class="side">193        Prix, soldes et circulaires <strong>agrégés en continu</strong><br />194        Prix unitaires <strong>normalisés</strong>, comparables pour vrai<br />195        Connexion unique <strong>KA ID</strong>, valide sur tout le groupe196      </p>197    </div>198199    <footer class="foot">200      <div class="def">201        <span class="term">Food·Ka</span><span class="phon">/fud.ka/ — « bouffe + agrège »</span>202        <p>203          <strong>1.</strong> Plateforme du Groupe KA dédiée aux prix204          d&rsquo;épicerie. <strong>2.</strong> L&rsquo;une des sept plateformes205          ·Ka : Lou·Ka loge, Immo·Ka vend, Auto·Ka roule, Fabri·Ka fabrique,206          Food·Ka nourrit. « Tout ce qui finit en ·Ka agrège. »207        </p>208      </div>209      <div class="contact">210        <span class="big">www.food-ka.com</span><br />211        by Groupe KA · www.groupe-ka.com<br />212        © 2026 Groupe KA · Québec213      </div>214    </footer>215  </div>216</body>217</html>218