Agent skill

kotlin-composable-preview

Generate comprehensive @Preview functions for Jetpack Compose composables. Analyzes component parameters, states, and dependencies to create previews covering all visual states, edge cases, and configurations.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/kotlin-composable-preview

SKILL.md

Kotlin Composable Preview Generator

Skill for generating production-quality @Preview functions for Jetpack Compose UI components.

When to Use

  • Adding previews to new Composable functions
  • Enhancing existing previews with more state coverage
  • Creating previews for components with sealed class states
  • Generating multi-configuration previews (light/dark, device sizes)

Preview Categories

  1. Simple Preview - Basic single-state preview
  2. Multi-State Preview - Separate @Preview for each state (sealed class, enum)
  3. Variant Preview - Column/Row showing all variants in one preview
  4. Interactive Preview - Using PreviewParameter for data-driven previews
  5. Configuration Preview - Device, font scale, UI mode configurations

Generation Workflow

  1. Analyze Composable signature

    • Extract parameters (required/optional)
    • Identify state classes (data class, sealed class, enum)
    • Find callback parameters (lambdas)
  2. Identify preview requirements

    • Check for HazeState dependency → needs hazeSource setup
    • Check for modifier patterns → use appropriate sizing
    • Check for sealed class states → generate preview for each subtype
  3. Generate previews

    • Follow naming: {ComposableName}Preview, {ComposableName}{State}Preview
    • Use private modifier for preview functions
    • Add dark background wrapper when needed
    • Provide realistic sample data

Preview Patterns Reference

See references/preview-patterns.md for detailed examples.

Output Guidelines

Aspect Guideline
Naming {ComposableName}Preview, {ComposableName}{State}Preview
Visibility private for preview functions
Background Use Box(Modifier.background(Black)) for dark-themed components
HazeState Use rememberHazeState() + hazeSource() setup
Callbacks Use empty lambdas {} for onClick, onDismiss
Sample Data Use realistic Vietnamese text when appropriate

Quality Checklist

  • All sealed class/enum states have dedicated previews
  • Required parameters have realistic sample values
  • Preview renders correctly in Android Studio
  • Dark backgrounds used for dark-themed components
  • HazeState properly configured when needed
  • Proper imports added

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results