127 lines
3.1 KiB
SCSS
127 lines
3.1 KiB
SCSS
.btn {
|
|
padding: .3rem .7rem;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: .5rem;
|
|
font-size: .9em;
|
|
font-weight: 500;
|
|
color: var(--foreground);
|
|
border: 1px solid transparent;
|
|
border-radius: var(--border-radius);
|
|
cursor: pointer;
|
|
transition-property: color, background-color, border-color;
|
|
transition-duration: .2s;
|
|
transition-timing-function: var(--timing-function);
|
|
|
|
&:disabled {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
&.btn-secondary {
|
|
&:not(:disabled) {
|
|
background-color: color-mix(in srgb, var(--foreground) 20%, var(--background));
|
|
|
|
&:hover,
|
|
&:focus-visible {
|
|
color: var(--background);
|
|
background-color: var(--accent);
|
|
}
|
|
}
|
|
|
|
&:disabled {
|
|
color: color-mix(in srgb, var(--foreground) 50%, var(--background));
|
|
background-color: color-mix(in srgb, var(--foreground) 10%, var(--background));
|
|
}
|
|
}
|
|
|
|
&.btn-info {
|
|
&:not(:disabled) {
|
|
background-color: color-mix(in srgb, var(--foreground) 20%, var(--background));
|
|
|
|
&:hover,
|
|
&:focus-visible {
|
|
color: var(--background);
|
|
background-color: var(--accent);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.btn-danger {
|
|
&:not(:disabled) {
|
|
background-color: color-mix(in srgb, var(--foreground) 20%, var(--background));
|
|
|
|
&:hover,
|
|
&:focus-visible {
|
|
color: var(--background);
|
|
background-color: var(--red-500);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.btn-icon {
|
|
width: 1.75rem;
|
|
padding: 0;
|
|
display: grid;
|
|
place-items: center;
|
|
aspect-ratio: 1;
|
|
border-radius: 50%;
|
|
|
|
&.btn-sm {
|
|
font-size: .85em;
|
|
width: 1.5rem;
|
|
}
|
|
|
|
.icon {
|
|
width: 1em;
|
|
}
|
|
}
|
|
|
|
&.btn-shadow {
|
|
box-shadow: var(--shadow);
|
|
}
|
|
}
|
|
|
|
.btn-round {
|
|
display: grid;
|
|
place-items: center;
|
|
height: 45px;
|
|
aspect-ratio: 1;
|
|
background-color: var(--background);
|
|
border: 1px solid var(--border);
|
|
box-shadow: var(--shadow);
|
|
border-radius: 100vmax;
|
|
pointer-events: all;
|
|
cursor: pointer;
|
|
outline: .2rem solid transparent;
|
|
transition-property: color, background-color, border-color, outline-color;
|
|
transition-duration: .15s;
|
|
transition-timing-function: var(--timing-function);
|
|
|
|
svg {
|
|
fill: var(--foreground);
|
|
width: 1.15em;
|
|
transition-property: fill;
|
|
transition-duration: .15s;
|
|
transition-timing-function: var(--timing-function);
|
|
}
|
|
|
|
&:hover,
|
|
&:focus-visible {
|
|
outline-color: color-mix(in srgb, var(--accent) 20%, transparent);
|
|
border-color: var(--accent);
|
|
|
|
svg {
|
|
fill: var(--accent);
|
|
}
|
|
}
|
|
|
|
&.active {
|
|
color: var(--background);
|
|
background-color: var(--accent);
|
|
border-color: color-mix(in srgb, var(--accent) 75%, var(--background));
|
|
|
|
svg {
|
|
fill: var(--background);
|
|
}
|
|
}
|
|
} |