Docs

Theme Refresh

Branch: kabootit/theme-refresh in tranquil-theme-dark, tranquil-theme-light, and tranquil-browser.

Tranquil’s visual identity was updated across three repos to match the reference design language — warm neutral palette, Inter typography, reference-proportioned spacing, and Phosphor icons replacing the previous mix of Octicons and remote PNGs.


Design Tokens

Colors

RoleLightDark
Sidebar / dock bg#F7F6F3#191814
App bg#FFFFFF#1F1E1B
Panel / content#FFFFFF#23221F
Dialog bg#FFFFFF#272622
Hover state#EBEBEA#2D2B27
Border default#E9E9E7#34322D
Text primary#37352F#E6E1D8
Text secondary#787774#B8B1A6
Accent blue#155DFF#78A4FF

Typography

All UI chrome uses Inter with system font fallbacks:

Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif
Use caseSizeWeight
Base UI chrome13px400
Tab title (inactive)13px400
Tab title (active)13px500
Status bar11px400
Section labels / headings11px500
Modal / palette items13px400
Modal input14px400
Editor content14px400
Browser URL bar13px400

Anti-aliasing (-webkit-font-smoothing: antialiased) is applied globally via atom-workspace.

Spacing & Sizing

ElementValue
Base border-radius8px (0.5rem)
Item border-radius4px
Tree view file row padding6px top/bottom
Tab padding8px 12px
Directory separator1px border
Browser toolbar height40px
Browser icon size24px
Browser icon gap8px
Modal width48rem
Modal shadow (dark)0 12px 26px rgba(0,0,0,.30), 0 1px 4px rgba(0,0,0,.22)
Modal shadow (light)0 8px 18px rgba(15,23,42,.12), 0 1px 3px rgba(15,23,42,.10)

tranquil-theme-dark

Color variables (styles/colors.less)

@primary-100:   #191814;  // sidebar / dock bg
@primary-75:    #1F1E1B;  // app bg
@primary-50:    #23221F;  // panel / content
@primary-25:    #34322D;  // border / interactive
@primary-hover: #2D2B27;  // hover state
@neutral:       #E6E1D8;  // text primary
@neutral-dim:   #B8B1A6;  // text secondary
@accent:        #78A4FF;  // accent blue

@model-background:       #272622;
@model-overlay-color:    rgba(8, 8, 7, 0.58);
@model-input-background: @primary-25;

Files changed

FileWhat changed
styles/colors.lessWarm charcoal palette, blue accent
styles/base.lessInter 13px global font + anti-aliasing
styles/tree-view.less14→13px, file row 6px padding, 1px directory borders
styles/tabs.less8px 12px padding, 13px titles, 500 weight on active tab
styles/status-bar.less11px font
styles/settings.less11px 500 section headings, 13px body
styles/model.less56→48rem width, updated shadow, 13px list items

tranquil-theme-light

Color variables (styles/colors.less)

Variable names were renamed from confusing originals (@white: #000000) to semantic names:

@bg-sidebar:   #F7F6F3;
@bg-secondary: #EBEBEA;
@bg-panel:     #FFFFFF;
@text-color:   #37352F;
@text-muted:   #787774;
@border-color: #E9E9E7;
@accent:       #155DFF;

Files changed

FileWhat changed
styles/colors.lessReference warm light palette, semantic variable names
styles/base.lessAll variable renames, Inter 13px font, sizing updates, editor line-height: 2 → 1.5

tranquil-browser

Theme-adaptive toolbar

The browser toolbar adapts to whichever UI theme is active. Pulsar adds .theme-tranquil-theme-dark or .theme-tranquil-theme-light to the workspace when each theme is applied. The browser LESS uses these selectors to swap palettes:

.theme-tranquil-theme-dark  { /* charcoal palette */ }
.theme-tranquil-theme-light { /* warm white palette */ }

No JavaScript is needed — pure CSS selector switching.

Color variables (styles/colors.less)

Both palettes are defined in a single file:

// Dark palette
@dark-bg-strip:  #191814;
@dark-bg-input:  #23221F;
@dark-text:      #E6E1D8;
@dark-border:    #34322D;
@dark-accent:    #78A4FF;

// Light palette
@light-bg-strip: #F7F6F3;
@light-bg-input: #FFFFFF;
@light-text:     #37352F;
@light-border:   #E9E9E7;
@light-accent:   #155DFF;

Phosphor icons

All toolbar icons are Phosphor Icons (regular weight), stored as local SVG files in resources/icons/. They replaced the previous mix of Octicon font characters and remote PNGs hosted on ibb.co.

FileButton
arrow-left.svgBack
arrow-right.svgForward
arrow-clockwise.svgRefresh
plus.svgNew Tab
star.svgSave URL / Fav
clock-counter-clockwise.svgHistory
printer.svgPrint
push-pin.svgRemember Position
lightning.svgLive Reload
code.svgDev Tools

Icons are referenced via a local file:// path computed at startup:

const _iconDir = path.join(__dirname, '..', 'resources', 'icons');
const _icon = name => `file://${_iconDir}/${name}.svg`;

Icon tinting is handled by CSS filter — the SVGs are stored as-is (black fill from Phosphor’s source) and rendered to the appropriate color per theme:

// Dark: render as ~#E6E1D8 (cream)
.apm-browser-icon { filter: brightness(0) invert(0.9); }

// Light: render as #37352F (near-black)
.apm-browser-icon { filter: brightness(0) saturate(0%); }

To change an icon, replace the relevant .svg file in resources/icons/ with any other Phosphor icon of the same name, or fetch a new one:

curl -o resources/icons/arrow-left.svg 
  https://raw.githubusercontent.com/phosphor-icons/core/main/assets/regular/arrow-left.svg

Files changed

FileWhat changed
styles/colors.lessDual dark/light palette variables
styles/tranquil-browser.lessTheme-adaptive .theme-* blocks, 40px toolbar, 24px icons
lib/tranquil-browser-view.jsAll toolbar buttons converted to local SVG <img> tags
resources/icons/*.svg10 Phosphor SVG files (added)