fix: opaque sticky matrix column and square publish marker
Use solid row hover colors so the sticky student column does not show underlying cells while scrolling. Replace the circular checkbox marker with a square one and bump asset version to 36.
This commit is contained in:
@@ -41,6 +41,7 @@ body {
|
|||||||
--c-text-link-hover: #9d2b3c;
|
--c-text-link-hover: #9d2b3c;
|
||||||
--c-border: #e6e6e9;
|
--c-border: #e6e6e9;
|
||||||
--c-border-strong: #d4d4da;
|
--c-border-strong: #d4d4da;
|
||||||
|
--c-row-hover: #f4f4f5;
|
||||||
--c-accent: #7a2333;
|
--c-accent: #7a2333;
|
||||||
--c-accent-hover: #5f1b28;
|
--c-accent-hover: #5f1b28;
|
||||||
--c-accent-soft: #f7edee;
|
--c-accent-soft: #f7edee;
|
||||||
@@ -71,6 +72,7 @@ body {
|
|||||||
--c-text-link-hover: #f0b9c2;
|
--c-text-link-hover: #f0b9c2;
|
||||||
--c-border: #26272e;
|
--c-border: #26272e;
|
||||||
--c-border-strong: #34353d;
|
--c-border-strong: #34353d;
|
||||||
|
--c-row-hover: #202127;
|
||||||
--c-accent: #a64d5f;
|
--c-accent: #a64d5f;
|
||||||
--c-accent-hover: #b86070;
|
--c-accent-hover: #b86070;
|
||||||
--c-accent-soft: rgba(166, 77, 95, 0.16);
|
--c-accent-soft: rgba(166, 77, 95, 0.16);
|
||||||
@@ -428,7 +430,7 @@ code.code { padding: 0.125rem 0.5rem; border-radius: var(--radius-xs); font-fami
|
|||||||
/* Ячейка матрицы в стиле Б3: вариант и оценка — текстом, подстрока — сдача и защита с точкой */
|
/* Ячейка матрицы в стиле Б3: вариант и оценка — текстом, подстрока — сдача и защита с точкой */
|
||||||
.cell-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 0.375rem; }
|
.cell-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 0.375rem; }
|
||||||
.cell-main { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
|
.cell-main { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
|
||||||
/* Публикация в ячейке — «глаз»-точка: ○ скрыто, ◉ опубликовано (нативный checkbox под капотом) */
|
/* Публикация в ячейке — квадратный маркер: □ скрыто, ■ опубликовано (нативный checkbox под капотом) */
|
||||||
.pub-toggle {
|
.pub-toggle {
|
||||||
appearance: none; -webkit-appearance: none;
|
appearance: none; -webkit-appearance: none;
|
||||||
width: 1rem; height: 1rem; margin: 0; padding: 0; cursor: pointer;
|
width: 1rem; height: 1rem; margin: 0; padding: 0; cursor: pointer;
|
||||||
@@ -438,7 +440,7 @@ code.code { padding: 0.125rem 0.5rem; border-radius: var(--radius-xs); font-fami
|
|||||||
}
|
}
|
||||||
.pub-toggle:checked {
|
.pub-toggle:checked {
|
||||||
border-color: var(--c-accent);
|
border-color: var(--c-accent);
|
||||||
background: radial-gradient(circle, var(--c-accent) 0 42%, transparent 48%);
|
background: linear-gradient(var(--c-accent), var(--c-accent)) center / 0.55rem 0.55rem no-repeat;
|
||||||
}
|
}
|
||||||
.pub-toggle:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
|
.pub-toggle:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
|
||||||
.variant-btn {
|
.variant-btn {
|
||||||
@@ -536,8 +538,9 @@ dialog.dlg.dlg-lg .dlg-body { max-height: 88vh; min-height: 62vh; }
|
|||||||
background: var(--c-surface); white-space: nowrap;
|
background: var(--c-surface); white-space: nowrap;
|
||||||
}
|
}
|
||||||
.matrix td { vertical-align: top; padding: 1rem; }
|
.matrix td { vertical-align: top; padding: 1rem; }
|
||||||
.matrix tbody tr:hover td { background: rgba(19, 19, 22, 0.03); }
|
/* Непрозрачный фон обязателен: закреплённый столбец не должен просвечивать при прокрутке. */
|
||||||
[data-theme="dark"] .matrix tbody tr:hover td { background: rgba(232, 233, 236, 0.045); }
|
.matrix tbody tr:hover td { background: var(--c-row-hover); }
|
||||||
|
.matrix tbody tr:hover td.matrix-sticky { background: var(--c-row-hover); }
|
||||||
.matrix tbody tr:last-child td { border-bottom: none; }
|
.matrix tbody tr:last-child td { border-bottom: none; }
|
||||||
.matrix th.lab-col { min-width: 9.5rem; border-left: 1px solid var(--c-border); }
|
.matrix th.lab-col { min-width: 9.5rem; border-left: 1px solid var(--c-border); }
|
||||||
.matrix td.cell-lab { min-width: 9.5rem; border-left: 1px solid var(--c-border); }
|
.matrix td.cell-lab { min-width: 9.5rem; border-left: 1px solid var(--c-border); }
|
||||||
|
|||||||
@@ -345,7 +345,7 @@
|
|||||||
<div class="dlg-body" id="assign-modal-body"></div>
|
<div class="dlg-body" id="assign-modal-body"></div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script th:src="@{/js/admin-group.js(v='35')}" defer></script>
|
<script th:src="@{/js/admin-group.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
</dialog>
|
</dialog>
|
||||||
</th:block>
|
</th:block>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{/js/admin-lab.js(v='35')}" defer></script>
|
<script th:src="@{/js/admin-lab.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -13,22 +13,22 @@
|
|||||||
<noscript>
|
<noscript>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
</noscript>
|
</noscript>
|
||||||
<link rel="icon" type="image/svg+xml" th:href="@{/favicon.svg(v='35')}">
|
<link rel="icon" type="image/svg+xml" th:href="@{/favicon.svg(v='36')}">
|
||||||
<!-- v=35: сброс кэша стилей после изменения геометрии; при изменении css поднимать версию -->
|
<!-- v=35: сброс кэша стилей после изменения геометрии; при изменении css поднимать версию -->
|
||||||
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}">
|
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}">
|
||||||
<link rel="stylesheet" th:href="@{/css/bootstrap-icons.min.css}">
|
<link rel="stylesheet" th:href="@{/css/bootstrap-icons.min.css}">
|
||||||
<link rel="stylesheet" th:href="@{/css/app.css(v='35')}">
|
<link rel="stylesheet" th:href="@{/css/app.css(v='36')}">
|
||||||
<link id="hljs-light" rel="stylesheet" th:href="@{/css/hljs-github.css(v='35')}">
|
<link id="hljs-light" rel="stylesheet" th:href="@{/css/hljs-github.css(v='36')}">
|
||||||
<link id="hljs-dark" rel="stylesheet" th:href="@{/css/hljs-github-dark.css(v='35')}" disabled>
|
<link id="hljs-dark" rel="stylesheet" th:href="@{/css/hljs-github-dark.css(v='36')}" disabled>
|
||||||
<script th:src="@{/js/highlight.min.js(v='35')}" defer></script>
|
<script th:src="@{/js/highlight.min.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/table-scroll.js(v='35')}" defer></script>
|
<script th:src="@{/js/table-scroll.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/tablekit.js(v='35')}" defer></script>
|
<script th:src="@{/js/tablekit.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/bootstrap.bundle.min.js}" defer></script>
|
<script th:src="@{/js/bootstrap.bundle.min.js}" defer></script>
|
||||||
<script th:src="@{/js/theme-init.js(v='35')}"></script>
|
<script th:src="@{/js/theme-init.js(v='36')}"></script>
|
||||||
<script th:src="@{/js/app.js(v='35')}" defer></script>
|
<script th:src="@{/js/app.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/ui-state.js(v='35')}" defer></script>
|
<script th:src="@{/js/ui-state.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/md-content.js(v='35')}" defer></script>
|
<script th:src="@{/js/md-content.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/submit-guard.js(v='35')}" defer></script>
|
<script th:src="@{/js/submit-guard.js(v='36')}" defer></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="page d-flex flex-column min-vh-100">
|
<div class="page d-flex flex-column min-vh-100">
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script th:src="@{/js/mdeditor.js(v='35')}" defer></script>
|
<script th:src="@{/js/mdeditor.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script th:src="@{/js/content-sort.js(v='35')}" defer></script>
|
<script th:src="@{/js/content-sort.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -236,8 +236,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script th:src="@{/js/mdeditor.js(v='35')}" defer></script>
|
<script th:src="@{/js/mdeditor.js(v='36')}" defer></script>
|
||||||
<script th:src="@{/js/content-sort.js(v='35')}" defer></script>
|
<script th:src="@{/js/content-sort.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -143,7 +143,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script th:src="@{/js/content-sort.js(v='35')}" defer></script>
|
<script th:src="@{/js/content-sort.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -111,7 +111,7 @@
|
|||||||
<p class="text-sm text-muted">Ожидайте преподавателя с проверкой.</p>
|
<p class="text-sm text-muted">Ожидайте преподавателя с проверкой.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{/js/defense-timer.js(v='35')}" defer></script>
|
<script th:src="@{/js/defense-timer.js(v='36')}" defer></script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user