feat: universal reorder grip handles and compact UI density

- Add generic move_in_order() to BaseRepository for reorder support
- Add reusable reorder_arrows.html partial with grip dot handles
- Add reorder routes to all 9 list routers (tasks, notes, links, contacts, meetings, decisions, appointments, lists, focus)
- Compact row padding (6px 12px, gap 8px) on .list-row and .focus-item
- Reduce font size to 0.80rem on row titles, sidebar nav, domain tree

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 01:45:02 +00:00
parent 27e07fefe1
commit 1628a4a748
22 changed files with 300 additions and 8 deletions

View File

@@ -152,11 +152,11 @@ a:hover { color: var(--accent-hover); }
.nav-item {
display: flex;
align-items: center;
font-size: 0.80rem;
gap: 8px;
padding: 7px 10px;
border-radius: var(--radius-sm);
color: var(--text-secondary);
font-size: 0.92rem;
font-weight: 500;
cursor: pointer;
transition: all var(--transition);
@@ -201,7 +201,7 @@ a:hover { color: var(--accent-hover); }
align-items: center;
gap: 6px;
padding: 6px 10px;
font-size: 0.85rem;
font-size: 0.80rem;
font-weight: 600;
color: var(--text);
cursor: pointer;
@@ -233,7 +233,7 @@ a:hover { color: var(--accent-hover); }
.project-link {
display: block;
padding: 4px 10px 4px 18px;
font-size: 0.85rem;
font-size: 0.80rem;
color: var(--text-secondary);
border-radius: var(--radius-sm);
white-space: nowrap;
@@ -401,8 +401,8 @@ a:hover { color: var(--accent-hover); }
.list-row {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 12px;
gap: 8px;
padding: 6px 12px;
border-bottom: 1px solid var(--border);
transition: background var(--transition);
}
@@ -466,6 +466,7 @@ a:hover { color: var(--accent-hover); }
.row-title {
flex: 1;
font-size: 0.80rem;
font-weight: 500;
min-width: 0;
overflow: hidden;
@@ -815,8 +816,8 @@ a:hover { color: var(--accent-hover); }
.focus-item {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 16px;
gap: 8px;
padding: 6px 12px;
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
@@ -828,7 +829,7 @@ a:hover { color: var(--accent-hover); }
.focus-item.completed { opacity: 0.6; }
.focus-item.completed .focus-title { text-decoration: line-through; }
.focus-title { flex: 1; font-weight: 500; }
.focus-title { flex: 1; font-size: 0.80rem; font-weight: 500; }
.focus-meta { font-size: 0.78rem; color: var(--muted); }
/* ---- Alerts ---- */
@@ -1108,6 +1109,35 @@ a:hover { color: var(--accent-hover); }
transition: width 0.3s;
}
/* ---- Reorder Grip Handle ---- */
.reorder-grip {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 0;
margin-right: 4px;
opacity: 0.3;
transition: opacity 0.15s;
flex-shrink: 0;
}
.reorder-grip:hover { opacity: 0.9; }
.reorder-grip form { display: block; margin: 0; padding: 0; line-height: 0; }
.grip-btn {
display: block;
background: none;
border: none;
color: var(--muted);
cursor: pointer;
font-size: 10px;
width: 12px;
height: 10px;
padding: 0;
line-height: 10px;
transition: color 0.15s;
text-align: center;
}
.grip-btn:hover { color: var(--accent); }
/* ---- Scrollbar ---- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }