Themes

Pyodios ships with nine built-in color themes and a full theme editor so you can match your coding environment to your taste. Themes control every visible color in the app, from syntax highlighting and the editor background to the toolbar chrome and semantic markers like errors, warnings, and selections.

Pyodios shares its theme format with webRoid (Android) and webRios (iOS/R). Custom themes you create or import in any of the three apps can be exported as JSON and used in the others because the palette structure is identical across platforms.

System Theme Mode

The app follows your device’s appearance by default. You can override this in Settings > Appearance > App Theme:

Option Behavior
System Follows your iOS device theme. If your phone is set to dark mode, Pyodios uses dark mode too.
Light Always uses light colors regardless of your system setting.
Dark Always uses dark colors regardless of your system setting.

The change takes effect immediately. No restart needed.

Built-in Themes

Pyodios includes nine themes organized by mode. Each theme defines colors for the editor, console, syntax highlighting, and the rest of the UI.

Light Themes

A clean, neutral palette with blue accents. The standard starting point.

Default Light theme applied to the editor

Ethan Schoonover’s warm, low-contrast palette designed for long reading sessions.

Solarized Light theme applied to the editor

Modeled on the GitHub code view. Familiar if you spend time reading code on the web.

GitHub Light theme applied to the editor

Dark Themes

A balanced dark palette with comfortable contrast and blue accents.

Default Dark theme applied to the editor

Rich purples and greens on a deep background. Popular across editors for its high readability.

Dracula theme applied to the editor

The dark counterpart to Solarized Light, with the same carefully tuned color relationships.

Solarized Dark theme applied to the editor

Vivid yellows, pinks, and greens inspired by the classic Sublime Text theme.

Monokai theme applied to the editor

Atom editor’s signature dark theme. Balanced, professional, easy to scan.

One Dark theme applied to the editor

Cool blue-gray tones from the Arctic Ice Studio palette. Calm and focused.

Nord theme applied to the editor

Choosing a Theme

You can assign a different theme for light mode and dark mode independently. This means you can use GitHub Light during the day and Dracula at night, and Pyodios will switch automatically when your system mode changes.

To choose a theme:

  1. Open Settings > Appearance
  2. Tap Light Theme or Dark Theme to open the theme picker
  3. Each row shows the theme name and six color swatches representing its key colors (background, keyword, function, string, number, comment)
  4. Tap a row to select it. The change applies immediately.

The six color swatches next to each theme name give you a quick preview without switching. Look for colors that match your preferences before tapping.

What a Theme Controls

Every theme defines colors across five categories:

Category What it styles
Syntax Keywords, functions, strings, numbers, comments, operators, and plain text in the code editor
UI Primary/secondary/tertiary backgrounds, text colors, accent color, separators, and selection highlight
Editor Editor background, current-line highlight, gutter background, and gutter text
Console Standard output, standard error, input echo, and prompt colors
Semantic Error (red), warning (orange), success (green), and info (blue) indicators

This means switching from Default Dark to Dracula doesn’t just change the syntax colors. It re-skins the entire app, including the tab bar, navigation chrome, and output panels.

Creating Custom Themes

If none of the built-in themes are quite right, you can create your own.

Opening the Theme Editor

  1. In Settings > Appearance, scroll to the Custom Themes section
  2. Tap New Theme to open the editor
  3. Optionally, choose a base theme to start from (clone its colors as a starting point)

Key Colors

The Theme Editor presents eight key colors that define the core look of your theme:

Color What it controls
Background Main editor and console background
Text Default text color
Accent UI highlights, buttons, active indicators
Keyword Python keywords like if, for, def, import
String Quoted strings
Comment Code comments
Number Numeric literals
Function Function names and calls

Tap any color swatch to open the color picker.

Live Preview

As you change colors, a live preview updates in real time. It shows a sample of syntax-highlighted Python code so you can see exactly how your theme will look before saving.

Advanced Colors

Expand the Advanced Colors section to fine-tune more than 20 additional colors, including:

  • Secondary and tertiary backgrounds
  • Gutter and line highlight colors
  • Console prompt, stdout, and stderr colors
  • Semantic colors (error, warning, success, info)
  • Selection and separator colors

Most of these are automatically derived from your key colors, so you only need to adjust them if you want precise control.

Starting from a base theme that is close to what you want saves a lot of time. If you like Monokai but want a different background color, start from Monokai and adjust just the background. All the other colors will already work well together.

Saving Your Theme

  1. Enter a name for your theme in the text field at the top
  2. Set whether the theme is for light or dark mode using the toggle
  3. Tap Save

Your custom theme appears in the appropriate theme picker (light or dark) and can be selected just like any built-in theme.

Editing and Deleting Custom Themes

Custom themes appear in the Custom Themes list under Settings > Appearance.

To edit a custom theme, tap it to reopen the Theme Editor with all its colors pre-filled.

To delete a custom theme, swipe left and tap Delete. If the deleted theme was your active theme, Pyodios falls back to the default theme for that mode.

Built-in themes cannot be edited or deleted. To modify a built-in theme, clone it by selecting it as a base when creating a new custom theme, then adjust the colors.

Importing and Exporting Themes

Importing Themes

Pyodios supports two theme file formats:

Format Source File extension
Pyodios native Themes exported from Pyodios, webRoid (Android), or webRios (iOS/R) .json
VS Code Export your VS Code color theme as JSON .json

To import a theme:

  1. In Settings > Appearance, scroll to the Custom Themes section
  2. Tap Import Theme
  3. Choose From File to pick a .json file from Files, iCloud Drive, or any connected storage; or From Clipboard if you copied the JSON text

The importer automatically detects the format and maps colors to Pyodios’s palette. If the imported theme doesn’t define every color, missing values are derived from the colors that are present.

If you have a favorite VS Code theme, you can bring it into Pyodios. The mapping handles most themes well, though highly customized themes may need minor adjustments in the Theme Editor after import.

Example Theme

Here is a sample custom theme in Pyodios’s native JSON format. You can copy this, paste it into a .json file, and import it to try the flow:

{
  "id": "autumn-harvest-example",
  "name": "Autumn Harvest",
  "isDark": true,
  "isBuiltIn": false,
  "palette": {
    "syntax": {
      "keyword": "#E07B39",
      "function": "#D4A843",
      "string": "#C4652A",
      "number": "#B8A44C",
      "comment": "#7A6B5D",
      "operator": "#CC8B55",
      "text": "#E8DCC8"
    },
    "ui": {
      "primaryBackground": "#1E1610",
      "secondaryBackground": "#2A2017",
      "tertiaryBackground": "#362A1E",
      "primaryText": "#E8DCC8",
      "secondaryText": "#9C8B78",
      "accent": "#E07B39",
      "separator": "#3D2F22",
      "selection": "#E07B3933"
    },
    "semantic": {
      "error": "#D94F3B",
      "warning": "#E0A030",
      "success": "#7BAF52",
      "info": "#5A9EC4"
    },
    "console": {
      "stdout": "#E8DCC8",
      "stderr": "#D94F3B",
      "input": "#D4A843",
      "prompt": "#E07B39"
    },
    "editor": {
      "background": "#1E1610",
      "lineHighlight": "#2A2017",
      "gutterBackground": "#171009",
      "gutterText": "#7A6B5D"
    }
  }
}

This JSON format is identical across Pyodios, webRoid (Android), and webRios (iOS/R). A theme exported from any one of them can be imported into the others.

Exporting Themes

To share a custom theme:

  1. Find it in the Custom Themes list
  2. Tap the share icon next to it
  3. Choose where to save or share the JSON file

Exported themes use Pyodios’s native JSON format and can be imported on another device or shared with other users.

Accent Color

Each theme defines its own accent color (for example, Dracula uses purple and Monokai uses pink). By default, the app uses the theme’s accent for all interactive elements: buttons, toggles, tab bar highlights, and the run button.

If you want to override the theme’s accent with a specific color, open Settings > Appearance and choose from the five options at the bottom:

  • Default (no override, uses the theme’s own accent)
  • Blue
  • Purple
  • Orange
  • Green
  • Red

The override applies on top of whatever theme you are using, so you can pair Dracula’s dark syntax with an orange accent for a distinctive look. To go back to the theme’s natural accent, deselect the override.

Font Size

The code font size affects the Editor, Console, and Notebook simultaneously. Quick presets are available:

Preset Size
Small 11 pt
Default 14 pt
Large 17 pt
Extra Large 20 pt

A fine-tuning slider lets you pick any value between 10 and 24 pt. The current size is shown next to the slider so you can dial in exactly what you want.

On iPad with an external display, you may want a larger font size than on iPhone. The setting syncs across devices if iCloud Sync is enabled, but you can override it per-device in Settings.

Themes in Action

Here is the Editor with the Dracula theme applied, showing how the vivid purples, greens, and cyans look on real Python code:

Plot Background

The Plot Background setting (in Settings > Appearance) controls the background color behind matplotlib and other plots:

Option Behavior
Match Theme Plots use your theme’s background color. Best for visual consistency.
White Plots always render on a white background, regardless of your theme. Matches how plots look in desktop Python.
Dark Plots render on a dark background.
Gray Neutral gray background, useful for plots with transparent areas.

This setting only affects how plots are displayed in the app. Exported plot images use whatever background the matplotlib figure specifies.