First off, thank you for considering contributing to OutlookReader!
- We use React, TypeScript, and Tailwind CSS.
- Strictly adhere to the existing
shadcn/uidesign patterns and Tailwind utility classes. - Make use of CSS variables defined in our theme for colors instead of hardcoded hex codes.
- Use
pnpmexclusively for package management. Do NOT usenpmoryarn.
- Public exports and complex functions MUST have JSDoc comments.
- Any changes involving Web Crypto, token exchange, or Microsoft Graph integration must include inline explanatory comments detailing the security rationale.
Before submitting a Pull Request, please ensure:
- All TypeScript compilation passes without errors via
pnpm tsc -b. - Any new features include relevant unit or integration tests.
- Security enhancements involving
DOMPurifyinclude test payloads verifying XSS prevention. - The UI works seamlessly in both Desktop (3-pane) and Mobile (stacked) views.
This project aims to be a lightweight, secure email reader. Features that require complex server-side infrastructure will be rejected. All features must be compatible with statically-hosted environments (GitHub Pages, Cloudflare Pages, Netlify).