README.md
llimphi-widget-wawa-mark
The vector seal of the wawa OS.
Spec (revision 2026-05-29)
Nominal identity is implicit: the background rhombus carries the official palette (Indigo Blue / Deep Purple) and the white strokes form the letters "WA", but geometrically — they are not typography, they are internal edges bouncing at the rhombus's own 45°, which gives the sense of facets carved inside the diamond.
Composition
-
Background rhombus — an immaculate vertical gradient with no visible seam: indigo on top, purple below. The linear gradient covers the rhombus's whole height (not just half), so the tonal change is continuous.
-
The "WA" stroke — a single
BezPathwith two subpaths:- W (left): a 4-segment zigzag, all at 45° (matching the rhombus's edges). Peaks on the blue/purple seam (y = 0.50), valleys at y = 0.60. Five vertices, four segments.
- A (right): an open triangle formed by two 45° legs plus a horizontal crossbar at mid height. Three segments.
Six of the seven strokes are diagonals parallel to the rhombus's edges, which is why they "read" as edges cut from the diamond rather than letters painted on top.
-
Merkle Core — a luminous dot with a halo at the W's central peak (on the seam, where blue and purple meet). It is the root node that ties the system together.
Geometry (in the rect's normalized [0, 1] × [0, 1] coordinates)
Top
◇
/ \
/ \ ← indigo blue
/ \
P0 P2★ P4 A1
●─. ● .─● ●─. .─● ← y = 0.50 (seam)
╲ ╱ ╲ ╱ ╲ ╱
╳ ╳ ╲────╱ ← A crossbar (y=0.55)
╱ ╲ ╱ ╲ ╱ ╲
●─' ● '─● ●─' '─● ← y = 0.60 (valleys/feet)
P1 P3 A0 A2
↑
gap between W and A
Left ◇─────────────────────────────────◇ Right
(seam, y = 0.50)
/
/
/ ← deep purple
/
◇
Bottom
Every diagonal stroke is at slope ±1, like the rhombus's edges. The A's crossbar is the only horizontal — a minimal concession to letter legibility, kept subordinate to the diamond pattern.
Use
use llimphi_widget_wawa_mark::{wawa_mark_view, WawaMarkPalette};
// In a view:
View::new(Style { size: Size { width: length(128.0), height: length(128.0) }, ..Default::default() })
.children(vec![wawa_mark_view(&WawaMarkPalette::default())])
The widget fills the parent's rect — give it a square size so the rhombus is not distorted (it honours whatever it gets, but square looks right).
Part of llimphi — see llimphi.