feat(16-01): append CSS Sections 19-25 to app.css

- Section 19: tasks-section block (task-row, task-check, task-body, task-meta, tasks-add-button)
- Section 20: project-progress-track and project-progress-bar
- Section 21: tab-nav, tab-nav-item, tab-nav-item.is-active, tab-nav-item:hover
- Section 22: tablo-metadata-row, tablo-metadata-date
- Section 23: kanban-column wrapper (width: 18rem) + scoped h3 override (1rem)
- Section 24: etape-group-header, etape-group-color-dot, etape-group-label
- Section 25: task-list-empty placeholder
- all values use var(--...) tokens; zero hardcoded hex values
This commit is contained in:
Arthur Belleville 2026-05-16 23:32:57 +02:00
parent a1a3ea8239
commit 44209b9db2
No known key found for this signature in database

View file

@ -448,3 +448,243 @@
gap: 0.5rem;
margin-bottom: 1rem;
}
/* ============================================================
Section 19 Tasks section (kanban column container)
============================================================ */
.tasks-section {
background: var(--color-surface-default);
border: 1px solid var(--color-border-subtle);
border-radius: 1rem;
overflow: hidden;
}
.tasks-section-header {
align-items: center;
border-bottom: 1px solid var(--color-border-muted);
display: flex;
justify-content: space-between;
padding: 1.2rem 1rem;
}
.tasks-add-button {
align-items: center;
background: var(--color-surface-default);
border: 1px solid var(--color-border-muted);
border-radius: 0.7rem;
color: var(--color-text-secondary);
cursor: pointer;
display: inline-flex;
font-weight: 500;
gap: 0.5rem;
min-height: 2.75rem;
padding: 0.7rem 1rem;
}
.task-list {
display: flex;
flex-direction: column;
}
.task-row {
align-items: center;
border-bottom: 1px solid var(--color-border-muted);
cursor: pointer;
display: flex;
gap: 0.75rem;
padding: 0.9rem 1rem;
transition: background-color 0.2s ease;
}
.task-row:hover {
background: var(--color-surface-neutral-hover);
}
.task-check {
align-items: center;
background: var(--color-surface-default);
border: 2px solid var(--color-border-strong);
border-radius: 999px;
color: var(--color-text-inverse);
cursor: pointer;
display: inline-flex;
flex-shrink: 0;
height: 2rem;
justify-content: center;
width: 2rem;
}
.task-check.is-complete {
background: var(--color-text-brand-strong);
border-color: var(--color-text-brand-strong);
}
.task-body {
flex: 1;
min-width: 0;
}
.task-body p {
color: var(--color-surface-muted-inverse);
font-size: 0.95rem;
font-weight: 500;
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.task-row.is-complete .task-body p {
color: var(--color-text-faint);
text-decoration: line-through;
}
.task-meta {
align-items: center;
color: var(--color-text-muted);
display: flex;
flex-wrap: wrap;
font-size: 0.75rem;
gap: 0.45rem;
margin-top: 0.3rem;
}
/* ============================================================
Section 20 Progress track and bar
============================================================ */
.project-progress-track {
background: var(--color-surface-muted);
border-radius: 999px;
height: 0.5rem;
overflow: hidden;
}
.project-progress-bar {
background: var(--project-color, var(--color-project-fallback));
border-radius: 999px;
height: 100%;
}
/* ============================================================
Section 21 Tab nav (tablo detail tab bar)
============================================================ */
.tab-nav {
align-items: center;
border-bottom: 1px solid var(--color-border-muted);
display: flex;
gap: 1.5rem;
margin-bottom: 1.5rem;
overflow-x: auto;
}
.tab-nav-item {
align-items: center;
border-bottom: 2px solid transparent;
color: var(--color-text-muted);
display: flex;
font-size: 0.875rem;
font-weight: 400;
gap: 0.5rem;
min-height: 44px;
padding-bottom: 0.75rem;
padding-inline: 0.25rem;
transition: color 0.15s ease, border-color 0.15s ease;
}
.tab-nav-item.is-active {
border-bottom-color: var(--color-brand-primary);
color: var(--color-text-brand);
font-weight: 600;
}
.tab-nav-item:hover:not(.is-active) {
color: var(--color-text-primary);
}
/* ============================================================
Section 22 Tablo detail metadata row
============================================================ */
.tablo-metadata-row {
align-items: center;
border-bottom: 1px solid var(--color-border-muted);
display: flex;
flex-wrap: wrap;
gap: 1rem;
margin-bottom: 1rem;
padding-bottom: 1rem;
}
.tablo-metadata-date {
align-items: center;
color: var(--color-text-muted);
display: flex;
font-size: 0.875rem;
gap: 0.5rem;
}
.tablo-metadata-date svg {
height: 1rem;
width: 1rem;
}
/* ============================================================
Section 23 Kanban column wrapper
============================================================ */
.kanban-column {
flex-shrink: 0;
width: 18rem;
}
/* Scope column h3 to 1rem base rule is 1.6rem (full-width views).
18rem columns overflow at 1.6rem. Base rule left unchanged. */
.kanban-column .tasks-section-header h3 {
font-size: 1rem;
}
/* ============================================================
Section 24 Etape group sub-headings inside kanban columns
============================================================ */
.etape-group-header {
align-items: center;
background: var(--color-surface-muted);
border-bottom: 1px solid var(--color-border-muted);
display: flex;
gap: 0.5rem;
padding: 0.5rem 1rem;
}
.etape-group-color-dot {
background: var(--project-color, var(--color-project-fallback));
border-radius: 999px;
flex-shrink: 0;
height: 0.5rem;
width: 0.5rem;
}
.etape-group-label {
color: var(--color-text-secondary);
font-size: 0.875rem;
font-weight: 600;
}
.etape-group-label.is-unassigned {
color: var(--color-text-muted);
font-weight: 400;
}
/* ============================================================
Section 25 Empty task list placeholder
============================================================ */
.task-list-empty {
color: var(--color-text-faint);
font-size: 0.875rem;
font-style: italic;
padding: 0.75rem 1rem;
}