Custom View: native sticky header, one-line Excel-style header; fixes
- Custom View header now uses the browser's sticky positioning like the other tables, so it no longer lags or bounces while scrolling. Because a sideways-scrolling box prevents sticky headers, the table is clipped and shifted sideways by a scrollbar pinned to the bottom of the window (shown only when the columns are wider than the page; trackpad, shift+wheel and touch swipes drive it too) - Custom View header on one line like the other tables: drag grip, name, the combined sort/filter dropdown and copy icon (remove on hover) - Workbench stack text boxes size to their contents on load and when the page is shown, not only while typing - Demo sandbox waits for the worker's first sweep after a container restart instead of treating every device as unknown
This commit is contained in:
1 parent
b216ce43f2
commit
318c59e610
4 files changed
+114
-31
No files matched your search
+32
-7
@@ -32,15 +32,40 @@ table.xf-table thead tr.filter-row { display: none !important; }
|
||||
that rows show through; separated borders move with their cells */
|
||||
.master-table { border-collapse: separate; border-spacing: 0; }
|
||||
|
||||
/* Custom View fills the page like the other views. It still scrolls sideways when its
|
||||
columns are wider than the page; its header is pinned by layout.js (--pin-y) since a
|
||||
sideways-scrolling box can't hold a sticky header */
|
||||
/* Custom View fills the page like the other views, with a native sticky header (same
|
||||
as the other tables, so it can't lag or bounce). A sideways-scrolling box would stop
|
||||
the header sticking, so when the columns are wider than the page the table is
|
||||
clipped and scrolled sideways by layout.js through a scrollbar pinned to the bottom
|
||||
of the window (trackpad, shift+wheel and touch swipes work too) */
|
||||
#custom, #wrapper-custom { overflow: visible !important; }
|
||||
#scroll-custom { max-height: none !important; overflow-x: auto; overflow-y: hidden; }
|
||||
#table-custom thead th {
|
||||
position: relative !important; top: auto !important; z-index: 20;
|
||||
transform: translateY(var(--pin-y, 0px));
|
||||
#scroll-custom { max-height: none !important; overflow-x: clip !important; overflow-y: visible !important; }
|
||||
#table-custom thead th { position: sticky !important; top: var(--sticky-top, 112px) !important; z-index: 20; }
|
||||
.custom-hscroll {
|
||||
position: sticky; bottom: var(--dock-h, 40px); z-index: 15; height: 16px;
|
||||
overflow-x: auto; overflow-y: hidden;
|
||||
background: var(--bg-card); border-top: 1px solid var(--border-light); border-radius: 0 0 8px 8px;
|
||||
}
|
||||
.custom-hscroll > div { height: 1px; }
|
||||
|
||||
/* Custom View header on one line like the other tables: drag grip, name, then the
|
||||
Excel-style button (sort + filter) and copy icon; remove (x) appears on hover */
|
||||
#table-custom .custom-th .col-grip-row {
|
||||
position: absolute; left: 0; top: 0; bottom: 0; width: 18px; height: auto;
|
||||
border: 0; background: transparent;
|
||||
}
|
||||
#table-custom .custom-th .col-grip { color: rgba(255,255,255,0.45); }
|
||||
#table-custom .custom-th:hover .col-grip { color: rgba(255,255,255,0.9); }
|
||||
#table-custom .custom-th .col-grip svg { width: 12px; height: 12px; }
|
||||
#table-custom .custom-th .th-icons {
|
||||
position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
|
||||
padding: 0; gap: 5px; overflow: visible;
|
||||
}
|
||||
#table-custom .custom-th .th-icons .col-filter-btn,
|
||||
#table-custom .custom-th .th-icons .sort-icon-inline { display: none !important; }
|
||||
#table-custom .custom-th .th-icons .col-remove { order: 0; }
|
||||
#table-custom .custom-th .th-icons .xf-btn { order: 1; margin: 0; }
|
||||
#table-custom .custom-th .th-icons .col-copy { order: 2; }
|
||||
#table-custom .custom-th .col-label-row { padding: 9px 66px 9px 20px; }
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user