Skip to content

Instantly share code, notes, and snippets.

@steveosoule
Last active July 11, 2022 19:02
Show Gist options
  • Select an option

  • Save steveosoule/07492c6430428f21275b198e9cb3b365 to your computer and use it in GitHub Desktop.

Select an option

Save steveosoule/07492c6430428f21275b198e9cb3b365 to your computer and use it in GitHub Desktop.
CSS Variable Color Palette from Material Colors
// https://materialui.co/colors/
// https://github.com/shuhei/material-colors/blob/master/dist/colors.json
const colors = {
"red": {
"50": "#ffebee",
"100": "#ffcdd2",
"200": "#ef9a9a",
"300": "#e57373",
"400": "#ef5350",
"500": "#f44336",
"600": "#e53935",
"700": "#d32f2f",
"800": "#c62828",
"900": "#b71c1c",
"a100": "#ff8a80",
"a200": "#ff5252",
"a400": "#ff1744",
"a700": "#d50000"
},
"pink": {
"50": "#fce4ec",
"100": "#f8bbd0",
"200": "#f48fb1",
"300": "#f06292",
"400": "#ec407a",
"500": "#e91e63",
"600": "#d81b60",
"700": "#c2185b",
"800": "#ad1457",
"900": "#880e4f",
"a100": "#ff80ab",
"a200": "#ff4081",
"a400": "#f50057",
"a700": "#c51162"
},
"purple": {
"50": "#f3e5f5",
"100": "#e1bee7",
"200": "#ce93d8",
"300": "#ba68c8",
"400": "#ab47bc",
"500": "#9c27b0",
"600": "#8e24aa",
"700": "#7b1fa2",
"800": "#6a1b9a",
"900": "#4a148c",
"a100": "#ea80fc",
"a200": "#e040fb",
"a400": "#d500f9",
"a700": "#aa00ff"
},
"deep-purple": {
"50": "#ede7f6",
"100": "#d1c4e9",
"200": "#b39ddb",
"300": "#9575cd",
"400": "#7e57c2",
"500": "#673ab7",
"600": "#5e35b1",
"700": "#512da8",
"800": "#4527a0",
"900": "#311b92",
"a100": "#b388ff",
"a200": "#7c4dff",
"a400": "#651fff",
"a700": "#6200ea"
},
"indigo": {
"50": "#e8eaf6",
"100": "#c5cae9",
"200": "#9fa8da",
"300": "#7986cb",
"400": "#5c6bc0",
"500": "#3f51b5",
"600": "#3949ab",
"700": "#303f9f",
"800": "#283593",
"900": "#1a237e",
"a100": "#8c9eff",
"a200": "#536dfe",
"a400": "#3d5afe",
"a700": "#304ffe"
},
"blue": {
"50": "#e3f2fd",
"100": "#bbdefb",
"200": "#90caf9",
"300": "#64b5f6",
"400": "#42a5f5",
"500": "#2196f3",
"600": "#1e88e5",
"700": "#1976d2",
"800": "#1565c0",
"900": "#0d47a1",
"a100": "#82b1ff",
"a200": "#448aff",
"a400": "#2979ff",
"a700": "#2962ff"
},
"light-blue": {
"50": "#e1f5fe",
"100": "#b3e5fc",
"200": "#81d4fa",
"300": "#4fc3f7",
"400": "#29b6f6",
"500": "#03a9f4",
"600": "#039be5",
"700": "#0288d1",
"800": "#0277bd",
"900": "#01579b",
"a100": "#80d8ff",
"a200": "#40c4ff",
"a400": "#00b0ff",
"a700": "#0091ea"
},
"cyan": {
"50": "#e0f7fa",
"100": "#b2ebf2",
"200": "#80deea",
"300": "#4dd0e1",
"400": "#26c6da",
"500": "#00bcd4",
"600": "#00acc1",
"700": "#0097a7",
"800": "#00838f",
"900": "#006064",
"a100": "#84ffff",
"a200": "#18ffff",
"a400": "#00e5ff",
"a700": "#00b8d4"
},
"teal": {
"50": "#e0f2f1",
"100": "#b2dfdb",
"200": "#80cbc4",
"300": "#4db6ac",
"400": "#26a69a",
"500": "#009688",
"600": "#00897b",
"700": "#00796b",
"800": "#00695c",
"900": "#004d40",
"a100": "#a7ffeb",
"a200": "#64ffda",
"a400": "#1de9b6",
"a700": "#00bfa5"
},
"green": {
"50": "#e8f5e9",
"100": "#c8e6c9",
"200": "#a5d6a7",
"300": "#81c784",
"400": "#66bb6a",
"500": "#4caf50",
"600": "#43a047",
"700": "#388e3c",
"800": "#2e7d32",
"900": "#1b5e20",
"a100": "#b9f6ca",
"a200": "#69f0ae",
"a400": "#00e676",
"a700": "#00c853"
},
"light-green": {
"50": "#f1f8e9",
"100": "#dcedc8",
"200": "#c5e1a5",
"300": "#aed581",
"400": "#9ccc65",
"500": "#8bc34a",
"600": "#7cb342",
"700": "#689f38",
"800": "#558b2f",
"900": "#33691e",
"a100": "#ccff90",
"a200": "#b2ff59",
"a400": "#76ff03",
"a700": "#64dd17"
},
"lime": {
"50": "#f9fbe7",
"100": "#f0f4c3",
"200": "#e6ee9c",
"300": "#dce775",
"400": "#d4e157",
"500": "#cddc39",
"600": "#c0ca33",
"700": "#afb42b",
"800": "#9e9d24",
"900": "#827717",
"a100": "#f4ff81",
"a200": "#eeff41",
"a400": "#c6ff00",
"a700": "#aeea00"
},
"yellow": {
"50": "#fffde7",
"100": "#fff9c4",
"200": "#fff59d",
"300": "#fff176",
"400": "#ffee58",
"500": "#ffeb3b",
"600": "#fdd835",
"700": "#fbc02d",
"800": "#f9a825",
"900": "#f57f17",
"a100": "#ffff8d",
"a200": "#ffff00",
"a400": "#ffea00",
"a700": "#ffd600"
},
"amber": {
"50": "#fff8e1",
"100": "#ffecb3",
"200": "#ffe082",
"300": "#ffd54f",
"400": "#ffca28",
"500": "#ffc107",
"600": "#ffb300",
"700": "#ffa000",
"800": "#ff8f00",
"900": "#ff6f00",
"a100": "#ffe57f",
"a200": "#ffd740",
"a400": "#ffc400",
"a700": "#ffab00"
},
"orange": {
"50": "#fff3e0",
"100": "#ffe0b2",
"200": "#ffcc80",
"300": "#ffb74d",
"400": "#ffa726",
"500": "#ff9800",
"600": "#fb8c00",
"700": "#f57c00",
"800": "#ef6c00",
"900": "#e65100",
"a100": "#ffd180",
"a200": "#ffab40",
"a400": "#ff9100",
"a700": "#ff6d00"
},
"deep-orange": {
"50": "#fbe9e7",
"100": "#ffccbc",
"200": "#ffab91",
"300": "#ff8a65",
"400": "#ff7043",
"500": "#ff5722",
"600": "#f4511e",
"700": "#e64a19",
"800": "#d84315",
"900": "#bf360c",
"a100": "#ff9e80",
"a200": "#ff6e40",
"a400": "#ff3d00",
"a700": "#dd2c00"
},
"brown": {
"50": "#efebe9",
"100": "#d7ccc8",
"200": "#bcaaa4",
"300": "#a1887f",
"400": "#8d6e63",
"500": "#795548",
"600": "#6d4c41",
"700": "#5d4037",
"800": "#4e342e",
"900": "#3e2723"
},
"grey": {
"50": "#fafafa",
"100": "#f5f5f5",
"200": "#eeeeee",
"300": "#e0e0e0",
"400": "#bdbdbd",
"500": "#9e9e9e",
"600": "#757575",
"700": "#616161",
"800": "#424242",
"900": "#212121"
},
"blue-grey": {
"50": "#eceff1",
"100": "#cfd8dc",
"200": "#b0bec5",
"300": "#90a4ae",
"400": "#78909c",
"500": "#607d8b",
"600": "#546e7a",
"700": "#455a64",
"800": "#37474f",
"900": "#263238"
}
}
let variables = [
'--palette-white: #FFFFFF;',
'--palette-black: #000000;'
// TODO: white/black with 10 steps of opacity
];
for (color in colors) {
const shades = colors[color];
for (shade in shades){
const hex = shades[shade];
let variable = `--palette-${color}-${shade}: ${hex};`;
variables.push(variable);
}
}
copy(variables.join('\n'));
::root {
--palette-white: #FFFFFF;
--palette-black: #000000;
--palette-red-50: #ffebee;
--palette-red-100: #ffcdd2;
--palette-red-200: #ef9a9a;
--palette-red-300: #e57373;
--palette-red-400: #ef5350;
--palette-red-500: #f44336;
--palette-red-600: #e53935;
--palette-red-700: #d32f2f;
--palette-red-800: #c62828;
--palette-red-900: #b71c1c;
--palette-red-a100: #ff8a80;
--palette-red-a200: #ff5252;
--palette-red-a400: #ff1744;
--palette-red-a700: #d50000;
--palette-pink-50: #fce4ec;
--palette-pink-100: #f8bbd0;
--palette-pink-200: #f48fb1;
--palette-pink-300: #f06292;
--palette-pink-400: #ec407a;
--palette-pink-500: #e91e63;
--palette-pink-600: #d81b60;
--palette-pink-700: #c2185b;
--palette-pink-800: #ad1457;
--palette-pink-900: #880e4f;
--palette-pink-a100: #ff80ab;
--palette-pink-a200: #ff4081;
--palette-pink-a400: #f50057;
--palette-pink-a700: #c51162;
--palette-purple-50: #f3e5f5;
--palette-purple-100: #e1bee7;
--palette-purple-200: #ce93d8;
--palette-purple-300: #ba68c8;
--palette-purple-400: #ab47bc;
--palette-purple-500: #9c27b0;
--palette-purple-600: #8e24aa;
--palette-purple-700: #7b1fa2;
--palette-purple-800: #6a1b9a;
--palette-purple-900: #4a148c;
--palette-purple-a100: #ea80fc;
--palette-purple-a200: #e040fb;
--palette-purple-a400: #d500f9;
--palette-purple-a700: #aa00ff;
--palette-deep-purple-50: #ede7f6;
--palette-deep-purple-100: #d1c4e9;
--palette-deep-purple-200: #b39ddb;
--palette-deep-purple-300: #9575cd;
--palette-deep-purple-400: #7e57c2;
--palette-deep-purple-500: #673ab7;
--palette-deep-purple-600: #5e35b1;
--palette-deep-purple-700: #512da8;
--palette-deep-purple-800: #4527a0;
--palette-deep-purple-900: #311b92;
--palette-deep-purple-a100: #b388ff;
--palette-deep-purple-a200: #7c4dff;
--palette-deep-purple-a400: #651fff;
--palette-deep-purple-a700: #6200ea;
--palette-indigo-50: #e8eaf6;
--palette-indigo-100: #c5cae9;
--palette-indigo-200: #9fa8da;
--palette-indigo-300: #7986cb;
--palette-indigo-400: #5c6bc0;
--palette-indigo-500: #3f51b5;
--palette-indigo-600: #3949ab;
--palette-indigo-700: #303f9f;
--palette-indigo-800: #283593;
--palette-indigo-900: #1a237e;
--palette-indigo-a100: #8c9eff;
--palette-indigo-a200: #536dfe;
--palette-indigo-a400: #3d5afe;
--palette-indigo-a700: #304ffe;
--palette-blue-50: #e3f2fd;
--palette-blue-100: #bbdefb;
--palette-blue-200: #90caf9;
--palette-blue-300: #64b5f6;
--palette-blue-400: #42a5f5;
--palette-blue-500: #2196f3;
--palette-blue-600: #1e88e5;
--palette-blue-700: #1976d2;
--palette-blue-800: #1565c0;
--palette-blue-900: #0d47a1;
--palette-blue-a100: #82b1ff;
--palette-blue-a200: #448aff;
--palette-blue-a400: #2979ff;
--palette-blue-a700: #2962ff;
--palette-light-blue-50: #e1f5fe;
--palette-light-blue-100: #b3e5fc;
--palette-light-blue-200: #81d4fa;
--palette-light-blue-300: #4fc3f7;
--palette-light-blue-400: #29b6f6;
--palette-light-blue-500: #03a9f4;
--palette-light-blue-600: #039be5;
--palette-light-blue-700: #0288d1;
--palette-light-blue-800: #0277bd;
--palette-light-blue-900: #01579b;
--palette-light-blue-a100: #80d8ff;
--palette-light-blue-a200: #40c4ff;
--palette-light-blue-a400: #00b0ff;
--palette-light-blue-a700: #0091ea;
--palette-cyan-50: #e0f7fa;
--palette-cyan-100: #b2ebf2;
--palette-cyan-200: #80deea;
--palette-cyan-300: #4dd0e1;
--palette-cyan-400: #26c6da;
--palette-cyan-500: #00bcd4;
--palette-cyan-600: #00acc1;
--palette-cyan-700: #0097a7;
--palette-cyan-800: #00838f;
--palette-cyan-900: #006064;
--palette-cyan-a100: #84ffff;
--palette-cyan-a200: #18ffff;
--palette-cyan-a400: #00e5ff;
--palette-cyan-a700: #00b8d4;
--palette-teal-50: #e0f2f1;
--palette-teal-100: #b2dfdb;
--palette-teal-200: #80cbc4;
--palette-teal-300: #4db6ac;
--palette-teal-400: #26a69a;
--palette-teal-500: #009688;
--palette-teal-600: #00897b;
--palette-teal-700: #00796b;
--palette-teal-800: #00695c;
--palette-teal-900: #004d40;
--palette-teal-a100: #a7ffeb;
--palette-teal-a200: #64ffda;
--palette-teal-a400: #1de9b6;
--palette-teal-a700: #00bfa5;
--palette-green-50: #e8f5e9;
--palette-green-100: #c8e6c9;
--palette-green-200: #a5d6a7;
--palette-green-300: #81c784;
--palette-green-400: #66bb6a;
--palette-green-500: #4caf50;
--palette-green-600: #43a047;
--palette-green-700: #388e3c;
--palette-green-800: #2e7d32;
--palette-green-900: #1b5e20;
--palette-green-a100: #b9f6ca;
--palette-green-a200: #69f0ae;
--palette-green-a400: #00e676;
--palette-green-a700: #00c853;
--palette-light-green-50: #f1f8e9;
--palette-light-green-100: #dcedc8;
--palette-light-green-200: #c5e1a5;
--palette-light-green-300: #aed581;
--palette-light-green-400: #9ccc65;
--palette-light-green-500: #8bc34a;
--palette-light-green-600: #7cb342;
--palette-light-green-700: #689f38;
--palette-light-green-800: #558b2f;
--palette-light-green-900: #33691e;
--palette-light-green-a100: #ccff90;
--palette-light-green-a200: #b2ff59;
--palette-light-green-a400: #76ff03;
--palette-light-green-a700: #64dd17;
--palette-lime-50: #f9fbe7;
--palette-lime-100: #f0f4c3;
--palette-lime-200: #e6ee9c;
--palette-lime-300: #dce775;
--palette-lime-400: #d4e157;
--palette-lime-500: #cddc39;
--palette-lime-600: #c0ca33;
--palette-lime-700: #afb42b;
--palette-lime-800: #9e9d24;
--palette-lime-900: #827717;
--palette-lime-a100: #f4ff81;
--palette-lime-a200: #eeff41;
--palette-lime-a400: #c6ff00;
--palette-lime-a700: #aeea00;
--palette-yellow-50: #fffde7;
--palette-yellow-100: #fff9c4;
--palette-yellow-200: #fff59d;
--palette-yellow-300: #fff176;
--palette-yellow-400: #ffee58;
--palette-yellow-500: #ffeb3b;
--palette-yellow-600: #fdd835;
--palette-yellow-700: #fbc02d;
--palette-yellow-800: #f9a825;
--palette-yellow-900: #f57f17;
--palette-yellow-a100: #ffff8d;
--palette-yellow-a200: #ffff00;
--palette-yellow-a400: #ffea00;
--palette-yellow-a700: #ffd600;
--palette-amber-50: #fff8e1;
--palette-amber-100: #ffecb3;
--palette-amber-200: #ffe082;
--palette-amber-300: #ffd54f;
--palette-amber-400: #ffca28;
--palette-amber-500: #ffc107;
--palette-amber-600: #ffb300;
--palette-amber-700: #ffa000;
--palette-amber-800: #ff8f00;
--palette-amber-900: #ff6f00;
--palette-amber-a100: #ffe57f;
--palette-amber-a200: #ffd740;
--palette-amber-a400: #ffc400;
--palette-amber-a700: #ffab00;
--palette-orange-50: #fff3e0;
--palette-orange-100: #ffe0b2;
--palette-orange-200: #ffcc80;
--palette-orange-300: #ffb74d;
--palette-orange-400: #ffa726;
--palette-orange-500: #ff9800;
--palette-orange-600: #fb8c00;
--palette-orange-700: #f57c00;
--palette-orange-800: #ef6c00;
--palette-orange-900: #e65100;
--palette-orange-a100: #ffd180;
--palette-orange-a200: #ffab40;
--palette-orange-a400: #ff9100;
--palette-orange-a700: #ff6d00;
--palette-deep-orange-50: #fbe9e7;
--palette-deep-orange-100: #ffccbc;
--palette-deep-orange-200: #ffab91;
--palette-deep-orange-300: #ff8a65;
--palette-deep-orange-400: #ff7043;
--palette-deep-orange-500: #ff5722;
--palette-deep-orange-600: #f4511e;
--palette-deep-orange-700: #e64a19;
--palette-deep-orange-800: #d84315;
--palette-deep-orange-900: #bf360c;
--palette-deep-orange-a100: #ff9e80;
--palette-deep-orange-a200: #ff6e40;
--palette-deep-orange-a400: #ff3d00;
--palette-deep-orange-a700: #dd2c00;
--palette-brown-50: #efebe9;
--palette-brown-100: #d7ccc8;
--palette-brown-200: #bcaaa4;
--palette-brown-300: #a1887f;
--palette-brown-400: #8d6e63;
--palette-brown-500: #795548;
--palette-brown-600: #6d4c41;
--palette-brown-700: #5d4037;
--palette-brown-800: #4e342e;
--palette-brown-900: #3e2723;
--palette-grey-50: #fafafa;
--palette-grey-100: #f5f5f5;
--palette-grey-200: #eeeeee;
--palette-grey-300: #e0e0e0;
--palette-grey-400: #bdbdbd;
--palette-grey-500: #9e9e9e;
--palette-grey-600: #757575;
--palette-grey-700: #616161;
--palette-grey-800: #424242;
--palette-grey-900: #212121;
--palette-blue-grey-50: #eceff1;
--palette-blue-grey-100: #cfd8dc;
--palette-blue-grey-200: #b0bec5;
--palette-blue-grey-300: #90a4ae;
--palette-blue-grey-400: #78909c;
--palette-blue-grey-500: #607d8b;
--palette-blue-grey-600: #546e7a;
--palette-blue-grey-700: #455a64;
--palette-blue-grey-800: #37474f;
--palette-blue-grey-900: #263238;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment