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/LEEME.md Markdown · 77 siq'ikuna · 3.2 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
3*Read this in English: [README.md](README.md).*
4
5Sello vectorial del SO wawa.
6
7## Spec (revisión 2026-05-29)
8
9Identidad nominal **implícita**: el rombo de fondo lleva la paleta
10oficial (Azul Índigo / Púrpura Profundo) y los trazos blancos forman
11las letras **"WA"** pero geométricamente — no son tipografía, son
12aristas internas que rebotan en los mismos 45° del rombo, así dan
13sensación de facetas talladas dentro del diamante.
14
15### Composición
16
171. **Rombo de fondo** — degradado vertical inmaculado, sin sutura
18   visible: índigo arriba, púrpura abajo. El degradado lineal cubre
19   toda la altura del rombo (no sólo la mitad), de modo que el cambio
20   de tono es continuo.
212. **Trazo "WA"** — un único `BezPath` con dos subtrazos:
22   - **W** (izquierda): zigzag de 4 segmentos, todos a 45° (matching
23     las aristas del rombo). Picos en la sutura azul/púrpura
24     (y = 0.50), valles en y = 0.60. Cinco vértices, cuatro segmentos.
25   - **A** (derecha): triángulo abierto formado por dos legs a 45°
26     + un crossbar horizontal a mitad de altura. Tres segmentos.
27   Las strokes diagonales (6 de las 7) son paralelas a las aristas
28   del rombo, por eso "leen" como filos cortados del diamante en vez
29   de letras pintadas encima.
303. **Merkle Core** — punto luminoso con halo en el pico central de
31   la W (sobre la sutura, donde azul y púrpura se encuentran). Es el
32   nodo raíz que amarra el sistema.
33
34### Geometría (en coords normalizadas `[0, 1] × [0, 1]` del rect)
35```text
36                           Top
37                            ◇
38                           / \
39                          /   \              ← azul índigo
40                         /     \
41               P0    P2★    P4 A1
42                 ●─.   ●  .─●  ●─.  .─●     ← y = 0.50 (sutura)
43                    ╲ ╱ ╲ ╱     ╲      ╱
44                     ╳   ╳       ╲────╱     ← crossbar A (y=0.55)
45                    ╱ ╲ ╱ ╲     ╱      ╲
46                 ●─'   ●  '─●  ●─'    '─●  ← y = 0.60 (valles/pies)
47               P1    P3    A0    A2
48                         ↑
49                         gap entre W y A
50    Left  ◇─────────────────────────────────◇  Right
51                         (sutura, y = 0.50)
52                         /
53                        /
54                       /                     ← púrpura profundo
55                      /
56                     ◇
57                   Bottom
58```
59Las strokes diagonales todas a slope ±1, igual que las aristas del
60rombo. El crossbar de la A es la única horizontal — concesión mínima
61a la legibilidad de la letra, queda subordinado al patrón diamante.
62
63## Uso
64```ignore
65use llimphi_widget_wawa_mark::{wawa_mark_view, WawaMarkPalette};
66
67// En un view:
68View::new(Style { size: Size { width: length(128.0), height: length(128.0) }, ..Default::default() })
69    .children(vec![wawa_mark_view(&WawaMarkPalette::default())])
70```
71El widget rellena el rect del padre — pasarle un tamaño cuadrado para
72que el rombo no se distorsione (lo respeta igual, pero queda mejor
73cuadrado).
74
75---
76
77Parte de **llimphi** — ver [llimphi](../../LEEME.md).

LEEME.md

llimphi-widget-wawa-mark

Read this in English: README.md.

Sello vectorial del SO wawa.

Spec (revisión 2026-05-29)

Identidad nominal implícita: el rombo de fondo lleva la paleta oficial (Azul Índigo / Púrpura Profundo) y los trazos blancos forman las letras "WA" pero geométricamente — no son tipografía, son aristas internas que rebotan en los mismos 45° del rombo, así dan sensación de facetas talladas dentro del diamante.

Composición

  1. Rombo de fondo — degradado vertical inmaculado, sin sutura visible: índigo arriba, púrpura abajo. El degradado lineal cubre toda la altura del rombo (no sólo la mitad), de modo que el cambio de tono es continuo.
  2. Trazo "WA" — un único BezPath con dos subtrazos:
    • W (izquierda): zigzag de 4 segmentos, todos a 45° (matching las aristas del rombo). Picos en la sutura azul/púrpura (y = 0.50), valles en y = 0.60. Cinco vértices, cuatro segmentos.
    • A (derecha): triángulo abierto formado por dos legs a 45°
      • un crossbar horizontal a mitad de altura. Tres segmentos. Las strokes diagonales (6 de las 7) son paralelas a las aristas del rombo, por eso "leen" como filos cortados del diamante en vez de letras pintadas encima.
  3. Merkle Core — punto luminoso con halo en el pico central de la W (sobre la sutura, donde azul y púrpura se encuentran). Es el nodo raíz que amarra el sistema.

Geometría (en coords normalizadas [0, 1] × [0, 1] del rect)

                           Top
                            ◇
                           / \
                          /   \              ← azul índigo
                         /     \
               P0    P2★    P4 A1
                 ●─.   ●  .─●  ●─.  .─●     ← y = 0.50 (sutura)
                    ╲ ╱ ╲ ╱     ╲      ╱
                     ╳   ╳       ╲────╱     ← crossbar A (y=0.55)
                    ╱ ╲ ╱ ╲     ╱      ╲
                 ●─'   ●  '─●  ●─'    '─●  ← y = 0.60 (valles/pies)
               P1    P3    A0    A2
                         ↑
                         gap entre W y A
    Left  ◇─────────────────────────────────◇  Right
                         (sutura, y = 0.50)
                         /
                        /
                       /                     ← púrpura profundo
                      /
                     ◇
                   Bottom

Las strokes diagonales todas a slope ±1, igual que las aristas del rombo. El crossbar de la A es la única horizontal — concesión mínima a la legibilidad de la letra, queda subordinado al patrón diamante.

Uso

use llimphi_widget_wawa_mark::{wawa_mark_view, WawaMarkPalette};

// En un view:
View::new(Style { size: Size { width: length(128.0), height: length(128.0) }, ..Default::default() })
    .children(vec![wawa_mark_view(&WawaMarkPalette::default())])

El widget rellena el rect del padre — pasarle un tamaño cuadrado para que el rombo no se distorsione (lo respeta igual, pero queda mejor cuadrado).


Parte de llimphi — ver llimphi.