Skip to content

Instantly share code, notes, and snippets.

View Danilo-Araujo-Silva's full-sized avatar

Danilo Araújo Silva Danilo-Araujo-Silva

View GitHub Profile
/// https://css-tricks.com/snippets/sass/deep-getset-maps/
/// Deep set function to set a value in nested maps
/// @author Hugo Giraudel
/// @access public
/// @param {Map} $map - Map
/// @param {List} $keys - Key chaine
/// @param {*} $value - Value to assign
/// @return {Map}
@function map-deep-set($map, $keys, $value) {
$maps: ($map,);
$palette: (colors: (special: (black: #000000, black-87-opacity: rgba(0, 0, 0, 0.87), white: #ffffff, white-87-opacity: rgba(255, 255, 255, 0.87)), 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, contrast: (50: rgba(0, 0, 0, 0.87), 100: rgba(0, 0, 0, 0.87), 200: rgba(0, 0, 0, 0.87), 300: rgba(0, 0, 0, 0.87), 400: rgba(0, 0, 0, 0.87), 500: #ffffff, 600: #ffffff, 700: #ffffff, 800: rgba(255, 255, 255, 0.87), 900: rgba(255, 255, 255, 0.87), A100: rgba(0, 0, 0, 0.87), A200: #ffffff, A400: #ffffff, A700: #ffffff)), 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, contrast: (50: rgba(0, 0, 0, 0.87), 100: rgba(0, 0, 0, 0.87), 200: rgba(0, 0, 0, 0.87), 300: rgba(0, 0, 0, 0.87), 400: rgba(0, 0, 0, 0.87), 500: #
/// Content of _map-dee-get.scss
/// https://css-tricks.com/snippets/sass/deep-getset-maps/
/// Map deep get
/// @author Hugo Giraudel
/// @access public
/// @param {Map} $map - Map
/// @param {Arglist} $keys - Key chain
/// @return {*} - Desired value
@function map-deep-get($map, $keys...) {
@each $key in $keys {
// This certainly is not the best way to do this.
// But I couldn't find an approach using the Sass elements for now. If you have a better approach please let me know.
// convention to a local variable
$_local: (
// some stuff here
);
// if we need to add new entries that depends of the other ones we can do this:
$_local: map-merge(
// This certainly is not the best way to do this.
// But I couldn't find an approach using the Sass elements for now. If you have a better approach please let me know.
// convention to a local variable
$_local: (
// some stuff here
);
// if we need to add new entries that depends of the other ones we can do this:
$_local: map-merge(