| scripts | `#A61C4A`, `#4C0519` | `#FDA4AF`, opacity 0.45 | `#FFE4E6` window and prompt strokes | `#FCD34D` dot and cursor | the terminal prompt with its amber cursor |
| xstd | `#1fb6dd`, `#007a99` | `#B3ECFB`, opacity 0.5 | `#007a99` on white | `#d9f4fc` slabs | the pulled-out C block |
| tensor | `#7C3AED`, `#4C1D95` | `#A78BFA`, opacity 0.45 | `#F5F3FF` cube faces, `#4C1D95` lattice | `#F59E0B`, `#00ADD8` | the Go cyan cell on the cube's left face |
## The rules
These bind every icon and every logo in the set. A file that breaks
one is not part of the set, whatever its filename says.
### Canvas
1. One `viewBox="0 0 512 512"` with `width` and `height` of 512, and
`role="img"` with `aria-labelledby="title desc"`.
2. Nothing is drawn outside the badge; no clipping tricks, no overflow.
3. No external references of any kind: no CSS files, no images, no
fonts, no `@import`. The file stands alone.
### Badge and background
4. The badge is one `rect` of 512 by 512 with `rx="112"`, filled by a
vertical two-stop gradient (`x1="0" y1="0" x2="0" y2="1"`), the
lighter stop on top, the deeper stop at the bottom.
5. One hue family per project, and one project per hue: two icons in
the set never share a hue family. The hue carries from the icon to
the logo when a logo arrives.
6. Gradients belong to the badge alone. The motif itself is flat.
### The border
7. Exactly one inner border: a `rect` at `x="1.5" y="1.5"` of 509 by
509 with `rx="110.5"`, `fill="none"`, `stroke-width="3"`.
8. Its colour is a lighter tint of the badge hue at an opacity of 0.4
to 0.6; on a near-black badge a near-background tint at up to 0.9
is the gasm-devkit variant of the same rule.
### The backdrop and the shadow
9. At most one soft radial halo behind the motif, centred, radius at
most 230, peak opacity at most 0.15; or none at all.
10. At most one drop shadow, on the motif group only:
`feDropShadow` with `dy` of 8 to 10, `stdDeviation` of 10 to 12,
a flood colour from the deep end of the badge hue family, opacity
0.35 to 0.5.
### The motif
11. One idea per icon. The motif fills roughly the middle 320 pixels;
outside 96 to 416 on either axis only badge, border and halo live.
12. Flat fills and strokes only. Stroke caps and joins are round, and
stroke widths sit between 5 and 8.
13. Two accent colours at most beside the ink. Prefer one warm and one
cool accent; never a third.
14. Every icon carries one small nod to the project's identity: a
hexagon for IPv6, a Go cyan cell, a pulled-out C block, hand-drawn
mnemonics. One nod, not a second motif.
### Text
15. No font is ever loaded. Lettering is drawn as stroke paths defined
in `defs` and placed with `use`, as the gasm-devkit mnemonics are.
### Metadata and language
16. Every file opens with a `title` and a `desc` carrying `id` values
that the root element references. The title names the project and
its purpose in one line; the desc describes the drawing in one
factual sentence.
17. British English everywhere, and no dash as punctuation: a comma,
a semicolon or a full stop joins the clauses instead.
### Before an icon lands
18. The file is XML-clean and renders without warnings at 512 and at