diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 99f09b2..a3bbf5f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -20,3 +20,5 @@ jobs:
- run: npm ci
- run: npm run typecheck
- run: npm run build
+ - run: node scripts/size.mjs
+ - run: node scripts/brand-export.mjs --check
diff --git a/.gitignore b/.gitignore
index b93b0f4..5a26b64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
node_modules
dist
.vercel
+
+# Brand docs: kept locally, not part of the repo
+site/brand/
+docs/brand-*.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 702a98b..2a5335c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,16 @@
All notable changes to PixelSpec are listed here. The site's changelog page (`site/changelog.html`) shows the same entries.
+## Unreleased (0.3.0)
+
+New look.
+
+### Changed
+
+- New PixelSpec mark and an original outline icon set, all drawn on the same grid so they line up.
+- Keyboard shortcuts show as keycaps. Glows removed from the toolbar and popover.
+- The toolbar stays pinned to its corner and can no longer be dragged. Positions saved by older versions are ignored.
+
## 0.2.1 (2026-10-20)
Bug fixes.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6103d97..d482cbb 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -22,7 +22,8 @@ In a second terminal, run `npm run dev` to rebuild on every change, then refresh
| `src/panel.ts` | The spec card and the "All properties" list |
| `src/inspect.ts` | Reading the element: selectors, components, accessibility, AI and CSS export |
| `src/styles.ts` | All UI styles (the overlay lives in a shadow root) |
-| `src/icons.ts` | Hugeicons used in the UI, bundled at build time |
+| `src/icons.ts` | The UI icons. They are generated from `scripts/icons.mjs` into `src/brand.gen.ts` by `npm run brand` |
+| `site/` | The pixelspec.dev landing page |
| `src/react.ts` | The `` React component |
| `src/auto.ts` | The drop-in `
+
+