0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-12-01 11:41:20 +01:00
wagtail/client/scss/components/_icons.scss
Thibaud Colas eac5e0bc2c Finish re-implementing form styles based on design feedback & code review
Co-authored-by: LB Johnston <mail@lb.ee>
2022-08-05 10:36:52 +02:00

171 lines
3.2 KiB
SCSS

@use 'sass:string';
@font-face {
font-family: $font-wagtail-icons;
src: url('../fonts/wagtail.woff') format('woff');
font-weight: normal;
font-style: normal;
}
// 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: $color-teal-darker;
}
.icon.white {
color: $color-white;
}
.icon:before,
.icon:after {
@include icon(); // from _mixins.scss
}
.icon:after {
text-align: end;
}
// =============================================================================
// Icon factory methods
// =============================================================================
@each $icon, $content in $icons {
.icon-#{$icon}:before {
content: string.quote(#{$content});
}
}
@each $icon, $content in $icons-after {
.icon-#{$icon}:after {
content: string.quote(#{$content});
}
}
// =============================================================================
// Custom config for various icons
// =============================================================================
.icon-download {
// Credit: Icon made by Freepik from Flaticon.com
}
.icon-view:before,
.icon-no-view:before {
// icon-font
vertical-align: -3.5px;
font-size: 1.1rem;
}
.icon-spinner:after,
.icon-spinner:before {
// iconfont
width: 1em;
animation: spin-wag 0.5s infinite linear;
display: inline-block;
}
// For SVG 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;
}
.icon-horizontalrule:before {
font-family: $font-sans;
}
.icon-larger:before {
font-size: 1.5em;
}
.icon.text-replace {
// iconfont
font-size: 0;
line-height: 0;
overflow: hidden;
&:before {
margin-inline-end: 0;
font-size: 1rem;
display: inline-block;
width: 100%;
line-height: 1.2em;
text-align: center;
vertical-align: middle;
}
}
.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);
}
}
.icon-spinner:after {
display: inline-block;
line-height: 1;
}
// CSS-only circled question mark.
// <span class="icon-help-inverse" aria-hidden="true"></span>
.icon-help-inverse {
$size: 15px;
&:before {
display: inline-block;
width: $size;
height: $size;
line-height: $size;
font-size: 1.1em;
text-align: center;
border-radius: 100%;
color: $color-grey-2;
border: 1px solid currentColor;
}
}
// stylelint-disable-next-line no-duplicate-selectors
.icon {
&.initial {
@include svg-icon(1em);
vertical-align: initial;
}
&.default {
@include svg-icon(1.5em);
}
&--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');
}