Skip to content

Commit fabe14f

Browse files
authored
Merge pull request #242 from signalwire/Devon/styling
Branded styling
2 parents aa4e785 + c040a40 commit fabe14f

11 files changed

Lines changed: 246 additions & 61 deletions
-281 KB
Binary file not shown.
29.4 KB
Binary file not shown.
20.7 KB
Binary file not shown.

fern/assets/fonts/lexend-400.woff2

14.1 KB
Binary file not shown.
-41.2 KB
Binary file not shown.
-41.1 KB
Binary file not shown.

fern/brand-overrides.css

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/* =============================================================================
2+
SIGNALWIRE BRAND OVERRIDES
3+
Applies brand tokens to Fern components. Requires brand-tokens.css.
4+
============================================================================= */
5+
6+
/* --- Headings: neutral color, not accent (brand rule: colored headings = violation) --- */
7+
h1, h2, h3, h4, h5, h6,
8+
.fern-page-heading {
9+
color: var(--fg-headings);
10+
letter-spacing: -0.02em;
11+
}
12+
13+
/* --- Links: brand link colors with fuchsia hover --- */
14+
.fern-mdx-link,
15+
.fern-markdown a:not([class]) {
16+
transition: color 0.15s ease;
17+
}
18+
19+
.fern-mdx-link:hover,
20+
.fern-markdown a:not([class]):hover,
21+
.fern-mdx-link:hover code,
22+
.fern-markdown a:not([class]):hover code {
23+
color: var(--interactive-link-hover);
24+
}
25+
26+
/* --- Inline code: brand code colors per mode --- */
27+
:not(pre) > code {
28+
background: var(--code-bg);
29+
color: var(--code-fg);
30+
}
31+
32+
/* --- Sidebar: brand surface color --- */
33+
.fern-sidebar-container {
34+
background: var(--bg-surface);
35+
}
36+
37+
/* --- Tables: brand-aligned header and borders --- */
38+
.fern-markdown table th {
39+
background: var(--table-header-bg);
40+
color: var(--table-header-text);
41+
border-bottom: 2px solid var(--table-border);
42+
}
43+
44+
.fern-markdown table td {
45+
border-bottom: 1px solid var(--table-border);
46+
}
47+
48+
.fern-markdown table tr:hover td {
49+
background: var(--table-row-hover);
50+
}
51+
52+
/* --- Callouts: brand callout colors --- */
53+
.fern-callout-info {
54+
background: var(--callout-info-bg);
55+
border-color: var(--callout-info-border);
56+
}
57+
58+
.fern-callout-warning {
59+
background: var(--callout-warn-bg);
60+
border-color: var(--callout-warn-border);
61+
}
62+
63+
.fern-callout-danger {
64+
background: var(--callout-danger-bg);
65+
border-color: var(--callout-danger-border);
66+
}
67+
68+
.fern-callout-success {
69+
background: var(--callout-success-bg);
70+
border-color: var(--callout-success-border);
71+
}
72+
73+
/* --- API property keys: brand specifies code at weight 400 only.
74+
Fern defaults to 600 which causes faux-bold blur with our single-weight woff2. --- */
75+
.fern-api-property-key {
76+
font-weight: 400;
77+
}

fern/brand-tokens.css

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/* =============================================================================
2+
SIGNALWIRE BRAND TOKENS
3+
Source: temp/signalwire-tokens.css (extracted from the brand style guide)
4+
============================================================================= */
5+
6+
/* --- Brand palette (locked, mode-independent) --- */
7+
:root {
8+
--sw-blue: #044EF4;
9+
--sw-fuchsia: #F72A72;
10+
--sw-turquoise: #40E0D0;
11+
--sw-gold: #FFD700;
12+
13+
/* RGB channels for alpha compositing */
14+
--sw-blue-rgb: 4, 78, 244;
15+
--sw-fuchsia-rgb: 247, 42, 114;
16+
--sw-turquoise-rgb: 64, 224, 208;
17+
--sw-gold-rgb: 255, 215, 0;
18+
}
19+
20+
/* --- Dark mode tokens --- */
21+
.dark {
22+
/* Surfaces */
23+
--bg-page: #0e0e18;
24+
--bg-surface: #181a28;
25+
--bg-surface-raised: #222436;
26+
27+
/* Foreground */
28+
--fg-default: #f0f0f4;
29+
--fg-secondary: #e8e8ec;
30+
--fg-muted: #a0a0aa;
31+
--fg-subtle: #73737e;
32+
--fg-headings: var(--fg-default);
33+
--fg-emphasis: var(--sw-turquoise);
34+
--fg-emphasis-small: var(--sw-turquoise);
35+
36+
/* Borders */
37+
--border-default: rgba(255, 255, 255, 0.12);
38+
--border-strong: rgba(255, 255, 255, 0.15);
39+
40+
/* Inline code */
41+
--code-bg: rgba(255, 255, 255, 0.06);
42+
--code-fg: var(--sw-turquoise);
43+
44+
/* Links */
45+
--interactive-link-default: var(--sw-turquoise);
46+
--interactive-link-hover: var(--sw-fuchsia);
47+
--interactive-link-visited: var(--fg-muted);
48+
49+
/* Callouts */
50+
--callout-info-bg: rgba(var(--sw-blue-rgb), 0.06);
51+
--callout-info-border: rgba(var(--sw-blue-rgb), 0.18);
52+
--callout-warn-bg: rgba(var(--sw-gold-rgb), 0.04);
53+
--callout-warn-border: rgba(var(--sw-gold-rgb), 0.16);
54+
--callout-danger-bg: rgba(var(--sw-fuchsia-rgb), 0.06);
55+
--callout-danger-border: rgba(var(--sw-fuchsia-rgb), 0.18);
56+
--callout-success-bg: rgba(var(--sw-turquoise-rgb), 0.06);
57+
--callout-success-border: rgba(var(--sw-turquoise-rgb), 0.18);
58+
59+
/* Tables */
60+
--table-header-bg: transparent;
61+
--table-header-text: var(--sw-fuchsia);
62+
--table-row-hover: rgba(255, 255, 255, 0.03);
63+
--table-border: rgba(255, 255, 255, 0.07);
64+
65+
/* Shadows */
66+
--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.5);
67+
--shadow-glow-fuchsia: 0 0 20px rgba(var(--sw-fuchsia-rgb), 0.25);
68+
}
69+
70+
/* --- Light mode tokens --- */
71+
:root:not(.dark) {
72+
/* Surfaces */
73+
--bg-page: #FAFBFC;
74+
--bg-surface: #F3F4F6;
75+
--bg-surface-raised: #E8EAF0;
76+
77+
/* Foreground */
78+
--fg-default: #1A1A18;
79+
--fg-secondary: #3A3A38;
80+
--fg-muted: #737371;
81+
--fg-subtle: #A8A8A6;
82+
--fg-headings: #070c2d;
83+
--fg-emphasis: var(--sw-fuchsia);
84+
--fg-emphasis-small: #AB0A42; /* Darkened fuchsia — AAA on light bg (7.1:1) */
85+
86+
/* Borders */
87+
--border-default: rgba(0, 0, 0, 0.1);
88+
--border-strong: rgba(0, 0, 0, 0.18);
89+
90+
/* Inline code */
91+
--code-bg: rgba(0, 0, 0, 0.06);
92+
--code-fg: var(--sw-blue);
93+
94+
/* Links */
95+
--interactive-link-default: var(--sw-blue);
96+
--interactive-link-hover: var(--sw-fuchsia);
97+
--interactive-link-visited: var(--fg-muted);
98+
99+
/* Callouts */
100+
--callout-info-bg: rgba(var(--sw-blue-rgb), 0.06);
101+
--callout-info-border: rgba(var(--sw-blue-rgb), 0.18);
102+
--callout-warn-bg: rgba(var(--sw-gold-rgb), 0.04);
103+
--callout-warn-border: rgba(var(--sw-gold-rgb), 0.16);
104+
--callout-danger-bg: rgba(var(--sw-fuchsia-rgb), 0.06);
105+
--callout-danger-border: rgba(var(--sw-fuchsia-rgb), 0.18);
106+
--callout-success-bg: rgba(var(--sw-turquoise-rgb), 0.06);
107+
--callout-success-border: rgba(var(--sw-turquoise-rgb), 0.18);
108+
109+
/* Tables */
110+
--table-header-bg: var(--sw-blue);
111+
--table-header-text: #ffffff;
112+
--table-row-hover: rgba(0, 0, 0, 0.02);
113+
--table-border: rgba(0, 0, 0, 0.1);
114+
115+
/* Shadows */
116+
--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
117+
--shadow-glow-fuchsia: 0 0 20px rgba(var(--sw-fuchsia-rgb), 0.15);
118+
}

fern/docs.yml

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ layout:
1919
tabs-placement: header
2020
page-width: full
2121

22+
landing-page:
23+
page: Home
24+
path: products/home/pages/welcome.mdx
25+
2226
experimental:
2327
ai-examples: false
2428

@@ -109,14 +113,15 @@ page-actions:
109113
options:
110114
cursor: false
111115
vscode: false
116+
ask-ai: false
112117

113118
colors:
114119
accent-primary:
115120
light: "#044ef4" # SW Blue for light mode
116121
dark: "#40e0d0" # SW Turquoise for dark mode
117122
background:
118-
light: "#ffffff" # SW White
119-
dark: "#0a1628" # SW Navy (visible blue tint)
123+
light: "#FAFBFC" # SW Light page (cool gray, per brand tokens)
124+
dark: "#0e0e18" # SW Dark page (near-black, per brand tokens)
120125

121126
logo:
122127
dark: assets/logo-no-text.svg
@@ -152,17 +157,22 @@ metadata:
152157

153158
typography:
154159
headingsFont:
155-
name: Neue Einstellung
160+
name: Instrument Sans
156161
paths:
157-
- path: assets/fonts/neueeinstellung-bold.woff2
162+
- path: assets/fonts/instrument-sans.woff2
158163
weight: 700
159164
style: normal
160-
- path: assets/fonts/neueeinstellung-medium.woff2
165+
- path: assets/fonts/instrument-sans.woff2
161166
weight: 500
162167
style: normal
163168
bodyFont:
164-
name: Inter
165-
path: assets/fonts/Inter-Regular.ttf
169+
name: Lexend
170+
path: assets/fonts/lexend-400.woff2
171+
weight: 400
172+
style: normal
173+
codeFont:
174+
name: JetBrains Mono
175+
path: assets/fonts/jetbrains-mono-400.woff2
166176
weight: 400
167177
style: normal
168178

@@ -171,8 +181,14 @@ analytics:
171181
api-key: phc_Q78tnozKNjbx1lFBHBJkO7Qp3zLE3RISYS58cpVr7kX
172182

173183
css:
184+
- brand-tokens.css
185+
- brand-overrides.css
174186
- styles.css
175187

188+
189+
ai-search: null
190+
ai-chat: null
191+
176192
check:
177193
rules:
178194
no-circular-redirects: error

fern/products/home/pages/welcome.mdx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,28 @@ layout: custom
3030
<Button intent="primary" href="/docs/platform/getting-started" rightIcon="arrow-right">Get started</Button>
3131
</div>
3232

33+
{/* What are you building? */}
34+
<div class="products-section">
35+
<div class="section-header">
36+
<h2>What are you building?</h2>
37+
</div>
38+
39+
<CardGroup cols={4}>
40+
<Card title="AI voice agent" icon="fa-regular fa-robot" href="/docs/platform/getting-started#ai-application">
41+
LLM-powered phone agents and virtual assistants
42+
</Card>
43+
<Card title="Browser or mobile" icon="fa-regular fa-browser" href="/docs/platform/getting-started#browser-or-mobile-app">
44+
WebRTC voice, video, and chat in your app
45+
</Card>
46+
<Card title="Server application" icon="fa-regular fa-server" href="/docs/platform/getting-started#server-application">
47+
Backend call routing, SMS, and IVR systems
48+
</Card>
49+
<Card title="No-code" icon="fa-regular fa-diagram-project" href="/docs/platform/getting-started#no-code--low-code">
50+
Drag-and-drop call flows and Dashboard AI agents
51+
</Card>
52+
</CardGroup>
53+
</div>
54+
3355
{/* Interfaces & SDKs */}
3456
<div class="products-section">
3557
<div class="section-header">

0 commit comments

Comments
 (0)