Give Create rule a ghost hover, swap the header portraits, and add sharing preview images #84

Merged
an.di merged 2 commits from adilallo/fix/CR-215-header-images into main 2026-09-29 21:45:53 +00:00
Member

Overview

The marketing header’s Create rule button picked up a filled invert hover that does not match the current ghost treatment, and the three profile portraits were out of date. Sharing cards also had no preview image, and every page’s Open Graph URL still pointed at the production homepage, so a staging link looked like a duplicate of the live site.

Changes

  • Create rule in the marketing header is the ghost default button: cream label, transparent fill, no invert hover or brand ring.
  • Replaced the three header portraits with the current set.
  • Canonical and og:url stay path-based and resolve against this instance’s public host (CLOUDRON_APP_ORIGIN, then production), so staging shares do not advertise the live domain.
  • Default 1200×630 share image from the hero; templates and articles override it. Regenerate with npm run generate:og-images.

Screenshots

How to Test

  1. Run npm run dev and open the marketing home page.
  2. Confirm Create rule is a ghost button (cream text, no fill). Hover it: no invert fill and no brand ring.
  3. Confirm the three header portraits match the updated set.
  4. View source on /: og:image is /assets/marketing/og-image.png at 1200×630; canonical and og:url are / (resolved against the instance host, not a hardcoded production homepage).
  5. View source on /templates: share image is /assets/marketing/og-image-templates.png.
  6. View source on a catalog article such as /blog/how-chaos-concentrates-control: share image is /content/blog/how-chaos-concentrates-control-og.png.
  7. npx vitest run tests/components/Top.test.tsx tests/unit/siteMetadata.test.ts

Notes

  • Share URLs use the instance origin rather than the request Host header, so the static page shell can still prerender.
  • JSON-LD on some marketing pages still hardcodes the production domain; that is unchanged here.
## Overview The marketing header’s Create rule button picked up a filled invert hover that does not match the current ghost treatment, and the three profile portraits were out of date. Sharing cards also had no preview image, and every page’s Open Graph URL still pointed at the production homepage, so a staging link looked like a duplicate of the live site. ## Changes - Create rule in the marketing header is the ghost default button: cream label, transparent fill, no invert hover or brand ring. - Replaced the three header portraits with the current set. - Canonical and `og:url` stay path-based and resolve against this instance’s public host (`CLOUDRON_APP_ORIGIN`, then production), so staging shares do not advertise the live domain. - Default 1200×630 share image from the hero; templates and articles override it. Regenerate with `npm run generate:og-images`. ## Screenshots ## How to Test 1. Run `npm run dev` and open the marketing home page. 2. Confirm Create rule is a ghost button (cream text, no fill). Hover it: no invert fill and no brand ring. 3. Confirm the three header portraits match the updated set. 4. View source on `/`: `og:image` is `/assets/marketing/og-image.png` at 1200×630; canonical and `og:url` are `/` (resolved against the instance host, not a hardcoded production homepage). 5. View source on `/templates`: share image is `/assets/marketing/og-image-templates.png`. 6. View source on a catalog article such as `/blog/how-chaos-concentrates-control`: share image is `/content/blog/how-chaos-concentrates-control-og.png`. 7. `npx vitest run tests/components/Top.test.tsx tests/unit/siteMetadata.test.ts` ## Notes - Share URLs use the instance origin rather than the request Host header, so the static page shell can still prerender. - JSON-LD on some marketing pages still hardcodes the production domain; that is unchanged here.
an.di self-assigned this 2026-09-29 21:45:29 +00:00
an.di added 2 commits 2026-09-29 21:45:29 +00:00
Ghost matches the current marketing header, so the button no longer picks up a brand ring on hover.

Co-authored-by: Cursor <cursoragent@cursor.com>
Staging no longer advertises production canonicals, and Slack/social previews get a default hero card with template and article overrides.

Co-authored-by: Cursor <cursoragent@cursor.com>
an.di merged commit fd9f82ea19 into main 2026-09-29 21:45:53 +00:00
an.di deleted branch adilallo/fix/CR-215-header-images 2026-09-29 21:45:53 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: CommunityRule/community-rule#84