From f0f84513f8efe533b6ee670a6f1a0c074387b2ec Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 13 Aug 2025 12:01:46 +0200 Subject: Make use of SASS modules --- src/bem/_theme.scss | 57 ++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 27 deletions(-) (limited to 'src/bem/_theme.scss') diff --git a/src/bem/_theme.scss b/src/bem/_theme.scss index ff1ba49..535cc81 100644 --- a/src/bem/_theme.scss +++ b/src/bem/_theme.scss @@ -4,6 +4,9 @@ /// @access public //// +@use 'sass:list'; +@use 'sass:map'; +@use 'sass:selector'; @use './functions'; @use './validators'; @use './vars'; @@ -18,22 +21,22 @@ /// @content /// @mixin at-theme($name, $names...) { - $result: at-theme($name, $names...); - $selector: nth($result, 1); - $context: nth($result, 2); + $result: at-theme($name, $names...); + $selector: list.nth($result, 1); + $context: list.nth($result, 2); - @include validators.validate( - 'at-theme', - (name: $name, names: $names), - $selector, - $context - ); + @include validators.validate( + 'at-theme', + (name: $name, names: $names), + $selector, + $context + ); - @include contexts.push(vars.$context-id, $context...); - @at-root #{$selector} { - @content; - } - @include contexts.pop(vars.$context-id); + @include contexts.push(vars.$context-id, $context...); + @at-root #{$selector} { + @content; + } + @include contexts.pop(vars.$context-id); } /// @@ -45,22 +48,22 @@ /// @see {mixin} at-theme /// @function at-theme($name, $names...) { - $noop: contexts.assert-stack-must-contain(vars.$context-id, 'block'); + $noop: contexts.assert-stack-must-contain(vars.$context-id, 'block'); - $parent-context: contexts.get(vars.$context-id, 'block'); - $parent-selector: map-get(nth($parent-context, 2), 'selector'); + $parent-context: contexts.get(vars.$context-id, 'block'); + $parent-selector: map.get(list.nth($parent-context, 2), 'selector'); - //@if not functions.selector-suffix-match(&, $parent-selector) { - // @error 'An at-theme rule must be an immediate child of a block'; - //} + //@if not functions.selector-suffix-match(&, $parent-selector) { + // @error 'An at-theme rule must be an immediate child of a block'; + //} - $selector: functions.theme-selector($name, $names...); - $selector: selector-nest($selector, &); + $selector: functions.theme-selector($name, $names...); + $selector: selector.nest($selector, &); - $context: 'at-theme', ( - 'name': join($name, $names), - 'selector': $selector - ); + $context: 'at-theme', ( + 'name': list.join($name, $names), + 'selector': $selector + ); - @return $selector $context; + @return $selector $context; } -- cgit v1.2.3-70-g09d2