UNPKG

@vulcancreative/cross-colour

Version:

Dynamically translates a SASS/SCSS colour file to a JS object

104 lines (94 loc) 2.01 kB
const CrossColour = require("../src/cross"); const inputSASS = ` /* vulcan colors */ $yellow: #ffe380 $cyan: #4ec7bc $magenta: #fe939d /* tonals */ $white: #ffffff; $black: #211f22 $light-grey: #f7f8fa $line-grey: #e2e1e5 $line-darkgrey: #444245 $mid-grey: #dedede $slate-grey: #6e7077 $dark-grey: #323034 $space-black: #1e112c /* wireframes */ $grey-ten: #1a1a1a $grey-twenty: #333333 $grey-thirty: #4d4d4d $grey-forty: #666666 $grey-fifty: #808080 $grey-60: #999999 $grey-70: #b2b2b2 $grey-80: #cccccc $grey-90: #e6e6e6 $grey-100: #ffffff `; const inputSCSS = ` // vulcan colors $yellow: #ffe380; $cyan: #4ec7bc; $magenta: #fe939d; // tonals $white: #ffffff; $black: #211f22; $light-grey: #f7f8fa; $line-grey: #e2e1e5; $line-darkgrey: #444245; $mid-grey: #dedede; $slate-grey: #6e7077; $dark-grey: #323034; $space-black: #1e112c; // wireframes $grey-ten: #1a1a1a; $grey-twenty: #333333; $grey-thirty: #4d4d4d; $grey-forty: #666666; $grey-fifty: #808080; $grey-60: #999999; $grey-70: #b2b2b2; $grey-80: #cccccc; $grey-90: #e6e6e6; $grey-100: #ffffff; `; const output = `{ "yellow": "#ffe380", "cyan": "#4ec7bc", "magenta": "#fe939d", "white": "#ffffff", "black": "#211f22", "lightGrey": "#f7f8fa", "lineGrey": "#e2e1e5", "lineDarkgrey": "#444245", "midGrey": "#dedede", "slateGrey": "#6e7077", "darkGrey": "#323034", "spaceBlack": "#1e112c", "greyTen": "#1a1a1a", "greyTwenty": "#333333", "greyThirty": "#4d4d4d", "greyForty": "#666666", "greyFifty": "#808080", "grey60": "#999999", "grey70": "#b2b2b2", "grey80": "#cccccc", "grey90": "#e6e6e6", "grey100": "#ffffff" }` test("correctly compiles SASS", () => { const c = new CrossColour(); const obj = c.cross(inputSASS).build() const result = JSON.stringify(obj, null, 2); expect(result).toBe(output); }); test("correctly compiles SCSS", () => { const c = new CrossColour(); const obj = c.cross(inputSCSS).build() const result = JSON.stringify(obj, null, 2); expect(result).toBe(output); });