@zendeskgarden/css-menus

Garden component CSS

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@zendeskgarden/css-menus
11719.0.203 years ago4 years agoMinified + gzip package size for @zendeskgarden/css-menus in KB

Readme

This package is intended to provide consistent menu styling for use across Zendesk products. Menus can be used along with @zendeskgarden/css-arrows to apply an arrow indicator along the menu's border.

Installation

npm install @zendeskgarden/css-menus

Usage

Once installed, menu CSS can be accessed via postcss-import.
@import '@zendeskgarden/css-menus';

Menu CSS provides styling for the following basic structure (W3 example).
<ul aria-hidden="true" class="c-menu" role="menu">
  <li class="c-menu__item" role="menuitem">Item</li>
  <li aria-disabled="true" class="c-menu__item is-disabled" role="menuitem">Disabled Item</li>
  <li class="c-menu__separator" role="separator"></li>
  <li class="c-menu__item" role="menuitem">Another Item</li>
</ul>

The former usage pattern is common when a menu is offering a list of options (i.e. a <select> dropdown). The component CSS also supports a menu that presents a list of navigation actions (W3 example).
<nav aria-hidden="true" class="c-menu" role="menu">
  <a class="c-menu__item" href="/one">Link One</a>
  <a class="c-menu__item" href="/two">Link Two</a>
  <span class="c-menu__separator"></span>
  <a class="c-menu__item" href="/three">Link Three</a>
</nav>

Modifications

See http://zendeskgarden.github.io/css-components/menus/ for a variety of menu item classes, including modifications for: headers, add/next/previous, metadata, RTL, etc.
Use .is-open to apply easing animations to the menu (and it's arrow, if included) when a menu is shown.
<ul aria-hidden="false" class="c-arrow c-arrow--t c-menu c-menu--down is-open" role="menu">
  ...
</ul>

The modifier determines the movement (up, down, right, left) of the menu animation. Remove .is-open to ease hiding the menu.

Behavior

See the <Menu> component for show/hide behavior, positioning, and keyboard accessibility.