100 Commits
Author SHA1 Message Date
thePR0M3TH3ANandClaude Opus 4.8 c72c74d15b Mobile profile tab grid: uniform card tiles (fix ellipse/uneven look)
The mobile tab grid reshaped btn-ghost pills, so tiles were rounded-full
ellipses that turned into circles once a label wrapped, and a single 2-line
label ("Admin (Moderation)") stretched its whole row taller than the rest.

- Uniform tile height via grid-auto-rows (a 2-line label can no longer
  stretch its row); token renamed to --profile-modal-nav-tile-height (5rem).
- Consistent card radius (--radius-xl) instead of rounded-full.
- Subtle --color-panel fill so tiles read as solid cards, not floating
  outlines (the active tile's bg-primary keeps winning on specificity).
- overflow:hidden + block-size:100% so content fills each equal tile cleanly.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-08 07:16:52 -04:00
thePR0M3TH3ANandClaude Opus 4.8 0e2f81d222 Mobile: tour bottom-sheet + measured sizing; tidy profile tab-grid tiles
Onboarding tour (tourEngine.js):
- On narrow viewports (<640px) dock the popover as a fixed BOTTOM SHEET
  instead of anchoring it — kills the off-screen/jump-to-center glitches
  caused by short viewports, wrapping buttons and URL-bar resize. The
  spotlight still highlights the target, scrolled to center so it sits above
  the sheet.
- On desktop, measure the ACTUAL popover size (getBoundingClientRect) and
  feed it to computeTourPlacement, instead of the fixed 240/336 guesses that
  pushed tall popovers off-screen.

Profile modal mobile tab grid (CSS):
- Equal-height tiles via a min-height token + centered content, so long
  labels no longer leave a ragged grid.
- Move the unread dot to the tile's top-right corner (was landing in the
  grid gutter at the vertical-nav left edge).
- Tighter line-height/padding + non-shrinking glyph.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-08 06:34:44 -04:00
thePR0M3TH3ANandClaude Opus 4.8 f46b1ce7f3 playlists(#37): restyle playlist cards (stacked cover + themed scrim) + back button
Design polish from feedback:
- Playlist cards are now a "stack of clips" cover: the first video's thumbnail
  fills a 16:9 tile with two offset/rotated layers peeking behind it (::before/
  ::after). A themed gradient scrim (accent-strong→accent→clear, via color-mix)
  darkens the base so the title sits BOLD and WHITE over the cover instead of
  small grey text underneath. Video count moved to a pill in the top-right.
  channelPlaylists.js resolves the cover from the app's active videos
  (buildVideoAddressPointer → video.thumbnail), falling back to playlist.image.
- Back button on the playlist view: was a bare "← Back to channel" text link, now
  a proper .btn-ghost (sm) pill with a chevron icon — matches the site's buttons
  and is theme-aware.
- tokens.css: added --size-4px/--size-5px for the stack offsets (token lint).

Scrim/title use --color-white (always light — the scrim is always dark
regardless of theme). Lint + build clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-06 14:18:31 -04:00
thePR0M3TH3ANandClaude Fable 5 86d7db4b1a cards: orange right-aligned zap-total badge next to view counts (#47 follow-up)
Video cards show the total sats from the shared zapTotals cache: new
--color-zap token (bitcoin orange, both themes), badge pushed to the
engagement row's end so views/comments stay left-aligned, hidden until a
nonzero total is known. The list view's zap binder fills [data-zap-total]
on bind (also scheduling the batched receipt fetch) and one shared change
listener updates every bound card as receipt batches land.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-03 21:49:35 -04:00
thePR0M3TH3ANandClaude Opus 4.8 575befb83c feed: add public popularity (views-over-time) chart in the ⋯ menu (#26)
A "Popularity" item in the video ⋯ menu opens a public views-over-time chart
(view data is public). Builds on the now-trustworthy view counts (#4).

- buildViewCountTimeSeries buckets raw kind-30079 view events by the counter's
  dedupe window (one view per viewer per day) into a cumulative series.
- buildViewCountChartSvg renders a token-colored (currentColor / text-accent)
  SVG area+line chart — no charting library, no raw colors.
- The modal fetches via listVideoViewEventsWithDefaultClient, shows the total,
  and updates LIVE by subscribing to view events (debounced re-render); cleans
  up on close (Esc / backdrop / ✕). Lazy-loaded from the menu handler so it
  only ships when opened.

New size tokens for the modal; reuses .ds-overlay-backdrop for the scrim.

Tests: tests/view-count-chart.test.mjs (cumulative dedupe, junk filtering,
SVG line/area + empty/single-point).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-24 13:51:41 -04:00
google-labs-jules[bot] 6e21247505 fix(ui): ensure modals render above video player
- Adds --z-modal-always-top: 200 token in css/tokens.css
- Adds .modal-always-on-top utility class in css/tailwind.source.css
- Applies class to EventDetailsModal, EmbedVideoModal, and ShareNostrModal
2026-01-24 20:12:04 +00:00
google-labs-jules[bot] eb25d2df89 docs(ai): improve onboarding steps and fix lint
- Fix `npm run lint` failure by replacing inline style with CSS class in `js/ui/components/SearchFilterModal.js`.
- Fix `npm run lint:tokens` failure by defining `--size-40rem` in `css/tokens.css` and using it in `css/tailwind.source.css`.
- Update `CONTRIBUTING.md` with troubleshooting tips for unit test hangs and linting failures.
- Attempt to update `caniuse-lite` to silence build warning (may persist due to environment/cache).
2026-01-24 08:37:11 +00:00
thePR0M3TH3AN d45d380e40 Improve DM unread indicators and profile modal layout 2026-01-19 15:09:35 -05:00
thePR0M3TH3AN f2484cb163 Merge branch 'unstable' into ai/onboarding-20231027-15933194820812210320 2026-01-19 14:38:33 -05:00
google-labs-jules[bot] fc9ce6916d docs(ai): improve onboarding steps and fix lint/test issues
\n- Fixed CSS linting errors by replacing raw values with design tokens in `css/tailwind.source.css`.
- Updated `scripts/check-design-tokens.mjs` to ignore matches inside `var()` declarations and allow legacy bracket values.
- Fixed a failing unit test in `tests/ui/similar-content-card.test.mjs` to match current component behavior.
- Updated `CONTRIBUTING.md` to include `npm run build:css` and clarify linting requirements.
- Enhanced `.devcontainer/devcontainer.json` to include `npm run build:css` in `postCreateCommand`.
2026-01-19 19:35:17 +00:00
google-labs-jules[bot] 9adeb0e6e5 chore(ai): apply formatting/lint autofixes
Run `npm run format` and `npm run lint`.
Fix stylelint configuration to correctly parse variables with units in their names.
Migrate raw CSS measurements to tokens in `css/tokens.css` and update usages in `css/tailwind.source.css` and HTML templates.
Improve `scripts/check-design-tokens.mjs` to handle variable names with unit-like suffixes.

Files changed:
- css/tailwind.source.css (formatted and fixed lint)
- css/tokens.css (added tokens)
- stylelint.config.cjs (fixed regex)
- scripts/check-design-tokens.mjs (improved detection logic)
- components/profile-modal.html (fixed arbitrary values)
- index.html (fixed arbitrary values)
2026-01-19 14:12:29 +00:00
thePR0M3TH3AN 54a862e38b Add messaging and notification token mappings 2026-01-18 23:33:17 -05:00
thePR0M3TH3AN 990c7f1695 Add measurement tokens for layout and media sizing 2026-01-13 21:37:54 -05:00
thePR0M3TH3AN 06c3d9a978 Add breakpoint token helpers for media queries 2026-01-13 21:26:53 -05:00
thePR0M3TH3AN a697a1de5f Refactor iframe theme accent sync 2026-01-13 20:48:05 -05:00
google-labs-jules[bot] 2912b5abbb Reduce width of Similar Content sidebar and improve layout
- Reduced width of "Similar Content" sidebar in the video modal (further reduced from 40rem to 35rem).
- Adjusted responsive widths for the sidebar:
  - LG: 30vw (was 36vw)
  - XL: 28vw (was 32vw)
- Added bottom padding to the primary video column (`.video-modal__primary`) to ensure the comments box does not touch the bottom of the scroll container.
- Updated `css/tokens.css` and `css/tailwind.source.css`.
- Regenerated `css/tailwind.generated.css`.
2026-01-13 01:26:51 +00:00
google-labs-jules[bot] 9dcd8e636b Reduce width of Similar Content sidebar in video modal
Reduced the width of the "Similar Content" sidebar by approximately 10% to provide more space for the video player.

- Updated `css/tokens.css` to reduce `--video-modal-secondary-max` from 44rem to 40rem.
- Updated `css/tailwind.source.css` to reduce the viewport width percentage clamp values:
  - LG breakpoint: 40vw -> 36vw
  - XL breakpoint: 36vw -> 32vw
- Regenerated `css/tailwind.generated.css`.
2026-01-13 01:05:01 +00:00
thePR0M3TH3AN 51ae8220aa Ensure login modal overlays profile modal 2025-10-26 19:52:00 -04:00
thePR0M3TH3AN 85f143c4dd chore: regenerate tailwind css 2025-10-24 12:40:29 -04:00
thePR0M3TH3AN dae5bbf7cd Refine video modal similar content layout 2025-10-24 12:11:41 -04:00
thePR0M3TH3AN 23ed832e7b Broaden similar content rail in video modal 2025-10-24 11:46:04 -04:00
thePR0M3TH3AN 4943437e68 Broaden video modal sidebar and hydrate lazy thumbnails 2025-10-24 10:30:25 -04:00
thePR0M3TH3AN e8058c3cdd Align video modal sidebar on desktop 2025-10-23 22:58:01 -04:00
thePR0M3TH3AN 17115d6e15 Fix video modal secondary column sizing 2025-10-23 21:53:36 -04:00
thePR0M3TH3AN b8e310bedb Refine sidebar dropup spacing and scrollbar contrast 2025-10-19 21:30:07 -04:00
thePR0M3TH3AN 88cb62df88 Adjust sidebar dropup spacing and scrollbar styling 2025-10-19 21:16:16 -04:00
thePR0M3TH3AN 9f87c62f97 Soften and shorten channel banner gradient 2025-10-19 17:54:02 -04:00
thePR0M3TH3AN a36033885e Shorten channel banner gradient and soften base 2025-10-19 17:48:29 -04:00
thePR0M3TH3AN 2624a28071 Restore channel banner gradient stops with softer base 2025-10-19 17:40:44 -04:00
thePR0M3TH3AN 676bcddebf Soften channel banner gradient opacity 2025-10-19 17:13:06 -04:00
thePR0M3TH3AN 2719772519 Shorten channel banner gradient overlay 2025-10-19 17:07:19 -04:00
thePR0M3TH3AN 1193c99afd Adjust channel profile banner gradient height 2025-10-19 16:57:21 -04:00
thePR0M3TH3AN 5fca466e94 Adjust sidebar width to accommodate dropup content 2025-10-19 14:28:44 -04:00
thePR0M3TH3AN 0aabb8c554 Split overlay gradients for header and channel 2025-10-19 13:49:25 -04:00
thePR0M3TH3AN 746fb47c57 Refine header gradient and sidebar alignment 2025-10-19 09:18:37 -04:00
thePR0M3TH3AN 3dd471c7bd Tune header gradient and sidebar alignment 2025-10-19 08:50:45 -04:00
thePR0M3TH3AN bf107e2afc Refine header gradient and sidebar alignment 2025-10-19 00:18:13 -04:00
thePR0M3TH3AN 6d66b1905c Adjust header gradient and sidebar toggle spacing 2025-10-19 00:07:01 -04:00
thePR0M3TH3AN 24f1f0e1a3 Make app header sticky above content 2025-10-18 23:42:30 -04:00
thePR0M3TH3AN f890d17c2f Merge branch 'unstable' into codex/remove-blog-view-and-update-sidebar-link 2025-10-18 15:55:49 -04:00
thePR0M3TH3AN 8c568af46a Remove local blog view in favor of configurable external link 2025-10-18 15:28:33 -04:00
thePR0M3TH3AN 77059d5c77 Ensure profile modal stacks above video modal 2025-10-18 15:20:28 -04:00
thePR0M3TH3AN eafdc1cd20 Raise banner overlay gradient opacity 2025-10-18 11:37:24 -04:00
thePR0M3TH3AN 77cb3d615d Extend banner overlay gradient height 2025-10-18 11:32:51 -04:00
thePR0M3TH3AN cd966c28af Add gradient overlay for channel banner 2025-10-18 10:52:54 -04:00
thePR0M3TH3AN 6d760d2f34 Reserve more sidebar dropup scroll space 2025-10-17 13:27:44 -04:00
thePR0M3TH3AN 7b1bb420e2 Widen sidebar dropup scroll area 2025-10-17 13:21:18 -04:00
thePR0M3TH3AN 5186b8d499 Enlarge sidebar dropup and eliminate horizontal scroll 2025-10-17 13:06:39 -04:00
thePR0M3TH3AN c633b4d905 Expand sidebar dropup capacity 2025-10-17 13:00:14 -04:00
thePR0M3TH3AN 40712256f8 Increase sidebar dropup max height 2025-10-17 12:48:11 -04:00