0.9.0 • Published 1 year ago

@hidoo/unit v0.9.0

Weekly downloads
20
License
MIT
Repository
-
Last release
1 year ago

@hidoo/unit

Sass based css framework.

Demo

Installation

$ npm install @hidoo/unit

Usage

@use "node_modules/@hidoo/unit/src/index.scss";

Use with @hidoo/sass-importer

@use "@hidoo/unit";

Usage with custom settings

// use this package with custom settings
@use "node_modules/@hidoo/unit/src/index.scss" with (
  $prefix: "u"
);

Usage only the required units

// use custom settings
@use "node_modules/@hidoo/unit/src/settings" with (
  $prefix: "u"
);

// use all of text unit
@use "node_modules/@hidoo/unit/src/unit/text";

// use part of button unit
@use "node_modules/@hidoo/unit/src/unit/button/core";
@use "node_modules/@hidoo/unit/src/unit/button/inline";

Plugins

Migration 0.4.4 to 0.6.x higher

TODO

API

@mixin apply-aspect-ratio

apply aspect ratio settings

  • Group: Box features
  • Access: public

Parameters

NameTypeDescriptionDefault
$widthNumberwidth16
$heightNumberheight9

Examples

scss inputs

.selector {
  @include 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

  • Group: Box features
  • Access: public

Examples

scss inputs

.selector {
  @include apply-clearfix();
}

css outputs

.selector::before, .selector::after {
  content: "";
  display: table;
}
.selector::after {
  clear: both;
}

@mixin initialize

initialize box settings

  • Group: Box features
  • Access: public

Parameters

NameTypeDescriptionDefault
$displayStringsetting for display"block"
$overflowStringsetting for overflownull
$box-sizingStringsetting for box-sizing"content-box"
$positionStringsetting for position"relative"
$list-styleStringsetting for list-style0
$marginNumber, Listsetting for margin0
$paddingNumber, Listsetting for padding0
$borderNumber, Listsetting for border0

Examples

scss inputs

.selector {
  @include initialize();
}

css outputs

.selector {
  display: block;
  box-sizing: content-box;
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}

@mixin define

define breakepoint

  • Group: Breakpoint features
  • Access: public

Parameters

NameTypeDescriptionDefault
$fromNumber, String, Nullstarting point of breakpointnull
$untilNumber, String, Nullending point of breakpointnull
$optionsMapoptions()
$options.mediaStringcustom media name-

Examples

scss inputs

.selector {
  @include define($from: "mobile", $until: "desktop") {
    font-size: 16px;
  }
}

css outputs

@media only screen and (min-width: 667px) and (max-width: 1023px) {
  .selector {
    font-size: 16px;
  }
}

$_default-options

default options

  • Group: Color feature
  • Access: private

Type

Map

@function foreground

return foreground color

  • Group: Color feature
  • Access: public

Parameters

NameTypeDescriptionDefault
$background-colorColorbackground-color-
$optionsMapoptions()
$options.thresholdNumberthreshold60%
$options.color-mappingsMapcolor mappings-
$options.color-mappings.darkMapdark colorsettings.$color-scheme.black
$options.color-mappings.lightMaplight colorsettings.$color-scheme.white

Returns

Color foreground color

Examples

scss inputs

.selector {
  content: foreground(#000);
}

css outputs

.selector {
  content: #fff;
}

$family

default font family.

default

  • -apple-system ... use "San Francisco" as primary font in mac

  • BlinkMacSystemFont ... use "San Francisco" as primary in chrome on mac

  • Helvetica ... secondary font in mac

  • Arial ... secondary font in windows

  • Hiragino Kaku Gothic ProN ... primary japanese font in mac

  • Yu Gothic Medium ... primary japanese font in windows

  • 游ゴシック Medium ... primary japanese font in ie on windows

  • YuGothic ... secondary japanese font in mac

  • Meiryo ... secondary japanese font in windows

  • メイリオ ... secondary japanese font in ie on windows

  • Group: Default settings

  • Access: public

Type

List

$family-monospace

default monospace font family.

default

  • Consolas ... primary font in windows (use it as primary if installed in mac)

  • Monaco ... primary font in mac

  • Menlo ... secondary font in mac

  • Courier ... secondary font in windows

  • Group: Default settings

  • Access: public

Type

List

$base-size

default base font size. (default: 16px) this use if $enable-relative-size is true

  • Group: Default settings
  • Access: public

Type

Number

$size

default font size (default: 14px)

  • Group: Default settings
  • Access: public

Type

Number

$size-presets

default font size presets

  • Group: Default settings
  • Access: public

Type

Map

Properties

NameTypeDescriptionDefault
xsmallNumbersize xsmall0.75
smallNumbersize small0.875
mediumNumbersize medium1
largeNumbersize large1.15
xlargeNumbersize xlarge1.3
2xlargeNumbersize 2xlarge1.45
3xlargeNumbersize 3xlarge1.6
4xlargeNumbersize 4xlarge1.75

$enable-relative-size

enable relative font size specify. override base size settings of font (default: true)

  • Group: Default settings
  • Access: public

Type

Boolean

$prefix

prefix of class name of components (default: "unit")

  • Group: Default settings
  • Access: public

Type

String

Examples

scss inputs

$prefix: "u";

css outputs

.u-icon {
  /* settings */
}

$breakpoints

default settings of breakpoints

  • Group: Default settings
  • Access: public

Type

Map

Properties

NameTypeDescriptionDefault
desktopNumberbreakpoint for desktop1024px
mobileNumberbreakpoint for desktop667px

$link-color

default link color

  • Group: Default settings
  • Access: public

Type

Map

Properties

NameTypeDescriptionDefault
linkColorcolor of :link#37a5e4
focusColorcolor of :focus#7ac3ed

$letter-spacing

default letter-spacing (default: 0.04em)

  • Group: Default settings
  • Access: public

Type

Number

$line-height

default line-height (default: 1.5)

  • Group: Default settings
  • Access: public

Type

Number

$builtin-themes

default builtin theme

  • Group: Default settings
  • Access: public

Type

Map

Properties

NameTypeDescriptionDefault
lightMapvalues of light theme(...)
darkMapvalues of dark theme(...)

$verbose

out warnings verbosily or not

  • Group: Default settings
  • Access: public

Type

Boolean

$focus

settings of selector. for expressing of state like :hover or :focus. (default: (".is-focus"))

  • Group: Default settings
  • Access: public

Type

List

$selected

settings of selector for expressing of state like :checked. (default: (".is-selected"))

  • Group: Default settings
  • Access: public

Type

List

$disabled

settings of selector. for expressing of state like :disabled. (default: (".is-disabled"))

  • Group: Default settings
  • Access: public

Type

List

$current

settings of selector. for expressing of state like ".is-current" (default: (".is-current"))

  • Group: Default settings
  • Access: public

Type

List

$active

settings of selector. for expressing of state like is-active. (default: (".is-active"))

  • Group: Default settings
  • Access: public

Type

List

$prefix

prefix of class name of util (default: "util")

  • Group: Default settings
  • Access: public

Type

String

Examples

scss inputs

$util-prefix: "h";

css outputs

.h--width-0 {
  /* settings */
}

$box-sizes

default values of width / height utilities

  • Group: Default settings
  • Access: public

Type

List

$margin-values

default values of margin

  • Group: Default settings
  • Access: public

Type

List

$padding-values

default values of padding

  • Group: Default settings
  • Access: public

Type

List

$position-values

default values of position

  • Group: Default settings
  • Access: public

Type

List

$z-index-values

default values of z-index

  • Group: Default settings
  • Access: public

Type

List

$breakpoints

default breakpoints

  • Group: Default settings
  • Access: public

Type

Map

$_default-font-applying-units

default list of units that applying font

  • Group: Features
  • Access: private

Type

List

$_selectors

selectors

  • Group: Features
  • Access: private

Type

List

@function is-empty

DEPRECATED!

value is empty or not

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueString, Number, List, Maptest value-

Returns

Boolean value is empty or not

Examples

scss inputs

$result: is-empty(""); // -> true

@function merge-state-selectors

DEPRECATED!

return merged state selectors

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of state (one of "link", "focus", "selected", "disabled" or "current")"link"
$additional-selectorsListadditional selectors()

Returns

List

Examples

scss inputs

$merged-focus-selectors: merge-state-selectors("link"); // -> (":link", ":visited")

@function px-to-rem

DEPRECATED!

convert px to rem

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$sizeNumberfont size-
$base-sizeNumberbase font sizesettings.$font-base-size

Returns

Number rem value

Examples

scss inputs

.selector {
  font-size: px-to-rem(14px, 16px);
}

css outputs

.selector {
  font-size: 0.875rem;
}

@function ununit

DEPRECATED!

return number without unit

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$numberNumbernumber with unit-

Returns

Number number without unit

Examples

scss inputs

$pure-number: ununit(14px); // -> 14

@mixin bootstrap

bootstrap

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$enable-font-applyingBooleanenable applying font settings or nottrue
$enable-font-applying-feature-settingsBooleanenable applying font feature settings or nottrue
$font-applying-unitsListlist of units that applying fonttrue

Examples

scss inputs

@include bootstrap();

scss inputs

@include bootstrap() {
  // with appling additional settings to all units
};

@mixin define-breakpoint

DEPRECATED!

define breakepoint

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$fromNumber, String, Nullstarting point of breakpointnull
$untilNumber, String, Nullending point of breakpointnull
$optionsMapoptions()
$options.mediaStringcustom media name-

Examples

scss inputs

.selector {
  @include define-breakpoint($from: "mobile", $until: "desktop") {
    font-size: 16px;
  }
}

css outputs

@media only screen and (min-width: 667px) and (max-width: 1023px) {
  .selector {
    font-size: 16px;
  }
}

@mixin define-placeholder

DEPRECATED!

define placeholder class.

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$nameStringname of placeholder class-

Examples

scss inputs

.selector {
  $name: unique-id();

  @include define-placeholder($name: $name) {
    font-size: 16px;
  }

  &__child-1 {
    @extend %#{$name};
  }

  &__child-2 {
    @extend %#{$name};
  }
}

css outputs

.selector__child-1, .selector__child-2 {
   font-size: 16px;
}

@mixin define-sizes-in-direction-groups

DEPRECATED!

define sizes in direction groups

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of options (one of "margin", "padding", "position" or "border")"margin"
$valuesListlist of value()

Examples

scss inputs

.selector {
  @include define-sizes-in-direction-groups($type: "margin", $values: (5px, -5px))
}

css outputs

.selector-vertical-5 {
  margin-top: 5px !important;
  margin-bottom: 5px !important;
}
.selector-vertical-5- {
  margin-top: -5em !important;
  margin-bottom: -5em !important;
}
.selector-horizontal-5 {
  margin-right: 5px !important;
  margin-left: 5px !important;
}
.selector-horizontal-5- {
  margin-right: -5em !important;
  margin-left: -5em !important;
}
.selector-all-5 {
  margin-top: 5px !important;
  margin-right: 5px !important;
  margin-bottom: 5px !important;
  margin-left: 5px !important;
}
.selector-all-5- {
  margin-top: -5em !important;
  margin-right: -5em !important;
  margin-bottom: -5em !important;
  margin-left: -5em !important;
}

@mixin define-sizes-in-directions

DEPRECATED!

define sizes in directions

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of options (one of "margin", "padding", "position" or "border")"margin"
$valuesListlist of value()

Examples

scss inputs

.selector {
  @include define-sizes-in-directions($type: "margin", $values: (5px, -5px))
}

css outputs

.selector-top-5 {
  margin-top: 5px !important;
}
.selector-top-5- {
  margin-top: -5px !important;
}
.selector-right-5 {
  margin-right: 5px !important;
}
.selector-right-5- {
  margin-right: -5px !important;
}
.selector-bottom-5 {
  margin-bottom: 5px !important;
}
.selector-bottom-5- {
  margin-bottom: -5px !important;
}
.selector-left-5 {
  margin-left: 5px !important;
}
.selector-left-5- {
  margin-left: -5px !important;
}

@mixin define-sizes

DEPRECATED!

define sizes

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of options (one of "width", "height" or "z-index")"width"
$valuesListlist of value()

Examples

scss inputs

.selector {
  @include define-sizes($type: "width", $values: (10px))
}

css outputs

.selector-10 {
  width: 10px !important;
}
.selector-min-10 {
  min-width: 10px !important;
}
.selector-max-10 {
  max-width: 10px !important;
}

@mixin on-active

wrappper of is-active

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-active() {
    font-size: 16px;
  }
}

css outputs

.selector.is-active {
  font-size: 16px;
}

@mixin on-current

wrappper of .is-current

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-current() {
    font-size: 16px;
  }
}

css outputs

.selector.is-current {
  font-size: 16px;
}

@mixin on-deactive

wrappper of :not(is-active)

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-deactive() {
    font-size: 16px;
  }
}

css outputs

.selector:not(.is-active) {
  font-size: 16px;
}

@mixin on-disabled

wrappper of :disabled

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-disabled() {
    font-size: 16px;
  }
}

css outputs

.selector:disabled, .selector.is-disabled {
  font-size: 16px;
}

@mixin on-focus

wrappper of :hover and :focus

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-focus() {
    font-size: 16px;
  }
}

css outputs

.selector:hover, .selector:focus, .selector.is-focus {
  font-size: 16px;
}

@mixin on-link

wrappper of :link and :visited

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$additional-selectorsListlist of additional selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on-link() {
    font-size: 16px;
  }
}

css outputs

.selector:link, .selector:visited {
  font-size: 16px;
}

@mixin on-placeholder

wrappper of :placeholder-shown

  • Group: Features
  • Access: public

Examples

scss inputs

.selector {
  @include 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

  • Group: Features
  • Access: public

Examples

scss inputs

.selector {
  @include on-print() {
    font-size: 16px;
  }
}

css outputs

@media print {
  .selector.is-active {
    font-size: 16px;
  }
}

@mixin on

wrappper of pseudo class like :hover

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$selectorsListlist of selectors()
$capturing-selectorsListcapturing parent selectors()

Examples

scss inputs

.selector {
  @include on((":hover", ":focus")) {
    font-size: 16px;
  }
}

css outputs

.selector:hover,
.selector:focus {
  font-size: 16px;
}

@mixin use-box-aspect-ratio

DEPRECATED!

use settings of aspect ratio box

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$widthNumberwidth16
$heightNumberheight9

Examples

scss inputs

.selector {
  @include use-box-aspect-ratio($width: 16, $height: 9);
}

css outputs

.selector::before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}

@mixin use-box-base

DEPRECATED!

use settings of initialized box

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$displayStringsetting for display"block"
$overflowStringsetting for overflownull
$box-sizingStringsetting for box-sizing"content-box"
$positionStringsetting for position"relative"
$list-styleStringsetting for list-style0
$marginNumber, Listsetting for margin0
$paddingNumber, Listsetting for padding0
$borderNumber, Listsetting for border0

Examples

scss inputs

.selector {
  @include use-box-base();
}

css outputs

.selector {
  display: block;
  box-sizing: content-box;
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}

@mixin use-clearfix

DEPRECATED!

use clearfix

  • Group: Features
  • Access: public

Examples

scss inputs

.selector {
  @include use-clearfix();
}

css outputs

.selector::before, .selector::after {
  content: "";
  display: table;
}
.selector::after {
  clear: both;
}

@mixin use-font-advanced-settings

DEPRECATED!

use advanced settings of font

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$feature-settingsStringsetting for font-feature-settings"palt"

Examples

scss inputs

.selector {
  @include use-font-advanced-settings();
}

css outputs

.selector {
  font-feature-settings: "palt";
  -ms-font-feature-settings: normal;
}

@mixin use-font-base

DEPRECATED!

use settings of initialized font

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$styleStringsetting for font-style"normal"
$weightString, Numbersetting for font-weight"normal"

Examples

scss inputs

.selector {
  @include use-font-base();
}

css outputs

.selector {
  font-style: normal;
  font-weight: normal;
}

@mixin use-font-family

DEPRECATED!

use settings of font-family

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueList, Stringsetting for font-family (one of "default", "monospace" or (...))null
$importantBooleanset !important or notfalse

Examples

scss inputs

.selector {
  @include use-font-family($value: "default", $important: true);
}

css outputs

.selector {
  font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, Meiryo, "メイリオ", sans-serif !important;
}

@mixin use-font-size

DEPRECATED!

use settings of font-size

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueString, Numbervalue of font-size (one of "xsmall", "small", "medium", "large", "xlarge", "2xlarge", "3xlarge", "4xlarge" or number)-
$monospaceBooleanfont-family is monospace or notfalse
$importantBooleanset !important or notfalse

Examples

scss inputs

.selector {
  @include use-font-size($value: "medium", $important: true);
}

css outputs

.selector {
  font-size: 14px !important;
  font-size: 0.875rem !important;
}

@mixin use-table-base

DEPRECATED!

use settings of initialized table

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$widthNumber, Stringsetting for width"auto"
$marginNumber, Listsetting for margin0
$paddingNumber, Listsetting for padding0
$border-styleStringsetting for border-style"solid"
$border-widthNumbersetting for border-width1px

Examples

scss inputs

.selector {
  @include use-table-base();
}

css outputs

.selector {
  display: table;
  width: auto;
  margin: 0;
  padding: 0;
  border-collapse: collapse;
  border-style: solid;
  border-width: 1px;
}

@mixin use-table-column-base

DEPRECATED!

use settings of initialized table column

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$marginNumber, Listsetting for margin0
$paddingNumber, Listsetting for padding0
$border-styleStringsetting for border-style"solid"
$border-widthNumbersetting for border-width1px

Examples

scss inputs

.selector {
  @include use-table-column-base();
}

css outputs

.selector {
  display: table-cell;
  margin: 0;
  padding: 0;
  vertical-align: middle;
  border-style: solid;
  border-width: 1px;
}

@mixin use-text-base

DEPRECATED!

use settings of initialized text

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$letter-spacingNumbersetting for letter-spacingsettings.$letter-spacing
$line-heightNumber, Stringsetting for line-heightsettings.$line-height
$text-alignStringsetting for text-align"left"
$text-decorationStringsetting for text-decoration"none"
$text-indentNumbersetting for text-indent0
$white-spaceStringsetting for white-space"normal"
$word-breakStringsetting for word-break"break-all"
$word-wrapStringsetting for word-wrap"break-word"

Examples

scss inputs

.selector {
  @include use-text-base();
}

css outputs

.selector {
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: left;
  text-decoration: none;
  text-indent: 0;
  white-space: normal;
  word-break: break-all;
  word-wrap: break-word;
}

@mixin initialize-column

initialize table column settings

  • Group: Features
  • Access: public

Parameters

NameTypeDescriptionDefault
$marginNumber, Listsetting for margin0
$paddingNumber, Listsetting for padding0
$border-styleStringsetting for border-style"solid"
$border-widthNumbersetting for border-width1px

Examples

scss inputs

.selector {
  @include initialize-column();
}

css outputs

.selector {
  display: table-cell;
  margin: 0;
  padding: 0;
  vertical-align: middle;
  border-style: solid;
  border-width: 1px;
}

$_default-options

default options

  • Group: Font feature
  • Access: private

Type

Map

@function size

return real font-size

  • Group: Font feature
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueString, Numbervalue of font-size (one of "xsmall", "small", "medium", "large", "xlarge", "2xlarge", "3xlarge", "4xlarge" or number)-
$optionsMapoptions()
$options.monospaceBooleanfont-family is monospace or notfalse
$options.relative-sizeBooleanconvert to rem value or notfalse

Returns

Number real font-size

Examples

scss inputs

.selector {
  font-size: font-size($value: "medium");
}

css outputs

.selector {
  font-size: 14px;
}

@mixin apply-family

apply font-family settings

  • Group: Font features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueList, Stringsetting for font-family (one of "default", "monospace" or (...))null
$importantBooleanset !important or notfalse

Examples

scss inputs

.selector {
  @include apply-family($value: "default", $important: true);
}

css outputs

.selector {
  font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, Meiryo, "メイリオ", sans-serif !important;
}

@mixin apply-feature-settings

apply font-feature-settings

  • Group: Font features
  • Access: public

Parameters

NameTypeDescriptionDefault
$feature-settingsStringsetting for font-feature-settings"palt"

Examples

scss inputs

.selector {
  @include apply-feature-settings();
}

css outputs

.selector {
  font-feature-settings: "palt";
  -ms-font-feature-settings: normal;
}

@mixin apply-size

apply font-size settings

  • Group: Font features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueString, Numbervalue of font-size (one of "xsmall", "small", "medium", "large", "xlarge", "2xlarge", "3xlarge", "4xlarge" or number)-
$monospaceBooleanfont-family is monospace or notfalse
$importantBooleanset !important or notfalse

Examples

scss inputs

.selector {
  @include apply-size($value: "medium", $important: true);
}

css outputs

.selector {
  font-size: 14px !important;
  font-size: 0.875rem !important;
}

@mixin apply-smoothing

apply font-smoothing

  • Group: Font features
  • Access: public

Examples

scss inputs

.selector {
  @include apply-smoothing();
}

css outputs

.selector {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@mixin initialize

use settings of initialized font

  • Group: Font features
  • Access: public

Parameters

NameTypeDescriptionDefault
$styleStringsetting for font-style"normal"
$weightString, Numbersetting for font-weight"normal"

Examples

scss inputs

.selector {
  @include initialize();
}

css outputs

.selector {
  font-style: normal;
  font-weight: normal;
}

$_default-options

default options

  • Group: List feature
  • Access: private

Type

Map

@function concat-as-string

concatenate list as string

  • Group: List feature
  • Access: public

Parameters

NameTypeDescriptionDefault
$listListlist-
$separatorStringseparator","

Returns

String concatenated list

Examples

scss inputs

.selector {
  content: concat-as-string(("hoge", "fuga", "piyo"), ":");
}

css outputs

.selector {
  content: hoge:fuga:piyo;
}

@function map

map list

  • Group: List feature
  • Access: public

Parameters

NameTypeDescriptionDefault
$listListlist-
$callbackFunctionfunction called each items-

Returns

List mapped list

Examples

scss inputs

.selector {
  content: 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

  • Group: Math features
  • Access: public

Parameters

NameTypeDescriptionDefault
$sizeNumberfont size-
$base-sizeNumberbase font sizesettings.$font-base-size

Returns

Number rem value

Examples

scss inputs

.selector {
  font-size: px-to-rem(14px, 16px);
}

css outputs

.selector {
  font-size: 0.875rem;
}

@function remove-unit

return number without unit

  • Group: Math features
  • Access: public

Parameters

NameTypeDescriptionDefault
$numberNumbernumber with unit-

Returns

Number number without unit

Examples

scss inputs

$pure-number: remove-unit(14px); // -> 14

@function is-empty

value is empty or not

  • Group: Meta features
  • Access: public

Parameters

NameTypeDescriptionDefault
$valueString, Number, List, Maptest value-

Returns

Boolean value is empty or not

Examples

scss inputs

$result: is-empty(""); // -> true

$_default-options

default options

  • Group: Pict feature
  • Access: private

Type

Map

@mixin apply-flexible-size

apply flexible size to pict

  • Group: Pict feature
  • Access: public

Parameters

NameTypeDescriptionDefault
$widthNumberwidth16
$heightNumberheight9
$optionsMapheight-
$options.use-object-fitBooleanuse object-fitfalse

Examples

scss inputs

.selector {
  @include 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;
}

$_already-defined

defined placeholders.

  • Group: Placeholder features
  • Access: private

Type

List

@mixin define

define placeholder class.

  • Group: Placeholder features
  • Access: public

Parameters

NameTypeDescriptionDefault
$nameStringname of placeholder class-

Examples

scss inputs

.selector {
  $name: unique-id();

  @include 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;
}

$_default-options

default options

  • Group: Plugin/spritesheet
  • Access: private

Type

Map

$_default-options

default options

  • Group: Plugin/spritesheet
  • Access: private

Type

Map

$spritesheets

data store of sprite sheets

  • Group: Plugin/spritesheet
  • Access: public

Type

List, Map

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

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$typeStringtype of spritesheet-
$spritesheetsMapdata of spritesheets()

Returns

Map, Null

@function normalize

normalize values of spritesheet

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$valuesMap, Listvalues of spritesheet()

Returns

Map, Null

@mixin define

define spritesheet

  • Group: Plugin/spritesheet
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of spritesheet-
$nameStringname of spritesheet item-
$optionsMapoptions()
$options.use2xBooleanuse 2x image or (one of true, false or "if-mobile")false
$options.as-maskBooleanuse as mask image or notfalse
$options.responsiveBooleanresponsive or notfalse
$options.toggleBooleantoggle or notfalse
$options.capturing-selectorsListcapturing 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 {
  overflow: hidden;
  text-indent: -100%;
  color: transparent;
  background-image: url(path/to/sprite/icon-image.png);
}
.selector-logo {
  width: 10px;
  height: 10px;
  background-position: -10px -10px;
  background-size: 30px 30px;
}

@mixin use-spritesheet

DEPRECATED!

use spritesheet rule

  • Group: Plugin/spritesheet
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of spritesheet-
$nameStringname of spritesheet item-
$optionsMapoptions()
$options.use2xBooleanuse 2x image or (one of true, false or "if-mobile")false
$options.as-maskBooleanuse as mask image or notfalse
$options.responsiveBooleanresponsive or notfalse
$options.toggleBooleantoggle or notfalse
$options.capturing-selectorsListcapturing 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.use-spritesheet($type: "icon-image", $name: "logo");
}

css outputs

.selector-logo {
  overflow: hidden;
  text-indent: -100%;
  color: transparent;
  background-image: url(path/to/sprite/icon-image.png);
}
.selector-logo {
  width: 10px;
  height: 10px;
  background-position: -10px -10px;
  background-size: 30px 30px;
}

@mixin define-item

define item

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$nameStringname of spritesheet item-
$itemsMapspritesheet items()
$optionsMapoptions()

@mixin define-responsive-item

define responsive item

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$nameStringname of spritesheet item-
$itemsMapspritesheet items()
$optionsMapoptions()

@mixin define-responsive-toggle-item

define responsive toggle item

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$nameStringname of spritesheet item-
$itemsMapspritesheet items()
$optionsMapoptions()

@mixin define-toggle-item

define toggle item

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$nameStringname of spritesheet item-
$itemsMapspritesheet items()
$optionsMapoptions()

@mixin set-properties

set properties

  • Group: Plugin/spritesheet
  • Access: private

Parameters

NameTypeDescriptionDefault
$valuesMapvalues of item()
$optionsMapoptions()

$_supported-types

supported types

  • Group: Selector features
  • Access: private

Type

List

@function inverse

return inverse selector

  • Group: Selector features
  • Access: public

Parameters

NameTypeDescriptionDefault
$selectorStringselector-

Examples

scss inputs

.selector {
  content: _inverse(".hoge")
}

css outputs

.selector {
  content: ":not(.hoge)";
}

@function merge-state

return merged state selectors

  • Group: Selector features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of state (one of "link", "focus", "selected", "disabled" or "current")"link"
$additional-selectorsListadditional selectors()

Returns

List

Examples

scss inputs

$merged-focus-selectors: merge-state("link"); // -> (":link", ":visited")

$_supported-types

supported types

  • Group: Size features
  • Access: private

Type

List

$_direction-groups

direction groups

  • Group: Size features
  • Access: private

Type

List

$_default-border-size

default border size

  • Group: Size features
  • Access: private

Type

Number

$_default-border-style

default border style

  • Group: Size features
  • Access: private

Type

String

$_default-border-color

default border color

  • Group: Size features
  • Access: private

Type

Color

$_supported-types

supported types

  • Group: Size features
  • Access: private

Type

List

$_directions

directions

  • Group: Size features
  • Access: private

Type

List

$_default-border-size

default border size

  • Group: Size features
  • Access: private

Type

Number

$_default-border-style

default border style

  • Group: Size features
  • Access: private

Type

String

$_default-border-color

default border color

  • Group: Size features
  • Access: private

Type

Color

$_supported-types

supported types

  • Group: Size features
  • Access: private

Type

List

@mixin define-by-direction-group

define sizes in direction groups

  • Group: Size features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of options (one of "margin", "padding", "position" or "border")"margin"
$valuesListlist of value()
$breakpointsMapmappings of breakpointsnull

Examples

scss inputs

.selector {
  @include define-by-direction-group($type: "padding", $values: (5px,), $breakpoints: ("if-mobile": ("until": "mobile")))
}

css outputs

.selector-vertical-5 {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-vertical-5-if-mobile {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }
}
.selector-horizontal-5 {
  padding-right: 5px !important;
  padding-left: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-horizontal-5-if-mobile {
    padding-right: 5px !important;
    padding-left: 5px !important;
  }
}
.selector-all-5 {
  padding-top: 5px !important;
  padding-right: 5px !important;
  padding-bottom: 5px !important;
  padding-left: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-all-5-if-mobile {
    padding-top: 5px !important;
    padding-right: 5px !important;
    padding-bottom: 5px !important;
    padding-left: 5px !important;
  }
}

@mixin define-by-direction

define sizes by directions

  • Group: Size features
  • Access: public

Parameters

NameTypeDescriptionDefault
$typeStringtype of options (one of "margin", "padding", "position" or "border")"margin"
$valuesListlist of value()
$breakpointsMapmappings of breakpointsnull

Examples

scss inputs

.selector {
  @include define-by-direction($type: "padding", $values: (5px,), $breakpoints: ("if-mobile": ("until": "mobile")))
}

css outputs

.selector-top-5 {
  padding-top: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-top-5-if-mobile {
    padding-top: 5px !important;
   }
}
.selector-right-5 {
  padding-right: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-right-5-if-mobile {
    padding-right: 5px !important;
  }
}
.selector-bottom-5 {
  padding-bottom: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-bottom-5-if-mobile {
    padding-bottom: 5px !important;
  }
}
.selector-left-5 {
  padding-left: 5px !important;
}
@media only screen and (max-width: 666px) {
  .selector-left-5-
0.9.0

1 year ago

0.8.0

2 years ago

0.7.0

2 years ago

0.5.0

3 years ago

0.6.0

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.2

4 years ago

0.4.1

4 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago