@moki.codes/mokui-header
v1.0.0
Published
header web ui component
Downloads
3
Readme
header
Description
header block provides header component inside the holygrail layout
Installation
yarn add @moki.codes/mokui-header
Styles
@import "@moki.codes/mokui-header/dist/mokui-theme.css"
@import "@moki.codes/mokui-header/dist/mokui-layout.css"
@import "@moki.codes/mokui-header/dist/mokui-elevation.css"
@import "@moki.codes/mokui-header/dist/mokui-animation.css"
@import "@moki.codes/mokui-header/dist/mokui-header.css"
Basic Usage
<head>
<style>
width: calc(var(--msp-1) * 4);
height: var(--msp-1);
line-height: var(--msp-1);
background-color: var(--color-on-background);
</style>
</head>
...
<body>
<div class="theme
theme_msp_perfect-fifth
theme_color_light
layout
layout_type_holy-grail
elevation
animation">
<header class="layout__header header header_fixed elevation_depth_4">
<div class="layout__container layout__container-fluid header__container">
<div class="header__action header__action_primary">
<svg class="header__icon">
...
</svg>
</div>
<div class="header__action header__brand">
<div class="placeholder-brand elevation elevation_depth_8"></div>
</div>
<div class="header__navigation">
<div class="header__action header__navigation-item">
item
</div>
<div class="header__action header__navigation-item">
item
</div>
</div>
<div class="header__action header__action_secondary">
<svg class="header__icon" ...>
...
</svg>
</div>
</div>
</header>
</div>
</body>
Modificators
| name | value | description | | ----------- | ------------- | ---------------------------------------------- | | fixed | | makes header fixed |
Variables
header defines various variables which shapes its behavior:
--header-height
- defined as --layout-header-height at layout level, override --layout-header-height to change appearance
--header-brand-size
- defines brand height, override to change appearance
--header-action-size
- defines action height and icon width and height, override to change appearance
--header-navigation-size
- defines navigation height, override to change appearance
Elements
- container
- action
- icon
- brand
- navigation
- navigation-item
container
container for all header elements, centers child elements vertically
action
actionable item
Modificators
| name | value | description | | ----------- | ------------- | ---------------------------------------------- | | primary | | headers primary action leftmost item after | | | | brand hidden on --screen-l or above, visible | | | | otherwise | | secondary | | headers secondary action rightmost item |
icon
header action's icon
brand
headers brand leftmost item
navigation
headers navigation floats left, visible on --screen-l(as defined at the theme level) or above and hidden otherwise
navigation-item
headers navigation menu item(s) floats left
Javascript
Basic Usage
import { Header } from "@moki.codes/mokui-header";
const headerElement = document.querySelector("header");
const header = Header(headerElement);
/* when done */
header.destroy();
Exports
Header
HeaderComponent
HeaderAdapter
classes
strings
Header
(element: Elements): HeaderComponent<HeaderAdapter<Emitter<Component<{}>>>>
Header factory is a composition of the HeaderComponent, HeaderAdapter, Emitter, Component.
HeaderComponent
<T extends HeaderAdapter<Emitter<Component>>>(
o: T = {} as T
): HeaderComponent<T>
Header Component factory provides core header functionality
Methods
| name | description |
| --------------------------- | ---------------------------------------------- |
| setScrollTarget | set scroll target to the provided EventTarget |
| (target: EventTarget): void | target
|
| destroy(): | clean up routine to be called upon deleting |
| HeaderComponent; | component |
HeaderAdapter
<T extends Emitter<Component>>(
o: T
): HeaderAdapter<T>
Header Adapter factory provides default adapter functionality, one can override partially or completely used by HeaderComponent.
events
| name | Description | | ------------------------------------- | ------------------------------------ | | mokui-header:action-primary-clicked | header action primary clicked | | mokui-header:action-secondary-clicked | header action secondary clicked |
Methods
| name | description |
| --------------------------- | ---------------------------------------------- |
| handleActionPrimaryClick() | handler for the header__action_primary click |
| : void | event, fires ACTION_PRIMARY_CLICK_EVENT event |
| handleActionSecondaryClick()| handler for the header__action_secondary click |
| : void | event, fires ACTION_SECONDARY_CLICK_EVENT event|
| getViewportScrollY( | returns number of pixels scrolled on scroll |
| targetSelector: symbol | targetSelector
target from top of the page |
| ): number | |
| getHeaderHeight(): number | returns height of the root(), (header) |
| ): number | |
| hasClass(name: string) | returns if root(), (header) has class name
|
| : boolean | |
| addClass(name: string) | adds class name
to the element root(), |
| : void | (header) |
| removeClass(name: string) | removes class name
to the element root(), |
| : void | (header) |
classes
| name | value | | --------------------------- | ---------------------------------------------- | | HEADER_HIDDEN: "string" | "header_hidden" |
strings
| name | value | | ------------------------------ | ------------------------------------------- | | ACTION_PRIMARY_SELECTOR | ".header__action_primary" | | : "string" | | | ACTION_PRIMARY_CLICKED_EVENT | "mokui-header:action-primary-clicked" | | : "string" | | | ACTION_SECONDARY_CLICKED_EVENT | "mokui-header:action-secondary-clicked" | | : "string" | |