АРХ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: устойчивое хранение layout-блоков карточки в detail_layout

This commit is contained in:
DCCONSTRUCTIONS
2026-04-25 18:06:05 +03:00
parent 4ed63cac4e
commit eac010d3d4
16 changed files with 693 additions and 136 deletions
+175 -114
View File
@@ -227,134 +227,45 @@
.nodedc-work-item-card,
.nodedc-external-card {
--nodedc-priority-card-rgb: var(--nodedc-priority-none-rgb);
--nodedc-priority-card-mix-rgb: var(--nodedc-priority-none-mix-rgb);
--nodedc-priority-card-border-opacity: 0.08;
--nodedc-priority-card-fill-opacity: 0;
--nodedc-priority-card-glow-opacity: 0;
position: relative;
overflow: hidden;
isolation: isolate;
border: 0 !important;
outline: none !important;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.024) 0%, rgba(255, 255, 255, 0.006) 100%),
rgb(var(--nodedc-card-passive-rgb)) !important;
box-shadow:
0 0 0 1px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-border-opacity)),
0 12px 28px rgba(0, 0, 0, 0.2),
0 0 18px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-glow-opacity)),
0 14px 34px rgba(0, 0, 0, 0.24),
inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}
.nodedc-work-item-card[data-priority="low"],
.nodedc-external-card[data-priority="low"] {
--nodedc-priority-card-rgb: var(--nodedc-priority-low-rgb);
--nodedc-priority-card-mix-rgb: var(--nodedc-priority-low-mix-rgb);
--nodedc-priority-card-border-opacity: 0.42;
--nodedc-priority-card-fill-opacity: 0.46;
--nodedc-priority-card-glow-opacity: 0.12;
}
.nodedc-work-item-card[data-priority="medium"],
.nodedc-external-card[data-priority="medium"] {
--nodedc-priority-card-rgb: var(--nodedc-priority-medium-rgb);
--nodedc-priority-card-mix-rgb: var(--nodedc-priority-medium-mix-rgb);
--nodedc-priority-card-border-opacity: 0.46;
--nodedc-priority-card-fill-opacity: 0.5;
--nodedc-priority-card-glow-opacity: 0.13;
}
.nodedc-work-item-card[data-priority="high"],
.nodedc-external-card[data-priority="high"] {
--nodedc-priority-card-rgb: var(--nodedc-priority-high-rgb);
--nodedc-priority-card-mix-rgb: var(--nodedc-priority-high-mix-rgb);
--nodedc-priority-card-border-opacity: 0.5;
--nodedc-priority-card-fill-opacity: 0.54;
--nodedc-priority-card-glow-opacity: 0.15;
}
.nodedc-work-item-card[data-priority="urgent"],
.nodedc-external-card[data-priority="urgent"] {
--nodedc-priority-card-rgb: var(--nodedc-priority-urgent-rgb);
--nodedc-priority-card-mix-rgb: var(--nodedc-priority-urgent-mix-rgb);
--nodedc-priority-card-border-opacity: 0.62;
--nodedc-priority-card-fill-opacity: 0.62;
--nodedc-priority-card-glow-opacity: 0.2;
}
.nodedc-work-item-card[data-active="true"],
.nodedc-external-card[data-active="true"] {
background: rgb(var(--nodedc-card-active-rgb)) !important;
color: rgb(var(--nodedc-on-card-active-rgb)) !important;
box-shadow:
0 0 0 1px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-border-opacity)),
0 14px 32px rgba(0, 0, 0, 0.22),
0 0 20px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-glow-opacity)),
inset 0 0 0 1px rgb(var(--nodedc-accent-rgb) / 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}
.nodedc-work-item-card[data-active="true"] .text-primary,
.nodedc-work-item-card[data-active="true"] .text-secondary,
.nodedc-work-item-card[data-active="true"] .text-tertiary,
.nodedc-work-item-card[data-active="true"] .text-placeholder {
color: rgb(var(--nodedc-on-card-active-rgb)) !important;
}
.nodedc-work-item-card::before,
.nodedc-external-card::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
border-radius: inherit;
background:
radial-gradient(
120% 90% at 50% 118%,
rgb(var(--nodedc-priority-card-rgb) / 0.74) 0%,
rgb(var(--nodedc-priority-card-rgb) / 0.28) 30%,
transparent 64%
),
radial-gradient(
105% 78% at 50% -26%,
rgb(var(--nodedc-priority-card-mix-rgb) / 0.3) 0%,
transparent 62%
),
radial-gradient(
62% 70% at -18% 50%,
rgb(var(--nodedc-priority-card-rgb) / 0.24) 0%,
transparent 68%
),
radial-gradient(
62% 70% at 118% 50%,
rgb(var(--nodedc-priority-card-mix-rgb) / 0.22) 0%,
transparent 68%
);
opacity: var(--nodedc-priority-card-fill-opacity);
mask: radial-gradient(72% 58% at 50% 50%, transparent 0%, transparent 52%, rgba(0, 0, 0, 0.42) 68%, #000 100%);
-webkit-mask: radial-gradient(
72% 58% at 50% 50%,
transparent 0%,
transparent 52%,
rgba(0, 0, 0, 0.42) 68%,
#000 100%
);
content: none !important;
display: none !important;
}
.nodedc-work-item-card::after,
.nodedc-external-card::after {
content: "";
position: absolute;
inset: 0;
z-index: 0;
padding: 1px;
pointer-events: none;
border-radius: inherit;
background:
linear-gradient(
145deg,
rgb(var(--nodedc-priority-card-rgb) / 0.82) 0%,
rgb(var(--nodedc-priority-card-mix-rgb) / 0.44) 32%,
rgba(255, 255, 255, 0.18) 48%,
rgb(var(--nodedc-priority-card-rgb) / 0.34) 100%
);
opacity: var(--nodedc-priority-card-border-opacity);
mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
mask-composite: exclude;
-webkit-mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
content: none !important;
display: none !important;
}
.nodedc-work-item-card > *,
@@ -904,6 +815,11 @@
background: color-mix(in srgb, rgb(var(--nodedc-accent-rgb)) 82%, white) !important;
}
.nodedc-link-modal [data-slot="button"] {
min-width: 4.25rem;
padding-inline: 1.6rem !important;
}
.nodedc-modal-primary-button,
.nodedc-modal-danger-button,
.nodedc-modal-primary-button *,
@@ -933,6 +849,145 @@
background: color-mix(in srgb, rgb(var(--nodedc-accent-rgb)) 82%, white) !important;
}
.nodedc-structured-inline-stack {
display: flex;
flex-direction: column;
gap: 1rem;
}
.nodedc-structured-inline-block {
border: 0 !important;
border-radius: 0;
background: transparent !important;
box-shadow: none !important;
outline: none !important;
padding: 0;
}
.nodedc-structured-inline-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
margin-bottom: 0.8rem;
color: var(--text-color-primary);
font-size: 0.82rem;
font-weight: 600;
}
.nodedc-structured-inline-header--menu-only {
justify-content: flex-end;
margin-bottom: 0.35rem;
min-height: 1.8rem;
}
.nodedc-structured-menu-button {
display: grid !important;
height: 1.8rem !important;
width: 1.8rem !important;
place-items: center !important;
border: 0 !important;
border-radius: 999px !important;
background: transparent !important;
color: var(--text-color-secondary) !important;
outline: none !important;
box-shadow: none !important;
padding: 0 !important;
}
.nodedc-structured-menu-button:hover {
background: rgba(255, 255, 255, 0.06) !important;
color: var(--text-color-primary) !important;
}
.nodedc-structured-add-zone {
display: flex;
min-height: 2.75rem;
width: 100%;
align-items: center;
gap: 0.7rem;
border: 0 !important;
border-radius: 1rem;
background: transparent !important;
padding: 0.35rem 0.2rem;
outline: none !important;
box-shadow: none !important;
transition:
background-color 160ms ease,
transform 160ms ease;
}
.nodedc-structured-add-zone:hover {
background: rgba(255, 255, 255, 0.035) !important;
}
.nodedc-structured-add-icon {
display: grid;
height: 2rem;
width: 2rem;
flex-shrink: 0;
place-items: center;
border-radius: 999px;
color: rgb(var(--nodedc-accent-rgb));
}
.nodedc-structured-checklist {
display: flex;
max-height: 32.25rem;
flex-direction: column;
gap: 0.7rem;
overflow-y: auto;
margin-bottom: 0.8rem;
padding-right: 0;
}
.nodedc-structured-check-row {
display: flex;
min-height: 3rem;
align-items: center;
gap: 0.65rem;
border-radius: 0;
background: transparent !important;
padding: 0;
}
.nodedc-structured-check-dot {
display: grid;
height: 1.55rem;
width: 1.55rem;
flex-shrink: 0;
place-items: center;
border: 0 !important;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
color: rgb(var(--nodedc-on-accent-rgb));
outline: none !important;
box-shadow: none !important;
}
.nodedc-structured-check-dot.is-checked {
background: rgb(var(--nodedc-accent-rgb));
}
.nodedc-structured-delete {
display: grid;
height: 2.4rem;
width: 2.4rem;
flex-shrink: 0;
place-items: center;
border: 0 !important;
border-radius: 999px;
background: transparent !important;
color: rgba(255, 255, 255, 0.7);
outline: none !important;
box-shadow: none !important;
}
.nodedc-structured-delete:hover {
background: rgba(255, 255, 255, 0.08);
color: rgba(255, 255, 255, 0.94);
}
.nodedc-glass-modal button.bg-danger-primary,
.nodedc-glass-modal button.border-danger-strong {
border: 0 !important;
@@ -1518,7 +1573,6 @@
rgb(var(--nodedc-card-active-rgb)) !important;
color: rgb(var(--nodedc-on-card-active-rgb)) !important;
box-shadow:
inset 0 0 0 1px rgba(var(--nodedc-accent-rgb), 0.32),
0 12px 32px rgba(0, 0, 0, 0.16) !important;
}
@@ -1535,22 +1589,29 @@
.nodedc-work-item-card,
.nodedc-external-card {
box-shadow:
0 0 0 1px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-border-opacity)),
0 12px 28px rgba(0, 0, 0, 0.2),
0 0 18px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-glow-opacity)),
inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}
.nodedc-work-item-card[data-active="true"],
.nodedc-external-card[data-active="true"] {
box-shadow:
0 0 0 1px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-border-opacity)),
0 14px 32px rgba(0, 0, 0, 0.22),
0 0 20px rgb(var(--nodedc-priority-card-rgb) / var(--nodedc-priority-card-glow-opacity)),
inset 0 0 0 1px rgb(var(--nodedc-accent-rgb) / 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}
.nodedc-work-item-card[data-active="true"] {
background: rgb(var(--nodedc-card-active-rgb)) !important;
color: rgb(var(--nodedc-on-card-active-rgb)) !important;
}
.nodedc-work-item-card[data-active="true"] .text-primary,
.nodedc-work-item-card[data-active="true"] .text-secondary,
.nodedc-work-item-card[data-active="true"] .text-tertiary,
.nodedc-work-item-card[data-active="true"] .text-placeholder {
color: rgb(var(--nodedc-on-card-active-rgb)) !important;
}
.nodedc-external-content-shell {
border: 0 !important;
outline: none !important;