10 Commits

Author SHA1 Message Date
Yuyao Huang
9c1d45506a feat: replace status dropdown with one-click toggle buttons
Replace <select> in side panel with 4 toggle buttons (To Do / Doing /
Pending / Done). Clicking a button immediately sends the PATCH status
API call. Active button is highlighted with status-specific colors and
shadow. saveTask now only handles title/description changes.
2026-05-09 16:16:58 +08:00
Yuyao Huang
01ae9c964a fix: add position: relative to scroll-view for correct offsetTop
Without position: relative, .task-item offsetParent is the body element,
causing offsetTop to be measured from document root rather than the
scroll container. This makes scrollToTask calculate wrong scrollTop.
2026-05-09 16:06:06 +08:00
Yuyao Huang
f7afdf5c96 fix: stack modal buttons vertically on mobile for touch-friendly layout
On small screens (<=640px), modal action buttons now stack
vertically with full width instead of wrapping unpredictably.
This applies to all modals: note, task, goal.
2026-05-09 11:02:37 +08:00
Yuyao Huang
2345724535 fix: constrain goal selector width on mobile in tasks page
On small screens (<=480px), the goal selector dropdown could
overflow due to long option text. Match notes page behavior:
set select to width:100% with max-width:100%.
2026-05-09 11:00:51 +08:00
Yuyao Huang
bc590eb40a handle long titles with text-overflow ellipsis
- goals.css: goal-title truncates with ellipsis, goal-info
  gets min-width:0 (prevents flex overflow), mobile allows
  word-break wrap
- tasks.css: task-title truncates with ellipsis
- notes.css: note-card-title truncates with ellipsis
2026-05-09 10:57:09 +08:00
Yuyao Huang
91169f117b responsive layout fixes for mobile and desktop
- style.css: shrink nav-link padding, wrap nav-links on mobile,
  reduce container margin, responsive modal
- goals.css: stack goal cards vertically on small screens
- tasks.css: fix scroll-view height for mobile (50-55vh),
  side-panel width uses percentage (85%), add small-screen
  breakpoint at 480px
- notes.css: stack filters vertically on mobile, remove
  min-width constraints
2026-05-09 10:51:09 +08:00
Yuyao Huang
3c325bdb0f feat(notes): add notes feature with CRUD operations and UI
- Implement notes database schema and API endpoints
- Add notes page with filtering, search, and markdown support
- Persist selected goal and task preferences for better UX
- Include responsive design and mobile-friendly layout
2026-05-08 17:42:42 +08:00
Yuyao Huang
b060ba6bf8 Fix layout: move create button to header, increase description area height
- Move '+ Create Task' button into tasks-header to avoid breaking scroll/edit height alignment
- Increase edit-task description textarea from rows=3 to rows=6
- Remove unused .create-task-container and #create-task-btn CSS rules
2026-05-08 16:04:12 +08:00
Yuyao Huang
6b05ba3e2c Improve tasks UI: scroll-to-focus picker, landscape layout, height alignment
- Complete tasks now displayed in scroll view alongside unfinished tasks
- Priority order: completed tasks first (by finished_time desc), then unfinished (by order asc)
- Time picker-style scroll: wheel scroll snaps per task, center item gets visual focus
- Landscape mode (>=1024px): scroll view + edit panel side by side, panel always visible
- Portrait mode: edit panel slides in from right on tap
- Fixed flex layout so scroll view and edit panel align perfectly in height
2026-05-08 15:47:25 +08:00
Yuyao Huang
f3bffa40cd Initial commit: GoalsBreakDown web app
- Flask backend with TinyDB database
- Multi-user auth with bcrypt password hashing
- Goal CRUD with activation/deactivation and per-user limits
- Task CRUD with status tracking (todo/doing/pending/done)
- Focus rule: one doing task per goal
- Time picker-style scroll view with drag-and-drop reordering
- Admin panel for user management
- uv environment management
2026-05-08 12:41:19 +08:00