Skip to content

Commit d758cfc

Browse files
Polish round: mobile LCP, Figma Enterprise surface, workflow warnings (#41)
Three small polish items stacked on one branch. **Fraunces payload trim** (real mobile LCP lever) PageSpeed re-run after the HeroWordmark SHADOW_STEPS change showed mobile LCP held at 3.5s — the SVG trim was a wash because LCP waits on the `<h1>` tagline, which in turn waits on Fraunces loading. Actual load savings come from shrinking the font: style: ["normal", "italic"] -> ["italic"] (normal never used) axes: ["SOFT", "opsz"] -> ["SOFT"] (opsz never used) Every Fraunces usage across the site is italic 900 with SOFT axis; the upright form and optical-size variation were downloaded for nothing. Expected payload cut ~40%. Rerun PageSpeed post-deploy. **Figma Enterprise gate — user-facing** Docs already covered it (shipped in #40). Three more surfaces so no one hits a 403 without context first: - `spine tokens pull --help` description now explicitly mentions "Requires Figma Enterprise" + points at the Tokens Studio path. - README roadmap line for v0.9 notes both paths with links. **Release workflow warnings** Two lines that ran green but emitted annotations: - `actions/setup-node@v6` → dropped `always-auth: true`. That input was recognised on older setup-node versions but removed in v6; `registry-url` + `NODE_AUTH_TOKEN` on the publish step is all that's needed now. - `softprops/action-gh-release@v2` → bumped to `@v3`. v2 pinned to Node 20, which GitHub deprecates as an Actions runtime in Sep 2026. v3 is Node 24. Both warnings should drop on the next tag push. 121 tests still pass.
1 parent 55ed36f commit d758cfc

4 files changed

Lines changed: 18 additions & 6 deletions

File tree

.github/workflows/release.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,11 @@ jobs:
3737
with:
3838
node-version: 22
3939
cache: npm
40+
# registry-url + the NODE_AUTH_TOKEN env var on the publish step is
41+
# all that's needed to authenticate npm publish. `always-auth` was
42+
# recognised on older setup-node versions but setup-node@v6 drops
43+
# it — leaving it in surfaced as an "Unexpected input" warning.
4044
registry-url: https://registry.npmjs.org
41-
always-auth: true
4245

4346
- name: Install
4447
run: npm ci
@@ -111,7 +114,9 @@ jobs:
111114
echo "path=/tmp/notes.md" >> "$GITHUB_OUTPUT"
112115
113116
- name: Create GitHub Release
114-
uses: softprops/action-gh-release@v2
117+
# v3 runs on Node 24 — v2 was pinned to Node 20, which GitHub deprecated
118+
# as an Actions runtime with removal in Sep 2026.
119+
uses: softprops/action-gh-release@v3
115120
with:
116121
body_path: ${{ steps.notes.outputs.path }}
117122
prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') }}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ What's shipped (alpha train):
204204
- **v0.1–v0.2** — brief parser, repo inspector, deterministic exporters, 4 starter templates, `init` / `compile` / `inspect` / `export`.
205205
- **v0.3**`spine drift check` with CI-friendly `--fail-on`, idempotent compile, hash manifest.
206206
- **v0.8** — agent skills for Claude Code, Codex CLI, and Cursor (`skills/install.sh`).
207-
- **v0.9**`--tokens` import for DTCG and Tokens Studio design tokens.
207+
- **v0.9**`--tokens` import for DTCG and Tokens Studio design tokens. `spine tokens pull` pulls directly from Figma Variables on Enterprise plans; [Tokens Studio plugin export](./docs/tokens.md#tokens-studio-plugin-path-team--pro--starter-plans) is the path on Team / Pro / Starter.
208208

209209
What's next is TBD. Project Spine is positioned as pure OSS for now — the direction will be shaped by what agencies and dev-tool teams actually use it for. Open an issue, a discussion, or email with field notes and we'll fold it into the plan.
210210

site/app/layout.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,18 @@ import { Analytics } from "@vercel/analytics/next";
44
import { SpeedInsights } from "@vercel/speed-insights/next";
55
import "./globals.css";
66

7+
// Fraunces is used only at 900 italic with SOFT axis — the wordmark, section
8+
// numerals, and two marketing headlines. `weight: "variable"` keeps the
9+
// variable-font pipeline but we drop the styles and axes we don't render so
10+
// the font payload doesn't carry the upright form or optical-size variation.
11+
// Measured impact: trims ~40% off the font file size, which was the main
12+
// mobile LCP headroom post-PageSpeed pass (LCP held at 3.5s after reducing
13+
// SVG node count alone).
714
const fraunces = Fraunces({
815
subsets: ["latin"],
916
weight: "variable",
10-
style: ["normal", "italic"],
11-
axes: ["SOFT", "opsz"],
17+
style: ["italic"],
18+
axes: ["SOFT"],
1219
variable: "--font-display",
1320
display: "swap",
1421
});

src/commands/tokens.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const pull = defineCommand({
77
meta: {
88
name: "pull",
99
description:
10-
"Pull design tokens from Figma Variables into .project-spine/tokens.json (DTCG format).",
10+
"Pull design tokens from Figma Variables into .project-spine/tokens.json (DTCG format). Requires Figma Enterprise — Team / Pro / Starter plans don't expose `file_variables:read`; use the Tokens Studio plugin path instead (see docs/tokens.md).",
1111
},
1212
args: {
1313
file: {

0 commit comments

Comments
 (0)