Skip to content

feat: announce shell.online and fix blog image sizing - #227

Merged
TeoSlayer merged 1 commit into
pilot-protocol:mainfrom
artemiia:feat/shell-online-announcement
Sep 2, 2026
Merged

TeoSlayer merged 1 commit into
pilot-protocol:mainfrom
artemiia:feat/shell-online-announcement

Conversation

@artemiia

@artemiia artemiia commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Replaces the seed-round announcement bar with a shell.online banner, adds a launch post, and fixes three pre-existing layout bugs the post surfaced.

Banner

The home announcement bar now points at shell.online, with the product mark added (public/img/shell-online.svg, taken from the shell.online favicon). It reuses the existing .announce-bar styles, so there are no new layout rules. Announcement text goes 0.84 → 0.98rem (0.76 → 0.88rem on mobile) with the badge and mark scaled to match, and data-track-target is renamed seed-roundshell-online so the two campaigns don't merge in analytics.

The seed announcement itself is untouched — still published at /news/pilot-raises-4-5m-seed and still linked from /about.

Post

/blog/shell-online-live-terminal-browser-link, sourced from shell.online, its knowledge base, and TeoSlayer/shell.online at v0.6.2. Category Blog, banner in the same style as the existing SVG banners, eight internal backlinks. The product name renders in a new --shell-blue token via .brand-shell, defined per theme (7.4:1 contrast on dark, 13.7:1 on light — both in sRGB gamut).

Layout fixes

These are pre-existing and affect all 103 posts, not just the new one. Worth a separate look from the content above.

  1. Thumbnails rendered as magnified crops. .blog-card img and .related-card img set width: 100% and aspect-ratio: 1200/630 but no height, so the height="630" attribute won and aspect-ratio was ignored. Every banner rendered 630px tall under object-fit: cover. The blog index was 72,398px long instead of 18,758px. Fixed with height: auto.

  2. "Latest" badge overlapped the first card's title. .blog-hero::after is absolutely positioned with no space reserved. Adds padding-right on desktop where the badge sits beside the title, reset at ≤720px where the single-column layout puts the badge over the image instead.

  3. Empty next/previous nav cell rendered as a solid block. BlogLayout emits a bare <div /> when a post has no previous or next sibling. With no background, the nav grid's --line background showed through. Adds .blog-nav-empty.

Verification

✓ npm run check:plain   97 pairs, no orphans, 45 stamped twins in sync
✓ npm run build         409 HTML files
✓ npm run check:site    274 public pages, 33,341 internal refs

src/pages/plain/index.astro carries only a refreshed plain-source-sha256 stamp — the plain twin has never included the announcement bar, so there's no content to mirror. regen-plain.mjs needs GEMINI_API_KEY, which I don't have; this follows the same stamp-only pattern as a5974e7.

Checked in both themes and at mobile width. Note that CI skips the Cloudflare preview deploy for fork PRs, so there's no preview URL on this one.

🤖 Generated with Claude Code

https://claude.ai/code/session_01V1q6UsG1wWg8QxGGKDQj5h

Replace the seed-round announcement bar with a shell.online banner, add
a launch post, and fix three pre-existing layout bugs the post surfaced.

Banner:
- Point the home announcement bar at shell.online with the product mark
  (public/img/shell-online.svg, taken from the shell.online favicon).
  Reuses the existing .announce-bar styles; the seed announcement stays
  published at /news/pilot-raises-4-5m-seed and linked from /about.
- Bump announcement text 0.84->0.98rem (0.76->0.88rem on mobile) with the
  badge and mark scaled to match.
- data-track-target renamed seed-round -> shell-online so the two
  campaigns do not merge in analytics.

Post:
- src/pages/blog/shell-online-live-terminal-browser-link.astro, sourced
  from shell.online, its knowledge base, and TeoSlayer/shell.online at
  v0.6.2. Eight internal backlinks; category Blog.
- .brand-shell renders the product name in a new --shell-blue token,
  defined per theme (7.4:1 on dark, 13.7:1 on light).

Layout fixes, all pre-existing and affecting every post:
- .blog-card img and .related-card img set width:100% and aspect-ratio
  but no height, so the height="630" attribute won and aspect-ratio was
  ignored. Every thumbnail rendered as a 630px-tall magnified crop; the
  blog index was 72,398px instead of 18,758px. Adds height:auto.
- .blog-hero::after ("Latest") is absolutely positioned with no space
  reserved, overlapping the first card's title. Adds padding-right on
  desktop, where the badge sits beside the title; reset at <=720px,
  where the single-column layout puts it over the image instead.
- BlogLayout rendered a bare <div /> when a post has no previous or next
  sibling. With no background, the nav grid's line colour showed through
  as a solid block. Adds .blog-nav-empty.

Verified: npm run check:plain, npm run build, npm run check:site.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1q6UsG1wWg8QxGGKDQj5h
@TeoSlayer
TeoSlayer merged commit 1c209ba into pilot-protocol:main Sep 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants