Skip to content

2.0.0 (2026-08-04)

Choose a tag to compare

@Zefling Zefling released this 04 Aug 22:02
· 79 commits to main since this release
fd5d342

🫒 Breaking

  • Outputs renamed (public API):
    • dialog: (onClose) β†’ (closed)
    • input-*: (change) β†’ (valueChange)
    • input-select:
      • (close) β†’ (selectClose)
      • (focus) β†’ (selectFocus)
      • (blur) β†’ (selectBlur)
      • (search) β†’ (selectSearch)
      • (scroll) β†’ (selectScroll)
    • light-dark: (change) β†’ (themeChange)
    • window:
      • (onClose) β†’ (closed)
      • (onMinimize) β†’ (minimized)
      • (onMaximize) β†’ (maximized)
      • (onRestore) β†’ (restored)
      • (onFocus) β†’ (focused)
  • Inputs renamed (public API):
    • window:
      • [bar-title] β†’ [barTitle]
      • [bar-buttons] β†’ [barButtons]
      • [min-width] β†’ [minWidth]
      • [max-width] β†’ [maxWidth]
      • [min-height] β†’ [minHeight]
      • [max-height] β†’ [maxHeight]
  • Directive inputs/outputs renamed (public API):
    • sortable:
      • [sortable-filter-input] β†’ [sortableFilterInput]
      • [sortable-filter] β†’ [sortableFilter]
      • (sortable-change) β†’ (sortableChange)
      • [sort-rule] β†’ [sortRule]
    • context menu:
      • [contextMenu] β†’ [mgContextMenu]
      • [contextMenuMode] β†’ [mgContextMenuMode]
      • [contextMenuDisabled] β†’ [mgContextMenuDisabled]
    • datetime picker:
      • [datetimePicker] β†’ [mgDatetimePicker]
      • [datetimePickerType] β†’ [mgDatetimePickerType]
      • [datetimePickerDisabled] β†’ [mgDatetimePickerDisabled]
      • [datetimePickerReadonly] β†’ [mgDatetimePickerReadonly]
      • [datetimePickerLang] β†’ [mgDatetimePickerLang]
      • [datetimePickerMin] β†’ [mgDatetimePickerMin]
      • [datetimePickerMax] β†’ [mgDatetimePickerMax]
      • [datetimePickerFirstDayOfWeek] β†’ [mgDatetimePickerFirstDayOfWeek]
      • [datetimePickerWeekend] β†’ [mgDatetimePickerWeekend]
      • [datetimePickerhideWeekendStyle] β†’ [mgDatetimePickerhideWeekendStyle]
      • [datetimePickerHideWeekNumber] β†’ [mgDatetimePickerHideWeekNumber]
    • stop-propagation β†’ stopPropagation
  • Component selectors renamed to follow mg-* convention:
    • color-picker β†’ mg-color-picker
    • context-menu β†’ mg-context-menu
    • datetime-picker β†’ mg-datetime-picker
    • info-message β†’ mg-info-message
    • info-messages β†’ mg-info-messages

βœ… New

  • Chips: new style (class .chip, .chips)
  • Palette: new semantic color layer with configurable hue and saturation
    • parametrize the hue and saturation of every color family
    • add semantic color tokens (--color-on-surface, --color-border, …)
    • adjust light color values for better contrast
  • limit-focus directive: extended to handle contenteditable, <summary>, media controls and inert elements

β™Ώ Accessibility

  • color-picker:
    • cursor zone is now focusable (tabindex="0", role="slider")
    • full ARIA value attributes (aria-valuenow/min/max)
    • keyboard control: Arrow keys adjust lightness/saturation, Shift multiplies step by 10
    • cursorZoneLabel is translatable via the texts() input
    • palette buttons now have aria-label with the color value
  • tabs:
    • mg-tab-title exposes role="tab", aria-selected and aria-controls
    • roving tabindex: only the active tab has tabindex="0"
    • tabpanel linked via aria-controls
    • scroll buttons: mouseout β†’ mouseleave + blur, marked aria-hidden/tabindex="-1"
  • dialog: added aria-modal="true"
  • context-menu: added role="menu" on <menu>, items with actions get role="menuitem"
  • datetime-picker: improved ARIA semantics
  • inputs: improved ARIA semantics

🐞 Fix

  • input-range: (valueChange) was not emitted on input event
  • palette: semantic token contrast fixes (light mode):
    • --color-on-surface-muted: ratio 4.06:1 β†’ 6.02:1 (AA text)
    • --color-border: ratio 2.55:1 β†’ 4.06:1 (AA non-text)
    • --color-border-strong: maintains differentiation from new --color-border
  • ellipsis-button: switched to OnPush change detection

🎨 Style

  • new CSS variables:
    • Semantic color tokens (new layer, consumed by all components):
      • --color-surface β€” page/card background
      • --color-surface-raised β€” elevated surface (cards, dropdowns)
      • --color-surface-sunken β€” recessed surface (inputs, wells)
      • --color-on-surface β€” default text/icon on surface
      • --color-on-surface-muted β€” secondary text on surface
      • --color-on-primary β€” text/icon on primary color
      • --color-primary β€” primary interactive color
      • --color-primary-hover β€” primary hover state
      • --color-border β€” default border
      • --color-border-strong β€” stronger border (focus rings, separators)
      • --color-focus-ring β€” keyboard focus outline
    • Palette knobs:
      • --primaryS β€” primary saturation
      • --primarySsoft β€” primary soft saturation
      • --neutralH β€” neutral hue
      • --neutralS β€” neutral saturation
      • --alertH β€” alert hue
      • --warnH β€” warn hue
      • --successH β€” success hue
    • Chips (new component):
      • --chip-background β€” background color
      • --chip-color β€” text color
      • --chip-border-color β€” border color
      • --chip-border-radius β€” border radius
      • --chip-font-size β€” font size
      • --chip-padding β€” padding
      • --chip-hover-background β€” hover background
      • --chip-hover-color β€” hover text color
      • --chip-hover-border-color β€” hover border color
      • --chip-hover-padding β€” hover padding
      • --chip-active-background β€” active/selected background
      • --chip-active-color β€” active/selected text color
      • --chip-active-border-color β€” active/selected border color
      • --chip-active-padding β€” active/selected padding
    • Messages:
      • --floating-message-background β€” floating message background
      • --floating-message-border-color β€” floating message border color
      • --floating-message-box-shadow-color β€” floating message shadow color
      • --floating-message-progress-background β€” floating message progress bar background
      • --warn-message-background β€” warn message background
      • --warn-message-border-color β€” warn message border color
      • --warn-message-box-shadow-color β€” warn message shadow color
      • --warn-message-color β€” warn message text color
      • --warn-message-progress-background β€” warn message progress bar background
      • --success-message-background β€” success message background
      • --success-message-border-color β€” success message border color
      • --success-message-box-shadow-color β€” success message shadow color
      • --success-message-color β€” success message text color
      • --success-message-progress-background β€” success message progress bar background
    • Misc:
      • --transparency-checkerboard β€” checkerboard pattern for transparency preview
      • --color-picker-embedded-shadow-color
      • --datetime-picker-embedded-shadow-color
      • --ellipsis-list-shadow-color
      • --context-menu-item-shadow-color
      • --window-bar-button-color β€” window bar button color
  • removed CSS variables:
    • --error-message-error-background β€” replaced by the new message token system
  • components: remove remaining hardcoded colors, now use CSS variables

πŸ“ Lint

  • add ESLint via angular-eslint with a documented rule baseline
  • all lint errors cleared; no-input-rename, no-output-rename, no-output-native, no-output-on-prefix promoted to error

🎦 Demo

  • palette:
    • expose all color values
    • live contrast checker (WCAG 2.1 AA pass/fail)
    • dynamic change value, hue and saturation to create a new theme
    • 12 predefined themes
      • Ocean β€” default
      • Forest
      • Sunset
      • Lavender
      • Rose
      • Teal
      • Slate
      • Gold
      • Monochrome
      • Nord
      • Dracula
      • Solarized
  • chips: new demo page
  • fix blinking in demo and scrollbar in menu