Short answer: 5 MB per page, 10 seconds per fetch, 30 page loads a minute

Limits: sizes, times and counts

Recolor (recolor.page) limits a page to 5 MB of HTML and gives a site 10 seconds to answer; stylesheets may be 2 MB each and 8 MB together, fonts and masks 10 MB. Each address gets 30 page loads a minute, and a palette holds 2 to 10 colors.

Last updated

From src/worker/limits.ts, wrangler.jsonc, the app's store and the built engine, checked October 8, 2026
LimitValuePast the limit
HTML of a page from a web address5 MBNot loaded: too large
Uploaded or dropped file5 MB, .html or .htmNot loaded: too large
Time for a site to answer10 secondsNot loaded: took too long
Redirects followed5Not loaded
One stylesheet2 MB, 8 secondsLeft as a link, read per element
Stylesheets per page60, 8 MB in allThe rest left as links
Everything a page pulls in15 seconds in allThe rest left as links
Nested @import3 levelsDeeper imports left as links
Font or CSS mask through Recolor10 MB, 10 secondsThat font or mask is missing
Page loads per address30 a minuteRefused for a minute
Font and mask requests per address600 a minuteRefused for a minute
Prepared page in the cache60 secondsFetched again
Colors in a palette2 to 10Add and remove stop
Undo steps100The oldest step goes
Saved palettes, in this browser50The oldest goes
The engine script59.3 KB minified, 21.9 KB gzipBudget 80 KB

Page size and time

A page you load by address reaches Recolor through its Worker, which reads at most 5 MB of HTML. It counts the bytes as they arrive, so a page that declares a larger size is refused before it is read, and one that keeps sending stops at the limit. An uploaded or dropped file has the same ceiling of 5 MB; the app checks it before it sends anything. Past the limit the preview shows "The page is too large", with the line "Recolor loads pages and files up to 5 MB."

A site has 10 seconds to answer. If it is slower, the preview shows "The site took too long", with the line "It did not answer within 10 seconds. Try again, or try another page." Recolor follows up to 5 redirects, and checks every new address before it asks for it, as What Recolor stores and fetches explains. Every error message and what to do about it is on Loading a page.

Stylesheets, fonts and images

To read a page's colors, Recolor needs its CSS as text it may read, so the Worker fetches each stylesheet and puts it inline. One sheet may be 2 MB and take 8 seconds; a page may have 60 sheets and 8 MB of CSS in all, fetched within 15 seconds together. Imports inside a sheet are followed 3 levels deep.

A sheet past any of these stays a normal link. The page still looks right, but the engine cannot read that sheet's rules, so it repaints those elements one by one and their hover colors keep the original. The status line then names the unreadable sheets; How Recolor repaints a page has the details.

Fonts and CSS masks need a header that a sandboxed preview cannot get from other sites, so they pass through Recolor's asset route, up to 10 MB in 10 seconds each. Ordinary images, video and background images load straight from the site, with no limit from Recolor.

How many pages a minute

Each address gets 30 page loads a minute, counted over web addresses, uploads and samples together, and 600 font and mask requests a minute. Past it the preview shows "Too many pages in a short time", with the line "Wait a minute and try again." Pressing Space never counts: a new palette is computed in your browser and written into the page there.

The count runs on Cloudflare's rate limiting binding, which Cloudflare describes as permissive and eventually consistent, so it stops floods rather than the exact 31st load.

The same address with the same Scripts setting comes from a cache for 60 seconds, which makes a reload or a Retry fast. Uploaded files are never cached. Which sites load at all, and why some do not, is on Which sites load.

Palette, history and saved palettes

A palette holds 2 to 10 colors and starts with 5. The + between two swatches adds one until there are 10; the x on a swatch removes one until there are 2. The palette lives in the address bar, in the format of the URL hash, so a link carries it.

Undo and redo keep 100 steps of new palettes, edits, reorders and overrides; locking a color is not a step. Saved palettes stay in this browser's local storage, 50 at most, newest first; saving a palette again moves it to the top.

The engine

The engine is the script Recolor puts into the previewed page to read and repaint its colors. It is 59.3 KB minified and 21.9 KB gzipped, against a budget of 80 KB. Most of it is the color code that parses every CSS color syntax. How long it takes to read a real site is in the table on Which sites load.

Common questions

Can Recolor load a page larger than 5 MB?

No. The Worker stops reading at 5 MB of HTML, and an upload is checked against the same 5 MB before it is sent. Stylesheets, images and fonts do not count towards it.

Does every new palette count towards the limit of 30 a minute?

No. Only page loads count. A new palette, an undo or a moved swatch is computed in your browser and written into the page there, with no request to Recolor.

Can a palette have more than 10 colors?

No. A palette has 2 to 10 colors, in the app and in a shared link; a link with more is ignored.

Are saved palettes kept on Recolor's server?

No. They stay in your browser's local storage, up to 50. Another browser or a cleared browser has none; a link keeps a palette anywhere.

Does Recolor cache the pages I load?

Yes, for 60 seconds: the same address with the same Scripts setting comes from Cloudflare's cache within that minute. Uploaded files are never cached.

Is there a size limit for images on the page?

No. Images, video and background images load straight from the site. Only fonts and CSS masks pass through Recolor, up to 10 MB each.

Sources