Navigation
Responsive navigation menus.
Demos
Basic
Simple responsive navigation.
<!-- Demo coming soon -->
import { Navigation, Utils } from 'Formstone';
Utils.ready(() => {
// Demo coming soon
});
/* Demo coming soon */
Options
Set instance options by passing a valid object at initialization, or to the public .defaults() method. Custom options for a specific instance can also be set by attaching a data-navigation-options attribute containing a properly formatted JSON object to the target element.
| Name | Type | Default | Description |
|---|---|---|---|
gravity |
string |
'left' |
Navigation gravity (left, right) |
label |
string |
'Menu' |
Accessibility label |
maxWidth |
string |
'980px' |
Width to auto-disable plugin |
type |
string |
'toggle' |
Navigation type (toggle, push, reveal, overlay) |
focusables |
string |
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])' |
Focusable elements |
Data attributes provide configuration options and can be set directly on the target element.
| Name | Type | Description |
|---|---|---|
data-navigation-options |
string (JSON) |
JSON encoded object containing instance options |
data-navigation-handle |
string |
Selector for navigation handle element |
data-navigation-content |
string |
Selector for content element |
Methods
Methods are publicly available to all active instances, unless otherwise stated.
| Name | Description |
|---|---|
.close() |
Closes navigation instance |
.construct() |
Initializes plugin on target elements |
.defaults() |
Sets default options for future instances |
.destroy() |
Removes plugin and all related data |
.disable() |
Disables navigation instance |
.enable() |
Enables navigation instance |
.open() |
Opens navigation instance |
.close()
Closes instance.
Examples
el.Navigation.close();
.construct()
Initializes plugin on target elements.
Returns
| Type | Description |
|---|---|
NodeList |
NodeList of target elements |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
selector |
string (required) |
'' |
Selector string to target |
options |
object (optional) |
{} |
Object containing instance options |
Examples
let targets = Navigation.construct('.js-navigation');
Navigation.construct('.js-navigation', { type: 'overlay' });
.defaults()
Sets default options for future initialization.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
options |
object (required) |
{} |
Object containing default options |
Examples
Navigation.defaults({
type: 'push'
});
.destroy()
Removes plugin and all related data.
Examples
el.Navigation.destroy();
.disable()
Disables instance.
Examples
el.Navigation.disable();
.enable()
Enables instance.
Examples
el.Navigation.enable();
.open()
Opens instance.
Examples
el.Navigation.open();
Events
Events are triggered on the target instance's element, unless otherwise stated.
| Name | Description |
|---|---|
navigation:open |
Instance opened |
navigation:close |
Instance closed |
Styles
CSS custom properties are used to modify default styles.
| Property | Default | Description |
|---|---|---|
--fs-navigation-offscreen-background |
#fff |
Offscreen menu background |
--fs-navigation-offscreen-width |
80vw |
Offscreen menu width |
--fs-navigation-offscreen-zindex |
0 |
Offscreen menu z-index |
--fs-navigation-offscreen-duration |
0.2s |
Offscreen transition duration |
--fs-navigation-offscreen-timing |
ease |
Offscreen transition timing |
--fs-navigation-overlay-zindex |
3 |
Overlay navigation z-index |
--fs-navigation-overlay-content-background |
rgba(0, 0, 0, 0.8) |
Overlay content background |
--fs-navigation-overlay-content-zindex |
2 |
Overlay content z-index |
--fs-navigation-push-zindex |
0 |
Push navigation z-index |
--fs-navigation-push-content-zindex |
1 |
Push content z-index |
Classes allow deeper customization and indicate the current state of a specific instance.
| Classname | Type | Description |
|---|---|---|
.fs-navigation |
element |
Target element |
.fs-navigation-handle |
element |
Handle element |
.fs-navigation-content |
element |
Content element |
.fs-navigation-enabled |
modifier |
Indicates enabled state |
.fs-navigation-open |
modifier |
Indicates open state |
.fs-navigation-closed |
modifier |
Indicates closed state |
.fs-navigation-animated |
modifier |
Indicates animated state |
.fs-navigation-toggle-nav |
modifier |
Toggle-mode navigation panel |
.fs-navigation-toggle-handle |
modifier |
Toggle-mode navigation handle |
.fs-navigation-push |
modifier |
Push-mode |
.fs-navigation-push-nav |
modifier |
Push-mode navigation panel |
.fs-navigation-push-left-nav |
modifier |
Push-mode gravity |
.fs-navigation-push-right-nav |
modifier |
Push-mode gravity |
.fs-navigation-push-handle |
modifier |
Push-mode navigation handle |
.fs-navigation-push-left-handle |
modifier |
Push-mode gravity |
.fs-navigation-push-right-handle |
modifier |
Push-mode gravity |
.fs-navigation-push-content |
modifier |
Push-mode navigation handle |
.fs-navigation-push-left-content |
modifier |
Push-mode gravity |
.fs-navigation-push-right-content |
modifier |
Push-mode gravity |
.fs-navigation-reveal |
modifier |
Reveal-mode |
.fs-navigation-reveal-nav |
modifier |
Reveal-mode navigation panel |
.fs-navigation-reveal-left-nav |
modifier |
Reveal-mode gravity |
.fs-navigation-reveal-right-nav |
modifier |
Reveal-mode gravity |
.fs-navigation-reveal-handle |
modifier |
Reveal-mode navigation handle |
.fs-navigation-reveal-left-handle |
modifier |
Reveal-mode gravity |
.fs-navigation-reveal-right-handle |
modifier |
Reveal-mode gravity |
.fs-navigation-reveal-content |
modifier |
Reveal-mode navigation handle |
.fs-navigation-reveal-left-content |
modifier |
Reveal-mode gravity |
.fs-navigation-reveal-right-content |
modifier |
Reveal-mode gravity |
.fs-navigation-overlay |
modifier |
Overlay-mode |
.fs-navigation-overlay-nav |
modifier |
Overlay-mode navigation panel |
.fs-navigation-overlay-left-nav |
modifier |
Overlay-mode gravity |
.fs-navigation-overlay-right-nav |
modifier |
Overlay-mode gravity |
.fs-navigation-overlay-handle |
modifier |
Overlay-mode navigation handle |
.fs-navigation-overlay-left-handle |
modifier |
Overlay-mode gravity |
.fs-navigation-overlay-right-handle |
modifier |
Overlay-mode gravity |
.fs-navigation-overlay-content |
modifier |
Overlay-mode content wrapper |
.fs-navigation-overlay-left-content |
modifier |
Overlay-mode gravity |
.fs-navigation-overlay-right-content |
modifier |
Overlay-mode gravity |