@emailens/engine 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +162 -7
  2. package/dist/{chunk-ZQF2XUIJ.js → chunk-2NMEKWO5.js} +2 -13
  3. package/dist/{chunk-3NDQOTPM.js → chunk-E4QE4WXE.js} +2 -2
  4. package/dist/{chunk-URZ4XPST.js → chunk-HBKZMR7V.js} +2 -2
  5. package/dist/{chunk-OY3DGZVU.js → chunk-PW6EUG2G.js} +2 -2
  6. package/dist/chunk-Z22AD2IU.js +14 -0
  7. package/dist/{chunk-ZQF2XUIJ.js.map → chunk-Z22AD2IU.js.map} +1 -1
  8. package/dist/compile/index.d.cts +2 -2
  9. package/dist/compile/index.d.ts +2 -2
  10. package/dist/compile/index.js +8 -7
  11. package/dist/compile/index.js.map +1 -1
  12. package/dist/index.cjs +3685 -507
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +80 -6
  15. package/dist/index.d.ts +80 -6
  16. package/dist/index.js +3678 -507
  17. package/dist/index.js.map +1 -1
  18. package/dist/maizzle-KKJF7XY7.js +9 -0
  19. package/dist/mjml-C46UWTTK.js +9 -0
  20. package/dist/react-email-C-p8ZL37.d.cts +58 -0
  21. package/dist/react-email-DcseUoOu.d.ts +58 -0
  22. package/dist/react-email-QKHRTEJW.js +9 -0
  23. package/dist/react-email-QKHRTEJW.js.map +1 -0
  24. package/dist/server.cjs +368 -0
  25. package/dist/server.cjs.map +1 -0
  26. package/dist/server.d.cts +80 -0
  27. package/dist/server.d.ts +80 -0
  28. package/dist/server.js +342 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/{react-email-BQljgXbo.d.cts → types-4P9AtKm_.d.cts} +65 -54
  31. package/dist/{react-email-BQljgXbo.d.ts → types-4P9AtKm_.d.ts} +65 -54
  32. package/package.json +13 -6
  33. package/dist/maizzle-Y2CLJ7GB.js +0 -8
  34. package/dist/mjml-D7IOYXXK.js +0 -8
  35. package/dist/react-email-4TW6IDAA.js +0 -8
  36. /package/dist/{maizzle-Y2CLJ7GB.js.map → chunk-2NMEKWO5.js.map} +0 -0
  37. /package/dist/{chunk-3NDQOTPM.js.map → chunk-E4QE4WXE.js.map} +0 -0
  38. /package/dist/{chunk-URZ4XPST.js.map → chunk-HBKZMR7V.js.map} +0 -0
  39. /package/dist/{chunk-OY3DGZVU.js.map → chunk-PW6EUG2G.js.map} +0 -0
  40. /package/dist/{mjml-D7IOYXXK.js.map → maizzle-KKJF7XY7.js.map} +0 -0
  41. /package/dist/{react-email-4TW6IDAA.js.map → mjml-C46UWTTK.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import {
2
- CompileError,
2
+ CompileError
3
+ } from "./chunk-Z22AD2IU.js";
4
+ import {
3
5
  __objRest,
4
6
  __spreadProps,
5
7
  __spreadValues
6
- } from "./chunk-ZQF2XUIJ.js";
8
+ } from "./chunk-2NMEKWO5.js";
7
9
 
8
10
  // src/clients.ts
9
11
  var EMAIL_CLIENTS = [
@@ -114,45 +116,49 @@ import * as csstree from "css-tree";
114
116
 
115
117
  // src/rules/css-support.ts
116
118
  var CSS_SUPPORT = {
117
- // --- Layout ---
118
- "display": {
119
+ "<abbr>": {
119
120
  "gmail-web": "supported",
120
- // block, inline, inline-block, none all work
121
- "gmail-android": "partial",
122
- // basic values only
123
- "gmail-ios": "partial",
121
+ "gmail-android": "supported",
122
+ "gmail-ios": "supported",
124
123
  "outlook-web": "supported",
125
- "outlook-windows": "partial",
126
- // limited values
124
+ "outlook-windows": "unsupported",
127
125
  "apple-mail-macos": "supported",
128
126
  "apple-mail-ios": "supported",
129
- "yahoo-mail": "supported",
127
+ "yahoo-mail": "unsupported",
130
128
  "samsung-mail": "supported",
131
129
  "thunderbird": "supported",
132
- "hey-mail": "supported",
133
- "superhuman": "supported"
130
+ "hey-mail": "unsupported",
131
+ "superhuman": "unknown"
134
132
  },
135
- "display:flex": {
133
+ "<acronym>": {
136
134
  "gmail-web": "supported",
137
- // caniemail: y
138
- "gmail-android": "partial",
139
- // caniemail: a #1 (non-Google accounts)
140
- "gmail-ios": "partial",
141
- // caniemail: a #1
135
+ "gmail-android": "supported",
136
+ "gmail-ios": "supported",
142
137
  "outlook-web": "supported",
143
- // caniemail: y
144
138
  "outlook-windows": "unsupported",
145
139
  "apple-mail-macos": "supported",
146
140
  "apple-mail-ios": "supported",
141
+ "yahoo-mail": "unsupported",
142
+ "samsung-mail": "supported",
143
+ "thunderbird": "supported",
144
+ "hey-mail": "unknown",
145
+ "superhuman": "unknown"
146
+ },
147
+ "<address>": {
148
+ "gmail-web": "supported",
149
+ "gmail-android": "supported",
150
+ "gmail-ios": "supported",
151
+ "outlook-web": "supported",
152
+ "outlook-windows": "supported",
153
+ "apple-mail-macos": "supported",
154
+ "apple-mail-ios": "supported",
147
155
  "yahoo-mail": "supported",
148
- // caniemail: y #2 (no inline-flex)
149
156
  "samsung-mail": "supported",
150
- // caniemail: y
151
157
  "thunderbird": "supported",
152
158
  "hey-mail": "supported",
153
- "superhuman": "supported"
159
+ "superhuman": "unknown"
154
160
  },
155
- "display:grid": {
161
+ "<audio>": {
156
162
  "gmail-web": "unsupported",
157
163
  "gmail-android": "unsupported",
158
164
  "gmail-ios": "unsupported",
@@ -161,84 +167,68 @@ var CSS_SUPPORT = {
161
167
  "apple-mail-macos": "supported",
162
168
  "apple-mail-ios": "supported",
163
169
  "yahoo-mail": "unsupported",
164
- "samsung-mail": "unsupported",
170
+ "samsung-mail": "supported",
165
171
  "thunderbird": "supported",
166
- "hey-mail": "supported",
167
- "superhuman": "supported"
172
+ "hey-mail": "unsupported",
173
+ "superhuman": "unsupported"
168
174
  },
169
- "float": {
170
- "gmail-web": "supported",
171
- // caniemail: y
175
+ "<base>": {
176
+ "gmail-web": "partial",
172
177
  "gmail-android": "partial",
173
- // caniemail: a #2 (no logical values)
174
178
  "gmail-ios": "partial",
175
- // caniemail: a #2
176
- "outlook-web": "supported",
177
- "outlook-windows": "unsupported",
178
- // caniemail: n #1
179
+ "outlook-web": "partial",
180
+ "outlook-windows": "supported",
179
181
  "apple-mail-macos": "supported",
180
182
  "apple-mail-ios": "supported",
181
183
  "yahoo-mail": "partial",
182
- // caniemail: a #2 (no logical values)
183
184
  "samsung-mail": "supported",
184
185
  "thunderbird": "supported",
185
- "hey-mail": "supported",
186
- "superhuman": "supported"
186
+ "hey-mail": "partial",
187
+ "superhuman": "unknown"
187
188
  },
188
- "position": {
189
+ "<bdi>": {
189
190
  "gmail-web": "unsupported",
190
191
  "gmail-android": "unsupported",
191
192
  "gmail-ios": "unsupported",
192
- "outlook-web": "partial",
193
- // caniemail: a #2 (sticky only)
193
+ "outlook-web": "unsupported",
194
194
  "outlook-windows": "unsupported",
195
- "apple-mail-macos": "partial",
196
- // caniemail: a #1 (no sticky/fixed)
197
- "apple-mail-ios": "partial",
198
- // caniemail: a #1
199
- "yahoo-mail": "partial",
200
- // caniemail: a #3 (relative only)
201
- "samsung-mail": "partial",
202
- // caniemail: a #1
203
- "thunderbird": "supported",
204
- "hey-mail": "partial",
205
- // relative only; HEY strips fixed/sticky positioning
206
- "superhuman": "partial"
207
- // relative/absolute supported; fixed/sticky stripped
208
- },
209
- // --- Box Model ---
210
- "margin": {
211
- "gmail-web": "partial",
212
- // no negative margins
213
- "gmail-android": "partial",
214
- "gmail-ios": "partial",
215
- "outlook-web": "supported",
216
- "outlook-windows": "partial",
217
- // no auto margins
218
195
  "apple-mail-macos": "supported",
219
196
  "apple-mail-ios": "supported",
220
- "yahoo-mail": "supported",
197
+ "yahoo-mail": "unsupported",
221
198
  "samsung-mail": "supported",
222
199
  "thunderbird": "supported",
223
- "hey-mail": "supported",
224
- "superhuman": "supported"
200
+ "hey-mail": "unsupported",
201
+ "superhuman": "unknown"
225
202
  },
226
- "padding": {
203
+ "<blockquote>": {
227
204
  "gmail-web": "supported",
228
205
  "gmail-android": "supported",
229
206
  "gmail-ios": "supported",
230
207
  "outlook-web": "supported",
231
- "outlook-windows": "partial",
232
- // not on <p>, <div>
208
+ "outlook-windows": "supported",
233
209
  "apple-mail-macos": "supported",
234
210
  "apple-mail-ios": "supported",
235
211
  "yahoo-mail": "supported",
236
212
  "samsung-mail": "supported",
237
213
  "thunderbird": "supported",
238
- "hey-mail": "supported",
239
- "superhuman": "supported"
214
+ "hey-mail": "partial",
215
+ "superhuman": "unknown"
240
216
  },
241
- "width": {
217
+ "<body>": {
218
+ "gmail-web": "partial",
219
+ "gmail-android": "partial",
220
+ "gmail-ios": "partial",
221
+ "outlook-web": "partial",
222
+ "outlook-windows": "supported",
223
+ "apple-mail-macos": "supported",
224
+ "apple-mail-ios": "supported",
225
+ "yahoo-mail": "partial",
226
+ "samsung-mail": "supported",
227
+ "thunderbird": "supported",
228
+ "hey-mail": "partial",
229
+ "superhuman": "unknown"
230
+ },
231
+ "<code>": {
242
232
  "gmail-web": "supported",
243
233
  "gmail-android": "supported",
244
234
  "gmail-ios": "supported",
@@ -250,53 +240,51 @@ var CSS_SUPPORT = {
250
240
  "samsung-mail": "supported",
251
241
  "thunderbird": "supported",
252
242
  "hey-mail": "supported",
253
- "superhuman": "supported"
243
+ "superhuman": "unknown"
254
244
  },
255
- "max-width": {
245
+ "<del>": {
256
246
  "gmail-web": "supported",
257
247
  "gmail-android": "supported",
258
248
  "gmail-ios": "supported",
259
249
  "outlook-web": "supported",
260
- "outlook-windows": "partial",
261
- // caniemail: a #1 (only on <table> elements)
250
+ "outlook-windows": "supported",
262
251
  "apple-mail-macos": "supported",
263
252
  "apple-mail-ios": "supported",
264
253
  "yahoo-mail": "supported",
265
254
  "samsung-mail": "supported",
266
255
  "thunderbird": "supported",
267
256
  "hey-mail": "supported",
268
- "superhuman": "supported"
257
+ "superhuman": "unknown"
269
258
  },
270
- "height": {
259
+ "<dfn>": {
271
260
  "gmail-web": "supported",
272
261
  "gmail-android": "supported",
273
262
  "gmail-ios": "supported",
274
263
  "outlook-web": "supported",
275
- "outlook-windows": "supported",
264
+ "outlook-windows": "partial",
276
265
  "apple-mail-macos": "supported",
277
266
  "apple-mail-ios": "supported",
278
267
  "yahoo-mail": "supported",
279
268
  "samsung-mail": "supported",
280
269
  "thunderbird": "supported",
281
- "hey-mail": "supported",
282
- "superhuman": "supported"
270
+ "hey-mail": "unknown",
271
+ "superhuman": "unknown"
283
272
  },
284
- "box-sizing": {
273
+ "<dialog>": {
285
274
  "gmail-web": "unsupported",
286
- "gmail-android": "unsupported",
275
+ "gmail-android": "supported",
287
276
  "gmail-ios": "unsupported",
288
- "outlook-web": "supported",
277
+ "outlook-web": "unsupported",
289
278
  "outlook-windows": "unsupported",
290
279
  "apple-mail-macos": "supported",
291
280
  "apple-mail-ios": "supported",
292
- "yahoo-mail": "supported",
281
+ "yahoo-mail": "unsupported",
293
282
  "samsung-mail": "supported",
294
283
  "thunderbird": "supported",
295
- "hey-mail": "supported",
296
- "superhuman": "supported"
284
+ "hey-mail": "unsupported",
285
+ "superhuman": "unknown"
297
286
  },
298
- // --- Typography ---
299
- "font-family": {
287
+ "<div>": {
300
288
  "gmail-web": "supported",
301
289
  "gmail-android": "supported",
302
290
  "gmail-ios": "supported",
@@ -308,24 +296,23 @@ var CSS_SUPPORT = {
308
296
  "samsung-mail": "supported",
309
297
  "thunderbird": "supported",
310
298
  "hey-mail": "supported",
311
- "superhuman": "supported"
299
+ "superhuman": "unknown"
312
300
  },
313
- "font-size": {
301
+ "<form>": {
314
302
  "gmail-web": "supported",
315
303
  "gmail-android": "supported",
316
304
  "gmail-ios": "partial",
317
- // may auto-resize small text
318
- "outlook-web": "supported",
319
- "outlook-windows": "supported",
305
+ "outlook-web": "partial",
306
+ "outlook-windows": "unsupported",
320
307
  "apple-mail-macos": "supported",
321
- "apple-mail-ios": "partial",
308
+ "apple-mail-ios": "supported",
322
309
  "yahoo-mail": "supported",
323
310
  "samsung-mail": "supported",
324
311
  "thunderbird": "supported",
325
- "hey-mail": "supported",
326
- "superhuman": "supported"
312
+ "hey-mail": "unsupported",
313
+ "superhuman": "unsupported"
327
314
  },
328
- "font-weight": {
315
+ "<h1>": {
329
316
  "gmail-web": "supported",
330
317
  "gmail-android": "supported",
331
318
  "gmail-ios": "supported",
@@ -337,66 +324,93 @@ var CSS_SUPPORT = {
337
324
  "samsung-mail": "supported",
338
325
  "thunderbird": "supported",
339
326
  "hey-mail": "supported",
340
- "superhuman": "supported"
327
+ "superhuman": "unknown"
341
328
  },
342
- "line-height": {
329
+ "<hr>": {
343
330
  "gmail-web": "supported",
344
331
  "gmail-android": "supported",
345
332
  "gmail-ios": "supported",
346
333
  "outlook-web": "supported",
347
- "outlook-windows": "partial",
348
- // ignores on some elements
334
+ "outlook-windows": "supported",
349
335
  "apple-mail-macos": "supported",
350
336
  "apple-mail-ios": "supported",
351
337
  "yahoo-mail": "supported",
352
338
  "samsung-mail": "supported",
353
339
  "thunderbird": "supported",
354
- "hey-mail": "supported",
355
- "superhuman": "supported"
340
+ "hey-mail": "unknown",
341
+ "superhuman": "unknown"
356
342
  },
357
- "letter-spacing": {
343
+ "<img>": {
358
344
  "gmail-web": "supported",
359
345
  "gmail-android": "supported",
360
346
  "gmail-ios": "supported",
361
347
  "outlook-web": "supported",
362
- "outlook-windows": "partial",
348
+ "outlook-windows": "supported",
363
349
  "apple-mail-macos": "supported",
364
350
  "apple-mail-ios": "supported",
365
351
  "yahoo-mail": "supported",
366
352
  "samsung-mail": "supported",
367
- "thunderbird": "supported",
353
+ "thunderbird": "unknown",
368
354
  "hey-mail": "supported",
369
- "superhuman": "supported"
355
+ "superhuman": "unknown"
370
356
  },
371
- "text-align": {
372
- "gmail-web": "supported",
373
- "gmail-android": "supported",
374
- "gmail-ios": "supported",
375
- "outlook-web": "supported",
357
+ "<link>": {
358
+ "gmail-web": "unsupported",
359
+ "gmail-android": "unsupported",
360
+ "gmail-ios": "unsupported",
361
+ "outlook-web": "unsupported",
376
362
  "outlook-windows": "supported",
377
363
  "apple-mail-macos": "supported",
378
364
  "apple-mail-ios": "supported",
379
- "yahoo-mail": "supported",
365
+ "yahoo-mail": "unsupported",
366
+ "samsung-mail": "unsupported",
367
+ "thunderbird": "unsupported",
368
+ "hey-mail": "unsupported",
369
+ "superhuman": "unsupported"
370
+ },
371
+ "<marquee>": {
372
+ "gmail-web": "unsupported",
373
+ "gmail-android": "unsupported",
374
+ "gmail-ios": "unsupported",
375
+ "outlook-web": "partial",
376
+ "outlook-windows": "unsupported",
377
+ "apple-mail-macos": "supported",
378
+ "apple-mail-ios": "supported",
379
+ "yahoo-mail": "partial",
380
380
  "samsung-mail": "supported",
381
381
  "thunderbird": "supported",
382
- "hey-mail": "supported",
383
- "superhuman": "supported"
382
+ "hey-mail": "unsupported",
383
+ "superhuman": "unknown"
384
384
  },
385
- "text-decoration": {
386
- "gmail-web": "supported",
387
- "gmail-android": "supported",
388
- "gmail-ios": "supported",
385
+ "<meter>": {
386
+ "gmail-web": "unsupported",
387
+ "gmail-android": "partial",
388
+ "gmail-ios": "unsupported",
389
389
  "outlook-web": "supported",
390
- "outlook-windows": "supported",
390
+ "outlook-windows": "unsupported",
391
391
  "apple-mail-macos": "supported",
392
392
  "apple-mail-ios": "supported",
393
- "yahoo-mail": "supported",
393
+ "yahoo-mail": "unsupported",
394
394
  "samsung-mail": "supported",
395
395
  "thunderbird": "supported",
396
- "hey-mail": "supported",
397
- "superhuman": "supported"
396
+ "hey-mail": "unsupported",
397
+ "superhuman": "unknown"
398
398
  },
399
- "text-transform": {
399
+ "<object>": {
400
+ "gmail-web": "unsupported",
401
+ "gmail-android": "unsupported",
402
+ "gmail-ios": "unsupported",
403
+ "outlook-web": "unsupported",
404
+ "outlook-windows": "unsupported",
405
+ "apple-mail-macos": "partial",
406
+ "apple-mail-ios": "supported",
407
+ "yahoo-mail": "unsupported",
408
+ "samsung-mail": "partial",
409
+ "thunderbird": "partial",
410
+ "hey-mail": "unsupported",
411
+ "superhuman": "unknown"
412
+ },
413
+ "<p>": {
400
414
  "gmail-web": "supported",
401
415
  "gmail-android": "supported",
402
416
  "gmail-ios": "supported",
@@ -408,28 +422,23 @@ var CSS_SUPPORT = {
408
422
  "samsung-mail": "supported",
409
423
  "thunderbird": "supported",
410
424
  "hey-mail": "supported",
411
- "superhuman": "supported"
425
+ "superhuman": "unknown"
412
426
  },
413
- "@font-face": {
427
+ "<picture>": {
414
428
  "gmail-web": "unsupported",
415
429
  "gmail-android": "unsupported",
416
430
  "gmail-ios": "unsupported",
417
431
  "outlook-web": "unsupported",
418
- "outlook-windows": "partial",
419
- // caniemail: a #4 (declaration kept, remote fonts ignored)
420
- "apple-mail-macos": "supported",
432
+ "outlook-windows": "unsupported",
433
+ "apple-mail-macos": "partial",
421
434
  "apple-mail-ios": "supported",
422
435
  "yahoo-mail": "unsupported",
423
436
  "samsung-mail": "supported",
424
- // caniemail: y #8
425
437
  "thunderbird": "supported",
426
- "hey-mail": "supported",
427
- // HEY uses WebKit — web fonts work
438
+ "hey-mail": "unsupported",
428
439
  "superhuman": "supported"
429
- // Superhuman uses Blink — web fonts work
430
440
  },
431
- // --- Colors & Backgrounds ---
432
- "color": {
441
+ "<pre>": {
433
442
  "gmail-web": "supported",
434
443
  "gmail-android": "supported",
435
444
  "gmail-ios": "supported",
@@ -441,104 +450,121 @@ var CSS_SUPPORT = {
441
450
  "samsung-mail": "supported",
442
451
  "thunderbird": "supported",
443
452
  "hey-mail": "supported",
444
- "superhuman": "supported"
453
+ "superhuman": "unknown"
445
454
  },
446
- "background-color": {
447
- "gmail-web": "supported",
448
- "gmail-android": "supported",
449
- "gmail-ios": "supported",
450
- "outlook-web": "supported",
451
- "outlook-windows": "supported",
455
+ "<progress>": {
456
+ "gmail-web": "unsupported",
457
+ "gmail-android": "partial",
458
+ "gmail-ios": "unsupported",
459
+ "outlook-web": "unsupported",
460
+ "outlook-windows": "unsupported",
452
461
  "apple-mail-macos": "supported",
453
462
  "apple-mail-ios": "supported",
454
- "yahoo-mail": "supported",
463
+ "yahoo-mail": "unsupported",
455
464
  "samsung-mail": "supported",
456
465
  "thunderbird": "supported",
457
- "hey-mail": "supported",
458
- "superhuman": "supported"
466
+ "hey-mail": "unsupported",
467
+ "superhuman": "unknown"
459
468
  },
460
- "background-image": {
461
- "gmail-web": "supported",
462
- // caniemail: y (restored 2023-08)
463
- "gmail-android": "supported",
464
- // caniemail: y
465
- "gmail-ios": "supported",
466
- // caniemail: y
469
+ "<rp>": {
470
+ "gmail-web": "unsupported",
471
+ "gmail-android": "partial",
472
+ "gmail-ios": "unsupported",
467
473
  "outlook-web": "supported",
468
- // caniemail: y
469
- "outlook-windows": "partial",
470
- // caniemail: n #5 (VML workaround)
474
+ "outlook-windows": "unsupported",
471
475
  "apple-mail-macos": "supported",
472
476
  "apple-mail-ios": "supported",
473
- "yahoo-mail": "partial",
474
- // caniemail: a #3 (no multiple values)
477
+ "yahoo-mail": "supported",
475
478
  "samsung-mail": "supported",
476
- // caniemail: y
477
479
  "thunderbird": "supported",
478
- "hey-mail": "supported",
479
- "superhuman": "supported"
480
+ "hey-mail": "unsupported",
481
+ "superhuman": "unknown"
480
482
  },
481
- "background": {
482
- "gmail-web": "partial",
483
- // color only, no shorthand with images
483
+ "<rt>": {
484
+ "gmail-web": "unsupported",
484
485
  "gmail-android": "partial",
485
- "gmail-ios": "partial",
486
- "outlook-web": "partial",
487
- "outlook-windows": "partial",
486
+ "gmail-ios": "unsupported",
487
+ "outlook-web": "supported",
488
+ "outlook-windows": "unsupported",
488
489
  "apple-mail-macos": "supported",
489
490
  "apple-mail-ios": "supported",
490
- "yahoo-mail": "partial",
491
- "samsung-mail": "partial",
491
+ "yahoo-mail": "supported",
492
+ "samsung-mail": "supported",
492
493
  "thunderbird": "supported",
493
- "hey-mail": "supported",
494
- "superhuman": "supported"
494
+ "hey-mail": "unsupported",
495
+ "superhuman": "unknown"
495
496
  },
496
- "linear-gradient": {
497
+ "<ruby>": {
497
498
  "gmail-web": "unsupported",
498
- "gmail-android": "unsupported",
499
+ "gmail-android": "partial",
499
500
  "gmail-ios": "unsupported",
500
- "outlook-web": "unsupported",
501
+ "outlook-web": "supported",
501
502
  "outlook-windows": "unsupported",
502
503
  "apple-mail-macos": "supported",
503
504
  "apple-mail-ios": "supported",
504
- "yahoo-mail": "unsupported",
505
- "samsung-mail": "unsupported",
505
+ "yahoo-mail": "supported",
506
+ "samsung-mail": "supported",
506
507
  "thunderbird": "supported",
507
- "hey-mail": "supported",
508
- "superhuman": "supported"
508
+ "hey-mail": "unsupported",
509
+ "superhuman": "unknown"
509
510
  },
510
- // --- Borders ---
511
- "border": {
511
+ "<select>": {
512
+ "gmail-web": "supported",
513
+ "gmail-android": "supported",
514
+ "gmail-ios": "partial",
515
+ "outlook-web": "supported",
516
+ "outlook-windows": "unsupported",
517
+ "apple-mail-macos": "supported",
518
+ "apple-mail-ios": "partial",
519
+ "yahoo-mail": "supported",
520
+ "samsung-mail": "supported",
521
+ "thunderbird": "partial",
522
+ "hey-mail": "unsupported",
523
+ "superhuman": "unknown"
524
+ },
525
+ "<small>": {
512
526
  "gmail-web": "supported",
513
527
  "gmail-android": "supported",
514
528
  "gmail-ios": "supported",
515
529
  "outlook-web": "supported",
516
- "outlook-windows": "partial",
517
- // no shorthand on some elements
530
+ "outlook-windows": "supported",
518
531
  "apple-mail-macos": "supported",
519
532
  "apple-mail-ios": "supported",
520
533
  "yahoo-mail": "supported",
521
534
  "samsung-mail": "supported",
522
535
  "thunderbird": "supported",
523
536
  "hey-mail": "supported",
524
- "superhuman": "supported"
537
+ "superhuman": "unknown"
525
538
  },
526
- "border-radius": {
539
+ "<span>": {
527
540
  "gmail-web": "supported",
528
541
  "gmail-android": "supported",
529
542
  "gmail-ios": "supported",
530
543
  "outlook-web": "supported",
531
- "outlook-windows": "unsupported",
544
+ "outlook-windows": "supported",
532
545
  "apple-mail-macos": "supported",
533
546
  "apple-mail-ios": "supported",
534
- "yahoo-mail": "partial",
535
- // caniemail: a #2 (no elliptical slash notation)
547
+ "yahoo-mail": "supported",
536
548
  "samsung-mail": "supported",
537
549
  "thunderbird": "supported",
538
550
  "hey-mail": "supported",
539
- "superhuman": "supported"
551
+ "superhuman": "unknown"
540
552
  },
541
- "border-collapse": {
553
+ "<strike>": {
554
+ "gmail-web": "supported",
555
+ "gmail-android": "partial",
556
+ "gmail-ios": "partial",
557
+ "outlook-web": "supported",
558
+ "outlook-windows": "supported",
559
+ "apple-mail-macos": "supported",
560
+ "apple-mail-ios": "supported",
561
+ "yahoo-mail": "supported",
562
+ "samsung-mail": "supported",
563
+ "thunderbird": "supported",
564
+ "hey-mail": "unsupported",
565
+ "superhuman": "unknown"
566
+ },
567
+ "<strong>": {
542
568
  "gmail-web": "supported",
543
569
  "gmail-android": "supported",
544
570
  "gmail-ios": "supported",
@@ -550,161 +576,163 @@ var CSS_SUPPORT = {
550
576
  "samsung-mail": "supported",
551
577
  "thunderbird": "supported",
552
578
  "hey-mail": "supported",
553
- "superhuman": "supported"
579
+ "superhuman": "unknown"
554
580
  },
555
- "box-shadow": {
556
- "gmail-web": "unsupported",
581
+ "<style>": {
582
+ "gmail-web": "partial",
557
583
  "gmail-android": "partial",
558
- // caniemail: a #1 (non-Google accounts)
559
584
  "gmail-ios": "partial",
560
- // caniemail: a #1
561
585
  "outlook-web": "supported",
562
- // caniemail: y (since 2023-12)
563
- "outlook-windows": "unsupported",
586
+ "outlook-windows": "partial",
564
587
  "apple-mail-macos": "supported",
565
588
  "apple-mail-ios": "supported",
566
- "yahoo-mail": "unsupported",
589
+ "yahoo-mail": "supported",
567
590
  "samsung-mail": "supported",
568
- // caniemail: y
569
591
  "thunderbird": "supported",
570
592
  "hey-mail": "supported",
571
593
  "superhuman": "supported"
572
594
  },
573
- // --- Transforms & Animation ---
574
- "transform": {
595
+ "<svg>": {
575
596
  "gmail-web": "unsupported",
576
597
  "gmail-android": "unsupported",
577
598
  "gmail-ios": "unsupported",
578
599
  "outlook-web": "unsupported",
579
600
  "outlook-windows": "unsupported",
580
- "apple-mail-macos": "supported",
601
+ "apple-mail-macos": "partial",
581
602
  "apple-mail-ios": "supported",
582
603
  "yahoo-mail": "unsupported",
583
- "samsung-mail": "unsupported",
604
+ "samsung-mail": "supported",
584
605
  "thunderbird": "supported",
585
606
  "hey-mail": "unsupported",
586
- // HEY strips transform for security
587
- "superhuman": "partial"
588
- // Superhuman (Blink) allows some transforms
607
+ "superhuman": "supported"
589
608
  },
590
- "animation": {
591
- "gmail-web": "unsupported",
592
- "gmail-android": "unsupported",
593
- "gmail-ios": "unsupported",
594
- "outlook-web": "unsupported",
609
+ "<table>": {
610
+ "gmail-web": "supported",
611
+ "gmail-android": "supported",
612
+ "gmail-ios": "supported",
613
+ "outlook-web": "supported",
614
+ "outlook-windows": "supported",
615
+ "apple-mail-macos": "supported",
616
+ "apple-mail-ios": "supported",
617
+ "yahoo-mail": "supported",
618
+ "samsung-mail": "supported",
619
+ "thunderbird": "supported",
620
+ "hey-mail": "supported",
621
+ "superhuman": "unknown"
622
+ },
623
+ "<textarea>": {
624
+ "gmail-web": "supported",
625
+ "gmail-android": "supported",
626
+ "gmail-ios": "supported",
627
+ "outlook-web": "supported",
595
628
  "outlook-windows": "unsupported",
596
629
  "apple-mail-macos": "supported",
597
630
  "apple-mail-ios": "supported",
598
- "yahoo-mail": "unsupported",
631
+ "yahoo-mail": "supported",
599
632
  "samsung-mail": "unsupported",
600
- "thunderbird": "unsupported",
633
+ "thunderbird": "partial",
601
634
  "hey-mail": "unsupported",
602
- "superhuman": "partial"
603
- // Superhuman allows CSS animations but they may be disabled by user settings
635
+ "superhuman": "unknown"
604
636
  },
605
- "transition": {
637
+ "<ul>": {
638
+ "gmail-web": "partial",
639
+ "gmail-android": "partial",
640
+ "gmail-ios": "partial",
641
+ "outlook-web": "partial",
642
+ "outlook-windows": "partial",
643
+ "apple-mail-macos": "supported",
644
+ "apple-mail-ios": "supported",
645
+ "yahoo-mail": "partial",
646
+ "samsung-mail": "supported",
647
+ "thunderbird": "supported",
648
+ "hey-mail": "supported",
649
+ "superhuman": "unknown"
650
+ },
651
+ "<video>": {
606
652
  "gmail-web": "unsupported",
607
653
  "gmail-android": "unsupported",
608
654
  "gmail-ios": "unsupported",
609
655
  "outlook-web": "unsupported",
610
656
  "outlook-windows": "unsupported",
611
657
  "apple-mail-macos": "supported",
612
- "apple-mail-ios": "supported",
658
+ "apple-mail-ios": "partial",
613
659
  "yahoo-mail": "unsupported",
614
- "samsung-mail": "unsupported",
615
- "thunderbird": "unsupported",
660
+ "samsung-mail": "partial",
661
+ "thunderbird": "supported",
616
662
  "hey-mail": "unsupported",
617
663
  "superhuman": "unsupported"
618
664
  },
619
- // --- Media & Responsive ---
620
- "@media": {
621
- "gmail-web": "partial",
622
- // caniemail: a #7 (no height-based, no nested)
665
+ "<wbr>": {
666
+ "gmail-web": "supported",
623
667
  "gmail-android": "partial",
624
- // caniemail: a #6 #7
625
- "gmail-ios": "partial",
626
- // caniemail: a #6 #7
627
- "outlook-web": "partial",
628
- // caniemail: a #1 #10 (no nested)
668
+ "gmail-ios": "unsupported",
669
+ "outlook-web": "supported",
629
670
  "outlook-windows": "unsupported",
630
671
  "apple-mail-macos": "supported",
631
672
  "apple-mail-ios": "supported",
632
- "yahoo-mail": "partial",
633
- // caniemail: a #2
634
- "samsung-mail": "partial",
635
- // caniemail: a #9
673
+ "yahoo-mail": "supported",
674
+ "samsung-mail": "supported",
636
675
  "thunderbird": "supported",
637
- "hey-mail": "supported",
638
- // HEY is WebKit-based, full @media support
639
- "superhuman": "supported"
640
- // Superhuman is Blink-based, full @media support
676
+ "hey-mail": "unsupported",
677
+ "superhuman": "unknown"
641
678
  },
642
- // --- HTML Elements ---
643
- "<style>": {
644
- "gmail-web": "partial",
645
- // caniemail: a #1 #6 (head only, 16KB limit)
646
- "gmail-android": "partial",
647
- // caniemail: a #1 (head only)
648
- "gmail-ios": "partial",
649
- // caniemail: a #1 #2
650
- "outlook-web": "supported",
679
+ "@font-face": {
680
+ "gmail-web": "unsupported",
681
+ "gmail-android": "unsupported",
682
+ "gmail-ios": "unsupported",
683
+ "outlook-web": "unsupported",
651
684
  "outlook-windows": "partial",
652
- // caniemail: a #4 (must declare before use)
653
685
  "apple-mail-macos": "supported",
654
686
  "apple-mail-ios": "supported",
655
- "yahoo-mail": "supported",
687
+ "yahoo-mail": "unsupported",
656
688
  "samsung-mail": "supported",
657
689
  "thunderbird": "supported",
658
690
  "hey-mail": "supported",
659
691
  "superhuman": "supported"
660
692
  },
661
- "<link>": {
693
+ "@import": {
662
694
  "gmail-web": "unsupported",
663
695
  "gmail-android": "unsupported",
664
696
  "gmail-ios": "unsupported",
665
697
  "outlook-web": "unsupported",
666
- "outlook-windows": "unsupported",
698
+ "outlook-windows": "supported",
667
699
  "apple-mail-macos": "supported",
668
700
  "apple-mail-ios": "supported",
669
701
  "yahoo-mail": "unsupported",
670
702
  "samsung-mail": "unsupported",
671
703
  "thunderbird": "unsupported",
672
- "hey-mail": "unsupported",
673
- // HEY strips external stylesheets
704
+ "hey-mail": "supported",
674
705
  "superhuman": "unsupported"
675
- // Superhuman strips external stylesheets
676
706
  },
677
- "<video>": {
707
+ "@keyframes": {
678
708
  "gmail-web": "unsupported",
679
709
  "gmail-android": "unsupported",
680
710
  "gmail-ios": "unsupported",
681
711
  "outlook-web": "unsupported",
682
712
  "outlook-windows": "unsupported",
683
713
  "apple-mail-macos": "supported",
684
- "apple-mail-ios": "partial",
685
- "yahoo-mail": "unsupported",
686
- "samsung-mail": "unsupported",
687
- "thunderbird": "unsupported",
688
- "hey-mail": "unsupported",
689
- "superhuman": "unsupported"
714
+ "apple-mail-ios": "supported",
715
+ "yahoo-mail": "supported",
716
+ "samsung-mail": "supported",
717
+ "thunderbird": "supported",
718
+ "hey-mail": "supported",
719
+ "superhuman": "partial"
690
720
  },
691
- "<svg>": {
721
+ "@media": {
692
722
  "gmail-web": "unsupported",
693
723
  "gmail-android": "unsupported",
694
724
  "gmail-ios": "unsupported",
695
- "outlook-web": "partial",
725
+ "outlook-web": "supported",
696
726
  "outlook-windows": "unsupported",
697
727
  "apple-mail-macos": "supported",
698
728
  "apple-mail-ios": "supported",
699
729
  "yahoo-mail": "unsupported",
700
- "samsung-mail": "partial",
701
- "thunderbird": "supported",
702
- "hey-mail": "partial",
703
- // HEY allows SVG but strips some attributes
730
+ "samsung-mail": "supported",
731
+ "thunderbird": "unsupported",
732
+ "hey-mail": "supported",
704
733
  "superhuman": "supported"
705
- // Superhuman (Blink) renders SVG well
706
734
  },
707
- "<form>": {
735
+ "@supports": {
708
736
  "gmail-web": "unsupported",
709
737
  "gmail-android": "unsupported",
710
738
  "gmail-ios": "unsupported",
@@ -712,131 +740,144 @@ var CSS_SUPPORT = {
712
740
  "outlook-windows": "unsupported",
713
741
  "apple-mail-macos": "supported",
714
742
  "apple-mail-ios": "supported",
715
- "yahoo-mail": "unsupported",
716
- "samsung-mail": "unsupported",
717
- "thunderbird": "supported",
718
- "hey-mail": "unsupported",
719
- // HEY strips forms for security
720
- "superhuman": "unsupported"
721
- // Superhuman strips forms for security
743
+ "yahoo-mail": "supported",
744
+ "samsung-mail": "supported",
745
+ "thunderbird": "unsupported",
746
+ "hey-mail": "supported",
747
+ "superhuman": "supported"
722
748
  },
723
- // --- Text Wrapping ---
724
- "word-break": {
725
- "gmail-web": "supported",
726
- "gmail-android": "supported",
727
- "gmail-ios": "supported",
749
+ "!important": {
750
+ "gmail-web": "partial",
751
+ "gmail-android": "partial",
752
+ "gmail-ios": "partial",
728
753
  "outlook-web": "supported",
729
- "outlook-windows": "unsupported",
730
- // Word engine ignores word-break entirely
754
+ "outlook-windows": "partial",
731
755
  "apple-mail-macos": "supported",
732
756
  "apple-mail-ios": "supported",
733
757
  "yahoo-mail": "partial",
734
- // break-all partially works; break-word unreliable
735
758
  "samsung-mail": "supported",
736
759
  "thunderbird": "supported",
737
760
  "hey-mail": "supported",
738
- "superhuman": "supported"
761
+ "superhuman": "unknown"
739
762
  },
740
- "overflow-wrap": {
741
- "gmail-web": "supported",
742
- "gmail-android": "supported",
743
- "gmail-ios": "supported",
744
- "outlook-web": "supported",
763
+ "accent-color": {
764
+ "gmail-web": "unsupported",
765
+ "gmail-android": "unsupported",
766
+ "gmail-ios": "unsupported",
767
+ "outlook-web": "unsupported",
745
768
  "outlook-windows": "unsupported",
746
- // Word engine ignores overflow-wrap
747
769
  "apple-mail-macos": "supported",
748
770
  "apple-mail-ios": "supported",
749
- "yahoo-mail": "partial",
750
- // inconsistent support
771
+ "yahoo-mail": "unsupported",
751
772
  "samsung-mail": "supported",
752
- "thunderbird": "supported",
773
+ "thunderbird": "unknown",
753
774
  "hey-mail": "supported",
754
775
  "superhuman": "supported"
755
776
  },
756
- "white-space": {
757
- "gmail-web": "supported",
758
- "gmail-android": "supported",
759
- "gmail-ios": "supported",
777
+ "align-items": {
778
+ "gmail-web": "unsupported",
779
+ "gmail-android": "unsupported",
780
+ "gmail-ios": "unsupported",
760
781
  "outlook-web": "supported",
761
- "outlook-windows": "partial",
762
- // only normal and nowrap
782
+ "outlook-windows": "unsupported",
763
783
  "apple-mail-macos": "supported",
764
784
  "apple-mail-ios": "supported",
765
- "yahoo-mail": "supported",
785
+ "yahoo-mail": "unsupported",
766
786
  "samsung-mail": "supported",
767
787
  "thunderbird": "supported",
768
788
  "hey-mail": "supported",
769
789
  "superhuman": "supported"
770
790
  },
771
- "text-overflow": {
791
+ "animation": {
772
792
  "gmail-web": "unsupported",
773
- // Gmail strips overflow, so text-overflow is useless
774
793
  "gmail-android": "unsupported",
775
794
  "gmail-ios": "unsupported",
776
- "outlook-web": "supported",
795
+ "outlook-web": "unsupported",
777
796
  "outlook-windows": "unsupported",
778
797
  "apple-mail-macos": "supported",
779
798
  "apple-mail-ios": "supported",
780
- "yahoo-mail": "partial",
799
+ "yahoo-mail": "unsupported",
781
800
  "samsung-mail": "supported",
782
801
  "thunderbird": "supported",
783
802
  "hey-mail": "supported",
803
+ "superhuman": "partial"
804
+ },
805
+ "aspect-ratio": {
806
+ "gmail-web": "unsupported",
807
+ "gmail-android": "unsupported",
808
+ "gmail-ios": "unsupported",
809
+ "outlook-web": "unsupported",
810
+ "outlook-windows": "unsupported",
811
+ "apple-mail-macos": "supported",
812
+ "apple-mail-ios": "supported",
813
+ "yahoo-mail": "unsupported",
814
+ "samsung-mail": "unsupported",
815
+ "thunderbird": "unsupported",
816
+ "hey-mail": "supported",
784
817
  "superhuman": "supported"
785
818
  },
786
- // --- Table Layout ---
787
- "vertical-align": {
819
+ "backdrop-filter": {
820
+ "gmail-web": "unsupported",
821
+ "gmail-android": "unsupported",
822
+ "gmail-ios": "unsupported",
823
+ "outlook-web": "unsupported",
824
+ "outlook-windows": "unsupported",
825
+ "apple-mail-macos": "supported",
826
+ "apple-mail-ios": "supported",
827
+ "yahoo-mail": "unsupported",
828
+ "samsung-mail": "supported",
829
+ "thunderbird": "unknown",
830
+ "hey-mail": "unknown",
831
+ "superhuman": "supported"
832
+ },
833
+ "background": {
788
834
  "gmail-web": "supported",
789
835
  "gmail-android": "supported",
790
836
  "gmail-ios": "supported",
791
837
  "outlook-web": "supported",
792
838
  "outlook-windows": "partial",
793
- // only on <td> elements via valign attribute
794
839
  "apple-mail-macos": "supported",
795
840
  "apple-mail-ios": "supported",
796
- "yahoo-mail": "supported",
841
+ "yahoo-mail": "partial",
797
842
  "samsung-mail": "supported",
798
843
  "thunderbird": "supported",
799
844
  "hey-mail": "supported",
800
845
  "superhuman": "supported"
801
846
  },
802
- "border-spacing": {
847
+ "background-blend-mode": {
803
848
  "gmail-web": "supported",
804
- "gmail-android": "supported",
805
- "gmail-ios": "supported",
849
+ "gmail-android": "partial",
850
+ "gmail-ios": "partial",
806
851
  "outlook-web": "supported",
807
852
  "outlook-windows": "unsupported",
808
- // use cellspacing attribute instead
809
853
  "apple-mail-macos": "supported",
810
854
  "apple-mail-ios": "supported",
811
- "yahoo-mail": "supported",
855
+ "yahoo-mail": "unsupported",
812
856
  "samsung-mail": "supported",
813
857
  "thunderbird": "supported",
814
858
  "hey-mail": "supported",
815
- "superhuman": "supported"
859
+ "superhuman": "unknown"
816
860
  },
817
- // --- Sizing ---
818
- "min-width": {
861
+ "background-clip": {
819
862
  "gmail-web": "supported",
820
- "gmail-android": "supported",
821
- "gmail-ios": "supported",
863
+ "gmail-android": "partial",
864
+ "gmail-ios": "partial",
822
865
  "outlook-web": "supported",
823
866
  "outlook-windows": "unsupported",
824
- // Word engine ignores min-width
825
867
  "apple-mail-macos": "supported",
826
868
  "apple-mail-ios": "supported",
827
- "yahoo-mail": "supported",
869
+ "yahoo-mail": "unsupported",
828
870
  "samsung-mail": "supported",
829
871
  "thunderbird": "supported",
830
872
  "hey-mail": "supported",
831
873
  "superhuman": "supported"
832
874
  },
833
- "min-height": {
875
+ "background-color": {
834
876
  "gmail-web": "supported",
835
877
  "gmail-android": "supported",
836
878
  "gmail-ios": "supported",
837
879
  "outlook-web": "supported",
838
- "outlook-windows": "unsupported",
839
- // Word engine ignores min-height
880
+ "outlook-windows": "supported",
840
881
  "apple-mail-macos": "supported",
841
882
  "apple-mail-ios": "supported",
842
883
  "yahoo-mail": "supported",
@@ -845,7 +886,7 @@ var CSS_SUPPORT = {
845
886
  "hey-mail": "supported",
846
887
  "superhuman": "supported"
847
888
  },
848
- "max-height": {
889
+ "background-image": {
849
890
  "gmail-web": "supported",
850
891
  "gmail-android": "supported",
851
892
  "gmail-ios": "supported",
@@ -853,17 +894,16 @@ var CSS_SUPPORT = {
853
894
  "outlook-windows": "unsupported",
854
895
  "apple-mail-macos": "supported",
855
896
  "apple-mail-ios": "supported",
856
- "yahoo-mail": "supported",
897
+ "yahoo-mail": "partial",
857
898
  "samsung-mail": "supported",
858
899
  "thunderbird": "supported",
859
900
  "hey-mail": "supported",
860
901
  "superhuman": "supported"
861
902
  },
862
- // --- Shadows ---
863
- "text-shadow": {
864
- "gmail-web": "unsupported",
865
- "gmail-android": "unsupported",
866
- "gmail-ios": "unsupported",
903
+ "background-origin": {
904
+ "gmail-web": "supported",
905
+ "gmail-android": "partial",
906
+ "gmail-ios": "partial",
867
907
  "outlook-web": "supported",
868
908
  "outlook-windows": "unsupported",
869
909
  "apple-mail-macos": "supported",
@@ -874,8 +914,7 @@ var CSS_SUPPORT = {
874
914
  "hey-mail": "supported",
875
915
  "superhuman": "supported"
876
916
  },
877
- // --- Background Sub-properties ---
878
- "background-size": {
917
+ "background-position": {
879
918
  "gmail-web": "supported",
880
919
  "gmail-android": "supported",
881
920
  "gmail-ios": "supported",
@@ -883,13 +922,153 @@ var CSS_SUPPORT = {
883
922
  "outlook-windows": "unsupported",
884
923
  "apple-mail-macos": "supported",
885
924
  "apple-mail-ios": "supported",
886
- "yahoo-mail": "partial",
925
+ "yahoo-mail": "supported",
887
926
  "samsung-mail": "supported",
888
927
  "thunderbird": "supported",
889
928
  "hey-mail": "supported",
890
929
  "superhuman": "supported"
891
930
  },
892
- "background-position": {
931
+ "background-repeat": {
932
+ "gmail-web": "supported",
933
+ "gmail-android": "supported",
934
+ "gmail-ios": "supported",
935
+ "outlook-web": "supported",
936
+ "outlook-windows": "unsupported",
937
+ "apple-mail-macos": "supported",
938
+ "apple-mail-ios": "supported",
939
+ "yahoo-mail": "supported",
940
+ "samsung-mail": "supported",
941
+ "thunderbird": "supported",
942
+ "hey-mail": "supported",
943
+ "superhuman": "supported"
944
+ },
945
+ "background-size": {
946
+ "gmail-web": "supported",
947
+ "gmail-android": "partial",
948
+ "gmail-ios": "partial",
949
+ "outlook-web": "supported",
950
+ "outlook-windows": "unsupported",
951
+ "apple-mail-macos": "supported",
952
+ "apple-mail-ios": "supported",
953
+ "yahoo-mail": "supported",
954
+ "samsung-mail": "supported",
955
+ "thunderbird": "supported",
956
+ "hey-mail": "supported",
957
+ "superhuman": "supported"
958
+ },
959
+ "bimi": {
960
+ "gmail-web": "supported",
961
+ "gmail-android": "supported",
962
+ "gmail-ios": "supported",
963
+ "outlook-web": "unsupported",
964
+ "outlook-windows": "unsupported",
965
+ "apple-mail-macos": "supported",
966
+ "apple-mail-ios": "supported",
967
+ "yahoo-mail": "supported",
968
+ "samsung-mail": "unsupported",
969
+ "thunderbird": "unsupported",
970
+ "hey-mail": "unsupported",
971
+ "superhuman": "unknown"
972
+ },
973
+ "block-size": {
974
+ "gmail-web": "unsupported",
975
+ "gmail-android": "unsupported",
976
+ "gmail-ios": "unsupported",
977
+ "outlook-web": "unsupported",
978
+ "outlook-windows": "unsupported",
979
+ "apple-mail-macos": "supported",
980
+ "apple-mail-ios": "supported",
981
+ "yahoo-mail": "unsupported",
982
+ "samsung-mail": "supported",
983
+ "thunderbird": "supported",
984
+ "hey-mail": "supported",
985
+ "superhuman": "unknown"
986
+ },
987
+ "border": {
988
+ "gmail-web": "supported",
989
+ "gmail-android": "supported",
990
+ "gmail-ios": "supported",
991
+ "outlook-web": "supported",
992
+ "outlook-windows": "partial",
993
+ "apple-mail-macos": "supported",
994
+ "apple-mail-ios": "supported",
995
+ "yahoo-mail": "supported",
996
+ "samsung-mail": "supported",
997
+ "thunderbird": "supported",
998
+ "hey-mail": "supported",
999
+ "superhuman": "supported"
1000
+ },
1001
+ "border-collapse": {
1002
+ "gmail-web": "supported",
1003
+ "gmail-android": "supported",
1004
+ "gmail-ios": "supported",
1005
+ "outlook-web": "supported",
1006
+ "outlook-windows": "supported",
1007
+ "apple-mail-macos": "supported",
1008
+ "apple-mail-ios": "supported",
1009
+ "yahoo-mail": "supported",
1010
+ "samsung-mail": "supported",
1011
+ "thunderbird": "supported",
1012
+ "hey-mail": "unknown",
1013
+ "superhuman": "supported"
1014
+ },
1015
+ "border-image": {
1016
+ "gmail-web": "unsupported",
1017
+ "gmail-android": "unsupported",
1018
+ "gmail-ios": "unsupported",
1019
+ "outlook-web": "unsupported",
1020
+ "outlook-windows": "unsupported",
1021
+ "apple-mail-macos": "supported",
1022
+ "apple-mail-ios": "supported",
1023
+ "yahoo-mail": "unsupported",
1024
+ "samsung-mail": "supported",
1025
+ "thunderbird": "supported",
1026
+ "hey-mail": "supported",
1027
+ "superhuman": "unknown"
1028
+ },
1029
+ "border-inline": {
1030
+ "gmail-web": "unsupported",
1031
+ "gmail-android": "unsupported",
1032
+ "gmail-ios": "unsupported",
1033
+ "outlook-web": "unsupported",
1034
+ "outlook-windows": "unsupported",
1035
+ "apple-mail-macos": "supported",
1036
+ "apple-mail-ios": "supported",
1037
+ "yahoo-mail": "unsupported",
1038
+ "samsung-mail": "unsupported",
1039
+ "thunderbird": "unknown",
1040
+ "hey-mail": "unknown",
1041
+ "superhuman": "unknown"
1042
+ },
1043
+ "border-inline-individual": {
1044
+ "gmail-web": "unsupported",
1045
+ "gmail-android": "unsupported",
1046
+ "gmail-ios": "unsupported",
1047
+ "outlook-web": "unsupported",
1048
+ "outlook-windows": "unsupported",
1049
+ "apple-mail-macos": "supported",
1050
+ "apple-mail-ios": "supported",
1051
+ "yahoo-mail": "unsupported",
1052
+ "samsung-mail": "partial",
1053
+ "thunderbird": "unknown",
1054
+ "hey-mail": "unknown",
1055
+ "superhuman": "unknown"
1056
+ },
1057
+ "border-inline-longhand": {
1058
+ "gmail-web": "unsupported",
1059
+ "gmail-android": "unsupported",
1060
+ "gmail-ios": "unsupported",
1061
+ "outlook-web": "unsupported",
1062
+ "outlook-windows": "unsupported",
1063
+ "apple-mail-macos": "supported",
1064
+ "apple-mail-ios": "supported",
1065
+ "yahoo-mail": "unsupported",
1066
+ "samsung-mail": "supported",
1067
+ "thunderbird": "unknown",
1068
+ "hey-mail": "unknown",
1069
+ "superhuman": "unknown"
1070
+ },
1071
+ "border-radius": {
893
1072
  "gmail-web": "supported",
894
1073
  "gmail-android": "supported",
895
1074
  "gmail-ios": "supported",
@@ -903,11 +1082,24 @@ var CSS_SUPPORT = {
903
1082
  "hey-mail": "supported",
904
1083
  "superhuman": "supported"
905
1084
  },
906
- // --- Misc ---
907
- "opacity": {
1085
+ "border-radius-logical": {
908
1086
  "gmail-web": "unsupported",
909
1087
  "gmail-android": "unsupported",
910
1088
  "gmail-ios": "unsupported",
1089
+ "outlook-web": "unsupported",
1090
+ "outlook-windows": "unsupported",
1091
+ "apple-mail-macos": "supported",
1092
+ "apple-mail-ios": "supported",
1093
+ "yahoo-mail": "unsupported",
1094
+ "samsung-mail": "unsupported",
1095
+ "thunderbird": "unknown",
1096
+ "hey-mail": "unknown",
1097
+ "superhuman": "unknown"
1098
+ },
1099
+ "border-spacing": {
1100
+ "gmail-web": "supported",
1101
+ "gmail-android": "supported",
1102
+ "gmail-ios": "supported",
911
1103
  "outlook-web": "supported",
912
1104
  "outlook-windows": "unsupported",
913
1105
  "apple-mail-macos": "supported",
@@ -915,10 +1107,10 @@ var CSS_SUPPORT = {
915
1107
  "yahoo-mail": "supported",
916
1108
  "samsung-mail": "supported",
917
1109
  "thunderbird": "supported",
918
- "hey-mail": "supported",
1110
+ "hey-mail": "unknown",
919
1111
  "superhuman": "supported"
920
1112
  },
921
- "overflow": {
1113
+ "bottom": {
922
1114
  "gmail-web": "unsupported",
923
1115
  "gmail-android": "unsupported",
924
1116
  "gmail-ios": "unsupported",
@@ -926,16 +1118,2480 @@ var CSS_SUPPORT = {
926
1118
  "outlook-windows": "unsupported",
927
1119
  "apple-mail-macos": "supported",
928
1120
  "apple-mail-ios": "supported",
1121
+ "yahoo-mail": "unsupported",
1122
+ "samsung-mail": "partial",
1123
+ "thunderbird": "supported",
1124
+ "hey-mail": "supported",
1125
+ "superhuman": "unknown"
1126
+ },
1127
+ "box-shadow": {
1128
+ "gmail-web": "unsupported",
1129
+ "gmail-android": "partial",
1130
+ "gmail-ios": "partial",
1131
+ "outlook-web": "supported",
1132
+ "outlook-windows": "unsupported",
1133
+ "apple-mail-macos": "supported",
1134
+ "apple-mail-ios": "supported",
1135
+ "yahoo-mail": "unsupported",
1136
+ "samsung-mail": "supported",
1137
+ "thunderbird": "supported",
1138
+ "hey-mail": "supported",
1139
+ "superhuman": "supported"
1140
+ },
1141
+ "box-sizing": {
1142
+ "gmail-web": "supported",
1143
+ "gmail-android": "supported",
1144
+ "gmail-ios": "supported",
1145
+ "outlook-web": "supported",
1146
+ "outlook-windows": "unsupported",
1147
+ "apple-mail-macos": "supported",
1148
+ "apple-mail-ios": "supported",
1149
+ "yahoo-mail": "unsupported",
1150
+ "samsung-mail": "supported",
1151
+ "thunderbird": "supported",
1152
+ "hey-mail": "supported",
1153
+ "superhuman": "supported"
1154
+ },
1155
+ "calc": {
1156
+ "gmail-web": "supported",
1157
+ "gmail-android": "partial",
1158
+ "gmail-ios": "partial",
1159
+ "outlook-web": "unsupported",
1160
+ "outlook-windows": "unsupported",
1161
+ "apple-mail-macos": "supported",
1162
+ "apple-mail-ios": "supported",
1163
+ "yahoo-mail": "unsupported",
1164
+ "samsung-mail": "supported",
1165
+ "thunderbird": "supported",
1166
+ "hey-mail": "supported",
1167
+ "superhuman": "unknown"
1168
+ },
1169
+ "caption-side": {
1170
+ "gmail-web": "supported",
1171
+ "gmail-android": "supported",
1172
+ "gmail-ios": "supported",
1173
+ "outlook-web": "supported",
1174
+ "outlook-windows": "unsupported",
1175
+ "apple-mail-macos": "supported",
1176
+ "apple-mail-ios": "supported",
929
1177
  "yahoo-mail": "supported",
1178
+ "samsung-mail": "supported",
1179
+ "thunderbird": "supported",
1180
+ "hey-mail": "supported",
1181
+ "superhuman": "supported"
1182
+ },
1183
+ "clamp": {
1184
+ "gmail-web": "supported",
1185
+ "gmail-android": "partial",
1186
+ "gmail-ios": "partial",
1187
+ "outlook-web": "unsupported",
1188
+ "outlook-windows": "unsupported",
1189
+ "apple-mail-macos": "supported",
1190
+ "apple-mail-ios": "supported",
1191
+ "yahoo-mail": "unsupported",
930
1192
  "samsung-mail": "partial",
931
1193
  "thunderbird": "supported",
932
1194
  "hey-mail": "supported",
1195
+ "superhuman": "unknown"
1196
+ },
1197
+ "clear": {
1198
+ "gmail-web": "supported",
1199
+ "gmail-android": "partial",
1200
+ "gmail-ios": "supported",
1201
+ "outlook-web": "supported",
1202
+ "outlook-windows": "unsupported",
1203
+ "apple-mail-macos": "supported",
1204
+ "apple-mail-ios": "supported",
1205
+ "yahoo-mail": "partial",
1206
+ "samsung-mail": "supported",
1207
+ "thunderbird": "unknown",
1208
+ "hey-mail": "unknown",
1209
+ "superhuman": "unknown"
1210
+ },
1211
+ "clip-path": {
1212
+ "gmail-web": "unsupported",
1213
+ "gmail-android": "unsupported",
1214
+ "gmail-ios": "unsupported",
1215
+ "outlook-web": "unsupported",
1216
+ "outlook-windows": "unsupported",
1217
+ "apple-mail-macos": "supported",
1218
+ "apple-mail-ios": "supported",
1219
+ "yahoo-mail": "unsupported",
1220
+ "samsung-mail": "supported",
1221
+ "thunderbird": "supported",
1222
+ "hey-mail": "supported",
933
1223
  "superhuman": "supported"
934
1224
  },
935
- "visibility": {
1225
+ "color": {
1226
+ "gmail-web": "supported",
1227
+ "gmail-android": "supported",
1228
+ "gmail-ios": "supported",
1229
+ "outlook-web": "supported",
1230
+ "outlook-windows": "supported",
1231
+ "apple-mail-macos": "supported",
1232
+ "apple-mail-ios": "supported",
1233
+ "yahoo-mail": "supported",
1234
+ "samsung-mail": "supported",
1235
+ "thunderbird": "supported",
1236
+ "hey-mail": "supported",
1237
+ "superhuman": "supported"
1238
+ },
1239
+ "color-scheme": {
936
1240
  "gmail-web": "unsupported",
937
1241
  "gmail-android": "unsupported",
938
1242
  "gmail-ios": "unsupported",
1243
+ "outlook-web": "unsupported",
1244
+ "outlook-windows": "unsupported",
1245
+ "apple-mail-macos": "supported",
1246
+ "apple-mail-ios": "supported",
1247
+ "yahoo-mail": "unsupported",
1248
+ "samsung-mail": "supported",
1249
+ "thunderbird": "supported",
1250
+ "hey-mail": "unsupported",
1251
+ "superhuman": "unknown"
1252
+ },
1253
+ "column-count": {
1254
+ "gmail-web": "supported",
1255
+ "gmail-android": "supported",
1256
+ "gmail-ios": "supported",
1257
+ "outlook-web": "supported",
1258
+ "outlook-windows": "unsupported",
1259
+ "apple-mail-macos": "supported",
1260
+ "apple-mail-ios": "supported",
1261
+ "yahoo-mail": "unsupported",
1262
+ "samsung-mail": "supported",
1263
+ "thunderbird": "supported",
1264
+ "hey-mail": "supported",
1265
+ "superhuman": "supported"
1266
+ },
1267
+ "columns": {
1268
+ "gmail-web": "supported",
1269
+ "gmail-android": "supported",
1270
+ "gmail-ios": "supported",
1271
+ "outlook-web": "supported",
1272
+ "outlook-windows": "unsupported",
1273
+ "apple-mail-macos": "supported",
1274
+ "apple-mail-ios": "supported",
1275
+ "yahoo-mail": "unsupported",
1276
+ "samsung-mail": "supported",
1277
+ "thunderbird": "supported",
1278
+ "hey-mail": "supported",
1279
+ "superhuman": "supported"
1280
+ },
1281
+ "conic-gradient": {
1282
+ "gmail-web": "unsupported",
1283
+ "gmail-android": "unsupported",
1284
+ "gmail-ios": "unsupported",
1285
+ "outlook-web": "unsupported",
1286
+ "outlook-windows": "unsupported",
1287
+ "apple-mail-macos": "supported",
1288
+ "apple-mail-ios": "supported",
1289
+ "yahoo-mail": "unsupported",
1290
+ "samsung-mail": "partial",
1291
+ "thunderbird": "supported",
1292
+ "hey-mail": "supported",
1293
+ "superhuman": "unknown"
1294
+ },
1295
+ "css-comments": {
1296
+ "gmail-web": "supported",
1297
+ "gmail-android": "partial",
1298
+ "gmail-ios": "supported",
1299
+ "outlook-web": "supported",
1300
+ "outlook-windows": "supported",
1301
+ "apple-mail-macos": "supported",
1302
+ "apple-mail-ios": "supported",
1303
+ "yahoo-mail": "supported",
1304
+ "samsung-mail": "supported",
1305
+ "thunderbird": "supported",
1306
+ "hey-mail": "unknown",
1307
+ "superhuman": "unknown"
1308
+ },
1309
+ "cursor": {
1310
+ "gmail-web": "unsupported",
1311
+ "gmail-android": "unsupported",
1312
+ "gmail-ios": "unsupported",
1313
+ "outlook-web": "unsupported",
1314
+ "outlook-windows": "unknown",
1315
+ "apple-mail-macos": "partial",
1316
+ "apple-mail-ios": "unsupported",
1317
+ "yahoo-mail": "partial",
1318
+ "samsung-mail": "unknown",
1319
+ "thunderbird": "supported",
1320
+ "hey-mail": "unknown",
1321
+ "superhuman": "supported"
1322
+ },
1323
+ "custom-properties": {
1324
+ "gmail-web": "unsupported",
1325
+ "gmail-android": "unsupported",
1326
+ "gmail-ios": "unsupported",
1327
+ "outlook-web": "unsupported",
1328
+ "outlook-windows": "unsupported",
1329
+ "apple-mail-macos": "supported",
1330
+ "apple-mail-ios": "supported",
1331
+ "yahoo-mail": "unsupported",
1332
+ "samsung-mail": "supported",
1333
+ "thunderbird": "supported",
1334
+ "hey-mail": "supported",
1335
+ "superhuman": "unknown"
1336
+ },
1337
+ "direction": {
1338
+ "gmail-web": "supported",
1339
+ "gmail-android": "supported",
1340
+ "gmail-ios": "supported",
1341
+ "outlook-web": "supported",
1342
+ "outlook-windows": "supported",
1343
+ "apple-mail-macos": "supported",
1344
+ "apple-mail-ios": "supported",
1345
+ "yahoo-mail": "supported",
1346
+ "samsung-mail": "supported",
1347
+ "thunderbird": "supported",
1348
+ "hey-mail": "supported",
1349
+ "superhuman": "supported"
1350
+ },
1351
+ "display": {
1352
+ "gmail-web": "supported",
1353
+ "gmail-android": "partial",
1354
+ "gmail-ios": "partial",
1355
+ "outlook-web": "supported",
1356
+ "outlook-windows": "partial",
1357
+ "apple-mail-macos": "supported",
1358
+ "apple-mail-ios": "supported",
1359
+ "yahoo-mail": "partial",
1360
+ "samsung-mail": "supported",
1361
+ "thunderbird": "supported",
1362
+ "hey-mail": "supported",
1363
+ "superhuman": "supported"
1364
+ },
1365
+ "empty-cells": {
1366
+ "gmail-web": "supported",
1367
+ "gmail-android": "supported",
1368
+ "gmail-ios": "supported",
1369
+ "outlook-web": "supported",
1370
+ "outlook-windows": "unsupported",
1371
+ "apple-mail-macos": "supported",
1372
+ "apple-mail-ios": "supported",
1373
+ "yahoo-mail": "supported",
1374
+ "samsung-mail": "supported",
1375
+ "thunderbird": "unknown",
1376
+ "hey-mail": "unknown",
1377
+ "superhuman": "supported"
1378
+ },
1379
+ "filter": {
1380
+ "gmail-web": "unsupported",
1381
+ "gmail-android": "unsupported",
1382
+ "gmail-ios": "unsupported",
1383
+ "outlook-web": "unsupported",
1384
+ "outlook-windows": "unsupported",
1385
+ "apple-mail-macos": "supported",
1386
+ "apple-mail-ios": "supported",
1387
+ "yahoo-mail": "unsupported",
1388
+ "samsung-mail": "supported",
1389
+ "thunderbird": "supported",
1390
+ "hey-mail": "supported",
1391
+ "superhuman": "supported"
1392
+ },
1393
+ "fit-content": {
1394
+ "gmail-web": "supported",
1395
+ "gmail-android": "supported",
1396
+ "gmail-ios": "partial",
1397
+ "outlook-web": "supported",
1398
+ "outlook-windows": "unsupported",
1399
+ "apple-mail-macos": "supported",
1400
+ "apple-mail-ios": "supported",
1401
+ "yahoo-mail": "unsupported",
1402
+ "samsung-mail": "unsupported",
1403
+ "thunderbird": "supported",
1404
+ "hey-mail": "supported",
1405
+ "superhuman": "unknown"
1406
+ },
1407
+ "flex-direction": {
1408
+ "gmail-web": "unsupported",
1409
+ "gmail-android": "unsupported",
1410
+ "gmail-ios": "unsupported",
1411
+ "outlook-web": "supported",
1412
+ "outlook-windows": "unsupported",
1413
+ "apple-mail-macos": "supported",
1414
+ "apple-mail-ios": "supported",
1415
+ "yahoo-mail": "unsupported",
1416
+ "samsung-mail": "supported",
1417
+ "thunderbird": "supported",
1418
+ "hey-mail": "supported",
1419
+ "superhuman": "supported"
1420
+ },
1421
+ "flex-wrap": {
1422
+ "gmail-web": "unsupported",
1423
+ "gmail-android": "unsupported",
1424
+ "gmail-ios": "unsupported",
1425
+ "outlook-web": "supported",
1426
+ "outlook-windows": "unsupported",
1427
+ "apple-mail-macos": "supported",
1428
+ "apple-mail-ios": "supported",
1429
+ "yahoo-mail": "unsupported",
1430
+ "samsung-mail": "supported",
1431
+ "thunderbird": "supported",
1432
+ "hey-mail": "supported",
1433
+ "superhuman": "supported"
1434
+ },
1435
+ "float": {
1436
+ "gmail-web": "supported",
1437
+ "gmail-android": "partial",
1438
+ "gmail-ios": "partial",
1439
+ "outlook-web": "supported",
1440
+ "outlook-windows": "unsupported",
1441
+ "apple-mail-macos": "supported",
1442
+ "apple-mail-ios": "supported",
1443
+ "yahoo-mail": "partial",
1444
+ "samsung-mail": "supported",
1445
+ "thunderbird": "supported",
1446
+ "hey-mail": "supported",
1447
+ "superhuman": "supported"
1448
+ },
1449
+ "font": {
1450
+ "gmail-web": "supported",
1451
+ "gmail-android": "supported",
1452
+ "gmail-ios": "supported",
1453
+ "outlook-web": "supported",
1454
+ "outlook-windows": "supported",
1455
+ "apple-mail-macos": "supported",
1456
+ "apple-mail-ios": "supported",
1457
+ "yahoo-mail": "supported",
1458
+ "samsung-mail": "supported",
1459
+ "thunderbird": "supported",
1460
+ "hey-mail": "supported",
1461
+ "superhuman": "unknown"
1462
+ },
1463
+ "font-family": {
1464
+ "gmail-web": "supported",
1465
+ "gmail-android": "supported",
1466
+ "gmail-ios": "supported",
1467
+ "outlook-web": "supported",
1468
+ "outlook-windows": "supported",
1469
+ "apple-mail-macos": "supported",
1470
+ "apple-mail-ios": "supported",
1471
+ "yahoo-mail": "supported",
1472
+ "samsung-mail": "supported",
1473
+ "thunderbird": "supported",
1474
+ "hey-mail": "supported",
1475
+ "superhuman": "supported"
1476
+ },
1477
+ "font-kerning": {
1478
+ "gmail-web": "supported",
1479
+ "gmail-android": "supported",
1480
+ "gmail-ios": "supported",
1481
+ "outlook-web": "supported",
1482
+ "outlook-windows": "unsupported",
1483
+ "apple-mail-macos": "supported",
1484
+ "apple-mail-ios": "supported",
1485
+ "yahoo-mail": "unsupported",
1486
+ "samsung-mail": "supported",
1487
+ "thunderbird": "supported",
1488
+ "hey-mail": "unknown",
1489
+ "superhuman": "unknown"
1490
+ },
1491
+ "font-size": {
1492
+ "gmail-web": "supported",
1493
+ "gmail-android": "supported",
1494
+ "gmail-ios": "supported",
1495
+ "outlook-web": "supported",
1496
+ "outlook-windows": "partial",
1497
+ "apple-mail-macos": "supported",
1498
+ "apple-mail-ios": "supported",
1499
+ "yahoo-mail": "partial",
1500
+ "samsung-mail": "partial",
1501
+ "thunderbird": "supported",
1502
+ "hey-mail": "unknown",
1503
+ "superhuman": "supported"
1504
+ },
1505
+ "font-stretch": {
1506
+ "gmail-web": "supported",
1507
+ "gmail-android": "unsupported",
1508
+ "gmail-ios": "supported",
1509
+ "outlook-web": "supported",
1510
+ "outlook-windows": "unsupported",
1511
+ "apple-mail-macos": "supported",
1512
+ "apple-mail-ios": "supported",
1513
+ "yahoo-mail": "unsupported",
1514
+ "samsung-mail": "unsupported",
1515
+ "thunderbird": "supported",
1516
+ "hey-mail": "unknown",
1517
+ "superhuman": "unknown"
1518
+ },
1519
+ "font-weight": {
1520
+ "gmail-web": "supported",
1521
+ "gmail-android": "supported",
1522
+ "gmail-ios": "supported",
1523
+ "outlook-web": "supported",
1524
+ "outlook-windows": "partial",
1525
+ "apple-mail-macos": "supported",
1526
+ "apple-mail-ios": "supported",
1527
+ "yahoo-mail": "partial",
1528
+ "samsung-mail": "supported",
1529
+ "thunderbird": "supported",
1530
+ "hey-mail": "supported",
1531
+ "superhuman": "supported"
1532
+ },
1533
+ "gap": {
1534
+ "gmail-web": "partial",
1535
+ "gmail-android": "partial",
1536
+ "gmail-ios": "partial",
1537
+ "outlook-web": "partial",
1538
+ "outlook-windows": "unsupported",
1539
+ "apple-mail-macos": "supported",
1540
+ "apple-mail-ios": "supported",
1541
+ "yahoo-mail": "unsupported",
1542
+ "samsung-mail": "supported",
1543
+ "thunderbird": "supported",
1544
+ "hey-mail": "supported",
1545
+ "superhuman": "supported"
1546
+ },
1547
+ "grid-template-columns": {
1548
+ "gmail-web": "unsupported",
1549
+ "gmail-android": "unsupported",
1550
+ "gmail-ios": "unsupported",
1551
+ "outlook-web": "unsupported",
1552
+ "outlook-windows": "unsupported",
1553
+ "apple-mail-macos": "supported",
1554
+ "apple-mail-ios": "supported",
1555
+ "yahoo-mail": "unsupported",
1556
+ "samsung-mail": "supported",
1557
+ "thunderbird": "supported",
1558
+ "hey-mail": "supported",
1559
+ "superhuman": "supported"
1560
+ },
1561
+ "height": {
1562
+ "gmail-web": "supported",
1563
+ "gmail-android": "supported",
1564
+ "gmail-ios": "supported",
1565
+ "outlook-web": "supported",
1566
+ "outlook-windows": "partial",
1567
+ "apple-mail-macos": "supported",
1568
+ "apple-mail-ios": "supported",
1569
+ "yahoo-mail": "unsupported",
1570
+ "samsung-mail": "supported",
1571
+ "thunderbird": "supported",
1572
+ "hey-mail": "supported",
1573
+ "superhuman": "supported"
1574
+ },
1575
+ "hyphenate-character": {
1576
+ "gmail-web": "unsupported",
1577
+ "gmail-android": "unsupported",
1578
+ "gmail-ios": "unsupported",
1579
+ "outlook-web": "unsupported",
1580
+ "outlook-windows": "unsupported",
1581
+ "apple-mail-macos": "supported",
1582
+ "apple-mail-ios": "supported",
1583
+ "yahoo-mail": "unsupported",
1584
+ "samsung-mail": "supported",
1585
+ "thunderbird": "unknown",
1586
+ "hey-mail": "unknown",
1587
+ "superhuman": "unknown"
1588
+ },
1589
+ "hyphenate-limit-chars": {
1590
+ "gmail-web": "unsupported",
1591
+ "gmail-android": "unsupported",
1592
+ "gmail-ios": "unsupported",
1593
+ "outlook-web": "unsupported",
1594
+ "outlook-windows": "unsupported",
1595
+ "apple-mail-macos": "unsupported",
1596
+ "apple-mail-ios": "unsupported",
1597
+ "yahoo-mail": "unsupported",
1598
+ "samsung-mail": "unsupported",
1599
+ "thunderbird": "unsupported",
1600
+ "hey-mail": "unknown",
1601
+ "superhuman": "unknown"
1602
+ },
1603
+ "hyphens": {
1604
+ "gmail-web": "unsupported",
1605
+ "gmail-android": "unsupported",
1606
+ "gmail-ios": "unsupported",
1607
+ "outlook-web": "unsupported",
1608
+ "outlook-windows": "unsupported",
1609
+ "apple-mail-macos": "supported",
1610
+ "apple-mail-ios": "supported",
1611
+ "yahoo-mail": "unsupported",
1612
+ "samsung-mail": "supported",
1613
+ "thunderbird": "unknown",
1614
+ "hey-mail": "unknown",
1615
+ "superhuman": "unknown"
1616
+ },
1617
+ "inline-size": {
1618
+ "gmail-web": "unsupported",
1619
+ "gmail-android": "unsupported",
1620
+ "gmail-ios": "unsupported",
1621
+ "outlook-web": "unsupported",
1622
+ "outlook-windows": "unsupported",
1623
+ "apple-mail-macos": "unsupported",
1624
+ "apple-mail-ios": "unsupported",
1625
+ "yahoo-mail": "unsupported",
1626
+ "samsung-mail": "supported",
1627
+ "thunderbird": "supported",
1628
+ "hey-mail": "supported",
1629
+ "superhuman": "unknown"
1630
+ },
1631
+ "inset": {
1632
+ "gmail-web": "unsupported",
1633
+ "gmail-android": "unsupported",
1634
+ "gmail-ios": "unsupported",
1635
+ "outlook-web": "unsupported",
1636
+ "outlook-windows": "unsupported",
1637
+ "apple-mail-macos": "supported",
1638
+ "apple-mail-ios": "supported",
1639
+ "yahoo-mail": "unsupported",
1640
+ "samsung-mail": "unsupported",
1641
+ "thunderbird": "supported",
1642
+ "hey-mail": "unknown",
1643
+ "superhuman": "unknown"
1644
+ },
1645
+ "justify-content": {
1646
+ "gmail-web": "unsupported",
1647
+ "gmail-android": "unsupported",
1648
+ "gmail-ios": "unsupported",
1649
+ "outlook-web": "supported",
1650
+ "outlook-windows": "unsupported",
1651
+ "apple-mail-macos": "supported",
1652
+ "apple-mail-ios": "supported",
1653
+ "yahoo-mail": "unsupported",
1654
+ "samsung-mail": "supported",
1655
+ "thunderbird": "supported",
1656
+ "hey-mail": "supported",
1657
+ "superhuman": "supported"
1658
+ },
1659
+ "left": {
1660
+ "gmail-web": "unsupported",
1661
+ "gmail-android": "unsupported",
1662
+ "gmail-ios": "unsupported",
1663
+ "outlook-web": "supported",
1664
+ "outlook-windows": "unsupported",
1665
+ "apple-mail-macos": "supported",
1666
+ "apple-mail-ios": "supported",
1667
+ "yahoo-mail": "unsupported",
1668
+ "samsung-mail": "partial",
1669
+ "thunderbird": "supported",
1670
+ "hey-mail": "supported",
1671
+ "superhuman": "unknown"
1672
+ },
1673
+ "letter-spacing": {
1674
+ "gmail-web": "supported",
1675
+ "gmail-android": "supported",
1676
+ "gmail-ios": "supported",
1677
+ "outlook-web": "supported",
1678
+ "outlook-windows": "partial",
1679
+ "apple-mail-macos": "supported",
1680
+ "apple-mail-ios": "supported",
1681
+ "yahoo-mail": "supported",
1682
+ "samsung-mail": "supported",
1683
+ "thunderbird": "supported",
1684
+ "hey-mail": "supported",
1685
+ "superhuman": "supported"
1686
+ },
1687
+ "light-dark": {
1688
+ "gmail-web": "unsupported",
1689
+ "gmail-android": "unsupported",
1690
+ "gmail-ios": "unsupported",
1691
+ "outlook-web": "unsupported",
1692
+ "outlook-windows": "unsupported",
1693
+ "apple-mail-macos": "supported",
1694
+ "apple-mail-ios": "supported",
1695
+ "yahoo-mail": "unsupported",
1696
+ "samsung-mail": "partial",
1697
+ "thunderbird": "supported",
1698
+ "hey-mail": "partial",
1699
+ "superhuman": "unknown"
1700
+ },
1701
+ "line-height": {
1702
+ "gmail-web": "supported",
1703
+ "gmail-android": "supported",
1704
+ "gmail-ios": "supported",
1705
+ "outlook-web": "supported",
1706
+ "outlook-windows": "partial",
1707
+ "apple-mail-macos": "supported",
1708
+ "apple-mail-ios": "supported",
1709
+ "yahoo-mail": "supported",
1710
+ "samsung-mail": "supported",
1711
+ "thunderbird": "supported",
1712
+ "hey-mail": "supported",
1713
+ "superhuman": "supported"
1714
+ },
1715
+ "linear-gradient": {
1716
+ "gmail-web": "supported",
1717
+ "gmail-android": "partial",
1718
+ "gmail-ios": "supported",
1719
+ "outlook-web": "unsupported",
1720
+ "outlook-windows": "unsupported",
1721
+ "apple-mail-macos": "supported",
1722
+ "apple-mail-ios": "supported",
1723
+ "yahoo-mail": "unsupported",
1724
+ "samsung-mail": "partial",
1725
+ "thunderbird": "supported",
1726
+ "hey-mail": "supported",
1727
+ "superhuman": "supported"
1728
+ },
1729
+ "list-style": {
1730
+ "gmail-web": "partial",
1731
+ "gmail-android": "partial",
1732
+ "gmail-ios": "partial",
1733
+ "outlook-web": "supported",
1734
+ "outlook-windows": "partial",
1735
+ "apple-mail-macos": "supported",
1736
+ "apple-mail-ios": "supported",
1737
+ "yahoo-mail": "partial",
1738
+ "samsung-mail": "supported",
1739
+ "thunderbird": "supported",
1740
+ "hey-mail": "supported",
1741
+ "superhuman": "supported"
1742
+ },
1743
+ "list-style-image": {
1744
+ "gmail-web": "unsupported",
1745
+ "gmail-android": "unsupported",
1746
+ "gmail-ios": "unsupported",
1747
+ "outlook-web": "unsupported",
1748
+ "outlook-windows": "unsupported",
1749
+ "apple-mail-macos": "supported",
1750
+ "apple-mail-ios": "supported",
1751
+ "yahoo-mail": "unsupported",
1752
+ "samsung-mail": "supported",
1753
+ "thunderbird": "supported",
1754
+ "hey-mail": "supported",
1755
+ "superhuman": "unknown"
1756
+ },
1757
+ "list-style-position": {
1758
+ "gmail-web": "supported",
1759
+ "gmail-android": "supported",
1760
+ "gmail-ios": "supported",
1761
+ "outlook-web": "supported",
1762
+ "outlook-windows": "unsupported",
1763
+ "apple-mail-macos": "supported",
1764
+ "apple-mail-ios": "supported",
1765
+ "yahoo-mail": "supported",
1766
+ "samsung-mail": "supported",
1767
+ "thunderbird": "supported",
1768
+ "hey-mail": "supported",
1769
+ "superhuman": "unknown"
1770
+ },
1771
+ "list-style-type": {
1772
+ "gmail-web": "supported",
1773
+ "gmail-android": "supported",
1774
+ "gmail-ios": "supported",
1775
+ "outlook-web": "supported",
1776
+ "outlook-windows": "supported",
1777
+ "apple-mail-macos": "supported",
1778
+ "apple-mail-ios": "supported",
1779
+ "yahoo-mail": "supported",
1780
+ "samsung-mail": "supported",
1781
+ "thunderbird": "supported",
1782
+ "hey-mail": "supported",
1783
+ "superhuman": "supported"
1784
+ },
1785
+ "margin": {
1786
+ "gmail-web": "partial",
1787
+ "gmail-android": "partial",
1788
+ "gmail-ios": "partial",
1789
+ "outlook-web": "partial",
1790
+ "outlook-windows": "partial",
1791
+ "apple-mail-macos": "supported",
1792
+ "apple-mail-ios": "supported",
1793
+ "yahoo-mail": "partial",
1794
+ "samsung-mail": "supported",
1795
+ "thunderbird": "supported",
1796
+ "hey-mail": "supported",
1797
+ "superhuman": "supported"
1798
+ },
1799
+ "margin-block-start-end": {
1800
+ "gmail-web": "unsupported",
1801
+ "gmail-android": "unsupported",
1802
+ "gmail-ios": "unsupported",
1803
+ "outlook-web": "unsupported",
1804
+ "outlook-windows": "unsupported",
1805
+ "apple-mail-macos": "supported",
1806
+ "apple-mail-ios": "supported",
1807
+ "yahoo-mail": "unsupported",
1808
+ "samsung-mail": "supported",
1809
+ "thunderbird": "unknown",
1810
+ "hey-mail": "unknown",
1811
+ "superhuman": "unknown"
1812
+ },
1813
+ "margin-inline-block": {
1814
+ "gmail-web": "unsupported",
1815
+ "gmail-android": "unsupported",
1816
+ "gmail-ios": "unsupported",
1817
+ "outlook-web": "unsupported",
1818
+ "outlook-windows": "unsupported",
1819
+ "apple-mail-macos": "supported",
1820
+ "apple-mail-ios": "supported",
1821
+ "yahoo-mail": "unsupported",
1822
+ "samsung-mail": "unsupported",
1823
+ "thunderbird": "supported",
1824
+ "hey-mail": "supported",
1825
+ "superhuman": "unknown"
1826
+ },
1827
+ "margin-inline-start-end": {
1828
+ "gmail-web": "unsupported",
1829
+ "gmail-android": "unsupported",
1830
+ "gmail-ios": "unsupported",
1831
+ "outlook-web": "unsupported",
1832
+ "outlook-windows": "unsupported",
1833
+ "apple-mail-macos": "supported",
1834
+ "apple-mail-ios": "supported",
1835
+ "yahoo-mail": "unsupported",
1836
+ "samsung-mail": "supported",
1837
+ "thunderbird": "unknown",
1838
+ "hey-mail": "unknown",
1839
+ "superhuman": "unknown"
1840
+ },
1841
+ "mask-image": {
1842
+ "gmail-web": "unsupported",
1843
+ "gmail-android": "unsupported",
1844
+ "gmail-ios": "unsupported",
1845
+ "outlook-web": "unsupported",
1846
+ "outlook-windows": "unsupported",
1847
+ "apple-mail-macos": "supported",
1848
+ "apple-mail-ios": "supported",
1849
+ "yahoo-mail": "unsupported",
1850
+ "samsung-mail": "supported",
1851
+ "thunderbird": "unknown",
1852
+ "hey-mail": "unknown",
1853
+ "superhuman": "unknown"
1854
+ },
1855
+ "max": {
1856
+ "gmail-web": "supported",
1857
+ "gmail-android": "partial",
1858
+ "gmail-ios": "partial",
1859
+ "outlook-web": "unsupported",
1860
+ "outlook-windows": "unsupported",
1861
+ "apple-mail-macos": "supported",
1862
+ "apple-mail-ios": "supported",
1863
+ "yahoo-mail": "unsupported",
1864
+ "samsung-mail": "partial",
1865
+ "thunderbird": "supported",
1866
+ "hey-mail": "supported",
1867
+ "superhuman": "unknown"
1868
+ },
1869
+ "max-block-size": {
1870
+ "gmail-web": "unsupported",
1871
+ "gmail-android": "unsupported",
1872
+ "gmail-ios": "unsupported",
1873
+ "outlook-web": "unsupported",
1874
+ "outlook-windows": "unsupported",
1875
+ "apple-mail-macos": "supported",
1876
+ "apple-mail-ios": "supported",
1877
+ "yahoo-mail": "unsupported",
1878
+ "samsung-mail": "supported",
1879
+ "thunderbird": "unknown",
1880
+ "hey-mail": "unknown",
1881
+ "superhuman": "unknown"
1882
+ },
1883
+ "max-height": {
1884
+ "gmail-web": "supported",
1885
+ "gmail-android": "supported",
1886
+ "gmail-ios": "supported",
1887
+ "outlook-web": "supported",
1888
+ "outlook-windows": "unsupported",
1889
+ "apple-mail-macos": "supported",
1890
+ "apple-mail-ios": "supported",
1891
+ "yahoo-mail": "supported",
1892
+ "samsung-mail": "supported",
1893
+ "thunderbird": "supported",
1894
+ "hey-mail": "supported",
1895
+ "superhuman": "supported"
1896
+ },
1897
+ "max-inline-size": {
1898
+ "gmail-web": "unsupported",
1899
+ "gmail-android": "unsupported",
1900
+ "gmail-ios": "unsupported",
1901
+ "outlook-web": "unsupported",
1902
+ "outlook-windows": "unsupported",
1903
+ "apple-mail-macos": "supported",
1904
+ "apple-mail-ios": "supported",
1905
+ "yahoo-mail": "unsupported",
1906
+ "samsung-mail": "supported",
1907
+ "thunderbird": "unknown",
1908
+ "hey-mail": "unknown",
1909
+ "superhuman": "unknown"
1910
+ },
1911
+ "max-width": {
1912
+ "gmail-web": "supported",
1913
+ "gmail-android": "supported",
1914
+ "gmail-ios": "supported",
1915
+ "outlook-web": "supported",
1916
+ "outlook-windows": "partial",
1917
+ "apple-mail-macos": "supported",
1918
+ "apple-mail-ios": "supported",
1919
+ "yahoo-mail": "supported",
1920
+ "samsung-mail": "supported",
1921
+ "thunderbird": "supported",
1922
+ "hey-mail": "supported",
1923
+ "superhuman": "supported"
1924
+ },
1925
+ "min": {
1926
+ "gmail-web": "supported",
1927
+ "gmail-android": "partial",
1928
+ "gmail-ios": "partial",
1929
+ "outlook-web": "unsupported",
1930
+ "outlook-windows": "unsupported",
1931
+ "apple-mail-macos": "supported",
1932
+ "apple-mail-ios": "supported",
1933
+ "yahoo-mail": "unsupported",
1934
+ "samsung-mail": "partial",
1935
+ "thunderbird": "supported",
1936
+ "hey-mail": "supported",
1937
+ "superhuman": "unknown"
1938
+ },
1939
+ "min-block-size": {
1940
+ "gmail-web": "unsupported",
1941
+ "gmail-android": "unsupported",
1942
+ "gmail-ios": "unsupported",
1943
+ "outlook-web": "unsupported",
1944
+ "outlook-windows": "unsupported",
1945
+ "apple-mail-macos": "supported",
1946
+ "apple-mail-ios": "supported",
1947
+ "yahoo-mail": "unsupported",
1948
+ "samsung-mail": "supported",
1949
+ "thunderbird": "unknown",
1950
+ "hey-mail": "unknown",
1951
+ "superhuman": "unknown"
1952
+ },
1953
+ "min-height": {
1954
+ "gmail-web": "supported",
1955
+ "gmail-android": "supported",
1956
+ "gmail-ios": "supported",
1957
+ "outlook-web": "supported",
1958
+ "outlook-windows": "unsupported",
1959
+ "apple-mail-macos": "supported",
1960
+ "apple-mail-ios": "supported",
1961
+ "yahoo-mail": "supported",
1962
+ "samsung-mail": "supported",
1963
+ "thunderbird": "supported",
1964
+ "hey-mail": "supported",
1965
+ "superhuman": "supported"
1966
+ },
1967
+ "min-inline-size": {
1968
+ "gmail-web": "unsupported",
1969
+ "gmail-android": "unsupported",
1970
+ "gmail-ios": "unsupported",
1971
+ "outlook-web": "unsupported",
1972
+ "outlook-windows": "unsupported",
1973
+ "apple-mail-macos": "supported",
1974
+ "apple-mail-ios": "supported",
1975
+ "yahoo-mail": "unsupported",
1976
+ "samsung-mail": "supported",
1977
+ "thunderbird": "unknown",
1978
+ "hey-mail": "unknown",
1979
+ "superhuman": "unknown"
1980
+ },
1981
+ "min-width": {
1982
+ "gmail-web": "supported",
1983
+ "gmail-android": "supported",
1984
+ "gmail-ios": "supported",
1985
+ "outlook-web": "supported",
1986
+ "outlook-windows": "unsupported",
1987
+ "apple-mail-macos": "supported",
1988
+ "apple-mail-ios": "supported",
1989
+ "yahoo-mail": "supported",
1990
+ "samsung-mail": "supported",
1991
+ "thunderbird": "supported",
1992
+ "hey-mail": "supported",
1993
+ "superhuman": "supported"
1994
+ },
1995
+ "mix-blend-mode": {
1996
+ "gmail-web": "supported",
1997
+ "gmail-android": "partial",
1998
+ "gmail-ios": "partial",
1999
+ "outlook-web": "supported",
2000
+ "outlook-windows": "unsupported",
2001
+ "apple-mail-macos": "supported",
2002
+ "apple-mail-ios": "supported",
2003
+ "yahoo-mail": "unsupported",
2004
+ "samsung-mail": "supported",
2005
+ "thunderbird": "supported",
2006
+ "hey-mail": "supported",
2007
+ "superhuman": "supported"
2008
+ },
2009
+ "modern-color": {
2010
+ "gmail-web": "unsupported",
2011
+ "gmail-android": "unsupported",
2012
+ "gmail-ios": "unsupported",
2013
+ "outlook-web": "unsupported",
2014
+ "outlook-windows": "unsupported",
2015
+ "apple-mail-macos": "supported",
2016
+ "apple-mail-ios": "supported",
2017
+ "yahoo-mail": "unsupported",
2018
+ "samsung-mail": "unsupported",
2019
+ "thunderbird": "unsupported",
2020
+ "hey-mail": "supported",
2021
+ "superhuman": "unknown"
2022
+ },
2023
+ "nesting": {
2024
+ "gmail-web": "unsupported",
2025
+ "gmail-android": "unsupported",
2026
+ "gmail-ios": "unsupported",
2027
+ "outlook-web": "unsupported",
2028
+ "outlook-windows": "unsupported",
2029
+ "apple-mail-macos": "partial",
2030
+ "apple-mail-ios": "supported",
2031
+ "yahoo-mail": "unsupported",
2032
+ "samsung-mail": "partial",
2033
+ "thunderbird": "supported",
2034
+ "hey-mail": "unknown",
2035
+ "superhuman": "unknown"
2036
+ },
2037
+ "object-fit": {
2038
+ "gmail-web": "supported",
2039
+ "gmail-android": "partial",
2040
+ "gmail-ios": "partial",
2041
+ "outlook-web": "supported",
2042
+ "outlook-windows": "unsupported",
2043
+ "apple-mail-macos": "supported",
2044
+ "apple-mail-ios": "supported",
2045
+ "yahoo-mail": "unsupported",
2046
+ "samsung-mail": "supported",
2047
+ "thunderbird": "supported",
2048
+ "hey-mail": "supported",
2049
+ "superhuman": "supported"
2050
+ },
2051
+ "object-position": {
2052
+ "gmail-web": "supported",
2053
+ "gmail-android": "partial",
2054
+ "gmail-ios": "partial",
2055
+ "outlook-web": "supported",
2056
+ "outlook-windows": "unsupported",
2057
+ "apple-mail-macos": "supported",
2058
+ "apple-mail-ios": "supported",
2059
+ "yahoo-mail": "unsupported",
2060
+ "samsung-mail": "supported",
2061
+ "thunderbird": "supported",
2062
+ "hey-mail": "supported",
2063
+ "superhuman": "supported"
2064
+ },
2065
+ "opacity": {
2066
+ "gmail-web": "supported",
2067
+ "gmail-android": "supported",
2068
+ "gmail-ios": "supported",
2069
+ "outlook-web": "supported",
2070
+ "outlook-windows": "unsupported",
2071
+ "apple-mail-macos": "supported",
2072
+ "apple-mail-ios": "supported",
2073
+ "yahoo-mail": "supported",
2074
+ "samsung-mail": "supported",
2075
+ "thunderbird": "supported",
2076
+ "hey-mail": "supported",
2077
+ "superhuman": "supported"
2078
+ },
2079
+ "orphans": {
2080
+ "gmail-web": "unsupported",
2081
+ "gmail-android": "unsupported",
2082
+ "gmail-ios": "unsupported",
2083
+ "outlook-web": "supported",
2084
+ "outlook-windows": "unsupported",
2085
+ "apple-mail-macos": "supported",
2086
+ "apple-mail-ios": "supported",
2087
+ "yahoo-mail": "unsupported",
2088
+ "samsung-mail": "supported",
2089
+ "thunderbird": "unknown",
2090
+ "hey-mail": "unknown",
2091
+ "superhuman": "supported"
2092
+ },
2093
+ "outline": {
2094
+ "gmail-web": "supported",
2095
+ "gmail-android": "supported",
2096
+ "gmail-ios": "supported",
2097
+ "outlook-web": "supported",
2098
+ "outlook-windows": "unsupported",
2099
+ "apple-mail-macos": "supported",
2100
+ "apple-mail-ios": "supported",
2101
+ "yahoo-mail": "supported",
2102
+ "samsung-mail": "supported",
2103
+ "thunderbird": "supported",
2104
+ "hey-mail": "supported",
2105
+ "superhuman": "supported"
2106
+ },
2107
+ "outline-offset": {
2108
+ "gmail-web": "unsupported",
2109
+ "gmail-android": "unsupported",
2110
+ "gmail-ios": "unsupported",
2111
+ "outlook-web": "unsupported",
2112
+ "outlook-windows": "unsupported",
2113
+ "apple-mail-macos": "supported",
2114
+ "apple-mail-ios": "supported",
2115
+ "yahoo-mail": "unsupported",
2116
+ "samsung-mail": "supported",
2117
+ "thunderbird": "supported",
2118
+ "hey-mail": "supported",
2119
+ "superhuman": "unknown"
2120
+ },
2121
+ "overflow": {
2122
+ "gmail-web": "partial",
2123
+ "gmail-android": "partial",
2124
+ "gmail-ios": "partial",
2125
+ "outlook-web": "partial",
2126
+ "outlook-windows": "unsupported",
2127
+ "apple-mail-macos": "partial",
2128
+ "apple-mail-ios": "partial",
2129
+ "yahoo-mail": "partial",
2130
+ "samsung-mail": "partial",
2131
+ "thunderbird": "supported",
2132
+ "hey-mail": "supported",
2133
+ "superhuman": "supported"
2134
+ },
2135
+ "overflow-wrap": {
2136
+ "gmail-web": "unsupported",
2137
+ "gmail-android": "unsupported",
2138
+ "gmail-ios": "unsupported",
2139
+ "outlook-web": "unsupported",
2140
+ "outlook-windows": "unsupported",
2141
+ "apple-mail-macos": "partial",
2142
+ "apple-mail-ios": "partial",
2143
+ "yahoo-mail": "unsupported",
2144
+ "samsung-mail": "supported",
2145
+ "thunderbird": "unknown",
2146
+ "hey-mail": "unknown",
2147
+ "superhuman": "supported"
2148
+ },
2149
+ "padding": {
2150
+ "gmail-web": "supported",
2151
+ "gmail-android": "supported",
2152
+ "gmail-ios": "supported",
2153
+ "outlook-web": "supported",
2154
+ "outlook-windows": "partial",
2155
+ "apple-mail-macos": "supported",
2156
+ "apple-mail-ios": "supported",
2157
+ "yahoo-mail": "supported",
2158
+ "samsung-mail": "supported",
2159
+ "thunderbird": "supported",
2160
+ "hey-mail": "supported",
2161
+ "superhuman": "supported"
2162
+ },
2163
+ "padding-block-start-end": {
2164
+ "gmail-web": "unsupported",
2165
+ "gmail-android": "unsupported",
2166
+ "gmail-ios": "unsupported",
2167
+ "outlook-web": "unsupported",
2168
+ "outlook-windows": "unsupported",
2169
+ "apple-mail-macos": "supported",
2170
+ "apple-mail-ios": "supported",
2171
+ "yahoo-mail": "unsupported",
2172
+ "samsung-mail": "supported",
2173
+ "thunderbird": "unknown",
2174
+ "hey-mail": "unknown",
2175
+ "superhuman": "unknown"
2176
+ },
2177
+ "padding-inline-block": {
2178
+ "gmail-web": "unsupported",
2179
+ "gmail-android": "unsupported",
2180
+ "gmail-ios": "unsupported",
2181
+ "outlook-web": "unsupported",
2182
+ "outlook-windows": "unsupported",
2183
+ "apple-mail-macos": "supported",
2184
+ "apple-mail-ios": "supported",
2185
+ "yahoo-mail": "unsupported",
2186
+ "samsung-mail": "unsupported",
2187
+ "thunderbird": "unknown",
2188
+ "hey-mail": "unknown",
2189
+ "superhuman": "unknown"
2190
+ },
2191
+ "padding-inline-start-end": {
2192
+ "gmail-web": "unsupported",
2193
+ "gmail-android": "unsupported",
2194
+ "gmail-ios": "unsupported",
2195
+ "outlook-web": "unsupported",
2196
+ "outlook-windows": "unsupported",
2197
+ "apple-mail-macos": "supported",
2198
+ "apple-mail-ios": "supported",
2199
+ "yahoo-mail": "unsupported",
2200
+ "samsung-mail": "supported",
2201
+ "thunderbird": "unknown",
2202
+ "hey-mail": "unknown",
2203
+ "superhuman": "unknown"
2204
+ },
2205
+ "position": {
2206
+ "gmail-web": "unsupported",
2207
+ "gmail-android": "unsupported",
2208
+ "gmail-ios": "unsupported",
2209
+ "outlook-web": "partial",
2210
+ "outlook-windows": "unsupported",
2211
+ "apple-mail-macos": "partial",
2212
+ "apple-mail-ios": "partial",
2213
+ "yahoo-mail": "partial",
2214
+ "samsung-mail": "partial",
2215
+ "thunderbird": "supported",
2216
+ "hey-mail": "partial",
2217
+ "superhuman": "partial"
2218
+ },
2219
+ "pseudo-class-active": {
2220
+ "gmail-web": "unsupported",
2221
+ "gmail-android": "unsupported",
2222
+ "gmail-ios": "unsupported",
2223
+ "outlook-web": "partial",
2224
+ "outlook-windows": "unsupported",
2225
+ "apple-mail-macos": "partial",
2226
+ "apple-mail-ios": "unsupported",
2227
+ "yahoo-mail": "supported",
2228
+ "samsung-mail": "unsupported",
2229
+ "thunderbird": "supported",
2230
+ "hey-mail": "supported",
2231
+ "superhuman": "unknown"
2232
+ },
2233
+ "pseudo-class-default": {
2234
+ "gmail-web": "unsupported",
2235
+ "gmail-android": "unsupported",
2236
+ "gmail-ios": "unsupported",
2237
+ "outlook-web": "partial",
2238
+ "outlook-windows": "unsupported",
2239
+ "apple-mail-macos": "supported",
2240
+ "apple-mail-ios": "supported",
2241
+ "yahoo-mail": "supported",
2242
+ "samsung-mail": "unknown",
2243
+ "thunderbird": "supported",
2244
+ "hey-mail": "unknown",
2245
+ "superhuman": "unknown"
2246
+ },
2247
+ "pseudo-class-nth-last-of-type": {
2248
+ "gmail-web": "unsupported",
2249
+ "gmail-android": "unsupported",
2250
+ "gmail-ios": "unsupported",
2251
+ "outlook-web": "unsupported",
2252
+ "outlook-windows": "unsupported",
2253
+ "apple-mail-macos": "supported",
2254
+ "apple-mail-ios": "supported",
2255
+ "yahoo-mail": "unsupported",
2256
+ "samsung-mail": "supported",
2257
+ "thunderbird": "supported",
2258
+ "hey-mail": "supported",
2259
+ "superhuman": "unknown"
2260
+ },
2261
+ "radial-gradient": {
2262
+ "gmail-web": "supported",
2263
+ "gmail-android": "partial",
2264
+ "gmail-ios": "supported",
2265
+ "outlook-web": "unsupported",
2266
+ "outlook-windows": "unsupported",
2267
+ "apple-mail-macos": "supported",
2268
+ "apple-mail-ios": "supported",
2269
+ "yahoo-mail": "unsupported",
2270
+ "samsung-mail": "supported",
2271
+ "thunderbird": "supported",
2272
+ "hey-mail": "supported",
2273
+ "superhuman": "supported"
2274
+ },
2275
+ "resize": {
2276
+ "gmail-web": "unsupported",
2277
+ "gmail-android": "unsupported",
2278
+ "gmail-ios": "unsupported",
2279
+ "outlook-web": "unsupported",
2280
+ "outlook-windows": "unsupported",
2281
+ "apple-mail-macos": "partial",
2282
+ "apple-mail-ios": "unsupported",
2283
+ "yahoo-mail": "unsupported",
2284
+ "samsung-mail": "supported",
2285
+ "thunderbird": "unknown",
2286
+ "hey-mail": "unknown",
2287
+ "superhuman": "unsupported"
2288
+ },
2289
+ "rgb": {
2290
+ "gmail-web": "partial",
2291
+ "gmail-android": "partial",
2292
+ "gmail-ios": "partial",
2293
+ "outlook-web": "supported",
2294
+ "outlook-windows": "partial",
2295
+ "apple-mail-macos": "supported",
2296
+ "apple-mail-ios": "supported",
2297
+ "yahoo-mail": "partial",
2298
+ "samsung-mail": "supported",
2299
+ "thunderbird": "supported",
2300
+ "hey-mail": "supported",
2301
+ "superhuman": "unknown"
2302
+ },
2303
+ "rgba": {
2304
+ "gmail-web": "partial",
2305
+ "gmail-android": "partial",
2306
+ "gmail-ios": "partial",
2307
+ "outlook-web": "supported",
2308
+ "outlook-windows": "unsupported",
2309
+ "apple-mail-macos": "supported",
2310
+ "apple-mail-ios": "supported",
2311
+ "yahoo-mail": "partial",
2312
+ "samsung-mail": "supported",
2313
+ "thunderbird": "supported",
2314
+ "hey-mail": "supported",
2315
+ "superhuman": "unknown"
2316
+ },
2317
+ "right": {
2318
+ "gmail-web": "unsupported",
2319
+ "gmail-android": "unsupported",
2320
+ "gmail-ios": "unsupported",
2321
+ "outlook-web": "supported",
2322
+ "outlook-windows": "unsupported",
2323
+ "apple-mail-macos": "supported",
2324
+ "apple-mail-ios": "supported",
2325
+ "yahoo-mail": "unsupported",
2326
+ "samsung-mail": "partial",
2327
+ "thunderbird": "supported",
2328
+ "hey-mail": "supported",
2329
+ "superhuman": "unknown"
2330
+ },
2331
+ "scroll-snap": {
2332
+ "gmail-web": "unsupported",
2333
+ "gmail-android": "unsupported",
2334
+ "gmail-ios": "unsupported",
2335
+ "outlook-web": "unsupported",
2336
+ "outlook-windows": "unsupported",
2337
+ "apple-mail-macos": "supported",
2338
+ "apple-mail-ios": "supported",
2339
+ "yahoo-mail": "unsupported",
2340
+ "samsung-mail": "supported",
2341
+ "thunderbird": "supported",
2342
+ "hey-mail": "supported",
2343
+ "superhuman": "unknown"
2344
+ },
2345
+ "shape-margin": {
2346
+ "gmail-web": "unsupported",
2347
+ "gmail-android": "unsupported",
2348
+ "gmail-ios": "unsupported",
2349
+ "outlook-web": "unsupported",
2350
+ "outlook-windows": "unsupported",
2351
+ "apple-mail-macos": "supported",
2352
+ "apple-mail-ios": "supported",
2353
+ "yahoo-mail": "unsupported",
2354
+ "samsung-mail": "supported",
2355
+ "thunderbird": "supported",
2356
+ "hey-mail": "unknown",
2357
+ "superhuman": "unknown"
2358
+ },
2359
+ "shape-outside": {
2360
+ "gmail-web": "unsupported",
2361
+ "gmail-android": "unsupported",
2362
+ "gmail-ios": "unsupported",
2363
+ "outlook-web": "unsupported",
2364
+ "outlook-windows": "unsupported",
2365
+ "apple-mail-macos": "supported",
2366
+ "apple-mail-ios": "supported",
2367
+ "yahoo-mail": "unsupported",
2368
+ "samsung-mail": "supported",
2369
+ "thunderbird": "supported",
2370
+ "hey-mail": "unknown",
2371
+ "superhuman": "unknown"
2372
+ },
2373
+ "system-ui": {
2374
+ "gmail-web": "supported",
2375
+ "gmail-android": "partial",
2376
+ "gmail-ios": "supported",
2377
+ "outlook-web": "supported",
2378
+ "outlook-windows": "unsupported",
2379
+ "apple-mail-macos": "supported",
2380
+ "apple-mail-ios": "supported",
2381
+ "yahoo-mail": "supported",
2382
+ "samsung-mail": "partial",
2383
+ "thunderbird": "partial",
2384
+ "hey-mail": "supported",
2385
+ "superhuman": "unknown"
2386
+ },
2387
+ "tab-size": {
2388
+ "gmail-web": "unsupported",
2389
+ "gmail-android": "unsupported",
2390
+ "gmail-ios": "unsupported",
2391
+ "outlook-web": "supported",
2392
+ "outlook-windows": "unsupported",
2393
+ "apple-mail-macos": "supported",
2394
+ "apple-mail-ios": "supported",
2395
+ "yahoo-mail": "unsupported",
2396
+ "samsung-mail": "supported",
2397
+ "thunderbird": "unknown",
2398
+ "hey-mail": "unknown",
2399
+ "superhuman": "unknown"
2400
+ },
2401
+ "table-layout": {
2402
+ "gmail-web": "supported",
2403
+ "gmail-android": "supported",
2404
+ "gmail-ios": "supported",
2405
+ "outlook-web": "supported",
2406
+ "outlook-windows": "unsupported",
2407
+ "apple-mail-macos": "supported",
2408
+ "apple-mail-ios": "supported",
2409
+ "yahoo-mail": "supported",
2410
+ "samsung-mail": "supported",
2411
+ "thunderbird": "unknown",
2412
+ "hey-mail": "unknown",
2413
+ "superhuman": "supported"
2414
+ },
2415
+ "text-align": {
2416
+ "gmail-web": "supported",
2417
+ "gmail-android": "partial",
2418
+ "gmail-ios": "partial",
2419
+ "outlook-web": "supported",
2420
+ "outlook-windows": "partial",
2421
+ "apple-mail-macos": "supported",
2422
+ "apple-mail-ios": "supported",
2423
+ "yahoo-mail": "partial",
2424
+ "samsung-mail": "supported",
2425
+ "thunderbird": "supported",
2426
+ "hey-mail": "supported",
2427
+ "superhuman": "supported"
2428
+ },
2429
+ "text-align-last": {
2430
+ "gmail-web": "supported",
2431
+ "gmail-android": "supported",
2432
+ "gmail-ios": "supported",
2433
+ "outlook-web": "unsupported",
2434
+ "outlook-windows": "unsupported",
2435
+ "apple-mail-macos": "supported",
2436
+ "apple-mail-ios": "supported",
2437
+ "yahoo-mail": "unsupported",
2438
+ "samsung-mail": "supported",
2439
+ "thunderbird": "unknown",
2440
+ "hey-mail": "unknown",
2441
+ "superhuman": "unknown"
2442
+ },
2443
+ "text-decoration": {
2444
+ "gmail-web": "supported",
2445
+ "gmail-android": "partial",
2446
+ "gmail-ios": "partial",
2447
+ "outlook-web": "supported",
2448
+ "outlook-windows": "partial",
2449
+ "apple-mail-macos": "supported",
2450
+ "apple-mail-ios": "supported",
2451
+ "yahoo-mail": "supported",
2452
+ "samsung-mail": "supported",
2453
+ "thunderbird": "supported",
2454
+ "hey-mail": "supported",
2455
+ "superhuman": "supported"
2456
+ },
2457
+ "text-decoration-color": {
2458
+ "gmail-web": "supported",
2459
+ "gmail-android": "partial",
2460
+ "gmail-ios": "partial",
2461
+ "outlook-web": "supported",
2462
+ "outlook-windows": "unsupported",
2463
+ "apple-mail-macos": "supported",
2464
+ "apple-mail-ios": "supported",
2465
+ "yahoo-mail": "supported",
2466
+ "samsung-mail": "supported",
2467
+ "thunderbird": "supported",
2468
+ "hey-mail": "supported",
2469
+ "superhuman": "unknown"
2470
+ },
2471
+ "text-decoration-line": {
2472
+ "gmail-web": "supported",
2473
+ "gmail-android": "supported",
2474
+ "gmail-ios": "supported",
2475
+ "outlook-web": "supported",
2476
+ "outlook-windows": "unsupported",
2477
+ "apple-mail-macos": "supported",
2478
+ "apple-mail-ios": "supported",
2479
+ "yahoo-mail": "supported",
2480
+ "samsung-mail": "supported",
2481
+ "thunderbird": "supported",
2482
+ "hey-mail": "unknown",
2483
+ "superhuman": "unknown"
2484
+ },
2485
+ "text-decoration-skip-ink": {
2486
+ "gmail-web": "unsupported",
2487
+ "gmail-android": "unsupported",
2488
+ "gmail-ios": "unsupported",
2489
+ "outlook-web": "unsupported",
2490
+ "outlook-windows": "unsupported",
2491
+ "apple-mail-macos": "supported",
2492
+ "apple-mail-ios": "supported",
2493
+ "yahoo-mail": "unsupported",
2494
+ "samsung-mail": "supported",
2495
+ "thunderbird": "supported",
2496
+ "hey-mail": "supported",
2497
+ "superhuman": "unknown"
2498
+ },
2499
+ "text-decoration-style": {
2500
+ "gmail-web": "supported",
2501
+ "gmail-android": "supported",
2502
+ "gmail-ios": "supported",
2503
+ "outlook-web": "supported",
2504
+ "outlook-windows": "unsupported",
2505
+ "apple-mail-macos": "supported",
2506
+ "apple-mail-ios": "supported",
2507
+ "yahoo-mail": "supported",
2508
+ "samsung-mail": "supported",
2509
+ "thunderbird": "supported",
2510
+ "hey-mail": "unknown",
2511
+ "superhuman": "unknown"
2512
+ },
2513
+ "text-decoration-thickness": {
2514
+ "gmail-web": "unsupported",
2515
+ "gmail-android": "unsupported",
2516
+ "gmail-ios": "unsupported",
2517
+ "outlook-web": "unsupported",
2518
+ "outlook-windows": "unsupported",
2519
+ "apple-mail-macos": "supported",
2520
+ "apple-mail-ios": "supported",
2521
+ "yahoo-mail": "unsupported",
2522
+ "samsung-mail": "supported",
2523
+ "thunderbird": "supported",
2524
+ "hey-mail": "supported",
2525
+ "superhuman": "unknown"
2526
+ },
2527
+ "text-emphasis": {
2528
+ "gmail-web": "supported",
2529
+ "gmail-android": "unsupported",
2530
+ "gmail-ios": "supported",
2531
+ "outlook-web": "supported",
2532
+ "outlook-windows": "unsupported",
2533
+ "apple-mail-macos": "supported",
2534
+ "apple-mail-ios": "supported",
2535
+ "yahoo-mail": "unsupported",
2536
+ "samsung-mail": "unsupported",
2537
+ "thunderbird": "unknown",
2538
+ "hey-mail": "unknown",
2539
+ "superhuman": "unknown"
2540
+ },
2541
+ "text-emphasis-position": {
2542
+ "gmail-web": "unsupported",
2543
+ "gmail-android": "unsupported",
2544
+ "gmail-ios": "unsupported",
2545
+ "outlook-web": "unsupported",
2546
+ "outlook-windows": "unsupported",
2547
+ "apple-mail-macos": "supported",
2548
+ "apple-mail-ios": "supported",
2549
+ "yahoo-mail": "unsupported",
2550
+ "samsung-mail": "unsupported",
2551
+ "thunderbird": "unknown",
2552
+ "hey-mail": "unknown",
2553
+ "superhuman": "unknown"
2554
+ },
2555
+ "text-indent": {
2556
+ "gmail-web": "partial",
2557
+ "gmail-android": "partial",
2558
+ "gmail-ios": "partial",
2559
+ "outlook-web": "supported",
2560
+ "outlook-windows": "supported",
2561
+ "apple-mail-macos": "supported",
2562
+ "apple-mail-ios": "supported",
2563
+ "yahoo-mail": "partial",
2564
+ "samsung-mail": "supported",
2565
+ "thunderbird": "supported",
2566
+ "hey-mail": "supported",
2567
+ "superhuman": "supported"
2568
+ },
2569
+ "text-justify": {
2570
+ "gmail-web": "partial",
2571
+ "gmail-android": "unsupported",
2572
+ "gmail-ios": "unsupported",
2573
+ "outlook-web": "partial",
2574
+ "outlook-windows": "partial",
2575
+ "apple-mail-macos": "unsupported",
2576
+ "apple-mail-ios": "unsupported",
2577
+ "yahoo-mail": "partial",
2578
+ "samsung-mail": "unsupported",
2579
+ "thunderbird": "unknown",
2580
+ "hey-mail": "unknown",
2581
+ "superhuman": "unknown"
2582
+ },
2583
+ "text-orientation": {
2584
+ "gmail-web": "supported",
2585
+ "gmail-android": "supported",
2586
+ "gmail-ios": "supported",
2587
+ "outlook-web": "supported",
2588
+ "outlook-windows": "unsupported",
2589
+ "apple-mail-macos": "supported",
2590
+ "apple-mail-ios": "supported",
2591
+ "yahoo-mail": "unsupported",
2592
+ "samsung-mail": "supported",
2593
+ "thunderbird": "supported",
2594
+ "hey-mail": "unknown",
2595
+ "superhuman": "unknown"
2596
+ },
2597
+ "text-overflow": {
2598
+ "gmail-web": "supported",
2599
+ "gmail-android": "partial",
2600
+ "gmail-ios": "partial",
2601
+ "outlook-web": "supported",
2602
+ "outlook-windows": "unsupported",
2603
+ "apple-mail-macos": "supported",
2604
+ "apple-mail-ios": "supported",
2605
+ "yahoo-mail": "unsupported",
2606
+ "samsung-mail": "unsupported",
2607
+ "thunderbird": "supported",
2608
+ "hey-mail": "supported",
2609
+ "superhuman": "supported"
2610
+ },
2611
+ "text-shadow": {
2612
+ "gmail-web": "unsupported",
2613
+ "gmail-android": "unsupported",
2614
+ "gmail-ios": "unsupported",
2615
+ "outlook-web": "unsupported",
2616
+ "outlook-windows": "unsupported",
2617
+ "apple-mail-macos": "supported",
2618
+ "apple-mail-ios": "supported",
2619
+ "yahoo-mail": "supported",
2620
+ "samsung-mail": "supported",
2621
+ "thunderbird": "supported",
2622
+ "hey-mail": "supported",
2623
+ "superhuman": "supported"
2624
+ },
2625
+ "text-transform": {
2626
+ "gmail-web": "supported",
2627
+ "gmail-android": "supported",
2628
+ "gmail-ios": "supported",
2629
+ "outlook-web": "supported",
2630
+ "outlook-windows": "partial",
2631
+ "apple-mail-macos": "supported",
2632
+ "apple-mail-ios": "supported",
2633
+ "yahoo-mail": "supported",
2634
+ "samsung-mail": "supported",
2635
+ "thunderbird": "supported",
2636
+ "hey-mail": "supported",
2637
+ "superhuman": "supported"
2638
+ },
2639
+ "text-underline-offset": {
2640
+ "gmail-web": "unsupported",
2641
+ "gmail-android": "unsupported",
2642
+ "gmail-ios": "unsupported",
2643
+ "outlook-web": "unsupported",
2644
+ "outlook-windows": "unsupported",
2645
+ "apple-mail-macos": "supported",
2646
+ "apple-mail-ios": "supported",
2647
+ "yahoo-mail": "unsupported",
2648
+ "samsung-mail": "supported",
2649
+ "thunderbird": "supported",
2650
+ "hey-mail": "supported",
2651
+ "superhuman": "unknown"
2652
+ },
2653
+ "text-underline-position": {
2654
+ "gmail-web": "supported",
2655
+ "gmail-android": "supported",
2656
+ "gmail-ios": "partial",
2657
+ "outlook-web": "supported",
2658
+ "outlook-windows": "unsupported",
2659
+ "apple-mail-macos": "partial",
2660
+ "apple-mail-ios": "partial",
2661
+ "yahoo-mail": "unsupported",
2662
+ "samsung-mail": "supported",
2663
+ "thunderbird": "supported",
2664
+ "hey-mail": "unknown",
2665
+ "superhuman": "unknown"
2666
+ },
2667
+ "text-wrap": {
2668
+ "gmail-web": "unsupported",
2669
+ "gmail-android": "unsupported",
2670
+ "gmail-ios": "unsupported",
2671
+ "outlook-web": "unsupported",
2672
+ "outlook-windows": "unsupported",
2673
+ "apple-mail-macos": "supported",
2674
+ "apple-mail-ios": "supported",
2675
+ "yahoo-mail": "unsupported",
2676
+ "samsung-mail": "supported",
2677
+ "thunderbird": "unknown",
2678
+ "hey-mail": "unknown",
2679
+ "superhuman": "unknown"
2680
+ },
2681
+ "top": {
2682
+ "gmail-web": "unsupported",
2683
+ "gmail-android": "unsupported",
2684
+ "gmail-ios": "unsupported",
2685
+ "outlook-web": "supported",
2686
+ "outlook-windows": "unsupported",
2687
+ "apple-mail-macos": "supported",
2688
+ "apple-mail-ios": "supported",
2689
+ "yahoo-mail": "unsupported",
2690
+ "samsung-mail": "partial",
2691
+ "thunderbird": "supported",
2692
+ "hey-mail": "supported",
2693
+ "superhuman": "unknown"
2694
+ },
2695
+ "transform": {
2696
+ "gmail-web": "unsupported",
2697
+ "gmail-android": "unsupported",
2698
+ "gmail-ios": "unsupported",
2699
+ "outlook-web": "unsupported",
2700
+ "outlook-windows": "unsupported",
2701
+ "apple-mail-macos": "supported",
2702
+ "apple-mail-ios": "supported",
2703
+ "yahoo-mail": "unsupported",
2704
+ "samsung-mail": "supported",
2705
+ "thunderbird": "supported",
2706
+ "hey-mail": "supported",
2707
+ "superhuman": "partial"
2708
+ },
2709
+ "transition": {
2710
+ "gmail-web": "unsupported",
2711
+ "gmail-android": "unsupported",
2712
+ "gmail-ios": "unsupported",
2713
+ "outlook-web": "unsupported",
2714
+ "outlook-windows": "unsupported",
2715
+ "apple-mail-macos": "supported",
2716
+ "apple-mail-ios": "supported",
2717
+ "yahoo-mail": "partial",
2718
+ "samsung-mail": "partial",
2719
+ "thunderbird": "supported",
2720
+ "hey-mail": "partial",
2721
+ "superhuman": "partial"
2722
+ },
2723
+ "unit-ch": {
2724
+ "gmail-web": "supported",
2725
+ "gmail-android": "supported",
2726
+ "gmail-ios": "supported",
2727
+ "outlook-web": "supported",
2728
+ "outlook-windows": "unsupported",
2729
+ "apple-mail-macos": "supported",
2730
+ "apple-mail-ios": "supported",
2731
+ "yahoo-mail": "unsupported",
2732
+ "samsung-mail": "supported",
2733
+ "thunderbird": "supported",
2734
+ "hey-mail": "supported",
2735
+ "superhuman": "unknown"
2736
+ },
2737
+ "unit-cm": {
2738
+ "gmail-web": "supported",
2739
+ "gmail-android": "supported",
2740
+ "gmail-ios": "supported",
2741
+ "outlook-web": "supported",
2742
+ "outlook-windows": "supported",
2743
+ "apple-mail-macos": "supported",
2744
+ "apple-mail-ios": "supported",
2745
+ "yahoo-mail": "supported",
2746
+ "samsung-mail": "supported",
2747
+ "thunderbird": "supported",
2748
+ "hey-mail": "supported",
2749
+ "superhuman": "unknown"
2750
+ },
2751
+ "unit-em": {
2752
+ "gmail-web": "supported",
2753
+ "gmail-android": "supported",
2754
+ "gmail-ios": "supported",
2755
+ "outlook-web": "supported",
2756
+ "outlook-windows": "supported",
2757
+ "apple-mail-macos": "supported",
2758
+ "apple-mail-ios": "supported",
2759
+ "yahoo-mail": "supported",
2760
+ "samsung-mail": "supported",
2761
+ "thunderbird": "supported",
2762
+ "hey-mail": "supported",
2763
+ "superhuman": "unknown"
2764
+ },
2765
+ "unit-ex": {
2766
+ "gmail-web": "supported",
2767
+ "gmail-android": "supported",
2768
+ "gmail-ios": "supported",
2769
+ "outlook-web": "supported",
2770
+ "outlook-windows": "supported",
2771
+ "apple-mail-macos": "supported",
2772
+ "apple-mail-ios": "supported",
2773
+ "yahoo-mail": "supported",
2774
+ "samsung-mail": "supported",
2775
+ "thunderbird": "supported",
2776
+ "hey-mail": "supported",
2777
+ "superhuman": "unknown"
2778
+ },
2779
+ "unit-in": {
2780
+ "gmail-web": "supported",
2781
+ "gmail-android": "supported",
2782
+ "gmail-ios": "supported",
2783
+ "outlook-web": "supported",
2784
+ "outlook-windows": "supported",
2785
+ "apple-mail-macos": "supported",
2786
+ "apple-mail-ios": "supported",
2787
+ "yahoo-mail": "supported",
2788
+ "samsung-mail": "supported",
2789
+ "thunderbird": "supported",
2790
+ "hey-mail": "supported",
2791
+ "superhuman": "unknown"
2792
+ },
2793
+ "unit-initial": {
2794
+ "gmail-web": "partial",
2795
+ "gmail-android": "partial",
2796
+ "gmail-ios": "partial",
2797
+ "outlook-web": "supported",
2798
+ "outlook-windows": "unsupported",
2799
+ "apple-mail-macos": "supported",
2800
+ "apple-mail-ios": "supported",
2801
+ "yahoo-mail": "unsupported",
2802
+ "samsung-mail": "supported",
2803
+ "thunderbird": "supported",
2804
+ "hey-mail": "supported",
2805
+ "superhuman": "unknown"
2806
+ },
2807
+ "unit-mm": {
2808
+ "gmail-web": "supported",
2809
+ "gmail-android": "supported",
2810
+ "gmail-ios": "supported",
2811
+ "outlook-web": "supported",
2812
+ "outlook-windows": "supported",
2813
+ "apple-mail-macos": "supported",
2814
+ "apple-mail-ios": "supported",
2815
+ "yahoo-mail": "supported",
2816
+ "samsung-mail": "supported",
2817
+ "thunderbird": "supported",
2818
+ "hey-mail": "supported",
2819
+ "superhuman": "unknown"
2820
+ },
2821
+ "unit-pc": {
2822
+ "gmail-web": "supported",
2823
+ "gmail-android": "supported",
2824
+ "gmail-ios": "supported",
2825
+ "outlook-web": "supported",
2826
+ "outlook-windows": "supported",
2827
+ "apple-mail-macos": "supported",
2828
+ "apple-mail-ios": "supported",
2829
+ "yahoo-mail": "supported",
2830
+ "samsung-mail": "supported",
2831
+ "thunderbird": "supported",
2832
+ "hey-mail": "supported",
2833
+ "superhuman": "unknown"
2834
+ },
2835
+ "unit-percent": {
2836
+ "gmail-web": "supported",
2837
+ "gmail-android": "supported",
2838
+ "gmail-ios": "supported",
2839
+ "outlook-web": "supported",
2840
+ "outlook-windows": "supported",
2841
+ "apple-mail-macos": "supported",
2842
+ "apple-mail-ios": "supported",
2843
+ "yahoo-mail": "supported",
2844
+ "samsung-mail": "supported",
2845
+ "thunderbird": "supported",
2846
+ "hey-mail": "supported",
2847
+ "superhuman": "unknown"
2848
+ },
2849
+ "unit-pt": {
2850
+ "gmail-web": "supported",
2851
+ "gmail-android": "supported",
2852
+ "gmail-ios": "supported",
2853
+ "outlook-web": "supported",
2854
+ "outlook-windows": "supported",
2855
+ "apple-mail-macos": "supported",
2856
+ "apple-mail-ios": "supported",
2857
+ "yahoo-mail": "supported",
2858
+ "samsung-mail": "supported",
2859
+ "thunderbird": "supported",
2860
+ "hey-mail": "supported",
2861
+ "superhuman": "unknown"
2862
+ },
2863
+ "unit-px": {
2864
+ "gmail-web": "supported",
2865
+ "gmail-android": "supported",
2866
+ "gmail-ios": "supported",
2867
+ "outlook-web": "supported",
2868
+ "outlook-windows": "supported",
2869
+ "apple-mail-macos": "supported",
2870
+ "apple-mail-ios": "supported",
2871
+ "yahoo-mail": "supported",
2872
+ "samsung-mail": "supported",
2873
+ "thunderbird": "supported",
2874
+ "hey-mail": "supported",
2875
+ "superhuman": "unknown"
2876
+ },
2877
+ "unit-rem": {
2878
+ "gmail-web": "supported",
2879
+ "gmail-android": "supported",
2880
+ "gmail-ios": "supported",
2881
+ "outlook-web": "supported",
2882
+ "outlook-windows": "unsupported",
2883
+ "apple-mail-macos": "supported",
2884
+ "apple-mail-ios": "supported",
2885
+ "yahoo-mail": "unsupported",
2886
+ "samsung-mail": "supported",
2887
+ "thunderbird": "supported",
2888
+ "hey-mail": "supported",
2889
+ "superhuman": "unknown"
2890
+ },
2891
+ "unit-vh": {
2892
+ "gmail-web": "supported",
2893
+ "gmail-android": "supported",
2894
+ "gmail-ios": "supported",
2895
+ "outlook-web": "supported",
2896
+ "outlook-windows": "unsupported",
2897
+ "apple-mail-macos": "supported",
2898
+ "apple-mail-ios": "partial",
2899
+ "yahoo-mail": "supported",
2900
+ "samsung-mail": "supported",
2901
+ "thunderbird": "supported",
2902
+ "hey-mail": "supported",
2903
+ "superhuman": "unknown"
2904
+ },
2905
+ "unit-vmax": {
2906
+ "gmail-web": "supported",
2907
+ "gmail-android": "supported",
2908
+ "gmail-ios": "supported",
2909
+ "outlook-web": "supported",
2910
+ "outlook-windows": "unsupported",
2911
+ "apple-mail-macos": "supported",
2912
+ "apple-mail-ios": "supported",
2913
+ "yahoo-mail": "unsupported",
2914
+ "samsung-mail": "supported",
2915
+ "thunderbird": "supported",
2916
+ "hey-mail": "supported",
2917
+ "superhuman": "unknown"
2918
+ },
2919
+ "unit-vmin": {
2920
+ "gmail-web": "supported",
2921
+ "gmail-android": "supported",
2922
+ "gmail-ios": "supported",
2923
+ "outlook-web": "supported",
2924
+ "outlook-windows": "unsupported",
2925
+ "apple-mail-macos": "supported",
2926
+ "apple-mail-ios": "supported",
2927
+ "yahoo-mail": "unsupported",
2928
+ "samsung-mail": "supported",
2929
+ "thunderbird": "supported",
2930
+ "hey-mail": "supported",
2931
+ "superhuman": "unknown"
2932
+ },
2933
+ "unit-vw": {
2934
+ "gmail-web": "supported",
2935
+ "gmail-android": "supported",
2936
+ "gmail-ios": "supported",
2937
+ "outlook-web": "supported",
2938
+ "outlook-windows": "unsupported",
2939
+ "apple-mail-macos": "supported",
2940
+ "apple-mail-ios": "supported",
2941
+ "yahoo-mail": "supported",
2942
+ "samsung-mail": "supported",
2943
+ "thunderbird": "supported",
2944
+ "hey-mail": "supported",
2945
+ "superhuman": "unknown"
2946
+ },
2947
+ "user-select": {
2948
+ "gmail-web": "unsupported",
2949
+ "gmail-android": "unsupported",
2950
+ "gmail-ios": "unsupported",
2951
+ "outlook-web": "unsupported",
2952
+ "outlook-windows": "unsupported",
2953
+ "apple-mail-macos": "supported",
2954
+ "apple-mail-ios": "partial",
2955
+ "yahoo-mail": "unsupported",
2956
+ "samsung-mail": "supported",
2957
+ "thunderbird": "unknown",
2958
+ "hey-mail": "unknown",
2959
+ "superhuman": "supported"
2960
+ },
2961
+ "vertical-align": {
2962
+ "gmail-web": "supported",
2963
+ "gmail-android": "supported",
2964
+ "gmail-ios": "supported",
2965
+ "outlook-web": "supported",
2966
+ "outlook-windows": "supported",
2967
+ "apple-mail-macos": "supported",
2968
+ "apple-mail-ios": "supported",
2969
+ "yahoo-mail": "supported",
2970
+ "samsung-mail": "supported",
2971
+ "thunderbird": "supported",
2972
+ "hey-mail": "supported",
2973
+ "superhuman": "supported"
2974
+ },
2975
+ "visibility": {
2976
+ "gmail-web": "unsupported",
2977
+ "gmail-android": "unsupported",
2978
+ "gmail-ios": "unsupported",
2979
+ "outlook-web": "supported",
2980
+ "outlook-windows": "unsupported",
2981
+ "apple-mail-macos": "supported",
2982
+ "apple-mail-ios": "supported",
2983
+ "yahoo-mail": "supported",
2984
+ "samsung-mail": "supported",
2985
+ "thunderbird": "supported",
2986
+ "hey-mail": "supported",
2987
+ "superhuman": "supported"
2988
+ },
2989
+ "white-space": {
2990
+ "gmail-web": "supported",
2991
+ "gmail-android": "partial",
2992
+ "gmail-ios": "partial",
2993
+ "outlook-web": "supported",
2994
+ "outlook-windows": "unsupported",
2995
+ "apple-mail-macos": "supported",
2996
+ "apple-mail-ios": "supported",
2997
+ "yahoo-mail": "supported",
2998
+ "samsung-mail": "unsupported",
2999
+ "thunderbird": "supported",
3000
+ "hey-mail": "supported",
3001
+ "superhuman": "supported"
3002
+ },
3003
+ "white-space-collapse": {
3004
+ "gmail-web": "unsupported",
3005
+ "gmail-android": "unsupported",
3006
+ "gmail-ios": "unsupported",
3007
+ "outlook-web": "unsupported",
3008
+ "outlook-windows": "unsupported",
3009
+ "apple-mail-macos": "supported",
3010
+ "apple-mail-ios": "supported",
3011
+ "yahoo-mail": "unsupported",
3012
+ "samsung-mail": "supported",
3013
+ "thunderbird": "unknown",
3014
+ "hey-mail": "unknown",
3015
+ "superhuman": "unknown"
3016
+ },
3017
+ "widows": {
3018
+ "gmail-web": "unsupported",
3019
+ "gmail-android": "unsupported",
3020
+ "gmail-ios": "unsupported",
3021
+ "outlook-web": "supported",
3022
+ "outlook-windows": "unsupported",
3023
+ "apple-mail-macos": "supported",
3024
+ "apple-mail-ios": "supported",
3025
+ "yahoo-mail": "unsupported",
3026
+ "samsung-mail": "supported",
3027
+ "thunderbird": "unknown",
3028
+ "hey-mail": "unknown",
3029
+ "superhuman": "supported"
3030
+ },
3031
+ "width": {
3032
+ "gmail-web": "supported",
3033
+ "gmail-android": "supported",
3034
+ "gmail-ios": "supported",
3035
+ "outlook-web": "supported",
3036
+ "outlook-windows": "partial",
3037
+ "apple-mail-macos": "supported",
3038
+ "apple-mail-ios": "supported",
3039
+ "yahoo-mail": "supported",
3040
+ "samsung-mail": "supported",
3041
+ "thunderbird": "supported",
3042
+ "hey-mail": "supported",
3043
+ "superhuman": "supported"
3044
+ },
3045
+ "word-break": {
3046
+ "gmail-web": "supported",
3047
+ "gmail-android": "partial",
3048
+ "gmail-ios": "partial",
3049
+ "outlook-web": "partial",
3050
+ "outlook-windows": "supported",
3051
+ "apple-mail-macos": "partial",
3052
+ "apple-mail-ios": "partial",
3053
+ "yahoo-mail": "unsupported",
3054
+ "samsung-mail": "partial",
3055
+ "thunderbird": "supported",
3056
+ "hey-mail": "partial",
3057
+ "superhuman": "supported"
3058
+ },
3059
+ "word-spacing": {
3060
+ "gmail-web": "supported",
3061
+ "gmail-android": "supported",
3062
+ "gmail-ios": "supported",
3063
+ "outlook-web": "supported",
3064
+ "outlook-windows": "unsupported",
3065
+ "apple-mail-macos": "supported",
3066
+ "apple-mail-ios": "supported",
3067
+ "yahoo-mail": "partial",
3068
+ "samsung-mail": "supported",
3069
+ "thunderbird": "supported",
3070
+ "hey-mail": "unknown",
3071
+ "superhuman": "supported"
3072
+ },
3073
+ "writing-mode": {
3074
+ "gmail-web": "supported",
3075
+ "gmail-android": "partial",
3076
+ "gmail-ios": "partial",
3077
+ "outlook-web": "supported",
3078
+ "outlook-windows": "unsupported",
3079
+ "apple-mail-macos": "supported",
3080
+ "apple-mail-ios": "supported",
3081
+ "yahoo-mail": "unsupported",
3082
+ "samsung-mail": "supported",
3083
+ "thunderbird": "supported",
3084
+ "hey-mail": "supported",
3085
+ "superhuman": "supported"
3086
+ },
3087
+ "z-index": {
3088
+ "gmail-web": "unsupported",
3089
+ "gmail-android": "unsupported",
3090
+ "gmail-ios": "unsupported",
3091
+ "outlook-web": "supported",
3092
+ "outlook-windows": "unsupported",
3093
+ "apple-mail-macos": "supported",
3094
+ "apple-mail-ios": "supported",
3095
+ "yahoo-mail": "supported",
3096
+ "samsung-mail": "supported",
3097
+ "thunderbird": "supported",
3098
+ "hey-mail": "supported",
3099
+ "superhuman": "supported"
3100
+ },
3101
+ "::after": {
3102
+ "gmail-web": "unsupported",
3103
+ "gmail-android": "unsupported",
3104
+ "gmail-ios": "unsupported",
3105
+ "outlook-web": "partial",
3106
+ "outlook-windows": "unsupported",
3107
+ "apple-mail-macos": "supported",
3108
+ "apple-mail-ios": "supported",
3109
+ "yahoo-mail": "unsupported",
3110
+ "samsung-mail": "supported",
3111
+ "thunderbird": "supported",
3112
+ "hey-mail": "supported",
3113
+ "superhuman": "unknown"
3114
+ },
3115
+ "::before": {
3116
+ "gmail-web": "unsupported",
3117
+ "gmail-android": "unsupported",
3118
+ "gmail-ios": "unsupported",
3119
+ "outlook-web": "partial",
3120
+ "outlook-windows": "unsupported",
3121
+ "apple-mail-macos": "supported",
3122
+ "apple-mail-ios": "supported",
3123
+ "yahoo-mail": "unsupported",
3124
+ "samsung-mail": "supported",
3125
+ "thunderbird": "supported",
3126
+ "hey-mail": "supported",
3127
+ "superhuman": "unknown"
3128
+ },
3129
+ "::first-letter": {
3130
+ "gmail-web": "unsupported",
3131
+ "gmail-android": "unsupported",
3132
+ "gmail-ios": "unsupported",
3133
+ "outlook-web": "partial",
3134
+ "outlook-windows": "unsupported",
3135
+ "apple-mail-macos": "supported",
3136
+ "apple-mail-ios": "supported",
3137
+ "yahoo-mail": "supported",
3138
+ "samsung-mail": "supported",
3139
+ "thunderbird": "supported",
3140
+ "hey-mail": "supported",
3141
+ "superhuman": "unknown"
3142
+ },
3143
+ "::first-line": {
3144
+ "gmail-web": "unsupported",
3145
+ "gmail-android": "unsupported",
3146
+ "gmail-ios": "unsupported",
3147
+ "outlook-web": "partial",
3148
+ "outlook-windows": "unsupported",
3149
+ "apple-mail-macos": "supported",
3150
+ "apple-mail-ios": "supported",
3151
+ "yahoo-mail": "supported",
3152
+ "samsung-mail": "supported",
3153
+ "thunderbird": "supported",
3154
+ "hey-mail": "supported",
3155
+ "superhuman": "unknown"
3156
+ },
3157
+ "::marker": {
3158
+ "gmail-web": "unsupported",
3159
+ "gmail-android": "unsupported",
3160
+ "gmail-ios": "unsupported",
3161
+ "outlook-web": "unsupported",
3162
+ "outlook-windows": "unsupported",
3163
+ "apple-mail-macos": "supported",
3164
+ "apple-mail-ios": "supported",
3165
+ "yahoo-mail": "supported",
3166
+ "samsung-mail": "supported",
3167
+ "thunderbird": "supported",
3168
+ "hey-mail": "supported",
3169
+ "superhuman": "unknown"
3170
+ },
3171
+ "::placeholder": {
3172
+ "gmail-web": "unsupported",
3173
+ "gmail-android": "unsupported",
3174
+ "gmail-ios": "unsupported",
3175
+ "outlook-web": "partial",
3176
+ "outlook-windows": "unsupported",
3177
+ "apple-mail-macos": "supported",
3178
+ "apple-mail-ios": "supported",
3179
+ "yahoo-mail": "supported",
3180
+ "samsung-mail": "supported",
3181
+ "thunderbird": "supported",
3182
+ "hey-mail": "unsupported",
3183
+ "superhuman": "unknown"
3184
+ },
3185
+ ":adjacent-sibling": {
3186
+ "gmail-web": "supported",
3187
+ "gmail-android": "partial",
3188
+ "gmail-ios": "partial",
3189
+ "outlook-web": "supported",
3190
+ "outlook-windows": "unsupported",
3191
+ "apple-mail-macos": "supported",
3192
+ "apple-mail-ios": "supported",
3193
+ "yahoo-mail": "supported",
3194
+ "samsung-mail": "supported",
3195
+ "thunderbird": "supported",
3196
+ "hey-mail": "supported",
3197
+ "superhuman": "unknown"
3198
+ },
3199
+ ":attribute-selector": {
3200
+ "gmail-web": "partial",
3201
+ "gmail-android": "partial",
3202
+ "gmail-ios": "partial",
3203
+ "outlook-web": "partial",
3204
+ "outlook-windows": "unsupported",
3205
+ "apple-mail-macos": "supported",
3206
+ "apple-mail-ios": "supported",
3207
+ "yahoo-mail": "partial",
3208
+ "samsung-mail": "supported",
3209
+ "thunderbird": "supported",
3210
+ "hey-mail": "supported",
3211
+ "superhuman": "unknown"
3212
+ },
3213
+ ":chaining": {
3214
+ "gmail-web": "supported",
3215
+ "gmail-android": "partial",
3216
+ "gmail-ios": "partial",
3217
+ "outlook-web": "unsupported",
3218
+ "outlook-windows": "unsupported",
3219
+ "apple-mail-macos": "supported",
3220
+ "apple-mail-ios": "supported",
3221
+ "yahoo-mail": "supported",
3222
+ "samsung-mail": "supported",
3223
+ "thunderbird": "supported",
3224
+ "hey-mail": "supported",
3225
+ "superhuman": "unknown"
3226
+ },
3227
+ ":checked": {
3228
+ "gmail-web": "unsupported",
3229
+ "gmail-android": "unsupported",
3230
+ "gmail-ios": "unsupported",
3231
+ "outlook-web": "partial",
3232
+ "outlook-windows": "unsupported",
3233
+ "apple-mail-macos": "supported",
3234
+ "apple-mail-ios": "supported",
3235
+ "yahoo-mail": "supported",
3236
+ "samsung-mail": "supported",
3237
+ "thunderbird": "supported",
3238
+ "hey-mail": "unsupported",
3239
+ "superhuman": "unknown"
3240
+ },
3241
+ ":child-combinator": {
3242
+ "gmail-web": "supported",
3243
+ "gmail-android": "partial",
3244
+ "gmail-ios": "partial",
3245
+ "outlook-web": "supported",
3246
+ "outlook-windows": "unsupported",
3247
+ "apple-mail-macos": "supported",
3248
+ "apple-mail-ios": "supported",
3249
+ "yahoo-mail": "supported",
3250
+ "samsung-mail": "supported",
3251
+ "thunderbird": "supported",
3252
+ "hey-mail": "supported",
3253
+ "superhuman": "unknown"
3254
+ },
3255
+ ":class-selector": {
3256
+ "gmail-web": "supported",
3257
+ "gmail-android": "partial",
3258
+ "gmail-ios": "partial",
3259
+ "outlook-web": "supported",
3260
+ "outlook-windows": "supported",
3261
+ "apple-mail-macos": "supported",
3262
+ "apple-mail-ios": "supported",
3263
+ "yahoo-mail": "supported",
3264
+ "samsung-mail": "supported",
3265
+ "thunderbird": "supported",
3266
+ "hey-mail": "supported",
3267
+ "superhuman": "unknown"
3268
+ },
3269
+ ":descendant-combinator": {
3270
+ "gmail-web": "supported",
3271
+ "gmail-android": "partial",
3272
+ "gmail-ios": "partial",
3273
+ "outlook-web": "supported",
3274
+ "outlook-windows": "supported",
3275
+ "apple-mail-macos": "supported",
3276
+ "apple-mail-ios": "supported",
3277
+ "yahoo-mail": "supported",
3278
+ "samsung-mail": "supported",
3279
+ "thunderbird": "supported",
3280
+ "hey-mail": "supported",
3281
+ "superhuman": "unknown"
3282
+ },
3283
+ ":first-child": {
3284
+ "gmail-web": "unsupported",
3285
+ "gmail-android": "unsupported",
3286
+ "gmail-ios": "unsupported",
3287
+ "outlook-web": "partial",
3288
+ "outlook-windows": "unsupported",
3289
+ "apple-mail-macos": "supported",
3290
+ "apple-mail-ios": "supported",
3291
+ "yahoo-mail": "supported",
3292
+ "samsung-mail": "supported",
3293
+ "thunderbird": "supported",
3294
+ "hey-mail": "supported",
3295
+ "superhuman": "unknown"
3296
+ },
3297
+ ":first-of-type": {
3298
+ "gmail-web": "unsupported",
3299
+ "gmail-android": "unsupported",
3300
+ "gmail-ios": "unsupported",
3301
+ "outlook-web": "partial",
3302
+ "outlook-windows": "unsupported",
3303
+ "apple-mail-macos": "supported",
3304
+ "apple-mail-ios": "supported",
3305
+ "yahoo-mail": "supported",
3306
+ "samsung-mail": "supported",
3307
+ "thunderbird": "supported",
3308
+ "hey-mail": "supported",
3309
+ "superhuman": "unknown"
3310
+ },
3311
+ ":focus": {
3312
+ "gmail-web": "unsupported",
3313
+ "gmail-android": "unsupported",
3314
+ "gmail-ios": "unsupported",
3315
+ "outlook-web": "partial",
3316
+ "outlook-windows": "unsupported",
3317
+ "apple-mail-macos": "supported",
3318
+ "apple-mail-ios": "unsupported",
3319
+ "yahoo-mail": "supported",
3320
+ "samsung-mail": "supported",
3321
+ "thunderbird": "supported",
3322
+ "hey-mail": "supported",
3323
+ "superhuman": "unknown"
3324
+ },
3325
+ ":general-sibling": {
3326
+ "gmail-web": "supported",
3327
+ "gmail-android": "partial",
3328
+ "gmail-ios": "partial",
3329
+ "outlook-web": "supported",
3330
+ "outlook-windows": "unsupported",
3331
+ "apple-mail-macos": "supported",
3332
+ "apple-mail-ios": "supported",
3333
+ "yahoo-mail": "supported",
3334
+ "samsung-mail": "supported",
3335
+ "thunderbird": "supported",
3336
+ "hey-mail": "supported",
3337
+ "superhuman": "unknown"
3338
+ },
3339
+ ":grouping": {
3340
+ "gmail-web": "supported",
3341
+ "gmail-android": "partial",
3342
+ "gmail-ios": "partial",
3343
+ "outlook-web": "supported",
3344
+ "outlook-windows": "supported",
3345
+ "apple-mail-macos": "supported",
3346
+ "apple-mail-ios": "supported",
3347
+ "yahoo-mail": "supported",
3348
+ "samsung-mail": "supported",
3349
+ "thunderbird": "supported",
3350
+ "hey-mail": "supported",
3351
+ "superhuman": "unknown"
3352
+ },
3353
+ ":has": {
3354
+ "gmail-web": "unsupported",
3355
+ "gmail-android": "unsupported",
3356
+ "gmail-ios": "unsupported",
3357
+ "outlook-web": "unsupported",
3358
+ "outlook-windows": "unsupported",
3359
+ "apple-mail-macos": "supported",
3360
+ "apple-mail-ios": "supported",
3361
+ "yahoo-mail": "unsupported",
3362
+ "samsung-mail": "supported",
3363
+ "thunderbird": "unsupported",
3364
+ "hey-mail": "supported",
3365
+ "superhuman": "unknown"
3366
+ },
3367
+ ":hover": {
3368
+ "gmail-web": "supported",
3369
+ "gmail-android": "partial",
3370
+ "gmail-ios": "unsupported",
3371
+ "outlook-web": "partial",
3372
+ "outlook-windows": "unsupported",
3373
+ "apple-mail-macos": "supported",
3374
+ "apple-mail-ios": "supported",
3375
+ "yahoo-mail": "supported",
3376
+ "samsung-mail": "supported",
3377
+ "thunderbird": "supported",
3378
+ "hey-mail": "supported",
3379
+ "superhuman": "unknown"
3380
+ },
3381
+ ":id-selector": {
3382
+ "gmail-web": "supported",
3383
+ "gmail-android": "partial",
3384
+ "gmail-ios": "partial",
3385
+ "outlook-web": "supported",
3386
+ "outlook-windows": "supported",
3387
+ "apple-mail-macos": "supported",
3388
+ "apple-mail-ios": "supported",
3389
+ "yahoo-mail": "supported",
3390
+ "samsung-mail": "supported",
3391
+ "thunderbird": "supported",
3392
+ "hey-mail": "supported",
3393
+ "superhuman": "unknown"
3394
+ },
3395
+ ":lang": {
3396
+ "gmail-web": "unsupported",
3397
+ "gmail-android": "unsupported",
3398
+ "gmail-ios": "unsupported",
3399
+ "outlook-web": "unsupported",
3400
+ "outlook-windows": "unsupported",
3401
+ "apple-mail-macos": "supported",
3402
+ "apple-mail-ios": "supported",
3403
+ "yahoo-mail": "unsupported",
3404
+ "samsung-mail": "supported",
3405
+ "thunderbird": "unknown",
3406
+ "hey-mail": "unknown",
3407
+ "superhuman": "unknown"
3408
+ },
3409
+ ":last-child": {
3410
+ "gmail-web": "unsupported",
3411
+ "gmail-android": "unsupported",
3412
+ "gmail-ios": "unsupported",
3413
+ "outlook-web": "partial",
3414
+ "outlook-windows": "unsupported",
3415
+ "apple-mail-macos": "supported",
3416
+ "apple-mail-ios": "supported",
3417
+ "yahoo-mail": "supported",
3418
+ "samsung-mail": "supported",
3419
+ "thunderbird": "supported",
3420
+ "hey-mail": "supported",
3421
+ "superhuman": "unknown"
3422
+ },
3423
+ ":last-of-type": {
3424
+ "gmail-web": "unsupported",
3425
+ "gmail-android": "unsupported",
3426
+ "gmail-ios": "unsupported",
3427
+ "outlook-web": "partial",
3428
+ "outlook-windows": "unsupported",
3429
+ "apple-mail-macos": "supported",
3430
+ "apple-mail-ios": "supported",
3431
+ "yahoo-mail": "supported",
3432
+ "samsung-mail": "supported",
3433
+ "thunderbird": "supported",
3434
+ "hey-mail": "supported",
3435
+ "superhuman": "unknown"
3436
+ },
3437
+ ":link": {
3438
+ "gmail-web": "unsupported",
3439
+ "gmail-android": "unsupported",
3440
+ "gmail-ios": "unsupported",
3441
+ "outlook-web": "partial",
3442
+ "outlook-windows": "supported",
3443
+ "apple-mail-macos": "supported",
3444
+ "apple-mail-ios": "supported",
3445
+ "yahoo-mail": "supported",
3446
+ "samsung-mail": "supported",
3447
+ "thunderbird": "supported",
3448
+ "hey-mail": "supported",
3449
+ "superhuman": "unknown"
3450
+ },
3451
+ ":not": {
3452
+ "gmail-web": "unsupported",
3453
+ "gmail-android": "unsupported",
3454
+ "gmail-ios": "unsupported",
3455
+ "outlook-web": "unsupported",
3456
+ "outlook-windows": "unsupported",
3457
+ "apple-mail-macos": "supported",
3458
+ "apple-mail-ios": "supported",
3459
+ "yahoo-mail": "unsupported",
3460
+ "samsung-mail": "supported",
3461
+ "thunderbird": "supported",
3462
+ "hey-mail": "supported",
3463
+ "superhuman": "unknown"
3464
+ },
3465
+ ":nth-child": {
3466
+ "gmail-web": "unsupported",
3467
+ "gmail-android": "unsupported",
3468
+ "gmail-ios": "unsupported",
3469
+ "outlook-web": "unsupported",
3470
+ "outlook-windows": "unsupported",
3471
+ "apple-mail-macos": "supported",
3472
+ "apple-mail-ios": "supported",
3473
+ "yahoo-mail": "unsupported",
3474
+ "samsung-mail": "supported",
3475
+ "thunderbird": "supported",
3476
+ "hey-mail": "supported",
3477
+ "superhuman": "unknown"
3478
+ },
3479
+ ":nth-last-child": {
3480
+ "gmail-web": "unsupported",
3481
+ "gmail-android": "unsupported",
3482
+ "gmail-ios": "unsupported",
3483
+ "outlook-web": "unsupported",
3484
+ "outlook-windows": "unsupported",
3485
+ "apple-mail-macos": "supported",
3486
+ "apple-mail-ios": "supported",
3487
+ "yahoo-mail": "unsupported",
3488
+ "samsung-mail": "supported",
3489
+ "thunderbird": "supported",
3490
+ "hey-mail": "supported",
3491
+ "superhuman": "unknown"
3492
+ },
3493
+ ":nth-of-type": {
3494
+ "gmail-web": "unsupported",
3495
+ "gmail-android": "unsupported",
3496
+ "gmail-ios": "unsupported",
3497
+ "outlook-web": "unsupported",
3498
+ "outlook-windows": "unsupported",
3499
+ "apple-mail-macos": "supported",
3500
+ "apple-mail-ios": "supported",
3501
+ "yahoo-mail": "unsupported",
3502
+ "samsung-mail": "supported",
3503
+ "thunderbird": "supported",
3504
+ "hey-mail": "supported",
3505
+ "superhuman": "unknown"
3506
+ },
3507
+ ":only-child": {
3508
+ "gmail-web": "unsupported",
3509
+ "gmail-android": "unsupported",
3510
+ "gmail-ios": "unsupported",
3511
+ "outlook-web": "partial",
3512
+ "outlook-windows": "unsupported",
3513
+ "apple-mail-macos": "supported",
3514
+ "apple-mail-ios": "supported",
3515
+ "yahoo-mail": "supported",
3516
+ "samsung-mail": "supported",
3517
+ "thunderbird": "supported",
3518
+ "hey-mail": "supported",
3519
+ "superhuman": "unknown"
3520
+ },
3521
+ ":only-of-type": {
3522
+ "gmail-web": "unsupported",
3523
+ "gmail-android": "unsupported",
3524
+ "gmail-ios": "unsupported",
3525
+ "outlook-web": "partial",
3526
+ "outlook-windows": "unsupported",
3527
+ "apple-mail-macos": "supported",
3528
+ "apple-mail-ios": "supported",
3529
+ "yahoo-mail": "supported",
3530
+ "samsung-mail": "supported",
3531
+ "thunderbird": "supported",
3532
+ "hey-mail": "supported",
3533
+ "superhuman": "unknown"
3534
+ },
3535
+ ":target": {
3536
+ "gmail-web": "unsupported",
3537
+ "gmail-android": "unsupported",
3538
+ "gmail-ios": "unsupported",
3539
+ "outlook-web": "partial",
3540
+ "outlook-windows": "unsupported",
3541
+ "apple-mail-macos": "unsupported",
3542
+ "apple-mail-ios": "unsupported",
3543
+ "yahoo-mail": "supported",
3544
+ "samsung-mail": "supported",
3545
+ "thunderbird": "supported",
3546
+ "hey-mail": "unsupported",
3547
+ "superhuman": "unknown"
3548
+ },
3549
+ ":type-selector": {
3550
+ "gmail-web": "supported",
3551
+ "gmail-android": "partial",
3552
+ "gmail-ios": "partial",
3553
+ "outlook-web": "supported",
3554
+ "outlook-windows": "supported",
3555
+ "apple-mail-macos": "supported",
3556
+ "apple-mail-ios": "supported",
3557
+ "yahoo-mail": "supported",
3558
+ "samsung-mail": "supported",
3559
+ "thunderbird": "supported",
3560
+ "hey-mail": "supported",
3561
+ "superhuman": "unknown"
3562
+ },
3563
+ ":universal-selector": {
3564
+ "gmail-web": "supported",
3565
+ "gmail-android": "partial",
3566
+ "gmail-ios": "partial",
3567
+ "outlook-web": "supported",
3568
+ "outlook-windows": "unsupported",
3569
+ "apple-mail-macos": "supported",
3570
+ "apple-mail-ios": "supported",
3571
+ "yahoo-mail": "supported",
3572
+ "samsung-mail": "supported",
3573
+ "thunderbird": "supported",
3574
+ "hey-mail": "supported",
3575
+ "superhuman": "unknown"
3576
+ },
3577
+ ":visited": {
3578
+ "gmail-web": "unsupported",
3579
+ "gmail-android": "unsupported",
3580
+ "gmail-ios": "unsupported",
3581
+ "outlook-web": "partial",
3582
+ "outlook-windows": "unsupported",
3583
+ "apple-mail-macos": "unsupported",
3584
+ "apple-mail-ios": "unsupported",
3585
+ "yahoo-mail": "supported",
3586
+ "samsung-mail": "unsupported",
3587
+ "thunderbird": "supported",
3588
+ "hey-mail": "supported",
3589
+ "superhuman": "unknown"
3590
+ },
3591
+ "display:flex": {
3592
+ "gmail-web": "supported",
3593
+ "gmail-android": "partial",
3594
+ "gmail-ios": "partial",
939
3595
  "outlook-web": "supported",
940
3596
  "outlook-windows": "unsupported",
941
3597
  "apple-mail-macos": "supported",
@@ -946,30 +3602,30 @@ var CSS_SUPPORT = {
946
3602
  "hey-mail": "supported",
947
3603
  "superhuman": "supported"
948
3604
  },
949
- "gap": {
3605
+ "display:grid": {
950
3606
  "gmail-web": "unsupported",
951
3607
  "gmail-android": "unsupported",
952
3608
  "gmail-ios": "unsupported",
953
- "outlook-web": "unsupported",
3609
+ "outlook-web": "supported",
954
3610
  "outlook-windows": "unsupported",
955
3611
  "apple-mail-macos": "supported",
956
3612
  "apple-mail-ios": "supported",
957
3613
  "yahoo-mail": "unsupported",
958
- "samsung-mail": "unsupported",
3614
+ "samsung-mail": "supported",
959
3615
  "thunderbird": "supported",
960
3616
  "hey-mail": "supported",
961
3617
  "superhuman": "supported"
962
3618
  },
963
- "object-fit": {
964
- "gmail-web": "unsupported",
965
- "gmail-android": "unsupported",
966
- "gmail-ios": "unsupported",
967
- "outlook-web": "unsupported",
968
- "outlook-windows": "unsupported",
3619
+ "display:none": {
3620
+ "gmail-web": "supported",
3621
+ "gmail-android": "supported",
3622
+ "gmail-ios": "supported",
3623
+ "outlook-web": "supported",
3624
+ "outlook-windows": "partial",
969
3625
  "apple-mail-macos": "supported",
970
3626
  "apple-mail-ios": "supported",
971
- "yahoo-mail": "unsupported",
972
- "samsung-mail": "unsupported",
3627
+ "yahoo-mail": "supported",
3628
+ "samsung-mail": "supported",
973
3629
  "thunderbird": "supported",
974
3630
  "hey-mail": "supported",
975
3631
  "superhuman": "supported"
@@ -979,14 +3635,11 @@ var GMAIL_STRIPPED_PROPERTIES = /* @__PURE__ */ new Set([
979
3635
  "position",
980
3636
  "overflow",
981
3637
  "visibility",
982
- "opacity",
983
3638
  "box-shadow",
984
3639
  "text-shadow",
985
3640
  "transform",
986
3641
  "animation",
987
3642
  "transition",
988
- "box-sizing",
989
- "object-fit",
990
3643
  "gap"
991
3644
  ]);
992
3645
  var OUTLOOK_WORD_UNSUPPORTED = /* @__PURE__ */ new Set([
@@ -1034,6 +3687,105 @@ var STRUCTURAL_FIX_PROPERTIES = /* @__PURE__ */ new Set([
1034
3687
  "<form>",
1035
3688
  "object-fit"
1036
3689
  ]);
3690
+ var HTML_ELEMENT_FEATURES = [
3691
+ "<abbr>",
3692
+ "<acronym>",
3693
+ "<address>",
3694
+ "<audio>",
3695
+ "<base>",
3696
+ "<bdi>",
3697
+ "<blockquote>",
3698
+ "<body>",
3699
+ "<code>",
3700
+ "<del>",
3701
+ "<dfn>",
3702
+ "<dialog>",
3703
+ "<div>",
3704
+ "<form>",
3705
+ "<h1>",
3706
+ "<hr>",
3707
+ "<img>",
3708
+ "<link>",
3709
+ "<marquee>",
3710
+ "<meter>",
3711
+ "<object>",
3712
+ "<p>",
3713
+ "<picture>",
3714
+ "<pre>",
3715
+ "<progress>",
3716
+ "<rp>",
3717
+ "<rt>",
3718
+ "<ruby>",
3719
+ "<select>",
3720
+ "<small>",
3721
+ "<span>",
3722
+ "<strike>",
3723
+ "<strong>",
3724
+ "<style>",
3725
+ "<svg>",
3726
+ "<table>",
3727
+ "<textarea>",
3728
+ "<ul>",
3729
+ "<video>",
3730
+ "<wbr>"
3731
+ ];
3732
+ var AT_RULE_FEATURES = [
3733
+ "@font-face",
3734
+ "@import",
3735
+ "@keyframes",
3736
+ "@media",
3737
+ "@supports"
3738
+ ];
3739
+ var COMPOUND_VALUE_FEATURES = [
3740
+ "::after",
3741
+ "::before",
3742
+ "::first-letter",
3743
+ "::first-line",
3744
+ "::marker",
3745
+ "::placeholder",
3746
+ ":adjacent-sibling",
3747
+ ":attribute-selector",
3748
+ ":chaining",
3749
+ ":checked",
3750
+ ":child-combinator",
3751
+ ":class-selector",
3752
+ ":descendant-combinator",
3753
+ ":first-child",
3754
+ ":first-of-type",
3755
+ ":focus",
3756
+ ":general-sibling",
3757
+ ":grouping",
3758
+ ":has",
3759
+ ":hover",
3760
+ ":id-selector",
3761
+ ":lang",
3762
+ ":last-child",
3763
+ ":last-of-type",
3764
+ ":link",
3765
+ ":not",
3766
+ ":nth-child",
3767
+ ":nth-last-child",
3768
+ ":nth-of-type",
3769
+ ":only-child",
3770
+ ":only-of-type",
3771
+ ":target",
3772
+ ":type-selector",
3773
+ ":universal-selector",
3774
+ ":visited",
3775
+ "display:flex",
3776
+ "display:grid",
3777
+ "display:none"
3778
+ ];
3779
+ var CSS_FUNCTION_FEATURES = [
3780
+ "calc",
3781
+ "clamp",
3782
+ "conic-gradient",
3783
+ "fit-content",
3784
+ "linear-gradient",
3785
+ "max",
3786
+ "min",
3787
+ "radial-gradient"
3788
+ ];
1037
3789
 
1038
3790
  // src/fix-snippets/html-fixes.ts
1039
3791
  var HTML_FIX_DATABASE = {
@@ -2747,6 +5499,32 @@ var GENERIC_LINK_TEXT = /* @__PURE__ */ new Set([
2747
5499
  "tap here",
2748
5500
  "this"
2749
5501
  ]);
5502
+ var GMAIL_CLIP_THRESHOLD = 102 * 1024;
5503
+ var GMAIL_CLIP_WARNING_THRESHOLD = 90 * 1024;
5504
+ var CLIENT_DISPLAY_LIMITS = [
5505
+ { client: "Gmail (Web)", subjectLimit: 70, preheaderLimit: 90 },
5506
+ { client: "Gmail (Mobile)", subjectLimit: 40, preheaderLimit: 90 },
5507
+ { client: "Outlook (Web)", subjectLimit: 60, preheaderLimit: 35 },
5508
+ { client: "Outlook (Desktop)", subjectLimit: 55, preheaderLimit: 35 },
5509
+ { client: "Apple Mail (macOS)", subjectLimit: 78, preheaderLimit: 140 },
5510
+ { client: "Apple Mail (iOS)", subjectLimit: 35, preheaderLimit: 90 },
5511
+ { client: "Yahoo Mail", subjectLimit: 46, preheaderLimit: 100 },
5512
+ { client: "Samsung Email", subjectLimit: 40, preheaderLimit: 70 }
5513
+ ];
5514
+ var TEMPLATE_VARIABLE_PATTERNS = [
5515
+ [/\{\{[\s\S]*?\}\}/g, "Handlebars/Mustache"],
5516
+ // {{var}}
5517
+ [/\$\{[^}]+\}/g, "ES template literal"],
5518
+ // ${var}
5519
+ [/<%=?\s*[^%]+%>/g, "ERB/EJS"],
5520
+ // <% %> / <%= %>
5521
+ [/\*\|[A-Z_][A-Z0-9_]*\|\*/g, "Mailchimp merge tag"],
5522
+ // *|TAG|*
5523
+ [/%%[A-Za-z_][A-Za-z0-9_]*%%/g, "Salesforce AMPscript"],
5524
+ // %%tag%%
5525
+ [/\{[A-Za-z_][A-Za-z0-9_.]{2,}\}/g, "Single-brace merge field"]
5526
+ // {merge_field} (3+ char names)
5527
+ ];
2750
5528
  var EMPTY_SPAM = { score: 100, level: "low", issues: [] };
2751
5529
  var EMPTY_LINKS = {
2752
5530
  totalLinks: 0,
@@ -2755,6 +5533,10 @@ var EMPTY_LINKS = {
2755
5533
  };
2756
5534
  var EMPTY_ACCESSIBILITY = { score: 100, issues: [] };
2757
5535
  var EMPTY_IMAGES = { total: 0, totalDataUriBytes: 0, issues: [], images: [] };
5536
+ var EMPTY_INBOX_PREVIEW = { subject: null, preheader: null, subjectLength: 0, preheaderLength: 0, truncation: [], issues: [] };
5537
+ var EMPTY_SIZE = { htmlBytes: 0, humanSize: "0 B", clipped: false, issues: [] };
5538
+ var EMPTY_TEMPLATE = { unresolvedCount: 0, issues: [] };
5539
+ var EMPTY_DELIVERABILITY = { domain: "", checks: [], score: 0, issues: [] };
2758
5540
 
2759
5541
  // src/transform.ts
2760
5542
  function inlineStyles($) {
@@ -3263,8 +6045,58 @@ function transformForAllClients(html, framework) {
3263
6045
  // src/analyze.ts
3264
6046
  import * as cheerio2 from "cheerio";
3265
6047
  import * as csstree2 from "css-tree";
6048
+ var HTML_ELEMENT_SELECTORS = {
6049
+ "<style>": "style",
6050
+ "<link>": "link[rel='stylesheet']",
6051
+ "<svg>": "svg",
6052
+ "<video>": "video",
6053
+ "<form>": "form, input, button[type='submit']",
6054
+ "<audio>": "audio",
6055
+ "<picture>": "picture",
6056
+ "<dialog>": "dialog",
6057
+ "<meter>": "meter",
6058
+ "<progress>": "progress",
6059
+ "<select>": "select",
6060
+ "<textarea>": "textarea",
6061
+ "<marquee>": "marquee",
6062
+ "<object>": "object",
6063
+ "<base>": "base"
6064
+ };
6065
+ var HTML_ELEMENT_SEVERITY = {
6066
+ "<style>": "error",
6067
+ "<link>": "error",
6068
+ "<svg>": "error",
6069
+ "<form>": "error",
6070
+ "<video>": "warning",
6071
+ "<audio>": "warning",
6072
+ "<picture>": "warning",
6073
+ "<dialog>": "warning",
6074
+ "<marquee>": "warning",
6075
+ "<meter>": "warning",
6076
+ "<progress>": "warning",
6077
+ "<select>": "warning",
6078
+ "<textarea>": "warning",
6079
+ "<object>": "warning",
6080
+ "<base>": "warning"
6081
+ };
6082
+ var HTML_ELEMENT_MESSAGES = {
6083
+ "<style>": (n) => `${n} strips <style> blocks. Styles must be inlined.`,
6084
+ "<link>": (n) => `${n} does not support external stylesheets.`,
6085
+ "<svg>": (n) => `${n} does not support inline SVG.`,
6086
+ "<video>": (n) => `${n} does not support <video> elements.`,
6087
+ "<form>": (n) => `${n} strips form elements.`
6088
+ };
6089
+ var COMPOUND_DETECTORS = [
6090
+ { key: "display:flex", property: "display", valueIncludes: "flex" },
6091
+ { key: "display:grid", property: "display", valueIncludes: "grid" },
6092
+ { key: "display:none", property: "display", valueIncludes: "none" }
6093
+ ];
6094
+ var CSS_FUNCTION_DETECTORS = CSS_FUNCTION_FEATURES.map((fn) => ({
6095
+ key: fn,
6096
+ pattern: `${fn}(`
6097
+ // require opening paren — matches "min(" but not "Minion"
6098
+ }));
3266
6099
  function analyzeEmailFromDom($, framework) {
3267
- var _a, _b, _c, _d, _e, _f, _g;
3268
6100
  const warnings = [];
3269
6101
  const seenWarnings = /* @__PURE__ */ new Set();
3270
6102
  function addWarning(w) {
@@ -3275,9 +6107,9 @@ function analyzeEmailFromDom($, framework) {
3275
6107
  }
3276
6108
  }
3277
6109
  function describeSelector(el) {
3278
- var _a2;
6110
+ var _a;
3279
6111
  const $el = $(el);
3280
- const tag = ((_a2 = el.tagName) == null ? void 0 : _a2.toLowerCase()) || "";
6112
+ const tag = ((_a = el.tagName) == null ? void 0 : _a.toLowerCase()) || "";
3281
6113
  const cls = $el.attr("class");
3282
6114
  const id = $el.attr("id");
3283
6115
  if (id) return `${tag}#${id}`;
@@ -3286,22 +6118,30 @@ function analyzeEmailFromDom($, framework) {
3286
6118
  if (href) return `${tag}[href]`;
3287
6119
  return tag;
3288
6120
  }
3289
- if ($("style").length > 0) {
6121
+ for (const feature of HTML_ELEMENT_FEATURES) {
6122
+ const selector = HTML_ELEMENT_SELECTORS[feature];
6123
+ if (!selector) continue;
6124
+ if ($(selector).length === 0) continue;
6125
+ const supportData = CSS_SUPPORT[feature];
6126
+ if (!supportData) continue;
6127
+ const baseSeverity = HTML_ELEMENT_SEVERITY[feature] || "warning";
3290
6128
  for (const client of EMAIL_CLIENTS) {
3291
- const support = (_a = CSS_SUPPORT["<style>"]) == null ? void 0 : _a[client.id];
6129
+ const support = supportData[client.id];
3292
6130
  if (support === "unsupported") {
3293
- const sug = getSuggestion("<style>", client.id, framework);
3294
- const fix = getCodeFix("<style>", client.id, framework);
6131
+ const msgFn = HTML_ELEMENT_MESSAGES[feature];
6132
+ const message = msgFn ? msgFn(client.name) : `${client.name} does not support ${feature}.`;
6133
+ const sug = getSuggestion(feature, client.id, framework);
6134
+ const fix = getCodeFix(feature, client.id, framework);
3295
6135
  addWarning(__spreadValues({
3296
- severity: "error",
6136
+ severity: baseSeverity,
3297
6137
  client: client.id,
3298
- property: "<style>",
3299
- message: `${client.name} strips <style> blocks. Styles must be inlined.`,
6138
+ property: feature,
6139
+ message,
3300
6140
  suggestion: sug.text,
3301
6141
  fix,
3302
- fixType: getFixType("<style>")
3303
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("<style>", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3304
- } else if (support === "partial") {
6142
+ fixType: getFixType(feature)
6143
+ }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback(feature, client.id, framework)) ? { fixIsGenericFallback: true } : {}));
6144
+ } else if (support === "partial" && feature === "<style>") {
3305
6145
  const sug = getSuggestion("<style>:partial", client.id, framework);
3306
6146
  const fix = getCodeFix("<style>", client.id, framework);
3307
6147
  addWarning(__spreadValues({
@@ -3316,81 +6156,12 @@ function analyzeEmailFromDom($, framework) {
3316
6156
  }
3317
6157
  }
3318
6158
  }
3319
- if ($("link[rel='stylesheet']").length > 0) {
3320
- for (const client of EMAIL_CLIENTS) {
3321
- const support = (_b = CSS_SUPPORT["<link>"]) == null ? void 0 : _b[client.id];
3322
- if (support === "unsupported") {
3323
- const sug = getSuggestion("<link>", client.id, framework);
3324
- const fix = getCodeFix("<link>", client.id, framework);
3325
- addWarning(__spreadValues({
3326
- severity: "error",
3327
- client: client.id,
3328
- property: "<link>",
3329
- message: `${client.name} does not support external stylesheets.`,
3330
- suggestion: sug.text,
3331
- fix,
3332
- fixType: getFixType("<link>")
3333
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("<link>", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3334
- }
3335
- }
3336
- }
3337
- if ($("svg").length > 0) {
3338
- for (const client of EMAIL_CLIENTS) {
3339
- const support = (_c = CSS_SUPPORT["<svg>"]) == null ? void 0 : _c[client.id];
3340
- if (support === "unsupported") {
3341
- const sug = getSuggestion("<svg>", client.id, framework);
3342
- const fix = getCodeFix("<svg>", client.id, framework);
3343
- addWarning(__spreadValues({
3344
- severity: "error",
3345
- client: client.id,
3346
- property: "<svg>",
3347
- message: `${client.name} does not support inline SVG.`,
3348
- suggestion: sug.text,
3349
- fix,
3350
- fixType: getFixType("<svg>")
3351
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("<svg>", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3352
- }
3353
- }
3354
- }
3355
- if ($("video").length > 0) {
3356
- for (const client of EMAIL_CLIENTS) {
3357
- const support = (_d = CSS_SUPPORT["<video>"]) == null ? void 0 : _d[client.id];
3358
- if (support === "unsupported") {
3359
- const sug = getSuggestion("<video>", client.id, framework);
3360
- const fix = getCodeFix("<video>", client.id, framework);
3361
- addWarning(__spreadValues({
3362
- severity: "warning",
3363
- client: client.id,
3364
- property: "<video>",
3365
- message: `${client.name} does not support <video> elements.`,
3366
- suggestion: sug.text,
3367
- fix,
3368
- fixType: getFixType("<video>")
3369
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("<video>", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3370
- }
3371
- }
3372
- }
3373
- if ($("form").length > 0 || $("input").length > 0 || $("button[type='submit']").length > 0) {
3374
- for (const client of EMAIL_CLIENTS) {
3375
- const support = (_e = CSS_SUPPORT["<form>"]) == null ? void 0 : _e[client.id];
3376
- if (support === "unsupported") {
3377
- const sug = getSuggestion("<form>", client.id, framework);
3378
- const fix = getCodeFix("<form>", client.id, framework);
3379
- addWarning(__spreadValues({
3380
- severity: "error",
3381
- client: client.id,
3382
- property: "<form>",
3383
- message: `${client.name} strips form elements.`,
3384
- suggestion: sug.text,
3385
- fix,
3386
- fixType: getFixType("<form>")
3387
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("<form>", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3388
- }
3389
- }
3390
- }
3391
6159
  const parsedAtRules = /* @__PURE__ */ new Set();
3392
6160
  const parsedProperties = /* @__PURE__ */ new Set();
3393
6161
  const propertyLines = /* @__PURE__ */ new Map();
6162
+ const detectedCssFunctions = /* @__PURE__ */ new Set();
6163
+ const detectedPseudoClasses = /* @__PURE__ */ new Set();
6164
+ const detectedPseudoElements = /* @__PURE__ */ new Set();
3394
6165
  $("style").each((_, el) => {
3395
6166
  const cssText = $(el).text();
3396
6167
  try {
@@ -3400,32 +6171,33 @@ function analyzeEmailFromDom($, framework) {
3400
6171
  if (node.type === "Atrule") {
3401
6172
  parsedAtRules.add(`@${node.name}`);
3402
6173
  }
6174
+ if (node.type === "PseudoClassSelector") {
6175
+ detectedPseudoClasses.add(`:${node.name}`);
6176
+ }
6177
+ if (node.type === "PseudoElementSelector") {
6178
+ detectedPseudoElements.add(`::${node.name}`);
6179
+ }
3403
6180
  if (node.type === "Declaration") {
3404
6181
  const prop = node.property.toLowerCase();
3405
6182
  parsedProperties.add(prop);
3406
6183
  if (node.loc && !propertyLines.has(prop)) {
3407
6184
  propertyLines.set(prop, node.loc.start.line);
3408
6185
  }
3409
- if (prop === "display") {
3410
- const value = csstree2.generate(node.value);
3411
- if (value.includes("flex")) {
3412
- parsedProperties.add("display:flex");
3413
- if (node.loc && !propertyLines.has("display:flex")) {
3414
- propertyLines.set("display:flex", node.loc.start.line);
3415
- }
3416
- }
3417
- if (value.includes("grid")) {
3418
- parsedProperties.add("display:grid");
3419
- if (node.loc && !propertyLines.has("display:grid")) {
3420
- propertyLines.set("display:grid", node.loc.start.line);
6186
+ const valueStr = csstree2.generate(node.value);
6187
+ for (const det of COMPOUND_DETECTORS) {
6188
+ if (prop === det.property && valueStr.includes(det.valueIncludes)) {
6189
+ parsedProperties.add(det.key);
6190
+ if (node.loc && !propertyLines.has(det.key)) {
6191
+ propertyLines.set(det.key, node.loc.start.line);
3421
6192
  }
3422
6193
  }
3423
6194
  }
3424
- const valueStr = csstree2.generate(node.value);
3425
- if (valueStr.includes("linear-gradient") || valueStr.includes("radial-gradient")) {
3426
- parsedProperties.add("linear-gradient");
3427
- if (node.loc && !propertyLines.has("linear-gradient")) {
3428
- propertyLines.set("linear-gradient", node.loc.start.line);
6195
+ for (const fn of CSS_FUNCTION_DETECTORS) {
6196
+ if (valueStr.includes(fn.pattern)) {
6197
+ detectedCssFunctions.add(fn.key);
6198
+ if (node.loc && !propertyLines.has(fn.key)) {
6199
+ propertyLines.set(fn.key, node.loc.start.line);
6200
+ }
3429
6201
  }
3430
6202
  }
3431
6203
  }
@@ -3434,41 +6206,9 @@ function analyzeEmailFromDom($, framework) {
3434
6206
  } catch (e) {
3435
6207
  }
3436
6208
  });
3437
- if (parsedAtRules.has("@font-face")) {
3438
- for (const client of EMAIL_CLIENTS) {
3439
- const support = (_f = CSS_SUPPORT["@font-face"]) == null ? void 0 : _f[client.id];
3440
- if (support === "unsupported") {
3441
- const sug = getSuggestion("@font-face", client.id, framework);
3442
- const fix = getCodeFix("@font-face", client.id, framework);
3443
- addWarning(__spreadValues({
3444
- severity: "warning",
3445
- client: client.id,
3446
- property: "@font-face",
3447
- message: `${client.name} does not support web fonts (@font-face).`,
3448
- suggestion: sug.text,
3449
- fix,
3450
- fixType: getFixType("@font-face")
3451
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("@font-face", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3452
- }
3453
- }
3454
- }
3455
- if (parsedAtRules.has("@media")) {
3456
- for (const client of EMAIL_CLIENTS) {
3457
- const support = (_g = CSS_SUPPORT["@media"]) == null ? void 0 : _g[client.id];
3458
- if (support === "unsupported") {
3459
- const sug = getSuggestion("@media", client.id, framework);
3460
- const fix = getCodeFix("@media", client.id, framework);
3461
- addWarning(__spreadValues({
3462
- severity: "warning",
3463
- client: client.id,
3464
- property: "@media",
3465
- message: `${client.name} does not support @media queries.`,
3466
- suggestion: sug.text,
3467
- fix,
3468
- fixType: getFixType("@media")
3469
- }, framework && (sug.isGenericFallback || fix && isCodeFixGenericFallback("@media", client.id, framework)) ? { fixIsGenericFallback: true } : {}));
3470
- }
3471
- }
6209
+ for (const atRule of AT_RULE_FEATURES) {
6210
+ if (!parsedAtRules.has(atRule)) continue;
6211
+ checkPropertySupport(atRule, addWarning, framework);
3472
6212
  }
3473
6213
  const cssPropertiesToCheck = Object.keys(CSS_SUPPORT).filter(
3474
6214
  (k) => !k.startsWith("<") && !k.startsWith("@")
@@ -3478,20 +6218,24 @@ function analyzeEmailFromDom($, framework) {
3478
6218
  const props = parseStyleProperties(style);
3479
6219
  const selector = describeSelector(el);
3480
6220
  for (const prop of props) {
3481
- if (prop === "display") {
3482
- const value2 = getStyleValue(style, "display");
3483
- if (value2 == null ? void 0 : value2.includes("flex")) {
3484
- checkPropertySupport("display:flex", addWarning, framework, selector);
3485
- } else if (value2 == null ? void 0 : value2.includes("grid")) {
3486
- checkPropertySupport("display:grid", addWarning, framework, selector);
6221
+ for (const det of COMPOUND_DETECTORS) {
6222
+ if (prop === det.property) {
6223
+ const value2 = getStyleValue(style, prop);
6224
+ if (value2 == null ? void 0 : value2.includes(det.valueIncludes)) {
6225
+ checkPropertySupport(det.key, addWarning, framework, selector);
6226
+ }
3487
6227
  }
3488
6228
  }
3489
6229
  if (cssPropertiesToCheck.includes(prop)) {
3490
6230
  checkPropertySupport(prop, addWarning, framework, selector);
3491
6231
  }
3492
6232
  const value = getStyleValue(style, prop);
3493
- if (value && (value.includes("linear-gradient") || value.includes("radial-gradient"))) {
3494
- checkPropertySupport("linear-gradient", addWarning, framework, selector);
6233
+ if (value) {
6234
+ for (const fn of CSS_FUNCTION_DETECTORS) {
6235
+ if (value.includes(fn.pattern)) {
6236
+ checkPropertySupport(fn.key, addWarning, framework, selector);
6237
+ }
6238
+ }
3495
6239
  }
3496
6240
  }
3497
6241
  });
@@ -3500,11 +6244,25 @@ function analyzeEmailFromDom($, framework) {
3500
6244
  if (!cssPropertiesToCheck.includes(prop)) continue;
3501
6245
  checkPropertySupport(prop, addWarning, framework, void 0, propertyLines.get(prop));
3502
6246
  }
3503
- for (const compound of ["display:flex", "display:grid", "linear-gradient"]) {
6247
+ for (const compound of COMPOUND_VALUE_FEATURES) {
6248
+ if (compound.startsWith(":") || compound.startsWith("::")) continue;
3504
6249
  if (parsedProperties.has(compound)) {
3505
6250
  checkPropertySupport(compound, addWarning, framework, void 0, propertyLines.get(compound));
3506
6251
  }
3507
6252
  }
6253
+ for (const pseudo of detectedPseudoClasses) {
6254
+ if (CSS_SUPPORT[pseudo]) {
6255
+ checkPropertySupport(pseudo, addWarning, framework);
6256
+ }
6257
+ }
6258
+ for (const pseudo of detectedPseudoElements) {
6259
+ if (CSS_SUPPORT[pseudo]) {
6260
+ checkPropertySupport(pseudo, addWarning, framework);
6261
+ }
6262
+ }
6263
+ for (const fn of detectedCssFunctions) {
6264
+ checkPropertySupport(fn, addWarning, framework, void 0, propertyLines.get(fn));
6265
+ }
3508
6266
  const severityOrder = { error: 0, warning: 1, info: 2 };
3509
6267
  warnings.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
3510
6268
  return warnings;
@@ -4417,7 +7175,9 @@ var WEIGHTS = {
4417
7175
  "image-only": 20,
4418
7176
  "high-image-ratio": 10,
4419
7177
  "deceptive-link": 15,
4420
- "all-caps-subject": 10
7178
+ "all-caps-subject": 10,
7179
+ "missing-physical-address": 8,
7180
+ "missing-one-click-unsubscribe": 5
4421
7181
  };
4422
7182
  function extractVisibleText($) {
4423
7183
  const clone = $.root().clone();
@@ -4634,6 +7394,47 @@ Href: ${href}`
4634
7394
  });
4635
7395
  return issues;
4636
7396
  }
7397
+ var STREET_ADDRESS_PATTERN = /\b\d{1,5}\s+[A-Za-z]+\s+(St(reet)?|Ave(nue)?|Blvd|Boulevard|Dr(ive)?|Rd|Road|Ln|Lane|Way|Ct|Court|Pl(ace)?|Pkwy|Parkway|Cir(cle)?|Terr(ace)?|Loop)\b/i;
7398
+ var PO_BOX_PATTERN = /\bP\.?\s*O\.?\s*Box\s+\d+/i;
7399
+ var ZIP_CODE_PATTERN = /\b\d{5}(-\d{4})?\b/;
7400
+ var ADDRESS_CLASS_PATTERN = /address|mailing|postal|footer-address|physical-address/i;
7401
+ function checkPhysicalAddress($, text, options) {
7402
+ if ((options == null ? void 0 : options.emailType) === "transactional") return null;
7403
+ if (STREET_ADDRESS_PATTERN.test(text) && ZIP_CODE_PATTERN.test(text)) return null;
7404
+ if (PO_BOX_PATTERN.test(text) && ZIP_CODE_PATTERN.test(text)) return null;
7405
+ let foundByClass = false;
7406
+ $("[class]").each((_, el) => {
7407
+ const cls = $(el).attr("class") || "";
7408
+ if (ADDRESS_CLASS_PATTERN.test(cls)) {
7409
+ const elText = $(el).text().trim();
7410
+ if (elText.length > 5) {
7411
+ foundByClass = true;
7412
+ return false;
7413
+ }
7414
+ }
7415
+ });
7416
+ if (foundByClass) return null;
7417
+ if ($("address").length > 0 && $("address").text().trim().length > 5) return null;
7418
+ return {
7419
+ rule: "missing-physical-address",
7420
+ severity: "warning",
7421
+ message: "No physical mailing address detected \u2014 required by CAN-SPAM for marketing emails.",
7422
+ detail: "Include a street address or P.O. Box in the email footer."
7423
+ };
7424
+ }
7425
+ function checkOneClickUnsubscribe(options) {
7426
+ var _a, _b;
7427
+ if (!((_a = options == null ? void 0 : options.listUnsubscribeHeader) == null ? void 0 : _a.trim())) return null;
7428
+ if (!((_b = options == null ? void 0 : options.listUnsubscribePostHeader) == null ? void 0 : _b.trim())) {
7429
+ return {
7430
+ rule: "missing-one-click-unsubscribe",
7431
+ severity: "warning",
7432
+ message: "List-Unsubscribe header present but missing List-Unsubscribe-Post header (RFC 8058). Gmail and Yahoo require one-click unsubscribe.",
7433
+ detail: 'Add "List-Unsubscribe-Post: List-Unsubscribe=One-Click" header.'
7434
+ };
7435
+ }
7436
+ return null;
7437
+ }
4637
7438
  function checkAllCapsTitle($) {
4638
7439
  const title = $("title").text().trim();
4639
7440
  if (title.length > 5 && title === title.toUpperCase() && /[A-Z]/.test(title)) {
@@ -4663,6 +7464,10 @@ function analyzeSpamFromDom($, options) {
4663
7464
  issues.push(...checkDeceptiveLinks($));
4664
7465
  const capsTitle = checkAllCapsTitle($);
4665
7466
  if (capsTitle) issues.push(capsTitle);
7467
+ const addressIssue = checkPhysicalAddress($, text, options);
7468
+ if (addressIssue) issues.push(addressIssue);
7469
+ const oneClickIssue = checkOneClickUnsubscribe(options);
7470
+ if (oneClickIssue) issues.push(oneClickIssue);
4666
7471
  let penalty = 0;
4667
7472
  const seenRules = /* @__PURE__ */ new Map();
4668
7473
  for (const issue of issues) {
@@ -4851,6 +7656,23 @@ function validateLinksFromDom($) {
4851
7656
  });
4852
7657
  }
4853
7658
  });
7659
+ links.each((_, el) => {
7660
+ const href = $(el).attr("href") || "";
7661
+ const trimmed = href.trim();
7662
+ if (trimmed.startsWith("#") && trimmed.length > 1) {
7663
+ const targetId = trimmed.slice(1);
7664
+ const target = $(`[id="${targetId}"]`);
7665
+ if (target.length === 0) {
7666
+ issues.push({
7667
+ severity: "error",
7668
+ rule: "broken-anchor",
7669
+ message: `Anchor link "${trimmed}" points to an element that does not exist`,
7670
+ href: trimmed,
7671
+ text: $(el).text().trim().slice(0, 80) || "(no text)"
7672
+ });
7673
+ }
7674
+ }
7675
+ });
4854
7676
  for (const [href, count] of hrefCounts) {
4855
7677
  if (count > 5) {
4856
7678
  issues.push({
@@ -5104,6 +7926,21 @@ function checkTextSizeAndContrast($) {
5104
7926
  }
5105
7927
  return issues;
5106
7928
  }
7929
+ function checkCharsetDeclaration($) {
7930
+ const metaCharset = $("meta[charset]");
7931
+ if (metaCharset.length > 0) return null;
7932
+ const httpEquiv = $('meta[http-equiv="Content-Type"]');
7933
+ if (httpEquiv.length > 0) {
7934
+ const content = httpEquiv.attr("content") || "";
7935
+ if (/charset\s*=/i.test(content)) return null;
7936
+ }
7937
+ return {
7938
+ severity: "warning",
7939
+ rule: "missing-charset",
7940
+ message: "Missing charset declaration",
7941
+ details: 'Add <meta charset="utf-8"> in <head> to prevent encoding issues across email clients.'
7942
+ };
7943
+ }
5107
7944
  function checkSemanticStructure($) {
5108
7945
  const issues = [];
5109
7946
  const headings = [];
@@ -5136,6 +7973,8 @@ function checkAccessibilityFromDom($) {
5136
7973
  issues.push(...checkTableAccessibility($));
5137
7974
  issues.push(...checkTextSizeAndContrast($));
5138
7975
  issues.push(...checkSemanticStructure($));
7976
+ const charsetIssue = checkCharsetDeclaration($);
7977
+ if (charsetIssue) issues.push(charsetIssue);
5139
7978
  let penalty = 0;
5140
7979
  const seenRules = /* @__PURE__ */ new Map();
5141
7980
  for (const issue of issues) {
@@ -5338,8 +8177,307 @@ function analyzeImages(html) {
5338
8177
  return analyzeImagesFromDom($);
5339
8178
  }
5340
8179
 
5341
- // src/audit.ts
8180
+ // src/inbox-preview.ts
5342
8181
  import * as cheerio8 from "cheerio";
8182
+ var MAX_SUBJECT_LENGTH = 60;
8183
+ var MAX_PREHEADER_LENGTH = 100;
8184
+ var MIN_PREHEADER_LENGTH = 30;
8185
+ var EMOJI_PATTERN = /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F1E0}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{2B50}-\u{2B55}\u{FE00}-\u{FE0F}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{200D}\u{20E3}\u{E0020}-\u{E007F}]/u;
8186
+ var ZWNJ_PADDING_PATTERN = /(\u200C\s*(&nbsp;|\u00A0)\s*){2,}|(&zwnj;\s*&nbsp;\s*){2,}/;
8187
+ function extractInboxPreview(html) {
8188
+ if (!html || !html.trim()) {
8189
+ return {
8190
+ subject: null,
8191
+ preheader: null,
8192
+ subjectLength: 0,
8193
+ preheaderLength: 0,
8194
+ truncation: [],
8195
+ issues: [{ rule: "missing-subject", severity: "warning", message: "No <title> tag found. Most email clients use this as the subject line." }]
8196
+ };
8197
+ }
8198
+ if (html.length > MAX_HTML_SIZE) {
8199
+ throw new Error(`HTML input exceeds ${MAX_HTML_SIZE / 1024}KB limit.`);
8200
+ }
8201
+ const $ = cheerio8.load(html);
8202
+ return extractInboxPreviewFromDom($);
8203
+ }
8204
+ function extractInboxPreviewFromDom($) {
8205
+ var _a, _b;
8206
+ const issues = [];
8207
+ const titleEl = $("title");
8208
+ const subject = titleEl.length > 0 ? titleEl.first().text().trim() || null : null;
8209
+ const subjectLength = (_a = subject == null ? void 0 : subject.length) != null ? _a : 0;
8210
+ if (!subject) {
8211
+ issues.push({
8212
+ rule: "missing-subject",
8213
+ severity: "warning",
8214
+ message: "No <title> tag found. Most email clients use this as the subject line."
8215
+ });
8216
+ } else if (subjectLength > MAX_SUBJECT_LENGTH) {
8217
+ issues.push({
8218
+ rule: "subject-too-long",
8219
+ severity: "warning",
8220
+ message: `Subject is ${subjectLength} characters \u2014 may be truncated in inboxes (recommended: ${MAX_SUBJECT_LENGTH} or fewer).`
8221
+ });
8222
+ }
8223
+ const preheader = extractPreheaderText($);
8224
+ const preheaderLength = (_b = preheader == null ? void 0 : preheader.length) != null ? _b : 0;
8225
+ if (!preheader) {
8226
+ issues.push({
8227
+ rule: "missing-preheader",
8228
+ severity: "info",
8229
+ message: "No preheader text detected. Adding preview text improves open rates in crowded inboxes."
8230
+ });
8231
+ } else if (preheaderLength < MIN_PREHEADER_LENGTH) {
8232
+ issues.push({
8233
+ rule: "preheader-too-short",
8234
+ severity: "warning",
8235
+ message: `Preheader is only ${preheaderLength} characters \u2014 email clients may backfill with body text (recommended: ${MIN_PREHEADER_LENGTH}+).`
8236
+ });
8237
+ } else if (preheaderLength > MAX_PREHEADER_LENGTH) {
8238
+ issues.push({
8239
+ rule: "preheader-too-long",
8240
+ severity: "info",
8241
+ message: `Preheader is ${preheaderLength} characters \u2014 most clients show 40\u2013100 characters. Text beyond that is hidden.`
8242
+ });
8243
+ }
8244
+ if (hasZwnjPadding($)) {
8245
+ issues.push({
8246
+ rule: "zwnj-padding",
8247
+ severity: "info",
8248
+ message: "Preheader uses &zwnj;&nbsp; padding hack \u2014 works in most clients but may show garbled text in some."
8249
+ });
8250
+ }
8251
+ if (subject && EMOJI_PATTERN.test(subject)) {
8252
+ issues.push({
8253
+ rule: "emoji-in-subject",
8254
+ severity: "info",
8255
+ message: "Subject line contains emoji \u2014 renders inconsistently across email clients and may trigger spam filters."
8256
+ });
8257
+ }
8258
+ const truncation = computeTruncation(subject, preheader);
8259
+ return {
8260
+ subject,
8261
+ preheader,
8262
+ subjectLength,
8263
+ preheaderLength,
8264
+ truncation,
8265
+ issues
8266
+ };
8267
+ }
8268
+ function computeTruncation(subject, preheader) {
8269
+ return CLIENT_DISPLAY_LIMITS.map((limit) => {
8270
+ const truncatedSubject = subject && subject.length > limit.subjectLimit ? subject.slice(0, limit.subjectLimit - 1) + "\u2026" : subject;
8271
+ const truncatedPreheader = preheader && preheader.length > limit.preheaderLimit ? preheader.slice(0, limit.preheaderLimit - 1) + "\u2026" : preheader;
8272
+ return {
8273
+ client: limit.client,
8274
+ subjectLimit: limit.subjectLimit,
8275
+ preheaderLimit: limit.preheaderLimit,
8276
+ truncatedSubject: truncatedSubject != null ? truncatedSubject : null,
8277
+ truncatedPreheader: truncatedPreheader != null ? truncatedPreheader : null,
8278
+ subjectTruncated: !!subject && subject.length > limit.subjectLimit,
8279
+ preheaderTruncated: !!preheader && preheader.length > limit.preheaderLimit
8280
+ };
8281
+ });
8282
+ }
8283
+ function hasZwnjPadding($) {
8284
+ const body = $("body");
8285
+ if (!body.length) return false;
8286
+ const hiddenSelectors = [
8287
+ 'div[style*="display:none"]',
8288
+ 'div[style*="display: none"]',
8289
+ 'span[style*="display:none"]',
8290
+ 'span[style*="display: none"]',
8291
+ 'div[style*="max-height:0"]',
8292
+ 'div[style*="max-height: 0"]',
8293
+ 'span[style*="max-height:0"]',
8294
+ 'span[style*="max-height: 0"]',
8295
+ '[class*="preheader"]',
8296
+ '[class*="preview-text"]',
8297
+ '[class*="previewText"]'
8298
+ ];
8299
+ for (const sel of hiddenSelectors) {
8300
+ const el = body.find(sel).first();
8301
+ if (el.length) {
8302
+ const rawHtml = el.html() || "";
8303
+ if (ZWNJ_PADDING_PATTERN.test(rawHtml)) return true;
8304
+ }
8305
+ }
8306
+ return false;
8307
+ }
8308
+ function extractPreheaderText($) {
8309
+ const body = $("body");
8310
+ if (!body.length) return null;
8311
+ const hiddenSelectors = [
8312
+ 'div[style*="display:none"]',
8313
+ 'div[style*="display: none"]',
8314
+ 'span[style*="display:none"]',
8315
+ 'span[style*="display: none"]',
8316
+ 'div[style*="visibility:hidden"]',
8317
+ 'div[style*="visibility: hidden"]',
8318
+ 'span[style*="visibility:hidden"]',
8319
+ 'span[style*="visibility: hidden"]',
8320
+ 'div[style*="max-height:0"]',
8321
+ 'div[style*="max-height: 0"]',
8322
+ 'span[style*="max-height:0"]',
8323
+ 'span[style*="max-height: 0"]',
8324
+ 'div[style*="mso-hide:all"]',
8325
+ 'div[style*="mso-hide: all"]'
8326
+ ];
8327
+ for (const sel of hiddenSelectors) {
8328
+ const el = body.find(sel).first();
8329
+ if (el.length) {
8330
+ const text = el.text().trim();
8331
+ if (text) return text;
8332
+ }
8333
+ }
8334
+ const preheaderClasses = body.find(
8335
+ '[class*="preheader"], [class*="preview-text"], [class*="previewText"]'
8336
+ ).first();
8337
+ if (preheaderClasses.length) {
8338
+ const text = preheaderClasses.text().trim();
8339
+ if (text) return text;
8340
+ }
8341
+ const firstText = getFirstVisibleText($, body);
8342
+ return firstText || null;
8343
+ }
8344
+ function getFirstVisibleText($, body) {
8345
+ const skipTags = /* @__PURE__ */ new Set(["style", "script", "head", "title"]);
8346
+ let result = null;
8347
+ body.find("*").each((_, el) => {
8348
+ var _a;
8349
+ if (result) return false;
8350
+ const tagName = (_a = el.tagName) == null ? void 0 : _a.toLowerCase();
8351
+ if (skipTags.has(tagName)) return;
8352
+ const style = $(el).attr("style") || "";
8353
+ if (style.includes("display:none") || style.includes("display: none") || style.includes("visibility:hidden") || style.includes("visibility: hidden")) {
8354
+ return;
8355
+ }
8356
+ const directText = $(el).contents().filter((_2, node) => node.type === "text").text().trim();
8357
+ if (directText && directText.length > 1) {
8358
+ const cleaned = directText.replace(/[\u200B\u00A0\s]+/g, " ").trim();
8359
+ if (cleaned.length > 1) {
8360
+ result = cleaned;
8361
+ return false;
8362
+ }
8363
+ }
8364
+ });
8365
+ return result;
8366
+ }
8367
+
8368
+ // src/size-checker.ts
8369
+ import * as cheerio9 from "cheerio";
8370
+ function humanizeBytes(bytes) {
8371
+ if (bytes < 1024) return `${bytes} B`;
8372
+ const kb = bytes / 1024;
8373
+ if (kb < 1024) return `${kb.toFixed(1)} KB`;
8374
+ const mb = kb / 1024;
8375
+ return `${mb.toFixed(2)} MB`;
8376
+ }
8377
+ function checkSizeFromDom(_$, html) {
8378
+ const htmlBytes = new TextEncoder().encode(html).length;
8379
+ const humanSize = humanizeBytes(htmlBytes);
8380
+ const issues = [];
8381
+ let clipped = false;
8382
+ if (htmlBytes > GMAIL_CLIP_THRESHOLD) {
8383
+ clipped = true;
8384
+ issues.push({
8385
+ rule: "gmail-clipped",
8386
+ severity: "error",
8387
+ message: `Email is ${humanSize} \u2014 Gmail will clip it at ~102 KB. Recipients see a "View entire message" link instead of your content.`,
8388
+ detail: `${htmlBytes} bytes exceeds the ${GMAIL_CLIP_THRESHOLD} byte threshold.`
8389
+ });
8390
+ } else if (htmlBytes > GMAIL_CLIP_WARNING_THRESHOLD) {
8391
+ issues.push({
8392
+ rule: "gmail-clip-warning",
8393
+ severity: "warning",
8394
+ message: `Email is ${humanSize} \u2014 approaching Gmail's ~102 KB clip threshold. Consider trimming.`,
8395
+ detail: `${htmlBytes} bytes is within ${GMAIL_CLIP_THRESHOLD - htmlBytes} bytes of the clip threshold.`
8396
+ });
8397
+ }
8398
+ return { htmlBytes, humanSize, clipped, issues };
8399
+ }
8400
+ function checkSize(html) {
8401
+ if (!html || !html.trim()) {
8402
+ return { htmlBytes: 0, humanSize: "0 B", clipped: false, issues: [] };
8403
+ }
8404
+ if (html.length > MAX_HTML_SIZE) {
8405
+ throw new Error(`HTML input exceeds ${MAX_HTML_SIZE / 1024}KB limit.`);
8406
+ }
8407
+ const $ = cheerio9.load(html);
8408
+ return checkSizeFromDom($, html);
8409
+ }
8410
+
8411
+ // src/template-checker.ts
8412
+ import * as cheerio10 from "cheerio";
8413
+ function checkTemplateVariablesFromDom($) {
8414
+ const issues = [];
8415
+ const seen = /* @__PURE__ */ new Set();
8416
+ const textContent = extractTextContent($);
8417
+ for (const [pattern, label] of TEMPLATE_VARIABLE_PATTERNS) {
8418
+ pattern.lastIndex = 0;
8419
+ let match;
8420
+ while ((match = pattern.exec(textContent)) !== null) {
8421
+ const variable = match[0];
8422
+ const key = `text:${variable}`;
8423
+ if (seen.has(key)) continue;
8424
+ seen.add(key);
8425
+ issues.push({
8426
+ rule: "unresolved-variable",
8427
+ severity: "error",
8428
+ message: `Unresolved ${label} variable "${variable}" found in text content.`,
8429
+ variable,
8430
+ location: "text"
8431
+ });
8432
+ }
8433
+ }
8434
+ const attrSelectors = ["[href]", "[src]", "[alt]"];
8435
+ for (const sel of attrSelectors) {
8436
+ $(sel).each((_, el) => {
8437
+ const attrs = ["href", "src", "alt"];
8438
+ for (const attr of attrs) {
8439
+ const value = $(el).attr(attr);
8440
+ if (!value) continue;
8441
+ for (const [pattern, label] of TEMPLATE_VARIABLE_PATTERNS) {
8442
+ pattern.lastIndex = 0;
8443
+ let match;
8444
+ while ((match = pattern.exec(value)) !== null) {
8445
+ const variable = match[0];
8446
+ const key = `attr:${attr}:${variable}`;
8447
+ if (seen.has(key)) continue;
8448
+ seen.add(key);
8449
+ issues.push({
8450
+ rule: "unresolved-variable",
8451
+ severity: "error",
8452
+ message: `Unresolved ${label} variable "${variable}" found in ${attr} attribute.`,
8453
+ variable,
8454
+ location: "attribute"
8455
+ });
8456
+ }
8457
+ }
8458
+ }
8459
+ });
8460
+ }
8461
+ return { unresolvedCount: issues.length, issues };
8462
+ }
8463
+ function extractTextContent($) {
8464
+ const clone = $.root().clone();
8465
+ clone.find("style, script, head").remove();
8466
+ return clone.text();
8467
+ }
8468
+ function checkTemplateVariables(html) {
8469
+ if (!html || !html.trim()) {
8470
+ return { unresolvedCount: 0, issues: [] };
8471
+ }
8472
+ if (html.length > MAX_HTML_SIZE) {
8473
+ throw new Error(`HTML input exceeds ${MAX_HTML_SIZE / 1024}KB limit.`);
8474
+ }
8475
+ const $ = cheerio10.load(html);
8476
+ return checkTemplateVariablesFromDom($);
8477
+ }
8478
+
8479
+ // src/audit.ts
8480
+ import * as cheerio11 from "cheerio";
5343
8481
  function auditEmail(html, options) {
5344
8482
  var _a;
5345
8483
  if (!html || !html.trim()) {
@@ -5348,7 +8486,10 @@ function auditEmail(html, options) {
5348
8486
  spam: EMPTY_SPAM,
5349
8487
  links: EMPTY_LINKS,
5350
8488
  accessibility: EMPTY_ACCESSIBILITY,
5351
- images: EMPTY_IMAGES
8489
+ images: EMPTY_IMAGES,
8490
+ inboxPreview: EMPTY_INBOX_PREVIEW,
8491
+ size: EMPTY_SIZE,
8492
+ templateVariables: EMPTY_TEMPLATE
5352
8493
  };
5353
8494
  }
5354
8495
  if (html.length > MAX_HTML_SIZE) {
@@ -5356,18 +8497,21 @@ function auditEmail(html, options) {
5356
8497
  }
5357
8498
  const framework = options == null ? void 0 : options.framework;
5358
8499
  const skip = new Set((_a = options == null ? void 0 : options.skip) != null ? _a : []);
5359
- const $ = cheerio8.load(html);
8500
+ const $ = cheerio11.load(html);
5360
8501
  const warnings = skip.has("compatibility") ? [] : analyzeEmailFromDom($, framework);
5361
8502
  const scores = skip.has("compatibility") ? {} : generateCompatibilityScore(warnings);
5362
8503
  const spam = skip.has("spam") ? EMPTY_SPAM : analyzeSpamFromDom($, options == null ? void 0 : options.spam);
5363
8504
  const links = skip.has("links") ? EMPTY_LINKS : validateLinksFromDom($);
5364
8505
  const accessibility = skip.has("accessibility") ? EMPTY_ACCESSIBILITY : checkAccessibilityFromDom($);
5365
8506
  const images = skip.has("images") ? EMPTY_IMAGES : analyzeImagesFromDom($);
5366
- return { compatibility: { warnings, scores }, spam, links, accessibility, images };
8507
+ const inboxPreview = skip.has("inboxPreview") ? EMPTY_INBOX_PREVIEW : extractInboxPreviewFromDom($);
8508
+ const size = skip.has("size") ? EMPTY_SIZE : checkSizeFromDom($, html);
8509
+ const templateVariables = skip.has("templateVariables") ? EMPTY_TEMPLATE : checkTemplateVariablesFromDom($);
8510
+ return { compatibility: { warnings, scores }, spam, links, accessibility, images, inboxPreview, size, templateVariables };
5367
8511
  }
5368
8512
 
5369
8513
  // src/session.ts
5370
- import * as cheerio9 from "cheerio";
8514
+ import * as cheerio12 from "cheerio";
5371
8515
  function createSession(html, options) {
5372
8516
  if (!html || !html.trim()) {
5373
8517
  const fw = options == null ? void 0 : options.framework;
@@ -5379,7 +8523,10 @@ function createSession(html, options) {
5379
8523
  spam: EMPTY_SPAM,
5380
8524
  links: EMPTY_LINKS,
5381
8525
  accessibility: EMPTY_ACCESSIBILITY,
5382
- images: EMPTY_IMAGES
8526
+ images: EMPTY_IMAGES,
8527
+ inboxPreview: EMPTY_INBOX_PREVIEW,
8528
+ size: EMPTY_SIZE,
8529
+ templateVariables: EMPTY_TEMPLATE
5383
8530
  }),
5384
8531
  analyze: () => [],
5385
8532
  score: () => ({}),
@@ -5387,6 +8534,9 @@ function createSession(html, options) {
5387
8534
  validateLinks: () => EMPTY_LINKS,
5388
8535
  checkAccessibility: () => EMPTY_ACCESSIBILITY,
5389
8536
  analyzeImages: () => EMPTY_IMAGES,
8537
+ extractInboxPreview: () => EMPTY_INBOX_PREVIEW,
8538
+ checkSize: () => EMPTY_SIZE,
8539
+ checkTemplateVariables: () => EMPTY_TEMPLATE,
5390
8540
  transformForClient: (clientId) => ({ clientId, html: html || "", warnings: [] }),
5391
8541
  transformForAllClients: () => [],
5392
8542
  simulateDarkMode: (clientId) => ({ html: html || "", warnings: [] })
@@ -5395,7 +8545,7 @@ function createSession(html, options) {
5395
8545
  if (html.length > MAX_HTML_SIZE) {
5396
8546
  throw new Error(`HTML input exceeds ${MAX_HTML_SIZE / 1024}KB limit.`);
5397
8547
  }
5398
- const $ = cheerio9.load(html);
8548
+ const $ = cheerio12.load(html);
5399
8549
  const framework = options == null ? void 0 : options.framework;
5400
8550
  return {
5401
8551
  html,
@@ -5409,7 +8559,10 @@ function createSession(html, options) {
5409
8559
  const links = skip.has("links") ? EMPTY_LINKS : validateLinksFromDom($);
5410
8560
  const accessibility = skip.has("accessibility") ? EMPTY_ACCESSIBILITY : checkAccessibilityFromDom($);
5411
8561
  const images = skip.has("images") ? EMPTY_IMAGES : analyzeImagesFromDom($);
5412
- return { compatibility: { warnings, scores }, spam, links, accessibility, images };
8562
+ const inboxPreview = skip.has("inboxPreview") ? EMPTY_INBOX_PREVIEW : extractInboxPreviewFromDom($);
8563
+ const size = skip.has("size") ? EMPTY_SIZE : checkSizeFromDom($, html);
8564
+ const templateVariables = skip.has("templateVariables") ? EMPTY_TEMPLATE : checkTemplateVariablesFromDom($);
8565
+ return { compatibility: { warnings, scores }, spam, links, accessibility, images, inboxPreview, size, templateVariables };
5413
8566
  },
5414
8567
  analyze() {
5415
8568
  return analyzeEmailFromDom($, framework);
@@ -5429,6 +8582,15 @@ function createSession(html, options) {
5429
8582
  analyzeImages() {
5430
8583
  return analyzeImagesFromDom($);
5431
8584
  },
8585
+ extractInboxPreview() {
8586
+ return extractInboxPreviewFromDom($);
8587
+ },
8588
+ checkSize() {
8589
+ return checkSizeFromDom($, html);
8590
+ },
8591
+ checkTemplateVariables() {
8592
+ return checkTemplateVariablesFromDom($);
8593
+ },
5432
8594
  // Transforms create isolated copies since they mutate the DOM
5433
8595
  transformForClient(clientId) {
5434
8596
  return transformForClient(html, clientId, framework);
@@ -5443,9 +8605,15 @@ function createSession(html, options) {
5443
8605
  }
5444
8606
  export {
5445
8607
  AI_FIX_SYSTEM_PROMPT,
8608
+ AT_RULE_FEATURES,
8609
+ COMPOUND_VALUE_FEATURES,
8610
+ CSS_FUNCTION_FEATURES,
8611
+ CSS_SUPPORT,
5446
8612
  CompileError,
5447
8613
  EMAIL_CLIENTS,
8614
+ EMPTY_DELIVERABILITY,
5448
8615
  GENERIC_LINK_TEXT,
8616
+ HTML_ELEMENT_FEATURES,
5449
8617
  MAX_HTML_SIZE,
5450
8618
  STRUCTURAL_FIX_PROPERTIES,
5451
8619
  alphaBlend,
@@ -5454,11 +8622,14 @@ export {
5454
8622
  analyzeSpam,
5455
8623
  auditEmail,
5456
8624
  checkAccessibility,
8625
+ checkSize,
8626
+ checkTemplateVariables,
5457
8627
  contrastRatio,
5458
8628
  createSession,
5459
8629
  diffResults,
5460
8630
  errorWarnings,
5461
8631
  estimateAiFixTokens,
8632
+ extractInboxPreview,
5462
8633
  generateAiFix,
5463
8634
  generateCompatibilityScore,
5464
8635
  generateFixPrompt,