Favicon, and fold the upload and link import behind a + button - #32
Merged
Merged
Conversation
… + button The drop zone and the link-import box sat above the library on every visit and pushed the grid down by both their heights, even though they are used in bursts. - AddPanel: both now live in one "Add to library" panel with a close button. Hidden rather than unmounted when closed, so a half-pasted link, the import options and an upload's progress survive a close. - LibraryView: a "+ Add" button beside the search box toggles it (aria-expanded, aria-controls). Closed by default. The close button hands focus back to +, since the focused button is about to be hidden. - Dragging files over the library opens the panel, so hiding the drop zone does not remove drag-and-drop. Other drags are left alone. - An upload still running behind a closed panel shows its percentage on the + button. - The empty library offers an "Add files or a link" button instead of pointing "above" at a folded panel. - Favicon: a gecko on GAM's blue, not green, so its tab is not the same as Notes' when the two are open side by side. SVG plus a 32px PNG fallback and a 180px apple-touch-icon, all taken from src/assets so Vite fingerprints them. nginx serves .svg as immutable for a year, which is only safe with a hashed name. Six new LibraryView tests. The favicon was checked rendered at 16-180px on light and dark tab strips. The toolbar was checked in Chromium at 1280px and 390px: button and search box are both 38px with tops aligned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152keevURYGHzPysdHaz5ET
davior
marked this pull request as ready for review
September 28, 2026 13:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The drop zone and the link-import box sat above the library on every visit and pushed the grid down by both their heights. They're used in bursts, so now they fold away behind a + Add button.
Add panel
AddPanel: the drop zone and link import now share one "Add to library" panel with a ✕ close button. When closed it is hidden, not unmounted, so a half-pasted link, the import options and an upload's progress bar are still there when it reopens.aria-expanded,aria-controls). It turns darker blue while the panel is open. The panel starts closed.<body>.Favicon
favicon.svg, plus a 32px PNG fallback and a 180pxapple-touch-iconwith square corners (iOS applies its own mask).src/assets, notpublic/, so Vite adds a content hash to their filenames. nginx serves.svgasimmutablefor a year, which is only safe for a hashed name.Testing
npm run format:check,npm run lint,npm test(299 passed, 6 of them new inLibraryView.test.tsx) andnpm run buildall pass. The build emits the icons as hashed files.pytest: 10 failures in this container, the same 10 with and without this change.ffmpeg,ffprobeandexiftoolaren't installed here, and CI installs ffmpeg. No backend files changed.🤖 Generated with Claude Code
https://claude.ai/code/session_0152keevURYGHzPysdHaz5ET
Generated by Claude Code