Skip to content
FelicityUI

Jetpack Compose

FelicityUI Compose components are Kotlin source using Compose state and TalkBack semantics.

Requires Jetpack Compose and Material 3 (androidx.compose.material3:material3). Use CLI 0.1.6 or later so files land on the Android source set with rewritten packages.

Run felicityui init --platform compose from the Android app module or the repo root that contains app/src/main/java (or kotlin). The CLI:

  1. Detects that source set and the Gradle namespace / applicationId.
  2. Writes files under <sourceSet>/<namespace>/ui/components and ui/tokens.
  3. Rewrites package and import lines to <namespace>.ui.components / <namespace>.ui.tokens.

If you init in a folder with no Android source set, files land at top-level ui/ with com.felicityui.ui.*. Move them onto the source set before compiling, or set those paths in felicityui.json and re-run add.

Button uses Material ripple with FelicityUI colors — not Material color roles. Pass selected = true on the active segment (React uses pressed). A segmented FelicityButtonGroup clips and strokes as one control. Small is 32dp visually; Material 3 may still keep a 48dp minimum touch target, which is accessible.

Dialog is AlertDialog. Drawer is ModalBottomSheet; a persistent navigation drawer belongs in the app scaffold. DesignColors follows isSystemInDarkTheme(). Icon-only usage must pass contentDescription.

Related: Button, Input, Accordion, Dialog, Drawer, Installation.