Skip to content

Zoom capabilities #27

@neoromantic

Description

@neoromantic

There is an expected feature of zooming, at least in day view: that would allow you to change how many hours is seen in a view.

I suggest to make something extra: seamless zooming from level of event, to years and years, in great spirit of Jef Raskin.

It would work basically as infinite zoomable canvas.

  • we still have separate views: day, week, month and year, meaning that at some thresholds the layout of calendar changes. For example, moving from week to a month is very distinctive: instead of left-to-right columns of days, we now get this grid-like approach.
  • the closest zoom level is a new Event View, which is not sidebar nor modal, it just takes the whole viewport
  • zooming out, you seamlessly get into Day View, where event is, as usual, a block on a day, represented by rows.
  • zooming out more, day view gets more and more hours in a viewport, at least up to 24
  • zooming out more, we get into week view, which starts as "just a bit more than 1 day" view and zooming out all up to 7 days, as usual
  • as you guessed, then we would get 2-3 week view, zooming out, all back to month view.

Notes:

  • in Event View, there are many possibilities, since we have all this extra space
  • in Day View, there might be some improvements, since it's never reasonable to have full-width event, it just sits there empty.
  • as for number of hours, it can be suggested that calendar should encompass whole 24h period, instead of normal "work hours". There is sleep tracking, there are people living on non-24h schedules, and even best of us tend to go to bed later on fridays. It doesn't make sense to constraint day/week view to 12 hours, instead 24h view should be preferred, with option to zoom in (both in horizontal and vertical axis)
  • transitions between various zoom levels should be seamless and implemented with React View Transitions and Motion.dev's capabilities.

Metadata

Metadata

Assignees

No one assigned

    Labels

    requestAn idea/request for a feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions