Skip to content

Claude/hansmartens market positioning mlt89z - #684

Merged
hansmartensdev merged 6 commits into
mainfrom
claude/hansmartens-market-positioning-mlt89z
Sep 5, 2026
Merged

hansmartensdev merged 6 commits into
mainfrom
claude/hansmartens-market-positioning-mlt89z

Conversation

@hansmartensdev

Copy link
Copy Markdown
Owner

What does this PR do?

A clear description of the change and why it was made.

Fixes # (issue number, if applicable)

Type of change

  • Bug fix
  • New feature or component
  • Documentation update
  • Refactor or code quality improvement
  • Other: ___

Checklist

  • pnpm lint passes with 0 errors
  • pnpm check passes with 0 errors
  • pnpm build completes successfully
  • I have tested this change in the browser
  • No unnecessary files are included in this PR

Screenshots (if relevant)

Add before/after screenshots for visual changes.

The homepage shows the first four projects marked `featured`, sorted by
`order`; the projects index lists every visible project in that same
`order`. E-Commerce Store now sits second in both — it is featured, and
its `order` moves from 6 into the slot at 1, which was vacant. Studio
Portfolio is no longer featured and keeps `order: 2`, so it stays third
on the index.

E-Commerce Store has a page of its own: it carries the gallery that
demonstrates the carousel, so it is not a `placeholder`. Studio
Portfolio is one, and `ProjectCard` renders a placeholder without an
href — which made the homepage's second card one a visitor could not
open. Both homepage cards now lead to a project page.

The footer's Projects column is unchanged. It sorts routable projects
ahead of placeholders, and E-Commerce Store was already the second of
the two routable entries.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
The commit-message rules told a contributor to remove the
`Co-Authored-By` line for an assistant and the `Claude-Session` link,
while 218 commits on `main` carried both. A rule the history contradicts
guides nobody, and in a public repository the contradiction is visible
to anyone who reads the file and then scrolls the commit list.

The rule now describes what the history does: the trailers are kept, so
the authorship recorded on a commit matches who wrote it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
A dot was an 8px button in the hero carousel and a 6px one in the body
gallery, both under the 24x24 CSS pixel minimum for a touch target. Any
project page with a gallery fails the audit on it: the demo's own
/projects/ecommerce-store scores 97 for accessibility today, with the
two inactive dots named as the cause.

The button now carries the 24x24 target and a span inside it carries the
dot, so the control is thumb-sized without the dot being drawn larger.
The row gives up its gap in exchange, leaving the targets to meet edge
to edge — overlapping targets fail the same audit. The active dot
narrows from 24px to 16px so it still reads as a pill within its target.

The body gallery marked its active dot by rewriting the button's entire
class list from script, which would have erased the target sizing on the
first slide change. It sets `data-active` instead, as the hero carousel
already did, and the appearance follows from that attribute. The same
change gives those dots the `aria-selected` that `role="tab"` requires
and that they lacked.

Both carousels measure 24x24 per dot, clicking the third dot still moves
to the third slide, and accessibility returns to 100.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
The project's single screenshot advertised "57+ designed components" —
the count that was corrected to 44 some time ago, left behind in an
image because nothing checks the text inside a JPEG. It is replaced by
three captures of the current homepage hero, one per colour theme:
Blue, the default, then Purple, then Teal.

Three images rather than one because the theme's selling point is that
every brand colour follows a single attribute. A gallery in the
frontmatter turns the hero into the swipeable carousel, so the page
shows what twelve colour themes mean instead of describing it.

Each capture is the homepage at 1440x900 on a 2x display, in the colour
mode the header ships with, so the images agree with the live site a
visitor reaches from the same page.

The ready-to-uncomment video slide moves here with the gallery, and the
post that points a reader at it now names this file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
Its page was five headings of instructions to the person installing the
theme — "Replace this with the actual client brief", "Describe the
store's structure", "Conversion rate change, page speed improvements,
revenue impact" — served to every visitor of the demo. It was also the
second card on the home page, so it was the first project page most
visitors opened.

Marking it `placeholder` removes the page and leaves the card, the same
treatment the three other demo projects get. Astro Rocket is then the
one project with a page, and the one project a card links to, which is
the only project here that is real.

Its wireframes go with the page that used them. The carousel they
demonstrated is demonstrated on the Astro Rocket project instead, on
screenshots of the theme itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
A carousel holding more than one slide frames every image `aspect-video`
with `object-cover`, while a lone slide keeps its natural height. The
three captures were 16:10, taken at the dimensions of the single
screenshot they replaced, so going from one image to three began
cropping them: a tenth of each image's height, half of it off the top,
which is where the header sits.

They are recaptured at 1600x900 — 16:9, and the same 900px height the
hero was composed at, so the header, the headline and the logo strip
all sit inside the frame. The slide shape the carousel wants is already
written down in the video-slides post, which gives 1280x720 as the size
that matches `aspect-video` exactly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwJB1u6U3vdEZ9LrHRebST
@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astro-rocket Ready Ready Preview Sep 5, 2026 7:05pm UTC

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@hansmartensdev
hansmartensdev merged commit 866f9cd into main Sep 5, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — cef5fd6e Deployed Sep 5, 2026 by vercel[bot]
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