Glass Mode A browser extension that turns websites into frosted glass over your desktop. Text stays readable. Works in Zen Browser.
Hand-tuned for 28 sites, with text contrast tested on every screen.
Hand-tuned styles for 28 sites: Gmail, Google Calendar, Spotify, WhatsApp, GitHub and DuckDuckGo. Other sites: automatic glass (beta). One slider: opacity. Alt+Shift+Up and Down change it from any page. Light and dark glass. Auto follows your system theme. Linux: run any site as its own app window. Requirements: Zen Browser on Linux (Hyprland, KDE or GNOME) or Windows 11. macOS is untested.
Why Transparent desktops stop at the browser. Every website paints a solid box over your wallpaper, and making pages simply see-through leaves text unreadable over a busy background.
Glass Mode gives each site frosted panels and menus. Text contrast is measured on every screen and menu, against the brightest and darkest wallpaper.
It needs Zen because Zen has built-in window transparency, so your desktop can show through a web page. Chrome-based browsers can't do this. Firefox is untested.
FAQ Permissions. It needs access to every site to style it. It collects nothing and sends nothing. The settings page only asks GitHub whether a newer version exists.
Performance. Site styles are plain CSS. The blur comes from your compositor, not the browser. Automatic glass reads the page once, then only what changes.
Which sites? 28 styled and tested, listed below. Every other site can use automatic glass.
Something unreadable? Open the panel and choose Report a problem. It opens a pre-filled issue.
Gallery Google Calendar Gmail Readwise Reader Spotify DuckDuckGo Hacker News GitHub Google Drive YouTube Music Linear Spotify Install Download glass-mode.xpi and open it in Zen. It is signed by Mozilla. In about:config, set browser.tabs.allow_transparent_browser to true, then the setting for your system: Linux: zen.widget.linux.transparency = true. Your compositor does the blur: Hyprland out of the box, KDE with kwin-effects-forceblur , GNOME with Blur my Shell . Windows 11: widget.windows.mica = true. Turn off Dark Reader for glass sites. It repaints them solid.
Control Press Alt+Shift+G in any page to open the glass panel. It also works in web-app windows, which have no toolbar.
Alt+Shift+Up and Alt+Shift+Down make glass more or less opaque.
Low opacity shows more desktop; high is nearly solid. Reading panes stay more opaque than sidebars, so text stays readable at every step.
Auto follows your system theme. Dark glass suits dark wallpapers, light glass bright ones.
Web apps webapp/zen-webapp opens a site in its own Zen window, with a launcher entry and taskbar icon. It uses your normal Zen profile, so you stay logged in.
./webapp/zen-webapp add "WhatsApp" https://web.whatsapp.com/ --icon autowebapp/README.md
Sites Every styled site and what the lab checked at the default opacity (45 %). Click a picture to flip through them; click a name for its screens and menus.
tested 28 pending 1 auto 7
Dark Light
Status A to Z Shuffle Grid Table
No site matches.
Request a site
All sites passesAnna's Archive annas-archive.pk. Passing at default opacity: dark 2/2, light 2/2.
Report a problem on Anna's Archive
All sites passesChatGPT chatgpt.com. Passing at default opacity: dark 4/4, light 4/4.
Tested screens and hidden UI home dark pass contrast 100% · surface 99%home light pass contrast 100% · surface 99%Report a problem on ChatGPT
All sites 4 of 4 checks failClaude claude.ai. Passing at default opacity: dark 0/2, light 0/2.
Report a problem on Claude
All sites passesDiscord discord.com. Passing at default opacity: dark 1/1, light 1/1.
Report a problem on Discord
All sites passesDuckDuckGo duckduckgo.com. Passing at default opacity: dark 22/22, light 22/22.
Tested screens and hidden UI assist dark pass contrast 100% · surface 100%assist light pass contrast 100% · surface 100%More dark not measured More light not measured Negative feedback dark pass contrast 100% · surface 100%Negative feedback light pass contrast 100% · surface 100%Positive feedback dark pass contrast 100% · surface 98%Positive feedback light pass contrast 100% · surface 98%Private dark not measured Private light not measured Search privately dark pass contrast 100% · surface 100%Search privately light pass contrast 100% · surface 100%United Kingdom dark not measured United Kingdom light not measured home dark pass contrast 100% · surface 99%home light pass contrast 100% · surface 99%Search with DuckDuckGo dark pass contrast 100% · surface 98%Search with DuckDuckGo light pass contrast 100% · surface 98%search dark pass contrast 100% · surface 100%search light pass contrast 100% · surface 100%Menu dark pass contrast 100% · surface 100%Menu light pass contrast 100% · surface 100%More dark not measured More light not measured Negative feedback dark pass contrast 100% · surface 100%Negative feedback light pass contrast 100% · surface 100%Private dark not measured Private light not measured Search privately dark pass contrast 100% · surface 100%Search privately light pass contrast 100% · surface 100%United Kingdom dark not measured United Kingdom light not measured chat dark pass contrast 100% · surface 100%chat light pass contrast 100% · surface 100%6 Luna dark pass contrast 100% · surface 100%6 Luna light pass contrast 100% · surface 100%Reasoning mode dark pass contrast 100% · surface 100%Reasoning mode light pass contrast 100% · surface 100%Settings & More dark pass contrast 100% · surface 100%Settings & More light pass contrast 100% · surface 100%Tools dark pass contrast 100% · surface 100%Tools light pass contrast 100% · surface 100%Report a problem on DuckDuckGo
All sites passesGemini gemini.google.com. Passing at default opacity: dark 4/4, light 4/4.
Tested screens and hidden UI home dark pass contrast 100% · surface 100%home light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%Report a problem on Gemini
All sites passesGitHub github.com. Passing at default opacity: dark 42/42, light 42/42.
Tested screens and hidden UI file dark pass contrast 100% · surface 100%file light pass contrast 100% · surface 100%Enterprise dark pass contrast 100% · surface 100%Enterprise light pass contrast 100% · surface 100%Go to file dark pass contrast 100% · surface 100%Go to file light pass contrast 100% · surface 100%master branch dark pass contrast 100% · surface 100%master branch light pass contrast 100% · surface 100%Open Source dark pass contrast 100% · surface 100%Open Source light pass contrast 100% · surface 100%Platform dark pass contrast 100% · surface 100%Platform light pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%Resources light pass contrast 100% · surface 100%Search or jump to, type / to search dark pass contrast 100% · surface 100%Search or jump to, type / to search light pass contrast 100% · surface 100%Solutions dark pass contrast 100% · surface 100%Solutions light pass contrast 100% · surface 100%issue dark pass contrast 100% · surface 100%issue light pass contrast 100% · surface 100%issues dark pass contrast 100% · surface 99%issues light pass contrast 92% · surface 99%Enterprise dark pass contrast 100% · surface 100%Enterprise light pass contrast 100% · surface 100%Filter by author dark pass contrast 100% · surface 100%Filter by author light pass contrast 100% · surface 100%Filter by labels dark pass contrast 100% · surface 100%Filter by labels light pass contrast 100% · surface 100%Filter by milestones dark pass contrast 100% · surface 100%Filter by milestones light pass contrast 100% · surface 100%Filter by projects dark pass contrast 100% · surface 100%Filter by projects light pass contrast 100% · surface 100%Open Source dark pass contrast 100% · surface 100%Open Source light pass contrast 100% · surface 100%Platform dark pass contrast 100% · surface 100%Platform light pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%Resources light pass contrast 100% · surface 100%Search issues dark pass contrast 100% · surface 100%Search issues light pass contrast 100% · surface 100%Search or jump to, type / to search dark pass contrast 100% · surface 100%Search or jump to, type / to search light pass contrast 100% · surface 100%Solutions dark pass contrast 100% · surface 100%Solutions light pass contrast 100% · surface 100%Actions for DremorSans's comment, 6:20 PM on June 16 dark pass contrast 100% · surface 100%Actions for DremorSans's comment, 6:20 PM on June 16 light pass contrast 100% · surface 100%Actions for DremorSans's comment, 10:34 AM on June 15 dark pass contrast 100% · surface 100%Actions for DremorSans's comment, 10:34 AM on June 15 light pass contrast 100% · surface 100%Actions for frostybiscuit's comment, 7:13 AM on June 15 dark pass contrast 100% · surface 100%Actions for frostybiscuit's comment, 7:13 AM on June 15 light pass contrast 100% · surface 100%Enterprise dark pass contrast 100% · surface 100%Enterprise light pass contrast 100% · surface 100%Open Source dark pass contrast 100% · surface 100%Open Source light pass contrast 100% · surface 100%Platform dark pass contrast 100% · surface 100%Platform light pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%Resources light pass contrast 100% · surface 100%Search or jump to, type / to search dark pass contrast 100% · surface 100%Search or jump to, type / to search light pass contrast 100% · surface 100%Solutions dark pass contrast 100% · surface 100%Solutions light pass contrast 100% · surface 100%repo dark pass contrast 100% · surface 100%repo light pass contrast 100% · surface 100%Code dark pass contrast 100% · surface 100%Code light pass contrast 100% · surface 100%Enterprise dark pass contrast 100% · surface 100%Enterprise light pass contrast 100% · surface 100%Go to file dark pass contrast 100% · surface 100%Go to file light pass contrast 100% · surface 100%master branch dark pass contrast 100% · surface 100%master branch light pass contrast 100% · surface 100%Open Source dark pass contrast 100% · surface 100%Open Source light pass contrast 100% · surface 100%Platform dark pass contrast 100% · surface 100%Platform light pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%Resources light pass contrast 100% · surface 100%Search or jump to, type / to search dark pass contrast 100% · surface 100%Search or jump to, type / to search light pass contrast 100% · surface 100%Solutions dark pass contrast 100% · surface 100%Solutions light pass contrast 100% · surface 100%Sponsor frostybiscuit/transparent-zen dark pass contrast 100% · surface 100%Sponsor frostybiscuit/transparent-zen light pass contrast 100% · surface 100%Report a problem on GitHub
All sites passesGlass Mode nazzacode.github.io. Passing at default opacity: dark 2/2, light 2/2.
Report a problem on Glass Mode
All sites passesGmail mail.google.com. Passing at default opacity: dark 15/15, light 15/15.
Tested screens and hidden UI inbox dark pass contrast 98% · surface 97%inbox light pass contrast 100% · surface 97%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%thread dark pass contrast 98% · surface 97%thread light pass contrast 100% · surface 97%hidden UI 5 dark not measured hidden UI 5 light not measured hidden UI 6 dark not measured hidden UI 6 light not measured hidden UI 8 dark not measured hidden UI 8 light not measured hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%hidden UI 4 dark not measured hidden UI 4 light not measured hidden UI 3 dark pass contrast 100% · surface 100%hidden UI 3 light pass contrast 100% · surface 100%hidden UI 2 dark not measured hidden UI 2 light not measured hidden UI 7 dark not measured hidden UI 7 light not measured Report a problem on Gmail
All sites passesGoogle google.com. Passing at default opacity: dark 6/6, light 6/6.
Report a problem on Google
All sites passesGoogle Calendar calendar.google.com. Passing at default opacity: dark 21/21, light 21/21.
Tested screens and hidden UI event dark pass contrast 96% · surface 100%event light pass contrast 95% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%month dark pass contrast 99% · surface 99%month light pass contrast 99% · surface 99%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%week dark pass contrast 95% · surface 100%week light pass contrast 94% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%Report a problem on Google Calendar
All sites passesGoogle Drive drive.google.com. Passing at default opacity: dark 34/34, light 34/34.
Tested screens and hidden UI mydrive dark pass contrast 96% · surface 100%mydrive light pass contrast 96% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%new dark pass contrast 96% · surface 100%new light pass contrast 96% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%recent dark pass contrast 94% · surface 96%recent light pass contrast 94% · surface 96%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%Report a problem on Google Drive
All sites passesGoogle Translate translate.google.com. Passing at default opacity: dark 13/13, light 13/13.
Report a problem on Google Translate
All sites passesHacker News news.ycombinator.com. Passing at default opacity: dark 2/2, light 2/2.
Tested screens and hidden UI front dark pass contrast 100% · surface 100%front light pass contrast 100% · surface 100%item dark pass contrast 100% · surface 100%item light pass contrast 100% · surface 100%Report a problem on Hacker News
All sites passesLinear linear.app. Passing at default opacity: dark 38/38, light 28/28. Dark only.
Tested screens and hidden UI changelog dark pass contrast 100% · surface 100%Product dark pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%home dark pass contrast 100% · surface 100%Linear dark pass contrast 100% · surface 100%Product dark pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%pricing dark pass contrast 100% · surface 100%Product dark pass contrast 100% · surface 100%Resources dark pass contrast 100% · surface 100%Report a problem on Linear
All sites 4 of 12 checks failNotion notion.notion.site. Passing at default opacity: dark 3/6, light 5/6.
Tested screens and hidden UI careers dark pass contrast 100% · surface 95%careers light pass contrast 100% · surface 95%More actions dark pass contrast 100% · surface 100%More actions light pass contrast 100% · surface 100%home dark pass contrast 91% · surface 100%home light pass contrast 100% · surface 100%More actions dark fail contrast 100% · surface 100%More actions light pass contrast 100% · surface 100%whatsnew dark fail contrast 100% · surface 88%whatsnew light fail contrast 100% · surface 88%More actions dark fail contrast 100% · surface 100%More actions light pass contrast 100% · surface 100%Report a problem on Notion
All sites 1 of 4 checks failPerplexity perplexity.ai. Passing at default opacity: dark 1/2, light 2/2.
Tested screens and hidden UI home dark fail contrast 89% · surface 100%home light pass contrast 100% · surface 100%Filter projects dark pass contrast 100% · surface 100%Filter projects light pass contrast 100% · surface 100%Report a problem on Perplexity
All sites passesPower Thesaurus powerthesaurus.org. Passing at default opacity: dark 3/3, light 3/3.
Report a problem on Power Thesaurus
All sites passesReadwise Reader read.readwise.io. Passing at default opacity: dark 7/7, light 7/7.
Tested screens and hidden UI doc dark pass contrast 100% · surface 100%doc light pass contrast 99% · surface 100%hidden UI 1 dark not measured hidden UI 1 light not measured library dark pass contrast 100% · surface 100%library light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%Report a problem on Readwise Reader
All sites 2 of 16 checks failReddit reddit.com. Passing at default opacity: dark 7/8, light 7/8.
Tested screens and hidden UI home dark pass contrast 100% · surface 100%home light pass contrast 100% · surface 100%post dark pass contrast 100% · surface 100%post light pass contrast 100% · surface 100%sub dark fail contrast 100% · surface 100%sub light fail contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%Report a problem on Reddit
All sites passesSpotify open.spotify.com. Passing at default opacity: dark 5/5, light —. Dark only.
Tested screens and hidden UI artist dark pass contrast 100% · surface 97%More options for Coldplay dark pass contrast 100% · surface 91%What do you want to play? dark pass contrast 100% · surface 100%home dark pass contrast 100% · surface 98%What do you want to play? dark pass contrast 100% · surface 100%Report a problem on Spotify
All sites passesSubstack substack.com. Passing at default opacity: dark 7/7, light 7/7.
Tested screens and hidden UI home dark pass contrast 95% · surface 99%home light pass contrast 95% · surface 99%hidden UI 3 dark pass contrast 100% · surface 100%hidden UI 3 light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%hidden UI 4 dark pass contrast 93% · surface 100%hidden UI 4 light pass contrast 100% · surface 100%Report a problem on Substack
All sites passesWhatsApp web.whatsapp.com. Passing at default opacity: dark 2/2, light 2/2.
Report a problem on WhatsApp
All sites passesWikipedia en.wikipedia.org. Passing at default opacity: dark 3/3, light 3/3.
Tested screens and hidden UI article dark pass contrast 100% · surface 100%article light pass contrast 100% · surface 100%main dark pass contrast 100% · surface 100%main light pass contrast 100% · surface 100%menu dark pass contrast 100% · surface 100%menu light pass contrast 100% · surface 100%Report a problem on Wikipedia
All sites passesWorks in Progress worksinprogress.co. Passing at default opacity: dark 6/6, light 6/6.
Report a problem on Works in Progress
All sites passesX x.com. Passing at default opacity: dark 10/10, light 10/10.
Tested screens and hidden UI home dark pass contrast 100% · surface 100%home light pass contrast 100% · surface 100%hidden UI 1 dark pass contrast 100% · surface 100%hidden UI 1 light pass contrast 100% · surface 100%hidden UI 2 dark pass contrast 100% · surface 100%hidden UI 2 light pass contrast 100% · surface 100%profile dark pass contrast 100% · surface 100%profile light pass contrast 100% · surface 100%More dark not measured More light not measured Report a problem on X
All sites passesYouTube youtube.com. Passing at default opacity: dark 2/2, light 2/2.
Report a problem on YouTube
All sites passesYouTube Music music.youtube.com. Passing at default opacity: dark 4/4, light —. Dark only.
Tested screens and hidden UI music explore dark pass contrast 100% · surface 100%Search songs, albums, artists, podcasts dark pass contrast 100% · surface 100%music home dark pass contrast 100% · surface 100%Report a problem on YouTube Music
All sites not tested yetastralcodexten.com astralcodexten.com. Passing at default opacity: dark —, light —.
Report a problem on astralcodexten.com
All sites auto glass, passesarstechnica.com arstechnica.com. Passing at default opacity: dark 1/1, light 1/1.
Tested screens and hidden UI arstechnica dark pass contrast 99% · surface 100%arstechnica light pass contrast 99% · surface 100%Report a problem on arstechnica.com
All sites auto glass, passesbbc.co.uk bbc.co.uk. Passing at default opacity: dark 1/1, light 1/1.
Tested screens and hidden UI bbc news dark pass contrast 93% · surface 90%bbc news light pass contrast 93% · surface 90%Report a problem on bbc.co.uk
All sites auto glass, 16 of 18 checks faildeveloper.mozilla.org developer.mozilla.org. Passing at default opacity: dark 1/9, light 1/9.
Tested screens and hidden UI mdn dark pass contrast 100% · surface 95%mdn light pass contrast 100% · surface 96%About dark fail contrast 100% · surface 67%About light fail contrast 100% · surface 67%All dark fail contrast 100% · surface 83%All light fail contrast 100% · surface 83%CSS dark fail contrast 100% · surface 83%CSS light fail contrast 100% · surface 83%HTML dark fail contrast 100% · surface 83%HTML light fail contrast 100% · surface 83%JavaScript dark fail contrast 100% · surface 83%JavaScript light fail contrast 100% · surface 83%Learn dark fail contrast 100% · surface 83%Learn light fail contrast 100% · surface 83%Tools dark fail contrast 100% · surface 83%Tools light fail contrast 100% · surface 83%Web APIs dark fail contrast 100% · surface 83%Web APIs light fail contrast 100% · surface 83%Report a problem on developer.mozilla.org
All sites auto glass, passesdocs.python.org docs.python.org. Passing at default opacity: dark 1/1, light 1/1.
Tested screens and hidden UI python docs dark pass contrast 100% · surface 100%python docs light pass contrast 100% · surface 100%Report a problem on docs.python.org
All sites auto glass, passeslobste.rs lobste.rs. Passing at default opacity: dark 1/1, light 1/1.
Tested screens and hidden UI lobsters dark pass contrast 100% · surface 99%lobsters light pass contrast 100% · surface 99%Report a problem on lobste.rs
All sites not tested yetonthemarket.com onthemarket.com. Passing at default opacity: dark —, light —.
Report a problem on onthemarket.com
All sites auto glass, passesstackoverflow.com stackoverflow.com. Passing at default opacity: dark 2/2, light 2/2.
Tested screens and hidden UI stackoverflow dark pass contrast 99% · surface 100%stackoverflow light pass contrast 100% · surface 100%Products dark pass contrast 100% · surface 100%Products light pass contrast 100% · surface 100%Report a problem on stackoverflow.com
Add a site Missing a site? Turn on automatic glass in the toolbar popup, or request the site .
To add one yourself:
./glasslab add "Linear" https://linear.app/ # style, register, test
./glasslab add "Linear" https://linear.app/ --agent # an agent fixes what failsWith --agent, edits are kept only if the test scores go up. Full guide: docs/GLASS.md .
How it works Each style maps a site's own colours onto four shared layers: page, sidebar, content and menu.
A test lab opens every screen and menu in a headless browser, measures text contrast against the brightest and darkest wallpaper, and checks every surface is glass. It never clicks anything that sends or deletes.
Sites without a style get the same layers, guessed from the page's layout.
Credits Glass Mode by nazzacode. Originally based on Transparent Zen by FrostyBiscuit. MIT licence.