# Icon System ## Structure ``` icons/ ├── items/ # Item icons (weapons, consumables, materials, etc.) ├── ui/ # UI elements (buttons, arrows, close, menu, etc.) ├── status/ # Status indicators (health, stamina, level, etc.) └── actions/ # Action icons (attack, defend, flee, interact, etc.) ``` ## Icon Specifications ### Format - **Primary:** SVG (vector, scalable, small file size) - **Fallback:** PNG (universal compatibility) - **Avoid:** JPG/JPEG (not suitable for icons with transparency) ### Size - **Standard Icons:** 64x64px - **Large Icons:** 128x128px (for important UI elements) - **Small Icons:** 32x32px (for compact displays) ### Naming Convention - Use kebab-case: `iron-sword.svg`, `health-potion.png` - Be descriptive: `attack-action.svg`, `stamina-icon.svg` - Match item_id when possible: if item_id is "iron_sword", use "iron-sword.svg" ### Color - Use transparent backgrounds - Consistent style across all icons - Consider dark mode compatibility ## Usage in Code Icons are referenced via the `icon_path` field in data structures: ```json { "id": "iron_sword", "name": "Iron Sword", "icon_path": "icons/items/iron-sword.svg", "emoji": "⚔️" // Kept as fallback } ``` ## Migration from Emojis Emojis are kept as fallback for: 1. Backward compatibility 2. Development placeholder 3. Platforms that don't load custom icons The UI will prefer `icon_path` over `emoji` when available.