Resources
Contribution Rules
How to extend Peri without diluting it. The system is small on purpose — most contributions should reuse before they invent.
The checklist, in order
- 01Reuse: does an existing component, prefix, or pattern cover this? (Check the relevant component page and the CSS prefix table.)
- 02Tokens only: no raw hexes, no new gradients, no new shadows. If a token is missing, propose it on the Colors page first.
- 03Palette law: warm palette only. Purple in any form is an automatic rejection.
- 04Spacing: if you're placing a card, the answer is 16. New gaps need a reason.
- 05AI surfaces: any card rendering engine output must implement all four disclosure layers and the AI Insight contract.
- 06Copy: interpretation first, confidence-hedged, no exclamation marks, no streaks/badges/guilt.
- 07Divergence: if your change makes app and Figma disagree, add a ruling to the register in the same change.
- 08Accessibility: meet the system-wide rules; add component notes to the relevant page.
- 09Document: every new component/pattern lands with its portal page — undocumented UI is unfinished UI.
Hard constraints (never relax)
Product safety rules
- No fever or ovulation inference from temperature data.
- No raw physiological numbers presented as medical readings.
- Symptoms always win over cycle optimism in any conflict.
- Missing data reduces confidence — never scores, never guilt.
- Storage keys are immutable (existing users' data).
Sources of truth
| Question | Answer lives in |
|---|---|
| How does it behave? | the shipped app (tuluna-app/) — engines and screens |
| How should it look? | the Peri Figma file (Design System + Final screens) |
| Who wins a conflict? | the divergence register |
| What does a word mean? | the glossary |