CSS Filter vs Dynamic Theme: Two Ways to Darken Websites
Compare full-page CSS filters with dynamic dark themes across first paint, color roles, images, video, live CSS, performance, and failure modes.
Technical Notes
Engineering notes on Safari dark mode extensions: Manifest V3 architecture, native theme detection, dynamic CSS rendering, and media protection.
Compare full-page CSS filters with dynamic dark themes across first paint, color roles, images, video, live CSS, performance, and failure modes.
Learn how a Safari app and web extension share global defaults and per-site settings through App Groups, native messaging, caching, and precedence.
See how a Safari extension combines color-scheme declarations, site hints, computed surface sampling, timing, and user overrides to detect native dark mode.
How Safari dark mode extensions preserve photos and video while adapting icons, SVG, posters, and CSS background images for dark surfaces.
Follow a dynamic dark mode renderer as it collects CSS, classifies color roles, resolves variables, generates overrides, and tracks live page changes.
Follow the Safari dark mode extension pipeline: permission, content scripts, native-theme detection, dynamic CSS rendering, media, and page updates.
Understand Manifest V3 and V2 in Safari Web Extensions: background lifecycle, permissions, scripting APIs, compatibility, and a production architecture.