map.get()
doesn't work. map-get()
does work.I set up a map of color values and created a simple function to retrieve them.
While doing the retrieval, I followed the Sass documentation which states that you can retrieve a map value using the map.get()
function. Using this or any other map.function
results in an Error: There is no module with the namespace "map".
.
Checking out the map module, I noticed an alternative syntax, map-get()
, which does work.
What gives? Am I missing something, like importing the map module, so that I can use it in that form?
Check out my code below:
// Using npm dart `sass 1.26.11`.
$colors: ('primary': black, 'secondary': white);
// Doesn't work
@function color($color) {
@return map.get($colors, $color);
}
// Does work
@function color($color) {
@return map-get($colors, $color);
}
map.get()
syntax to work?The following table lists all map functions in Sass: Function. Description & Example. map-get(map, key) Returns the value for the specified key in the map.
map-keys($map) function: This function returns the list of the keys in the given map.
What is a CSS map file? It is a JSON format file that links the CSS file to its source files, normally, files written in preprocessors (i.e., Less, Sass, Stylus, etc.), this is in order do a live debug to the source files from the web browser.
I am having a similar issue as OP (using dart-sass v1.25.0), and only map-get
works, map.get
doesn't.
The documentation doesn't seem to be very clear on this, but the (Sass Module System: Draft 6) document on Github explains it better.
It seems like Sass is moving on to using @use
in favour of @import
for better compatibility with native CSS, and in order to get access to map.get
you now must explicitly import the map module
using the @use
keyword.
map.get
should work:@use "sass:map";
$colors: ('primary': black, 'secondary': white);
@function color($color) {
@return map.get($colors, $color);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With