Context
The engine currently tracks 250+ CSS properties across 13 email clients, synced from caniemail.com. But there are gaps — some commonly-used properties aren't tracked or have incomplete client coverage.
How to contribute
This is a great first contribution! The CSS support data lives in:
- `src/data/css-support.ts` — the main compatibility matrix
- `scripts/sync-caniemail.ts` — auto-sync from caniemail.com
To add a missing property:
- Check caniemail.com for the property's support status
- If it's in caniemail.com but missing from the engine, the sync script may need updating
- If it's NOT in caniemail.com, add it manually with a source citation (MDN, email client docs, personal testing)
- Add a test case in the relevant test file
Properties we know are missing or incomplete:
- `aspect-ratio` — increasingly used, limited client data
- `clamp()` — used in fluid typography
- `:has()` selector — new CSS, unknown email client support
- `container queries` — emerging CSS feature
- `accent-color` — form styling
- `text-wrap: balance` — typography
Getting started
bun install
bun test # Run all 580 tests
bun run sync:caniemail # Refresh data from caniemail.com
bun run check:freshness # See which data sources are stale
Context
The engine currently tracks 250+ CSS properties across 13 email clients, synced from caniemail.com. But there are gaps — some commonly-used properties aren't tracked or have incomplete client coverage.
How to contribute
This is a great first contribution! The CSS support data lives in:
To add a missing property:
Properties we know are missing or incomplete:
Getting started