- Folder
- src/sections/Experience/
- Props
- cvHref: the CV file's URL; omitted, the résumé link is not rendered
- the label comes from sectionLabel("experience") in src/content/nav.ts, the rows from src/content/experience.ts and the link text from profile.cvLinkText
- Tokens
- Rows: ExperienceList, 48 px apart; hovering or focusing one dims its siblings to 50% opacity
- 32 px between the label and the first row (24 px on phone), and between the last row and the résumé link
- Résumé link: Link kind arrow, text-title Text, Accent Text on hover and focus; opens the PDF in a new tab
- Label: SectionLabel, a sticky frosted bar on phone
- Motion
- Sibling dim: rows fade to 50% opacity over 150 ms with the standard curve; under reduced motion the opacity changes at once
- Arrow: a 75 ms nudge up and right on hover and focus; under reduced motion it jumps to its hover position at once
- Accessibility
- section with id experience and aria-labelledby experience-label, so its accessible name is the h2's text, Experience
- scroll-mt-24 phone:scroll-mt-14 set the landing offset of a hash jump: 96 px on desktop, 56 px on phone
- The résumé link is left out, not disabled, when there is no file; it opens in a new tab with rel noopener noreferrer