Statuskarten via Drag&Drop verschiebbar

Unteraufgaben lassen sich verschieben und bearbeiten
Dieser Commit ist enthalten in:
HG
2025-12-30 19:55:39 +00:00
committet von Server Deploy
Ursprung 15627cce99
Commit 9bf298c26b
20 geänderte Dateien mit 1609 neuen und 39 gelöschten Zeilen

Datei anzeigen

@ -609,12 +609,19 @@
border-bottom: none;
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
cursor: grab;
user-select: none;
-webkit-user-select: none;
}
.column-header:active {
cursor: grabbing;
}
.column-header.dragging,
.column-header[draggable="true"]:active {
cursor: grabbing;
}
.column-title {
display: flex;
align-items: center;
@ -750,6 +757,24 @@
transform: rotate(3deg);
}
/* Column Dragging */
.column.dragging {
opacity: 0.6;
transform: scale(0.98);
box-shadow: var(--shadow-xl);
z-index: 1000;
}
.column.drag-over-left {
border-left: 4px solid var(--primary) !important;
margin-left: -2px;
}
.column.drag-over-right {
border-right: 4px solid var(--primary) !important;
margin-right: -2px;
}
.task-card.overdue {
border-left: 4px solid var(--error);
}

Datei anzeigen

@ -270,10 +270,44 @@
.subtask-item {
display: flex;
align-items: center;
gap: var(--spacing-3);
padding: var(--spacing-3);
gap: var(--spacing-2);
padding: var(--spacing-2) var(--spacing-3);
background: var(--bg-tertiary);
border-radius: var(--radius-lg);
transition: all var(--transition-fast);
border: 2px solid transparent;
}
.subtask-item.dragging {
opacity: 0.5;
background: var(--bg-secondary);
}
.subtask-item.drag-over-top {
border-top-color: var(--primary);
}
.subtask-item.drag-over-bottom {
border-bottom-color: var(--primary);
}
/* Drag Handle */
.subtask-drag-handle {
cursor: grab;
color: var(--text-muted);
font-size: var(--text-xs);
padding: 2px 4px;
user-select: none;
opacity: 0.5;
transition: opacity var(--transition-fast);
}
.subtask-item:hover .subtask-drag-handle {
opacity: 1;
}
.subtask-drag-handle:active {
cursor: grabbing;
}
.subtask-item input[type="checkbox"] {
@ -299,19 +333,33 @@
color: var(--text-muted);
}
/* Subtask Actions */
.subtask-actions {
display: flex;
gap: var(--spacing-1);
opacity: 0;
transition: opacity var(--transition-fast);
}
.subtask-item:hover .subtask-actions {
opacity: 1;
}
.subtask-edit,
.subtask-delete {
padding: 4px;
padding: 4px 6px;
color: var(--text-muted);
background: none;
border: none;
cursor: pointer;
opacity: 0;
transition: all var(--transition-fast);
border-radius: var(--radius-md);
font-size: var(--text-sm);
}
.subtask-item:hover .subtask-delete {
opacity: 1;
.subtask-edit:hover {
color: var(--primary);
background: var(--primary-light);
}
.subtask-delete:hover {
@ -319,6 +367,17 @@
background: var(--error-bg);
}
/* Edit Input */
.subtask-edit-input {
flex: 1;
padding: var(--spacing-1) var(--spacing-2);
font-size: var(--text-sm);
background: var(--bg-card);
border: 1px solid var(--primary);
border-radius: var(--radius-md);
outline: none;
}
/* Add Subtask Form */
.add-subtask-form {
display: flex;
@ -333,6 +392,7 @@
flex: 1;
font-size: var(--text-sm);
color: var(--text-primary);
cursor: text;
}
/* Links */