Skip to content

feat: create-menu block (morphing grid menu)#74

Merged
starc007 merged 3 commits into
mainfrom
feat/create-menu
Jun 26, 2026
Merged

feat: create-menu block (morphing grid menu)#74
starc007 merged 3 commits into
mainfrom
feat/create-menu

Conversation

@starc007

Copy link
Copy Markdown
Owner

A CTA button that expands into a grid menu — shared-layout morph + clip-path reveal, bouncy folder-style spring.

What

  • CreateMenu (blocks): a "Create new" button that morphs open into a 3×2 grid (Project, Notebook, Notes, Goal, Milestone, Event) via a shared layoutId, with a clip-path reveal and staggered items.
  • Bouncy expand (low-damping spring), Esc + outside-click close, reduced-motion safe.
  • beUI styling and our own labels; built from a reference concept, restyled to the library (monospace caps, hairline grid, theme tokens).

Tests

Added to the axe a11y suite. bun run check clean, bun test 18/18. Rendered the open state to confirm layout.

starc007 added 3 commits June 26, 2026 11:24
A 'Create new' button that expands into a grid menu with shared-layout morph,
clip-path reveal and a bouncy folder-style spring; items stagger in. Esc and
outside-click close, reduced-motion safe. beUI styling and labels.
Grow the morph from a fixed center in every direction by centering both
states in a fixed-size box (place-items-center only centers an item that
fits its cell) and popping the exiting trigger out of grid flow. Draw the
grid with static hairline borders instead of an animated fill so rows
don't flicker as they stagger in, and give the label and panel content
their own layout so they stay crisp instead of stretching with the box.
@starc007 starc007 merged commit c4e338e into main Jun 26, 2026
2 checks passed
@starc007 starc007 deleted the feat/create-menu branch June 26, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant