Skip to content

perry/ui-ios: BottomNavigation has no active-tab tint setter (locked to iOS-default blue) #706

@proggeramlug

Description

@proggeramlug

Gap

BottomNavigation exposes no API to customize the active tab's icon/label color. The active tab renders in UITabBar's iOS-default system-blue tint regardless of app theme. There is also no setter on the unselected items.

A grep over the Perry UI surface finds bottomnavSet* helpers for items, badges, and selection, but none for tint:

$ grep -E "bottomnav" .perry/types/perry/ui/index.d.ts
bottomnavAddItem
bottomnavSetSelectedIndex
bottomnavSetBadge
bottomnavOnChange

Use case

Brand-coloured apps want the active tab to render in their primary brand color (e.g. #CB1142 for the wishare port) for visual continuity with the rest of the chrome. The iOS-default blue clashes with any non-blue brand.

Workaround

None at the app layer — the tint is set inside the UITabBar configuration that the host code owns. Apps can only achieve brand parity by avoiding BottomNavigation entirely and rolling a custom tab bar from HStack + Buttons, which loses the iOS gesture/accessibility behavior.

Suggested API

bottomnavSetTintColor(widget: Widget, r: number, g: number, b: number, a: number): void;
bottomnavSetUnselectedTintColor(widget: Widget, r: number, g: number, b: number, a: number): void;

Maps to UITabBar.tintColor / UITabBar.unselectedItemTintColor on the iOS side.

Encountered in

sharity-app port — documented in the local memory as perry_bottomnav_tint_unconfigurable.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions