3.0.0-20260624.c • Published 5d ago
@sandlada/mdk
Licence
MIT
Version
3.0.0-20260624.c
Deps
0
Size
367 kB
Vulns
0
Weekly
479
@sandlada/mdk
@sandlada/mdk, Material Design Kit, a JavaScript library based on Material Design 3, providing data such as color, shape, shadow level, etc:
- Palette
- Color
- ElevationLevel
- Duration
- Easing
- Shape
- State
- Space
- Typeface
- Typescale
Installation
npm i @sandlada/mdkUsage
Including:
ColorPaletteDurationEasingElevationShapeSpaceStateTypefaceTypescaleVariantContrastLevel
Use Color
import { Color } from '@sandlada/mdk'
const surface = Color.From().Surface
/**
* @output
* ```
* --md-sys-color-surface
* ```
*/
console.log(surface.Key)
/**
* @output
* ```
* light-dark(#f4fbf1, #0e150f)
* ```
*/
console.log(surface.Value)
/**
* @output
* ```
* --md-sys-color-surface: light-dark(#f4fbf1, #0e150f)
* ```
*/
console.log(surface.ToCSSDeclaration())
/**
* @output
* ```
* var(--md-sys-color-surface, light-dark(#f4fbf1, #0e150f))
* ```
*/
console.log(surface.ToCSSVariable())
const yourDiv = document.querySelector('body')
yourDiv.style.setProperty('background-color', surface.ToCSSVariable())Use Shape
import { Shape } from '@sandlada/mdk'
const shapeLarge = Shape.Large
/**
* @output
* ```
* --md-sys-shape-corner-large
* ```
*/
console.log(shapeLarge.Key)
/**
* @output
* ```
* 16
* ```
*/
console.log(shapeLarge.Value)
/**
* @output
* ```
* px
* ```
*/
console.log(shapeLarge.Unit)
/**
* @output
* ```
* --md-sys-shape-corner-large: 16px
* ```
*/
console.log(shapeLarge.ToCSSDeclaration())
/**
* @output
* ```
* var(--md-sys-shape-corner-large, 16px)
* ```
*/
console.log(shapeLarge.ToCSSVariable())
const myBox = document.querySelector('#my-box')
myBox.style.setProperty('border-radius', shapeLarge.ToCSSVariable())Use Typescale
import { Typescale } from '@sandlada/mdk'
const displayLarge = Typescale.DisplayLarge
const fontSize = displayLarge.FontSize
/**
* @output
* ```
* --md-sys-typescale-display-large-font-size
* ```
*/
console.log(fontSize.Key)
/**
* @output
* ```
* 57
* ```
*/
console.log(fontSize.Value)
/**
* @output
* ```
* px
* ```
*/
console.log(fontSize.Unit)
/**
* @output
* ```
* --md-sys-typescale-display-large-font-size: 57px
* ```
*/
console.log(fontSize.ToCSSDeclaration())
/**
* @output
* ```
* var(--md-sys-typescale-display-large-font-size, 57px)
* ```
*/
console.log(fontSize.ToCSSVariable())API
ToCSSDeclaration(options?)
All token classes implement the ICSSDeclaration interface and provide the ToCSSDeclaration method, which outputs a CSS custom property declaration (--key: value).
| Option | Type | Default | Description |
|---|---|---|---|
Semicolon |
boolean |
false |
Append a semicolon to the declaration |
Color.Primary.ToCSSDeclaration() // --md-sys-color-primary: light-dark(#006d38, #76f29e)
Color.Primary.ToCSSDeclaration({ Semicolon: true }) // --md-sys-color-primary: light-dark(#006d38, #76f29e);ToCSSVariable()
All token classes also provide the ToCSSVariable method, which outputs a CSS var() function call (var(--key, value)) suitable for direct use as a CSS property value.
Color.Primary.ToCSSVariable() // var(--md-sys-color-primary, light-dark(#006d38, #76f29e))
Duration.Short1.ToCSSVariable() // var(--md-sys-motion-duration-short1, 50ms)
Shape.Medium.ToCSSVariable() // var(--md-sys-shape-corner-medium, 12px)