Repository navigation
feat(design): redesign Team, Media, FAQ, Contact, Tools, Ideas and Endorsements - #613
Merged
Merged
Conversation
…n system - Team: editorial board rows with full bios, dense staff directory, membership CTA - Media: press release inline with progressive disclosure (replaces modal, keeps hash deep link and Plausible event), dated coverage list, accessible logo downloads - FAQ: native details accordion, MUI removed, loading/error/empty states, deep links now open the targeted question - Contact: routing list to the right channel per need, no-JS email fallback - All four: First Light bands, one Nightfall terminal CTA, Grove tokens, gray/green-800/blue/gradient drift removed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…text tokens - src/utils/designClasses.ts: one source for container, type scale, band, buttons, links and focus rings; about, team, media, faq, contact and the FAQ/press release components import it instead of redefining it - src/components/TerminalCta.astro: the single Nightfall block, used by team, media, faq and contact - RichTextRenderer: defaults move to Grove/Stone tokens, annotations become Tailwind classes instead of a style prop (CSP-safe if server-rendered), off-system Notion colours inherit instead of adding accents - DESIGN.md: point to the shared module and component Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying website with
|
| Latest commit: |
e583374
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://6e439bb8.website-aun.pages.dev |
| Branch Preview URL: | https://feat-redesign-team-media-faq.website-aun.pages.dev |
mailto links do nothing for visitors without a configured mail client, so each address on /contact and /media (including the press release contact and the terminal CTA) now has a Copy button. It uses the Clipboard API, falls back to selecting the address with a Ctrl+C/Cmd+C prompt, announces the result to screen readers, and stays hidden when JS is off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…logo tiles - CopyEmailButton is now a borderless icon button (tooltip + aria-label, check icon on success) sitting right next to each address - Press kit logo previews use First Light and Grove Green Deep instead of stone and the off-brand ink ground Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…idebar
- CopyEmailButton shows a small bubble above the icon after a click
("Copied", or the Ctrl+C/Cmd+C hint on fallback), clears the native title
meanwhile, and restarts its timer on repeat clicks
- Press release label column grows from 12rem to 18rem so the contact
email fits on one line beside its copy icon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clicking an email now copies the address and opens the mail app as usual. If the window has not blurred or been hidden ~1.2s later (no mail app or webmail tab took over), an "Email address copied" tooltip appears above the link; without clipboard access the address is selected with a Ctrl+C/Cmd+C hint. Removes CopyEmailButton and the extra wrappers it needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Tools: Thaura featured, "Start here" trio, remaining tools grouped into three categories as whole-row-clickable list rows (ToolRow), terminal CTA to membership and the incubator; adds an SEO description - Ideas: aria-pressed filter pills with counts, expandable <details> rows with an apply link beside each (replaces card grid and modal), loading, error, nothing-published and empty-filter states, numbered "start from a target" band, terminal CTA; one typed toIdea() mapper replaces three copy-pasted `any` blocks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…brief Cards as on the original page, restyled on the system: title, excerpt, apply link and a "Read more" label above a hairline. The whole card opens the brief in a native <dialog> (Esc, focus trap, backdrop click, focus return). Replaces the expandable rows; the loading skeleton matches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Page: hero with "what an endorsement means" panel, numbered criteria band (replaces the coloured card grid), review FAQ as static <details>, form band, terminal CTA to the incubator and membership - Form: MUI removed; react-hook-form with DESIGN.md inputs (Grove focus), fieldsets, visible labels, aria-invalid/describedby, char count, and sending, success and server-error states - Same 10 fields and JSON body to /api/endorsement-request; client rules reuse the server's validate.ts (stricter email than before), with tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings
/team,/media,/faq,/contact,/tools,/ideasand/endorsementsonto the live design system (DESIGN.md,/membershipcanonical,/aboutas the reference). Each page gets the same structure: a Paper hero, First Light bands with Grove Deep overlines, and one Nightfall closing block. The old gray,green-800, blue, gradient, heavy-shadow and side-stripe styling is removed.Pages
/volunteerand/contactas the secondary links.#member-driven-press-releasedeep links still open it, and the Plausible "Press Release Opened" event still fires. Press coverage is a dated list, newest first. Each logo download is now a visible, keyboard-reachable link instead of a hover-only overlay.PressReleaseDialog.astrois replaced byPressRelease.astro.<details>. Adds loading (skeleton), error (with retry) and empty states.#faq-...deep links now open and scroll to the question, which didn't work before. The API call,?showAll=yesandclient:onlyare unchanged.ToolRow.astro) where the whole row is clickable. All 15 tools, links and logos are kept. Adds an SEO description.aria-pressed) with counts. Ideas stay a card grid like the original, restyled on the system. A card opens the full brief in a native<dialog>(Esc, focus trap, backdrop click to close), and each card has its own apply link. Adds loading, error, nothing-published and empty-filter states. "Start from a target" becomes a numbered band. One typedtoIdea()helper replaces three copy-pastedanyblocks. The Notion fetch and the ProjectHub apply link are unchanged.<details>. The form drops MUI for inputs that follow DESIGN.md: green focus ring, visible labels,aria-invalid/aria-describedby, and sending, success and error states. It sends the same 10 fields and the same JSON to/api/endorsement-request. Client checks reuse the server'svalidate.tsand have tests.Email fallback
src/components/MailtoFallback.astro: clicking any email on/contactor/mediacopies the address and opens the mail app as usual. If nothing takes focus within ~1.2s (no mail app or webmail tab opened), an "Email address copied" tooltip appears above the link. Without clipboard access, the address is selected and the tooltip shows a Ctrl+C / Cmd+C hint. The outcome is announced to screen readers.Shared pieces
src/utils/designClasses.ts: one module for the container, type scale, band, buttons, links and focus rings./aboutand the four pages import it instead of copying it.src/components/TerminalCta.astro: the single Nightfall closing block.RichTextRenderer:styleprop, so it stays CSP-safe if server-rendered/ideasand/community-callpass their own link, gray, red and code classes, so those are unchanged there; text marked with other Notion colours on those pages will now inherit.DESIGN.md now points to both shared pieces.
Needs a human check
/applyvs the/project-application-formlink that/incubatorusespublic/images/press/are unusedTest plan
pnpm lint(0 errors),pnpm check(0 errors),pnpm test(420 passed)/media#member-driven-press-releaseexpands the release; the Plausible event fires on expand/faq#faq-...opens the right question; test loading and error states (throttle or block/api/faq)/contactwith JS disabled shows the fallback email text/tools: every row opens the right site in a new tab, and keyboard focus outlines the whole row/ideas: filters switch lists and counts, cards open the brief dialog (Esc and backdrop click close it), apply links open ProjectHub; the error state shows if the Notion fetch fails/endorsements: submit valid and invalid requests; check inline errors, the success screen, and that the server-error message keeps what was typed/ideasand/community-callrich text: bold, italic and links still render🤖 Generated with Claude Code