Release planning

CadCraft 1.0 impact map

Every fix and feature lined up for 1.0, and what each one touches: which apps, and which layers of the stack.

ProjectCadCraft
Sheet0.10 impact
Items110
Date2026-11-09
51Fix
22Feature
0Spike
28Platform
0Site ops
8Sanity check
1Decision
≈ 319days in the written 0.10 plans
  • Planned 101 on the plan for the release it is filed under
  • Built 0 built and working in /lab (the dev builds). Whether the public has it is its reach: "in the lab", "Live" (the last gate) or "switched off"; see docs/REACH-LIVE.md
  • Partly built 1 part of it is built in /lab; the rest waits (see "Waits on")
  • Promised 0 the live site already says it is coming
  • Moved 0 moved here from an earlier release or wishlist
  • Found 0 bug found after a release shipped; fixed in a point release or the next one
  • Candidate 3 recommended in a spike or session log; owner to choose
  • Community please test 0 built and in /use; a Discord post gives the steps and the expected result and asks people to try it on their own devices, files or know-how
  • Decision Time 5 a decision, check, file, key, flag or go only you can give; folds into the list once answered

Built means built and working in the lab. Live means the public can use it, and is the last gate: 0 Built · Live, 0 Built · in the lab.

Sheet 1 · impact areas

Where 0.10 lands

How many items touch each app and each layer, by kind. One item can touch several areas, so the rows add up to more than the item count. Pick a row to filter the schedule below.

Impact areaFixFeatureSpikePlatformSite opsSanity checkDecisionAll
Apps
CadCraft 20 17 – 10 – 3 1 51
BimCraft 18 20 – 9 – 4 1 52
ModelCraft 19 20 – 10 – 3 1 53
MarkupCraft 12 16 – 9 – 3 1 41
TakeoffCraft 14 16 – 9 – 3 1 43
CivilCraft 21 18 – 10 – 4 1 54
DetailCraft 15 17 – 9 – 4 1 46
PartCraft 15 17 – 9 – 3 1 45
Studio – 1 – – – – – 1
SuperCad Studio – 6 – 6 – 1 1 14
Layers
Site and services 13 3 – 8 – 1 – 25
Desktop host – 1 – 1 – – – 2
App shell 5 15 – 8 – 2 1 31
App code 23 4 – 3 – – – 30
Our engines 8 – – 1 – 1 – 10
Vendor engines – – – – – – – 0
Drawing surface 3 – – – – – – 3
Help and words 2 1 – – – 1 – 4
Tests and tooling 2 1 – 2 – 3 – 8

Sheet 2 · schedule

Every fix and feature

Grouped by track. App chips carry each app’s layer colour; Studio is in ink. "Waits on" names what has to happen first; the small lines under it say who asked and where the item is written up.

Add an item Fork map (Rust and C++ forks) The roadmap

Issues sync every 10 minutes; last sync Nov 9, 2026 7:00 pm.

ItemWhatAppsLayersStatusDaysWaits onIssues
Interface roadmap — wave 1 26
PlatformUI.1 Link to UI.1Comment on UI.1 Interface pattern: one slot system every layout maps onto, written down, with a reference mockup

Owner 2026-11-09: our layout efforts do not feel "strong and stable and consistent"; main menu bars, ribbons, panels and footer bars from every mainstream interface must fit one patterned system cleanly. What exists: the layout engine (assets/js/app-workspace.js, 1,050 lines) with 15 block kinds over 12 fixed places (app-workspace-format.js PLACES: top, bottom, left-panel, right-panel, stage-top/bottom/left/right, view-top/bottom, float, none) and six built-in layouts (docked, toolbox, autorev, duncan, vector, sketch), each a data file. The pattern is real but was never drawn or written as a rule book, so each new layout (Duncan, Vector, Sketch) added its own block and its own CSS section. This row: (1) the mockup made today, pattern.html: the slot map, the seven layouts (the six plus the Drafting layout of UI.12) drawn on the same slots, the block families (menu bars, ribbons and tool rows, palettes and panels, bars, overlays, windows) and the consistency rules; (2) a spec docs/INTERFACE-PATTERN.md from it: the places (adding view-corner overlays, UI.10, and windows, UI.2/UI.3), what each family may do in each place, the one tear-off, one "…" menu, one pressed/disabled/hover state, one dialog baseline, one icon set, one keyboard contract, one storage key family; (3) the conformance test (bin/test-app-workspaces.mjs, 12 contract points) gains a point per rule, so every layout in every app is held to the same pattern from then on. Every later row in this wave builds inside this spec; a new block that does not fit it is refused. Owner addition the same day (see UI.21): the pattern is zones and dockable units, a ribbon being tool units docked along the top of the canvas and a palette the same unit docked at a side, the way panels dock, group and collapse in image editors; the mockup and spec state it that way.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Partly built 2 Owner look at the mockup (docs/0.9-sessions/interface-wave1/pattern.html); the spec is written after that look. docs/0.9-sessions/interface-wave1/SUMMARY.md
PlatformUI.2 Link to UI.2Comment on UI.2 One tear-off: every bar, menu, palette and panel moves to its own window the same way

Today there are four ways to put a piece of the interface in a window: the ribbon has its own tearOff()/dockRibbon() in app-workspace.js (window.open, stylesheet copy, key forwarding, about 60 lines), the toolbox, tool rows and status bar use app-workspace-popout.js popout(), the app panels use app-panels.js (its own ONE "panels window", adoptNode, Window Management API), and the classic toolbar and SuperCad walls use app-toolbar-tear.js and api.tearable(). Each copies stylesheets and theme differently, forwards keys differently and remembers (or does not remember) its window differently; closing behaviour differs too. Change: one window service in the shell (app-windows.js, grown from popout.js) that every piece uses: open from a click, move the nodes (handlers and state go along), mirror <html>/<body> attributes, stylesheets, interface size and icon style, forward keys that are not typing, give the window a title and the app's icon, dock back on close, on "Put it back" or by dragging the grip back over a drop target (UI.5). The ribbon, panels, toolbar and SuperCad code become callers of it. One "…" menu (shell-panel-menu) for all of them with the same entries in the same order: Move to a new window / Put it back / Float / Dock left / right / bottom / Hide. Test: the conformance test tears off every block that allows it and brings it back, in every layout.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Planned 4 – docs/0.9-sessions/interface-wave1/SUMMARY.md
FeatureUI.3 Link to UI.3Comment on UI.3 Multi-monitor: any number of windows, remembered per app and layout, restored in one click

Owner: "one of our biggest desires is to be multi monitor capable". Today the panels window is one window for both panels (app-panels.js), each torn-off block is one more pop-up, and only the panels window remembers its position and screen (cc-app-settings:<slug> panels.wins, Window Management API "Put it on my other screen" in Chromium); a block's pop-up opens at a default size at the pointer's screen and is forgotten on reload; a browser cannot reopen windows without a click, so after a reload the shell can only offer "Open it". Change, on the one window service (UI.2): each window keeps {screen, x, y, w, h, contents} under cc-windows:<slug>:<layout>, the left and right panels may be two windows, a palette may leave its panel for a window of its own, several bars may share one window (a tool strip window), and on start the status line offers "Restore my 3 windows" (one click opens them all, the browser allows that inside one click), with getScreenDetails() where the browser has it and the last position elsewhere. The layout file (format v2, UI.6) may say a block starts in a window ("place": "window"), so a layout made for two screens is shareable. Studio does the same through real windows (UI.4). Works on the page too: a floating palette or bar (place float) can be dragged anywhere over the drawing and is remembered the same way, so "reorganized on the page/canvas" is the same feature with the window left out.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shellDesktop host Planned 5 – docs/0.9-sessions/interface-wave1/SUMMARY.md
FeatureUI.7 Link to UI.7Comment on UI.7 A layout per app, finished: each app remembers its own, a switcher in the title bar, SuperCad Studio lists every layout

Owner: each app can use a different interface. FX.82 (0.9, partial) added a checkbox in Settings › Layout that keeps the pick for that app alone; the rest is open. Change: (1) the per-app pick is the default (cc-workspace:<slug> first, the global cc-workspace as the fallback), shown in Settings as "This app" / "Every app" with the app's name; (2) a workspace switcher in the title bar and the Vector/Drafting menu bars (the "2D Drafting ▾" drop-down of the owner's reference screenshot): the list of layouts with the person's own first, switching in place without a reload (the engine's decide() already does this; Work environments WS.24 still reload: they stop reloading when only the layout changes); (3) SuperCad Studio's manifest lists all seven layouts, not only docked, and its hosted apps follow the host's pick or keep their own (the guest rule stays: a guest never lays out the host's page); (4) ?workspace=<id> stays for one page. Help common/layout-ribbon, layout-toolbox and layout-own updated; words shell.ws.switch*.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Planned 3 – docs/0.9-sessions/interface-wave1/SUMMARY.md
Sanity checkUI.17 Link to UI.17Comment on UI.17 Stability pass: every app × every layout × both themes × three widths on one contact sheet, the engine gaps closed, tests that hold

Owner: "I personally dont feel like our efforts are strong and stable and consistent." What exists: bin/test-app-workspaces.mjs (12 contract points per app and layout, green on 2026-10-24 for the two layouts of that day); the newer layouts were checked in CadCraft and BimCraft only (DU.1, VEC.1, SK.1 all "partial"); the engine inbox (docs/0.7-sessions/workspace-layouts.md § Inbox) lists gaps the per-app sessions found, most closed in the follow-up run, some still worked around in app CSS (z-index lifts, canvas sizing); FX.37 (tablets in portrait), FX.43 (packaged editions print no mount for toolbar tear) and FX.82 to FX.85 are partial. This row: (1) a contact sheet tool (tools/workspace-test/contact-sheet.mjs) that opens every app (eight plus SuperCad) in every layout, light and dark, at 1920, 1280 and 760 px wide with a showcase file, and writes one page of screenshots for the owner, re-run before every release and kept in the release notes results section; (2) run the conformance test for every app × layout and fix what fails, including the new points from UI.1; (3) remove the per-app CSS workarounds the engine now covers; (4) the partial rows above closed or re-filed; (5) a flake budget: the suite runs three times green on the VPS before this row is Built.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shellTests and tooling Planned 3 – docs/0.9-sessions/interface-wave1/SUMMARY.md
DecisionUI.19 Link to UI.19Comment on UI.19 Owner: which mainstream interfaces to mock next, per app, for interface wave 2

Built-in layouts after this wave: Ribbon and project browser (docked), Toolbox and info box, AutoRev, Duncan, Vector, Sketch, Drafting (UI.12). Owner 2026-11-09: each app has several mainstream interfaces people like; mock them so a person picks the one they like per app. Candidates not yet mocked, by app, for your pick (names here are for you; the layout names stay ours, see the vendor-names rule): CadCraft: the classic toolbars-and-command-line drafting screen of the 2000s (menu bar, docked toolbars on four sides, command window, no ribbon). BimCraft: the Toolbox layout already follows the Archicad pattern and AutoRev the Revit one; a Vectorworks Architect pattern is Vector. ModelCraft: Sketch is there; a Blender-style editor-areas layout (split editors, header per area, N-panel) and a Rhino-style layout (four viewports, command line, toolbar tabs, right panels). MarkupCraft and TakeoffCraft: the Bluebeam pattern (left thumbnails, tool chest and markups list in right tabs, a properties toolbar under the ribbon) and the PlanSwift pattern (left pages tree, right takeoff items list, a quantities bar). CivilCraft: the Civil 3D pattern is a ribbon with a Toolspace palette (Prospector / Settings / Survey tabs) at the left. DetailCraft: the Tekla pattern (ribbon, a side pane with Applications & components, a mini toolbar at the selection). PartCraft: the Fusion / SolidWorks pattern (toolbar tabs, a browser tree at the left, a timeline at the bottom, a marking menu at the pointer, a Command Manager). Pick the three or four that matter most for 0.10 and this row becomes wave 2's list; each is one layout file plus the blocks it needs (split editors and a timeline are the two blocks none of the above have).

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Decision Time – Owner's pick. docs/0.9-sessions/interface-wave1/SUMMARY.md
FeatureUI.20 Link to UI.20Comment on UI.20 Theme switch: sun and moon icons for light and dark wherever the interface says "Paper" and "Model"

Owner 2026-11-09: where we say "paper/model" we switch to sun/moon icons for the light and dark themes. Today the theme toggle is a two-button form with the words Paper and Model: the site navbar (navbar.inc, titles "Paper space: light theme" / "Model space: dark theme"), the app bar in every app and its More menu on phones (app-bar.inc, words shell.bar.paper / shell.bar.model and their titles), the Settings radios (app-settings.inc already draws bi-sun next to "Paper"; shell.settings.theme.paper / .model), and the pre-paint script and site.js that read them. Change: one shared toggle component (space-toggle.inc) drawn as two icon buttons, a sun for light and a moon for dark, from the CadCraft icon set (UI.14: two new drawings, sun and moon, in all three styles) with the pressed state lit, aria-labels and tooltips "Light theme" / "Dark theme" (plus "Match the system" where Settings offers it), the words shell.bar.light / shell.bar.dark in en, es-MX and id and the old keys retired by bin/test-shell-lang.mjs; the navbar, the app bar, its More menu, Settings and the Studio hub use the one component. What stays: the stored values paper / model (localStorage cc-space, the cc_space cookie, data-space) and the brand file names cadcraft-logo-{paper,model}: internal names, nothing a person reads, so no stored setting breaks. What this does NOT touch: CadCraft's real paper space and model space (the drawing's layouts and the MODEL / PAPER status toggle), which keep their names because that is what they are. Help: the theme line in common/getting-started topics; the FAQ answer that names Paper and Model, if any, re-read. Owner addition the same day: in the apps the sun and moon are one row of two icon buttons inside the Craft menu, which opens from the app mark and name at the far left of the absolute top (UI.8, UI.24); icons in a row, never list items; the website navbar keeps its own pair.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftStudioSuperCad Studio App shellSite and services Planned 1 – docs/0.9-sessions/interface-wave1/SUMMARY.md
PlatformUI.21 Link to UI.21Comment on UI.21 One dock manager: a ribbon set becomes a palette and back; any tool group docks to a canvas edge, tabs, collapses, floats or takes a window

Owner 2026-11-09, on the reference at app.draftcraft.a Discord member: "the ability for a RIBBON set to turn into a palette, like in Adobe Photoshop or something similar, where you can dock panels/palettes, and in this particular case we can dock a ribbon to the top of the canvas." The idea: a ribbon group, a tool row, a toolbox group, Properties, the browser, the info box, the command line and a status strip are one thing, a DOCKABLE UNIT; a ribbon is units docked horizontally along the top of the canvas with a tab strip, a palette the same unit docked vertically in a side column, a tabbed panel several units in one slot, an icon rail a collapsed column, a floating palette a unit over the drawing, a window a unit on another monitor. Today each is its own block kind and code path (15 block kinds, four tear-off paths, the panel manager apart from the engine). Change: one dock manager in the shell (app-dock.js, grown from app-panels.js' dock / float / window logic and the engine's regions; SuperCad Studio's SC.2 panels, "everything is a panel that docks, tears off and groups", become a caller of it): zones = the four canvas edges plus the two panel columns, drawn as drop targets while dragging (UI.5); a unit dropped in a top or bottom zone lays out horizontally (the ribbon look), in a side zone vertically (icon + name rows, the palette look), on another unit it joins as a tab, on the rail it collapses to an icon, over the drawing it floats, past the window edge it tears off (UI.2/UI.3). The orientation belongs to the zone, the tools to the unit (format v2, UI.6), so the same Draw set is a ribbon group at the top and a palette at the side. The layout file says, per unit, which zone and in which order; the block kinds become presets of units in zones, so every built-in layout still reads and every adapter still fills them. Conformance: drag the Draw group from the ribbon to the left column and back in every app; a layout saved that way reloads the same.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Planned 8 UI.1 (the pattern) and UI.2 (one window service) first; UI.5 and UI.6 are built on this. docs/0.9-sessions/interface-wave1/SUMMARY.md
PlatformUI.22 Link to UI.22Comment on UI.22 The icon library: one drawing for every command, option and shell function in the eight apps, kept as data, the same in every layout and app

Owner 2026-11-09: "we need to create an entire library of icons (a task) that covers all of the application options, so that our icons are consistent regardless of the layout/app." What exists: app-workspace-icons.js holds 114 drawings on a 32-unit grid; about 270 specialist tools had no drawing by the 2026-11-05 count; the shell bar, More menu, panel tabs, status bar, menus and dialogs still use Bootstrap Icons (bi-*) and each app draws some of its own, so one command looks different from layout to layout and app to app. This row makes the library its own thing: (1) an inventory tool (tools/icons/inventory.mjs) reads every app's command registry, its toolbar, menu and toolbox definitions, the shell's bar buttons and panel tabs, Settings and the layout blocks, and writes docs/icons/INVENTORY.md: every command or option id, its apps, its drawing key or "missing"; nothing is drawn before the list exists; (2) the library in its own public repo (getcadcraft/icons, Apache-2.0, like every shared library): one SVG source per icon on the 32 grid with the five fills and two strokes as classes, names.json (key, name, aliases, the commands that use it), and a build that packs the set into app-workspace-icons.js, a sprite for the site and the add-ons kit, and the gallery data for UI.23; a hand edit of the packed file is refused by a check; (3) the drawings, under the UI.13 rules, in batches by app with the owner's look at each batch on the review sheet; shared verbs (move, copy, rotate, trim, offset, measure, zoom, undo) drawn once for every app; the shell's own set (home, find, help, settings, sun and moon, full screen, offline, problems, team, lessons, the AI and the panel buttons); (4) a lint in the release freeze: a registered command without a drawing, a drawing without a name, or a bi-* class left in shell or app chrome fails it; (5) the count in the release note (UI.18) comes from the inventory, never typed. Each app's own drawings are migrated or retired by its session.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shellApp codeTests and tooling Planned 10 UI.13 (the owner's drawing rules) first; UI.14 wires the result into every block. docs/0.9-sessions/interface-wave1/SUMMARY.md
FeatureUI.24 Link to UI.24Comment on UI.24 The Craft menu at the far right of the absolute top and Add-ons at the far right of the menu bar: the shell's own buttons condensed, pinnable

Owner 2026-11-09: condense "OUR buttons" that extend the site's functions; an absolute top with the logo, the app name, a dock space for the menu bar "and then the CRAFT MENU (far right): settings, full screen, help, support, about, login/logout, account. ADD-ONS goes into the top menu far right and lists all the add-ons and panels"; "some are addon panels, others are part of CRAFT MENU". What exists: app-bar.inc draws the mark, area chip, theme toggle, Find, Help, Save for offline, Settings, Full screen; thirteen modules each insert their own button before Settings. Change: (1) one registration, ccShell.option(), that every module and add-on calls instead of inserting a button; (2) the Craft menu opens from the app mark and name at the far left of the absolute top (UI.8), the same in every app and layout: Settings, Full screen, Help, Support, About (with Report a problem), Save for offline, Visit GetCadCraft.com, the sun and moon as one row of icons (UI.20), Sign in, then Account with sign out inside; (3) Add-ons as the last item of the menu bar in every layout that has one (a title-bar button where none does): every add-on and panel (module, Team, AI and add-on panels), each a dockable unit (UI.21) opening at its remembered place, a tick when open; closing a panel returns it to this list; (4) Find (owner): [ search box | magnifying glass ] at the far right of the absolute top; the box folds to the glass when room is short and a click opens it; Ctrl+K; the area chip stays beside the app name; Problems also keeps its count in the status bar; (5) up to six options pinned in the absolute top as buttons, saved per app and in the layout file (format v2); (6) badges on a pinned button or on the mark; (7) Alt+O opens the Craft menu; options keep their shortcuts. The app's tools are not touched. Words shell.craft.*; help craft-menu; test: every option reachable in every app and layout, no bar button outside the registry.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Planned 4 UI.8 (the title bar block) agrees on where the menu sits; UI.21 makes it a dockable unit. docs/0.9-sessions/interface-wave1/SUMMARY.md
PlatformUI.25 Link to UI.25Comment on UI.25 One state language: an action enables or disables menu items, shows and updates panels, and selects on the canvas; every unit follows the same state

Owner 2026-11-09: "remember that actions can enable or disable menu items or make panels show/update as well as selecting objects on the canvas." What exists: every app wires this by hand in its own code: Properties refreshes on the app's selection event, the project tree selects through app code, the command registry (ccInput) knows commands but no enabled or visible condition, menus and toolbars are static until an app toggles classes, contextual ribbon tabs do not exist (UI.11), Problems and the add-ons read their own events. Change: (1) one state in the shell (ccState): selection (ids, kinds, count), mode (model / paper, 2D / 3D), the active view, the current layer and tool, document dirty; the apps publish into it through the host adapter; nothing else writes it; (2) declarations as data: a command, menu item, button, ribbon tab or panel says when it is enabled, visible or shown (enabled: selection.count > 0; visible: selection.kind == wall; show: problems.count > 0) in the registry and the layout file (format v2), never in per-app DOM code; the dock manager applies them: items dim, contextual tabs appear and go (UI.11), panels show or refresh, badges count; (3) the reverse channel: a unit acts on the canvas through the host (select, reveal, highlight), so a Browser row, a Problems line, a schedule row or a search hit selects and zooms to the objects with the same undoable selection the pointer makes; (4) one action path: every button, menu item and shortcut runs the registry command, so one command in a ribbon, a palette, a menu and the status bar has one enabled state and one label; (5) a check (bin/test-shell-state.mjs) opens every app, selects through the host and asserts Modify enabled, Properties updated, the Browser row lit, a declared contextual tab shown, then selects from the panel and asserts the canvas selection. The mockup's demo shows the behaviour (click a wall, or its Browser row). SuperCad Studio's host is the same contract.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shellApp code Planned 5 UI.21 (units) and UI.6 (format v2) carry the declarations; each app publishes its state in its own session. docs/0.9-sessions/interface-wave1/SUMMARY.md
FeatureUI.26 Link to UI.26Comment on UI.26 One head on every panel and ribbon group: grab handle far left, close far right, and the handle opens the dock menu (Dock to, Float, Window, Pin, Hide)

Owner 2026-11-09: "we should make the grab handle and close x standardized on all panels and ribbons (far left, far right), and a drop-down menu can be click the grab handle (menu: dock to xxx, pin)." What exists: the two app panels have the shell's grip bar (app-panels.js) and Problems a "…" menu (dock right / left, float, window); the ribbon has its own tear-off handle; the toolbox, tool rows and status bar have popout buttons in different corners; the Vector and Sketch palettes draw their own heads. Change: one head component in the dock manager (UI.21) for every unit in every zone and orientation: the grab handle at the far left (drag = move; click = the dock menu), the unit's tabs or name in the middle, collapse, and close at the far right, in that order, always. The dock menu lists Dock to top / canvas top / left panel / right panel / bottom (only the zones the layout allows, UI.1), Float on the drawing, Open in a window (UI.2, UI.3), Pin (the unit stays put: drag, auto-hide and close are off until unpinned), Collapse / Open, Hide (place none; it comes back from Settings › Layout › Hidden or the Craft options menu, UI.24), then the unit's own commands if it registers any. Right-click and a long press open the same menu; the handle is focusable. Head height, glyphs (from the icon library, UI.22) and colours (the zone's family) come from the tokens, so a ribbon group's head and a palette's head differ only in orientation. The ribbon's tear-off handle, the popout buttons and the "…" menus retire into it. Conformance: every unit in every layout shows handle left and close right, the menu opens, and each item does what it says. Owner addition the same day: a visibility order on the head so the close never draws the eye: title or tab name 100 % of the ink, grab handle 70 %, collapse 55 %, close 40 %, full ink on hover and focus; four tokens in app-workspace.css, the same on both themes.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Planned 2 UI.21 (the unit) is where the head lives. docs/0.9-sessions/interface-wave1/SUMMARY.md
Suggest an item

Anyone can send one; no account and no name needed. The team reads each idea, and the ones we take on appear on this page. Please leave out web addresses.