|
301 | 301 | .foot-links a:hover{color:var(--amber)} |
302 | 302 | .disclaimer{color:var(--muted-2);font-size:.8rem;margin-top:22px;text-align:center;max-width:780px;margin-left:auto;margin-right:auto;line-height:1.6} |
303 | 303 |
|
| 304 | + /* ---------- sponsor block (generated from alegauss.github.io/sponsor.json) ---------- |
| 305 | + Sits between the footer links and the disclaimer. Product tiles carry the real logos |
| 306 | + on a white plate — the marks are reproduced as published, never recoloured to match |
| 307 | + this palette. */ |
| 308 | + .sponsor{ |
| 309 | + margin-top:30px;padding-top:26px;border-top:1px solid var(--line); |
| 310 | + display:flex;align-items:flex-start;gap:16px; |
| 311 | + } |
| 312 | + .sponsor-mark{width:42px;height:42px;border-radius:10px;background:#fff;padding:3px;flex:none} |
| 313 | + .sponsor-body{min-width:0} |
| 314 | + .sponsor-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);display:block} |
| 315 | + .sponsor-name{font-weight:800;font-size:1.02rem;letter-spacing:-.01em;display:block;margin-top:2px} |
| 316 | + .sponsor-name:hover{color:var(--amber-bright)} |
| 317 | + .sponsor-body p{color:var(--muted);font-size:.88rem;line-height:1.6;margin-top:6px;max-width:640px} |
| 318 | + .sponsor-body p a{color:var(--amber-bright);text-decoration:underline;text-underline-offset:3px} |
| 319 | + .sponsor-products{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px} |
| 320 | + .sponsor-product{ |
| 321 | + display:flex;align-items:center;gap:10px; |
| 322 | + padding:9px 14px 9px 10px;border:1px solid var(--line);border-radius:12px; |
| 323 | + background:var(--panel);transition:border-color .2s,transform .15s ease; |
| 324 | + } |
| 325 | + .sponsor-product:hover{border-color:var(--amber-bright);transform:translateY(-2px)} |
| 326 | + .sponsor-product img{width:28px;height:28px;border-radius:7px;background:#fff;padding:2px;flex:none} |
| 327 | + .sponsor-product b{display:block;font-size:.86rem;font-weight:700;letter-spacing:-.01em} |
| 328 | + .sponsor-product small{display:block;color:var(--muted-2);font-size:.76rem;line-height:1.45;max-width:280px} |
| 329 | + @media(max-width:620px){ |
| 330 | + .sponsor{flex-direction:column} |
| 331 | + .sponsor-product{width:100%} |
| 332 | + } |
| 333 | + |
| 334 | + |
304 | 335 | /* reveal on scroll */ |
305 | 336 | .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease} |
306 | 337 | .reveal.in{opacity:1;transform:none} |
@@ -731,6 +762,42 @@ <h3>A demo cast</h3> |
731 | 762 | <a href="https://github.com/alegauss/commitclerk/blob/main/LICENSE">License</a> |
732 | 763 | </div> |
733 | 764 | </div> |
| 765 | + <!-- sponsor:start — generated from alegauss.github.io/sponsor.json by |
| 766 | + scripts/sync-sponsor.mjs. Edit the JSON, not this block. Kept as static markup |
| 767 | + on purpose: a runtime fetch would keep the sponsor out of the HTML that crawlers |
| 768 | + and LLMs actually read. --> |
| 769 | + <div class="sponsor"> |
| 770 | + <img class="sponsor-mark" src="viglet/viglet-logo.png" |
| 771 | + alt="Viglet logo" width="42" height="42" loading="lazy" decoding="async"> |
| 772 | + <div class="sponsor-body"> |
| 773 | + <span class="sponsor-label">Sponsored by</span> |
| 774 | + <a class="sponsor-name" href="https://www.viglet.org" target="_blank" rel="noopener">Viglet</a> |
| 775 | + <p> |
| 776 | + Open source search and content tools for organisations with a lot to publish — run on your own servers, with no per-user licence. More at |
| 777 | + <a href="https://www.viglet.org" target="_blank" rel="noopener">viglet.org</a>. |
| 778 | + </p> |
| 779 | + <div class="sponsor-products"> |
| 780 | + <a class="sponsor-product" href="https://turing.viglet.org" target="_blank" rel="noopener"> |
| 781 | + <img src="viglet/turing-logo.png" alt="Viglet Turing ES logo" |
| 782 | + width="28" height="28" loading="lazy" decoding="async"> |
| 783 | + <span> |
| 784 | + <b>Viglet Turing ES</b> |
| 785 | + <small>so visitors find what they came for, with AI answers drawn only from your own content</small> |
| 786 | + </span> |
| 787 | + </a> |
| 788 | + <a class="sponsor-product" href="https://shio.viglet.org" target="_blank" rel="noopener"> |
| 789 | + <img src="viglet/shio-logo.png" alt="Viglet Shio CMS logo" |
| 790 | + width="28" height="28" loading="lazy" decoding="async"> |
| 791 | + <span> |
| 792 | + <b>Viglet Shio CMS</b> |
| 793 | + <small>so a new page goes live the same day, reviewed and approved by your own team</small> |
| 794 | + </span> |
| 795 | + </a> |
| 796 | + </div> |
| 797 | + </div> |
| 798 | + </div> |
| 799 | + <!-- sponsor:end --> |
| 800 | + |
734 | 801 | <p class="disclaimer"> |
735 | 802 | Community open-source project — not affiliated with, endorsed by, or sponsored by OpenAI or GitHub. |
736 | 803 | “OpenAI” and “GPT” are trademarks of OpenAI; commitclerk simply calls the Chat Completions API with |
|
0 commit comments