anki/ts/sass/button_mixins.scss
2021-05-18 18:55:22 +02:00

129 lines
3.2 KiB
SCSS

@import "ts/sass/bootstrap/functions";
@import "ts/sass/bootstrap/variables";
@mixin btn-border-radius {
border-top-left-radius: var(--border-left-radius);
border-bottom-left-radius: var(--border-left-radius);
border-top-right-radius: var(--border-right-radius);
border-bottom-right-radius: var(--border-right-radius);
}
$btn-base-color-day: white;
@mixin btn-day-base {
color: var(--text-fg);
background-color: $btn-base-color-day;
border-color: var(--medium-border) !important;
}
@mixin btn-day(
$with-hover: true,
$with-active: true,
$with-disabled: true,
$with-margin: true
) {
.btn-day {
@include btn-day-base;
@content ($btn-base-color-day);
@if ($with-hover) {
&:hover {
background-color: darken($btn-base-color-day, 8%);
}
}
@if ($with-active) {
&:active,
&.active {
@include impressed-shadow(0.25);
}
&:active.active {
box-shadow: none;
}
}
@if ($with-disabled) {
&[disabled] {
background-color: $btn-base-color-day !important;
box-shadow: none !important;
}
}
@if ($with-margin) {
margin-left: -1px;
}
}
}
$btn-base-color-night: #666;
@mixin btn-night-base {
color: var(--text-fg);
background-color: $btn-base-color-night;
border-color: $btn-base-color-night;
}
@mixin btn-night(
$with-hover: true,
$with-active: true,
$with-disabled: true,
$with-margin: true
) {
.btn-night {
@include btn-night-base;
@content ($btn-base-color-night);
@if ($with-hover) {
&:hover {
background-color: lighten($btn-base-color-night, 8%);
border-color: lighten($btn-base-color-night, 8%);
}
}
@if ($with-disabled) {
&:active,
&.active {
@include impressed-shadow(0.35);
border-color: darken($btn-base-color-night, 8%);
}
&:active.active {
box-shadow: none;
border-color: $btn-base-color-night;
}
}
@if ($with-disabled) {
&[disabled] {
background-color: $btn-base-color-night !important;
box-shadow: none !important;
border-color: $btn-base-color-night !important;
}
}
@if ($with-margin) {
margin-left: 1px;
}
}
}
// should be similar to -webkit-focus-ring-color
$focus-color: $blue;
@mixin impressed-shadow($intensity) {
box-shadow: inset 0 calc(var(--toolbar-size) / 15) calc(var(--toolbar-size) / 5)
rgba(black, $intensity);
}
@mixin rainbow($base) {
background: content-box
linear-gradient(217deg, rgba(255, 0, 0, 0.8), rgba(255, 0, 0, 0) 70.71%),
content-box
linear-gradient(127deg, rgba(0, 255, 0, 0.8), rgba(0, 255, 0, 0) 70.71%),
content-box
linear-gradient(336deg, rgba(0, 0, 255, 0.8), rgba(0, 0, 255, 0) 70.71%),
border-box $base;
}