Files
BanjoRecomp/assets/scss/styles/components/Button.scss
T
thecozies 71dfde0270 Refactor color usage for full theming support from one source of truth (#1)
* Refactor color usage for full theming support from one source of truth

* remove unused components

* remove old commented out font families

* override custom theme in main.cpp
2025-07-06 13:56:28 -05:00

82 lines
2.2 KiB
SCSS

@use 'sass:color';
@mixin create-button-variation($base-col, $base-col-05, $base-col-20, $base-col-30, $base-col-80) {
border-color: $base-col-80;
background-color: $base-col-05;
color: $color-text-dim;
&:focus, &:hover {
border-color: $base-col;
background-color: $base-col-30;
color: $color-text;
}
&:disabled,&[disabled] {
color: $color-text-inactive;
}
&:active {
background-color: $base-col-20;
color: $color-text-active;
}
}
.button {
@extend %label-md;
@extend %nav-all;
@include create-button-variation($color-primary, $color-primary-a5, $color-primary-a20, $color-primary-a30, $color-primary-a80);
@include trans-colors;
display: block;
width: auto;
height: auto;
// leave 1dp room for border expansion
padding: space(24 - 1);
border-width: $border-width-thickness;
border-radius: $border-radius-md;
// Setting it by default for convenience
&--primary {
@include create-button-variation($color-primary, $color-primary-a5, $color-primary-a20, $color-primary-a30, $color-primary-a80);
}
&--large {
@extend %label-lg;
}
&--secondary {
@include create-button-variation($color-secondary, $color-secondary-a5, $color-secondary-a20, $color-secondary-a30, $color-secondary-a80);
}
&--tertiary {
@include create-button-variation($color-text, $color-text-a5, $color-text-a20, $color-text-a30, $color-text-a80);
}
&--success {
@include create-button-variation($color-success, $color-success-a5, $color-success-a20, $color-success-a30, $color-success-a80);
}
&--danger {
@include create-button-variation($color-danger, $color-danger-a5, $color-danger-a20, $color-danger-a30, $color-danger-a80);
}
&--warning {
@include create-button-variation($color-warning, $color-warning-a5, $color-warning-a20, $color-warning-a30, $color-warning-a80);
}
&:not([disabled]) {
@extend %nav-all;
cursor: pointer;
}
&:disabled,&[disabled] {
opacity: 0.5;
}
&__label {
width: auto;
height: auto;
}
}