First deployment
Some checks failed
quality-gates / lint-and-test (push) Has been cancelled
quality-gates / security-scan (push) Has been cancelled

This commit is contained in:
2026-02-13 09:14:04 -05:00
parent 0e21e035f5
commit 679561bcdb
128 changed files with 3479 additions and 120 deletions

View File

@@ -0,0 +1,47 @@
## Purpose
Canonical specification for share-and-contact-microinteractions requirements synced from OpenSpec change deltas.
## Requirements
### Requirement: Modal/footer exposes minimal icon-based share actions
The system SHALL provide visible, accessible icon-only share actions for article permalinks on supported providers.
#### Scenario: Supported share providers
- **WHEN** share controls are rendered
- **THEN** icons for `X`, `WhatsApp`, and `LinkedIn` are displayed
- **AND** activating an icon opens provider share flow with the article permalink
#### Scenario: Light-theme icon visibility
- **WHEN** the site is in light mode
- **THEN** share icons remain visibly distinguishable with accessible contrast
- **AND** icon controls remain keyboard focusable
#### Scenario: Copy-link share action
- **WHEN** a user activates the copy-to-clipboard share control
- **THEN** the article permalink is written to clipboard
- **AND** action succeeds without navigating away
### Requirement: Footer supports env-driven GitHub and contact links
The system SHALL conditionally render GitHub and contact-email links from environment-backed configuration.
#### Scenario: Config present
- **WHEN** GitHub URL and contact email are configured
- **THEN** footer renders both links as interactive controls
#### Scenario: Config absent
- **WHEN** either value is missing
- **THEN** corresponding footer control is hidden without breaking layout
#### Scenario: Contact link visible when configured
- **WHEN** `CONTACT_EMAIL` is present in frontend config payload
- **THEN** footer shows the contact email affordance
- **AND** hover microcopy behavior remains enabled
### Requirement: Contact affordance provides randomized safe microcopy
The contact link SHALL present randomized, policy-safe helper messages to encourage feedback.
#### Scenario: Randomized helper tooltip
- **WHEN** user hovers or nears the contact affordance
- **THEN** a tooltip-style helper message is shown from a predefined safe message pool
- **AND** message language avoids profanity/offensive/racist/sexist/misogynistic content