Skip to content

Instantly share code, notes, and snippets.

@norin89
Created June 23, 2022 14:28
Show Gist options
  • Save norin89/aa527dd7faf2e8750927c5e89f471ceb to your computer and use it in GitHub Desktop.
Save norin89/aa527dd7faf2e8750927c5e89f471ceb to your computer and use it in GitHub Desktop.
Generated by SassMeister.com.
@use "sass:map";
// Sass map, ideally imported from JSON (e.g. with https://github.com/pmowrer/node-sass-json-importer)
// Based on MUI palette example - https://mui.com/material-ui/customization/color/#picking-colors
$palette: (
primary: (
light: '#757ce8',
main: '#3f50b5',
dark: '#002884',
contrastText: '#fff',
),
secondary: (
light: '#ff7961',
main: '#f44336',
dark: '#ba000d',
contrastText: '#000',
)
);
@function color-var($name, $variant, $wrap: true) {
$prop: --#{$name}-#{$variant};
@if map.has-key($palette, $name, $variant) {
@return if($wrap, var($prop), $prop);
}
// @warn "Color '#{$name}' or it's variant '#{$variant}' not found!";
@return "Color '#{$name}' or it's variant '#{$variant}' not found!";
}
:root {
@each $name, $variants in $palette {
@each $variant, $color in $variants {
#{color-var($name, $variant, false)}: #{$color};
}
}
}
body {
background: color-var(primary, dark);
color: color-var(primary, contrastText);
border: color-var(primary, nonExisting);
}
:root {
--primary-light: #757ce8;
--primary-main: #3f50b5;
--primary-dark: #002884;
--primary-contrastText: #fff;
--secondary-light: #ff7961;
--secondary-main: #f44336;
--secondary-dark: #ba000d;
--secondary-contrastText: #000;
}
body {
background: var(--primary-dark);
color: var(--primary-contrastText);
border: "Color 'primary' or it's variant 'nonExisting' not found!";
}
{
"sass": {
"compiler": "dart-sass/1.32.12",
"extensions": {},
"syntax": "SCSS",
"outputStyle": "expanded"
},
"autoprefixer": false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment