docs: a branding folder, and the three marks are not interchangeable
Shift is the logo, Guru is the icon, SchCotie is the mascot, and the difference
between them is not stylistic. An icon works once, at one size, in one state. A
mascot has to be able to *do* things -- confused, pleased, asleep, seen from
behind -- which is why it costs more and is drawn last. Written down because
this is exactly the kind of decision that gets re-derived badly.
Assets/ becomes docs/branding/, which also fixes two things:
* Filenames had spaces in them, so every reference needed quoting. They are
lowercase and hyphenated now.
* Assets/ held hand-written SVG and generated PNG in one directory, which is
the one rule docs/guides/layout.md states.
The guide records what was previously only in people's heads:
* The constraint everything answers to -- include/logo.h is a 128x128
single-channel coverage mask, so a mark has to survive as a solid shape in
one colour and be recognisable at 24 px. Colour is the last decision, never
the first.
* Guru's purple is load-bearing. PSOGM_BG #4B1D9A is deliberately not the
accent #7C5CFF, and theme.h's rule is that the full-bleed purple belongs
entirely to failure. If Guru appears in accent violet on a sticker, the deep
purple stops meaning "the machine stopped" -- and it is the only colour in
the system that means anything.
* Why shift-mask.svg is a separate file from shift.svg. mklogo.py reads ink as
(255 - luminance) * alpha, so tones survive as coverage and the relationship
inverts: darkest here is brightest on screen. Copying the violet fills would
light the object from below.
* Why a raster is committed beside its SVG. inkscape is not a build
prerequisite, so requiring a vector rasteriser would break the build on most
hosts for a file that changes about once a year.
* That the BSD daemon is copyrighted and SchCotie must be drawn from the
concept rather than from Beastie. A daemon is a Greek daimon and a Unix
background process; neither is ownable. The pitchfork, the sneakers and that
face are.
Format rule: SVG, or PNG at high resolution with no lossy compression, nothing
else. SVG is the source of truth for every mark and a raster is generated from
it, never edited.
include/logo.h regenerates byte-identical from the new path -- only the source
comment differs. The two old wordmark SVGs were deleted outside this session and
are left deleted; their PNGs are kept as superseded-*.png for reference.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ7Qx8E1q1M1bbCq8QLHS2
This commit is contained in:
parent
7c8cf51941
commit
d73985633b
15 changed files with 196 additions and 277 deletions
29
docs/branding/shift-mask.svg
Normal file
29
docs/branding/shift-mask.svg
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>SchOS — Shift, as an ink mask</title>
|
||||
<desc>SAME GEOMETRY AS "shift.svg". Only the fills differ, and they are
|
||||
greys because they are not colours: tools/python/mklogo.py reads ink as
|
||||
(255 - luminance) * alpha, so what is stored is coverage. The kernel then
|
||||
composites that coverage in whatever include/theme.h says the accent is.
|
||||
|
||||
The greys run DARK AT THE TOP because the relationship inverts: darkest here
|
||||
is most ink, which the kernel draws brightest. Copying the violet fills from
|
||||
the colour mark would light the object from below.
|
||||
|
||||
Two files with one geometry is a thing that can drift. If either is edited,
|
||||
edit both -- or replace this pair with one file and regenerate the other.</desc>
|
||||
|
||||
<!-- bottom slab: least ink, so the kernel draws it dimmest -->
|
||||
<path fill="#6E6E6E" d="M54 126 L158 126 L128 156 L24 156 Z"/>
|
||||
<path fill="#888888" d="M24 156 L128 156 L128 167 L24 167 Z"/>
|
||||
<path fill="#949494" d="M158 126 L158 137 L128 167 L128 156 Z"/>
|
||||
|
||||
<!-- middle -->
|
||||
<path fill="#3A3A3A" d="M72 84 L176 84 L146 114 L42 114 Z"/>
|
||||
<path fill="#5C5C5C" d="M42 114 L146 114 L146 125 L42 125 Z"/>
|
||||
<path fill="#6A6A6A" d="M176 84 L176 95 L146 125 L146 114 Z"/>
|
||||
|
||||
<!-- top slab: most ink, so the kernel draws it brightest -->
|
||||
<path fill="#0B0B0B" d="M90 42 L194 42 L164 72 L60 72 Z"/>
|
||||
<path fill="#2A2A2A" d="M60 72 L164 72 L164 83 L60 83 Z"/>
|
||||
<path fill="#3A3A3A" d="M194 42 L194 53 L164 83 L164 72 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
Loading…
Reference in a new issue