diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 2d66adb1..97a67f23 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -32,6 +32,13 @@ Editable drawing code, native projects and shipped exports are collected under ` | docs/screenshots/demo-0.8.mp4 | SolidCraft contributors | original screen recording of the actual SolidCraft 0.8 English desktop UI modelling an original Raspberry Pi 4 case (no logos or branding; the engraved text is set in the system's DejaVu Sans Bold), generated with examples/demo/record_ui.sh and its original animated pointer overlay (9× playback) | MIT OR Apache-2.0 | | docs/screenshots/rover-build.gif | 0xlillith (model); SolidCraft contributors (recording) | screen recording of the actual SolidCraft desktop UI replaying the timeline of the SELENE rover (`Rover-recorded.solidcraft` from https://github.com/0xlillith/solidcraft-rover, an original model by 0xlillith built through SolidCraft MCP); the model's lettering follows Ubuntu Light outlines (Canonical Ltd., Ubuntu Font Licence 1.0, as noted in that repository); the emblem is the SolidCraft project icon (2× playback) | MIT OR Apache-2.0 | | docs/screenshots/rover-build.mp4 | 0xlillith (model); SolidCraft contributors (recording) | screen recording of the actual SolidCraft desktop UI replaying the timeline of the SELENE rover (`Rover-recorded.solidcraft` from https://github.com/0xlillith/solidcraft-rover, an original model by 0xlillith built through SolidCraft MCP); the model's lettering follows Ubuntu Light outlines (Canonical Ltd., Ubuntu Font Licence 1.0, as noted in that repository); the emblem is the SolidCraft project icon | MIT OR Apache-2.0 | +| docs/design/ux-redesign/model-floating.png | SolidCraft contributors | original UX mockup (Model tab, floating layout) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/model-compact.png | SolidCraft contributors | original UX mockup (Model tab, compact docked layout) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/sketch.png | SolidCraft contributors | original UX mockup (Sketch tab) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/sheet-metal.png | SolidCraft contributors | original UX mockup (Sheet Metal contextual tab) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/start-page.png | SolidCraft contributors | original UX mockup (start page (File view)) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/workspaces.png | SolidCraft contributors | original UX mockup (workspace switcher) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | +| docs/design/ux-redesign/command-map.png | SolidCraft contributors | original UX mockup (ribbon command map) rendered from an HTML mockup that uses the original Technical Accent icon set; no third-party artwork, and not a screenshot of any other CAD product | MIT OR Apache-2.0 | | assets/branding/web/source/og.png | SolidCraft contributors | original 1280 × 640 social preview card (the SolidCraft mark, name and tagline), served by the docs site for link previews | MIT OR Apache-2.0 | | docs/book/src/generated/sample-plate.png | SolidCraft contributors | copy of docs/screenshots/sample-plate.png made by `cargo xtask book` (gitignored) | MIT OR Apache-2.0 | | docs/book/src/generated/bracket.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot examples/bracket.json`; gitignored) | MIT OR Apache-2.0 | diff --git a/docs/design/ux-redesign/README.md b/docs/design/ux-redesign/README.md new file mode 100644 index 00000000..a32a7aa2 --- /dev/null +++ b/docs/design/ux-redesign/README.md @@ -0,0 +1,71 @@ +# UX redesign proposal: ribbon layout + +Design mockups for a new desktop shell. They are pictures only: nothing in the app changes with +this proposal. The goal is a layout that is familiar to people coming from other CAD software and +easy for new users, built from standard patterns, with the current single-row toolbar replaced by +a ribbon whose tabs are ordered by task instead of by geometry type. + +![Model tab, floating](model-floating.png) + +## The design + +**Application bar** (dark): logo and name, a house icon that opens the start page, Save, Undo, +Redo, the design tabs (each with a close button), then the agent status, Settings, Help and +Report a bug. There is no search box here, no dark-mode toggle and no status bar. + +**Ribbon**: a workspace card at the left (Design and Render), tabs **Model, Surface, Assemble, Insert, Inspect, Manage, View**, and a small command +search at the right end of the tab row (also the S key). Each section shows one to four promoted +commands. Its label (▾) opens a list of every command in the section, and hovering a row pins it +to the ribbon, as in the current app. Tooltips show the shortcut and modifier keys. + +**Contextual tabs** appear when the design needs them and are selected automatically: +**Sketch** while a sketch is open (Create, Modify, Pattern, Constrain, Reference), **Sheet Metal** when the active body has a sheet-metal rule. +Nothing is greyed out, and the other tabs stay available. Plastic features live in +Model › Create ▾ and plastic rules in Manage, so there is no Plastic tab. + +**Viewport and panels**: the viewport is full-bleed under the application bar. The view compass is +fixed at the top right and panels open below it. History is a full-width icon strip along the +bottom edge. + +**Start page**: the house icon opens a full-page view with New, Open, Recent, Samples and crash +recovery; Save As and Export are there too. The camera's Home view stays in the navigation bar. + +**Workspaces** are product modes that share the same design, history and selection and change only +the ribbon tabs. The geometry types (Solid, Surface, Mesh) are tabs, not workspaces. Only Design +and Render exist today and are the scope of this work; the switcher mockup also greys out the +entries the app's own workspace menu already lists as "coming later". + +| Board | What it shows | +|---|---| +| [Command map](command-map.png) | All 389 commands regrouped by task, and where today's panels go | +| [Floating](model-floating.png) | Model tab with the ribbon, browser and dialog floating over the viewport, Modify list open | +| [Compact](model-compact.png) | The same tab docked to the window edges (see below) | +| [Sketch](sketch.png) | Sketch tab with Finish Sketch as its own ribbon group | +| [Sheet metal](sheet-metal.png) | The contextual tab opened on a sheet-metal body | +| [Start page](start-page.png) | The house icon's full-page view | +| [Workspaces](workspaces.png) | The workspace switcher, open | + +## Options + +**Floating** (above) keeps the ribbon, browser and dialogs as rounded cards over a full-bleed +viewport. It looks lighter and keeps the 3D view visible around every panel. + +**Compact** docks the ribbon and the workspace card into one bar at the top with no gap, docks the +browser flush to the left edge and ribbon (concave corner where they meet, only as tall as its +contents), and docks a denser feature panel to the right edge below the compass. Spacing is a +little tighter throughout. It maximises viewport space and still looks finished. + +![Model tab, compact](model-compact.png) + +Both options use the same dense feature panel: 24 px rows, a narrow label column, two-column +options and collapsed sections, so commands with 10 to 20 options fit. + +## Not included + +- The earlier sketch variant with tab locks and a Finish menu was set aside as too complex for a + first version, and is not part of this proposal. +- The icons in the mockups are the reviewed SVGs from the icon system in PR #853 + (`assets/icons/ui/design/svg/`), coloured with its accents from `palette.toml`: Sketch tools in + the Sketch green, constraints in red, everything else in the Solid blue. The greyed Simulation and + Manufacture entries in the switcher mockup use placeholder icons and are not part of this work. This proposal does not + implement or change any app icons. diff --git a/docs/design/ux-redesign/command-map.png b/docs/design/ux-redesign/command-map.png new file mode 100644 index 00000000..dbb1b25c Binary files /dev/null and b/docs/design/ux-redesign/command-map.png differ diff --git a/docs/design/ux-redesign/model-compact.png b/docs/design/ux-redesign/model-compact.png new file mode 100644 index 00000000..c1f2e38f Binary files /dev/null and b/docs/design/ux-redesign/model-compact.png differ diff --git a/docs/design/ux-redesign/model-floating.png b/docs/design/ux-redesign/model-floating.png new file mode 100644 index 00000000..8de95838 Binary files /dev/null and b/docs/design/ux-redesign/model-floating.png differ diff --git a/docs/design/ux-redesign/sheet-metal.png b/docs/design/ux-redesign/sheet-metal.png new file mode 100644 index 00000000..54ad7fad Binary files /dev/null and b/docs/design/ux-redesign/sheet-metal.png differ diff --git a/docs/design/ux-redesign/sketch.png b/docs/design/ux-redesign/sketch.png new file mode 100644 index 00000000..8fbd6259 Binary files /dev/null and b/docs/design/ux-redesign/sketch.png differ diff --git a/docs/design/ux-redesign/start-page.png b/docs/design/ux-redesign/start-page.png new file mode 100644 index 00000000..b7eecc2c Binary files /dev/null and b/docs/design/ux-redesign/start-page.png differ diff --git a/docs/design/ux-redesign/workspaces.png b/docs/design/ux-redesign/workspaces.png new file mode 100644 index 00000000..ab577d4f Binary files /dev/null and b/docs/design/ux-redesign/workspaces.png differ