This repository has been archived on 2026-10-08. You can view files and clone it, but cannot push or open issues or pull requests.

126 lines
2.5 KiB
CSS

/* Matches tombutcher-ui .tb-button (components.css) — uses app :root --text / --bg */
.btn {
appearance: none;
-webkit-appearance: none;
box-sizing: border-box;
padding: 8px 14px;
background-color: transparent;
color: var(--text);
border: var(--border-ui-width) solid var(--border-ui-color);
border-radius: 18px;
transition:
background-color 0.3s ease,
color 0.3s ease,
fill 0.3s ease,
stroke 0.3s ease,
transform 0.5s ease,
border-color 0.3s ease,
filter 0.3s ease;
display: inline-flex;
align-items: center;
justify-content: center;
margin: 0;
line-height: 1;
min-height: 30px;
font-weight: 500;
font-family: inherit;
font-size: 0.9rem;
position: relative;
transform-origin: center center;
transform: scale(1);
width: max-content;
cursor: pointer;
text-decoration: none;
}
.btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.btn:not(:disabled):hover {
background-color: var(--text);
color: var(--bg);
transform: scale(1.02);
}
.btn:not(:disabled):active {
background-color: var(--text);
color: var(--bg);
transform: scale(0.975);
}
.btn > svg {
fill: var(--text);
stroke: var(--text);
height: 16px;
width: auto;
margin-right: 8px;
flex-shrink: 0;
transition:
fill 0.3s ease,
stroke 0.3s ease;
}
.btn:not(:disabled):hover > svg {
fill: var(--bg);
stroke: var(--bg);
}
/* Filled CTA — emphasis while keeping pill + motion language */
.btn--primary {
background-color: var(--accent);
color: var(--on-accent);
border: var(--border-ui-width) solid transparent;
font-weight: 600;
}
.btn--primary:not(:disabled):hover {
filter: brightness(1.06);
background-color: var(--accent);
color: var(--on-accent);
}
.btn--danger:not(:disabled):hover {
background-color: var(--danger);
color: var(--on-warn);
border: var(--border-ui-width) solid transparent;
}
.btn--primary:not(:disabled):active {
filter: brightness(0.98);
transform: scale(0.975);
}
.btn--primary > svg {
fill: var(--on-accent);
stroke: var(--on-accent);
}
.btn--primary:not(:disabled):hover > svg,
.btn--primary:not(:disabled):active > svg {
fill: var(--on-accent);
stroke: var(--on-accent);
}
.btn--primary:disabled {
filter: none;
}
/* Lighter outline; same hover invert as default */
.btn--ghost {
border-color: color-mix(in srgb, var(--text) 8%, transparent);
}
.btn--small {
padding: 6px 10px;
min-height: 26px;
font-size: 0.8rem;
}
.btn--small > svg {
height: 14px;
margin-right: 6px;
}