Skip to content

[Feature]: Additive Animations menu — keep bundled clips, append custom, scroll + search #46

Description

@rosspeili

One-line summary

After custom .vrma folders (#23 / #45), change Gear → Animations from replace to additive: keep the bundled Default sequence and VRMA pack always available, append custom-folder clips, scroll when long, mark custom rows, and add a small filter/search.

Problem / motivation

#23 shipped replace semantics (like Avatars): with Settings → Directories → Animations → Custom active, the menu shows only that folder — Default and the bundled pack disappear. That forces a folder switch just to play Greeting / Default again.

For motion, users usually want both: the known bundled set and their own clips. Environments already keep built-ins while Custom adds media; Animations should lean that way in the gear menu.

Proposed solution

Build on the scan / IPC / blob / lib-anim-* work from #45 (keep the Directories row). Change catalog composition + menu UX:

  1. Additive catalog — when a custom animations folder is active:
    bundled (Default + pack) + custom clips (sorted within custom; bundled order unchanged).
    When Custom is off / Default row: bundled only (today).
  2. Default always reachable — no need to reset the Directories row to play Default or a pack clip.
  3. Scrollable Animations submenu when the list exceeds the current no-scrollbar height (match other long panels’ scroll feel; keep glass bar usable).
  4. Custom visual mark — e.g. soft lilac pastel stroke / accent on custom rows so they read apart from bundled (minimal, not noisy).
  5. Filter bar — small glassmorph search at the top of the Animations submenu; filters the visible list by label as the user types (bundled + custom). Clear / empty = full list. Could be the case that the bar only appears when we click mag glass icon, or minimize back when input focus is not writting, eg. clicking elsewhere.
  6. Docs — update VRMA (drop “replaces, does not add”), using-the-app, manual-testing, changelog; screenshot if the menu chrome changes.
  7. Empty / invalid folder — same reject UX as Avatars / Environments: red in-panel error when the folder has no accepted .vrma (or cannot be applied); do not leave Custom armed on a bad path — return the Directories row to Default and keep the bundled menu. Match existing copy/tone where possible.

Out of scope here: custom Default-sequence builder, hotkeys (#24), keywords (#7), thumbnails in the menu.

Alternatives considered

Approach Why not / later
Keep replace (#23 as shipped) Forces folder toggle to reach Default; weak for “bring your own and keep the pack”
Always keep Default only, hide other pack clips when Custom on Better than full replace, but still hides useful bundled one-shots
Search only, no additive Doesn’t restore Default while Custom is active
Heavy sidebar / second Animations panel Overkill; stay in the gear submenu

Primary surface

Animations

Constraints you accept

  • Should stay usable offline / local-first
  • Browser-only mode may remain limited vs Electron

Mock / sketch / reference (optional)

Gear → Animations: [ search…… ] then Default, pack clips, then custom rows with lilac stroke; list scrolls. Directories row still picks the folder; it no longer empties the bundled half of the menu.

Related: #23, #45. Depends on custom-folder plumbing already on main after #45 merges.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:animationsDefault sequence, VRMA clips, cross-fadearea:glass-barGlass bar, gear menus, drawers, dismissfeatureNew feature or improvement requestneeds designNeeds UX / visual decision before implementationplatform:electronElectron shell, IPC, loopback, luma sampling

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions