Skip to content

Commit dfaeeea

Browse files
feat(webapp): unify Hephaestus brand identity
1 parent b2db0ed commit dfaeeea

56 files changed

Lines changed: 300 additions & 600 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/brand-review-board.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
"hephaestus": patch
23
---
34

4-
No release note: this adds a Storybook-only brand review board and does not change the shipped application.
5+
Gives Hephaestus one consistent identity across the application, documentation, README, browser icons, installable app icons, and social previews.

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
<div align="center">
22
<picture>
3-
<source media="(prefers-color-scheme: dark)" srcset="./docs/static/img/brand/hammer_bg_dark.svg">
4-
<source media="(prefers-color-scheme: light)" srcset="./docs/static/img/brand/hammer_bg.svg">
5-
<img alt="" height="100" src="./docs/static/img/brand/hammer_bg.svg">
3+
<source media="(prefers-color-scheme: dark)" srcset="./docs/static/img/brand/hephaestus-lockup-dark.svg">
4+
<source media="(prefers-color-scheme: light)" srcset="./docs/static/img/brand/hephaestus-lockup-light.svg">
5+
<img alt="Hephaestus" height="100" src="./docs/static/img/brand/hephaestus-lockup-light.svg">
66
</picture>
7-
8-
<h1>Hephaestus</h1>
97
<p><strong>Learn from the work you're already doing</strong></p>
108

119
<p>

docs/contributor/brand-assets.mdx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Brand assets
3+
---
4+
5+
# Brand assets
6+
7+
Hephaestus uses one identity system:
8+
9+
- the **solid signal-blue Heph mark** for product identity, app icons, favicons, and external profiles;
10+
- the **Heph-accent wordmark** for lockups; and
11+
- the bare, animated Heph drawing only when Heph is acting as the mentor persona.
12+
13+
The vector sources live in `webapp/brand/`. Do not edit the copies or PNG derivatives under
14+
`webapp/public/` or `docs/static/img/` directly. Regenerate them with:
15+
16+
```bash
17+
pnpm --filter webapp run export:brand-assets
18+
```
19+
20+
The solid mark keeps `#315FDC` in both color modes. UI text uses the mode-aware `brand-accent` token,
21+
so the wordmark remains legible on dark surfaces. Product prose always spells the name normally as
22+
“Hephaestus”; the accent is visual identity, not punctuation or a new product name.
23+
24+
White on signal blue has a 5.52:1 contrast ratio. This clears the WCAG 2.2 AA threshold for normal
25+
text and the mark's essential shapes clear the 3:1 non-text threshold; see the W3C guidance for
26+
[text contrast](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html) and
27+
[non-text contrast](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html).
28+
29+
## Choosing an asset
30+
31+
| Context | Asset |
32+
|---|---|
33+
| App header, sign-in, product page | React `HephaestusLogo` or `HephMark` |
34+
| Mentor conversation | React `HephIcon` |
35+
| README | Theme-aware lockup SVGs |
36+
| Documentation navbar | Docusaurus `logo.src` and `logo.srcDark` |
37+
| Browser tab | `favicon.png` |
38+
| Installed web app | 192px, 512px, and maskable PNGs declared in the manifest |
39+
| GitHub App or another external profile | `hephaestus-app-icon-1024.png` |
40+
| Link preview | `hephaestus-social-card.png` |
41+
42+
These choices follow the native surfaces rather than adding theme-detection code: GitHub supports
43+
[theme-specific README pictures](https://github.blog/changelog/2021-11-24-specify-theme-context-for-images-in-markdown/),
44+
Docusaurus supports [`favicon`, `logo.src`, and `logo.srcDark`](https://docusaurus.io/docs/api/themes/configuration),
45+
and web app manifests support icon sizes and purposes including
46+
[`maskable`](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/icons).
47+
The maskable export keeps the drawing inside the platform
48+
[safe zone](https://web.dev/articles/maskable-icon). Decorative copies use empty alternative text or
49+
are hidden from assistive technology; informative images follow the
50+
[W3C image text-alternative guidance](https://www.w3.org/WAI/tutorials/images/).
51+
Opaque app-icon exports also follow Apple's guidance to keep icons simple and recognizable and to
52+
let each platform apply its own mask; see the
53+
[Apple app-icon guidance](https://developer.apple.com/design/human-interface-guidelines/app-icons).

docs/docusaurus.config.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function rawMermaidSourcePlugin(_context: LoadContext): Plugin {
3131
const config: Config = {
3232
title: "Hephaestus Documentation",
3333
tagline: "Learn from the work you're already doing",
34-
favicon: "img/favicon.ico",
34+
favicon: "img/favicon.png",
3535

3636
future: {
3737
v4: true,
@@ -154,7 +154,7 @@ const config: Config = {
154154
],
155155

156156
themeConfig: {
157-
image: "img/hephaestus-social-card.jpg",
157+
image: "img/hephaestus-social-card.png",
158158
colorMode: {
159159
respectPrefersColorScheme: true,
160160
disableSwitch: false,
@@ -171,10 +171,12 @@ const config: Config = {
171171
{ name: "twitter:description", content: DESCRIPTION },
172172
],
173173
navbar: {
174-
title: "Hephaestus",
175174
logo: {
176-
alt: "Hephaestus logo",
177-
src: "img/hammer.svg",
175+
alt: "Hephaestus",
176+
src: "img/brand/hephaestus-lockup-light.svg",
177+
srcDark: "img/brand/hephaestus-lockup-dark.svg",
178+
width: 155,
179+
height: 32,
178180
},
179181
items: [
180182
{

docs/sidebars.contributor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const sidebars: SidebarsConfig = {
1818
"accessibility-audit-plan",
1919
"security-mutation-testing",
2020
"coding-guidelines",
21+
"brand-assets",
2122
"api-error-handling",
2223
"workspace-context",
2324
"ai-agent-workflow",

docs/src/css/custom.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@
4141
--docusaurus-highlighted-code-line-bg: oklch(0.546 0.245 262.881 / 0.18);
4242
}
4343

44-
[data-theme="dark"] .navbar__logo img {
45-
filter: invert(1);
46-
}
47-
4844
/*
4945
* Every override below re-points an Infima default at a value the web app already uses.
5046
* `scripts/check-docs-tokens.ts` pins the ones copied from `webapp/src/styles.css`.

docs/static/img/brand/hammer_bg.svg

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/static/img/brand/hammer_bg_dark.svg

Lines changed: 0 additions & 6 deletions
This file was deleted.
-19.8 KB
Binary file not shown.
-23.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)