Color contrast checking does not require a server. The WCAG 2.2 contrast formula is a mathematical calculation that any browser can perform in milliseconds using pure JavaScript. Yet many popular contrast checkers send your color values to their servers — sometimes for processing, sometimes for analytics, sometimes without disclosing it clearly. If you are working with unreleased brand colors, proprietary design tokens, or confidential client mockups, a no-upload contrast checker is the safer choice.

Why does a contrast checker even need a server?

In most cases, it does not. The WCAG relative luminance formula is public, well-documented, and trivial to implement in JavaScript. A contrast checker that requires a server call to compute a ratio is either using server-side rendering for convenience, logging queries for analytics, or was built before client-side JavaScript was powerful enough.

Today, a modern browser can compute contrast ratios, generate color suggestions, and render a live preview without making a single network request. Any tool that still uploads color data to a server is doing so by choice, not by necessity.

What "no upload" means in practice

When a contrast checker runs entirely in your browser, the following is true:

To verify that Flowfiles sends no data: open DevTools (F12), go to the Network tab, filter by XHR/Fetch, then pick any color. The request log will remain empty.

When privacy matters for contrast checking

For personal projects or public brand colors, privacy is rarely a concern. But in professional contexts, color values can be sensitive:

None of these scenarios require a paranoid approach — but choosing a no-upload tool by default eliminates the risk category entirely.

How the local calculation works

The WCAG 2.2 contrast formula takes two hex color values and computes their relative luminance. Each sRGB channel (R, G, B) is linearized using a gamma correction curve, then weighted and summed as L = 0.2126R + 0.7152G + 0.0722B. The contrast ratio is then (L_lighter + 0.05) / (L_darker + 0.05). This arithmetic involves no lookup tables, no model inference, and no data that needs to leave your machine. It is, by definition, a local operation.

Flowfiles implements this formula entirely in a small JavaScript file that runs client-side. The source is straightforward and verifiable. No external library, no telemetry, no external dependency at runtime.

Offline use cases for contrast checking

Beyond privacy, a no-upload contrast checker is useful in environments with restricted or no internet access: corporate intranets, air-gapped workstations, design reviews on planes or trains, or simply when working in a network-constrained environment. Loading the Flowfiles contrast checker page once caches the resources, and subsequent checks work offline.