Twitch-VOD-Manager/src
xRangerDE 9115819bb0 feat: VOD bulk-action bar — slide-in animation + style extracted from inline
The bulk-action bar (the purple-tinted row that appears between the
VOD filter and the grid when 1+ VOD checkbox is ticked) was 100%
inline-styled in HTML, which meant:
- No animation when it appears — it just popped into existence
- No reusable styling for similar action surfaces later
- Layout debugging meant editing HTML, not CSS

Extracted to a proper .vod-bulk-bar class, plus .vod-bulk-count for
the "N selected" label and a .vod-bulk-spacer for the flex push.
The CSS rule also picks up a 4px soft purple shadow + a slightly
richer gradient background that matches the rest of the purple
surfaces in the app.

Animation: vod-bulk-bar-slide @keyframes fires every time the JS
flips display:none -> display:flex, because @keyframes restart on
each display change. 220ms, cubic-bezier(0.16, 1, 0.3, 1) for a
quick spring landing, 10px translateY-from + opacity 0->1. The
appear feels intentional now instead of jarring.

Disappear (display:flex -> none) still snaps because CSS cannot
transition through display:none — adding that would require a
class-toggle refactor and an explicit timer to defer the actual
removal. Not worth the complexity for the polish-grade improvement
this is going for.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:41:08 +02:00
..
index.html feat: VOD bulk-action bar — slide-in animation + style extracted from inline 2026-05-11 01:41:08 +02:00
main.ts feat: sidebar live indicators + polished hover + empty-state animation 2026-05-11 01:11:26 +02:00
preload.ts feat: sidebar live indicators + polished hover + empty-state animation 2026-05-11 01:11:26 +02:00
renderer-archive.ts feat: local archive search — new Archiv tab 2026-05-11 00:26:42 +02:00
renderer-globals.d.ts feat: sidebar live indicators + polished hover + empty-state animation 2026-05-11 01:11:26 +02:00
renderer-locale-de.ts feat: sidebar live indicators + polished hover + empty-state animation 2026-05-11 01:11:26 +02:00
renderer-locale-en.ts feat: sidebar live indicators + polished hover + empty-state animation 2026-05-11 01:11:26 +02:00
renderer-profile.ts fix: sticky header opaque + banner visible + missing button styles 2026-05-11 01:04:22 +02:00
renderer-queue.ts feat: live recording health indicator (green/amber dot per item) 2026-05-10 22:04:53 +02:00
renderer-settings.ts feat: auto-merge resumed live-recording parts via ffmpeg concat 2026-05-11 00:29:54 +02:00
renderer-shared.ts fix: persist expanded details across re-renders, guard drag-drop init against duplicates 2026-03-21 15:03:20 +01:00
renderer-stats.ts feat: archive statistics dashboard 2026-05-11 00:20:14 +02:00
renderer-streamers.ts feat: sidebar streamer counter + VOD duration badge + queue shimmer + chat polish 2026-05-11 01:23:18 +02:00
renderer-texts.ts feat: auto-merge resumed live-recording parts via ffmpeg concat 2026-05-11 00:29:54 +02:00
renderer-updates.ts feat: skip-version + addStreamer validation + smart-scheduler tooltip 2026-05-10 12:14:13 +02:00
renderer-vod-hover.ts feat: banner background + live preview card + VOD hover storyboard + sticky header 2026-05-11 00:55:17 +02:00
renderer.ts feat: sidebar streamer counter + VOD duration badge + queue shimmer + chat polish 2026-05-11 01:23:18 +02:00
styles.css feat: VOD bulk-action bar — slide-in animation + style extracted from inline 2026-05-11 01:41:08 +02:00
tools.ts refactor: extract tool discovery functions to src/tools.ts 2026-03-20 10:00:51 +01:00
types.ts feat: live recording health indicator (green/amber dot per item) 2026-05-10 22:04:53 +02:00
update-version-utils.ts chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00