PostHog / PostHog/posthog-flutter
textSubtleColor from survey appearance not applied to multiple choice options
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 97
- Forks
- 85
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 31
Description
Version
5.28.0
Steps to Reproduce
Bug description
The textSubtleColor field in the survey appearance JSON is not applied to multiple-choice option text in the native survey widgets. The native iOS (SwiftUI) and Android (Jetpack Compose) renderers fall back to their own default text color, which clashes with custom backgrounds.
On a dark theme (backgroundColor: #1a1a2e, textSubtleColor: #939393), unselected options render as dark/black text on a dark background — nearly invisible. On a light theme (backgroundColor: #ffffff), the opposite happens: light text on white.
Impact
This affects any survey with a non-default theme. On our production survey (EN/ES/PT), the Portuguese segment has 0 completions out of 85 shown over 4 days. Spanish, on the same survey with the same appearance settings, has 11.4% completion. Users appear to dismiss the survey because they cannot read the choices.
Steps to reproduce
- Create a survey with multiple-choice questions
- Set a dark theme in Customization (e.g. backgroundColor
#1a1a2e) - Note that
textSubtleColoris set in the appearance JSON but there is no UI control for it in the editor - Display the survey on iOS or Android via posthog-flutter
- Observe that unselected choice text is unreadable
Environment
- posthog-flutter: 5.28.0
- iOS: 26.5 (SwiftUI renderer)
- Android: Jetpack Compose renderer
- PostHog project region: EU
Related
- #258 — same class of issue:
fontFamilyfrom appearance is also not applied to native widgets
Screenshot
Expected Result
Expected behavior
Native survey widgets should read textSubtleColor from the appearance JSON and apply it to unselected option text, placeholder text, and any other secondary text elements.
Actual Result
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing appearance JSON handling into the native iOS SwiftUI and Android Jetpack Compose survey renderers, focusing on multiple-choice options and other secondary text elements. Verify the change with dark and light custom themes and confirm that unselected option, placeholder, and related secondary text uses textSubtleColor on both platforms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, dart, flutter, swift
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100