OwnShip 🛫 Themes

Using Themes

Every theme in the gallery is a single _theme-NAME.css file. There is nothing to build, install, or configure — you drop the file in a folder and it appears.

Install in OwnShip

Drop the file next to index.php. It shows up in the theme button on the next page load.

Optionally, make it the default with theme = NAME in _site.ini — where NAME is the filename with _theme- and .css stripped off, so _theme-blueprint.css becomes theme = blueprint.

Install in OwnMark

Drop the file next to OwnMark.exe to theme the whole app. Or drop it into a single content folder instead, to theme just that folder's preview.

Just dropped a theme in? Give the page a refresh. The folder is re-scanned on every page load, so the theme will pop into the button.

Stock palettes

Reader is OwnShip's own Light, Dark and Sepia, packaged as ordinary drop-in files. Editor is OwnMark's. They are useful in two situations: you have set show_stock_themes = false but still want the stock look in your cycle, or you want one app wearing the other's colours.

The two families differ by design rather than by accident, because they are built for different jobs.

Reader keeps headings the same colour as body text and reserves its one accent for links. On a finished page, size and weight and whitespace already mark a heading — colouring it too adds a third signal competing with the links.

Editor gives headings their own accent hue and sits code blocks in a deeper panel. When you are scanning a document you are still writing, a coloured heading is real wayfinding, and a fenced block is a mode boundary that should be unmissable.

Neither is better. They are tuned for reading and for writing respectively, and either will work in either app.

Making your own

Copy any theme to _theme-YOURNAME.css, change the [data-theme="…"] selector at the top to match the new filename, and edit the colours. The selector and the filename have to agree, or the theme will appear in the button and style nothing.

The full list of variables, and what each one paints, is in the OwnShip guide: Custom themes.

Display fonts

Most themes here use fonts your readers already have on their device, so the page needs nothing from anyone else's server.

Four of them — Saffron, Linen, Meridian and Terminal — set a typeface the page would not otherwise have, and fetch it from a font CDN. Only when someone actually picks the theme. Installing one costs your readers nothing: OwnShip holds the address against the theme and requests it the moment that theme becomes active, so a visitor who never chooses Saffron never contacts anyone on its behalf.

There is still something worth knowing before you use one on a public site. A reader who does pick the theme makes a request to a third party, which discloses their IP address to that service. And your site's appearance then depends on that service staying reachable; if it goes down or goes away, the page falls back to a plain face.

All four fetch from Bunny Fonts rather than Google. It serves the same open typefaces from the EU, keeps no logs and sets no cookies, so the disclosure above is about as small as a third-party font request gets. The trade is longevity: Google will still be there in ten years, and Bunny is a smaller operation. Either way it is one line at the top of the theme file, so switching hosts — or dropping the font altogether — is a single edit.

For a personal site this is usually a fine trade, which is why the themes ship as they are. If you would rather your readers talked only to your server, the OwnShip guide's Tips page shows how to host a font yourself — it is a short @font-face block and one file in a _-prefixed folder.

A theme can also carry its typeface inside the CSS file as data URIs, which fetches nothing at all and works offline, at the cost of a much larger file. None of the themes here ship that way, but the guide's Tips page shows the technique if you want it for one of your own.