UNPKG

@onenexus/cell

Version:

Style BEM DOM elements using Sass

261 lines (214 loc) 155 kB
<!doctype html><html lang="en"><head><meta charset="utf-8"><title>@onenexus/cell - v1.0.0-beta.21</title><link rel="stylesheet" href="assets/css/main.css"><link href="http://fonts.googleapis.com/css?family=Open+Sans:400,500,700" rel="stylesheet" type="text/css"><meta name="viewport" content="width=device-width"><meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"><!-- Open Graph tags --><meta property="og:title" content="@onenexus/cell - SassDoc"><meta property="og:type" content="website"><meta property="og:description" content="<p>Style BEM DOM elements using Sass</p> "><!-- Thanks to Sass-lang.com for the icons --><link href="assets/images/favicon.png" rel="shortcut icon"></head><body><aside class="sidebar" role="nav"><div class="sidebar__header"><h1 class="sidebar__title"><a href="https://github.com/One-Nexus/Cell">@onenexus/cell - v1.0.0-beta.21</a></h1></div><div class="sidebar__body"><button type="button" class="btn-toggle js-btn-toggle" data-alt="Open all">Close all</button><p class="sidebar__item sidebar__item--heading" data-slug="undefined"><a href="#undefined">General</a></p><div><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-mixin"><a href="#undefined-mixin">mixins</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-name="display" data-type="mixin"><a href="#mixin-display">display</a></li><li class="sidebar__item sassdoc__item" data-name="position" data-type="mixin"><a href="#mixin-position">position</a></li><li class="sidebar__item sassdoc__item" data-name="visibility" data-type="mixin"><a href="#mixin-visibility">visibility</a></li><li class="sidebar__item sassdoc__item" data-name="component" data-type="mixin"><a href="#mixin-component">component</a></li><li class="sidebar__item sassdoc__item" data-name="sub-component" data-type="mixin"><a href="#mixin-sub-component">sub-component</a></li><li class="sidebar__item sassdoc__item" data-name="components" data-type="mixin"><a href="#mixin-components">components</a></li><li class="sidebar__item sassdoc__item" data-name="context" data-type="mixin"><a href="#mixin-context">context</a></li><li class="sidebar__item sassdoc__item" data-name="extend" data-type="mixin"><a href="#mixin-extend">extend</a></li><li class="sidebar__item sassdoc__item" data-name="modifier" data-type="mixin"><a href="#mixin-modifier">modifier</a></li><li class="sidebar__item sassdoc__item" data-name="modifiers" data-type="mixin"><a href="#mixin-modifiers">modifiers</a></li><li class="sidebar__item sassdoc__item" data-name="is" data-type="mixin"><a href="#mixin-is">is</a></li><li class="sidebar__item sassdoc__item" data-name="module" data-type="mixin"><a href="#mixin-module">module</a></li><li class="sidebar__item sassdoc__item" data-name="module-content" data-type="mixin"><a href="#mixin-module-content">module-content</a></li><li class="sidebar__item sassdoc__item" data-name="modules" data-type="mixin"><a href="#mixin-modules">modules</a></li><li class="sidebar__item sassdoc__item" data-name="combine-modifiers" data-type="mixin"><a href="#mixin-combine-modifiers">combine-modifiers</a></li><li class="sidebar__item sassdoc__item" data-name="extend-modifiers" data-type="mixin"><a href="#mixin-extend-modifiers">extend-modifiers</a></li><li class="sidebar__item sassdoc__item" data-name="option" data-type="mixin"><a href="#mixin-option">option</a></li><li class="sidebar__item sassdoc__item" data-name="pseudo-state" data-type="mixin"><a href="#mixin-pseudo-state">pseudo-state</a></li><li class="sidebar__item sassdoc__item" data-name="hover" data-type="mixin"><a href="#mixin-hover">hover</a></li><li class="sidebar__item sassdoc__item" data-name="value" data-type="mixin"><a href="#mixin-value">value</a></li><li class="sidebar__item sassdoc__item" data-name="wrapper" data-type="mixin"><a href="#mixin-wrapper">wrapper</a></li><li class="sidebar__item sassdoc__item" data-name="group" data-type="mixin"><a href="#mixin-group">group</a></li><li class="sidebar__item sassdoc__item" data-name="parse-cq" data-type="mixin"><a href="#mixin-parse-cq">parse-cq</a></li></ul><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-function"><a href="#undefined-function">functions</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-name="create-config" data-type="function"><a href="#function-create-config">create-config</a></li><li class="sidebar__item sassdoc__item" data-name="eval-config" data-type="function"><a href="#function-eval-config">eval-config</a></li><li class="sidebar__item sassdoc__item" data-name="smart-config" data-type="function"><a href="#function-smart-config">smart-config</a></li><li class="sidebar__item sassdoc__item" data-name="create-selector-from-context" data-type="function"><a href="#function-create-selector-from-context">create-selector-from-context</a></li><li class="sidebar__item sassdoc__item" data-name="generate-chunk" data-type="function"><a href="#function-generate-chunk">generate-chunk</a></li><li class="sidebar__item sassdoc__item" data-name="enabled" data-type="function"><a href="#function-enabled">enabled</a></li><li class="sidebar__item sassdoc__item" data-name="get-module-name" data-type="function"><a href="#function-get-module-name">get-module-name</a></li><li class="sidebar__item sassdoc__item" data-name="get-param" data-type="function"><a href="#function-get-param">get-param</a></li><li class="sidebar__item sassdoc__item" data-name="merge-css-maps" data-type="function"><a href="#function-merge-css-maps">merge-css-maps</a></li><li class="sidebar__item sassdoc__item" data-name="module-tree" data-type="function"><a href="#function-module-tree">module-tree</a></li><li class="sidebar__item sassdoc__item" data-name="option" data-type="function"><a href="#function-option">option</a></li><li class="sidebar__item sassdoc__item" data-name="remove-junk" data-type="function"><a href="#function-remove-junk">remove-junk</a></li><li class="sidebar__item sassdoc__item" data-name="remove-modifiers" data-type="function"><a href="#function-remove-modifiers">remove-modifiers</a></li><li class="sidebar__item sassdoc__item" data-name="selector-to-map" data-type="function"><a href="#function-selector-to-map">selector-to-map</a></li><li class="sidebar__item sassdoc__item" data-name="setting" data-type="function"><a href="#function-setting">setting</a></li><li class="sidebar__item sassdoc__item" data-name="strip-glue" data-type="function"><a href="#function-strip-glue">strip-glue</a></li><li class="sidebar__item sassdoc__item" data-name="theme" data-type="function"><a href="#function-theme">theme</a></li><li class="sidebar__item sassdoc__item" data-name="this" data-type="function"><a href="#function-this">this</a></li><li class="sidebar__item sassdoc__item" data-name="value-enabled" data-type="function"><a href="#function-value-enabled">value-enabled</a></li></ul><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-variable"><a href="#undefined-variable">variables</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-name="css-properties" data-type="variable"><a href="#variable-css-properties">css-properties</a></li></ul></div></div></aside><article class="main" role="main"><header class="header" role="banner"><div class="container"><div class="sassdoc__searchbar searchbar"><label for="js-search-input" class="visually-hidden">Search</label><div class="searchbar__form" id="js-search"><input name="search" type="search" class="searchbar__field" autocomplete="off" autofocus id="js-search-input" placeholder="Search"><ul class="searchbar__suggestions" id="js-search-suggestions"></ul></div></div></div></header><section class="main__section"><h1 class="main__heading" id="undefined"><div class="container">General</div></h1><section class="main__sub-section" id="undefined-mixin"><h2 class="main__heading--secondary"><div class="container">mixins</div></h2><section class="main__item container item" id="mixin-display"><h3 class="item__heading"><a class="item__name" href="#mixin-display">display</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin display($context, $default, $value) { display: $default; @include context($context...) { display: $value; } }" data-collapsed="@mixin display($context, $default, $value) { ... }"><code>@mixin display($context, $default, $value) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Cell Atom - Display property</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$context</code></th><td data-label="desc"><p>The desired context/condition</p></td><td data-label="type"><code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$default</code></th><td data-label="desc"><p>The default value to use when the context is not met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$value</code></th><td data-label="desc"><p>The value to use when the context is met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-context"><code>context</code></a></li></ul></section><section class="main__item container item" id="mixin-position"><h3 class="item__heading"><a class="item__name" href="#mixin-position">position</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin position($context, $default, $value) { position: $default; @include context($context...) { position: $value; } }" data-collapsed="@mixin position($context, $default, $value) { ... }"><code>@mixin position($context, $default, $value) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Cell Atom - Position property</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$context</code></th><td data-label="desc"><p>The desired context/condition</p></td><td data-label="type"><code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$default</code></th><td data-label="desc"><p>The default value to use when the context is not met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$value</code></th><td data-label="desc"><p>The value to use when the context is met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-context"><code>context</code></a></li></ul></section><section class="main__item container item" id="mixin-visibility"><h3 class="item__heading"><a class="item__name" href="#mixin-visibility">visibility</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin visibility($context, $default, $value) { visibility: $default; @include context($context...) { visibility: $value; } }" data-collapsed="@mixin visibility($context, $default, $value) { ... }"><code>@mixin visibility($context, $default, $value) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Cell Atom - Visibility property</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$context</code></th><td data-label="desc"><p>The desired context/condition</p></td><td data-label="type"><code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$default</code></th><td data-label="desc"><p>The default value to use when the context is not met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$value</code></th><td data-label="desc"><p>The value to use when the context is met</p></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-context"><code>context</code></a></li></ul></section><section class="main__item container item" id="mixin-component"><h3 class="item__heading"><a class="item__name" href="#mixin-component">component</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin component($components, $content, $sub-component, $glue, $cascade) { $this: &amp;; $module-map: selector-to-map($this); $selectors: &#39;[class*=&quot;#{$module}#{$glue}&quot;]&#39;; $namespace: map-get($module-map, &#39;module&#39;); @if str-index($namespace, &#39;%&#39;) == 1 { $namespace: $module; } @if $sub-component { $namespace: nth(module-tree(&amp;), length(module-tree(&amp;))); } @if $components { $selectors: (); @each $component in $components { $selector: &#39;.#{$namespace}#{$glue}#{$component}, [class*=&quot;#{$namespace}#{$glue}#{$component}#{$modifierGlue}&quot;]&#39;; @if not $cascade { $selector: &#39;&gt; #{$selector}&#39;; } $selectors: join($selectors, $selector, comma); } } $parents: (); @each $selector in &amp; { // spoof the selector into a list $selector: selector-parse(str-replace(inspect($selector), &#39; &#39;, &#39;, &#39;)); $is-modifier: str-index(inspect(nth($selector, length($selector))), &#39;[class*=&quot;#{$modifierGlue}&#39;); $is-pseudo-state: str-index(inspect(nth($selector, length($selector))), &#39;:&#39;); // if the last item isn&#39;t a modifier or pseudo state, remove it @if not ($is-modifier or $is-pseudo-state) { $selector: list-remove($selector, nth($selector, length($selector))); } @if length($selector) == 1 { $selector: nth($selector, 1); } // Re-build the parent selector $parents: append($parents, str-replace(inspect($selector), &#39;, &#39;, &#39; &#39;), comma); } $parents: list-remove-duplicates($parents); @if length($parents) == 1 { $parents: nth($parents, 1); } @if ($parents == &#39;()&#39;) { @at-root #{$selectors} { @content; @include parse-cq($content); } } @else { @at-root #{$parents} { #{$selectors} { @content; @include parse-cq($content); } } } }" data-collapsed="@mixin component($components, $content, $sub-component, $glue, $cascade) { ... }"><code>@mixin component($components, $content, $sub-component, $glue, $cascade) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Create a component based off the main module</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$components</code></th><td data-label="desc"><p>The component or components to be used</p></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$content</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$sub-component</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Bool</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$glue</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>String</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$cascade</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Bool</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[function]</span> <a href="#function-selector-to-map"><code>selector-to-map</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[function]</span> <a href="#function-module-tree"><code>module-tree</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[function]</span> <a href="#function-module-tree"><code>module-tree</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-sub-component"><code>sub-component</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-components"><code>components</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul></p></section><section class="main__item container item" id="mixin-sub-component"><h3 class="item__heading"><a class="item__name" href="#mixin-sub-component">sub-component</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin sub-component($components, $content, $glue) { @include component($components, $content, true, $glue) { @content; } }" data-collapsed="@mixin sub-component($components, $content, $glue) { ... }"><code>@mixin sub-component($components, $content, $glue) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Alis for <code>component</code> mixin with $sub-component: true</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$components</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$content</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$glue</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>String</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-component"><code>component</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul></p></section><section class="main__item container item" id="mixin-components"><h3 class="item__heading"><a class="item__name" href="#mixin-components">components</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin components() { @include component($args...) { @content; } }" data-collapsed="@mixin components() { ... }"><code>@mixin components() { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Alias for component() mixin</p></div><h3 class="item__sub-heading">Parameters</h3><p>None.</p><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-component"><code>component</code></a></li></ul><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p><a href="http://twitter.com/esr360">@esr360</a></p></li></ul></p></section><section class="main__item container item" id="mixin-context"><h3 class="item__heading"><a class="item__name" href="#mixin-context">context</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin context($context...) { $selector: create-selector-from-context($context...); $scope: &amp;; @at-root #{$selector} { #{$scope} { @content; } } }" data-collapsed="@mixin context($context...) { ... }"><code>@mixin context($context...) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Apply styles to a component within a certain context</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$context</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Arglist</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[function]</span> <a href="#function-create-selector-from-context"><code>create-selector-from-context</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-display"><code>display</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-position"><code>position</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-visibility"><code>visibility</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul></p></section><section class="main__item container item" id="mixin-extend"><h3 class="item__heading"><a class="item__name" href="#mixin-extend">extend</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin extend($modifiers: null, $parent: null, $core: false) { $namespaced-parent: if($moduleNamespace and $parent, $moduleNamespace + $parent, $parent); @if $core or not $modifiers { @extend .#{$namespaced-parent}; } @each $modifier in $modifiers { @if type-of($modifier) == &#39;string&#39; { $selector: if($parent, $namespaced-parent, $module); @extend [class*=&quot;#{$selector}#{$modifierGlue}&quot;][class*=&quot;#{$modifierGlue}#{$modifier}&quot;]; } @else if type-of($modifier) == &#39;list&#39; { $namespaced-selector: (&#39;[class*=&quot;#{$namespaced-parent}#{$modifierGlue}&quot;]&#39;); $module-selector: (&#39;[class*=&quot;#{$module}#{$modifierGlue}&quot;]&#39;); $selectors: if($parent, $namespaced-selector, $module-selector); @each $item in $modifier { $selectors: join($selectors, &#39;[class*=&quot;#{$modifierGlue}#{$item}&quot;]&#39;, comma); } @extend #{$selectors}; } } }" data-collapsed="@mixin extend($modifiers: null, $parent: null, $core: false) { ... }"><code>@mixin extend($modifiers: null, $parent: null, $core: false) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Extend one or more modifiers of a module to create a new modifier combining the ones you pass</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$modifiers</code></th><td data-label="desc"><p>The modifiers which you wish to combine</p></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default"><code>null</code></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$parent</code></th><td data-label="desc"><p>The parent module if not current one</p></td><td data-label="type"><code>String</code></td><td data-label="default"><code>null</code></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$core</code></th><td data-label="desc"><p>Extend the core &#39;.module&#39; styles?</p></td><td data-label="type"><code>Bool</code></td><td data-label="default"><code>false</code></td></tr></tbody></table><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-combine-modifiers"><code>combine-modifiers</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-extend-modifiers"><code>extend-modifiers</code></a></li></ul></section><section class="main__item container item" id="mixin-modifier"><h3 class="item__heading"><a class="item__name" href="#mixin-modifier">modifier</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin modifier($modifiers, $special: null, $glue: &#39;--&#39;, $module) { $scope: &amp;; @if str-index(inspect(&amp;), &#39;.#{$module}&#39;) { $scope: (); @for $i from 1 through length(&amp;) { @if $i % 2 == 0 { $scope: append($scope, nth(&amp;, $i), comma); } } } $modifiers-chunk: (); @each $modifier in $modifiers { @if $special == &#39;not&#39; { $modifiers-chunk: join($modifiers-chunk, &#39;:not([class*=&quot;#{$glue}#{$modifier}&quot;])&#39;, comma); } @else { $modifiers-chunk: join($modifiers-chunk, &#39;[class*=&quot;#{$glue}#{$modifier}&quot;]&#39;, comma); } $selector: #{$scope}#{$modifiers-chunk}; // pseudo-elements must be at the end @if str-index($selector, &#39;:before&#39;) and str-index($selector, &#39;:before&#39;) != (str-length($selector) - 6) { $selector: str-replace($selector, &#39;:before&#39;, &#39;&#39;) + &#39;:before&#39;; } @if str-index($selector, &#39;:after&#39;) and str-index($selector, &#39;:after&#39;) != (str-length($selector) - 5) { $selector: str-replace($selector, &#39;:after&#39;, &#39;&#39;) + &#39;:after&#39;; } @at-root #{$selector} { @content; } } }" data-collapsed="@mixin modifier($modifiers, $special: null, $glue: &#39;--&#39;, $module) { ... }"><code>@mixin modifier($modifiers, $special: null, $glue: &#39;--&#39;, $module) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Create a modifier for a module</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$modifiers</code></th><td data-label="desc"><p>The modifier(s) which you wish to create</p></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$special</code></th><td data-label="desc"><p>Add special contextual options to modifier</p></td><td data-label="type"><code>String</code></td><td data-label="default"><code>null</code></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$glue</code></th><td data-label="desc"><p>Desired modifier separator/glue</p></td><td data-label="type"><code>Bool</code></td><td data-label="default"><code>&#39;--&#39;</code></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$module</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>String</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-modifiers"><code>modifiers</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-is"><code>is</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-combine-modifiers"><code>combine-modifiers</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-option"><code>option</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-value"><code>value</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-value"><code>value</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-wrapper"><code>wrapper</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul></p></section><section class="main__item container item" id="mixin-modifiers"><h3 class="item__heading"><a class="item__name" href="#mixin-modifiers">modifiers</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin modifiers() { @include modifier($args...) { @content; } }" data-collapsed="@mixin modifiers() { ... }"><code>@mixin modifiers() { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Alias for modifier() mixin</p></div><h3 class="item__sub-heading">Parameters</h3><p>None.</p><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-modifier"><code>modifier</code></a></li></ul></p></section><section class="main__item container item" id="mixin-is"><h3 class="item__heading"><a class="item__name" href="#mixin-is">is</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin is() { @include modifier($args...) { @content; } }" data-collapsed="@mixin is() { ... }"><code>@mixin is() { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Alias for modifier() mixin</p></div><h3 class="item__sub-heading">Parameters</h3><p>None.</p><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-modifier"><code>modifier</code></a></li></ul></p></section><section class="main__item container item" id="mixin-module"><h3 class="item__heading"><a class="item__name" href="#mixin-module">module</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin module($modules, $content) { $config: () !default; @if type-of($modules) == &#39;map&#39; { $modules: if(variable-exists(&#39;config&#39;), (map-get($config, &#39;name&#39;)), &#39;&#39;); } @if ($moduleNamespace) { $modules: $moduleNamespace + $modules; } // disable any output $disable-output: if(variable-exists(&#39;disable-output&#39;), $disable-output, false); @if variable-exists(&#39;config&#39;) and map-has-key($config, &#39;disable-output&#39;) { $disable-output: map-get($config, &#39;disable-output&#39;); } // @TODO this needs to identify if nested within itself, not nested in general $nested: &amp;; // We are creating a root module, so create a global variable @if not $nested { $module: $modules !global; $this: $module !global; } $selectors: (); @each $module in $modules { $selectors: join($selectors, &#39;.#{$module}&#39;, comma); $selectors: join($selectors, &#39;[class*=&quot;#{$module}#{$modifierGlue}&quot;]&#39;, comma); } $targetExists: variable-exists(&#39;config&#39;) and map-has-key($config, &#39;target&#39;); // @TODO tidy up how $target is used here and in $modifier - also probably won&#39;t work for component() $target: if($targetExists, (&#39;module&#39;: $module, &#39;target&#39;: map-get($config, &#39;target&#39;)), false) !global; @if not $disable-output { #{$selectors} { @if not $nested { @include module-content($modules, $config, $target); } @content; @include parse-cq($content); } } }" data-collapsed="@mixin module($modules, $content) { ... }"><code>@mixin module($modules, $content) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Create a new module</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$modules</code></th><td data-label="desc"><p>The module(s) you wish to create</p></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$content</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-module-content"><code>module-content</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-modules"><code>modules</code></a></li><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-wrapper"><code>wrapper</code></a></li></ul></p></section><section class="main__item container item" id="mixin-module-content"><h3 class="item__heading"><a class="item__name" href="#mixin-module-content">module-content</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin module-content($module, $config, $target) { @include extend-modifiers; @include combine-modifiers; @if variable-exists(&#39;config&#39;) and $outputCSSFromConfig { @if $module == map-get($config, &#39;name&#39;) or $target { @if type-of($target) == &#39;map&#39; and map-get($target, &#39;module&#39;) == $module { #{map-get($target, &#39;target&#39;)} { @include parse-cq($config); } } @else { @include parse-cq($config); } } } }" data-collapsed="@mixin module-content($module, $config, $target) { ... }"><code>@mixin module-content($module, $config, $target) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Render a module&#39;s content</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$module</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$config</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr><tr class="item__parameter"><th scope="row" data-label="name"><code>$target</code></th><td data-label="desc">&mdash;<span class="visually-hidden">none</span></td><td data-label="type"><code>Any</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-extend-modifiers"><code>extend-modifiers</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-combine-modifiers"><code>combine-modifiers</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-parse-cq"><code>parse-cq</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-module"><code>module</code></a></li></ul></section><section class="main__item container item" id="mixin-modules"><h3 class="item__heading"><a class="item__name" href="#mixin-modules">modules</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin modules($modules) { @include module($modules) { @content; } }" data-collapsed="@mixin modules($modules) { ... }"><code>@mixin modules($modules) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Alias for module() mixin</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$modules</code></th><td data-label="desc"><p>The module(s) you wish to create</p></td><td data-label="type"><code>String</code> or <code>List</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Content</h3><p>This mixin allows extra content to be passed (through the <code>@content</code> directive).<h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-module"><code>module</code></a></li></ul></p></section><section class="main__item container item" id="mixin-combine-modifiers"><h3 class="item__heading"><a class="item__name" href="#mixin-combine-modifiers">combine-modifiers</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin combine-modifiers($styles) { @if variable-exists(&#39;config&#39;) and $combine { @each $new-modifier, $target-modifiers in $combine { @include modifier($new-modifier) { @include extend(($target-modifiers)); } } } }" data-collapsed="@mixin combine-modifiers($styles) { ... }"><code>@mixin combine-modifiers($styles) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Combine modifiers into a new, single modifier</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$styles</code></th><td data-label="desc"><p>The CSS styles to output</p></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-modifier"><code>modifier</code></a></li><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-extend"><code>extend</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-module-content"><code>module-content</code></a></li></ul></section><section class="main__item container item" id="mixin-extend-modifiers"><h3 class="item__heading"><a class="item__name" href="#mixin-extend-modifiers">extend-modifiers</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin extend-modifiers($styles) { @if variable-exists(&#39;config&#39;) and $modifiers { @include extend(($modifiers)); } }" data-collapsed="@mixin extend-modifiers($styles) { ... }"><code>@mixin extend-modifiers($styles) { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Extend modifiers into the naked module</p></div><h3 class="item__sub-heading">Parameters</h3><table class="item__parameters"><thead><tr><th scope="col"><span class="visually-hidden">parameter</span>Name</th><th scope="col"><span class="visually-hidden">parameter</span>Description</th><th scope="col"><span class="visually-hidden">parameter</span>Type</th><th scope="col"><span class="visually-hidden">parameter</span>Default value</th></tr></thead><tbody><tr class="item__parameter"><th scope="row" data-label="name"><code>$styles</code></th><td data-label="desc"><p>The CSS styles to output</p></td><td data-label="type"><code>Map</code></td><td data-label="default">&mdash;<span class="visually-hidden">none</span></td></tr></tbody></table><h3 class="item__sub-heading">Requires</h3><ul class="list-unstyled"><li class="item__description item__description--inline"><span class="item__cross-type">[mixin]</span> <a href="#mixin-extend"><code>extend</code></a></li></ul><h3 class="item__sub-heading">Used by</h3><ul class="list-unstyled"><li><span class="item__cross-type">[mixin]</span> <a href="#mixin-module-content"><code>module-content</code></a></li></ul></section><section class="main__item container item" id="mixin-option"><h3 class="item__heading"><a class="item__name" href="#mixin-option">option</a></h3><div class="item__code-wrapper"><pre class="item__c