--- title: "Icons — Visual Assets" description: "UI icon asset catalog — as-built inventory of client/assets/icons/" type: design status: active --- # Icons — Visual Assets UI icons and status indicators. 2D, UI layer only — not part of the D-244 3D in-world pivot (icons render on `CanvasLayer`, not in the 3D scene). ## Generation Approach Hand-authored SVGs, tinted at runtime via `res://shaders/icon_tint.gdshader` (see `client/ui/stance_indicator.gd` for the tint-shader integration pattern). ## Assets 13 SVGs already exist in `client/assets/icons/` — this is the as-built inventory, not a zero-start table. | ID | Filename | Status | Category | Notes | Sprint/Ticket | |----|----------|--------|----------|-------|---------------| | ICO-001 | `icon_stance_walk.svg` | final | Stance | Wired into `client/ui/stance_indicator.gd` (`StanceIndicator` icon map), tinted via `icon_tint.gdshader`. | — | | ICO-002 | `icon_stance_sprint.svg` | final | Stance | Wired into `stance_indicator.gd`. | — | | ICO-003 | `icon_stance_careful.svg` | final | Stance | Wired into `stance_indicator.gd`. | — | | ICO-004 | `icon_stance_crouch.svg` | final | Stance | Wired into `stance_indicator.gd`. | — | | ICO-005 | `icon_action_examine.svg` | placeholder | Action | SVG exists; not yet wired into a script/scene. | — | | ICO-006 | `icon_action_follow.svg` | placeholder | Action | SVG exists; not yet wired into a script/scene. | — | | ICO-007 | `icon_action_observe.svg` | placeholder | Action | SVG exists; not yet wired into a script/scene. | — | | ICO-008 | `icon_action_talk.svg` | placeholder | Action | SVG exists; not yet wired into a script/scene. | — | | ICO-009 | `icon_item_access_token.svg` | placeholder | Item | SVG exists; not yet wired into a script/scene. | — | | ICO-010 | `icon_item_comm_log.svg` | placeholder | Item | SVG exists; not yet wired into a script/scene. | — | | ICO-011 | `icon_item_manifest.svg` | placeholder | Item | SVG exists; not yet wired into a script/scene. | — | | ICO-012 | `icon_status_health.svg` | placeholder | Status | SVG exists; not yet wired into a script/scene. | — | | ICO-013 | `icon_status_perception.svg` | placeholder | Status | SVG exists; not yet wired into a script/scene. | — | `Status` here follows the shared vocab (`docs/assets/README.md`): `final` = shipped and wired into a consuming script/scene; `placeholder` = asset exists on disk but has no confirmed runtime consumer yet. If a teammate wires one of the placeholder icons into a script, flip its row to `final` and note the consumer, matching the `icon_stance_*` rows above. ## Cross-References - `client/assets/icons/` — the SVG files this table catalogs - `client/ui/stance_indicator.gd` — the one confirmed consumer (stance icons) - `res://shaders/icon_tint.gdshader` — runtime tint shader