github marigold-ui/marigold @marigold/system@17.2.0

Minor Changes

  • ed928a0: Update ActionBar with enter/exit animations, keyboard support, and built-in Table integration.

    • Add useActionBar hook and ActionBarContext for managing selection state between ActionBar and Table
    • Add actionBar render prop to Table for automatic selection wiring and ActionBar positioning
    • Add enter/exit animations using motion/react and react-aria useEnterAnimation/useExitAnimation
    • Add Escape key support to clear selection via FocusScope and useKeyboard
    • Add screen reader announcement when ActionBar appears
    • Add localized selectedCount/selectedAll messages (en-US, de-DE)
    • Update ActionBar theme slots: rename actions to toolbar, add selection slot
    • Update theme type definition to match new slot names
  • b115fda: Migrate from class-variance-authority to cva and simplify extendTheme via function composition.

    • Replace class-variance-authority dependency with cva (v1 beta), which has built-in Tailwind merge support via defineConfig
    • Refactor the custom cva wrapper to use cva's defineConfig with a twMerge hook, storing variant configs in a WeakMap (for docs introspection) instead of a .variants property
    • Simplify extendTheme to compose style functions directly (cn(existingFn(props), newFn(props))) instead of extracting and merging variant configs — this preserves defaultVariants and compoundVariants that were previously lost during merging
    • Update all theme style files in theme-rui to the new cva API (object config with base/variants/compoundVariants keys)
  • 61bfc60: Refactor relational spacing scale for better semantic clarity and visual rhythm.

    • Rename --spacing-peer token to --spacing-regular
    • Remove unused --spacing-joined and --spacing-context tokens
    • Adjust spacing scale values: tight (4px→6px), regular (16px→24px), group (32px→48px), section (64px→96px)
    • Move field-internal spacing from theme (Field.styles space-y-2) into component implementations using new in-field custom variant
    • Add in-field:mb-1.5 to Label and in-field:mt-1 to HelpText for consistent field layout
    • Update SpacingTokens type to reflect new scale
  • c3bf8e4: feat([DST-1168]): Introduce TopNavigation Component

    • Three-slot grid layout (Start, Middle, End) using compound component pattern
    • Semantic HTML with <header> container and <nav> landmarks
    • Sticky by default, configurable alignment, and i18n ARIA labels
    • Theme styles for theme-rui and type definitions in @marigold/system

Patch Changes

  • 91eb222: Update ActionBar styling with surface contrast and dedicated button slot.

    • Apply ui-surface-contrast utility to ActionBar container for adaptive theming
    • Add button slot to ActionBar theme for properly styled action buttons (replaces Button.ghost)
    • Add clearButton hover/focus/disabled styles using theme-aware utilities
    • Update ActionButton to use ActionBar.button classNames instead of Button.ghost
    • Replace CloseButton with IconButton for the clear selection button
    • Update stories to use lucide-react icons directly
  • cf56729: Add explicit types condition to package exports for reliable type resolution.

  • 7ca2eb1: feat([DST-1227]): 💄 Implement Animated Transitions for Tabs Component, The active tab underline must slide smoothly between items

  • beebd7c: Improve ListBox and Menu usability on mobile screens (DST-1210).

    • Align useSmallScreen hook with Tailwind's sm breakpoint by deriving the value from defaultTheme.screens.sm using CSS Media Queries Level 4 range syntax (width < 640px)
    • Add max-sm:min-h-11 (44px) to ListBox and Menu items for WCAG 2.1 touch targets on mobile
    • Replace min-[600px]: with sm: in Table editable cell styles for breakpoint consistency
    • Refactor useSmallScreen to use MediaQueryList.addEventListener('change') instead of window.resize
    • Extract shared mockMatchMedia test helper into test.utils
  • d963df2: chore: Update React Aria to newest version

Don't miss a new marigold release

NewReleases is sending notifications on new releases.