~/talk

High-Performance Web UI with Web Components

Talkat Reliable Web Summit 2021 · 2021-08-26..08-27· [web-platform, web-performance]
slides:none on file

Library ships as ES2015 modules with multiple entry points and per-component register files and sets "sideEffects" in package.json to enable aggressive tree shaking while still allowing components to auto-register. Build uses Rollup/Webpack, PurgeCSS for CSS tree shaking, Lighthouse CI and bundle-size for regression checks. Icons are imported individually so hundreds of SVGs shrink to only those used. Global CSS drops from ~130 KB to ~8 KB compressed; hello-world payload is ~30 KB (14 KB JS, 2 KB CSS). CSS contain plus content-visibility: auto yields a grid render of 1k rows 4k cells in ~300–800 ms and 10k×40k in ~2.5 s on an M1. CDN import via import maps / skypack enables buildless consumption.

AI-written summary · about

  1. 0:00Introduction
  2. 0:37Welcome
  3. 1:03Web Components
  4. 1:44Example Web Component
  5. 5:07Web Component Performance
  6. 7:28Dependencies
  7. 8:38Build Targets
  8. 9:39Code
  9. 11:05Components
  10. 11:33Tree Shaking
  11. 12:14Component Level Tree Shaking
  12. 13:45Side Effects
  13. 15:50Registration
  14. 18:06Icons
  15. 20:26CDN Performance
  16. 22:11Import Maps
  17. 23:56CSS Performance
  18. 24:35Text Compression
  19. 26:24CSS Custom Properties
  20. 29:29Tree Shake with CSS
  21. 30:56Purge CSS
  22. 32:06Browser Rendering
  23. 32:44CSS Contain
  24. 34:33CSS Content Visibility
  25. 35:56Performance
  26. 37:20Render Time
  27. 38:15Measure and Automate
  28. 38:42Tree Shake
  29. 39:34Lightweight Components
  30. 40:38Performance Benchmarks
  31. 40:51Resources
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.