Skip to content

Commit e7fa6ac

Browse files
stevekwon211claude
andcommitted
chore(web): de-dup nav GitHub/Star link + plan the v0.23+ roadmap
- Nav had both "GitHub" and "Star <count>" pointing at the same repo. Merge into one "GitHub <count>" link (landing + docs top bar) — less crowded, fits mobile. - ROADMAP: add a thorough Planned section (v0.23 menus → v0.24 command/combobox → v0.25 data table → v0.26 calendar → v0.27 app-shell → v0.28 small gaps → v0.30 charts → tooling/MCP → v1.0 HUD), each with rationale, reuse, and risk. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent c776d78 commit e7fa6ac

3 files changed

Lines changed: 79 additions & 4 deletions

File tree

docs/ROADMAP.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,82 @@
11
# slintcn roadmap
22

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+
380
## v0.22.1 — responsive site + polish (current)
481

582
- [x] **Docs mobile nav** — off-canvas drawer (☰ → sidebar over a scrim; closes on

scripts/build-docs.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ function topnav() {
8080
<a class="logo" href="../"><span class="dot"></span> slintcn <span class="pill">docs</span></a>
8181
<span class="grow"></span>
8282
<a class="tn-link" href="../demo.html">Playground</a>
83-
<a class="tn-link" href="https://github.com/stevekwon211/slintcn">GitHub</a>
84-
<a class="tn-link star-link" href="https://github.com/stevekwon211/slintcn" target="_blank" rel="noreferrer">Star <span data-stars></span></a>
83+
<a class="tn-link star-link" href="https://github.com/stevekwon211/slintcn" target="_blank" rel="noreferrer">GitHub <span data-stars></span></a>
8584
<a class="tn-link" href="https://www.npmjs.com/package/slintcn">npm</a>
8685
</div></header>
8786
<div id="scrim"></div>`;

web/index.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@
106106
<span class="spacer"></span>
107107
<a class="link" href="./docs/">Docs</a>
108108
<a class="link" href="./demo.html">Live demo</a>
109-
<a class="link" href="https://github.com/stevekwon211/slintcn">GitHub</a>
110-
<a class="link" href="https://github.com/stevekwon211/slintcn" target="_blank" rel="noreferrer">Star <span class="star-count" data-stars></span></a>
109+
<a class="link" href="https://github.com/stevekwon211/slintcn" target="_blank" rel="noreferrer">GitHub <span class="star-count" data-stars></span></a>
111110
<a class="link" href="https://www.npmjs.com/package/slintcn">npm</a>
112111
</div>
113112
</nav>

0 commit comments

Comments
 (0)