Skip to content

Add SEO metadata and simplify hero slideshow controls - #42

Merged
minimaldesign merged 1 commit into
mainfrom
seo-and-hero-fixes
Jul 22, 2026
Merged

Add SEO metadata and simplify hero slideshow controls#42
minimaldesign merged 1 commit into
mainfrom
seo-and-hero-fixes

Conversation

@minimaldesign

Copy link
Copy Markdown
Owner

Closes #35 and #36, plus a small hero cleanup.

Component meta descriptions (#35)

Every /components page fell back to the same default meta description, so search engines saw duplicates across the whole section.

  • Added a required description field to the components schema in content.config.ts.
  • Wrote a one-line description in all 23 component MDX frontmatters. These flow into the existing BaseLayout meta/OG description automatically.
  • /llms.txt now prints component descriptions, matching how it already handled the docs section.

Blog post SEO (#36)

Posts shipped generic website page metadata with no structured data and a bare title.

  • BaseLayout.astro gained an optional article prop ({ publishedTime, author }) that switches og:type to article and emits article:published_time / article:author, plus a named head slot for extra head markup.
  • BlogPostLayout.astro uses both to inject a BlogPosting JSON-LD script (headline, description, datePublished, author, url, image when present) and titles posts X | mCSS Blog.

Hero slideshow play/pause removal

Clicking any pagination dot already stops autoplay, which is enough to satisfy WCAG 2.2.2, so the separate play/pause button was redundant.

  • Removed the button markup and its JS (renderPlayPause, listeners, aria state) from Hero.astro, and the .hero_pagination_playPause rules from component.hero.css. Regenerated dist/.
  • Note: reduced-motion users can no longer opt into autoplay (there's no play button); autoplay simply stays off, which matches the "dots are enough" intent.

Verification

astro check (0 errors), full astro build, and a live browser check of the slideshow demo: button gone, dots advance slides, and clicking a dot keeps the slideshow paused past the autoplay interval.

🤖 Generated with Claude Code

Fixes #35: component pages shared one fallback meta description. Add a
required `description` field to the components schema, write a one-line
description for each of the 23 component docs, and print those descriptions
in /llms.txt (matching the docs section).

Fixes #36: blog posts shipped generic page metadata. BaseLayout now takes
an optional `article` prop (og:type article plus article:published_time and
article:author) and a named `head` slot. BlogPostLayout uses both to emit
BlogPosting JSON-LD and titles posts "X | mCSS Blog".

Remove the slideshow play/pause button: clicking any pagination dot already
stops autoplay, which satisfies WCAG 2.2.2. Drops the button markup, its JS,
and its CSS; dist bundles regenerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 22, 2026

Copy link
Copy Markdown

Deploy Preview for mcssdev ready!

Name Link
🔨 Latest commit c59e409
🔍 Latest deploy log https://app.netlify.com/projects/mcssdev/deploys/6a61059b6f80c3000846e8bc
😎 Deploy Preview https://deploy-preview-42--mcssdev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 98
Accessibility: 98
Best Practices: 100
SEO: 99
PWA: 70
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@minimaldesign
minimaldesign merged commit 57f472a into main Jul 22, 2026
5 checks passed
@minimaldesign
minimaldesign deleted the seo-and-hero-fixes branch July 22, 2026 18:06
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.

Add meta descriptions to component pages

1 participant