You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The existing OptionsMenu component is one of the more established components before some of the more modern practices have been put into place in Cauldron. There's some fairly outdated patterns and the inflexibility of the component has led to various bugs and very restricted usage.
Changes to the component patterns would very likely require very significant breaking changes. As such, usage of OptionsMenu should be deprecated and implemented as a new set of components that provide similar capabilities with better design patterns. This ensures we don't require all existing usages of OptionsMenu to adhere to new patterns while providing a smoother transition path towards improved component apis.
Inspiration
The typical terminology with these types of controls is usually "ActionMenu" or "DropdownMenu" as outlined by some of the examples from other design systems below:
These components are anchored with some other control that can be optionally configured, and overlay other content on the page when expanded.
There appears to be 2 potential opposing patterns:
True menus that contain some list(s) of items that perform an action once clicked, may contain sub-menus
Overlays that contain a variety of actions, can include static content and/or form controls
Component Structure
There is a lot of similarity between the opposing patterns with the main opposition being a controlled list of items vs less structured content. We would likely want to structure the components separately to enforce some rigidity when necessary (as with an action menu) while encapsulation similar functionality.
AnchoredOverlay - Container element to display the overlay of its contents anchored to a trigger
ActionMenu - Composed with AnchorOverlay to style and contain the action menu and its list of items
ActionMenuList - Borrowing behaviors from Listbox to implement the list
ActionMenuItem - Borrowing behaviors from ListboxOption to implement the list items
ActionPanel - Composed with AnchorOverlay to style and contain items within the panel
AnchoredOverlay would be responsible for managing behaviors for with any attributes for displaying, such as aria-expanded. While each of the components could manage individual behaviors for its respective components. We'd likely want to replace/share some of the existing functionality that exists within Combobox with AnchoredOverlay so that we can consolidate these patterns within a single component.
Implementations
The content you are editing has changed. Please copy your edits and refresh the page.
The existing
OptionsMenu
component is one of the more established components before some of the more modern practices have been put into place in Cauldron. There's some fairly outdated patterns and the inflexibility of the component has led to various bugs and very restricted usage.Changes to the component patterns would very likely require very significant breaking changes. As such, usage of
OptionsMenu
should be deprecated and implemented as a new set of components that provide similar capabilities with better design patterns. This ensures we don't require all existing usages ofOptionsMenu
to adhere to new patterns while providing a smoother transition path towards improved component apis.Inspiration
The typical terminology with these types of controls is usually "ActionMenu" or "DropdownMenu" as outlined by some of the examples from other design systems below:
These components are anchored with some other control that can be optionally configured, and overlay other content on the page when expanded.
There appears to be 2 potential opposing patterns:
Component Structure
There is a lot of similarity between the opposing patterns with the main opposition being a controlled list of items vs less structured content. We would likely want to structure the components separately to enforce some rigidity when necessary (as with an action menu) while encapsulation similar functionality.
AnchoredOverlay
- Container element to display the overlay of its contents anchored to a triggerActionMenu
- Composed withAnchorOverlay
to style and contain the action menu and its list of itemsActionMenuList
- Borrowing behaviors fromListbox
to implement the listActionMenuItem
- Borrowing behaviors fromListboxOption
to implement the list itemsActionPanel
- Composed withAnchorOverlay
to style and contain items within the panelAnchoredOverlay
would be responsible for managing behaviors for with any attributes for displaying, such asaria-expanded
. While each of the components could manage individual behaviors for its respective components. We'd likely want to replace/share some of the existing functionality that exists withinCombobox
withAnchoredOverlay
so that we can consolidate these patterns within a single component.Implementations
Components
The text was updated successfully, but these errors were encountered: