The glass surfaces had one 1px highlight along the top, which read as flat. They now have a rim lit from the top-left and a fainter one on the far edges, as box-shadows, and a sheen from the top-left corner as a background layer. A pseudo-element would have been the usual way, but the detail pane, file list and dialogs scroll, and an absolutely placed layer in a scroller scrolls away with the content. Refraction was looked at and left out again: bending the live page needs backdrop-filter: url(), which Firefox and Safari lack, and the WebGL libraries (liquid-glass-js, liquidGL) bend a snapshot of the page that goes stale on a list that scrolls in its own pane. The sheen lightens a dark panel under its text, so tests/contrast.js now checks every text colour on a panel under the sheen at full strength. That capped it at 7% in dark mode; 9% put --faint, --accent and --bad under AA. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 KiB
54 KiB