Files
website/frontend/src/components/button.njk
T
terbshaeusser 35d3211615 make buttons disablable
Signed-off-by: Tobias Erbshäußer <tobias@tesoft.dev>
2026-05-24 09:40:22 +02:00

67 lines
1.8 KiB
Plaintext

<template id="tesoft-button-template">
<style>
@import "/src/styles/default.css";
:host {
display: block;
}
button, a {
align-content: center;
background-color: transparent;
border-radius: var(--button-border-radius);
border-style: none;
color: var(--light-gray);
display: grid;
font-weight: 600;
height: 100%;
justify-content: center;
padding: var(--medium-padding);
text-decoration: none;
width: 100%;
}
:host([selected]) button, :host([selected]) a {
background-color: var(--light-gray);
color: var(--gray);
font-weight: 800;
}
:host([disabled]) button, :host([disabled]) a {
color: var(--gray);
}
:host(:not([disabled])) button:focus, :host(:not([disabled])) a:focus {
outline-color: var(--gold);
outline-offset: 0.2rem;
outline-style: solid;
}
:host(:not([disabled])) button:hover, :host(:not([disabled])) a:hover {
background-color: var(--gold) !important;
color: var(--gray);
cursor: pointer;
}
::slotted(svg) {
fill: var(--light-gray);
}
:host([selected]) ::slotted(svg), :host([disabled]) ::slotted(svg) {
fill: var(--gray);
}
:host(:not([disabled])) button:hover ::slotted(svg), :host(:not([disabled])) a:hover ::slotted(svg) {
fill: var(--gray);
}
</style>
<div>
<button part="children">
<slot></slot>
</button>
</div>
</template>
<script src="/src/components/button.ts" type="module"></script>