md-colors
Version:
Material Design's colors as SASS variables, extensions, or functions
129 lines (88 loc) • 2.78 kB
Markdown
# md-colors
> Material Design's colors as SASS variables, extensions, or functions
[![npm package][npm-ver-link]][releases]
[![][dl-badge]][npm-pkg-link]
## Install
```a
npm install md-colors
# or
bower install md-colors
```
## Usage
```sass
@import 'md-colors'
// declare variables
$primary : md-color('blue', '300')
$secondary : md-color('red', 'a300')
// via Function
.eg--function
color: md-color('deep-purple', '50')
background-color: md-color('indigo') // '500' is default shade
box-shadow: 0 1px 3px rgba(md-color('lime'), 0.2)
// via Extension
.eg--placeholder
@extend %md-color-deep-purple-50
@extend %md-bg-color-indigo-500
// No built-in extension for 'box-shadow'. Use a function
```
### Colors
All of `md-color`'s colors are taken from the [Material Design Color Palette](https://www.google.com/design/spec/style/color.html#color-color-palette).
All names and values are stringified (within functions) and lowercased. For example:
```sass
// function
color: md-color('light-blue', 'a100')
background-color: md-color('green', '600')
// extension/placeholder
@extend %md-color-lime-a200
@extend %md-bg-color-red-300
```
### Importing
You have two options for easy importing:
* Attach `node_modules` or `bower_components` to the `includePaths` option of your SASS compiler
* Use a sass `importer` function, as [described here](http://stackoverflow.com/a/29924381) or as [exemplified here](https://www.npmjs.com/package/sass-module-importer)
### Function
SASS functions can be anywhere as if they were normal variables or values.
The `md-color` function takes two parameters:
#### name
Type: `string`
The lowercased (and hypened) color name; eg: `red`, `light-purple`
#### shade
Type: `string`
Default: `500`
The shade or weight of the color; eg: `50`, `300`, `a100`
### Extensions
By nature, extensions, or "placeholders", don't offer too much without inordinate amounts of complexity. So there are only two sets of built-in extensions for `background`s and `color`s.
If you want a text-color extension, the format is:
```sass
%md-color-{ name }-{ shade }
```
If you want a background color extension, the format is:
```sass
%md-bg-color-{ name }-{ shade }
```
For example:
```sass
body
@extend %md-color-deep-purple-50
@extend %md-bg-color-indigo-500
.test
position: relative
@extend %md-color-deep-purple-50
@extend %md-bg-color-indigo-500
```
Output:
```css
body,
.test {
color: #EDE7F6; }
body,
.test {
background-color: #3F51B5; }
.test {
position: relative; }
```
## License
MIT © [Luke Edwards](https://lukeed.com)
[releases]: https://github.com/lukeed/md-colors/releases
[npm-pkg-link]: https://www.npmjs.org/package/md-colors
[npm-ver-link]: https://img.shields.io/npm/v/md-colors.svg?style=flat-square