Canvas fit everything zooms a single image to 3000% and clips most of it
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
- 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.
- Create a fresh Canvas through New → Canvas.
- Click Place image and select the uploaded portrait image. Do not move, scale, draw or add other objects.
- At the initial 100% zoom, the full portrait is visible, with its top and bottom labels.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ontola/atomic-server
-
view-client.js: relay rate-limit and conditional headers from the integration proxy to plugin framesPossibly taken @joepio claimed this 10 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ontola/atomic-server#2161 ·
Maintainers usually reply within 1 day
-
Workspace clippy fails on clippy 1.98 in desktop/src/menu.rs and desktop/src/vfs.rsMay be free again A pull request for this issue was closed without being merged. Openci
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ontola/atomic-server#1916 · 1 comment ·
Maintainers usually reply within 1 day
-
browser bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
ontola/atomic-server#1843 ·
Maintainers usually reply within 1 day
-
browser bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
ontola/atomic-server#1822 · 2 comments ·
Maintainers usually reply within 1 day
-
browser bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
ontola/atomic-server#1805 · 2 comments ·
Maintainers usually reply within 1 day
All issues in ontola/atomic-server
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
OpenPetsHQ/openpets#273 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
fritzprix/libr-agent#2161 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
blackboardsh/electrobun#581 ·
-
backlog-skill effort:xs frontend infra ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
LucasSantana-Dev/Lucky#2862 ·
Maintainers usually reply within 1 day