[Bug] Het logo is in donkere modus een groot wit vlak #735
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#735
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 er gebeurt
Zet je het uiterlijk van de applicatie op Donker, dan staat het logo op het
openscherm als een groot, egaal wit blok op de donkere achtergrond. Het leest
niet als een logo maar als een gat in het scherm.
Reproduceren: Instellingen → Uiterlijk → profiel Donker, dan een tabblad
sluiten tot je op het openscherm staat.
Waarom
Het ligt niet aan de weergave maar aan de bestand zelf.
assets/images/ocideck-logo.png(512×512, RGBA) heeft geen transparantie:alle vier de hoeken zijn
#FFFFFFbij alpha 255, en ongeveer 89% van het beeldis zuiver wit. Het is een logo met een witte plaat eromheen ingebakken. Op een
licht oppervlak valt die plaat weg, op een donker oppervlak is het het enige wat
je ziet.
Het donkere profiel gebruikt
surfaceColor: #1E293B(
lib/models/parts/app_appearance_profile.dart), en het openscherm zet dat alsscaffold-achtergrond. Wit op
#1E293Bis het maximale contrast dat er is —precies de verkeerde kant op.
Drie plekken tonen dit bestand:
lib/widgets/shell/welcome_screen.dart:66lib/widgets/dialogs/consent_dialog.dart:39lib/widgets/dialogs/parts/settings_dialog_about.dart:200Hoe het wél goed gaat
De zijbalk van het instellingenvenster doet het al goed en heeft de oplossing
zelfs opgeschreven —
lib/widgets/dialogs/parts/settings_dialog_chrome.dart:152:Daar hangt
assets/images/ocideck-logo-eu.png: een palet-PNG méttRNS, duseen écht transparante achtergrond, met de inkt hertint naar EU-vlaggeel
#FFCC00. Datzelfde bestand draagt de banner van "Over OciDeck"(
settings_dialog_about.dart:277) op een navy verloop. Geen plaat, geen rand,en het werkt op elke ondergrond.
Dat is de aanpak die het openscherm mist.
De andere kant van dezelfde munt
assets/images/librekat-logo.png(250×250) heeft het omgekeerde probleem: dieis wél transparant, maar de inkt is bijna zwart (~
#202020) en beslaat maar7,6% van het vlak. Op een donker oppervlak verdwijnt hij.
Dat valt vandaag nog niet op, omdat het paneel "Over OciDeck" zijn kaarten
hardcodeert op wit —
settings_dialog_about.dart:391en:450zettencolor: Colors.whitein plaats vanAppTheme.paper, dat juist voor dit doelbestaat ("wit papier-oppervlak voor editor-chrome … in donkere modus een donker
oppervlak"). Die kaarten blijven dus wit, ongeacht het gekozen profiel — op
zichzelf een fout, maar wel de reden dat het LibreKAT-logo daar nu nog leesbaar
is.
Belangrijk voor de volgorde: repareer je die
Colors.whitezonder het logomee te nemen, dan verdwijnt het LibreKAT-logo in de donkere kaart. De twee
horen in één beweging.
Voorstel
A — een tweede bestand, per modus gekozen (aanbevolen).
Lever
assets/images/ocideck-logo-dark.png: dezelfde tekening, transparanteachtergrond, inkt licht genoeg voor een donker oppervlak. De EU-variant bewijst
dat die route werkt; voor het openscherm is een lichte woordmerk-versie mooier
dan geel, want geel is de accentkleur van de zijbalk en niet van het product.
Doe hetzelfde voor
librekat-logo-dark.png.Zet de keuze op één plek — een kleine
lib/widgets/brand_logo.dartof eengetter naast
AppTheme— die de juiste asset-sleutel teruggeeft voor de huidigemodus, zodat de drie aanroepplekken niet elk hun eigen
if (isDark)krijgen. Devierde die er ooit bijkomt, krijgt het dan gratis goed.
Registreer beide bestanden in
pubspec.yaml.B — geen nieuw bestand, wel een bewuste badge.
Behoud één asset en geef hem in donkere modus dezelfde behandeling als de
"Over OciDeck"-banner: een afgeronde container in navy of EU-blauw eromheen. Het
witte vlak wordt dan een opzettelijk plaatje in plaats van een ongeluk.
Goedkoper, maar het licentiepictogram lost het niet op en het blijft een
omweg om een asset-probleem heen.
C — het wit uit het bestaande bestand halen en per modus tinten.
Afgeraden. De tekening bevat zelf witte vormen; een vlakke tint plet die weg.
Aanbeveling: A, met de
Colors.white-reparatie in het paneel "OverOciDeck" in dezelfde PR.
Regressietest
Een bugfix hoort niet alleen de fout weg te nemen maar ook terug te kunnen
komen zien:
de gerenderde
Imagede donkere asset-sleutel draagt (en de lichte onderBasic). Dit vangt de aanroepplek die de helper vergeet.
test/app_theme_dark_test.dartis de logische plek.logo-assets en eis dat de randpixels van elke voor donkere modus bedoelde
variant alpha 0 hebben. De fout hier was niet een vergeten
if, maar eenondoorzichtig geëxporteerd PNG. Alleen een test die naar het bestand kijkt
ziet dat aankomen.
Kosten
pubspec.yaml. Geen SBOM-gevolg (assetszijn geen afhankelijkheden).
l10n.d('…')als de bestaandeSemantics-labels blijven staan —dus geen 31 vertalingen.
lib/valt onder de dekkingspoort:brand_logo.dartmoet inminstens één test voorkomen.
varianten zit.
Opgepakt met aanpak A. Tak:
fix/logo-donkere-modus-735.Reikwijdte: drie transparante donkere logovarianten (
ocideck-logo-dark.png,librekat-logo-dark.png,vigilis-logo-dark.png), eenlib/widgets/brand_logo.dartdie de asset per modus kiest, de vier aanroepplekken, en deColors.white-kaarten insettings_dialog_about.dart.Het Vigilis-blokje kwam vandaag binnen met #737 en zit op dezelfde kaart: zodra die kaart in donkere modus donker wordt, verdwijnt het zwarte woordmerk. Daarom hoort het in dezelfde reparatie.
Opgelost en gemerged:
971abe30(PR #742).Drie donkere varianten (OciDeck, LibreKAT, Vigilis) — dezelfde tekening, transparante achtergrond, lichte inkt — met
BrandLogoinlib/theme/brand_logo.dartdie per modus kiest. De vier aanroepplekken zijn om, en de kaarten in 'Over OciDeck' staan niet meer hardgecodeerd opColors.white.Regressietest kijkt in de pixels, niet in de code: transparante hoeken, lichte inkt, gelijke afmetingen per paar, plus een bronregel dat geen aanroepplek in
lib/zelf een merkpad kiest. Alle vier de controles zijn rood gezien tegen de onherstelde toestand. Draaiend nagelopen in donkere modus op alle vier de plekken.Wat er níét in zat:
ocideck-logo-eu.png(zit alleen op oppervlakken die in beide modi donker zijn) en het LibreKAT-logo in het themaprofiel — dat staat op een dia, en een dia is een vast wit canvas.Eén punt ter attentie:
vigilis-logo-dark.pngis een hertinting van een sponsormerk (zwart woordmerk wordt licht, geel beeldmerk blijft). Gebruikelijke knockout-variant, maar als Vigilis huisstijlregels heeft is dat het narekenen waard.