23 lines
577 B
Text
23 lines
577 B
Text
.generate-responsive-variants(@ruleset, @screen, @min-width) {
|
|
@prefix: ~"@{screen}\:";
|
|
|
|
@media (min-width: @min-width) {
|
|
.@{prefix} { @ruleset(); };
|
|
}
|
|
}
|
|
|
|
.responsive(@ruleset; @i: 1) when (@i <= length(@screens)) and not (@screens = none) {
|
|
@screen: extract(@screens, @i);
|
|
@name: extract(@screen, 1);
|
|
@screen-width: extract(@screen, 2);
|
|
|
|
.generate-responsive-variants(@ruleset, @name, @screen-width);
|
|
.responsive(@ruleset, @i + 1);
|
|
}
|
|
|
|
.screen(@screen, @ruleset) {
|
|
.extract-match(@screens; @screen);
|
|
@media (min-width: @__match) {
|
|
@ruleset();
|
|
}
|
|
}
|