markdowndeeb25a2 | 1 | <!-- English translation of adr/0117-ide-skia-kit.md. Canonical Russian: ../../adr/0117-ide-skia-kit.md --> |
| 2 | |
| 3 | # ADR 0117: SkiaKit - reusable Skia IDE primitives |
| 4 | |
| 5 | **Status:** Accepted · Implemented |
| 6 | **Date:** 2026-05-17 |
| 7 | |
| 8 | ## Related ADRs |
| 9 | |
| 10 | | ADR | Role | |
| 11 | |-----|------| |
| 12 | | [0055](0055-skia-instrument-composition-pipeline.md) | Pipeline of cockpit tools (do not mix with SkiaKit) | |
| 13 | | [0057](0057-chat-surface-pipeline-adoption.md) | First consumer - chat surface | |
| 14 | | [0064](0064-deck-primitives-visual-language-render-layer-and-palette.md) | PrimitivesKit cockpits vs IDE | |
| 15 | | [0067](0067-graph-backed-surfaces-contract.md) | Graph-backed surfaces - target consumers | |
| 16 | |
| 17 | ## Solution |
| 18 | |
| 19 | Enter the directory **`Views/SkiaKit/`** - primitive rendering library for IDE-Skia surfaces (analogous to `Views/UiKit/` for Avalonia). |
| 20 | |
| 21 | - `SkiaSectionedCard` - card with compartments (signature + separator + lines). |
| 22 | - `SkiaTileGridLayout` — a grid of tiles. |
| 23 | - `SkiaKitThemeBridge` - CascadeTheme → `SkiaKitPaintTheme`. |
| 24 | - `SkiaTextLayout` - line wrapping. |
| 25 | |
| 26 | Features (chat, semantic map cards, ...) **assemble the scene** from the kit; the domain and pipeline stages remain in Features/Services. |
| 27 | |
| 28 | **Border:** SkiaKit does not import ViewModels, navigation pipeline stages, Cockpit PrimitivesKit. |
| 29 | |
| 30 | ## Code |
| 31 | |
| 32 | `Views/SkiaKit/README.md` |
View only · write via MCP/CIDE