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 ​