Setting to reduce or disable interface transparency and blur
- Dominant language
- TypeScript
- Stars
- 909
- Forks
- 116
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 156
Description
## Before filing
- [x] I searched open and closed issues for duplicates.
- [x] I am using a recent release and this doesn't already exist.
- [x] This is one request, not several bundled together.
## Closest existing issue
```
none found
```
## Is this new, or an improvement?
```
New capability — Berd can't do this at all today
```
---
## The problem, in your terms
Berd leans heavily on translucent, blurred surfaces. They look good, but blur is
one of the more expensive things a compositor can be asked to do, and it is
recomputed continuously as content moves underneath. With a long chat scrolling
or a response streaming, that cost is paid every frame.
I notice it as the machine working harder than the task warrants — fan and heat
on a window that is mostly text. On a laptop that translates directly into
battery. There is no way to turn it down.
## What you do today
Nothing. There is no setting for it, so I either accept the cost or don't run
Berd.
## What you'd like to see
A setting under **Settings → Appearance** that reduces or disables interface
transparency and blur, falling back to opaque surfaces at the same colours.
Rough shape: a single toggle ("Reduce transparency") is enough. It doesn't need
to be a slider.
Two things worth considering alongside it:
- **Honour the system preference.** Both macOS and Windows expose a
reduce-transparency accessibility setting, and the CSS
`prefers-reduced-transparency` media query surfaces it to the app. Defaulting
to the system value would make Berd correct for people who have already asked
their OS for this, with no setting to find.
- The change looks mechanically contained: as of v0.6.2, `backdrop-blur` appears
across 27 files in `src/`, so a single opt-out mechanism the surfaces read from
would cover them.
## Why this belongs in Berd itself
It can't be done from outside. Skills, agents, extensions and automations act on
conversations, not on how the app paints its own surfaces. There is no user
stylesheet, no theme file, and no override I can apply locally.
It is also an accessibility issue as much as a performance one. Reduced
transparency is a standard OS-level accessibility preference precisely because
translucent layered interfaces are hard to read for some people. Berd currently
ignores that preference.
## Non-goals
- **Not a full theming system.** I'm not asking to customise colours, radii, or
anything else about the look.
- **Not removing transparency for everyone.** The default should stay exactly as
it is. This is an opt-out, not a redesign.
- **Not a performance overhaul.** I'm not claiming blur is Berd's only cost or
the largest one. I'm asking for control over this one thing.
- **Not a per-surface control.** One switch for the whole interface, not a list.
## Alternatives you considered
- **A system-wide compositor setting.** Doesn't help — it doesn't reach an app's
own CSS `backdrop-filter`.
- **Running Berd in a smaller window to reduce blurred area.** A workaround that
costs more than it saves.
- **Only honouring `prefers-reduced-transparency` with no explicit setting.**
Reasonable and I'd take it, but an explicit toggle is better: someone may want
system transparency on and Berd's off, since Berd is the window they leave
open all day.
## Mockups, prior art, or other context
Prior art: macOS System Settings → Accessibility → Display → Reduce
transparency; Windows Settings → Personalization → Colors → Transparency
effects. The CSS media query `prefers-reduced-transparency` exists to let apps
follow either.
Environment: Berd 0.6.2, Linux (Ubuntu, x86_64), `.deb` release.
Contributor guide
Research direction
Start at the Settings → Appearance entry point and inventory the 27 files in src/ that use backdrop-blur. Trace how shared styling and settings are applied, then check how the CSS prefers-reduced-transparency preference can be read. Done means one opt-out setting or system preference produces opaque surfaces while the default appearance remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- css, typescript
- Domain
- accessibility, desktop, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100