Split toolbox Sass partials

This commit is contained in:
Shinuwa 2026-08-14 09:24:54 +02:00
parent b221257616
commit c312b9ed91
19 changed files with 6490 additions and 6419 deletions

View file

@ -0,0 +1,712 @@
// Rôle : gère l’outil task planner, ses catégories, relations et réglages.
@use "../mixins";
.task-planner-module {
display: grid;
gap: var(--space-4);
padding: var(--space-4);
}
.task-planner-topbar {
display: grid;
gap: 10px;
align-items: stretch;
}
.task-planner-topbar .inline-form {
padding: 0;
}
.task-planner-add-stack {
display: grid;
gap: var(--space-3);
}
.task-planner-add-stack .text-import-actions {
padding-top: var(--space-2);
}
.task-planner-global-controls {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
}
.task-planner-settings-toggle,
.task-planner-dropdown-button,
.task-planner-settings-button {
display: inline-grid;
width: 34px;
min-width: 34px;
min-height: 34px;
place-items: center;
padding: 0;
border: 1px solid rgba(165, 180, 252, 0.1);
border-radius: var(--radius-md);
background: rgba(21, 26, 48, 0.76);
color: var(--color-text-secondary);
}
.task-planner-settings-toggle {
grid-template-columns: 16px minmax(0, auto);
width: auto;
max-width: 100%;
padding: 0 12px;
gap: 8px;
}
.task-planner-settings-toggle span {
overflow: hidden;
font-size: var(--font-size-xs);
font-weight: 900;
text-overflow: ellipsis;
white-space: nowrap;
}
.task-planner-settings-toggle .ui-icon,
.task-planner-dropdown-button .ui-icon,
.task-planner-settings-button .ui-icon {
width: 16px;
height: 16px;
}
.task-planner-clear-completed-button {
display: inline-flex;
min-height: 38px;
align-items: center;
justify-content: center;
gap: 8px;
padding: 0 12px;
white-space: nowrap;
}
.task-planner-clear-completed-button .ui-icon {
width: 15px;
height: 15px;
}
.task-planner-settings {
display: grid;
grid-template-columns: minmax(130px, 1fr) minmax(110px, 0.72fr);
gap: 10px;
align-items: end;
padding: 12px;
border: 1px solid rgba(165, 180, 252, 0.12);
border-radius: var(--radius-md);
background:
linear-gradient(135deg, rgba(139, 92, 246, 0.06), transparent 58%),
rgba(7, 10, 24, 0.34);
}
.task-planner-settings-actions {
display: flex;
grid-column: 1 / -1;
justify-content: flex-end;
}
.task-planner-settings label,
.task-planner-reset-override {
display: grid;
gap: 6px;
min-width: 0;
}
.task-planner-settings span,
.task-planner-reset-override > span,
.task-planner-relations > span {
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 900;
text-transform: uppercase;
}
.task-planner-settings select,
.task-planner-settings input,
.task-planner-add-form select,
.task-planner-type-select,
.task-planner-reset-override select,
.task-planner-reset-override input,
.task-planner-relations select {
width: 100%;
min-height: 36px;
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
background-color: rgba(15, 23, 42, 0.64);
color: var(--color-text-primary);
}
.task-planner-settings select option,
.task-planner-add-form select option,
.task-planner-type-select option,
.task-planner-reset-override select option,
.task-planner-relations select option {
background: #11182f;
color: var(--color-text-primary);
}
.task-planner-add-form {
grid-template-columns: minmax(0, 1fr) minmax(120px, 0.36fr) auto;
}
.task-planner-list {
display: grid;
gap: 10px;
margin: 0;
padding: 0;
list-style: none;
}
.task-planner-child-list {
position: relative;
gap: 8px;
margin-top: 8px;
padding-left: 22px;
}
.task-planner-child-list::before {
content: "";
position: absolute;
top: -4px;
bottom: 15px;
left: 7px;
width: 1px;
background: linear-gradient(180deg, rgba(246, 196, 83, 0.46), rgba(139, 92, 246, 0.18));
}
.task-planner-child-list > .task-planner-item {
position: relative;
}
.task-planner-hidden-parent {
position: relative;
display: grid;
gap: 8px;
min-width: 0;
padding: 10px;
border: 1px solid rgba(165, 180, 252, 0.1);
border-radius: var(--radius-md);
background:
linear-gradient(135deg, rgba(148, 163, 184, 0.035), transparent 56%),
rgba(5, 7, 17, 0.28);
}
.task-planner-hidden-parent > .task-planner-child-list {
margin-top: 0;
}
.task-planner-child-list > .task-planner-item::before,
.task-planner-child-list > .task-planner-hidden-parent::before {
content: "";
position: absolute;
top: 25px;
left: -15px;
width: 11px;
height: 1px;
background: rgba(246, 196, 83, 0.46);
}
.task-planner-hidden-parent-line {
display: grid;
grid-template-columns: 24px minmax(0, 1fr) auto;
gap: 8px;
align-items: center;
min-height: 34px;
padding: 6px 10px;
border: 1px solid rgba(165, 180, 252, 0.08);
border-radius: var(--radius-md);
background:
linear-gradient(135deg, rgba(148, 163, 184, 0.04), transparent 58%),
rgba(5, 7, 17, 0.24);
opacity: 0.76;
}
.task-planner-hidden-parent-line > input[type="checkbox"] {
justify-self: center;
}
.task-planner-hidden-parent-line > span {
min-width: 0;
overflow: hidden;
color: var(--color-text-muted);
font-size: var(--font-size-sm);
font-weight: 800;
text-decoration: line-through;
text-overflow: ellipsis;
white-space: nowrap;
}
.task-planner-hidden-parent-line > small {
color: rgba(180, 189, 211, 0.62);
font-size: var(--font-size-xs);
font-weight: 900;
}
.task-planner-empty {
padding: var(--space-4);
border: 1px dashed rgba(165, 180, 252, 0.18);
border-radius: var(--radius-md);
color: var(--color-text-muted);
text-align: center;
}
.task-planner-category-boundary-drop-zone {
min-height: 10px;
border: 1px dashed rgba(165, 180, 252, 0.16);
border-radius: var(--radius-sm);
background: rgba(15, 23, 42, 0.12);
}
.task-planner-category-boundary-drop-zone.is-drop-target {
border-color: rgba(246, 196, 83, 0.72);
background: rgba(246, 196, 83, 0.08);
box-shadow: inset 0 0 0 1px rgba(246, 196, 83, 0.24);
}
.task-planner-category-section {
display: grid;
gap: 8px;
padding: 10px;
border: 1px solid rgba(246, 196, 83, 0.16);
border-radius: var(--radius-md);
background:
linear-gradient(135deg, rgba(246, 196, 83, 0.04), transparent 42%),
rgba(7, 10, 24, 0.18);
}
.task-planner-category-header {
padding: 0 2px;
}
.task-planner-category-title {
display: inline-flex;
flex: 1 1 auto;
min-width: 0;
align-items: center;
gap: 8px;
}
.task-planner-category-actions {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 8px;
}
.task-planner-category-header h3 {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--color-accent-gold);
font-size: var(--font-size-sm);
text-overflow: ellipsis;
white-space: nowrap;
}
.task-planner-category-actions > span {
flex: 0 0 auto;
padding: 3px 9px;
border: 1px solid rgba(246, 196, 83, 0.22);
border-radius: var(--radius-pill);
background: rgba(246, 196, 83, 0.08);
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 800;
}
.task-planner-category-section.is-complete .task-planner-category-header h3 {
color: var(--color-text-muted);
text-decoration: line-through;
}
.task-planner-category-section.is-dragging {
cursor: grabbing;
opacity: 0.58;
transform: scale(0.99);
}
.task-planner-category-section.is-drop-target {
border-color: rgba(246, 196, 83, 0.72);
}
.task-planner-category-section.is-drop-target.drop-after {
border-color: rgba(246, 196, 83, 0.72);
}
.task-planner-item {
position: relative;
display: grid;
gap: 10px;
padding: 10px;
border: 1px solid rgba(165, 180, 252, 0.12);
border-radius: var(--radius-md);
background: rgba(5, 7, 17, 0.36);
}
.task-planner-item.is-complete > .task-planner-line {
opacity: 0.78;
}
.task-planner-item.has-missing-prerequisite {
border-color: rgba(246, 196, 83, 0.34);
background:
linear-gradient(135deg, rgba(246, 196, 83, 0.06), transparent 44%),
rgba(5, 7, 17, 0.36);
}
.task-planner-line {
display: grid;
grid-template-columns: 30px 24px minmax(0, 1fr) 134px auto auto;
gap: 8px;
align-items: center;
}
.task-planner-line > input[type="checkbox"] {
justify-self: center;
}
.task-planner-drag-handle,
.task-planner-category-drag-handle,
.task-planner-delete-button {
display: inline-grid;
width: 30px;
min-width: 30px;
min-height: 30px;
place-items: center;
padding: 0;
border: 1px solid rgba(165, 180, 252, 0.1);
border-radius: var(--radius-md);
background: rgba(21, 26, 48, 0.76);
color: var(--color-text-secondary);
}
.task-planner-drag-handle:disabled {
cursor: not-allowed;
opacity: 0.3;
}
.task-planner-drag-handle .ui-icon,
.task-planner-category-drag-handle .ui-icon,
.task-planner-delete-button .ui-icon {
width: 15px;
height: 15px;
}
.task-planner-actions {
display: inline-flex;
justify-content: flex-end;
gap: 6px;
}
.task-planner-title-input {
font-weight: 800;
}
.task-planner-item.is-complete > .task-planner-line .task-planner-title-input {
color: var(--color-text-muted);
text-decoration: line-through;
}
.task-planner-type-select {
appearance: none;
-webkit-appearance: none;
width: 100%;
min-height: 36px;
overflow: hidden;
padding: 0 30px 0 10px;
border-color: rgba(165, 180, 252, 0.09);
text-overflow: ellipsis;
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23c4b5fd' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"),
linear-gradient(135deg, rgba(139, 92, 246, 0.04), rgba(31, 41, 78, 0.08)),
linear-gradient(rgba(21, 26, 48, 0.38), rgba(21, 26, 48, 0.38));
background-position:
calc(100% - 10px) 50%,
0 0,
0 0;
background-size:
11px 11px,
auto,
auto;
background-repeat: no-repeat;
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 900;
}
.task-planner-type-select:hover,
.task-planner-type-select:focus {
border-color: rgba(196, 181, 253, 0.22);
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f6c453' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"),
linear-gradient(135deg, rgba(246, 196, 83, 0.06), rgba(139, 92, 246, 0.08)),
linear-gradient(rgba(21, 26, 48, 0.58), rgba(21, 26, 48, 0.58));
color: var(--color-text-primary);
}
.task-planner-warning {
display: inline-flex;
align-items: center;
padding: 4px 8px;
border: 1px solid rgba(246, 196, 83, 0.28);
border-radius: var(--radius-pill);
background: rgba(246, 196, 83, 0.08);
color: var(--color-accent-gold);
font-size: var(--font-size-xs);
font-weight: 900;
white-space: nowrap;
}
.task-planner-prerequisite-tooltip {
display: grid;
gap: 7px;
min-width: 180px;
}
.task-planner-prerequisite-tooltip strong {
color: var(--color-text-primary);
font-size: var(--font-size-xs);
}
.task-planner-prerequisite-tooltip > span {
display: grid;
gap: 4px;
}
.task-planner-prerequisite-tooltip > span > span {
min-width: 0;
overflow: hidden;
color: var(--color-text-secondary);
text-overflow: ellipsis;
white-space: nowrap;
}
.inline-notice {
display: inline-flex;
width: fit-content;
max-width: 100%;
align-items: center;
gap: 7px;
padding: 5px 9px;
border: 1px solid rgba(246, 196, 83, 0.28);
border-radius: var(--radius-md);
background:
linear-gradient(135deg, rgba(246, 196, 83, 0.1), rgba(139, 92, 246, 0.08)),
rgba(9, 12, 28, 0.9);
box-shadow: 0 10px 24px rgba(2, 6, 23, 0.22);
color: var(--color-accent-gold);
font-size: var(--font-size-xs);
font-weight: 900;
line-height: 1.2;
animation: inline-notice-in 160ms ease;
}
.inline-notice .ui-icon {
width: 14px;
height: 14px;
flex: 0 0 auto;
}
.task-planner-notice {
position: absolute;
top: 48px;
left: 72px;
z-index: 2;
pointer-events: none;
}
@keyframes inline-notice-in {
from {
opacity: 0;
transform: translateY(-2px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.task-planner-description-panel,
.task-planner-task-settings {
margin-left: 62px;
}
.task-planner-description-panel {
display: grid;
gap: 10px;
}
.task-planner-category-field,
.task-planner-description-field {
display: grid;
gap: 6px;
min-width: 0;
}
.task-planner-category-field span,
.task-planner-description-field span {
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 900;
text-transform: uppercase;
}
.task-planner-category-field input {
width: 100%;
}
.task-planner-category-field.is-disabled span {
color: rgba(148, 163, 184, 0.72);
}
.task-planner-category-field.is-disabled input,
.task-planner-category-field input:disabled {
border-color: rgba(165, 180, 252, 0.08);
background:
linear-gradient(135deg, rgba(148, 163, 184, 0.05), transparent 62%),
rgba(15, 23, 42, 0.42);
box-shadow: none;
color: rgba(203, 213, 225, 0.66);
cursor: not-allowed;
}
.task-planner-description {
min-height: 72px;
resize: vertical;
}
.task-planner-task-settings {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
gap: 12px;
align-items: start;
padding: 10px;
border: 1px solid rgba(165, 180, 252, 0.1);
border-radius: var(--radius-md);
background: rgba(7, 10, 24, 0.24);
}
.task-planner-reset-control {
display: grid;
grid-template-columns: minmax(0, 1fr) 34px;
gap: 8px;
align-items: center;
}
.task-planner-reset-control button {
display: inline-grid;
width: 34px;
min-width: 34px;
min-height: 36px;
place-items: center;
padding: 0;
border: 1px solid rgba(165, 180, 252, 0.12);
border-radius: var(--radius-md);
background: rgba(21, 26, 48, 0.58);
color: var(--color-text-secondary);
}
.task-planner-reset-control button:disabled {
opacity: 0.42;
cursor: not-allowed;
}
.task-planner-reset-control button .ui-icon {
width: 14px;
height: 14px;
}
.task-planner-reset-override.is-empty p {
display: grid;
min-height: 36px;
align-items: center;
margin: 0;
padding: 0 12px;
border: 1px solid rgba(165, 180, 252, 0.08);
border-radius: var(--radius-md);
background: rgba(15, 23, 42, 0.34);
color: var(--color-text-muted);
font-size: var(--font-size-sm);
font-weight: 800;
}
.task-planner-relations {
display: grid;
grid-column: span 1;
gap: 6px;
min-width: 0;
}
.task-planner-relations > div {
display: grid;
gap: 6px;
min-height: 36px;
}
.task-planner-relations em {
color: var(--color-text-muted);
font-size: var(--font-size-xs);
font-style: normal;
}
.task-planner-relation-chip {
display: grid;
grid-template-columns: minmax(0, 1fr) auto 28px;
gap: 8px;
align-items: center;
padding: 4px 5px 4px 9px;
border: 1px solid rgba(165, 180, 252, 0.12);
border-radius: var(--radius-md);
background: rgba(21, 26, 48, 0.46);
}
.task-planner-relation-chip > span {
min-width: 0;
overflow: hidden;
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 800;
text-overflow: ellipsis;
white-space: nowrap;
}
.task-planner-relation-chip label {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--color-text-muted);
font-size: var(--font-size-xs);
font-weight: 800;
}
.task-planner-relation-chip label input {
min-height: 0;
}
.task-planner-relation-chip button {
display: inline-flex;
width: 26px;
min-width: 26px;
min-height: 26px;
align-items: center;
justify-content: center;
gap: 5px;
padding: 0;
border: 1px solid rgba(165, 180, 252, 0.12);
border-radius: var(--radius-md);
background: rgba(21, 26, 48, 0.58);
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 800;
}
.task-planner-relation-chip button .ui-icon {
width: 12px;
height: 12px;
}
.task-planner-relations select {
min-height: 36px;
padding-inline: 10px;
}