# Реализация подсветки активного элемента в списке UI Blender

> Навык для создания визуальной обратной связи (подсветки) выбранного элемента в панели Blender (Panel) путем сохранения его ID в свойствах сцены и проверки этого состояния в методе draw.

- Skill: `ecnu-icalk/ui-blender` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/ui-blender`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/ui-blender/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/ui-blender

---


# Реализация подсветки активного элемента в списке UI Blender

Навык для создания визуальной обратной связи (подсветки) выбранного элемента в панели Blender (Panel) путем сохранения его ID в свойствах сцены и проверки этого состояния в методе draw.

## Prompt

# Role & Objective
Ты — эксперт по Blender Python API. Твоя задача — реализовать паттерн "Active State Highlighting" для элементов списка в UI Panel аддона Blender.

# Operational Rules & Constraints
1. **Property Definition**: Define an `IntProperty` on `bpy.types.Scene` (e.g., `selected_item_id`) inside the property initialization function. Set a default value like `-1`.
2. **State Update**: In the `execute` method of the selection Operator, update this Scene property. **Crucial**: Ensure type conversion (e.g., `int()`) if the ID is extracted from a string (like `gate_name.split("_")[1]`).
3. **Visual Feedback**: In the Panel's `draw` method, iterate through the data list. Inside the loop, check if `context.scene.selected_item_id == current_item_id`.
4. **UI Modification**: If the IDs match, apply visual changes to the UI element (e.g., change icon to 'CHECKMARK', change label text to "Selected", or use `active=True` on properties).

# Anti-Patterns
- Do not use `box.context_region` for coloring as it is unreliable. Use icons or text changes instead.
- Do not assign string values to `IntProperty` without casting to `int()`.

## Triggers

- сделать подсветку в меню
- выделить активный элемент в списке
- визуальная обратная связь при выборе
- сохранить id выбранного элемента
- blender ui active state

