Auto-magically generate Sass color variables using palettes from COLOURLovers.
For day-to-day use, I recommend using npm
to install sass-colour-lover
globally.
npm install -g sass-colour-lover
If you plan on contributing to this project, you can install sass-colour-lover
locally using git
.
Clone the project:
git clone [email protected]:magicink/sass-colour-lover.git
Navigate into the project directory and the build dependencies:
npm install
Build
grunt
Install the module globally (may require administrative access)
npm install . -g
Or, if you prefer, link it (may require administrative access)
npm link
At this point, the sass-colour-lover
command will be available from your command prompt.
At a minimum, the ID of the palette needs to be passed to sass-colour-lover
. There are two ways to do this.
The easiest way is go to COLOURLovers and copy the address of a palette you like. After that, simply paste the url in as a parameter.
sass-colour-lover http://www.colourlovers.com/palette/3508876/Jujubee
# These will also work:
# http://colourlovers.com/palette/<id>
# www.colourlovers.com/palette/<id>
This generates a Sass file called _palette.scss
in the current working directory. The contents of this file appear like this:
// Palette: Jujubee
// Author: jaymepollock
// http://www.colourlovers.com/palette/3508876/Jujubee
$pomegranate-posey: rgb(201,11,78);
$down-by-the-sea: rgb(8,20,52);
$oj: rgb(201,132,11);
$royale: rgb(61,16,96);
$purple-day: rgb(136,12,114);
If you would like to generate Sass variables from multiple palettes, you can use the --ids=
parameter. Pass the IDs as a comma seperated list.
sass-colour-lover --ids=649208,32049,12345
The contents of the generated file appear like so:
// Palette: Spavian
// Author: Spammy
// http://www.colourlovers.com/palette/12345/Spavian
$ex8at: rgb(104,119,128);
$phi0phi: rgb(80,87,91);
$yum: rgb(88,98,103);
$won7phi: rgb(104,113,117);
$ine8ey: rgb(152,164,169);
// Palette: my front porch
// Author: realitybites
// http://www.colourlovers.com/palette/32049/my_front_porch
$codex: rgb(177,62,31);
$red-light-district: rgb(140,35,50);
$satisfying-auburn: rgb(171,72,0);
$spyglass: rgb(189,124,32);
$doormat: rgb(113,56,13);
// Palette: thrill worth seeking
// Author: lesaint
// http://www.colourlovers.com/palette/649208/thrill_worth_seeking
$cetiedil: rgb(115,75,6);
$love-pink: rgb(186,48,87);
$disposition: rgb(160,173,62);
$cotyl: rgb(236,255,92);
$green-clay: rgb(140,125,28);
--file=/path/to/file
Specifies where you would like to save your file.
# This produces a file called '_colors.scss'
sass-colour-lover --ids=3143 --file=_colors.scss
# Same file, one directory up
sass-colour-lover --ids=3143 --file=../_colors.scss
--color=(hex|rgb)
Generate colors in either hexadecimal or RGB formats.
sass-colour-lover --ids=72313 --color=hex
Generates
// Palette: cutty sark.
// Author: bijouloveshues
// http://www.colourlovers.com/palette/72313/cutty_sark.
$earl-grey: #DBDADD;
$call-bradly: #51524C;
$landmark-restoration: #2D3336;
$full-english: #DDBA47;
$maritime-relic: #285E7E;
sass-colour-lover
tries its very best to generate variable names based on the names selected by the palette's authors. That being said COLOURLovers allows for some pretty gnarly naming conventions that sometimes do not mesh well with Sass. There are likely to be edge cases that haven't been caught. Here are some things that get sanitized by sass-colour-lover
Numbers cannot be used as the first character of a variable name. If detected, the string 'color-' is prepended to the start of the variable name.
// Palette: 2
// Author: heheherrr
// http://www.colourlovers.com/palette/3508938/2
$spirit: rgb(253,216,189);
$flagwhite: rgb(233,214,212);
$fd5541: rgb(253,85,65);
$color-1: rgb(41,44,65);
$once-was: rgb(242,176,160);
If a duplicate name is detected, a simple counter is appended to the end of all variables that share the name.
// Palette: That's Not Butter!?!
// Author: retsof
// http://www.colourlovers.com/palette/223567/Thats_Not_Butter!!
$buffered-toast: rgb(223,162,70);
$buttered-toast: rgb(253,205,10);
$buttered-toast-1: rgb(240,240,83);
$buttered-toast-2: rgb(209,158,102);
$buttered-toast-3: rgb(216,173,63);
Sometimes names are entirely comprised of invalid characters. In which case, the color name is changed to color
.
They exist... and we love them anyway.
// Palette: ๓๏ภ๏t๏ภ๏ยร * l๏שє
// Author: -Yonder-
// http://www.colourlovers.com/palette/3508899/๓๏ภ๏t๏ภ๏ยร_*_l๏שє
$turkwer: rgb(200,214,186);
$anew: rgb(169,166,157);
$l----l: rgb(121,73,116);
$l: rgb(168,203,166);
$l-1: rgb(159,116,132);
- Appending output to an existing stylesheet
- Add option to use a different type of divider (i.e.
variable_name
as opposed tovariable-name
)