The marks are now drawn the way Niveus draws its keys: one light from the upper left, gloss on the faces that catch it, a specular line on the edges that face it, and soft contact shadows. - Shift: shaded slabs, each casting onto the one below. shift-mask.svg is untouched, so the kernel's logo.h coverage mask is unchanged. - Uberblock: bevelled slots in a groove; the newest slot and the root glow. - USB stick: moulded body, steel connector, a lit activity LED. - Pride flag: cloth folds and a hem over the flag's own colours. The pages use the components the new Niveus added: both terminals are .nv-window frames, the origin and first-boot sequences are .nv-steps, the numbers are a .nv-stat-group, and each feature card has an .nv-tile glyph. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
107 lines
5.9 KiB
XML
107 lines
5.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
|
<title>SchFS — Uberblock</title>
|
|
<desc>The uberblock ring: slots written round-robin, one of them newest.
|
|
Mount takes the highest-numbered slot that validates, which is the whole
|
|
consistency argument for the format.
|
|
|
|
Every slot is an explicit annular sector. An earlier version drew them with
|
|
stroke-dasharray on a circle, which is shorter to write and wrong in two ways:
|
|
a dash centred on the path start straddles the closure and renders as TWO
|
|
pieces with a seam between them, and the normal slot underneath the marked one
|
|
still drew, showing through. Neither can happen here -- the marked slot is one
|
|
shape and the slot it replaces is simply not emitted.
|
|
|
|
12 slots at 20 degrees of ink and 10 of gap, which closes at 360 exactly. The
|
|
marked slot is index 1, counting clockwise from the top.
|
|
|
|
It is marked twice over: it carries the accent, the same colour as the root at
|
|
the centre, and it reaches outward past the ring while sharing the inner edge
|
|
with every other slot. The colour is the reading on screen; the size is what
|
|
survives include/gfx/logo.h, which is a single coverage channel and keeps no
|
|
colour at all.
|
|
|
|
Drawn as Niveus draws a dial: the slots are raised keys set into a groove
|
|
cut into the surface, bevelled by one light from the upper left, and the
|
|
newest slot and the root are lit from inside. The geometry is unchanged.
|
|
|
|
Stands alone, with no reference to SchOS, as projects/schfs-linux/README.md
|
|
requires.</desc>
|
|
|
|
<defs>
|
|
<!-- one light for the whole dial, so every slot is lit from the same side -->
|
|
<linearGradient id="slot" gradientUnits="userSpaceOnUse" x1="20" y1="20" x2="180" y2="180">
|
|
<stop offset="0" stop-color="#5A47B0"/>
|
|
<stop offset="0.5" stop-color="#3C2E85"/>
|
|
<stop offset="1" stop-color="#2A2066"/>
|
|
</linearGradient>
|
|
<linearGradient id="lit" gradientUnits="userSpaceOnUse" x1="120" y1="10" x2="160" y2="56">
|
|
<stop offset="0" stop-color="#B09CFF"/>
|
|
<stop offset="0.5" stop-color="#7C5CFF"/>
|
|
<stop offset="1" stop-color="#5A3BE0"/>
|
|
</linearGradient>
|
|
<radialGradient id="root" cx="0.38" cy="0.34" r="0.7">
|
|
<stop offset="0" stop-color="#E4DCFF"/>
|
|
<stop offset="0.3" stop-color="#9F86FF"/>
|
|
<stop offset="0.75" stop-color="#7C5CFF"/>
|
|
<stop offset="1" stop-color="#4E32C8"/>
|
|
</radialGradient>
|
|
<radialGradient id="groove" cx="0.5" cy="0.5" r="0.5">
|
|
<stop offset="0.5" stop-color="#0E0B1E" stop-opacity="0"/>
|
|
<stop offset="0.62" stop-color="#0E0B1E" stop-opacity="0.55"/>
|
|
<stop offset="0.92" stop-color="#0E0B1E" stop-opacity="0.55"/>
|
|
<stop offset="1" stop-color="#0E0B1E" stop-opacity="0"/>
|
|
</radialGradient>
|
|
<radialGradient id="halo" cx="0.5" cy="0.5" r="0.5">
|
|
<stop offset="0" stop-color="#9F86FF" stop-opacity="0.55"/>
|
|
<stop offset="1" stop-color="#7C5CFF" stop-opacity="0"/>
|
|
</radialGradient>
|
|
|
|
<!-- The bevel: the shape's own alpha, blurred into a height map and lit
|
|
from the upper left, added back over the fill. -->
|
|
<filter id="bevel" x="-10%" y="-10%" width="120%" height="120%">
|
|
<feGaussianBlur in="SourceAlpha" stdDeviation="1.6" result="h"/>
|
|
<feSpecularLighting in="h" surfaceScale="3" specularConstant="0.85"
|
|
specularExponent="16" lighting-color="#FFFFFF" result="s">
|
|
<feDistantLight azimuth="225" elevation="40"/>
|
|
</feSpecularLighting>
|
|
<feComposite in="s" in2="SourceAlpha" operator="in" result="sa"/>
|
|
<feComposite in="SourceGraphic" in2="sa" operator="arithmetic" k2="1" k3="0.55"/>
|
|
</filter>
|
|
<filter id="drop" x="-20%" y="-20%" width="140%" height="140%">
|
|
<feGaussianBlur in="SourceAlpha" stdDeviation="2.5"/>
|
|
<feOffset dx="1.5" dy="2.5" result="o"/>
|
|
<feComponentTransfer><feFuncA type="linear" slope="0.5"/></feComponentTransfer>
|
|
<feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
</defs>
|
|
|
|
<!-- the groove the slots sit in -->
|
|
<circle cx="100" cy="100" r="86" fill="url(#groove)"/>
|
|
|
|
<g filter="url(#drop)">
|
|
<g fill="url(#slot)" filter="url(#bevel)">
|
|
<path d="M85.93 20.23 A81.00 81.00 0 0 1 114.07 20.23 L110.25 41.90 A59.00 59.00 0 0 0 89.75 41.90 Z"/>
|
|
<path d="M162.05 47.93 A81.00 81.00 0 0 1 176.12 72.30 L155.44 79.82 A59.00 59.00 0 0 0 145.20 62.08 Z"/>
|
|
<path d="M179.77 85.93 A81.00 81.00 0 0 1 179.77 114.07 L158.10 110.25 A59.00 59.00 0 0 0 158.10 89.75 Z"/>
|
|
<path d="M176.12 127.70 A81.00 81.00 0 0 1 162.05 152.07 L145.20 137.92 A59.00 59.00 0 0 0 155.44 120.18 Z"/>
|
|
<path d="M152.07 162.05 A81.00 81.00 0 0 1 127.70 176.12 L120.18 155.44 A59.00 59.00 0 0 0 137.92 145.20 Z"/>
|
|
<path d="M114.07 179.77 A81.00 81.00 0 0 1 85.93 179.77 L89.75 158.10 A59.00 59.00 0 0 0 110.25 158.10 Z"/>
|
|
<path d="M72.30 176.12 A81.00 81.00 0 0 1 47.93 162.05 L62.08 145.20 A59.00 59.00 0 0 0 79.82 155.44 Z"/>
|
|
<path d="M37.95 152.07 A81.00 81.00 0 0 1 23.88 127.70 L44.56 120.18 A59.00 59.00 0 0 0 54.80 137.92 Z"/>
|
|
<path d="M20.23 114.07 A81.00 81.00 0 0 1 20.23 85.93 L41.90 89.75 A59.00 59.00 0 0 0 41.90 110.25 Z"/>
|
|
<path d="M23.88 72.30 A81.00 81.00 0 0 1 37.95 47.93 L54.80 62.08 A59.00 59.00 0 0 0 44.56 79.82 Z"/>
|
|
<path d="M47.93 37.95 A81.00 81.00 0 0 1 72.30 23.88 L79.82 44.56 A59.00 59.00 0 0 0 62.08 54.80 Z"/>
|
|
</g>
|
|
</g>
|
|
|
|
<!-- the newest slot and the root it names, lit from inside -->
|
|
<circle cx="141" cy="36" r="32" fill="url(#halo)"/>
|
|
<circle cx="100" cy="100" r="34" fill="url(#halo)"/>
|
|
<g filter="url(#drop)">
|
|
<g filter="url(#bevel)">
|
|
<path fill="url(#lit)" d="M132.15 11.67 A94.00 94.00 0 0 1 160.42 27.99 L137.92 54.80 A59.00 59.00 0 0 0 120.18 44.56 Z"/>
|
|
<circle cx="100" cy="100" r="20" fill="url(#root)"/>
|
|
</g>
|
|
</g>
|
|
<ellipse cx="93" cy="92" rx="6.5" ry="4" fill="#FFFFFF" opacity="0.55"/>
|
|
</svg>
|