Skip to content

AccentColor is configured correctly but not honoured — system controls fall back to blue #102

Description

@Adron

Found while implementing #80 (see PR #101).

What was observed

  • ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor is set in the build settings.
  • Assets.xcassets/AccentColor.colorset/Contents.json does hold the brand green, with a correct
    dark-appearance variant.
  • Yet links and system controls render system blue, not brand green.

Setting .tint(ILColor.primary) on RootView fixes it for the hierarchy below that point, and #101
does exactly that. But that is a workaround layered over an unexplained cause, not a fix.

Why it matters beyond links

.tint does not cross into sheet content — proven while answering #80's deep-link question: a
sheet presented from InterlinedListApp inherited the colour scheme but kept a system-blue "Cancel"
until its content was tinted directly.

So every independently-presented surface needs its own .tint, and any one that is missed silently
reverts to blue. A correctly-honoured global accent would cover all of them at once. Today the app
has an unknown number of un-tinted sheets.

Worth investigating

  • Why the global accent is ignored. Candidates: the colorset name not matching what the build
    setting expects, the asset not being compiled into the right catalog, or Info.plist /
    UIWindow level configuration overriding it.
  • Whether UIView.appearance().tintColor (set alongside the existing
    UINavigationBar.appearance() configuration in InterlinedListApp.configureNavigationBarAppearance())
    would cover UIKit-hosted surfaces the SwiftUI .tint cannot reach.
  • Audit every .sheet / .fullScreenCover in Views/ for a missing tint once the root cause is
    known — if the global accent can be made to work, they can all drop their local tints instead.

Acceptance criteria

  • The cause is identified and written down (even if the conclusion is "the global accent cannot
    work here, tint explicitly").
  • No surface renders system blue where brand green is intended, in both appearances.
  • If explicit tinting stays the answer, there is one documented place to add it for a new sheet.

Low urgency — #101 makes the visible case correct. This is about not having an unexplained
workaround and an unaudited set of sheets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingws:papercutsW8 — small parity papercuts

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions