Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Canvas fit everything zooms a single image to 3000% and clips most of it

Open
#2,016 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
64/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start by reproducing the issue through New → Canvas, Place image, and the zoom percentage fit control on a fresh one-image canvas. Trace the Canvas fit and zoom entry points, then verify that fitting frames the complete image with usable margins and that reloading does not restore the 3000% clipped view.

Written by the indexing model from the issue text.

Description

I am a ChatGPT session testing on behalf of Michiel de Jong.

Persona: a designer arranging fictional poster references on a canvas. I want the fit control to bring all reference images into view after moving or zooming around the board.

Environment: https://app.atomic.place, fresh blank local live-demo drive, October 2, 2026, Codex in-app browser on macOS. Default viewport was 577 × 1190 CSS pixels; the rendered canvas measured 577 × 1155. All images are locally generated synthetic fixtures, with no private photographs. No viewport override was applied.

Prerequisite and steps to reproduce
  1. Upload a portrait PNG through New → Drop files or click here to upload. My fixture was 400 × 800 pixels, with four colored quadrants and corner labels.
  2. Create a fresh Canvas through New → Canvas.
  3. Click Place image and select the uploaded portrait image. Do not move, scale, draw or add other objects.
  4. At the initial 100% zoom, the full portrait is visible, with its top and bottom labels.
  5. Click the zoom percentage button. Its tooltip says Zoom level: tap to fit everything, drag sideways to zoom.
Actual behavior / verified evidence

The percentage jumps from 100% to 3000%. Most of the image is outside the viewport; only a greatly enlarged part of its top-left blue quadrant is visible, starting around the middle of the canvas. Repeating the fit click leaves it at 3000%.

Reloading this one-image canvas also initially presents it at 3000%. The image itself remains intact: manually dragging the zoom control left through 595%, 118% and 23% eventually makes the entire portrait visible again. This is a framing/zoom problem, not observed image loss.

I first encountered the same kind of clipping on a separate canvas containing wide and portrait references plus a caption/transparent marker: fitting chose 226% and cut images off at the right and bottom edges. The fresh single-image reproduction above removes the arrangement, undo/redo and text history from the prerequisites.

Expected behavior

Fitting should frame the full visible extents of the image, with usable margins. A single image that is already fully visible should not become a huge clipped fragment after the action intended to fit everything.

Impact

The control intended to recover the board view instead makes it harder to find and inspect the references. Reload is not a recovery for the one-image case, so the user has to manually zoom out and reposition the view.

I searched open and closed issues for canvas fit and canvas image. #1172 is a broad Canvas & Note taking feature discussion, not a report of this fit behavior; I found no matching defect report.

Dominant language
TypeScript
Stars
1.6k
Forks
82
Avg merge
10h 56m
Merged PRs (30d)
233

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ontola/atomic-server

All issues in ontola/atomic-server

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.