blob: b13e7f686a0bc46d924d6fdde24211d0726d2896 [file] [log] [blame]
@mixin color-icon($primary-color) {
color: $primary-color;
fill: $primary-color;
}
@mixin color-icon-hover($secondary-color) {
&.clickable {
&:not([disabled]):hover, &:active, &:focus {
@include color-icon($secondary-color);
}
}
}
@mixin color-icon-label($primary-color) {
@include color-icon($primary-color);
.svg-icon {
@include color-icon($primary-color);
}
}
@mixin color-icon-label-hover($secondary-color) {
&.clickable {
&:not([disabled]):hover, &:active, &:focus {
@include color-icon-label($secondary-color);
}
}
}
.svg-icon {
display: inline-flex;
width: 24px;
height: 24px;
& > svg {
width: 100%;
height: 100%;
}
&[disabled] {
opacity: 0.7;
}
&.mode-primary {
@include color-icon($blue);
@include color-icon-hover($light-blue);
}
&.mode-secondary {
@include color-icon($gray);
@include color-icon-hover($dark-gray);
}
&.mode-success {
@include color-icon($green);
}
&.mode-error {
@include color-icon($red);
}
&.mode-warning {
@include color-icon($yellow);
}
&.mode-info {
@include color-icon($text-black);
@include color-icon-hover($dark-blue);
}
&.mode-white {
@include color-icon($white);
@include color-icon-hover($light-gray);
}
&.size-x_small {
width: 12px;
height: 12px;
}
&.size-small {
width: 16px;
height: 16px;
}
&.size-medium {
width: 24px;
height: 24px;
}
&.size-large {
width: 36px;
height: 36px;
}
&.size-x_large {
width: 48px;
height: 48px;
}
&.bg-type-circle {
border-radius: 50%;
padding: 6px;
}
&.bg-type-rectangle {
padding: 6px;
}
&.bg-color-primary {
background-color: $purple;
}
&.bg-color-secondary {
background-color: $light-blue;
}
&.bg-color-success {
background-color: $green;
}
&.bg-color-error {
background-color: $red;
}
&.bg-color-warning {
background-color: $yellow;
}
&.bg-color-info {
background-color: $blue;
}
}
.svg-icon-wrapper {
display: inline-flex;
justify-content: center;
align-items: center;
&.svg-icon-label {
}
&.svg-icon {
}
&[disabled] {
opacity: 0.7;
}
&.label-placement-bottom {
flex-direction: column;
.svg-icon-label {
margin-top: 0.25em;
}
}
&.label-placement-right {
.svg-icon-label {
margin-left: 0.25em;
}
}
&.label-placement-top {
flex-direction: column-reverse;
.svg-icon-label {
margin-bottom: 0.25em;
}
}
&.label-placement-left {
flex-direction: row-reverse;
.svg-icon-label {
margin-right: 0.25em;
}
}
&.mode-primary {
@include color-icon-label($blue);
@include color-icon-label-hover($light-blue);
}
&.mode-secondary {
@include color-icon-label($gray);
@include color-icon-label-hover($dark-gray);
}
&.mode-success {
@include color-icon-label($green);
}
&.mode-error {
@include color-icon-label($red);
}
&.mode-warning {
@include color-icon-label($yellow);
}
&.mode-info {
@include color-icon-label($text-black);
@include color-icon-label-hover($dark-blue);
}
&.size-x_small {
font-size: 8px;
line-height: 10px;
.svg-icon {
@extend .svg-icon.size-x_small;
}
}
&.size-small {
font-size: 12px;
line-height: 14px;
.svg-icon {
@extend .svg-icon.size-small;
}
}
&.size-medium {
font-size: 16px;
line-height: 20px;
.svg-icon {
@extend .svg-icon.size-medium;
}
}
&.size-large {
font-size: 24px;
line-height: 28px;
.svg-icon {
@extend .svg-icon.size-large;
}
}
&.size-x_large {
font-size: 34px;
line-height: 40px;
.svg-icon {
@extend .svg-icon.size-x_large;
}
}
}