mirror of
https://github.com/wagtail/wagtail.git
synced 2024-12-01 11:41:20 +01:00
113 lines
2.6 KiB
SCSS
113 lines
2.6 KiB
SCSS
@use 'sass:string';
|
|
|
|
// Set SVG icons to use the current text color in the location they appear as
|
|
// their default fill color. Can be overridden for a specific icon by either
|
|
// the color or fill properties.
|
|
.icon {
|
|
fill: currentColor;
|
|
}
|
|
|
|
.icon.teal {
|
|
color: theme('colors.text-button-outline-default');
|
|
}
|
|
|
|
.icon.white {
|
|
color: theme('colors.surface-page');
|
|
}
|
|
|
|
// =============================================================================
|
|
// Icon factory methods
|
|
// =============================================================================
|
|
|
|
// Legacy icons still implemented via CSS due to the markup being hard to change.
|
|
$icons-after: ('arrow-down', 'arrow-up');
|
|
|
|
@each $icon in $icons-after {
|
|
.icon-#{$icon}-after::after {
|
|
content: '';
|
|
mask-image: url('#{$images-root}icons/#{$icon}.svg');
|
|
width: 1em;
|
|
height: 1em;
|
|
display: inline-block;
|
|
background-color: currentColor;
|
|
}
|
|
}
|
|
|
|
// =============================================================================
|
|
// Custom config for various icons
|
|
// =============================================================================
|
|
|
|
// Add spinner styles onto the use element,
|
|
// so an icon can be turned into a spinner by changing the href only.
|
|
// This allows us to switch any icon to a spinner with much less boilerplate.
|
|
use[href='#icon-spinner'] {
|
|
animation: spin-wag 0.5s infinite linear;
|
|
transform-origin: center;
|
|
}
|
|
|
|
.text-replace {
|
|
font-size: 0;
|
|
line-height: 0;
|
|
overflow: hidden;
|
|
|
|
.icon {
|
|
@include svg-icon(1rem, middle);
|
|
}
|
|
}
|
|
|
|
@keyframes spin-wag {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
// stylelint-disable-next-line no-duplicate-selectors
|
|
.icon {
|
|
&.initial {
|
|
@include svg-icon(1em, $position: initial);
|
|
}
|
|
|
|
&.default {
|
|
@include svg-icon(1.5em);
|
|
}
|
|
|
|
&.middle {
|
|
@include svg-icon(1.5em, $position: middle);
|
|
}
|
|
|
|
&--flipped {
|
|
transform: scaleX(-1);
|
|
}
|
|
}
|
|
|
|
.icon.locale-error {
|
|
vertical-align: text-top;
|
|
margin-inline-end: 0.5em;
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
color: theme('colors.critical.200');
|
|
}
|
|
|
|
.icon-wagtail {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.icon-wagtail__wordmark {
|
|
fill: theme('colors.text-context');
|
|
}
|
|
|
|
// Icons mirroring for RTL languages to match the rest of the Wagtail UI.
|
|
// Automatically mirror child elements of SVG icons marked with
|
|
// icon--directional. This will be applied to the children of the <symbol>
|
|
// elements in the icons sprite, ensuring all usages of the icons will be in the
|
|
// correct direction.
|
|
.icon--directional * {
|
|
transform: scaleX(var(--w-direction-factor));
|
|
transform-origin: center;
|
|
}
|