Skip to content

feat(desktop): redesign the shell as a floating shelf window - #1

Merged
hellocloudwebdev merged 2 commits into
hellocloudwebdev:mainfrom
Neeraj-shaw:ui/daylight-redesign
Oct 22, 2026
Merged

hellocloudwebdev merged 2 commits into
hellocloudwebdev:mainfrom
Neeraj-shaw:ui/daylight-redesign

Conversation

@Neeraj-shaw

Copy link
Copy Markdown
Contributor

What changed

Redesigns the desktop UI to match the new shelf mockup: a tinted desk with a floating rounded window, a sidebar rail (brand tile, upload pill, circular quick actions, pill navigation), a header with inline search plus an action cluster, a sort row, and large content tiles whose name, metadata and actions sit under the artwork.

Before vs after

before after (light)
before after light

after dark

list view
collapsed rail

How it is built

  • app/src/App.css — new "Shelf Daylight" layer that derives every surface (--drive-canvas, --drive-window, --drive-rail, --drive-tile, hairlines, shadows, radii) from the existing --color-app-* tokens with color-mix(), plus explicit light/dark reference values under :root.light:not(.custom-theme) and :root.dark:not(.custom-theme). Stored custom themes and the 15 presets keep working; global @theme tokens, --radius-*, quiet-* classes and shared ui/ primitives are untouched, so the committed design-gallery snapshots stay pixel-identical.
  • DriveFrame.tsx — new window frame (sidebar column + main column) used by DesktopDashboard.
  • Sidebar.tsx / SidebarItem.tsx — rail layout, upload entry point (wired to the existing manual upload), search and settings quick actions, group chips, collapsible footer, 64px collapsed rail.
  • TopBar.tsx — header with title, inline search, filter, Create Folder / Upload pills, view toggle, overflow menu (the workspace/library entry moved here) and a separate sort row.
  • FileCard.tsx / FileExplorer.tsx / FileListItem.tsx — artwork tiles with type-coded tints, name and metadata below the artwork, hover action pill and a ... menu button, list head and rows, restyled upload tiles.
  • ShellPreview.tsx — dev-only fixture (?shell-preview, &view=list) that mounts the real chrome with sample data, so the shell can be reviewed without a Telegram session.
  • bundle-budget.json — total CSS raised 140000 -> 160000 for the theme layer (~16 kB), documented in policy.

Behaviour

No functional changes: same data flow, drag and drop, context menus, selection, sorting, filters, folder actions, sync, logout, bandwidth widget and shortcuts. Sidebar search/settings shortcuts now focus the header search and open the settings dialog. All new icon buttons carry aria-label + title; contrast, focus rings and prefers-reduced-motion are preserved.

Verification

  • npx tsc --noEmit
  • npm run test — 59 files / 301 tests
  • npx playwright test — 26 tests, including the pixel snapshots and the axe audit of the real dashboard screen
  • npm run i18n:check — literal debt 449 / 486, no new keys
  • npm run build:verify — build + bundle budgets

Rework the desktop UI to the new mockup: a tinted desk with a floating
rounded window, a sidebar rail with brand tile, upload pill, circular
quick actions and pill navigation, a header with inline search and action
cluster, a sort row, and large content tiles whose name, metadata and
actions sit under the artwork.

- App.css: add a "Shelf Daylight" layer that derives every surface from
  the existing app-* tokens, with light/dark reference values. Stored
  custom themes keep working and the design-gallery fixtures stay
  pixel-identical.
- DriveFrame: new window / sidebar / main frame used by the dashboard.
- Sidebar, SidebarItem: rail layout, upload entry point, search and
  settings quick actions, group chips, collapsible footer and rail.
- TopBar: header with title, search, filter, action cluster and sort row;
  the workspace/library entry moved into the overflow menu.
- FileCard, FileExplorer, FileListItem: artwork tiles with type-coded
  tints, label and metadata underneath, hover action pill, list head and
  rows, upload tiles.
- ShellPreview: dev-only fixture (?shell-preview) for UI review without a
  Telegram session.
- bundle-budget.json: total CSS raised 140000 -> 160000 for the layer.

Verified: tsc, vitest 301 tests, Playwright 26 tests, i18n:check,
build:verify.
…hadow

The group editor lived on the old quiet surface and added its own side
margins inside the new rail padding. Give it the rail's card treatment
and replace the accent-tinted glow on the primary pill with a neutral
shadow that reads the same in light and dark.
@hellocloudwebdev
hellocloudwebdev merged commit 5c27662 into hellocloudwebdev:main Oct 22, 2026
8 checks passed
@Neeraj-shaw

Copy link
Copy Markdown
Contributor Author

Added the 4.5.0 release commit to this branch: app/package.json, src-tauri/tauri.conf.json, src-tauri/Cargo.toml, Cargo.lock and a new CHANGELOG.md section. npm run release:version:check -- --tag v4.5.0 --changelog ../CHANGELOG.md passes (Android versionCode 4005000).

Windows installers for 4.5.0 were built from this branch on Windows 11 x64 (Rust 1.98.1, --bundles nsis msi, updater artifacts off):

  • ShelfDrive_4.5.0_x64-setup.exe — 32.07 MiB, NSIS, embeds vc_redist.x64.exe
  • ShelfDrive_4.5.0_x64_en-US.msi — 37.58 MiB, WiX, ProductVersion 4.5.0

Both carry ProductVersion/FileVersion 4.5.0, and the release binary launches and opens the Shelf Drive window. They are unsigned local builds, so the official signed installers still need to come from release.yml with the TAURI_SIGNING_PRIVATE_KEY secrets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants