Themes

Make your own theme.

A custom theme is one small .json file. Download a starter, change a few numbers, import it, and the app checks it for you. Your screenplay pages, PDFs and call sheets stay black on white.

What a custom theme is

A theme changes colours only. Yours is a text file with a name and five numbers: two for the greys, three for the accent. From those the app builds the whole look, in Light and in Dark. You can also set single colours yourself.

The app checks every theme before it keeps it. Text must be easy to read: at least 4.5 to 1 against its background. If a theme is only a little under, the app fixes it for you and tells you what it changed. A theme file cannot do anything except set colours.

Built-in themes

OpenFrame DefaultBlack and WhiteStudio AmberSlate NoirMidnight ReelTeal & OrangeCourier & CreamCutting RoomVelvet CurtainSunset BoulevardArctic FrameNeon ReelLocation ScoutDesert DuneColorist NeutralSilver ScreenHigh Contrast

These work in Light or Dark, or follow your system with System. High Contrast is for people who need stronger separation.

Windows screen: Appearance
Settings, Appearance, on Windows
Mac screen: Settings: Appearance
Settings, Appearance, on the Mac

Starter themes

Download one and import it as it is, or open it in any text editor and change the numbers to make it yours. Each preview shows Light on the left and Dark on the right.

Plum Premiere, Light and Dark

Plum Premiere

Plum-tinted neutrals with a bright rose accent for evening work.

Download plum-premiere.json

Import a theme

The same steps work for a starter, a file a friend sent, or one you made.

  1. Put the file on your computer. Save it in Downloads or another normal folder. A file in a network folder is refused.
  2. Open Settings. On Home, press the gear. Choose Appearance.
  3. Scroll to My Themes. Press Import Theme File… and pick the .json file. The app checks it as soon as you pick it. If you have the text instead of a file, press Paste Theme…, paste the whole text, and press Check Theme.
  4. Read the result. You see the theme in Light and in Dark. A green box says the theme is readable. A blue box lists the small readability changes the app made. A red box says the theme cannot be used and lists every problem. Nothing is saved yet.
  5. Choose what to do. Save and Apply saves it and uses it now. Save to My Themes keeps it for later. In the red case both buttons stay off: fix the file and import it again. After pasting, Edit the text takes you back to the text.
  6. Use it later. Under My Themes each theme has Apply, Rename, Export and Delete. Deleting the theme in use switches you back to OpenFrame Default.
Windows screen: Theme check ok
The result of the check on Windows
  1. Put the file on your Mac. Save it in Downloads or another normal folder.
  2. Open Settings. Press Command and comma, then choose Appearance.
  3. Scroll to My Themes. Press Import Theme File… and pick the .json file. The sheet checks it at once. If you have the text instead of a file, press Paste Theme…, paste the whole text, and press Check Theme.
  4. Read the result. The sheet shows the theme in Light and in Dark, then says it is readable, lists the small readability changes the app made, or says the theme cannot be used and lists every problem. Nothing is saved yet.
  5. Choose what to do. Save and Apply saves it and uses it now. Save to My Themes keeps it for later. If the theme cannot be used, both stay off: fix the file and import it again.
  6. Use it later. Under My Themes each theme has Apply, Rename, Export and Delete. Deleting the theme in use switches you back to OpenFrame Default.
Mac screen: Paste Theme, empty
The Paste Theme sheet on the Mac

Make your own

Start from a starter, or copy the example below. Open it in a plain text editor such as Notepad or TextEdit (in plain text mode), change it, and save it with the ending .json.

{
  "formatVersion": 1,
  "id": "my-first-theme",
  "name": "My First Theme",
  "description": "Quiet blue-grey with a warm orange accent.",
  "author": "Your name",
  "seeds": {
    "neutralHue": 250,
    "neutralTint": 0.02,
    "accentHue": 55,
    "accentChroma": 0.16,
    "accentLightnessNudge": 0
  }
}
  1. Give it its own id and name. id is for the app, name is what you see in My Themes. If you started from a starter, change both, or the app refuses the theme as a copy.
  2. Change the numbers. Move accentHue to change the colour of buttons, then accentChroma to make it calmer or livelier. Move neutralHue and neutralTint to colour the greys.
  3. Keep the shape. Every name and every piece of text sits in double quotes. Numbers have no quotes. Each line ends with a comma except the last line in a group. The file cannot hold notes, so do not add any.
  4. Import it and read the check. If the check finds a problem it says exactly what. The list under "If the check says no" explains each message.

Setting single colours

If the five numbers do not give the exact colour you want, add an overrides group after seeds, with a comma between them. Colours are written as #rrggbb, #rgb, or oklch(L% C H), where L is 0 to 100 with a percent sign, C is 0 to 0.4 and H is 0 to 360.

"overrides": {
  "light": { "bg": "#f7f4ee" },
  "dark": { "accent": "oklch(72% 0.15 55)" }
}

The readability check still applies to what you set, so the app may adjust button text or accent text, and refuses a colour that leaves text too faint.

Every field

These are all the settings a theme file can have. Anything else is refused.

The file

FieldNeededAllowedWhat it does
formatVersionNeededThe number 1Says which version of the file layout you are using.
idNeeded3 to 40 characters: lowercase letters a to z, digits and hyphensThe internal name. It must be new: not the id of a built-in theme, and not one already in My Themes.
nameNeededUp to 60 charactersThe name shown in My Themes. It must have a letter or digit and may not be the name of a built-in theme. The signs < and > are not allowed.
descriptionOptionalUp to 200 charactersOne line about the look.
authorOptionalUp to 80 charactersShown as "By ..." under the name.
seedsNeededA group with the five numbers belowThe five numbers that build the whole theme, in Light and in Dark.
overridesOptionalA group with "light" and "dark"Set single colours yourself. See the next table.

The five seeds

SeedNeededAllowedWhat it does
neutralHueNeeded0 to 360The colour tint of the greys: backgrounds, panels, lines. It is a position on the colour wheel. Roughly: 30 red, 70 orange, 100 yellow, 145 green, 200 teal, 260 blue, 310 purple, 350 pink.
neutralTintNeeded0 to 0.04How much of that colour the greys carry. 0 is pure grey, 0.01 is a hint, 0.03 is clearly tinted.
accentHueNeeded0 to 360The colour of buttons, selected items and links, on the same colour wheel.
accentChromaNeeded0 to 0.25How vivid the accent is. 0 is grey, 0.1 is calm, 0.17 is lively.
accentLightnessNudgeNeeded-12 to 16Makes the accent lighter (positive) or darker (negative). 0 keeps the standard lightness.

Colours you can set yourself

NameWhat it colours
bgThe window background
panelPanels, cards and dialogs
surface2Table headers and soft sections
surface3Raised areas and button hover
hoverA row you point at
wellSunken areas, such as preview panes
chromeThe status bar at the bottom
inkMain text
ink2Second-level text
mutedQuiet text and hints
lineThin borders
line2Stronger borders
sideThe left rail
side2A pointed-at item in the left rail
side-inkText in the left rail
side-mutQuiet text in the left rail
accentButtons and selected items
accent-inkText on accent buttons
accent-dAccent text, such as a selected item or a link
lg1First colour of the logo gradient
lg2Second colour of the logo gradient
lg3Third colour of the logo gradient

The whole file must stay under 10 KB. My Themes keeps up to 100 themes. The file must be saved as ordinary text.

If the check says no

When a theme cannot be used, nothing is saved and nothing changes. The red box lists every problem at once, using these words. Fix them all, then import the file again.

The file

What you seeWhat it meansHow to fix it
Copy the theme file to this computer first (for example to Downloads), then import it.The file sits in a network folder.Copy it to a normal folder on this computer and pick it again.
The theme file is larger than 10 KB. Theme files are small; this is not one.A theme file is a few hundred characters. The file you picked is far bigger, so it is probably not a theme.Check that you picked the right file. If it is yours, remove everything the list below does not describe.
This is not a theme file. OpenFrame theme files are small JSON documents.The text is not written in the file layout. A missing comma, a missing quote or a missing closing brace is the usual cause.Put a comma after every line except the last one in a group. Use straight double quotes. Start with { and end with }. Compare with the example above.
This is not a theme file. It must be one JSON object.The file starts with something other than {, for example a [ or a plain word.Make the first character { and the last character }.
The theme is empty.The file or the pasted text has nothing in it.Paste the whole text of the file, from { to }.
Please choose a theme file, not a folder or device.You picked something that is not a file.Pick the .json file itself.

The top of the file

What you seeWhat it meansHow to fix it
The file has a setting OpenFrame does not know: "colour".A name in the file is not one of the allowed names. Misspellings land here.Use only formatVersion, id, name, description, author, seeds and overrides, spelled exactly like that, capital letters included.
The file has no "formatVersion". / "formatVersion" must be 1.The version line is missing or has another value.Add "formatVersion": 1.
This theme was made for a newer version of OpenFrame. Update OpenFrame to use it.The file uses a number above 1.Update the app, or change the number to 1 if you wrote the file yourself.
The id "My Theme" is not allowed. Use 3 to 40 lowercase letters, digits or hyphens.The id has capitals, spaces or other signs, or the wrong length.Write it like my-first-theme.
The id "ember-dusk" belongs to a built-in theme. Change the id in the file.You used the id of a built-in theme.Pick another id.
A theme with the id "ember-dusk" is already in My Themes. Delete that theme first, or change the id in the file.You imported this id before.Change the id in the file, or delete the old one under My Themes.
"Studio Amber" is the name of a built-in theme. Give this theme its own name.The name matches a built-in theme. Capitals and extra spaces do not make it different.Change the name.
The theme name is longer than 60 characters. / The description is longer than 200 characters. / The author is longer than 80 characters.A text is too long.Shorten it.
The theme name contains characters that are not allowed (invisible or control characters, or < >).The text has hidden characters or the signs < or >.Retype the text by hand.
The theme name needs at least one letter or digit.The name is only signs.Add a word.
"name" must be text.The value is a number or a group, not words in double quotes.Put it in double quotes.

The seeds

What you seeWhat it meansHow to fix it
The file has no "seeds" object.The "seeds" group is missing.Add it with all five numbers.
Seed "accentHue" is missing.One of the five numbers is missing.Add it.
Seed "accentHue" must be between 0 and 360.The number is outside its range. The message names the range.Use a number inside the range from the table above.
Seed "accentHue" must be a number.The value is in quotes or is words.Remove the quotes: 250, not "250".
"seeds" has a value OpenFrame does not know: "tint".A seed name is misspelled or extra.Use only the five names from the table.

The overrides

What you seeWhat it meansHow to fix it
"overrides" must be an object with "light" and "dark". / "overrides" may only have "light" and "dark", not "night".The group has the wrong shape or an extra name.Use only "light" and "dark", each holding colours.
"overrides.light" must be an object. / "overrides.light" has too many entries.A mode holds the wrong thing, or more entries than there are colours to set.Put one colour per name, inside curly braces.
"sidebar" cannot be changed by a theme file. Allowed: bg, panel, ...The colour name is not one of the allowed names. The message lists them.Use a name from the colour table.
The colour for "ink" (light) is not allowed. Use #rrggbb or oklch(L% C H).The colour is not written in one of the two accepted ways, or a number is out of range.Write #1b1b1f, #fff, or oklch(24% 0.02 260). The first number is 0 to 100 with a percent sign, the second 0 to 0.4, the third 0 to 360.

Readability and saving

What you seeWhat it meansHow to fix it
Light mode: Muted text on panels is too hard to read (3.20 to 1; at least 4.5 to 1 is needed).After the app's own small corrections, this text is still too faint against its background. The theme is not saved.Make the text colour darker or the background lighter (or the other way round in Dark). Change the colour that the message names, or the seeds, and check again.
My Themes is full (100 themes). Delete a theme first. Nothing was changed.My Themes keeps up to 100 themes.Delete one you no longer use.
The theme file changed after it was checked. Check it again. Nothing was changed.You edited the file while the result was open.Close the result and import the file again.

Changes the app makes for you

These are not errors. A blue box lists them when a theme is a little under 4.5 to 1. You can save the theme as it is. Examples:

  • Light mode: button text was set to white so it stays readable.
  • Light mode: the accent colour was made darker by 2 points so button text stays readable.
  • Dark mode: selected and accent text were darkened toward the text colour so they stay readable.

Share a theme

A theme is a file, so sharing it is sending a file. There is no account and no upload.

  1. Open Settings, Appearance, and find the theme under My Themes.
  2. Press Export on its row. The suggested file name is the theme name.
  3. Choose a folder and save. You get a small .json file.
  1. Open Settings, Appearance, and find the theme under My Themes.
  2. Press Export on its row, or choose the theme and press Export Selected Theme… at the bottom of the page.
  3. Choose a folder and save. You get a small .json file.

Send the .json file by email or chat, or put it in a shared folder. The other person imports it with the steps above. Their app checks it again, so a damaged or edited file cannot slip through. Put your name in author if you want credit, and keep a copy: deleting a theme from My Themes cannot be undone.

Ready when you are

Try it free for 7 days. Pay once if you keep it.

One app for the whole film, on your own computer. One payment, no subscription.