Development - WIP
Here is the development documentation for Matryoshka.
Colors
Returns the specified color from $ds-colors settings.
        my-color(colorName[, contrastName])
    
- colorName: required the color name defined in- $ds-colors
- contrastName: optional the contrast name- defined in $ds-contrastsfor automatic color groups
- defined in its own color group $ds-colorsfor manual and custom color groups
 
- defined in 
For the following examples, assuming we have the following colors and contrasts:
// Colors example
$ds-colors: (
    brand:      #123456, // Automatic color group
    neutral: ( // Manual color group
        0:          gray, // Reference color
        light:      #eee,
        dark:       #333
    ),
    other: ( // Custom color group
        foo:        blue,
        bar:        green
    )
);
// Contrasts example
$ds-contrasts: (
    max:      100,
    mid:      30,
    mid-rev:  -30,
    max-rev:  -100
);
// brand color group: Automatic (based on $ds-contrasts)
my-color(brand);
// Returns #123456;
my-color(brand, max);
// Returns computed #ffffff;
my-color(brand, mid);
// Returns computed #2771bb;
my-color(brand, mid-rev);
// Returns computed #0d243c;
my-color(brand, mid-rev);
// Returns computed #000000;
// neutral color group: Manual (based on its reference color 0: gray)
my-color(neutral) // Similar to my-color(neutral, 0);
// Returns #123456;
my-color(neutral, light);
// Returns specified #eee;
my-color(neutral, dark);
// Returns specified #333;
// other color group: Custom (independant colors)
my-color(other, foo)
// Returns specified blue;
my-color(other, bar);
// Returns specified green;
Font sizes
Returns the specified font size with the design system unit from $ds-font-sizes settings.
        my-font-size(fontSizeName)
    
fontSizeName: required the font size name defined in $ds-font-sizes.
For the following examples, assuming we have the following font sizes set:
// Design system unit example
$ds-unit: px;
// Font sizes example
$ds-font-sizes: (
    xxs: 10,
    xs:  13,
    sm:  16,
    md:  24,
    lg:  36,
    xl:  48,
    xxl: 64
);
my-font-size(xxs);
// Returns 10px;
my-font-size(md);
// Returns 24px;
my-font-size(xxl);
// Returns 64px;
// etc
Spacings
Returns the specified spacing with the design system unit from $ds-spacings settings.
        my-spacing(sName1[, sName2, sName3, sName4])
    
- sName1: required a spacing name defined in- $ds-spacings.
 This function supports shorthand. Thus,- sName1argument can be- Global spacing, for ex.
        - my-spacing(sName1)
 
- Vertical spacing, for ex.
        - my-spacing(sName1, sName2)
 
- Top spacing, for ex.
        - my-spacing(sName1, sName2, sName3, sName4)
 
 
- Global spacing, for ex.
        
- sName2: optional a spacing name defined in- $ds-spacings.
 This function supports shorthand. Thus,- sName2argument can be- Horizontal spacing, for ex.
        - my-spacing(sName1, sName2)
 
- Right spacing, for ex.
        - my-spacing(sName1, sName2, sName3, sName4)
 
 
- Horizontal spacing, for ex.
        
- sName3: optional a spacing name defined in- $ds-spacings.
 This function supports shorthand. Thus,- sName3defines bottom spacing, for ex.- my-spacing(sName1, sName2, sName3, sName4)
 
- sName4: optional a spacing name defined in- $ds-spacings.
 This function supports shorthand. Thus,- sName4defines left spacing, for ex.- my-spacing(sName1, sName2, sName3, sName4)
 
For the following examples, assuming we have the following spacings set:
// Design system unit example
$ds-unit: px;
// Spacings example
$ds-spacings: (
    none:   0,
    xxs:    5,
    xs:     10,
    sm:     15,
    md:     25,
    lg:     40,
    xl:     64,
    xxl:    128
);
my-spacing(xxs);
// Returns 5px;
my-spacing(md);
// Returns 25px;
my-spacing(xxl);
// Returns 128px;
// etc
Shorthand for spacings
This function supports CSS shorthand:
// Design system unit example
$ds-unit: px;
// Spacings example
$ds-spacings: (
    none:   0,
    xxs:    5,
    xs:     10,
    sm:     15,
    md:     25,
    lg:     40,
    xl:     64,
    xxl:    128
);
my-spacing(xs, md);
// Returns 10px 25px;
my-spacing(xxs, sm, md, lg);
// Returns 5px 15px 25px 40px;
Border radius
Returns the specified border radius with the design system unit from $ds-border-radius settings.
        my-border-radius(brName1[, brName2, brName3, brName4])
    
- brName1: required a border radius name defined in- $ds-border-radius.
 This function supports shorthand. Thus,- brName1argument can be- Global border radius, for ex.
        - my-border-radius(brName1)
 
- Top-left + bottom-right border radius, for ex.
        - my-border-radius(brName1, brName2)
 
- Top-left border radius, for ex.
        - my-border-radius(brName1, brName2, brName3, brName4)
 
 
- Global border radius, for ex.
        
- brName2: optional a border radius name defined in- $ds-border-radius.
 This function supports shorthand. Thus,- brName2argument can be- Top-right + bottom-left border radius, for ex.
        - my-border-radius(brName1, brName2)
 
- Top-right border radius, for ex.
        - my-border-radius(brName1, brName2, brName3, brName4)
 
 
- Top-right + bottom-left border radius, for ex.
        
- brName3: optional a border radius name defined in- $ds-border-radius.
 This function supports shorthand. Thus,- brName3defines bottom-right border radius, for ex.- my-border-radius(brName1, brName2, brName3, brName4)
 
- brName4: optional a border radius name defined in- $ds-border-radius.
 This function supports shorthand. Thus,- brName4defines bottom-left border radius, for ex.- my-border-radius(brName1, brName2, brName3, brName4)
 
For the following examples, assuming we have the following border radius set:
// Design system unit example
$ds-unit: px;
// Border radius example
$ds-border-radius: (
    min:    0,
    second: 4,
    third:  9,
    max:    16
);
my-border-radius(min);
// Returns 0px;
my-border-radius(second);
// Returns 4px;
my-border-radius(max);
// Returns 16px;
// etc
Shorthand for border radius
This function supports CSS shorthand:
// Design system unit example
$ds-unit: px;
// Border radius example
$ds-border-radius: (
    min:    0,
    second: 4,
    third:  9,
    max:    16
);
my-border-radius(min);
// Returns 0px;
my-border-radius(min, second);
// Returns 0px 4px;
my-border-radius(min, second, third, max);
// Returns 0px 4px 9px 16px;