@hidoo/styleunit
v1.0.0-alpha.10
Published
The unit oriented CSS framework implemented in Sass.
Downloads
44
Readme
@hidoo/styleunit
The unit oriented CSS framework implemented in Sass.
Demo
- Style Guide (Generated by kss-node)
Installation
npm install @hidoo/styleunitUsage
@use 'node_modules/@hidoo/styleunit/src/index.scss';Use with NodePackageImporter
@use 'pkg:@hidoo/styleunit';Use with @hidoo/sass-importer
@use '@hidoo/styleunit';Use with configured settings
// Use this package with the configured settings
@use 'node_modules/@hidoo/styleunit/src/index.scss' with (
$prefix: 'u'
);
// Initialize manually
@use 'node_modules/@hidoo/styleunit/src/bootstrap';Usage only with the necessary units
// Use this package with the configured settings
@use 'node_modules/@hidoo/styleunit/src/settings' with (
$prefix: 'u'
);
// Use all of text unit
@use 'node_modules/@hidoo/styleunit/src/unit/text';
// Use part of button unit
@use 'node_modules/@hidoo/styleunit/src/unit/button/core';
@use 'node_modules/@hidoo/styleunit/src/unit/button/inline';
// Initialize manually
@use 'node_modules/@hidoo/styleunit/src/bootstrap';Plugins
API
@mixin apply-aspect-ratio
apply aspect ratio settings
Parameters
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :---------- | :------ |
| $width | Number | width | 16 |
| $height | Number | height | 9 |
Examples
scss inputs
.selector {
@include mixin.box-apply-aspect-ratio($width: 16, $height: 9);
}css outputs
.selector::before {
content: '';
display: block;
width: 100%;
height: 0;
padding-top: 56.25%;
}@mixin apply-clearfix
apply clearfix
Examples
scss inputs
.selector {
@include mixin.box-apply-clearfix();
}css outputs
.selector::before,
.selector::after {
content: '';
display: table;
}
.selector::after {
clear: both;
}@function foreground
return foreground color
Parameters
| Name | Type | Description | Default |
| :------------------------------ | :--------------------------------------------------------------- | :--------------- | :----------------------------- |
| $background-color | Color | background-color | - |
| $options | Map | options | () |
| $options.threshold | Number | threshold | 60% |
| $options.color-mappings | Map | color mappings | - |
| $options.color-mappings.dark | Map | dark color | settings.$color-scheme.black |
| $options.color-mappings.light | Map | light color | settings.$color-scheme.white |
Returns
Color foreground color
Examples
scss inputs
.selector {
content: function.color-foreground(#000);
}css outputs
.selector {
content: #fff;
}$themes
Default builtin theme
Type
Properties
| Name | Type | Description | Default |
| :------ | :--------------------------------------------------------- | :-------------------- | :------ |
| light | Map | values of light theme | (...) |
| dark | Map | values of dark theme | (...) |
$palette
Color palette
Type
Properties
| Name | Type | Description | Default |
| :-------------- | :----------------------------------------------------------- | :------------------------------------------------ | :---------------- |
| black | List | █ | (0, 0, 0) |
| dark-moon | List | █ | (20, 23, 26) |
| night-sky | List | █ | (38, 44, 51) |
| black-olive | List | █ | (63, 63, 63) |
| dim-gray | List | █ | (107, 107, 109) |
| nocturnal | List | █ | (119, 124, 130) |
| gateway-gray | List | █ | (159, 159, 161) |
| stone | List | █ | (195, 195, 197) |
| olympus-white | List | █ | (213, 215, 217) |
| mercury | List | █ | (235, 236, 237) |
| snow-flake | List | █ | (237, 237, 240) |
| ghost-white | List | █ | (249, 249, 250) |
| white | List | █ | (255, 255, 255) |
| summer-sky | List | █ | (55, 165, 228) |
| sky-blue | List | █ | (122, 195, 237) |
$mappings
Color mappings
Type
Properties
| Name | Type | Description | Default |
| :----------- | :--------------------------------------------------------------- | :-------------- | :-------------- |
| a | String | type a | black |
| b | String | type b | dark-moon |
| c | String | type c | night-sky |
| d | String | type d | black-olive |
| e | String | type e | dim-gray |
| f | String | type f | nocturnal |
| g | String | type g | gateway-gray |
| h | String | type h | stone |
| i | String | type i | olympus-white |
| j | String | type j | mercury |
| k | String | type k | snow-flake |
| l | String | type l | ghost-white |
| m | String | type m | white |
| n | String | type n | summer-sky |
| o | String | type o | sky-blue |
| foreground | String | type foreground | black |
| background | String | type background | white |
| link | String | type link | summer-sky |
| focus | String | type focus | sky-blue |
$family
Default font family.
| Name | Description |
| :-------------------------- | :--------------------------------------------------------------- |
| system-ui | Use system ui font as a primary font family in macOS. |
| -apple-system | Use "San Francisco" as a secondary font family in macOS. |
| BlinkMacSystemFont | Use "San Francisco" as a primary font family in chrome on macOS. |
| Helvetica Neue | Use as a fallback font family in macOS. |
| Arial | Use as a primary font family in Windows. |
| Hiragino Sans | Use as a primary japanese font family in macOS. |
| Hiragino Kaku Gothic ProN | Use as a fallback of Hiragino Sans in macOS. |
| Noto Sans JP | Use as a primary japanese font family in Windows. |
| BIZ UDPGothic | Use as a secondary japanese font family in Windows. |
| Meiryo | Use as a fallback japanese font family in Windows. |
Type
$family-monospace
Default monospace font family.
| Name | Description |
| :--------- | :-------------------------------------------------------------------------------- |
| Consolas | Use as a primary monospace font family in Windows. (Use it if installed in macOS) |
| Monaco | Use as a primary monospace font family in macOS. |
| Menlo | Use as a secondary monospace font family in macOS. |
| Courier | Use as a secondary monospace font family in Windows. |
Type
$family-presets
Default font family presets
Type
Properties
| Name | Type | Description | Default |
| :----------- | :--------------------------------------------------------------- | :--------------------- | :------------------ |
| sans-serif | String | Sans-serif font family | $family |
| monospace | String | Monospace font family | $family-monospace |
$size
Default font size.
(default: 14px)
Type
$base-size
Default base font size.
(default: 16px)
this use if $enable-relative-size is true
Type
$size-presets
Default font size presets
Type
Properties
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :-------------------------------------------------------------------------------- | :------ |
| xsmall | Number | Lorem ipsum dolor sit amet. (= 10px) | 0.625 |
| small | Number | Lorem ipsum dolor sit amet. (= 12px) | 0.75 |
| medium | Number | sLorem ipsum dolor sit amet. (= 14px) | 0.875 |
| large | Number | Lorem ipsum dolor sit amet. (= 16px) | 1 |
| xlarge | Number | Lorem ipsum dolor sit amet. (= 18px) | 1.125 |
| 2xlarge | Number | Lorem ipsum dolor sit amet. (= 20px) | 1.25 |
| 3xlarge | Number | Lorem ipsum dolor sit amet. (= 22px) | 1.375 |
| 4xlarge | Number | Lorem ipsum dolor sit amet. (= 24px) | 1.5 |
$weight
Default font weight.
(default: 400)
Type
$weight-presets
Font weight presets
Type
Properties
| Name | Type | Description | Default |
| :------------ | :--------------------------------------------------------------- | :--------------------------------------------------------------------------- | :------ |
| thin | Number | Lorem ipsum dolor sit amet. (= 100) | 100 |
| extra-light | Number | Lorem ipsum dolor sit amet. (= 200) | 200 |
| light | Number | Lorem ipsum dolor sit amet. (= 300) | 300 |
| regular | Number | Lorem ipsum dolor sit amet. (= 400) | 400 |
| medium | Number | Lorem ipsum dolor sit amet. (= 500) | 500 |
| semi-bold | Number | Lorem ipsum dolor sit amet. (= 600) | 600 |
| bold | Number | Lorem ipsum dolor sit amet. (= 700) | 700 |
| extra-bold | Number | Lorem ipsum dolor sit amet. (= 800) | 800 |
| black | Number | Lorem ipsum dolor sit amet. (= 900) | 900 |
$variant
Default font variant (default: (common-ligatures proportional-width emoji))
Type
$smoothing
Default font smoothing (webkit: antialiased, moz-osx: grayscale)
Type
Properties
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :------------------- | :------------ |
| webkit | Number | For browsers macOS | antialiased |
| moz-osx | Number | For firefox on macOS | grayscale |
$enable-relative-size
enable relative font size specify.
override base size settings of font
(default: true)
Type
$applying-units
Default list of units that applying font
Type
$pkg
Package name.
(default: "su")
Type
Examples
scss inputs
$pkg: 's';css outputs
:root {
--s-breakpoint-mobile: 667px;
}$prefix
Default prefix of unit class name.
(default: "unit")
Type
Examples
scss inputs
$prefix: 'u';css outputs
.u-icon {
/* settings */
}$breakpoints
Default breakpoints.
Type
Properties
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :---------------------------------------- | :------------------------------------- |
| desktop | Number | Breakpoint width for desktop. | 1024px |
| mobile | Number | Breakpoint width for mobile. | 667px |
| sm | String | Breakpoint name when mobile viewport. | "only screen and (width < $mobile)" |
| not-sm | String | Breakpoint name when not mobile viewport. | "only screen and ($mobile <= width)" |
$line-height
Default line-height
(default: 1.5)
Type
$hyphens
Default hyphens
(default: auto)
Type
$letter-spacing
Default letter-spacing
(default: 0.04em)
Type
$text-size-adjust
Default text-size-adjust
(default: 100%)
Type
$word-break
Default word-break
(default: normal)
Type
$word-wrap
Default word-wrap
(default: break-word)
Type
$line-break
Default line-break
(default: strict)
Type
$overflow-wrap
Default line-break
(default: strict)
Type
$message-on-image-error
Default message on image error
(default: Failed to load image.)
Type
$verbose
out warnings verbosely or not
Type
$prefix
Default prefix for utility class name.
(default: "util")
Type
Examples
scss inputs
$util-prefix: 'h';css outputs
.h--width-0 {
/* settings */
}$width
Default width list.
Type
$height
Default height list.
Type
$margin
Default margin list
Type
$padding
Default padding list
Type
$position
Default position list
Type
$directions
Default direction list
Type
$z-index
Default z-index list
Type
css// prettier-ignore
$_default-selectors: (":disabled",) !default;
/// Utility for `:has` pseudo classes with `:disabled` /// @param
Default selectors
css// prettier-ignore
$_default-selectors: (":hover", ":focus") !default;
/// Utility for `:has` pseudo classes with `:hover` and `:focus` /// @param
Default selectors
css// prettier-ignore
$_default-selectors: (":checked",) !default;
/// Utility for `:has` pseudo classes with `:checked` /// @param
Default selectors
css// prettier-ignore
$_default-selectors: (":disabled",) !default;
/// Utility for pseudo classes like `:disabled` /// @param
Default selectors
Properties
| Name | Type | Description | Default |
| :---- | :----------------------------------------------------------------- | :---------------------------- | :------ |
| not | Boolean | Deny selectors whether or not | false |
Properties
| Name | Type | Description | Default |
| :---- | :----------------------------------------------------------------- | :---------------------------- | :------ |
| not | Boolean | Deny selectors whether or not | false |
@mixin by-breakpoints
Utility to generate selectors by breakpoints.
Parameters
| Name | Type | Description | Default |
| :----------------- | :--------------------------------------------------------------- | :------------------------------------- | :------ |
| $breakpoints | Map | Breakpoints. | () |
| $options | Map | options | () |
| $options.ignores | List | Breakpoint names to ignore. | () |
| $options.target | String | Target selector string to replacement. | "" |
Examples
scss inputs
$breakpoint: (
'sm': '(width <= 640px)',
'md': '(width <= 768px)',
...
);
.selector {
@include mixin.by-breakpoints() {
font-size: 16px;
}
}css outputs
.selector {
font-size: 16px;
}
@media (width <= 640px) {
.sm\:selector {
font-size: 16px;
}
}
@media (width <= 768px) {
.md\:selector {
font-size: 16px;
}
}
...@mixin has-disabled
Utility for :has pseudo classes with :disabled
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $options | Map | options | () |
Examples
scss inputs
.selector {
@include mixin.has-disabled() {
font-size: 16px;
}
}css outputs
.selector:has(:disabled, .is-disabled) {
font-size: 16px;
}@mixin has-focus
Utility for :has pseudo classes with :hover and :focus
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $options | Map | options | () |
Examples
scss inputs
.selector {
@include mixin.has-focus() {
font-size: 16px;
}
}css outputs
.selector:has(:hover, :focus, .is-focus) {
font-size: 16px;
}@mixin has-selected
Utility for :has pseudo classes with :checked
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $options | Map | options | () |
Examples
scss inputs
.selector {
@include mixin.has-selected() {
font-size: 16px;
}
}css outputs
.selector:has(:checked, .is-selected) {
font-size: 16px;
}@mixin has
The utility mixin for :has pseudo classes.
Parameters
| Name | Type | Description | Default |
| :----------- | :----------------------------------------------------------- | :---------------- | :------ |
| $selectors | List | list of selectors | () |
| $options | Map | options | () |
Examples
scss inputs
.selector {
@include mixin.has((':hover', ':focus')) {
font-size: 16px;
}
}css outputs
.selector:has(:hover, :focus) {
font-size: 16px;
}@mixin media
The media query helper.
Parameters
| Name | Type | Description | Default |
| :--------------------- | :--------------------------------------------------------------- | :------------------------------------ | :------ |
| $query | String | Breakpoint name or media query string | - |
| $options | Map | Options | () |
| $options.eval-query | String | Eval query as template whether or not | false |
| $options.breakpoints | Map | Breakpoints. | null |
Examples
scss inputs
$breakpoint: (
'sm': '(width <= 640px)',
...
);
.selector {
@include mixin.media($query: 'sm') {
font-size: 16px;
}
}css outputs
@media (width <= 640px) {
.selector {
font-size: 16px;
}
}@mixin on-active
Utility for pseudo classes like .is-active
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-active() {
font-size: 16px;
}
}css outputs
.selector:where(.is-active) {
font-size: 16px;
}@mixin on-current
Utility for pseudo classes like .is-current
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-current() {
font-size: 16px;
}
}css outputs
.selector:where(.is-current) {
font-size: 16px;
}@mixin on-deactive
Utility for pseudo classes like :not(is-active)
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-deactive() {
font-size: 16px;
}
}css outputs
.selector::where(not(.is-active)) {
font-size: 16px;
}@mixin on-disabled
Utility for pseudo classes like :disabled
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-disabled() {
font-size: 16px;
}
}css outputs
.selector:where(:disabled, .is-disabled) {
font-size: 16px;
}@mixin on-focus
Utility for pseudo classes like :hover and :focus
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-focus() {
font-size: 16px;
}
}css outputs
.selector:where(:hover, :focus, .is-focus) {
font-size: 16px;
}@mixin on-link
Utility for pseudo classes like :link and :visited
Parameters
| Name | Type | Description | Default |
| :---------------------- | :----------------------------------------------------------- | :--------------------------- | :------ |
| $additional-selectors | List | list of additional selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
Examples
scss inputs
.selector {
@include mixin.on-link() {
font-size: 16px;
}
}css outputs
.selector:where(:link) {
font-size: 16px;
}@mixin on-placeholder
wrappper of :placeholder-shown
Examples
scss inputs
.selector {
@include mixin.on-placeholder() {
font-size: 16px;
}
}css outputs
.selector::-webkit-input-placeholder {
font-size: 16px;
}
.selector::-moz-placeholder {
font-size: 16px;
}
.selector:-ms-input-placeholder {
font-size: 16px;
}
.selector:placeholder-shown {
font-size: 16px;
}@mixin on-print
The wrapper of @media print
Examples
scss inputs
.selector {
@include mixin.on-print() {
font-size: 16px;
}
}css outputs
@media print {
.selector.is-active {
font-size: 16px;
}
}@mixin on
Utility for pseudo classes
Parameters
| Name | Type | Description | Default |
| :--------------------- | :----------------------------------------------------------- | :------------------------- | :------ |
| $selectors | List | list of selectors | () |
| $capturing-selectors | List | capturing parent selectors | () |
| $options | Map | options | () |
Examples
scss inputs
.selector {
@include mixin.on((':hover', ':focus')) {
font-size: 16px;
}
}css outputs
.selector:where(:hover, :focus) {
font-size: 16px;
}@function size
return real font-size
Parameters
| Name | Type | Description | Default |
| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ | :------ |
| $value | String, Number | value of font-size (one of "xsmall", "small", "medium", "large", "xlarge", "2xlarge", "3xlarge", "4xlarge" or number) | - |
| $options | Map | options | () |
| $options.monospace | Boolean | font-family is monospace or not | false |
| $options.relative-size | Boolean | convert to rem value or not | false |
Returns
Number real font-size
Examples
scss inputs
.selector {
font-size: function.font-size($value: 'medium');
}css outputs
.selector {
font-size: 14px;
}@function concat-as-string
concatenate list as string
Parameters
| Name | Type | Description | Default |
| :----------- | :--------------------------------------------------------------- | :---------- | :------ |
| $list | List | list | - |
| $separator | String | separator | "," |
Returns
String concatenated list
Examples
scss inputs
.selector {
content: function.list-concat-as-string(('hoge', 'fuga', 'piyo'), ':');
}css outputs
.selector {
content: hoge:fuga:piyo;
}@function map
map list
Parameters
| Name | Type | Description | Default |
| :---------- | :------------------------------------------------------------------- | :------------------------- | :------ |
| $list | List | list | - |
| $callback | Function | function called each items | - |
Returns
List mapped list
Examples
scss inputs
.selector {
content: function.list-map(
('hoge', 'fuga', 'pi', 'yo'),
meta.get-function('length', $module: 'string')
);
}css outputs
.selector {
content: 4 4 2 2;
}@function px-to-rem
convert px to rem
Parameters
| Name | Type | Description | Default |
| :----------- | :--------------------------------------------------------------- | :------------- | :------------------------- |
| $size | Number | font size | - |
| $base-size | Number | base font size | settings.$font-base-size |
Returns
Number rem value
Examples
scss inputs
.selector {
font-size: function.math-px-to-rem(14px, 16px);
}css outputs
.selector {
font-size: 0.875rem;
}@function remove-unit
return number without unit
Parameters
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :--------------- | :------ |
| $number | Number | number with unit | - |
Returns
Number number without unit
Examples
scss inputs
$pure-number: function.math-remove-unit(14px); // -> 14@function is-empty
value is empty or not
Parameters
| Name | Type | Description | Default |
| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | :------ |
| $value | String, Number, List, Map | test value | - |
Returns
Boolean value is empty or not
Examples
scss inputs
$result: function.meta-is-empty(''); // -> true@mixin apply-flexible-size
apply flexible size to pict
Parameters
| Name | Type | Description | Default |
| :------------------------ | :----------------------------------------------------------------- | :------------- | :------ |
| $width | Number | width | 16 |
| $height | Number | height | 9 |
| $options | Map | height | - |
| $options.use-object-fit | Boolean | use object-fit | false |
Examples
scss inputs
.selector {
@include mixin.pict-apply-flexible-size($width: 16, $height: 9);
}css outputs
.selector::before {
content: '';
display: block;
width: 100%;
height: 0;
padding-top: 56.25%;
}
.selector > .unit-pict__src {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: auto;
max-width: 100%;
height: auto;
max-height: 100%;
margin: auto;
}@mixin define
define placeholder class.
Parameters
| Name | Type | Description | Default |
| :------ | :--------------------------------------------------------------- | :------------------------ | :------ |
| $name | String | name of placeholder class | - |
Examples
scss inputs
.selector {
$name: unique-id();
@include mixin.placeholder-define($name: $name) {
font-size: 16px;
}
&__child-1 {
@extend %#{$name};
}
&__child-2 {
@extend %#{$name};
}
}css outputs
.selector__child-1,
.selector__child-2 {
font-size: 16px;
}$spritesheets
data store of sprite sheets
Type
Examples
scss inputs
// format of spritesheets
$spritesheets: (
// each by types of spritesheet
(
'icon-image': (
'image': 'path/to/sprite/icon-image.png',
'items': (
// output each by items
'logo': (
'width': 10px,
'height': 10px,
'total-width': 30px,
'total-height': 30px,
'offset-x': -10px,
'offset-y': -10px
),
...
)
)
),
...
);@function get-sheet-by-type
get sheet by type from values of spritesheets
Parameters
| Name | Type | Description | Default |
| :-------------- | :--------------------------------------------------------------- | :------------------- | :------ |
| $type | String | type of spritesheet | - |
| $spritesheets | Map | data of spritesheets | () |
Returns
@function normalize
normalize values of spritesheet
Parameters
| Name | Type | Description | Default |
| :-------- | :----------------------------------------------------------------------------------------------------------------------- | :-------------------- | :------ |
| $values | Map, List | values of spritesheet | () |
Returns
@mixin define
Define spritesheet
Parameters
| Name | Type | Description | Default |
| :----------------------------- | :----------------------------------------------------------------- | :---------------------------------------------------------- | :---------------- |
| $type | String | type of spritesheet | - |
| $name | String | name of spritesheet item | - |
| $options | Map | options | () |
| $options.use2x | Boolean | use 2x image or (one of true, false or breakpoint name) | false |
| $options.as-mask | Boolean | use as mask image or not | false |
| $options.responsive | Boolean | responsive or not | false |
| $options.toggle | Boolean | toggle or not | false |
| $options.capturing-selectors | List | capturing parent selectors | ("a", "button") |
Examples
scss inputs
// use spritesheet plugin with configuration
@use 'path/to/node_modules/unit/src/plugin/spritesheet' with (
$spritesheets: (
'icon-image': (
'image': 'path/to/sprite/icon-image.png',
'items': (
'logo': (
'width': 10px,
'height': 10px,
'total-width': 30px,
'total-height': 30px,
'offset-x': -10px,
'offset-y': -10px
)
)
)
)
);
// use this mixin
.selector {
@include spritesheet.define($type: 'icon-image', $name: 'logo');
}css outputs
.selector-logo {
--background-image: url(path/to/sprite/icon-image.png);
background-image: var(--background-image);
}
.selector-logo {
--overflow: hidden;
--color: transparent;
--text-indent: -100%;
}
.selector-logo {
--width: 10px;
width: var(--width);
--height: 10px;
height: var(--height);
--background-position: -10px -10px;
background-position: var(--background-position);
--background-size: 30px 30px;
background-size: var(--background-size);
}@mixin define-item
Define item
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------------- | :----------------------- | :------ |
| $name | String | name of spritesheet item | - |
| $items | Map | spritesheet items | () |
| $options | Map | options | () |
@mixin define-responsive-item
Define responsive item
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------------- | :----------------------- | :------ |
| $name | String | name of spritesheet item | - |
| $items | Map | spritesheet items | () |
| $options | Map | options | () |
@mixin define-responsive-toggle-item
Define responsive toggle item
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------------- | :----------------------- | :------ |
| $name | String | name of spritesheet item | - |
| $items | Map | spritesheet items | () |
| $options | Map | options | () |
@mixin define-toggle-item
Define toggle item
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------------- | :----------------------- | :------ |
| $name | String | name of spritesheet item | - |
| $items | Map | spritesheet items | () |
| $options | Map | options | () |
@mixin set-properties
set properties
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------- | :------------- | :------ |
| $values | Map | values of item | () |
| $options | Map | options | () |
@function inverse
return inverse selector
Parameters
| Name | Type | Description | Default |
| :---------- | :--------------------------------------------------------------- | :---------- | :------ |
| $selector | String | selector | - |
Examples
scss inputs
.selector {
content: function.selector-inverse('.hoge');
}css outputs
.selector {
content: ':not(.hoge)';
}@function encode-url
return url encoded string
Parameters
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :---------- | :------ |
| $string | String | string | - |
Returns
String url encoded string
Examples
scss inputs
.selector {
content: function.string-encode-url(
'<svg xmlns="http://www.w3.org/2000/svg"></svg>'
);
}css outputs
.selector {
content: <svg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22><%2Fsvg>;
}@function replace
replace string
Parameters
| Name | Type | Description | Default |
| :--------- | :--------------------------------------------------------------- | :------------------- | :------ |
| $string | String | string | - |
| $search | String | substring to replace | - |
| $replace | String | replacement string | "" |
| $options | Map | options | () |
Returns
String replaced string
Examples
scss inputs
.selector {
content: function.string-replace('hogefugapiyohogefugapiyo', 'fuga', 'FUGA');
}css outputs
.selector {
content: hogeFUGApiyohogeFUGApiyo;
}@function sprintf
sprintf
Parameters
| Name | Type | Description | Default |
| :-------- | :--------------------------------------------------------------- | :---------- | :------ |
| $format | String | format | - |
| $args | List | arguments | - |
Returns
String formatted string
Examples
scss inputs
.selector {
content: function.string-sprintf(
'%s is small capital of %s.',
'fuga',
'FUGA'
);
}css outputs
.selector {
content: fuga is small capital of FUGA.;
}@mixin apply-line-truncate
apply multi line truncate
Parameters
| Name | Type | Description | Default |
| :------ | :--------------------------------------------------------------- | :---------- | :------ |
| $line | Number | line length | 2 |
Examples
scss inputs
.selector {
@include mixin.text-apply-line-truncate($line: 3);
}css outputs
.selector {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}@function reserve
reserve z-index value each by types
Parameters
| Name | Type | Description | Default |
| :--------------- | :----------------------------------------------------------------- | :---------------- | :------ |
| $type | String | content type name | - |
| $index | Number | index number | - |
| $options | Map | options | - |
| $options.debug | Boolean | debug flag | false |
Returns
Number z-index value
Examples
scss inputs
.selector {
content: function.z-index-reserve('floating', 100);
}css outputs
.selector {
content: 2000100;
}Test
$ pnpm testLicense
MIT
