tawasuyu

tawasuyu/llimphi

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

Rust 229TOML 101Markdown 82Shell 24052 Definitions

⎇ c5a232cf24788ab75a850ffe81eca5a7af50e2f8 llimphi-icons/README.md Markdown · 50 lines · 2.1 KB History raw

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-icons
2
3The canonical set of vector icons for tawasuyu apps.
4
5Every icon is a pure function returning a `BezPath` defined on a logical grid of
6**24×24 units**. The renderer scales it to whatever rect it gets, so the same
7icon serves at 12px (in a list row) and at 64px (in a hero card) with no loss of
8sharpness — it is vector, not bitmap.
9
10## Design
11
12- **Stroke-based, not filled**: icons are strokes of width 2 (in grid units) with
13  soft joins and caps. The stroke is rendered in whatever colour the app chooses
14  (typically `theme.fg_text` or `theme.accent`).
15- **Minimal geometry, not a logo**: universal generic glyphs, not "trademarks".
16  Each one must be recognizable at a glance even at 12×12.
17- **A bounded set**: enough to cover the bulk of actions and types appearing in
18  any tawasuyu UI. If an app needs one more, it adds it here (not in its own
19  crate) — visual consistency matters more than isolation.
20
21## Catalog
22
23| Category   | Icons                                               |
24|------------|-----------------------------------------------------|
25| Document   | `file`, `folder`, `folder_open`, `save`, `open`      |
26| Editing    | `plus`, `minus`, `x`, `check`, `edit`, `trash`       |
27| Navigation | `chevron_up`, `chevron_down`, `chevron_left`, `chevron_right`, `home`, `search` |
28| Status     | `info`, `warning`, `error`, `bell`                   |
29| System     | `settings`, `more`                                   |
30| Multimedia | `play`, `pause`, `stop`, `skip_*`, `volume*`, `repeat`, `shuffle`, `record`, `equalizer`, `camera`, `gauge` |
31| Files      | `image`, `music`, `film`, `archive`, `code`, `file_text`, `link`, `font` |
32
33## Use
34
35```ignore
36use llimphi_icons::{Icon, icon_view};
37
38// A button with the "save" icon:
39let btn = View::new(style)
40    .fill(palette.bg_button)
41    .children(vec![icon_view(Icon::Save, palette.fg_text, 1.6)]);
42```
43
44The `stroke_width` parameter (3rd argument of `icon_view`) is in grid units
45(24×24). `1.6` is the harmonious default; `2.0` for emphasis; `1.2` for icons
46next to small type.
47
48---
49
50Part of **llimphi** — see [llimphi](../README.md).

README.md

llimphi-icons

The canonical set of vector icons for tawasuyu apps.

Every icon is a pure function returning a BezPath defined on a logical grid of 24×24 units. The renderer scales it to whatever rect it gets, so the same icon serves at 12px (in a list row) and at 64px (in a hero card) with no loss of sharpness — it is vector, not bitmap.

Design

Catalog

CategoryIcons
Documentfile, folder, folder_open, save, open
Editingplus, minus, x, check, edit, trash
Navigationchevron_up, chevron_down, chevron_left, chevron_right, home, search
Statusinfo, warning, error, bell
Systemsettings, more
Multimediaplay, pause, stop, skip_*, volume*, repeat, shuffle, record, equalizer, camera, gauge
Filesimage, music, film, archive, code, file_text, link, font

Use

use llimphi_icons::{Icon, icon_view};

// A button with the "save" icon:
let btn = View::new(style)
    .fill(palette.bg_button)
    .children(vec![icon_view(Icon::Save, palette.fg_text, 1.6)]);

The stroke_width parameter (3rd argument of icon_view) is in grid units (24×24). 1.6 is the harmonious default; 2.0 for emphasis; 1.2 for icons next to small type.


Part of llimphi — see llimphi.