Skip to content

0.82.0 - Add SplitButton component - #90

Merged
jalexw merged 3 commits into
mainfrom
claude/determined-feynman-e7pssm
Jul 8, 2026
Merged

0.82.0 - Add SplitButton component#90
jalexw merged 3 commits into
mainfrom
claude/determined-feynman-e7pssm

Conversation

@jalexw

@jalexw jalexw commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduces a new SplitButton component that combines a primary action button with a dropdown menu of related secondary actions. This follows the split button UI pattern commonly used for operations like "Save" with options like "Save as draft" or "Deploy" with environment variants.

Changes

  • New component: SplitButton with composable sub-components

    • SplitButton - Root container managing dropdown state and context
    • SplitButtonAction - Primary action button (left side)
    • SplitButtonTrigger - Dropdown trigger button with chevron icon (right side)
    • SplitButtonContent - Dropdown menu content wrapper
  • Variant support: Mirrors Button variants (default, destructive, outline, secondary, ghost)

  • Size support: Matches Button sizes (sm, default, lg) with appropriately scaled chevron icons

  • Accessibility:

    • Icon-only trigger includes aria-label (defaults to "Show more actions")
    • Proper aria-haspopup="menu" on trigger
    • Context-based validation ensures components are used correctly
  • Styling details:

    • Divider between action and trigger with variant-specific colors and opacity
    • Rounded corners removed where buttons meet (rounded-r-none on action, rounded-l-none on trigger)
    • Focus ring z-index management for proper stacking
    • Chevron rotates 180° when dropdown opens
  • Comprehensive Storybook stories demonstrating:

    • Default pattern with Save action
    • Destructive variant (Delete vault)
    • Outline, Secondary, and Ghost variants
    • Disabled state
    • All variants side-by-side comparison
    • All sizes side-by-side comparison
    • Real-world schema migration example
  • Package exports: Added to main src/components/ui/index.ts for public API

  • Version bump: 0.80.0 → 0.81.0

https://claude.ai/code/session_01VYAiy4xGQG2Jd1a713EHBK

…actions dropdown) with variants, sizes, and a Storybook story.
@vercel

vercel Bot commented Jul 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ui Ready Ready Preview, Comment Jul 8, 2026 12:54pm

Request Review

@jalexw jalexw self-assigned this Jul 8, 2026
@jalexw jalexw changed the title 0.81.0 - Add SplitButton component 0.82.0 - Add SplitButton component Jul 8, 2026
@jalexw
jalexw merged commit a8d1182 into main Jul 8, 2026
10 checks passed
@jalexw
jalexw deleted the claude/determined-feynman-e7pssm branch July 8, 2026 12:58
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.

2 participants