Files
obsidian-todo-tracker/styles.css
Brendan Chen a00b96231c
Some checks failed
Node.js build / build (22.x) (push) Has been cancelled
Node.js build / build (20.x) (push) Has been cancelled
Add focus activation, 3-zone drag nesting, and click-to-navigate
Implement remaining Round 3 enhancements:
- ArrowDown when panel unfocused activates it at first item (like Outline view)
- 3-zone drag-drop: top/bottom thirds insert above/below, middle third nests as child
- Click on todo text to focus it in editor (onClick callback)
- Dragging parent automatically moves nested children (stopPropagation fix)
- Cross-file move inserts todo below heading with blank line (addBlankLine param)
- Updated CLAUDE.md with sidebar view architecture documentation

Build: 85 tests pass, production build succeeds.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-20 10:17:27 -08:00

115 lines
2.0 KiB
CSS

/* Todo Tracker Styles */
.todo-tracker-container {
padding: 10px;
outline: none;
}
.todo-tracker-header {
font-weight: 600;
font-size: 14px;
padding-bottom: 10px;
border-bottom: 1px solid var(--background-modifier-border);
margin-bottom: 10px;
color: var(--text-muted);
}
.todo-tracker-empty {
color: var(--text-muted);
font-style: italic;
padding: 20px 0;
text-align: center;
}
/* Heading Groups */
.todo-tracker-group {
margin-bottom: 12px;
border-radius: 4px;
transition: background-color 0.15s ease;
}
.todo-tracker-group-heading {
font-weight: 600;
font-size: 13px;
color: var(--text-muted);
padding: 4px 4px 4px 0;
margin-bottom: 2px;
}
/* Todo Lists */
.todo-tracker-list {
list-style: none;
padding: 0;
margin: 0;
}
.todo-tracker-nested-list {
list-style: none;
padding-left: 20px;
margin: 0;
width: 100%;
}
/* Todo Items */
.todo-tracker-item {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
padding: 6px 4px;
border-radius: 4px;
cursor: grab;
transition: background-color 0.15s ease;
}
.todo-tracker-item:hover {
background-color: var(--background-modifier-hover);
}
.todo-tracker-item input[type="checkbox"] {
flex-shrink: 0;
cursor: pointer;
}
.todo-tracker-item-text {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.todo-tracker-item-completed {
text-decoration: line-through;
color: var(--text-muted);
}
/* Keyboard focus */
.todo-tracker-item-focused {
outline: 2px solid var(--interactive-accent);
outline-offset: -2px;
background-color: var(--background-modifier-hover);
}
/* Drag and drop */
.todo-tracker-item-dragging {
opacity: 0.4;
}
.todo-tracker-drop-above {
border-top: 2px solid var(--interactive-accent);
}
.todo-tracker-drop-below {
border-bottom: 2px solid var(--interactive-accent);
}
.todo-tracker-drop-nest {
outline: 2px solid var(--interactive-accent);
outline-offset: -2px;
background-color: var(--background-modifier-hover);
}
.todo-tracker-drag-over {
background-color: var(--background-modifier-hover);
}