Skip to main content

Branding

Relay Button uses the Le-Space brand system (Le-Space Brand Style Guide V1.0). The product name shown in UI, docs, and demos is Relay Button; the npm scope stays @le-space/* (renaming published packages would be a breaking change).

The lockup combines the Le-Space mark ("Der erste Knoten" — the filled Signal Coral node is your device, the hollow rings are peers) with a "Relay Button" wordmark set in JetBrains Mono Bold, converted to paths. The trailing underscore cursor in Signal Coral is the terminal motif that replaces the Le-Space hyphen accent.

Assets in docs/docusaurus/static/img/:

FileUse
relay-button-logo-horizontal-{dark,light}.svgPrimary lockup (headers, docs)
relay-button-mark-{dark,light}.svgMark solo (navbar, avatars, > 20 px)
favicon.svgSimplified favicon variant (node + one peer)

static/favicon.ico and static/apple-touch-icon.png come from the brand favicon set.

Palette

Core (dark is the default appearance):

TokenHexUse
Deep Space#0B0E15Background
Nebula#141926Cards, panels, code blocks
Horizon#232B3DBorders, dividers
Starlight#EDF1F8Headings, primary text
Stardust#A8B3C7Body text
Comet Grey#6B7690Meta text, labels
Signal Coral#FF6B5BPrimary action — one per view
Sync Cyan#58C7F3Links, peers, sync status

Semantic: success #3EDC97, warning #FFC24B, error #FF4D6A (deliberately cooler than Signal Coral), info #58C7F3.

Light mode per style guide: background #FFFFFF, text Ink #141B2E, Coral #E8503F, Cyan #0E86C4. The widget's light-mode semantic tones (success #0F9D6A, warning #A8690A, error #D5365A) are darkened derivatives chosen for AA contrast on white; they are not defined in the style guide.

Typography

  • JetBrains Mono — wordmark, eyebrows/labels, status badges, code, hashes.
  • Inter — headings, body text, buttons, forms.

The docs site self-hosts both via @fontsource (no CDN). The embeddable widget intentionally does not bundle font files; it declares the families with system fallbacks (ui-monospace, -apple-system, …) so host pages that load the brand fonts get the full look and everyone else gets a clean fallback.

Compact widget type scale

The style guide's web scale (16 px body, 28 px H2) is sized for pages. The Relay Button is an embedded widget, so it uses a compact scale — a deliberate, documented deviation from the style guide:

RoleStyle guide (web)Widget
Panel title (H2)Inter Bold 28 pxInter Bold 18 px
Section (H3)Inter SemiBold 20 pxInter SemiBold 15 px
BodyInter 16 px / 1.6Inter 13 px / 1.5
Eyebrow / labelJB Mono Bold 13 px capsJB Mono Bold 10.5 px caps
Code / hashesJB Mono 14 pxJB Mono 12 px

Radii follow the guide: 10 px cards/panels, 8 px buttons and fields, 1 px Horizon borders.

Theming the widget

Dark ("Deep Space") is the default. Light mode activates automatically below any ancestor that sets data-theme="light" (Docusaurus convention) or data-relay-theme="light".

  • Svelte: tokens live in packages/ui/src/svelte/styles/theme.css (--relay-* custom properties).
  • React: tokens are injected by the component (--rb-*); the pre-existing --le-space-sponsor-relay-* custom properties remain supported as host-page overrides.