Built-in Themes
Fresh includes several carefully designed themes optimized for terminal use:- High Contrast
- Dark
- Light
- Nord
- Dracula
- Nostalgia
- Solarized Dark
High visibility theme with strong color contrastOptimized for accessibility and readability in any lighting condition. Features bright text on dark backgrounds with vivid syntax highlighting.
Changing Themes
Via Configuration File
Edit~/.config/fresh/config.json:
config.json
"high-contrast"(default)"dark""light""nord""dracula""nostalgia""solarized-dark"
Via Menu
- Open View → Select Theme…
- Choose from the list of available themes
- Theme changes apply immediately
Via Command Palette
- Press
Ctrl+P - Type
>select theme - Select theme from the dropdown
Theme Structure
Themes are JSON files located in~/.config/fresh/themes/ or in the editor’s built-in theme directory. Each theme defines colors for:
- Editor: Background, foreground, cursor, selection, line numbers
- UI: Tabs, menu bar, status bar, popups, scrollbars
- Search: Match highlighting
- Diagnostics: Errors, warnings, info, hints
- Syntax: Keywords, strings, comments, functions, types
Theme File Example
Color Format
Colors can be specified in two formats:RGB Array
Named Colors
"Black","Red","Green","Yellow","Blue","Magenta","Cyan","White""Gray","DarkGray","LightRed","LightGreen","LightYellow","LightBlue","LightMagenta","LightCyan""Default"(use terminal default)
Creating a Custom Theme
Theme Components
Editor Colors
| Key | Description |
|---|---|
bg | Editor background |
fg | Default text color |
cursor | Cursor color |
inactive_cursor | Cursor color in inactive splits |
selection_bg | Selected text background |
current_line_bg | Current line highlight background |
line_number_fg | Line number color |
line_number_bg | Line number gutter background |
whitespace_indicator_fg | Whitespace character color (tabs, spaces) |
diff_add_bg | Added line background (diff view) |
diff_remove_bg | Removed line background |
diff_modify_bg | Modified line background |
UI Colors
| Key | Description |
|---|---|
tab_active_fg / tab_active_bg | Active tab colors |
tab_inactive_fg / tab_inactive_bg | Inactive tab colors |
tab_separator_bg | Tab separator background |
status_bar_fg / status_bar_bg | Status bar colors |
menu_bg / menu_fg | Menu colors |
menu_highlight_bg / menu_highlight_fg | Menu selection colors |
popup_bg / popup_text_fg | Popup/dialog colors |
scrollbar_track_fg / scrollbar_thumb_fg | Scrollbar colors |
split_separator_fg | Split pane separator |
Syntax Colors
| Key | Description |
|---|---|
keyword | Language keywords (if, for, while, etc.) |
string | String literals |
comment | Comments |
function | Function names |
type | Type names (classes, structs, etc.) |
variable | Variables |
constant | Constants |
operator | Operators (+, -, *, etc.) |
Diagnostic Colors
| Key | Description |
|---|---|
error_fg / error_bg | Error diagnostic colors |
warning_fg / warning_bg | Warning colors |
info_fg / info_bg | Info colors |
hint_fg / hint_bg | Hint colors |
Search Colors
| Key | Description |
|---|---|
match_bg / match_fg | Search match highlighting |
Terminal Background Transparency
To use your terminal’s background (e.g., for transparency):config.json
editor.bg.
Theme Inheritance
You can create themes that extend existing ones:custom-dark.json
Only the specified fields are overridden. All other colors inherit from the parent theme.
Installing Community Themes
Fresh supports installing themes from the plugin registry:~/.config/fresh/themes/.
Sharing Themes
To share your theme:- Create a theme JSON file
- Publish to GitHub
- Submit to the Fresh plugins registry
Example: Complete Theme
View complete dracula.json theme
View complete dracula.json theme
dracula.json
Next Steps
Settings Reference
Explore all editor configuration options
Keyboard Configuration
Customize keybindings and keymaps