branding: four skeuomorphic wallpapers; the old art goes

tools/wallpapers.py writes them from the Shift geometry, so they follow
the mark: Graphite (the default), Strata, Porcelain (light) and Dial.
Each is a 3840x2160 SVG with a JPEG render beside it. JPEG is the right
format for gradients under grain, and the branding README now says why
this is the one exception to its no-JPEG rule.

Removed: wallpaper1 (drawn flat, and built on the retired Guru mark),
the site's unused copy of it, and the two superseded wordmark PNGs. The
root README showed one of those, and now shows Graphite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
Nexoniarz 2026-10-23 15:51:29 +02:00
commit 1fd73740f8
16 changed files with 680 additions and 5452 deletions

View file

@ -0,0 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3840 2160" width="3840" height="2160">
<title>SchOS — Porcelain</title>
<desc>The light one: Shift as glazed porcelain on soft paper, with the accent spent on the top slab alone.</desc>
<defs>
<radialGradient id="paper" cx="0.3" cy="0.2" r="1.1">
<stop offset="0" stop-color="#F6F4EF"/>
<stop offset="0.6" stop-color="#E6E2DA"/>
<stop offset="1" stop-color="#D3CEC4"/>
</radialGradient>
<linearGradient id="pt" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="1" stop-color="#ECE8E0"/></linearGradient>
<linearGradient id="pf" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#D9D3C8"/><stop offset="1" stop-color="#C4BDB0"/></linearGradient>
<linearGradient id="pw" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#BDB5A7"/><stop offset="1" stop-color="#A9A092"/></linearGradient>
<linearGradient id="pvt" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#C9BBFF"/><stop offset="0.6" stop-color="#9479FF"/><stop offset="1" stop-color="#7C5CFF"/></linearGradient>
<linearGradient id="pvf" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#6E50E8"/><stop offset="1" stop-color="#5236C8"/></linearGradient>
<linearGradient id="pvw" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#5338BC"/><stop offset="1" stop-color="#40289A"/></linearGradient>
<filter id="lift" x="-30%" y="-30%" width="160%" height="170%">
<feGaussianBlur in="SourceAlpha" stdDeviation="4"/>
<feOffset dx="5" dy="9" result="o"/>
<feComponentTransfer><feFuncA type="linear" slope="0.28"/></feComponentTransfer>
<feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="bevel" x="-10%" y="-10%" width="120%" height="120%">
<feGaussianBlur in="SourceAlpha" stdDeviation="0.9" result="h"/>
<feSpecularLighting in="h" surfaceScale="2.5" specularConstant="0.7" specularExponent="18" lighting-color="#FFFFFF" result="s">
<feDistantLight azimuth="225" elevation="42"/>
</feSpecularLighting>
<feComposite in="s" in2="SourceAlpha" operator="in" result="sa"/>
<feComposite in="SourceGraphic" in2="sa" operator="arithmetic" k2="1" k3="0.6"/>
</filter>
<radialGradient id="accent" cx="0.5" cy="0.5" r="0.5">
<stop offset="0" stop-color="#7C5CFF" stop-opacity="0.22"/>
<stop offset="1" stop-color="#7C5CFF" stop-opacity="0"/>
</radialGradient>
<filter id="grain" x="0" y="0" width="100%" height="100%">
<feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="2" stitchTiles="stitch"/>
<feColorMatrix type="saturate" values="0"/>
<feComponentTransfer><feFuncA type="table" tableValues="0 0.06"/></feComponentTransfer>
</filter>
</defs>
<rect width="3840" height="2160" fill="url(#paper)"/>
<ellipse cx="2040.0" cy="1500.0" rx="1100" ry="260" fill="url(#accent)"/>
<g transform="translate(1266.0 432.0) scale(6.0)" filter="url(#lift)">
<g filter="url(#bevel)"><path d="M54 126 L158 126 L128 156 L24 156 Z" fill="url(#pt)"/><path d="M24 156 L128 156 L128 167 L24 167 Z" fill="url(#pf)"/><path d="M158 126 L158 137 L128 167 L128 156 Z" fill="url(#pw)"/><path d="M72 84 L176 84 L146 114 L42 114 Z" fill="url(#pt)"/><path d="M42 114 L146 114 L146 125 L42 125 Z" fill="url(#pf)"/><path d="M176 84 L176 95 L146 125 L146 114 Z" fill="url(#pw)"/><path d="M90 42 L194 42 L164 72 L60 72 Z" fill="url(#pvt)"/><path d="M60 72 L164 72 L164 83 L60 83 Z" fill="url(#pvf)"/><path d="M194 42 L194 53 L164 83 L164 72 Z" fill="url(#pvw)"/></g>
</g>
<rect width="3840" height="2160" filter="url(#grain)"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB