Jetpack Compose Expert
aldefy/compose-skill
Guides Jetpack Compose and Compose Multiplatform work across Android, Desktop, iOS and web, plus Android TV, Material 3 motion, paging, navigation and design-to-code.
A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.
$ npx skills add arindamxd/camerax-android --skill styles -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install arindamxd/camerax-android styles --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/styles .claude/skills/styles && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .claude/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/stylesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add arindamxd/camerax-android --skill styles -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install arindamxd/camerax-android styles --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/styles .agents/skills/styles && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .agents/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add arindamxd/camerax-android --skill styles -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install arindamxd/camerax-android styles --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/styles .cursor/skills/styles && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .cursor/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/arindamxd/camerax-android.git --path .agents/skills/styles--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add arindamxd/camerax-android --skill styles -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install arindamxd/camerax-android styles --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/styles .gemini/skills/styles && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .gemini/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install arindamxd/camerax-android stylesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add arindamxd/camerax-android --skill styles -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/styles .github/skills/styles && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .github/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add arindamxd/camerax-android --skill styles -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install arindamxd/camerax-android styles --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/arindamxd/camerax-android.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/styles .opencode/skills/styles && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "styles" agent skill from https://github.com/arindamxd/camerax-android/tree/master/.agents/skills/styles into .opencode/skills/styles/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "styles", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
stylesA skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.
Styles is an agent skill from arindamxd/camerax-android. Use this skill to integrate the Jetpack Compose Styles API into an Android project. This skill guides you through upgrading dependencies, setting up component themes, making custom components styleable, and migrating existing layout properties to use unified styles. Migrate custom design system components, replace hard coded parameters with Style attributes, and use Modifier.styleable for interaction states.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files (for example `references/android/develop/ui/compose/designsystems/custom.md`, `references/android/develop/ui/compose/styles/fundamentals.md` and `references/android/develop/ui/compose/styles/state-animations.md`).
It sits in Mobile, covering Android development and Design systems. It works with Android and Jetpack Compose. The repository describes itself as: A Play Store camera app showing Jetpack CameraX APIs in Kotlin — install it, use it, copy the patterns. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7c36352. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Styles loads about 2.3k tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 105 tokens; SKILL.md has 684 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from arindamxd/camerax-android at commit 7c36352, republished under its Apache-2.0 licence (© arindamxd). 684 words, ~2,266 tokens.
.claude/skills/styles/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.compileSdk version 37 or higher.androidx.compose.foundation:foundation version 1.12.0-alpha01 or higher.2026.04.01 or higher.import androidx.compose.foundation.style.StyleYou must opt-in to the experimental API at the project level. Add the following block to your module's build.gradle.kts:
kotlin {
compilerOptions {
jvmTarget = JvmTarget.fromTarget("17")
freeCompilerArgs.add("-opt-in=androidx.compose.foundation.style.ExperimentalFoundationStyleApi")
}
}Refer to the official documentation to complete specific development tasks:
Theme.kt).LocalColorScheme, LocalTypography, or LocalShapes).androidx.compose.material.MaterialTheme, recommend migrating to Material 3 before proceeding.ComponentStylesCreate a new file named ComponentStyles.kt in your theme directory.
Define a top-level data class to hold your component styles, for example, the Jetsnack one is called JetsnackStyles:
<br />
object ExampleComponentStyles {
val customButtonStyle: Style = {
}
val customTextFieldStyle: Style = {
}
}
<br />
Expose this class through your custom theme with a static reference, don't use CompositionLocals here as it's not required.
<br />
@Immutable
class JetsnackTheme(
// other Design system properties
) {
companion object {
val colors: CustomThemingWithStyles.JetsnackColors
@Composable @ReadOnlyComposable
get() = LocalJetsnackTheme.current.colors
// ...
// add helper static reference
val styles: ComponentStyles = ComponentStyles
}
}
<br />
Provide extensions on StyleScope to reference theme tokens directly if they are exposed using CompositionLocals. For example:
<br />
val StyleScope.colors: JetsnackColors
get() = LocalJetsnackTheme.currentValue.colors
val StyleScope.typography: androidx.compose.material3.Typography
get() = LocalJetsnackTheme.currentValue.typography
val StyleScope.shapes: Shapes
get() = LocalJetsnackTheme.currentValue.shapes
<br />
For each custom component (for example, CustomButton), complete the following sequence:
backgroundColor, shape, textStyle, and contentPadding from the signature - anything that StyleScope supports.style: Style = Style to the function signature. Always ensure the default value is exactly Style (e.g., style: Style = Style) and not a specific style default like ChipStyleDefault or any other value.MutableStyleState using the interaction source. Update state fields (such as isEnabled) inside the Composable to track the state correctly.Modifier.styleable().Style instance in ComponentStyles.kt.Before Migration:
<br />
@Composable
fun CustomButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
backgroundColor: Color = JetsnackTheme.colors.brandLight,
disabledBackgroundColor: Color = JetsnackTheme.colors.brandSecondary,
shape: Shape = JetsnackTheme.shapes.extraLarge,
textStyle: TextStyle = JetsnackTheme.typography.labelLarge,
enabled: Boolean = true,
content: @Composable RowScope.() -> Unit,
) {
val interactionSource = remember { MutableInteractionSource() }
Row(
modifier
.clickable(onClick = onClick, indication = null, interactionSource = interactionSource)
.background(if (enabled) backgroundColor else disabledBackgroundColor, shape)
.defaultMinSize(58.dp, 40.dp),
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically,
content = content,
)
}
<br />
After Migration:
<br />
// Exposed via ComponentStyles.kt
object ComponentStyles {
val buttonStyle = Style {
background(colors.brandLight)
shape(shapes.extraLarge)
minWidth(58.dp)
minHeight(40.dp)
textStyle(typography.labelLarge)
disabled {
background(colors.brandSecondary)
}
}
}
@Composable
fun CustomButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
style: Style = Style,
enabled: Boolean = true,
content: @Composable RowScope.() -> Unit,
) {
val interactionSource = remember { MutableInteractionSource() }
val styleState = rememberUpdatedStyleState(interactionSource) {
it.isEnabled = enabled
}
Row(
modifier
.clickable(onClick = onClick, indication = null, interactionSource = interactionSource)
.styleable(styleState, JetsnackTheme.styles.buttonStyle, style),
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically,
content = content,
)
}
<br />
© arindamxd, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in .agents/skills/styles of arindamxd/camerax-android.
Open the folder on GitHubat commit 7c36352
We found 6 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 4 other GitHub owners. This page covers the copy in arindamxd/camerax-android, which our catalogue first saw on October 7, 2026.
Styles next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Styles this skillarindamxd/camerax-android | 132 | 4 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Jetpack Compose Expertaldefy/compose-skill | 596 | — | ~4.8k | Automated safety check: Pass | Custom licence | |
| STS Amethyst Launcher Design SystemModinMobileSTS/SlayTheAmethystModded | 400 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Hz Metavrx UI Setmeta-quest/agentic-tools | 213 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Cometchat Android V6 Compose Componentscometchat/cometchat-skills | 129 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Cometchat Android V6 Corecometchat/cometchat-skills | 129 | — | ~5.5k | Automated safety check: Pass | MIT |
aldefy/compose-skill
Guides Jetpack Compose and Compose Multiplatform work across Android, Desktop, iOS and web, plus Android TV, Material 3 motion, paging, navigation and design-to-code.
ModinMobileSTS/SlayTheAmethystModded
Design system imported from the SlayTheAmethyst Android Jetpack Compose launcher: Material 3 surfaces, user-selected seed colors, light and dark themes and typography rules.
meta-quest/agentic-tools
Builds app UI for Meta VR and Horizon OS with the MetaVrx UI Set, a Jetpack Compose component library and design system.
cometchat/cometchat-skills
The closed catalog of CometChat Android v6 UI Kit components for the Jetpack Compose cohort — what exists, the composable import for each, the param shape (onX lambdas, hideX booleans, @Composable…
cometchat/cometchat-skills
Foundational rules for the CometChat Android UI Kit v6 — the two UI cohorts and their artifacts, credentials via the gitignored assets settings file, initFromSettings → login → render ordering, the…
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
arindamxd/camerax-android
Provides a complete workflow for implementing verified email retrieval on Android Credential Manager API.
arindamxd/camerax-android
A skill your agent uses to migrate your Jetpack Compose app to add adaptive edge-to-edge support and troubleshoot common issues.
arindamxd/camerax-android
Provide technical guidance for Android camera development with CameraX.
arindamxd/camerax-android
Provides instructions and architectural patterns for migrating Android TV applications from legacy Leanback UI Toolkit, Android Views, or Support Fragments to Jetpack Compose for TV (androidx.tv).
arindamxd/camerax-android
Provides a structured workflow for migrating an Android XML View to Jetpack Compose.
arindamxd/camerax-android
A skill your agent uses when upgrading or migrating an Android project from any legacy Google Play Billing Library (PBL) version to the latest stable version of PBL.
Works with
Categories
A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project. Styles is an agent skill from arindamxd/camerax-android. Use this skill to integrate the Jetpack Compose Styles API into an Android project.
Styles fits situations like: integrate the Jetpack Compose Styles API into an Android project; tasks that involve Android development; tasks that involve Design systems.
Run `npx skills add arindamxd/camerax-android --skill styles -a claude-code`. Or copy the skill folder (.agents/skills/styles in arindamxd/camerax-android) into .claude/skills/styles in your project. Claude Code loads it when a task matches its description.
Run `npx skills add arindamxd/camerax-android --skill styles -a codex`. Or copy the skill folder (.agents/skills/styles in arindamxd/camerax-android) into .agents/skills/styles in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add arindamxd/camerax-android --skill styles -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/styles, .gemini/skills/styles, .github/skills/styles and .opencode/skills/styles in your project.
SKILL.md names no scripts, command-line tools or credentials: Styles is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Styles is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Styles: Jetpack Compose Expert (aldefy/compose-skill, 596 stars), STS Amethyst Launcher Design System (ModinMobileSTS/SlayTheAmethystModded, 400 stars), Hz Metavrx UI Set (meta-quest/agentic-tools, 213 stars) and Cometchat Android V6 Compose Components (cometchat/cometchat-skills, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
arindamxd (a GitHub user) maintains it in arindamxd/camerax-android, which has 132 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 2, 2026.
Source: arindamxd/camerax-android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.