Commit Graph
1240 Commits
Author SHA1 Message Date
vicrodh be4559b1b8 Fix PlaylistManager grid card margins to be equal
Reduced card width from 180px to 160px so artwork (140px) fills
content area exactly. Now all margins (top/right/bottom/left) are
equal at 10px padding.
2026-01-24 17:54:22 -06:00
vicrodh 507209656b Fix PlaylistManager grid view consistency
- Only render header div when drag handle is present (fixes top margin)
- Set fixed 2-line height (34px) for playlist names
- Ensures track count row is always at same vertical position
2026-01-24 17:51:56 -06:00
vicrodh 2d031a237f Move track count inline with action buttons in PlaylistManager grid
- Track count and action buttons now on same line
- Reduced icon sizes to 12px and font to 11px to handle >999 tracks
- Reduced button padding for compact layout
- Meta on left, buttons on right with space-between
2026-01-24 17:48:28 -06:00
vicrodh 0ce5914094 Fix PlaylistManager grid content width to match collage (140px)
Artwork, info, and footer now all use 140px width to align properly.
2026-01-24 17:45:07 -06:00
vicrodh 1760a394ce Fix PlaylistManager grid view margins and content width
- Remove fixed header height, only show margin when drag handle present
- Constrain info and footer to 160px width (same as artwork)
- Center info and footer to align with artwork
2026-01-24 17:41:11 -06:00
vicrodh 07431f8759 Add favorite toggle button to PlaylistManager grid and list views
- Add toggleFavorite function for playlist favorites
- Grid view: Move action buttons to footer for even margins
- Grid view: Remove favorite badge and hidden badge from artwork
- List view: Add favorite toggle to left of visibility button
- Remove unused CSS for hidden-badge, favorite-badge, favorite-indicator
2026-01-24 17:36:34 -06:00
vicrodh 4c2a792825 Add hide/show toggle button to PlaylistManager
Add visibility toggle in both grid and list views, next to edit button.
- Eye icon when visible (same tone as edit button)
- EyeOff icon when hidden (dimmed to indicate inactive)
Allows quick sidebar visibility toggle without opening edit modal.
2026-01-24 17:32:18 -06:00
vicrodh 3337d09cf4 Add track count sorting option to PlaylistManager
Sort playlists by total track count (Qobuz + local tracks) in descending order.
2026-01-24 17:26:55 -06:00
vicrodh 8dfea8a38e Hide 'Go to artist' menu option in ArtistDetailView
Redundant to show navigation to artist when already viewing that artist.
2026-01-24 17:24:58 -06:00
vicrodh 68c1f628b3 Hide 'Go to album' menu option in AlbumDetailView
Redundant to show navigation to album when already viewing that album.
TrackRow menu automatically hides options when callback is undefined.
2026-01-24 17:23:37 -06:00
vicrodh 0de662f987 Remove Songlink share option from PlaylistDetailView
Odesli/Songlink only works with tracks and albums (using ISRC/UPC identifiers).
Playlists are user-generated collections without universal identifiers,
so cross-platform matching is not possible. Keep only Qobuz share link.
2026-01-24 17:15:28 -06:00
vicrodh bdb49f65bb Fix PlaylistDetailView track list header column alignment
Update header to use flexbox layout matching AlbumDetailView pattern.
Add missing column classes: col-title, col-album, col-quality, col-icon, col-spacer.
2026-01-24 17:05:08 -06:00
vicrodh 270465e822 fix(share): implement proper album.link resolution via iTunes lookup
- Add UPC field to Album models (Rust and TypeScript)
- Enhance share_album_songlink command to use iTunes lookup:
  - First tries UPC lookup via iTunes API
  - Falls back to Odesli API with UPC
  - Then tries album title/artist search on iTunes
  - Generates direct album.link/i/{id} URLs like tracks do
- Update frontend to use the backend command instead of
  generating non-functional URL-based links

This mirrors the track sharing approach that uses ISRC/iTunes
lookup to generate working song.link URLs.
2026-01-24 12:54:59 -06:00
vicrodh bff1730aa5 fix(share): use album.link instead of song.link for albums
Odesli provides different domains for different content types:
- song.link for individual tracks
- album.link for albums

Updated album share functions and menu label accordingly.
2026-01-24 12:46:57 -06:00
vicrodh 872ebac8b6 feat(AlbumDetailView): add heart and download icons to table header
Replace empty spacers with subtle icons for favorite and download
columns to improve visual clarity and consistency with row content.
2026-01-24 12:43:47 -06:00
vicrodh 139658065f fix(TrackRow): make download indicator subtly visible like favorite button 2026-01-24 12:42:18 -06:00
vicrodh 97c18ad920 fix(tracks): center-align duration and quality columns 2026-01-24 12:41:01 -06:00
vicrodh 7c61e1110a fix(AlbumDetailView): center-align track number column header 2026-01-24 12:39:54 -06:00
vicrodh 1ba20dde7a fix(AlbumDetailView): align table header with track row columns
Add placeholder spacers to table header for favorite, download, and
menu columns so header labels align correctly with TrackRow content.
2026-01-24 12:37:34 -06:00
vicrodh af61610f89 fix(css): use box-shadow for action button anti-aliasing
Apply same anti-aliasing technique to .action-btn-circle classes
used in AlbumView and ArtistView headers. Replace border with
inset box-shadow for smoother circular edges.
2026-01-24 12:08:55 -06:00
vicrodh 83732131ad fix(AlbumCard): use box-shadow for overlay button anti-aliasing
Replace CSS border with inset box-shadow on overlay buttons and menu
trigger to reduce jagged edges caused by thin borders over blurred
album artwork backgrounds.
2026-01-24 12:06:55 -06:00
vicrodh 707b605c46 style(album-card): accent border + subtle glow on overlay button hover 2026-01-24 12:03:57 -06:00
vicrodh cc6db8e721 style(sidebar): subtle concentric glow on collapse button 2026-01-24 12:01:21 -06:00
vicrodh bbba46ee03 style(album-card): add dark background on overlay button hover 2026-01-24 11:59:48 -06:00
vicrodh a88c1f5725 fix: album card overlay always white, menu icon inherits color
- AlbumCard overlay buttons: revert to hardcoded white rgba values
  (overlay sits on album artwork, blur makes white always visible)
- AlbumMenu icon: use currentColor to inherit from CSS
  (allows AlbumDetailView to override for theme-aware color)
2026-01-24 11:42:55 -06:00
vicrodh 848322681d refactor: replace hardcoded rgba white with theme-aware alpha variables
Add --alpha-* CSS variables (4-95%) to app.css that adapt to theme:
- Dark themes: white-based rgba
- Light themes: black-based rgba (auto-inverts for proper contrast)

Mass-replaced 100+ instances of rgba(255,255,255,...) across 23 files
with var(--alpha-*) for consistent theming support.

This fixes borders, overlays, and UI elements being invisible or
having poor contrast in light themes.
2026-01-24 11:35:54 -06:00
vicrodh 19be201564 fix: theme-aware borders for action buttons
- Use --border-strong and --border-subtle instead of hardcoded rgba
- Add border variables to OLED and Warm themes
- Primary button: 2px subtle border normal, prominent on hover
- Secondary buttons: 1px strong border, prominent on hover
- Fix AlbumMenu trigger border color
2026-01-24 11:28:26 -06:00
vicrodh 68dc51d43c fix: primary button border only on hover with transition 2026-01-24 11:25:02 -06:00
vicrodh a87b8e11bb refactor: move action button styles to shared app.css
- Extract .action-btn-circle styles to app.css for reuse
- Remove duplicate button styles from ArtistDetailView and AlbumDetailView
- Use theme-aware colors (--text-primary) instead of hardcoded white
- Icons now use currentColor for theme compatibility
2026-01-24 11:23:05 -06:00
vicrodh 4b999c4561 style: replace play button glow with solid white border
Remove box-shadow glow effect from primary action button and
replace with 2px solid white border for cleaner appearance.
2026-01-24 11:19:57 -06:00
vicrodh 8848f598ef style(album): circular style for context menu button
Apply consistent circular outline style to AlbumMenu trigger
to match other action buttons in the album header.
2026-01-24 11:17:50 -06:00
vicrodh bc2491cb95 feat(album): circular buttons and full release date
Header buttons:
- Play button: circular 44px with accent background (primary action)
- Shuffle button: circular 36px with outline (secondary)
- Favorite button: circular 36px with outline, highlight when active

Release date:
- Added releaseDate field to AlbumDetail type
- Adapter now includes full release_date_original from Qobuz API
- Display formatted date (e.g., "January 15, 2024") with year fallback
2026-01-24 11:07:29 -06:00
vicrodh b296d3091b fix: remove horizontal scroll caused by jump-nav overflow
The jump-nav sticky header uses negative margins to extend beyond
the container padding. The right margin was -16px (or -32px in Settings)
but the container only has 8px (or 24px) of right padding, causing
8px of horizontal overflow.

Fixed by matching the negative right margin to the actual padding:
- ArtistDetailView: -16px → -8px, width calc(100%+40px) → calc(100%+32px)
- FavoritesView: -16px → -8px, width calc(100%+40px) → calc(100%+32px)
- LocalLibraryView: -16px → -8px, width calc(100%+40px) → calc(100%+32px)
- SettingsView: -32px → -24px, width calc(100%+64px) → calc(100%+56px)
2026-01-24 00:40:37 -06:00
vicrodh d721859046 feat(artist): make Tributes collapsible with info tooltip
- Reorder sections: Others -> Playlists -> Tributes
- Tributes section now collapsed by default with expand/collapse caret
- Add info icon with tooltip explaining content may include covers by other artists
- Implement pagination with Load More (20 items at a time)
- Sort dropdown only visible when section is expanded
2026-01-24 00:34:17 -06:00
vicrodh a84cf97d36 feat(artist): independent sort filters per section, remove divider lines
- Add margin-bottom 2px to local-library-section in sidebar
- Make dividers transparent (keep spacing, remove visible line)
- Add independent sort dropdowns to: EPs & Singles, Live Albums,
  Compilations, Tributes & Covers, Others
- Each section maintains its own sort state
2026-01-24 00:19:49 -06:00
vicrodh d7805d12ee style(sidebar): consistent scrollbar, smaller toggle button
- Scrollbar always visible (subtle), overlay mode in both states
- margin-right: 1px for slight visual separation
- Collapsed icons: padding-left 1px to compensate and stay aligned
- Toggle button: 20px diameter (was 22px)
2026-01-24 00:11:26 -06:00
vicrodh 12a3393050 fix(sidebar): scrollbar position and hover reliability
- Hover on .sidebar (larger area, more reliable)
- Collapsed mode: margin-right 6px (away from toggle button)
- Removed padding-left that misaligned icons
2026-01-23 23:53:08 -06:00
vicrodh 25fd5da72d fix(sidebar): scrollbar hover on content area, align collapsed icons
- Scrollbar shows on .content hover (works for both modes)
- Collapsed playlist icons: padding-left 1px for alignment
2026-01-23 23:47:29 -06:00
vicrodh ab6cbfa414 style(sidebar): scrollbar hover on section, smaller toggle button
- Scrollbar shows on playlists-section hover (not just scrollbar area)
- Toggle button: 22px diameter (was 24px), right: -11px
2026-01-23 23:44:26 -06:00
vicrodh eebf766f1c fix(sidebar): scrollbar visibility on hover
- Add scrollbar-color for Firefox support
- Remove transition (not supported on scrollbar pseudo-elements)
2026-01-23 23:41:49 -06:00
vicrodh f3467706ce style(sidebar): hide scrollbar by default, align collapsed icons
- Scrollbar hidden by default, visible on hover
- Space reserved (4px width maintained)
- Moved 1px right (margin-right: 3px)
- Collapsed mode: margin-right 0 to align icons with rest of sidebar
2026-01-23 23:40:43 -06:00
vicrodh 153e820523 style(sidebar): move scrollbar 4px left with margin-right 2026-01-23 23:37:33 -06:00
vicrodh c028ac628f style(sidebar): darker toggle shadow, unified thin scrollbar
- Toggle shadow: -4px 0 12px with 0.75 alpha (falls on sidebar)
- Scrollbar: moved 2px left (padding-right: 2px)
- Both views now use same 4px thin scrollbar style
2026-01-23 23:36:13 -06:00
vicrodh f375ae23fe style(sidebar): solid toggle button with shadow
- Remove transparency, use solid bg-tertiary
- Reduce diameter from 28px to 24px (center preserved)
- Add drop shadow like context menu caret
2026-01-23 23:32:07 -06:00
vicrodh ada7b7b84c style(artist): remove solid backgrounds, Load More button, thin badges
- Remove solid background from Discography and all sections below
- Remove Load More button from Discography (initial display sufficient)
- Change badge font-weight to 100 (Thin) in AlbumCard and QualityBadge
- Use LINE Seed JP font family for badges
2026-01-23 23:29:09 -06:00
vicrodh e404048c5b fix(artist): bio truncation reactivity, adjust margins
- Observe parent container for resize (not clamped element)
- Double RAF ensures CSS applies before measurement
- top-tracks-section: margin-top 32px
- artist-header: margin-bottom 22px
2026-01-23 20:51:09 -06:00
vicrodh f19081ee1d feat(artist): smart 3-line bio truncation with resize detection
- Use CSS line-clamp for exactly 3 lines (reactive to container width)
- ResizeObserver detects window/container resizes
- Auto-hide Read more/Show less if text fits in 3 lines
- Works across all screen sizes (4K to HD)
2026-01-23 18:58:15 -06:00
vicrodh 30bb7bc980 fix(artist): spacing, hover glow, context menu homologation
- Change margin-top to padding-top for 10px spacing (avoids collapse)
- Add animated glow expansion on Play All button hover
- Match context menu styling to TrackMenu component
2026-01-23 18:52:50 -06:00
vicrodh dc0038fbfb style(artist): subtle glow on Play All, outline on context button 2026-01-23 18:47:49 -06:00
vicrodh 3f9d7e4de5 style(artist): polish Popular Tracks buttons and menu
- Add 10px top margin for spacing from jump-nav
- Play All button (44px) larger than context menu button (40px)
- Add backdrop to context menu for click-outside-to-close behavior
- Reduce icon size in smaller button (18px)
2026-01-23 18:47:06 -06:00