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.
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.
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 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.
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.
--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.
--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.
--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.
--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.
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.
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.
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.
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.
