82 lines
2.9 KiB
CSS
82 lines
2.9 KiB
CSS
/* ═══════════════════════════════════════════════════════════════════
|
||
keyboard-additions.css
|
||
Добавить в конец основного CSS файла или подключить отдельно:
|
||
<link rel="stylesheet" href="/css/keyboard-additions.css">
|
||
═══════════════════════════════════════════════════════════════════ */
|
||
|
||
/* ── Курсор клавиатурной навигации ────────────────────────────────── */
|
||
.tasks-table tbody tr.kb-cursor {
|
||
outline: 2px solid var(--accent, #5b7fff);
|
||
outline-offset: -2px;
|
||
background-color: color-mix(in srgb, var(--accent, #5b7fff) 8%, transparent);
|
||
/* Мягкий переход при перемещении стрелками */
|
||
transition: outline 0.1s ease, background-color 0.1s ease;
|
||
}
|
||
|
||
/* Если строка одновременно является active-row (открытое меню) — усиливаем */
|
||
.tasks-table tbody tr.kb-cursor.active-row {
|
||
outline: 2px solid var(--accent, #5b7fff);
|
||
outline-offset: -2px;
|
||
}
|
||
|
||
/* ── Мигание кнопки статуса при нажатии 1–6 ──────────────────────── */
|
||
@keyframes kb-flash-anim {
|
||
0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.8); transform: scale(1); }
|
||
40% { box-shadow: 0 0 0 6px rgba(255, 255, 255, 0); transform: scale(1.06); }
|
||
100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); transform: scale(1); }
|
||
}
|
||
|
||
.mark-btn.kb-flash {
|
||
animation: kb-flash-anim 0.4s ease forwards;
|
||
}
|
||
|
||
/* ── Подсказка по шорткатам (опционально, показывать по ? или в футере) ── */
|
||
.kb-help-overlay {
|
||
position: fixed;
|
||
inset: 0;
|
||
background: rgba(0,0,0,0.55);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
z-index: 9999;
|
||
}
|
||
|
||
.kb-help-box {
|
||
background: var(--bg2, #1e1e2e);
|
||
border: 1px solid var(--border, #2d2d3e);
|
||
border-radius: 12px;
|
||
padding: 28px 36px;
|
||
min-width: 380px;
|
||
color: var(--text, #e0e0e0);
|
||
}
|
||
|
||
.kb-help-box h3 {
|
||
margin: 0 0 18px;
|
||
font-size: 1rem;
|
||
color: var(--accent, #5b7fff);
|
||
letter-spacing: 0.05em;
|
||
}
|
||
|
||
.kb-help-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 5px 0;
|
||
border-bottom: 1px solid rgba(255,255,255,0.05);
|
||
font-size: 0.85rem;
|
||
gap: 20px;
|
||
}
|
||
|
||
.kb-help-row:last-child { border-bottom: none; }
|
||
|
||
.kb-key {
|
||
display: inline-block;
|
||
background: var(--bg3, #2a2a3d);
|
||
border: 1px solid var(--border, #3a3a4d);
|
||
border-radius: 5px;
|
||
padding: 2px 8px;
|
||
font-family: monospace;
|
||
font-size: 0.8rem;
|
||
color: var(--accent, #5b7fff);
|
||
white-space: nowrap;
|
||
}
|