Skip to main content
The lumo.properties file is the main configuration file for the Lumo UI plugin. It must be located in the root directory of your project and contains essential settings for the plugin to function correctly.

File Location

The configuration file must be named lumo.properties and placed in your project’s root directory:
your-project/
├── lumo.properties
├── build.gradle.kts
└── ...

Configuration Properties

ThemeName

ThemeName
string
required
The name of your theme object. This will be used as the name for the generated theme composable.Example: AppTheme, MyAppTheme, CustomThemeValidation: Must be a valid Kotlin identifier.

ComponentsDir

ComponentsDir
string
required
The relative path from the project root to the directory where UI components will be generated.Important: This path must match the package structure defined in PackageName.Validation Rules:
  • Directory must exist
  • Path must align with the package name structure
  • Use forward slashes (/) for path separators

PackageName

PackageName
string
required
The Kotlin package name for the generated UI components.Important: The package name must correspond to the directory structure specified in ComponentsDir.Validation Rules:
  • Must be a valid Kotlin package name
  • Must match the directory structure in ComponentsDir
  • Uses dot (.) separators

KotlinMultiplatform

KotlinMultiplatform
boolean
default:"false"
Set to true if your project uses Kotlin Multiplatform. This affects how the plugin generates components.Values: true or falseNote: This property is optional and defaults to false if not specified.

Example Configurations

# Lumo UI Plugin
# This file is used to store configurations for the Lumo UI Plugin
# Do not delete this file

ThemeName=AppTheme
ComponentsDir=app/src/main/java/com/example/myapp/ui
PackageName=com.example.myapp.ui

Validation Rules

The Lumo UI plugin validates your configuration to ensure everything is set up correctly:

Directory Existence

The directory specified in ComponentsDir must exist before running the plugin:
# Make sure the directory exists
mkdir -p path/to/your/components/dir

Package and Directory Alignment

The plugin validates that your ComponentsDir matches your PackageName. The directory structure must reflect the package hierarchy: Example:
  • PackageName: com.example.myapp.ui
  • ComponentsDir: Must end with com/example/myapp/ui
Valid ComponentsDir values:
  • app/src/main/java/com/example/myapp/ui
  • shared/src/commonMain/kotlin/com/example/myapp/ui
Invalid ComponentsDir values:
  • app/src/main/java/com/example/ui ✗ (doesn’t match package)
  • app/src/main/java/ ✗ (incomplete path)

Required Properties

All of the following properties are required:
  • ThemeName
  • ComponentsDir
  • PackageName
Missing any of these will result in an error when running the plugin.

Creating the Configuration File

You can create the configuration file manually or use the plugin’s initialization command:
./gradlew lumoUi --init
This will generate a default lumo.properties file with placeholder values that you need to update:
# Lumo UI Plugin
# This file is used to store configurations for the Lumo UI Plugin
# Do not delete this file

ThemeName=AppTheme
ComponentsDir=<<relative-path-to-components-dir-from-root>>
PackageName=<<component-files-package-name>>
# Uncomment this line if you are using Kotlin Multiplatform
# KotlinMultiplatform=false

Troubleshooting

Error: Plugin is not setup

If you see this error, the lumo.properties file doesn’t exist in your project root. Run:
./gradlew lumoUi --init

Error: Missing required configs

This means one or more required properties are missing from your configuration file. Ensure all required properties are present:
  • ThemeName
  • ComponentsDir
  • PackageName

Error: Components directory does not exist

The directory specified in ComponentsDir must exist. Create it using:
mkdir -p your/components/directory

Warning: Directory and package name do not match

This warning indicates that your ComponentsDir path doesn’t align with your PackageName. Review the Package and Directory Alignment section to fix this.

Next Steps

Theme Customization

Learn how to customize colors, typography, and theme settings

Directory Structure

Understand the expected directory structure for your components

Build docs developers (and LLMs) love