tintflare

an open-source edge worker for excalidraw svgs

Export once.
Re-theme forever.

Tinty, a hand-drawn chameleon on a branch, repainted to match this page.
one svg, wearing paper & ink

← → paint  ·  D dark  ·  O original

Your drawing never changes. Its colors do.

A bucket, an arrow to the edge, which repaints, and an arrow to your page.
  1. Draw once. Export from Excalidraw and drop the SVG into a private Backblaze B2 bucket. The first 10 GB are free.
  2. Paint at the edge. A Cloudflare Worker streams it through and swaps every color for your theme's, checked for contrast.
  3. Redesign anytime. Change one theme file and every diagram follows, old and new. No re-export.

Any tool. Your palette.

bring any svg

Excalidraw · draw.io · Mermaid · Figma · yours

If it writes its colors as hex, rgb(), hsl(), named colors or light-dark(), in attributes, inline styles or a <style> sheet, Tintflare can repaint it. HTML labels inside <foreignObject> too.

mix your own paint

// src/themes/mysite.ts
export const mysiteTheme = {
  light: {
    background: '#f7f3ec', // your page
    minContrast: { text: 4.5, stroke: 3, fill: 0 },
    overrides: {
      '#1e1e1e': '#1b1815', // excalidraw ink
      '#dae8fc': '#dbe2d5', // draw.io blue
    },
  },
  // …and its other mode
} satisfies ThemeCollection;

Your page's background, then a color for each one your drawings use. Register it, deploy, and ask for ?theme=mysite. Anything you don't list is matched for you and checked for contrast.

It's just an image.

<img src="https://cdn.you.dev/flow.svg?theme=rvfolio&tm=light" alt="…">

No client JavaScript, no second export. It works in RSS readers and with JavaScript off.

Self-host it in ten minutes →