|
1 | 1 | # slintcn roadmap |
2 | 2 |
|
| 3 | +## Planned (v0.23+) |
| 4 | + |
| 5 | +The distribution system (CLI · registry · docs · adoption mode) is at parity |
| 6 | +with shadcn and ahead in places. The remaining gap is purely **component |
| 7 | +catalog breadth**. These waves close it, ordered by value to real Slint apps, |
| 8 | +not by chasing shadcn's full React-era list. Each wave ships a complete set: |
| 9 | +component + variants + snapshot + docs preview + a11y/behavior contract + usage |
| 10 | +snippet (the `docs-accuracy` test enforces the metadata). Every new component |
| 11 | +must keep working under adoption mode (external tokens/enums, routes). |
| 12 | + |
| 13 | +Lead with the menu family (we already have the overlay infra) and the app-shell |
| 14 | +primitives (they serve real adopters like the Zero desktop app). Charts are a |
| 15 | +heavy, separate R&D track; the Game/HUD layer is the long-term differentiator. |
| 16 | + |
| 17 | +### v0.23 — Menu family (overlay expansion) |
| 18 | +- **Dropdown Menu, Menubar, Navigation Menu, Hover Card.** |
| 19 | +- Why: the highest-frequency missing primitives — every toolbar / profile menu. |
| 20 | +- Reuse: `PopupWindow` + the Popover/ContextMenu/Select patterns (close-on- |
| 21 | + click-outside, cursor/anchor positioning, arrow-key nav). |
| 22 | +- Risk: nested submenus (Menubar) need careful PopupWindow stacking + focus. |
| 23 | + |
| 24 | +### v0.24 — Command & Combobox (search / filter) |
| 25 | +- **Combobox** (searchable Select), **Command** (⌘K palette: groups + filter). |
| 26 | +- Why: ⌘K is table-stakes in modern tools; Combobox unblocks large option sets. |
| 27 | +- Reuse: Select trigger + PopupWindow + Input for the query; filter a VecModel. |
| 28 | +- Risk: result highlight + keyboard nav; the global ⌘K shortcut is consumer-side. |
| 29 | + |
| 30 | +### v0.25 — Data Table |
| 31 | +- Sortable / filterable / paginated / row-selectable table (extends `Table`). |
| 32 | +- Why: the single biggest "complex" gap; most-requested. |
| 33 | +- Reuse: Table + Checkbox (select) + Pagination + Input (filter) + Button (sort). |
| 34 | +- Risk: column sizing + virtualized scroll for large data (ScrollArea). Own wave. |
| 35 | + |
| 36 | +### v0.26 — Date & Calendar |
| 37 | +- **Calendar** (month grid + keyboard), **Date Picker** (Calendar in a Popover), |
| 38 | + basic range select. |
| 39 | +- Why: forms / scheduling. |
| 40 | +- Risk: date math in Rust glue, locale / first-day-of-week, range selection. |
| 41 | + |
| 42 | +### v0.27 — App-shell primitives |
| 43 | +- **Sidebar** (collapsible app sidebar), **Resizable** (split panes), **Drawer** |
| 44 | + (sheet variant). |
| 45 | +- Why: makes slintcn viable for full desktop app shells — directly serves |
| 46 | + adopters like the Zero desktop app. |
| 47 | +- Reuse: Sheet (Drawer), ScrollArea, layout primitives; Resizable = TouchArea |
| 48 | + drag + width state. |
| 49 | + |
| 50 | +### v0.28 — Catalog round-out (small gaps) |
| 51 | +- Collapsible, Aspect Ratio, Input OTP, Spinner, Carousel, Button Group, |
| 52 | + Empty / Field / Item, Native Select, Kbd (alias Keycap). |
| 53 | +- Why: parity polish; each is small. |
| 54 | + |
| 55 | +### v0.30 — Charts (separate R&D track) |
| 56 | +- Area / Bar / Line / Pie. |
| 57 | +- Why: shadcn has a whole charts section — a real gap. |
| 58 | +- Risk: **heavy.** No Slint charting primitive exists; build one (Path/polyline |
| 59 | + drawing + axes/scales, geometry computed in Rust). Gate on actual demand. |
| 60 | + |
| 61 | +### Tooling track (parallel) |
| 62 | +- **MCP server** — let AI agents discover + `slintcn add` (shadcn ships one); |
| 63 | + reuse the registry + `bin/slintcn.mjs` helpers. |
| 64 | +- **Directory page** (shadcn `/docs/directory` analog) for community registries. |
| 65 | +- Optional **`/create`-style preset page** (pick components → copy command). |
| 66 | + |
| 67 | +### v1.0 — Game / HUD expansion (the differentiator) |
| 68 | +- Hotbar, reticle, health/mana/stamina bars, minimap frame, full keycap-hint |
| 69 | + system, damage numbers. |
| 70 | +- Why: slintcn's unique angle ("Slint for games + tools"); no shadcn equivalent. |
| 71 | + Widen this moat once catalog parity is "good enough." |
| 72 | + |
| 73 | +> Prioritization note: Slint's audience is smaller than React's, so depth on |
| 74 | +> app-shell + the components Slint apps actually need + the HUD differentiator |
| 75 | +> beats chasing all ~60 shadcn components. Skip the React-only items (Form/ |
| 76 | +> react-hook-form, framework adapters, Figma). |
| 77 | +
|
| 78 | +--- |
| 79 | + |
3 | 80 | ## v0.22.1 — responsive site + polish (current) |
4 | 81 |
|
5 | 82 | - [x] **Docs mobile nav** — off-canvas drawer (☰ → sidebar over a scrim; closes on |
|
0 commit comments