PostHog / PostHog/posthog-flutter

textSubtleColor from survey appearance not applied to multiple choice options

Open
#584 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

  1. Create a survey with multiple-choice questions
  2. Set a dark theme in Customization (e.g. backgroundColor #1a1a2e)
  3. Note that textSubtleColor is set in the appearance JSON but there is no UI control for it in the editor
  4. Display the survey on iOS or Android via posthog-flutter
  5. 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: fontFamily from appearance is also not applied to native widgets

Screenshot

Image
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
Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.