#311 File-browser redesign (PR1): new look, multi-select, grid view, storage meter #312
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/files-redesign"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First and largest slice of the Claude Design file-browser redesign (epic #311). Frontend-only, no backend change — ships the new visual language plus the two client-side features the mockup adds.
What changed (web/static/index.html)
--paper/--ink/--accent/--rule/--sunk/…) added alongside the existing--glacier/--lichen/--slatepalette (still used by the preview/admin/dialog panels), themed for light + dark, with glacier as the existing default accent (moss/ember/graphite via the existing pref). No global token values changed, so untouched panels are unaffected..top), sidebar (.navscroll+ pinned.quotastorage meter), toolbar (+ list/grid toggle), breadcrumb, and a real empty state.renderRowsrewritten from a<table>to CSS-grid.lrrows (icon, two-line name, size, modified, quick actions). ReusesiconFor()/the icon system verbatim; filenames escaped via the existingpvEsc(XSS-safe). Preserves folder-navigate, file-preview (pvsel), favstar, subpath, drag-drop, anddataset.namefor the search filter.Setkeyed by path with a singleapplySel()writer that marks both row and grid tile; a selection bar with bulk Download (files, looped) and bulk Delete (one confirm, loops the existingDELETE /api/v1/files), plus Clear. Clears on navigation.cairn-prefs.gridView./api/v1/quota(the same data the avatar menu shows).#appdeliberately stays flex (it holds the preview panel as a flex child). Every id,data-i18nkey, event binding, andlocalStorage["cairn-prefs"]value is preserved; the admin rail + admin view are untouched.Verification (in the port workflow, now removed)
node --checkon all inline scripts: 0 syntax errors.index.htmlunder fetch/matchMedia stubs — the new file introduces no new load-time errors (the whole init runs, exercising the new render/selection code).data-i18nkey present; exactly onerenderRows; old<table>gone.⚠️ I can't render the embedded UI myself — please eyeball it on the dogfood. Likely polish spots: brand mark, exact spacings, dark-mode contrast.
Deferred (still in #311, need the backend)
GET /api/v1/fileswithowner, folderitemCount, andshared/link/hold/lockstatus per item.