@miraidesigns/sidebar
v1.0.2
Published
Mirai Designs Framework: Sidebar module
Downloads
2
Maintainers
Readme
Sidebars
Sidebars provide site navigation and can be permanent or called on-screen.
HTML
Make sure to put this as high in your <body>
element as possible.
<div class="mdf-sidebar-container" aria-hidden="true">
<aside class="mdf-sidebar mdf-sidebar--left" aria-labelledby="sidebar-title">
<header class="mdf-sidebar__header">
<h2 id="sidebar-title" class="mdf-sidebar__title">Sidebar</h2>
<button class="mdf-sidebar__close" aria-label="Close sidebar">
<svg class="mdf-icon" viewBox="0 0 24 24" aria-hidden="true">
<use href="icons.svg#clear"></use>
</svg>
</button>
</header>
<div class="mdf-sidebar__content">
<nav role="navigation" aria-label="Site navigation">
<a class="mdf-sidebar__link" href="#1">
Link #1
</a>
<a class="mdf-sidebar__link" href="#2">
Link #2
</a>
<a class="mdf-sidebar__link" href="#3">
Link #3
</a>
</nav>
</div>
<footer class="mdf-sidebar__footer">
<p>Sidebar footer text</p>
</footer>
</aside>
<div class="mdf-sidebar-backdrop"></div>
</div>
Sass
// Include default styles without configuration
@forward '@miraidesigns/sidebar/styles';
// Configure appearance
@use '@miraidesigns/sidebar' with (
$variable: value
);
@include sidebar.styles();
TypeScript
import { MDFSidebar } from '@miraidesigns/sidebar';
new MDFSidebar(document.querySelector('.mdf-sidebar'), {
anchor: document.getElementById('sidebar-anchor')
});
Implementation
Classes
| Name | Type | Description |
| -------------------------------- | -------------- | -------------------------------------------------------------------------------- |
| mdf-sidebar-container
| Parent | Contains the sidebar and backdrop. Used for off-screen sidebars |
| mdf-sidebar-container--active
| Modifier | 1. Prepares the sidebar to be visible. Used for off-screen sidebars |
| mdf-sidebar-container--move-in
| Modifier | 2. Fades-in the sidebar and allows for interaction. Used for off-screen sidebars |
| mdf-sidebar
| Parent | Contains the header, content and footer |
| mdf-sidebar--left
| Modifier | Moves the sidebar to the left of the screen. Used for off-screen sidebars |
| mdf-sidebar--right
| Modifier | Moves the sidebar to the right of the screen. Used for off-screen sidebars |
| mdf-sidebar__header
| Parent / Child | Contains the title and close button. Child to .mdf-sidebar
|
| mdf-sidebar__title
| Child | Title element. Child to .mdf-sidebar__header
|
| mdf-sidebar__close
| Child | Closes the sidebar. Child to .mdf-sidebar__header
|
| mdf-sidebar__content
| Parent / Child | Contains the navigation links or other content. Child to .mdf-sidebar
|
| mdf-sidebar__link
| Child | Navigation link element. Child to .mdf-sidebar__content
|
| mdf-sidebar__footer
| Parent / Child | Footer element. Child to .mdf-sidebar
|
| mdf-sidebar-backdrop
| Child | Sidebar backdrop. Child to .mdf-sidebar-container
|
Events
| Name | Data | Description |
| ------------------- | ------ | ----------------------------- |
| MDFSidebar:opened
| null
| Fires when the sidebar opens |
| MDFSidebar:closed
| null
| Fires when the sidebar closes |
Properties
| Name | Type | Description |
| ------------------------- | ----------------- | --------------------------------------------------------- |
| .anchor
| HTMLElement
| Returns the anchor element |
| .container
| HTMLElement
| Returns the sidebar container element |
| .content
| HTMLElement
| Returns the sidebar main content element |
| .sidebar
| HTMLElement
| Returns the sidebar element |
| .isActive()
| (): boolean
| Returns wether or not the sidebar is active |
| .openSidebar(setFocus?)
| (boolean): void
| Open the sidebar (optionally set focus on the first item) |
| .closeSidebar()
| (): void
| Close the sidebar |
Options
| Name | Type | Default | Description |
| ------------- | ------------ | ------- | ---------------------------------------------------------- |
| anchor
| Element
| null
| The anchor element that will call the sidebar |
| onOpen
| () => void
| null
| Function will run when the sidebar is opened |
| onClose
| () => void
| null
| Function will run when the sidebar is closed |
| hideOnClick
| boolean
| true
| Close the sidebar when a click is registered outside of it |