diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-01-12 14:28:50 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-01-12 14:28:50 -1000 |
| commit | 06c7485a7d05de86f9898e388161e8d932d5f3e6 (patch) | |
| tree | 376083a75278c9758f53c0062742062dedb75633 /web/templates/partials/todoist-tasks.html | |
| parent | 9ef5b7f37883f846f105da9dc5d2ba1415e594e3 (diff) | |
Modernize frontend with tabs, HTMX, and Tailwind build pipeline
Complete UI overhaul implementing modern design patterns with HTMX for
dynamic updates, proper Tailwind build pipeline, and improved UX.
Build Pipeline:
- Add npm + PostCSS + Tailwind CSS configuration
- Custom design system with brand colors
- Compiled CSS: 27KB (vs 3MB CDN), 99% reduction
- Makefile for unified build commands
- Inter font for improved typography
Tab Interface:
- Separate Tasks tab from Notes tab using HTMX
- Partial page updates without full refreshes
- Tab state management with proper refresh handling
- New endpoints: /tabs/tasks, /tabs/notes, /tabs/refresh
Template Architecture:
- Modular partials system (7 reusable components)
- Cleaner separation of concerns
Empty Board Management:
- Active boards in main 3-column grid
- Empty boards in collapsible section
- Reduces visual clutter
Visual Design Enhancements:
- Inter font, brand color accents
- Improved typography hierarchy and spacing
- Enhanced card styling with hover effects
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'web/templates/partials/todoist-tasks.html')
| -rw-r--r-- | web/templates/partials/todoist-tasks.html | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/web/templates/partials/todoist-tasks.html b/web/templates/partials/todoist-tasks.html new file mode 100644 index 0000000..7595ac7 --- /dev/null +++ b/web/templates/partials/todoist-tasks.html @@ -0,0 +1,58 @@ +{{define "todoist-tasks"}} +<section class="card"> + <!-- Section Header with Brand Color --> + <div class="flex items-center gap-3 mb-6"> + <div class="w-1 h-8 bg-todoist rounded"></div> + <h2 class="text-2xl font-bold text-gray-900">Todoist Tasks</h2> + </div> + + {{if .Tasks}} + <div class="space-y-3"> + {{range .Tasks}} + <div class="task-item"> + <input type="checkbox" {{if .Completed}}checked{{end}} + class="mt-1 h-5 w-5 text-todoist rounded border-gray-300" disabled> + <div class="flex-1"> + <p class="font-medium text-gray-900 {{if .Completed}}line-through text-gray-500{{end}}"> + {{.Content}} + </p> + {{if .Description}} + <p class="text-sm text-gray-600 mt-1">{{.Description}}</p> + {{end}} + <div class="flex flex-wrap gap-2 mt-2"> + {{if .ProjectName}} + <span class="badge bg-gray-100 text-gray-700">{{.ProjectName}}</span> + {{end}} + {{if .DueDate}} + <span class="badge bg-yellow-100 text-yellow-800"> + Due: {{.DueDate.Format "Jan 2"}} + </span> + {{end}} + {{range .Labels}} + <span class="badge bg-blue-100 text-blue-800">{{.}}</span> + {{end}} + </div> + </div> + {{if .URL}} + <a href="{{.URL}}" target="_blank" class="text-todoist hover:text-todoist/80 transition-colors"> + <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path> + </svg> + </a> + {{end}} + </div> + {{end}} + </div> + {{else}} + <div class="text-center py-16"> + <svg class="mx-auto h-12 w-12 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <h3 class="mt-4 text-lg font-medium text-gray-900">No tasks found</h3> + <p class="mt-2 text-sm text-gray-500"> + All tasks completed or no tasks available. + </p> + </div> + {{end}} +</section> +{{end}} |
