Zwevende veldlabels straddelen in donkere modus een harde rand #811
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#811
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat je ziet
In de donkere modus loopt er een harde horizontale rand dwars door elk
zwevend veldlabel. "Waarde", "Eenheid", "Label", "Type" in de cockpit-editor;
"Hoofdkleur en bovenbalk" en de rest in Instellingen → App-thema. Het leest
alsof de onderste helft van de letters is afgesneden.
In het lichte thema is er niets te zien.
Waarom
Het is geen afknipping. Het label zweeft zoals Material dat doet: half boven
de bovenrand van het veld, half erin. De bovenste helft staat op de
schermachtergrond, de onderste op de vulling van het veld.
inputDecorationThemeinlib/theme/app_theme.dartzetfilled: truemetfillColor: surfaceColoren eenOutlineInputBorder. De gap van dieOutlineInputBorderonderbreekt alleen de lijn, niet de vulling. Hetlabel straddelt dus altijd een kleurovergang — in beide thema's.
Alleen valt hij in het lichte thema niet op:
#F4F7FC#FFFFFF#0F172A#1E293BGevonden tijdens de rondgang van #780. Het valt buiten dat issue omdat het
geen contrastdefect is en de reparatie een ontwerpkeuze vraagt.
Wat er te kiezen valt
Alle drie raken élk tekstveld in de app en verschuiven dus goldens:
filled: falsevoor de omrande velden — dat is de standaard Material"outlined text field", en dan is er geen rand om doorheen te lopen. De
velden verliezen hun vlak.
FloatingLabelBehavior/een gevulde stijl met onderstreping in plaats van een omranding).
verzacht het symptoom en laat de oorzaak staan; bovendien zijn eigen
profielen te bewerken, dus het geldt niet voor iedereen.
Voorkeur van mij is 1: het is de stijl waar Material deze combinatie voor
bedoeld heeft, en het is de enige die de oorzaak wegneemt in plaats van de
zichtbaarheid ervan.
Reproductie
Opgepakt, optie 1:
filled: falsevoor de omrande velden. Tak:fix/veldlabel-rand-811.Reikwijdte:
lib/theme/app_theme.dart(hetinputDecorationTheme-blok), plus de goldens die daardoor verschuiven en een toets die de combinatie vulling+omranding afdekt zodat hij niet terugkomt.Gemerged in
a5097015(PR #820), op main geverifieerd.Optie 1, om de reden die je zelf gaf: het is de enige die de oorzaak wegneemt in plaats van de zichtbaarheid ervan.
Eén ding zat er niet in je afweging, en het draaide de reparatie half om. Je noemde "de velden verliezen hun vlak" als de prijs. Dat klopt, maar het is niet de hele rekening: zonder vulling is de rand het enige dat het veld nog markeert, en gemeten kon
outlineVariantdat niet dragen — 1,58–1,92:1 tegen de achtergrond eronder. Mee omgezet naaroutline: 4,18–5,61:1, over de 3:1 die WCAG 1.4.11 voor de grens van een bedieningselement vraagt, en de rol die Material 3 hier zelf voorschrijft. Het veld is dus beter vindbaar dan vóór de reparatie.Goldens verschuiven niet. Je verwachtte van wel; de goldens dekken
SlidePreviewWidget, en een dia gebruikt geenInputDecoration.De dertien plekken met een eigen
filled: true(notitiebalk, zoekbalk, tabelkoppen) blijven zoals ze zijn. Die kiezen bewust een vlak, en geen van alle heeft een zwevend label — nagekeken, niet aangenomen.De regressietest meet op pixels en niet op een themavlag: tegen de oude code droeg 91,7% van het veldoppervlak een eigen vulling (12.573 van 13.708), nu 0%. Vier toetsen, alle vier één keer rood gezien.
Poort:
make checkgroen, ook na rebase op #814 en #812 — 6.561 tests, dekking 86,5%, per-bestandsvloer 0.