# 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 - **Stroke-based, not filled**: icons are strokes of width 2 (in grid units) with soft joins and caps. The stroke is rendered in whatever colour the app chooses (typically `theme.fg_text` or `theme.accent`). - **Minimal geometry, not a logo**: universal generic glyphs, not "trademarks". Each one must be recognizable at a glance even at 12×12. - **A bounded set**: enough to cover the bulk of actions and types appearing in any tawasuyu UI. If an app needs one more, it adds it here (not in its own crate) — visual consistency matters more than isolation. ## Catalog | Category | Icons | |------------|-----------------------------------------------------| | Document | `file`, `folder`, `folder_open`, `save`, `open` | | Editing | `plus`, `minus`, `x`, `check`, `edit`, `trash` | | Navigation | `chevron_up`, `chevron_down`, `chevron_left`, `chevron_right`, `home`, `search` | | Status | `info`, `warning`, `error`, `bell` | | System | `settings`, `more` | | Multimedia | `play`, `pause`, `stop`, `skip_*`, `volume*`, `repeat`, `shuffle`, `record`, `equalizer`, `camera`, `gauge` | | Files | `image`, `music`, `film`, `archive`, `code`, `file_text`, `link`, `font` | ## Use ```ignore 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](../README.md).