Files
leim-maps/src/assets/scss/_buttons.scss
2025-06-21 21:33:25 +02:00

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);
}
}
}