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:
- Detects that source set and the Gradle
namespace/applicationId. - Writes files under
<sourceSet>/<namespace>/ui/componentsandui/tokens. - Rewrites
packageandimportlines 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.