Go to file
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
build chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00
docs ui: VOD sort dropdown with persisted key + locale labels 2026-05-03 15:54:53 +02:00
scripts infra: release_gitea.mjs --skip-build + playwright in devDeps 2026-05-03 15:29:17 +02:00
src feat: VOD bulk-action bar — slide-in animation + style extracted from inline 2026-05-11 01:41:08 +02:00
.gitignore chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00
eslint.config.mjs chore: add ESLint with security plugin, fix code quality warnings 2026-03-22 14:55:35 +01:00
package-lock.json release: 4.6.28 active streamer highlight + dead scrollbar cleanup 2026-05-11 01:36:32 +02:00
package.json release: 4.6.28 active streamer highlight + dead scrollbar cleanup 2026-05-11 01:36:32 +02:00
README_AI_RELEASE.md docs: add AI release runbook for gitea 2026-03-05 01:04:18 +01:00
tsconfig.json chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00