The layer now registers `nuxt-og-image` and calls `defineOgImage` from its
own pages, so the local module registration, both `.satori.vue` templates
and the two page overrides that existed only to call `defineOgImage` all go.
The card accent changes with them: the deleted templates hardcoded
`text-emerald-500` while `ui.colors.primary` is `teal`. The layer resolves
the accent from `--ui-primary`, so the card renders the actual brand colour.
Requires @uxfront/layer-docs 0.4.0, which carries the module registration
the changelog pages' `defineOgImage` calls now depend on.
Description
The other half of UXF-122.
@uxfront/layer-docsnow registersnuxt-og-imageand callsdefineOgImagefrom its own docs and landing pages, so everything this app carried locally to make OG cards work is deleted:app/components/OgImage/OgImage{Docs,Landing}.satori.vue— both moved into the layer verbatim.app/pages/[[lang]]/[...slug].vueandapp/pages/[[lang]]/docs/[section]/[...slug].vue— both were documented as "delete this override once OG image support lands in the layer". Diffed against the layer copies before deleting: the only deltas were formatting andheadline: "styleframe"vs the layer'sappConfig.header?.title, andapp.config.tssetstitle: "styleframe", so the rendered headline is identical.nuxt-og-imagemodule registration and the localogImage: { zeroRuntime: true }block innuxt.config.ts— both now come from the layer.The card accent changes, and that is the fix. The deleted templates hardcoded
text-emerald-500whileui.colors.primaryisteal. The layer resolves the accent from--ui-primaryat build time, so the card now renders the actual brand colour. Parity here is layout, type and composition — not the hex.@resvg/resvg-jsis added explicitly. It was only ever present via pnpm's optional-peer auto-install; the layer names it as a real peer because satori emits SVG only and needs a rasteriser to produce the PNG.Not touched:
app/pages/[[lang]]/changelog/{index,[slug]}.vue. Both still calldefineOgImage("DocsSatori", …), which keeps working because the layer ships the same component name and props. Those files are UXF-180's.Related issue
Relates to UXF-122.
Type of change
(No functional change with one deliberate exception: the accent is now correct.)
Checklist
pnpm build:nodocs && pnpm lint && pnpm typecheck && pnpm test— blocked, see below@styleframe/docsis in the changesets ignore list, so no changeset appliesNotes
Draft, and blocked on a publish. This app consumes
@uxfront/layer-docsfrom npm, not the workspace. The dependency is bumped to^0.4.0, which does not exist yet — it is the version that will carry the OG support. Until uxfront-com/uxfront#64 merges and releases, this branch cannot install or build, and the changelog pages'defineOgImagecalls have no module behind them.Ready to un-draft the moment
0.4.0is on npm.