All Projects → mrwweb → clicky-menus

mrwweb / clicky-menus

Licence: MIT license
Simple click-triggered navigation submenus. Accessible and progressively enhanced.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to clicky-menus

React Menu
React component for building accessible menu, dropdown, submenu, context menu and more.
Stars: ✭ 237 (+211.84%)
Mutual labels:  accessibility, dropdown, menu
Azdropdownmenu
A simple dropdown menu component for iPhone
Stars: ✭ 198 (+160.53%)
Mutual labels:  dropdown, menu
Dopdropdownmenu Enhanced
DOPDropDownMenu 添加双列表 优化版 新增图片支持(double tableView, The optimization version ,new add image,detailText)
Stars: ✭ 1,757 (+2211.84%)
Mutual labels:  dropdown, menu
React Native Dropdown Picker
A single / multiple, categorizable & searchable item picker (dropdown) component for react native which supports both Android & iOS.
Stars: ✭ 230 (+202.63%)
Mutual labels:  dropdown, menu
Yndropdownmenu
✨ Awesome Dropdown menu for iOS with Swift 5.0
Stars: ✭ 1,259 (+1556.58%)
Mutual labels:  dropdown, menu
Custom Reactjs Dropdown Components
Custom dropdown components for ReactJS
Stars: ✭ 110 (+44.74%)
Mutual labels:  dropdown, menu
Ifmmenu
仿微信添加菜单
Stars: ✭ 235 (+209.21%)
Mutual labels:  dropdown, menu
Tippyjs React
React component for Tippy.js (official)
Stars: ✭ 1,081 (+1322.37%)
Mutual labels:  dropdown, menu
Easydropdown
💧 Fantastic dropdown in Swift
Stars: ✭ 254 (+234.21%)
Mutual labels:  dropdown, menu
eureka
HTML-first crack at a Flexible Media Browser progressively enhanced with React
Stars: ✭ 18 (-76.32%)
Mutual labels:  accessibility, progressive-enhancement
chaarts
Charts with HTML & CSS
Stars: ✭ 79 (+3.95%)
Mutual labels:  accessibility, progressive-enhancement
Igldropdownmenu
An iOS drop down menu with pretty animation and easy to customize.
Stars: ✭ 1,218 (+1502.63%)
Mutual labels:  dropdown, menu
Tippyjs
Tooltip, popover, dropdown, and menu library
Stars: ✭ 9,433 (+12311.84%)
Mutual labels:  dropdown, menu
Bootstrap Dropdown Hover
Bootstrap based responsive mulltilevel dropdown navigation menu with fascinating animations
Stars: ✭ 115 (+51.32%)
Mutual labels:  dropdown, menu
Ember Select Box
🔠 A faux select box for Ember apps
Stars: ✭ 60 (-21.05%)
Mutual labels:  dropdown, menu
React Dropdown Select
Customisable dropdown select for react
Stars: ✭ 227 (+198.68%)
Mutual labels:  dropdown, menu
Dropdownmenu
DropDownMenu for Android,Filter the list based on multiple condition.
Stars: ✭ 815 (+972.37%)
Mutual labels:  dropdown, menu
Kpdropmenu
KPDropMenu is an Objective-C port of HADropDown With Additional features
Stars: ✭ 50 (-34.21%)
Mutual labels:  dropdown, menu
Dropdownmenukit
UIKit drop down menu, simple yet flexible and written in Swift
Stars: ✭ 246 (+223.68%)
Mutual labels:  dropdown, menu
Core Components
Accessible and lightweight Javascript components
Stars: ✭ 85 (+11.84%)
Mutual labels:  accessibility, dropdown

Clicky Menus!

A project by Mark Root-Wiley, MRW Web Design

Clicky Menus lets you create a progressively-enhanced, accessible one-level dropdown menu that opens when activated by click, touch, or ENTER/SPACE. The menu is progressively enhanced, supporting hover and keyboard navigation (in modern browsers) if JS is not enabled.

Basic Features

  • Supports mouse, touch, and keyboard interactions
  • Turns parent items from links into buttons
  • aria-expanded, aria-controls and aria-hidden support
  • Close open submenu with ESC key
  • Close open submenu with click outside of open menu
  • Basic offscreen-menu prevention

Why only one level of submenu?

This script only supports a single level of submenus, i.e., there are no "sub-sub-menus" or "tertiary menus". This is intentional because:

  1. I don't like them personally and think of them as a bit of a "navigation smell"—a la "code smell".
  2. This makes it very easy to make "mega menus" that can contain nested lists (basically permanently visible tertiary menus).

If you really want this feature, there's an open issue for sharing use cases. If you want to submit a pull request, please coordinate on that issue before doing any work!

Browser Support

All Modern Browsers such as Firefox, Chrome, Edge, and Safari.

Internet Explorer 11 support is possible if you include polyfills for closest and NodeList.forEach and transpile your code with something like Babel.

Expected Markup

<nav id="primary-nav"> <!-- element must have an ID -->
	<ul class="clicky-menu no-js">
		<li>
			<a href="#">Menu Item 1</a>
			<ul>
				<li><a href="page-1a.html">Menu Item 1a</a></li>
				<li><a href="page-1b.html">Menu Item 1b</a></li>
				<li><a href="page-1c.html">Menu Item 1c</a></li>
			</ul>
		</li>
		<--! etc… -->
	</ul>
</nav>

Setup

Include clicky-menus.js anywhere in the DOM and clicky-menus.css in the <head>.

Changelog

1.0.0

  • It's alive!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].