fix(ui): het logo was in donkere modus een groot wit vlak (#735) #742
No reviewers
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!742
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/logo-donkere-modus-735"
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?
Closes #735
In donkere modus stond het logo als een groot wit vlak op het openscherm.
De oorzaak
Niet de weergave, maar de asset.
ocideck-logo.pngis volledig ondoorzichtig:alle vier de hoeken
#FFFFFFbij alfa 255, bijna negentig procent van het beeldzuiver wit. Het is een logo met een witte plaat eromheen ingebakken. Op een licht
oppervlak valt die plaat weg; op het donkere openscherm (
#1E293B) was hij op200 px het enige wat je zag.
Een tint kan dat niet repareren, want de plaat en de tekening zijn dezelfde
pixels.
Wat er is gebeurd
Drie donkere varianten.
ocideck-logo-dark.png,librekat-logo-dark.pngenvigilis-logo-dark.png: dezelfde tekening, echt transparante achtergrond, inktop de donkere waarde van
AppTheme.ink(#E8ECF3). Afgeleid uit de bestaandeassets, zodat de lijnvoering identiek blijft. Voor
ocideck-logo.pngis de alfateruggerekend uit de compositie over wit — genormaliseerd op het inktplateau
(luminantie 44, waar de lijnen liggen) en niet op de donkerste pixel, want dat
laatste maakte het hele logo een tint te bleek.
De alfa blijft de dekkingsgraad van de tekening. Dat is wat ze op elk
oppervlak laat landen, niet alleen op het ene ingebouwde donkere profiel — een
zelfgemaakt profiel kiest zijn eigen achtergrond.
BrandLogo(lib/theme/brand_logo.dart) koppelt elk paar en kiest opAppTheme.isDark. De vier aanroepplekken (openscherm, toestemmingsdialoog,"Over OciDeck", licentiepagina) vragen nu
BrandLogo.<merk>.assetKey.ocideck-logo-eu.pngkrijgt geen ingang: die zit alleen op de EU-blauwe zijbalken de navy banner — oppervlakken die in beide modi donker zijn — en zijn
EU-gele inkt leest daar al.
De kaarten in "Over OciDeck" stonden hardgecodeerd op
Colors.whiteinplaats van
AppTheme.paper. Dat hield het hele paneel licht in donkere modus, enverborg tegelijk dat het LibreKAT- en Vigilis-merk erop donkere inkt waren: de
kaart repareren zonder de logo's zou ze hebben laten verdwijnen. Vandaar in één
beweging.
Het LibreKAT-logo in het themaprofiel (
models/settings.dart) blijftuitdrukkelijk de lichte variant. Dat logo staat op een dia, een dia is een vast
wit canvas in beide modi, en het reist mee in de export.
De regressietest
Een widgettest had dit nooit gevangen — elke aanroepplek deed precies wat er
stond. De toets kijkt daarom eerst in de bestanden: transparante hoeken, lichte
inkt, gelijke afmetingen per paar, en alle zes registreerbaar via
rootBundle.Daarnaast een bronregel dat geen aanroepplek in
lib/zelf een merkpad kiest,want de vijfde die iemand toevoegt krijgt geen compilerfout maar een wit vlak.
Alle vier de controles zijn rood gezien tegen de onherstelde toestand:
Colors.whiteMet eigen ogen
flutter run -d macosin donkere modus, alle vier de plekken nagelopen:openscherm, uitgeverskaart, "Mogelijk gemaakt door", licentiepagina. Lichte modus
is aantoonbaar ongewijzigd —
AppTheme.paperísColors.whitealsisDarkonwaar is, en
assetKeygeeft dan hetzelfde bestand als voorheen.Poorten
make checkgroen,make check-fullgroen.make check-secrets: 0 (gitleaks + trufflehog, werkboom én historie).make sast: 0 bevindingen (3 regels over 687 bestanden).wijziging raakt geen geserveerd oppervlak.
l10n.d('…'),dus geen 31 vertalingen — de bestaande
Semantics-labels blijven staan.Eén afweging om te noemen
vigilis-logo-dark.pngis een hertinting van andermans merk: het zwartewoordmerk wordt licht, het gele beeldmerk blijft ongemoeid. Dat is de
gebruikelijke knockout-variant voor een donkere ondergrond en verandert niets aan
de vorm of de herkenbaarheid — maar het is wél een sponsormerk, en als Vigilis
huisstijlregels heeft, is dit het moment om dat na te lopen. Ik heb het gedaan
omdat het alternatief was dat hun naam in donkere modus onleesbaar op de kaart
stond; dat leek me slechter dan een nette knockout.
Verder raakt deze wijziging niets uit het bewaker-rijtje: geen bestandsformaat,
geen opslag, geen afhankelijkheid, geen uitgaand verkeer, geen publieke belofte.