Skip to content

feat(footer): credit Recurssive at the foot of the footer - #1136

Merged
Doberjohn merged 5 commits into
masterfrom
feature/recurssive-credit
Nov 5, 2026
Merged

Doberjohn merged 5 commits into
masterfrom
feature/recurssive-credit

Conversation

@Doberjohn

@Doberjohn Doberjohn commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

What changes

The site footer now ends with a studio credit: the Reflow mark and "Developed and designed by Recurssive", linking to recurssive.com. It sits centred under the Ravensburger notice, at the footer's FONT_SIZES.xs.

  • apps/web/src/shared/components/RecurssiveCredit.tsx is Inkweave's own copy of Recurssive's shared footer credit, its plain variant.
    • It's restyled with Inkweave's tokens (owner, 2026-11-05) instead of Recurssive's purples, so it needs no exemption from the design-token rules.
    • It rests in COLORS.textMuted like the footer's links. On hover the text lifts to COLORS.text and the mark turns COLORS.primary, through useHover as LinkButton does.
    • The link is rel="noopener nofollow": it repeats in the footer of every page, and Google lists "widely distributed links in the footers or templates of various sites" under link spam.
  • RecurssiveCredit.stories.tsx is its story, for check:stories.
  • Footer.tsx renders it as the footer's last line.

Hooks skipped (owner-approved)

Both the commit and the push used --no-verify. On Windows, master's own suite fails here:

  • tsc -b stops with 8 errors.
  • 28 tests fail in BinderShelf.test.tsx and useBrowseCollection.test.tsx.

Both come from binders/BinderShelf.tsx and binders/binderShelf.ts differing only in letter case, which a case-insensitive filesystem can't tell apart. The same two test files fail with this change set aside. CI on Linux is the first full run of typecheck, E2E and CodeScene on this change.

Verification

Run on Windows:

  • ESLint (with the inkweave/* rules), check:design, check:stories and knip pass for these files. Knip's two unused files are the binder-shelf pair, already on master.
  • Vitest: 247 of 249 test files pass. The 2 that fail are the binder-shelf files above. CardPage.test.tsx, the test that renders the Footer, passes.
  • Browser, dev server:
    • On /about at desktop width, the credit is centred and has rel="noopener nofollow", textMuted, 10px. Hovering gives text and a #ffb900 mark.
    • On / at 375px, it's the footer's last line, with nothing fixed covering it.
    • No console errors.

Summary by cubic

Adds a studio credit at the foot of the site footer: the Reflow mark and "Developed and designed by Recurssive", linking to recurssive.com.

  • Renders an Inkweave-local copy of Recurssive's shared footer credit, restyled with Inkweave's design tokens (textMuted at rest, text with a brand-gold mark on hover or keyboard focus) so it passes the design-token rules without an exemption.
  • Lights on keyboard focus only, since a click's focus outlasts the click when the link opens a new tab.
  • The credit's minHeight is TOUCH_TARGET (44px), since its 10px line alone was under WCAG 2.5.8's 24px minimum; the footer grows 32px.
  • The mark is sized from its 120×80 viewBox (1.5em × 1em), since WebKit can scale an inline SVG flex item to its 300px default at width: auto.
  • The link is rel="noopener nofollow", since it repeats in the footer of every page.
  • Adds a Storybook story for the component.
  • Raises the User-facing JS budget to 469 kB, since the credit's ~0.9 kB pushes master's 467,979 bytes past the 468 kB limit.

Note on verification
Both the commit and push used --no-verify (owner-approved): on Windows, master's own suite fails to typecheck and 28 tests fail in BinderShelf.test.tsx and useBrowseCollection.test.tsx, caused by binders/BinderShelf.tsx and binders/binderShelf.ts differing only in letter case on a case-insensitive filesystem. The same failures occur with this change set aside.

Written for commit 15ce13c. Summary will update on new commits.

View guided diff

"Developed and designed by Recurssive", with the Reflow mark, linking to
recurssive.com. Inkweave's own copy of Recurssive's shared footer credit,
restyled with Inkweave's tokens (owner, 2026-11-05) so it needs no exemption
from the design-token rules: textMuted at rest, text on hover, and the mark
turns the brand gold. rel="nofollow", since the link repeats in the footer of
every page.

Committed with --no-verify (owner-approved): on Windows the pre-commit suite
fails 28 binder-shelf tests on master as well, from BinderShelf.tsx and
binderShelf.ts sharing a name on a case-insensitive filesystem.
@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
inkweave Ready Ready Preview Nov 5, 2026 3:57pm UTC

Request Review

codescene-delta-analysis[bot]

This comment was marked as outdated.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size
User-facing JS 457.86 KB (0%)
Supabase SDK (lazy) 26.98 KB (0%)
PostHog SDK (lazy) 100.91 KB (0%)
Entry chunk 28.03 KB (0%)
Collection and reveals JS 74.42 KB (0%)
Binders JS (lazy) 24.66 KB (0%)
Release notes page 9.33 KB (0%)
Card data JSON 110.37 KB (0%)
Collection index JSON 63.83 KB (0%)
Collection set chunks 158.18 KB (0%)

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

View guided diff | Re-trigger cubic

…us, use DURATION

Review fixes on the Recurssive credit:

- The mark sets width 1.5em beside height 1em, from the 120x80 viewBox,
  instead of width auto, which WebKit can size at its 300px default as an
  inline SVG flex item.
- Keyboard focus lights the credit as hover does (text, gold mark).
- The two transitions read DURATION.fast instead of a literal 0.15s.
- The mark's coordinates are rounded to one decimal by script (about 0.01px
  at the footer's 10px), trimming about 100 bytes gzipped.

Committed with --no-verify (owner-approved), for the Windows-only
binder-shelf clash described in 5823eb7.
Master measured 467,979 bytes against the 468 kB limit, so the credit's
~0.9 kB (the Reflow mark's five paths plus the link) took it to 468.8 kB.
Raised by 1 kB, as #1118 and #1075 did for their features.
codescene-delta-analysis[bot]

This comment was marked as outdated.

…its comment

The credit stands alone on the footer's last row, not inside a sentence, so
its 10px line was its whole tap area, under WCAG 2.5.8's 24px. minHeight
TOUCH_TARGET makes it 44px tall; the footer grows 32px.

The header comment states the hand-kept copy's constraint without the history
CLAUDE.md asks comments to leave out.

Committed with --no-verify (owner-approved), for the Windows-only
binder-shelf clash described in 5823eb7.
codescene-delta-analysis[bot]

This comment was marked as outdated.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 2 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

View guided diff | Fix all with cubic | Re-trigger cubic

A click's focus outlasts the click: the link opens a new tab, and focus is
still on it on the way back, which left the credit lit. onFocus now reads
focusedByKeyboard (:focus-visible), as CollectionSetPanel does.

Committed with --no-verify (owner-approved for #1136), for the Windows-only
binder-shelf clash described in 5823eb7.
@Doberjohn
Doberjohn merged commit 2ae0b89 into master Nov 5, 2026
15 checks passed
@Doberjohn
Doberjohn deleted the feature/recurssive-credit branch November 5, 2026 16:59

@codescene-delta-analysis codescene-delta-analysis Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gates Passed
6 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

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.

1 participant