zotero/scss/abstracts/_svgicon.scss

66 lines
2.3 KiB
SCSS
Raw Normal View History

@mixin svgicon($icon, $color, $size: "16", $prefix: false, $has2x: false, $light-dark: false) {
@if ($color == 'universal') {
background:
-make-icon-background($icon, $color, $size, $prefix, $has2x) no-repeat center/contain;
@if ($light-dark) {
@include light-dark(fill, nth($light-dark, 1), nth($light-dark, 2));
}
@else {
fill: currentColor;
}
-moz-context-properties: fill, fill-opacity;
}
@else {
background:
-make-icon-background($icon, $color, $size, $prefix, $has2x) no-repeat center/contain,
// Invisible backgrounds to preload all variants:
-make-icon-background($icon, 'white', $size, $prefix, $has2x) center/0,
-make-icon-background($icon, 'light', $size, $prefix, $has2x) center/0,
-make-icon-background($icon, 'dark', $size, $prefix, $has2x) center/0;
}
}
@mixin svgicon-menu($icon, $color, $size: "16", $prefix: false, $has2x: false, $light-dark: false) {
// Disable 2x because list-style-image doesn't support image-set
list-style-image: -make-icon-background($icon, $color, $size, $prefix, false);
@if ($color == 'universal') {
@if ($light-dark) {
@include light-dark(fill, nth($light-dark, 1), nth($light-dark, 2));
}
@else {
fill: currentColor;
}
-moz-context-properties: fill, fill-opacity;
}
2023-11-15 09:07:54 +00:00
}
@function -make-icon-background($icon, $color, $size, $prefix, $has2x) {
@if $has2x {
@if $prefix {
@return image-set(
url('chrome://zotero/skin/#{$prefix}/#{$size}/#{$color}/#{$icon}.svg') 1x,
url('chrome://zotero/skin/#{$prefix}/#{$size}/#{$color}/#{$icon}@2x.svg') 2x
);
}
@else {
@return image-set(
url('chrome://zotero/skin/#{$size}/#{$color}/#{$icon}.svg') 1x,
url('chrome://zotero/skin/#{$size}/#{$color}/#{$icon}@2x.svg') 2x
);
}
}
@else {
@if $prefix {
@return url('chrome://zotero/skin/#{$prefix}/#{$size}/#{$color}/#{$icon}.svg');
}
@else {
@return url('chrome://zotero/skin/#{$size}/#{$color}/#{$icon}.svg');
}
}
}