diff --git a/openspec/changes/94/proposal.md b/openspec/changes/94/proposal.md new file mode 100644 index 0000000..ed65078 --- /dev/null +++ b/openspec/changes/94/proposal.md @@ -0,0 +1,17 @@ +# Change: Add Strava Footer Button + +## Why +The Strava club is an important community hub for TORQ users. Adding a footer button makes it easily discoverable and encourages community engagement. + +## What Changes +- Add new Strava button to the website footer +- Use minimalistic Strava icon in a square button matching existing footer icon button styles +- Button links to https://www.strava.com/clubs/torqlab and opens in new tab +- Include security attributes: `noopener` and `noreferrer` +- Check existing icon library for Strava icon; use provided SVG if not available + +## Impact +- Affected component: Footer component only +- Change type: Added +- No breaking changes +- Minimal scope: single button addition diff --git a/openspec/changes/94/specs/footer/spec.md b/openspec/changes/94/specs/footer/spec.md new file mode 100644 index 0000000..9816ea5 --- /dev/null +++ b/openspec/changes/94/specs/footer/spec.md @@ -0,0 +1,23 @@ +# Footer Social Button Specification + +## ADDED Requirements + +### Requirement: Strava Club Link Button +Adds a clickable footer button that links to the TORQ Strava club with consistent styling and security considerations. + +#### Scenario: User clicks Strava button +- **WHEN** user clicks the Strava icon button in the footer +- **THEN** https://www.strava.com/clubs/torqlab opens in a new browser tab +- **AND** the link includes `noopener` and `noreferrer` attributes for security +- **AND** the original page remains visible in the current tab + +#### Scenario: Button visual consistency +- **WHEN** the page renders the footer +- **THEN** the Strava button appears with the same square icon button styling as other footer social icons +- **AND** the Strava icon is minimalistic and clearly recognizable +- **AND** the button hover state matches existing footer icon buttons + +#### Scenario: Icon availability +- **WHEN** the icon library contains a Strava icon +- **THEN** use the existing icon from the library +- **OTHERWISE** use the provided SVG from the issue description diff --git a/openspec/changes/94/tasks.md b/openspec/changes/94/tasks.md new file mode 100644 index 0000000..2106d23 --- /dev/null +++ b/openspec/changes/94/tasks.md @@ -0,0 +1,27 @@ +# Implementation Checklist + +## Planning +- [x] Reviewed requirements +- [x] Confirmed approach +- [x] Identified key changes + +## Implementation +- [ ] 1.1 Locate and open footer component +- [ ] 1.2 Check existing icon library for Strava icon +- [ ] 1.3 Add Strava icon import (library or SVG file) +- [ ] 1.4 Create Strava button element with link to https://www.strava.com/clubs/torqlab +- [ ] 1.5 Add `noopener` and `noreferrer` attributes to anchor tag +- [ ] 1.6 Set button target="_blank" to open in new tab +- [ ] 1.7 Apply consistent styling with existing footer icon buttons + +## Testing & Verification +- [ ] 2.1 Verify button renders correctly in footer +- [ ] 2.2 Verify button appears with proper icon and styling +- [ ] 2.3 Test link opens in new tab +- [ ] 2.4 Verify security attributes are present in HTML +- [ ] 2.5 Test responsive behavior on mobile/tablet views + +## Documentation & Cleanup +- [ ] 3.1 Run lint and format checks (`bun run lint`) +- [ ] 3.2 Test suite passes (`bun run test`) +- [ ] 3.3 Review for any unused imports or code