Personalization

Create your own theme.

Every theme in the app is a small file you can download, open in any text editor and change. There is no separate tool to install and nothing to sign up for — the app itself is where a theme is made.

← Back to themes and workspaces

Describe a theme, get a theme.

Coming soon · not part of the price

Telling the app "warmer, less blue, more contrast in the file list" and having it write the theme is on the roadmap. It is not charged for and it is not in the price below. Everything above works without it.

Take one apart.

Every theme in the gallery downloads as a file — a small zip holding the theme's colours, its stylesheet and its description. Open it, change the colours, upload it back. It appears in the gallery next to the shipped ones, in light and dark, and it is yours.

Start from one that already works.

Settings › Appearance has a "Start from" picker and a "Download example theme" button. You are editing a real theme from the first minute, not a blank file.

Upload it back as a package.

"Upload theme package (.zip)…" takes your edited zip, checks it, and adds it to the gallery. Fonts and images travel inside the package, so it looks the same on someone else's machine.

As deep as you like.

Change the colours and stop there, or go further and restyle the components themselves. The app knows which kind you uploaded and treats it accordingly.

The app checks the text on your colours against WCAG AA and tells you which pairs are too close together. It tells you; it does not stop you. Your theme, your call.

A theme is a file. Send it to whoever you like; they upload it the same way you did. There is no theme store, no account, no upload to us. You can keep up to twenty of your own themes at once.

What is inside the file.

A theme package is an ordinary .zip. Unzip it and there are three things in it, and sometimes a fourth.

theme.css — the theme itself

Every colour and measurement, written as plain CSS. Two blocks, one headed [data-theme="light"] and one [data-theme="dark"], so a theme is always both. The Windows package lists all of them with a comment beside each, which is why it is the one to start from.

theme.json — the label

The name on the card, a one-line description, an author and a version. This is the file to edit when you want your theme called something other than the one you started from.

preview.svg — the picture

The little window shown on the theme's card in the gallery. Leave it and your theme still works; replace it and the gallery shows yours.

assets/ — only if you need it

Fonts and images that should travel with the theme: .woff2, .ttf, .otf, .svg, .png, .webp. Up to 2 MB each and 8 MB in all. Nothing else may be in the package at all, which is why a theme from a stranger cannot carry anything that runs.

The lines you will actually change.

Each line in theme.css names one thing and gives it a value. Change the value and every part of the window that uses it follows — you never have to find the sidebar's colour in one place and the file list's in another.

The three surfaces

--surface-window is the window itself, --surface-content is the file list in the middle of it, and --surface-raised is anything sitting on top — menus, cards, dialogs. Moving these three a shade apart is what makes a theme feel deep rather than flat.

The text

--text-primary is file names and headings, --text-muted is the sizes and dates beside them, and --text-faint is the quietest label on screen. Three greys, in that order, and the whole window reads properly.

The accent

--accent is the selected row, the focus ring, the buttons and the links; --text-on-accent is what has to stay readable on top of it. This is the one line that changes a theme's character in a single edit.

The folders

--folder-glyph-color is the colour of every folder icon — the shipped Windows theme sets it to a classic manila #e8b923. Under it is a seven-colour palette for folders someone has coloured by hand.

There are more of them — the sidebar, the tag colours, the disk-usage chart, the syntax colours in the code preview, the icons in the context menu. In the shipped packages those sit at the end, commented out, because they take sensible values from the ones above until you say otherwise. Uncomment only the part you want to be different.

Recolour it, or reshape it.

A theme comes in two depths, and you do not pick between them in a dialog: the app works out which one you made from what you actually changed.

Recolour

Change colours and stop there. That is most themes, it is the fastest thing to do well, and it is the sensible place to start.

Reshape

Go further and the corner radii, the border width, the spacing, the type sizes, the sidebar's width and the title bar's height are yours as well. That is the difference between a squared-off Explorer feel and a rounder, roomier Finder one — and the two shipped themes of those names are built exactly that way, so you can read how it was done before doing it yourself.

What happens when you upload it.

Settings › Appearance › "Upload theme package (.zip)…". The app reads the package before it saves anything, and it is strict in one direction and relaxed in the other.

Strict about what a theme may contain

A theme sets colours and measurements, and nothing else. A name it does not know, an import, a url() pointing anywhere, an !important, anything that could fetch or run something — the upload is refused, it tells you exactly what it objected to, and nothing is saved. A theme cannot phone home, because there is no way to write one that does.

Relaxed about your taste

It checks your text against its background — WCAG AA, in light and in dark — and when a pair is too close together it saves the theme and tells you which pairs and by how much: "Saved, but these pairs are below WCAG AA". A warning, not a refusal. Where you changed one colour of a pair and left the other as it came, it says nothing: it only compares two colours you gave it yourself.

Your theme then appears in the Custom themes tab beside the shipped ones, in light and dark, ready to pick. You can keep twenty of your own at a time. There is no rename: change the name in theme.json and upload it again.

And it stays a file. Send it to whoever you like and they upload it the way you did — no theme store, no account, nothing uploaded to us. All 62 shipped themes download as packages too, so any one of them is a starting point.