All checks were successful
Build and Push App Image / build-and-push (push) Successful in 34s
384 lines
7.0 KiB
CSS
384 lines
7.0 KiB
CSS
.task-board {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.task-board-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.task-filters {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.status-lane {
|
|
border: 1px solid #d9e2ec;
|
|
border-radius: 12px;
|
|
padding: 0.75rem;
|
|
background: linear-gradient(180deg, #fcfdff 0%, #f5f8fc 100%);
|
|
}
|
|
|
|
.lane-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.status-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.45rem;
|
|
}
|
|
|
|
.status-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.55rem;
|
|
padding: 0.4rem 0.45rem;
|
|
border-radius: 8px;
|
|
background: var(--color-surface);
|
|
border: 1px solid #e4e9f0;
|
|
cursor: grab;
|
|
}
|
|
|
|
.status-item.is-drag-over {
|
|
border-color: #7aa2f7;
|
|
background: #eef3ff;
|
|
}
|
|
|
|
.drag-handle {
|
|
color: #74839a;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.status-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.status-name {
|
|
flex: 1;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.status-actions {
|
|
display: inline-flex;
|
|
gap: 0.35rem;
|
|
}
|
|
|
|
.task-status-groups {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.status-group {
|
|
border: 1px solid #dbe4f0;
|
|
border-radius: 12px;
|
|
overflow: visible;
|
|
background: var(--color-surface);
|
|
}
|
|
|
|
.status-group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
border-left: 6px solid transparent;
|
|
background: #f8fbff;
|
|
border-bottom: 1px solid #edf2f8;
|
|
padding: 0.65rem 0.85rem;
|
|
}
|
|
|
|
.status-group-title-wrap {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.status-group-title {
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.status-group-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.status-group-count {
|
|
color: #5f6f87;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.status-empty {
|
|
padding: 0.75rem 0.85rem;
|
|
color: #7a8799;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.task-tree-row {
|
|
border-bottom: 1px solid #edf2f8;
|
|
}
|
|
|
|
.task-tree-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.task-tree-row.level-1 .task-row {
|
|
padding-left: 2.1rem;
|
|
}
|
|
|
|
.task-tree-row.level-2 .task-row {
|
|
padding-left: 3.5rem;
|
|
}
|
|
|
|
.task-row {
|
|
width: 100%;
|
|
display: grid;
|
|
grid-template-columns: 28px 1fr auto;
|
|
gap: 0.65rem;
|
|
align-items: center;
|
|
border: 0;
|
|
background: var(--color-surface);
|
|
text-align: left;
|
|
padding: 0.7rem 0.85rem;
|
|
}
|
|
|
|
.task-row:hover {
|
|
background: #f4f8ff;
|
|
}
|
|
|
|
.status-group-header {
|
|
border-top-left-radius: 12px;
|
|
border-top-right-radius: 12px;
|
|
}
|
|
|
|
.status-group > .task-tree-row:last-child .task-row,
|
|
.status-group > .task-tree-row:last-child > div > .task-tree-row:last-child .task-row,
|
|
.status-group > .task-tree-row:last-child > div > .task-tree-row:last-child > div > .task-tree-row:last-child .task-row {
|
|
border-bottom-left-radius: 12px;
|
|
border-bottom-right-radius: 12px;
|
|
}
|
|
|
|
.tree-toggle {
|
|
width: 1.25rem;
|
|
color: #5f6f87;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 0;
|
|
}
|
|
|
|
.task-main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
}
|
|
|
|
.task-main strong,
|
|
.task-main small {
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.task-status-menu {
|
|
position: relative;
|
|
display: inline-flex;
|
|
}
|
|
|
|
.status-trigger {
|
|
width: 28px;
|
|
height: 28px;
|
|
border: 0;
|
|
background: transparent;
|
|
border-radius: 999px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.status-trigger:hover {
|
|
background: #eef3f9;
|
|
}
|
|
|
|
.status-trigger-dot {
|
|
width: 14px;
|
|
height: 14px;
|
|
border: 2px solid var(--color-surface);
|
|
box-shadow: 0 0 0 1px rgba(67, 81, 98, 0.25);
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.status-popup {
|
|
position: absolute;
|
|
right: 0;
|
|
top: calc(100% + 0.3rem);
|
|
min-width: 190px;
|
|
background: #151a22;
|
|
border: 1px solid #2a3343;
|
|
border-radius: 10px;
|
|
box-shadow: 0 12px 28px rgba(5, 9, 15, 0.35);
|
|
padding: 0.35rem;
|
|
z-index: 40;
|
|
}
|
|
|
|
.status-option {
|
|
width: 100%;
|
|
border: 0;
|
|
border-radius: 8px;
|
|
background: transparent;
|
|
color: #e8edf5;
|
|
display: grid;
|
|
grid-template-columns: 14px 1fr auto;
|
|
align-items: center;
|
|
gap: 0.55rem;
|
|
padding: 0.45rem 0.5rem;
|
|
text-align: left;
|
|
}
|
|
|
|
.status-option:hover,
|
|
.status-option.selected {
|
|
background: rgba(255, 255, 255, 0.09);
|
|
}
|
|
|
|
.status-option-dot {
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 999px;
|
|
border: 2px solid;
|
|
background: transparent;
|
|
}
|
|
|
|
.status-option-label {
|
|
font-size: 0.86rem;
|
|
letter-spacing: 0.02em;
|
|
text-transform: uppercase;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.status-option-check {
|
|
color: #e8edf5;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.empty-state {
|
|
padding: 1rem;
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
.status-color-row {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.task-filters {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.task-row {
|
|
grid-template-columns: 24px minmax(0, 1fr) auto;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.status-popup {
|
|
right: -0.2rem;
|
|
min-width: 170px;
|
|
}
|
|
}
|
|
|
|
/* ── Dark mode ── */
|
|
:root[data-bs-theme="dark"] .status-lane {
|
|
background: linear-gradient(180deg, #1e2330 0%, #1a1d27 100%);
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-item {
|
|
background: #252b38;
|
|
border-color: var(--color-border);
|
|
color: #c8d3e6;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-item.is-drag-over {
|
|
border-color: #7aa2f7;
|
|
background: #1e2d4a;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .drag-handle {
|
|
color: #5f6f87;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-group {
|
|
background: #1e2230;
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-group-header {
|
|
background: #232840;
|
|
border-bottom-color: var(--color-border);
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-group-title {
|
|
color: #c8d3e6;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-group-count {
|
|
color: #7a8fa8;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-empty {
|
|
color: #5f6f87;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .task-tree-row {
|
|
border-bottom-color: #2e3444;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .task-row {
|
|
background: #1e2230;
|
|
color: #c8d3e6;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .task-row:hover {
|
|
background: #252d40;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .tree-toggle {
|
|
color: #7a8fa8;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .task-main small {
|
|
color: #7a8fa8;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-trigger:hover {
|
|
background: #2e3448;
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .status-trigger-dot {
|
|
border-color: #1e2230;
|
|
box-shadow: 0 0 0 1px rgba(180, 195, 220, 0.2);
|
|
}
|
|
|
|
:root[data-bs-theme="dark"] .empty-state {
|
|
color: #7a8fa8;
|
|
}
|