Between Hours

¹ Why + How

I built this as a personal tool to explore how motion supports reflection. It solves a few of my own NYC "transit" pain points:

  • Subway & Dead Zones: Designed for quick-entry journaling during NYC subway commutes without service.

  • Visual Tracking: Moving past a list of notes into a customized calendar that tracks habits weekly and monthly.

  • Motion-First: Using transition logic to make the act of "journaling" feel more intentional.

Vibe-coded with Cursor; design and motion systems were all built and implemented on my end.

² Screen Map

This is an overview of the screens and how they are mapped out with swipes in the app so the user can easily swipe right and left to flow easily between main functions of this app.

  • Main homescreen - swipe right: to journaling

  • Main homescreen - swipe left: to yearly overview

³ Iconography

Distributed icons with motions throughout the app to guide the user’s attention to the main function and features of the app.

  • Each icon carries a single responsibility:

    • Add button → invites exploration through motion rather than instruction

    • Writing icon → mimics analog journaling, reinforcing the act of writing

    • Analysis icon → surfaces repeated language patterns

  • Continued here:

    • Reflection star → rewards completion with a subtle state transition

    • Top words icon → guide to bring awareness to what the top 5 words are

⁴ Motion Tokens

Duration Tokens

For interactions and interfaces, these were the main durations set for this app.

  • fast: 200ms. Small UI transitions (toggles, popups)

  • standard: 300ms. Screen transitions

  • slow: 500ms. Large surface reveals (wasn’t used, but kept it as a part of the system )

⁵ Earlier exploration

Tamagotchi but make it journal?

I initially explored a character-driven interface with states like idle, transitioning, and listening.

It was visually engaging, and the Lottie implementation worked well, but it started to feel like unnecessary noise. The character took up a lot of space and competed with the primary task: writing.

So I removed it in favor of something quieter and more intentional, keeping the focus on the journaling experience.