Skip to content

Mobile UX polish: time refs, planner window and mascot - #47

Merged
ReinaldoAssis merged 1 commit into
mainfrom
feat/mobile-ux-polish
Oct 22, 2026
Merged

ReinaldoAssis merged 1 commit into
mainfrom
feat/mobile-ux-polish

Conversation

@ReinaldoAssis

Copy link
Copy Markdown
Owner

Why

Folow-up on the Android beta handoff: a batch of UX fixes found while testing the mobile build, plus the mascot selector and the i18n copy rule.

What changed

  • Note time references
    • Adjacent same-category blocks collapse into one bubble entry (13:00-13:30 + 13:30-14:00 → 13:00-14:00).
    • The toolbar clock inserts at the last known caret without focusing the textarea, so the virtual keyboard no longer covers the picker.
    • The chip around tempo no longer renders the inline-code pill; its text is not selectable and a 350 ms hold reveals the block (tap still toggles).
  • Timeline bubble
    • ~92% opaque background (was 72%) to stay readable over colored blocks.
    • Pinning an open bubble uses a micro pulse + haptic instead of replaying the entrance animation and double sound/haptic.
  • Habits
    • Tapping the week card opens the date picker; day buttons still select a day and long press still opens the picker.
  • Time module
    • The range sheet now configures the default hour window (device-local preference, minimum 4 h). The calendar stays date-only; the grid renders only the window.
    • On mobile the duplicated "Time" heading is gone; range/summary plus a compact totals chip lead the category row.
  • Settings
    • Atlas/Gato/Ghost mascot selector, default Atlas. Changing it requires Atlas Pro on mobile (free opens the paywall); Atlas is text-only until the art exists.
  • Docs
    • New AGENTS.md rule: every UI string lands in messages/pt-BR.json and messages/en.json in the same commit.
    • DESIGN.md and ANIM-NOTE-BUBBLE.md updated with the new behaviour.

Verification

  • npm run check
  • npm test (273)
  • npm run build
  • npm run csp:check (23/23)

Pending manual check on device: keyboard behaviour on Android, hold gesture on the chip, and the mascot row at narrow widths.

- Merge adjacent same-category blocks in note references so a
  13:00-14:00 entry reads once, not as two 30-minute rows.
- Insert time references without calling focus(): on mobile the virtual
  keyboard no longer covers the picker, and the caret is preserved (or the
  reference is appended when the editor was never focused).
- Make the timeline bubble ~92% opaque so text stays readable over colored
  blocks; pinning an open bubble now uses a micro pulse + haptic instead of
  replaying the entrance animation and double feedback.
- Strip the inline-code pill around `tempo` chips, disable text selection and
  add a 350 ms hold that reveals the linked block without selecting text.
- Open the habit date picker by tapping the week card (day buttons still
  select a single day) and keep the long press working.
- Add a configurable default hour window (device-local preference) to the
  time range sheet; the calendar stays date-only and the grid renders just
  the chosen window.
- On mobile, drop the duplicated "Time" heading and move range/summary plus a
  compact totals chip to the start of the category row.
- Add the Atlas/Gato/Ghost mascot selector (default Atlas, changes gated to
  Atlas Pro on mobile) and record the i18n copy rule in AGENTS.md.
@ReinaldoAssis
ReinaldoAssis merged commit fd24f32 into main Oct 22, 2026
4 checks passed
@ReinaldoAssis
ReinaldoAssis deleted the feat/mobile-ux-polish branch October 22, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant