Grotti 3.3.0: Projekte mit Ordner, Datei-Löschen/Verschieben, Material-Archiv, UI-Polish.

This commit is contained in:
Dominic Gundel committed 2026-10-18 20:10:32 +02:00
1 parent 4ddffbbeb1
commit 67a89d1794
45 files changed
+2856 -320

No files matched your search

+198 -11
View File
@@ -693,6 +693,14 @@ h2.queue-title { font-size: var(--t-xs); }
display: grid;
gap: 0.45rem;
}
.steer-group { display: grid; gap: 0.35rem; }
.steer-group-label {
font-size: 0.68rem;
font-weight: 650;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--faint);
}
.steer-row {
display: flex;
flex-wrap: wrap;
@@ -714,7 +722,8 @@ h2.queue-title { font-size: var(--t-xs); }
.steer-ace-slots {
display: grid;
gap: 0.35rem;
padding-top: 0.35rem;
padding-top: 0.45rem;
margin-top: 0.15rem;
border-top: 1px solid var(--line);
}
.steer-ace-head {
@@ -726,9 +735,9 @@ h2.queue-title { font-size: var(--t-xs); }
}
.steer-ace-head b { font-weight: 650; }
.steer-slot-row {
display: flex;
flex-wrap: wrap;
gap: 0.35rem 0.55rem;
display: grid;
grid-template-columns: auto 1fr auto;
gap: 0.45rem 0.55rem;
align-items: center;
font-size: 0.78rem;
}
@@ -739,7 +748,13 @@ h2.queue-title { font-size: var(--t-xs); }
flex: none;
border: 1px solid rgba(255, 255, 255, 0.15);
}
.steer-slot-row .grow { min-width: 0; overflow-wrap: anywhere; }
.steer-slot-row .grow {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.steer-slot-row button { flex: none; white-space: nowrap; }
.queue-name { color: var(--ink); font-size: var(--t-sm); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.queue-msg { color: var(--muted); font-size: var(--t-xs); line-height: 1.3; overflow-wrap: anywhere; }
.queue-sub { color: var(--faint); font-size: 0.66rem; font-variant-numeric: tabular-nums; flex: none; }
@@ -871,6 +886,63 @@ h2 { font-size: 0.95rem; margin: 0 0 0.65rem; letter-spacing: -0.02em; font-weig
padding: 0.4rem 0.55rem;
white-space: nowrap;
}
.stat-tools {
flex-direction: column;
align-items: stretch;
gap: 0.55rem;
}
.stat-tools .period-presets {
flex: 0 1 auto;
width: auto;
}
.stat-filters {
display: flex;
flex-wrap: wrap;
gap: 0.45rem 0.55rem;
align-items: center;
}
.stat-filters input[type="text"],
.stat-filters select {
width: auto;
min-width: 7rem;
max-width: 11rem;
flex: 0 1 auto;
}
.mat-extra-filters {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
align-items: center;
}
.mat-extra-filters select {
width: auto;
min-width: 7.5rem;
max-width: 11rem;
padding: 0.35rem 0.55rem;
min-height: var(--control-h);
border-radius: var(--radius-sm);
}
.mat-group td {
padding-top: 0.75rem !important;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--ink);
border-bottom: 1px solid var(--line);
background: rgba(255, 255, 255, 0.02);
}
tr.is-archived { opacity: 0.65; }
.kpi-row.kpi-primary {
grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
}
.kpi-row.kpi-secondary {
grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
margin-top: -0.35rem;
opacity: 0.95;
}
.kpi.kpi-sm .kpi-value { font-size: 1.05rem; }
.kpi.kpi-empty { opacity: 0.55; }
.lead, .tiny, .summary { color: var(--muted); }
.summary { margin: 0.3rem 0 0; }
.tiny { font-size: 0.8rem; margin: 0.2rem 0 0; line-height: 1.4; max-width: 52ch; }
@@ -946,7 +1018,28 @@ article.machine.error:hover { border-color: rgba(248, 113, 113, 0.6); }
article.machine.offline { opacity: 0.62; }
article.machine.offline:hover { opacity: 1; }
.machine-head { padding: 0.85rem 0.95rem 0.3rem; }
.machine-head {
padding: 0.85rem 0.95rem 0.3rem;
display: grid;
grid-template-columns: 1fr;
gap: 0.55rem;
align-items: start;
}
.machine-head.has-cam {
grid-template-columns: 1fr auto;
}
.machine-head-main { min-width: 0; }
.wall-cam-thumb {
width: 4.75rem;
height: 3.35rem;
object-fit: cover;
border-radius: 9px;
border: 1px solid var(--line);
background: var(--card-2);
flex: none;
pointer-events: none;
}
.wall-cam-thumb[hidden] { display: none; }
.machine-title {
display: flex;
align-items: center;
@@ -1899,6 +1992,31 @@ body.desk-on main {
font-size: var(--t-sm);
}
.desk-facts b { color: var(--ink); font-weight: 650; }
.desk-tech-facts {
gap: 0.35rem;
}
.fact-chip {
display: inline-flex;
align-items: center;
gap: 0.3rem;
padding: 0.2rem 0.5rem;
border-radius: 99px;
border: 1px solid var(--line);
background: rgba(255, 255, 255, 0.03);
font-size: 0.72rem;
color: var(--muted);
max-width: 100%;
}
.fact-chip .ico { width: 0.85em; height: 0.85em; opacity: 0.75; flex: none; }
.fact-chip-label { color: var(--faint); }
.fact-chip b {
color: var(--ink);
font-weight: 650;
font-variant-numeric: tabular-nums;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.desk-foot {
display: flex;
flex-wrap: wrap;
@@ -2320,16 +2438,33 @@ article.machine.flash { animation: flash 2s var(--ease); }
.lib-tools {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
margin-bottom: 0.65rem;
align-items: center;
gap: 0.35rem;
margin-bottom: 0.55rem;
position: sticky;
top: var(--topbar-h);
z-index: 5;
background: linear-gradient(180deg, var(--card) 72%, transparent);
padding-bottom: 0.35rem;
padding-bottom: 0.3rem;
}
.lib-tools .search-wrap {
flex: 1 1 8rem;
min-width: 7rem;
max-width: 16rem;
}
.lib-tools input[type="search"] { flex: 1 1 auto; width: 100%; margin: 0; min-width: 0; }
.lib-tools select {
flex: 0 1 auto;
width: auto;
min-width: 6.5rem;
max-width: 9.5rem;
margin: 0;
padding: 0.35rem 0.5rem;
}
@media (min-width: 1100px) {
.lib-tools { flex-wrap: nowrap; }
.lib-tools .search-wrap { max-width: 12rem; }
}
.lib-tools input[type="search"] { flex: 1 1 12rem; margin: 0; }
.lib-tools select { flex: 0 1 11rem; width: auto; margin: 0; }
.lib-group {
font-size: var(--t-xs);
font-weight: 650;
@@ -2486,6 +2621,27 @@ label.button {
}
label.button:hover { background: rgba(255, 255, 255, 0.04); }
.page-head-side button { display: inline-flex; align-items: center; gap: 0.4rem; }
.proj-file-list {
display: grid;
gap: 0.35rem;
}
.proj-file, .proj-asset {
display: flex;
align-items: center;
gap: 0.55rem;
padding: 0.45rem 0.55rem;
border: 1px solid var(--line);
border-radius: var(--radius-sm);
background: rgba(255, 255, 255, 0.02);
min-width: 0;
text-decoration: none;
color: inherit;
}
.proj-file { flex-direction: column; align-items: flex-start; gap: 0.15rem; }
.proj-file:hover, .proj-asset:hover { border-color: var(--line-strong); }
.proj-asset a { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.proj-asset .tiny { flex: none; color: var(--muted); }
.lib-card { position: relative; transition: box-shadow 0.2s var(--ease); }
.lib-card.drop { box-shadow: 0 0 0 2px var(--accent), var(--shadow); }
.drop-hint { margin: 0.6rem 0 0; font-size: var(--t-xs); color: var(--faint); text-align: center; }
@@ -3300,6 +3456,37 @@ td .cell-file {
text-overflow: ellipsis;
white-space: nowrap;
}
.proto-table {
table-layout: fixed;
width: 100%;
}
.proto-table th:nth-child(1),
.proto-table td.proto-printer { width: 7.5rem; }
.proto-table th:nth-child(2),
.proto-table td.proto-file { width: auto; }
.proto-table th:nth-child(3) { width: 6.5rem; }
.proto-table th:nth-child(4),
.proto-table th:nth-child(5),
.proto-table th:nth-child(6) { width: 4.5rem; }
.proto-table th:nth-child(7) { width: 6.5rem; }
.proto-table th:nth-child(8),
.proto-table td.proto-spool { width: 10rem; }
.proto-table th:nth-child(9) { width: 5.5rem; }
.proto-table td.proto-file .cell-file {
max-width: 100%;
}
.proto-table td.proto-file .mono-badge {
margin-top: 0.15rem;
opacity: 0.85;
}
.proto-table td.proto-spool {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.proto-table td.proto-spool select {
max-width: 100%;
}
td.actions-cell {
white-space: nowrap;
text-align: right;