tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Sutichaykuna

⎇ main widgets/wawa-mark/README.md Markdown · 78 siq'ikuna · 3.1 KB Ñawpa willay ch'uya

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-widget-wawa-mark
2
3The vector seal of the wawa OS.
4
5## Spec (revision 2026-05-29)
6
7Nominal identity is **implicit**: the background rhombus carries the official
8palette (Indigo Blue / Deep Purple) and the white strokes form the letters
9**"WA"**, but geometrically — they are not typography, they are internal edges
10bouncing at the rhombus's own 45°, which gives the sense of facets carved inside
11the diamond.
12
13### Composition
14
151. **Background rhombus** — an immaculate vertical gradient with no visible seam:
16   indigo on top, purple below. The linear gradient covers the rhombus's whole
17   height (not just half), so the tonal change is continuous.
182. **The "WA" stroke** — a single `BezPath` with two subpaths:
19   - **W** (left): a 4-segment zigzag, all at 45° (matching the rhombus's edges).
20     Peaks on the blue/purple seam (y = 0.50), valleys at y = 0.60. Five
21     vertices, four segments.
22   - **A** (right): an open triangle formed by two 45° legs plus a horizontal
23     crossbar at mid height. Three segments.
24
25   Six of the seven strokes are diagonals parallel to the rhombus's edges, which
26   is why they "read" as edges cut from the diamond rather than letters painted
27   on top.
283. **Merkle Core** — a luminous dot with a halo at the W's central peak (on the
29   seam, where blue and purple meet). It is the root node that ties the system
30   together.
31
32### Geometry (in the rect's normalized `[0, 1] × [0, 1]` coordinates)
33
34```text
35                           Top
36                            ◇
37                           / \
38                          /   \              ← indigo blue
39                         /     \
40               P0    P2★    P4 A1
41                 ●─.   ●  .─●  ●─.  .─●     ← y = 0.50 (seam)
42                    ╲ ╱ ╲ ╱     ╲      ╱
43                     ╳   ╳       ╲────╱     ← A crossbar (y=0.55)
44                    ╱ ╲ ╱ ╲     ╱      ╲
45                 ●─'   ●  '─●  ●─'    '─●  ← y = 0.60 (valleys/feet)
46               P1    P3    A0    A2
47                         ↑
48                         gap between W and A
49    Left  ◇─────────────────────────────────◇  Right
50                         (seam, y = 0.50)
51                         /
52                        /
53                       /                     ← deep purple
54                      /
55                     ◇
56                   Bottom
57```
58
59Every diagonal stroke is at slope ±1, like the rhombus's edges. The A's crossbar
60is the only horizontal — a minimal concession to letter legibility, kept
61subordinate to the diamond pattern.
62
63## Use
64
65```ignore
66use llimphi_widget_wawa_mark::{wawa_mark_view, WawaMarkPalette};
67
68// In a view:
69View::new(Style { size: Size { width: length(128.0), height: length(128.0) }, ..Default::default() })
70    .children(vec![wawa_mark_view(&WawaMarkPalette::default())])
71```
72
73The widget fills the parent's rect — give it a square size so the rhombus is not
74distorted (it honours whatever it gets, but square looks right).
75
76---
77
78Part of **llimphi** — see [llimphi](../../README.md).

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

  1. 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.

  2. The "WA" stroke — a single BezPath with 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.

  3. 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.