feat(preview): cross-browser scrollbar, keyboard nav, dev-mode client simulation, docs overhaul
preview/index.html: - Fix scrollbar CSS: scoped webkit pseudo-elements + standards-track fallback, removed deprecated overflow:overlay - Keyboard navigation: arrows cycle focus between Theme/Template/Client selects, up/down select within focused dropdown, d/m toggle viewport - Dev/static mode detection: delayed static warning only when WebSocket absent, WebSocket errors only on disconnect (not on initial fail) - iframe sandbox: removed static sandbox attr, applied dynamically only in dev mode (file: protocol rejects sandboxed srcdoc) - Loading fix: removed double-toggle between init and render(); added 5s safety timeout - Transform clean: returns HTML as-is; CSS stripping moved to server-side - Dev disclaimer: blue info banner shown on WebSocket connect tools/server/inliner.mjs: - Added stripGmail() / stripOutlook() — server-side CSS property stripping for email client simulation tools/server/server.mjs: - Fixed WebSocket upgrade: use app.listen() instead of createServer(app).listen() - Juice post-processing now generates three rendered.js variants (modern/gmail/outlook) - Initial startup runs juice-only pass (avoids duplicate Go compilation) docs/ (all 6 languages — en, zh-CN, zh-TW, ja, ko, ru): - Image size limits: max 50KiB, recommended 10-20KiB - Dev disclaimer: simulation cannot 100% reproduce every client - Changed 'accurate' to 'relatively accurate' across all static-mode warnings - Converted all plain blockquotes to GitHub admonitions ([!WARNING] / [!NOTE])
This commit is contained in:
1 parent
4bc9a0667f
commit
d8a714b2b5
17 files changed
+315
-196
No files matched your search
@@ -89,7 +89,8 @@ cd tools && go run . preview all
|
||||
open preview/index.html # no server needed
|
||||
```
|
||||
|
||||
> Gmail/Outlook simulation in static mode is approximate. Use dev mode for accurate CSS inlining.
|
||||
> [!WARNING]
|
||||
> Gmail/Outlook simulation in static mode is approximate. Use dev mode for relatively accurate CSS inlining.
|
||||
|
||||
### Dev Server (Live Reload + Juice CSS Inlining)
|
||||
|
||||
@@ -105,18 +106,21 @@ open http://localhost:3456
|
||||
| Go template rendering | ✅ | ✅ |
|
||||
| Theme/template switching | ✅ | ✅ |
|
||||
| Juice CSS inlining | — | ✅ |
|
||||
| Outlook `bgcolor` attrs | — | ✅ |
|
||||
| Gmail/Outlook CSS stripping | — | ✅ |
|
||||
| Live reload on save | — | ✅ |
|
||||
| Node.js required | — | ✅ |
|
||||
|
||||
> [!NOTE]
|
||||
> Dev simulation cannot 100% reproduce every email client — for reference only; always verify against real clients.
|
||||
|
||||
### Features
|
||||
|
||||
- Theme switcher — browse all 10 visual styles
|
||||
- Template switcher — all 11 email types
|
||||
- Client simulation — Modern, Gmail, Outlook, Raw Source
|
||||
- Client simulation — Modern, Gmail, Outlook, Raw Source (CSS stripping in dev mode)
|
||||
- Viewport toggle — Desktop 1386×780 / Mobile 390×780
|
||||
- Parameter panel — mock data per email type
|
||||
- Keyboard shortcuts — `←→` templates, `d`/`m` viewport
|
||||
- Keyboard shortcuts — `←→` tab between Theme/Template/Client, `↑↓` select within, `d`/`m` viewport
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user