style(web): Such-Widget ohne helle Unterkante an Auswahl und Suchfeld

Opt-out-Klasse field-plain fuer die Fluent-Unterkante; im Dunkelmodus
wirkte sie im Such-Widget wie eine weisse Linie (Nutzerwunsch 29.09.).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 11:34:38 +02:00
parent 3cb43d6cc0
commit cbc89d9810
3 changed files with 8 additions and 5 deletions
+1
View File
@@ -11,6 +11,7 @@ Diese Liste beschreibt in einfachen Worten, was sich von Version zu Version an T
### Geändert ### Geändert
- Seitenleiste: Ist sie eingeklappt, sind die Symbole etwas größer und stehen etwas enger beieinander. - Seitenleiste: Ist sie eingeklappt, sind die Symbole etwas größer und stehen etwas enger beieinander.
- Dashboard: Im Such-Widget haben die Auswahl der Suchmaschine und das Suchfeld keine helle Linie an der Unterkante mehr.
## 1.6.0 – 2026-09-29 ## 1.6.0 – 2026-09-29
+5 -3
View File
@@ -255,11 +255,13 @@ body {
Rahmen plus 2 px Akzentlinie unten. Gilt fuer Textfelder und Auswahllisten Rahmen plus 2 px Akzentlinie unten. Gilt fuer Textfelder und Auswahllisten
mit dem ueblichen `border-input`/`border-border`-Rahmen; Fehlerzustaende mit dem ueblichen `border-input`/`border-border`-Rahmen; Fehlerzustaende
(aria-invalid, border-destructive) behalten ihre Farbe. Bewusst ausserhalb (aria-invalid, border-destructive) behalten ihre Farbe. Bewusst ausserhalb
eines @layer, damit die Regel die Tailwind-Utilities schlaegt. */ eines @layer, damit die Regel die Tailwind-Utilities schlaegt.
:is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea):is(.border-input, .border-border):not([aria-invalid="true"], .border-destructive) { `.field-plain` nimmt ein Feld aus (Such-Widget, Nutzerwunsch 29.09.: die
helle Unterkante wirkte im Dunkelmodus wie eine weisse Linie). */
:is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea):is(.border-input, .border-border):not([aria-invalid="true"], .border-destructive, .field-plain) {
border-bottom-color: var(--input-strong); border-bottom-color: var(--input-strong);
} }
:is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea):is(.border-input, .border-border):not([aria-invalid="true"], .border-destructive):focus { :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea):is(.border-input, .border-border):not([aria-invalid="true"], .border-destructive, .field-plain):focus {
outline: none; outline: none;
border-color: var(--input-strong); border-color: var(--input-strong);
border-bottom-color: var(--primary); border-bottom-color: var(--primary);
@@ -89,7 +89,7 @@ export function SearchWidget({ instanceId, config }: WidgetProps) {
<div className="flex h-full items-center gap-2 px-1.5"> <div className="flex h-full items-center gap-2 px-1.5">
{/* Provider dropdown (D-14: ~120px left) */} {/* Provider dropdown (D-14: ~120px left) */}
<select <select
className="h-8 w-[120px] shrink-0 rounded border border-border bg-card px-2 text-sm text-foreground" className="field-plain h-8 w-[120px] shrink-0 rounded border border-border bg-card px-2 text-sm text-foreground"
value={selectedProviderId} value={selectedProviderId}
onChange={(e) => handleProviderChange(e.target.value)} onChange={(e) => handleProviderChange(e.target.value)}
> >
@@ -103,7 +103,7 @@ export function SearchWidget({ instanceId, config }: WidgetProps) {
{/* Search input (flex-1 center) */} {/* Search input (flex-1 center) */}
<input <input
type="text" type="text"
className="h-8 flex-1 rounded border border-border bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary" className="field-plain h-8 flex-1 rounded border border-border bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary"
placeholder={t('search.placeholder')} placeholder={t('search.placeholder')}
value={query} value={query}
onChange={(e) => setQuery(e.target.value)} onChange={(e) => setQuery(e.target.value)}