Files
task-stream/libs/web/tracker/presenters/src/lib/pages/board.page.scss
2026-10-03 13:40:26 +02:00

126 lines
2.4 KiB
SCSS

.ts-board-toolbar {
display: flex;
align-items: center;
gap: 0.75rem;
flex-wrap: wrap;
margin-bottom: 1.25rem;
}
.ts-filter {
width: 13rem;
@media (max-width: 640px) {
width: 100%;
}
}
.ts-board-total {
font-size: 0.875rem;
color: var(--ts-muted);
strong {
color: var(--ts-ink);
font-weight: 600;
}
}
.ts-spacer {
flex: 1;
}
// One lane per status, tinted with the status colour.
.ts-board {
display: grid;
grid-auto-flow: column;
grid-auto-columns: minmax(17rem, 1fr);
gap: 0.875rem;
overflow-x: auto;
padding-bottom: 0.75rem;
scroll-snap-type: x proximity;
}
.ts-column {
--tone: var(--ts-muted);
display: flex;
flex-direction: column;
min-height: 62vh;
border-radius: 1.125rem;
background: color-mix(in srgb, var(--tone) 5%, var(--ts-sunken));
border: 1px solid color-mix(in srgb, var(--tone) 18%, var(--ts-line));
scroll-snap-align: start;
}
.ts-column__header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 0.5rem;
padding: 0.875rem 0.875rem 0.625rem;
}
.ts-column__name {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.6875rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: color-mix(in srgb, var(--tone) 75%, var(--ts-ink));
&::before {
content: '';
width: 0.5rem;
height: 0.5rem;
border-radius: 50%;
background: var(--tone);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--tone) 18%, transparent);
}
}
.ts-column__count {
font-family: var(--ts-font-mono);
font-size: 1.125rem;
font-weight: 500;
color: var(--ts-ink-soft);
}
.ts-column__list {
display: flex;
flex-direction: column;
gap: 0.5rem;
flex: 1;
padding: 0.125rem 0.625rem 0.75rem;
}
.ts-column__empty {
margin: 1.25rem 0;
text-align: center;
font-family: var(--ts-font-mono);
font-size: 0.75rem;
color: color-mix(in srgb, var(--ts-muted) 70%, transparent);
}
// CDK drag & drop
.cdk-drag-preview {
box-shadow: 0 18px 36px -14px rgb(0 0 0 / 45%);
border-radius: 0.625rem;
transform: rotate(1.5deg);
}
.cdk-drag-placeholder {
opacity: 0.35;
}
.cdk-drag-animating,
.ts-column__list.cdk-drop-list-dragging
ts-issue-card:not(.cdk-drag-placeholder) {
transition: transform 200ms cubic-bezier(0, 0, 0.2, 1);
}
.ts-column__list.cdk-drop-list-receiving {
outline: 2px dashed color-mix(in srgb, var(--tone) 55%, transparent);
outline-offset: -4px;
border-radius: 0.625rem;
}