Skip to content

Theme development

This page documents every --mac-* CSS custom property HarborClient exposes for appearance themes. Use it when building a theme in File → Themes → Designer, shipping a theme plugin, or overriding tokens via ThemeContribution.colors / ThemeContribution.metrics.

Token ids come from the SDK ThemeColorToken and ThemeMetricToken types. Each id maps to --mac-<token> on :root.

For installing and managing themes in the app, see Using themes. For packaging theme plugins, see Plugin development and the Plugin SDK — Themes reference.

Designer

Theme Designer

Open File → Themes → Designer to design a custom appearance theme with live preview across HarborClient.

ControlDescription
Theme titleHuman-readable name shown on Installed cards and in View → Theme
AppearanceBase mode: light, dark, or high contrast (sets color-scheme and seeds defaults)
Color tokensPick colors for layout, text, interactive, status, and HTTP method tokens
ExportSave the current draft as a portable .json theme file (harborclientExport: "theme")
ImportLoad a theme export into the Designer draft without saving or activating it
DiscardRestore the last loaded or saved snapshot and revert the live preview
SaveWrite the theme to disk and make it the active appearance immediately

When you start a new theme, color pickers and the appearance dropdown seed from your currently active theme (built-in, plugin, or custom). Changing Appearance on a new draft reseeds from built-in defaults for that mode.

When you edit an existing custom theme, the Designer loads its saved palette and title.

Renamed save prompt

If you edit a saved theme and change its title, Save asks whether to:

ChoiceResult
Update existingRename the saved theme in place (same file; also persists color and appearance edits)
Save as new themeCreate a new theme file with the new name; the original theme is left unchanged
CancelDismiss the prompt without saving

CSS custom properties

HarborClient styles the desktop UI with --mac-* custom properties. Theme contributions set token overrides without the --mac- prefix:

typescript
hc.themes.register({
  id: 'solarized',
  title: 'Solarized Dark',
  type: 'dark',
  colors: {
    surface: '#002b36',
    accent: '#268bd2',
  },
  metrics: {
    'layout-radius': '0.5rem',
  },
});

The same keys appear in Theme Designer exports (harborclientExport: "theme") under theme (colors) and optional metrics.

Default values below are the built-in Light, Dark, and High contrast palettes used when a draft is seeded or an appearance mode is selected.

Color tokens

Override these keys in ThemeContribution.colors or a Designer color field. Each maps to --mac-<token>.

--mac-surface

Main content background.

AppearanceDefault
Light#f5f5f7
Dark#1e1e1e
High contrast#000000

--mac-header

Top header strip (sidebar search + request tab bar).

AppearanceDefault
Light#ececee
Dark#252526
High contrast#000000

--mac-page-header

Page title header background (PageHeader).

AppearanceDefault
Light#f5f5f7
Dark#1e1e1e
High contrast#000000

--mac-page-header-text

Page title header primary text.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffffff

--mac-page-header-muted

Page title header description and decorative icons.

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#d0d0d0

Footer status bar background.

AppearanceDefault
Light#ececee
Dark#252526
High contrast#000000

--mac-control

Panels, inputs, footer bar.

AppearanceDefault
Light#ffffff
Dark#3a3a3c
High contrast#000000

--mac-field

Input field fill.

AppearanceDefault
Light#ffffff
Dark#191919
High contrast#141414

--mac-separator

Borders and dividers.

AppearanceDefault
Lightrgba(0, 0, 0, 0.08)
Darkrgba(255, 255, 255, 0.08)
High contrast#ffd60a

--mac-terminal

Footer terminal background.

AppearanceDefault
Light#000000
Dark#000000
High contrast#000000

--mac-sidebar-rail

Activity rail background.

AppearanceDefault
Light#ffffff
Dark#313131
High contrast#ffd60a

--mac-sidebar-rail-active

Active/hover activity rail section fill.

AppearanceDefault
Light#ececee
Dark#252526
High contrast#c9a008

--mac-sidebar-rail-text

Activity rail icons and labels.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Dark#ffffff
High contrast#000000

--mac-sidebar-rail-separator

Activity rail hairline between item groups.

AppearanceDefault
Light#ededed
Dark#3e3e3e
High contrast#d6b408

--mac-sidebar

Left sidebar background.

AppearanceDefault
Light#ececee
Dark#252526
High contrast#000000

--mac-sidebar-toolbar

Sidebar/footer toolbar strip background.

AppearanceDefault
Light#d0d0d1
Dark#1e1e1e
High contrast#141414

--mac-sidebar-section

Sidebar section headers.

AppearanceDefault
Lightrgba(0, 122, 204, 0.18)
Dark#343437
High contrast#000000

--mac-sidebar-section-text

Sidebar section header labels and chevrons.

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#ffffff

--mac-breadcrumb-background

Request editor breadcrumb bar track.

AppearanceDefault
Light#ececee
Dark#252526
High contrast#ffd60a

--mac-breadcrumb-segment

Breadcrumb chevron segment fill (collection/folder crumbs).

AppearanceDefault
Light#f5f5f7
Dark#323234
High contrast#141414

--mac-breadcrumb-current

Trailing request-name breadcrumb segment fill.

AppearanceDefault
Light#ffffff
Dark#3a3a3c
High contrast#1f1f1f

--mac-text

Primary text.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffffff

--mac-text-secondary

Secondary labels.

AppearanceDefault
Lightrgba(0, 0, 0, 0.65)
Darkrgba(255, 255, 255, 0.65)
High contrast#ffffff

--mac-muted

De-emphasized text.

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#d0d0d0

Footer primary text (active segment buttons, selection-style icons).

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffd60a

Footer de-emphasized text (inactive segment buttons).

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#ffd60a

--mac-accent

Links, focus rings, primary actions.

AppearanceDefault
Light#007acc
Dark#4098dc
High contrast#ffd60a

--mac-selection

Selected row / highlight fill.

AppearanceDefault
Lightrgba(0, 122, 204, 0.18)
Darkrgba(64, 152, 220, 0.22)
High contrast#ffd60a

--mac-doc-markdown

Collection sidebar markdown document icon.

AppearanceDefault
Light#007acc
Dark#4098dc
High contrast#ffd60a

Active footer icon toggle color.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffd60a

--mac-toolbar-action-active

Pressed sidebar toolbar action icon color.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffd60a

--mac-tab-underline

Active request tab underline.

AppearanceDefault
Light#007acc
Dark#ffffff
High contrast#ffd60a

--mac-resize-separator

Resizable panel separator track and edge border.

AppearanceDefault
Light#ffffff
Dark#3a3a3c
High contrast#000000

--mac-resize-handle

Resizable panel grip (and high-contrast chrome accents).

AppearanceDefault
Lightrgba(0, 0, 0, 0.29)
Darkrgba(255, 255, 255, 0.29)
High contrast#ffd60a

--mac-variable-token

{{variable}} syntax highlight in editors.

AppearanceDefault
Light#007acc
Dark#4098dc
High contrast#5fe3f0

--mac-tab-bar

Request editor tab bar strip background.

AppearanceDefault
Light#ececee
Dark#252526
High contrast#000000

--mac-tab-active

Active request/editor tab fill.

AppearanceDefault
Light#f5f5f7
Dark#1e1e1e
High contrast#000000

--mac-tab-inactive

Inactive request/editor tab fill.

AppearanceDefault
Lightrgba(255, 255, 255, 0.2)
Darkrgba(58, 58, 60, 0.2)
High contrastrgba(0, 0, 0, 0.2)

--mac-tab-hover

Inactive request/editor tab hover and focus-visible fill.

AppearanceDefault
Lightrgba(0, 122, 204, 0.108)
Darkrgba(64, 152, 220, 0.132)
High contrastrgba(255, 214, 10, 0.6)

--mac-tab-text

Active (and hover/focus) request/editor tab label color.

AppearanceDefault
Lightrgba(0, 0, 0, 0.85)
Darkrgba(255, 255, 255, 0.85)
High contrast#ffffff

--mac-tab-text-inactive

Inactive request/editor tab label color.

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#d0d0d0

--mac-tab-unsaved

Request/markdown tab title when the tab has unsaved changes.

AppearanceDefault
Light#b45309
Dark#ffb340
High contrast#5fe3f0

--mac-danger

Status colors.

AppearanceDefault
Light#ff3b30
Dark#ff453a
High contrast#ff8a80

--mac-danger-light

Status colors.

AppearanceDefault
Light#d70015
Dark#ff6961
High contrast#ffb4af

--mac-warning

Status colors.

AppearanceDefault
Light#ff9500
Dark#ff9f0a
High contrast#ffb340

--mac-success

Status colors.

AppearanceDefault
Light#34c759
Dark#30d158
High contrast#5ce06a

--mac-info

Status colors.

AppearanceDefault
Lightrgba(0, 0, 0, 0.55)
Darkrgba(255, 255, 255, 0.55)
High contrast#ffffff

--mac-method-get

HTTP method / SSE badge colors.

AppearanceDefault
Light#2d8a4e
Dark#2d8a4e
High contrast#ffd60a

--mac-method-post

HTTP method / SSE badge colors.

AppearanceDefault
Light#0066cc
Dark#2f8eed
High contrast#ffd60a

--mac-method-put

HTTP method / SSE badge colors.

AppearanceDefault
Light#b8860b
Dark#b8860b
High contrast#ffd60a

--mac-method-patch

HTTP method / SSE badge colors.

AppearanceDefault
Light#7b5ea7
Dark#7b5ea7
High contrast#ffd60a

--mac-method-delete

HTTP method / SSE badge colors.

AppearanceDefault
Light#c0392b
Dark#de5445
High contrast#ffd60a

--mac-method-head

HTTP method / SSE badge colors.

AppearanceDefault
Light#6e6e73
Dark#6e6e73
High contrast#ffd60a

--mac-method-options

HTTP method / SSE badge colors.

AppearanceDefault
Light#6e6e73
Dark#6e6e73
High contrast#ffd60a

--mac-method-sse

HTTP method / SSE badge colors.

AppearanceDefault
Light#0f766e
Dark#0f766e
High contrast#0f766e

--mac-scrollbar-track

Scrollbar track and thumb colors.

AppearanceDefault
Lightrgba(0, 0, 0, 0.06)
Darkrgba(255, 255, 255, 0.06)
High contrasttransparent

--mac-scrollbar-thumb

Scrollbar track and thumb colors.

AppearanceDefault
Lightrgba(0, 0, 0, 0.44)
Darkrgba(255, 255, 255, 0.44)
High contrast#9e9e9e

--mac-scrollbar-thumb-hover

Scrollbar track and thumb colors.

AppearanceDefault
Lightrgba(0, 0, 0, 0.55)
Darkrgba(255, 255, 255, 0.55)
High contrast#d0d0d0

--mac-scrollbar-thumb-active

Scrollbar track and thumb colors.

AppearanceDefault
Lightrgba(0, 0, 0, 0.66)
Darkrgba(255, 255, 255, 0.66)
High contrast#ffffff

--mac-script-stage-before-all

Script row stage accent colors.

AppearanceDefault
Light#1360ae
Dark#1360ae
High contrast#1360ae

--mac-script-stage-before-each

Script row stage accent colors.

AppearanceDefault
Light#007acc
Dark#4098dc
High contrast#0a84ff

--mac-script-stage-main

Script row stage accent colors.

AppearanceDefault
Light#32d2e2
Dark#32d2e2
High contrast#32d2e2

--mac-script-stage-after-each

Script row stage accent colors.

AppearanceDefault
Light#ff9f0a
Dark#ff9f0a
High contrast#ff9f0a

--mac-script-stage-after-all

Script row stage accent colors.

AppearanceDefault
Light#ae7213
Dark#ae7213
High contrast#ae7213

--mac-git-staged

Git-backed request names staged for commit.

AppearanceDefault
Light#34c759
Dark#30d158
High contrast#5ce06a

--mac-git-uncommitted

Git-backed request names with both staged and unstaged changes.

AppearanceDefault
Light#ff9500
Dark#ff9f0a
High contrast#ffb340

--mac-git-unstaged

Git-backed request names with tracked unstaged changes.

AppearanceDefault
Lightrgba(0, 0, 0, 0.58)
Darkrgba(255, 255, 255, 0.58)
High contrast#d0d0d0

--mac-git-untracked

Git-backed request names for new files not yet added to the repository.

AppearanceDefault
Light#34c759
Dark#30d158
High contrast#5ce06a

Metric tokens

Override these keys in ThemeContribution.metrics or a Designer metrics field. Values are CSS strings (for example 14px, 0.375rem, or a font stack). Metrics are shared across light, dark, and high-contrast appearance modes unless a theme overrides them.

--mac-layout-font-family

Layout font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-layout-font-size

Layout font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-layout-border-width

Layout border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-layout-radius

Layout radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-breadcrumb-font-family

Breadcrumb font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-breadcrumb-font-size

Breadcrumb font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-breadcrumb-border-width

Breadcrumb border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-breadcrumb-radius

Breadcrumb radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-text-font-family

Text font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-text-font-family-mono

Text mono font family metric.

AppearanceDefault
Lightui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace
Darkui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace
High contrastui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace

--mac-text-font-size

Text font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-text-font-size-sm

Text font size (sm) metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-text-font-size-lg

Text font size (lg) metric.

AppearanceDefault
Light16px
Dark16px
High contrast16px

--mac-interactive-font-family

Interactive font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-interactive-font-size

Interactive font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-interactive-border-width

Interactive border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-interactive-radius

Interactive radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-interactive-focus-ring-width

Interactive focus ring width metric.

AppearanceDefault
Light3px
Dark3px
High contrast3px

--mac-chrome-font-family

Chrome font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-chrome-font-size

Chrome font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-chrome-border-width

Chrome border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-chrome-radius

Chrome radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-tab-font-family

Tabs font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-tab-font-size

Tabs font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-tab-border-width

Tabs border width metric.

AppearanceDefault
Light2px
Dark2px
High contrast2px

--mac-tab-radius

Tabs radius metric.

AppearanceDefault
Light9999px
Dark9999px
High contrast9999px

--mac-status-font-family

Status font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-status-font-size

Status font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-status-border-width

Status border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-status-radius

Status radius metric.

AppearanceDefault
Light9999px
Dark9999px
High contrast9999px

--mac-method-font-family

HTTP methods font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-method-font-size

HTTP methods font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-method-border-width

HTTP methods border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-method-radius

HTTP methods radius metric.

AppearanceDefault
Light0.25rem
Dark0.25rem
High contrast0.25rem

--mac-script-stage-font-family

Script stages font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-script-stage-font-size

Script stages font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-script-stage-border-width

Script stages border width metric.

AppearanceDefault
Light3px
Dark3px
High contrast3px

--mac-script-stage-radius

Script stages radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-git-font-family

Git font family metric.

AppearanceDefault
Light-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
Dark-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif
High contrast-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif

--mac-git-font-size

Git font size metric.

AppearanceDefault
Light14px
Dark14px
High contrast14px

--mac-git-border-width

Git border width metric.

AppearanceDefault
Light1px
Dark1px
High contrast1px

--mac-git-radius

Git radius metric.

AppearanceDefault
Light0.375rem
Dark0.375rem
High contrast0.375rem

--mac-scrollbar-width

Scrollbar width metric.

AppearanceDefault
Light8px
Dark8px
High contrast8px

See also