원클릭으로
ui-components
// Structure and routing guide for composeApp screens, components, and their relationships.
// Structure and routing guide for composeApp screens, components, and their relationships.
Audit repo dependencies by default and only apply library upgrades when explicitly requested.
Use Gradle commands to build and run the app by platform.
How to run, write, and debug local UI tests for Android, iOS, and browser builds.
How to list, pick, and boot Android emulators and iOS simulators for local app runs.
Guidance on where to place different types of code in this Kotlin Multiplatform project.
Guidelines for where to place different types of code in a Kotlin Multiplatform project.
| name | ui-components |
| description | Structure and routing guide for composeApp screens, components, and their relationships. |
Use this skill when working on UI in composeApp, especially to decide where to place new screens/components and how they connect.
composeApp/src/commonMain/kotlin/tech/arnav/twofac/screens/composeApp/src/commonMain/kotlin/tech/arnav/twofac/components/<domain>/composeApp/src/commonMain/kotlin/tech/arnav/twofac/navigation/NavigationRoutes.ktcomposeApp/src/commonMain/kotlin/tech/arnav/twofac/App.ktCurrent component domains:
components/accountscomponents/homecomponents/otpcomponents/securitycomponents/settingsHomeScreenAccountsScreenAddAccountScreenAccountDetailScreencomponents/* imports).SettingsScreenPlatformSettingsContent.PlatformSettingsContent (expect/actual)commonMain: expect declaration.desktopMain: tray/menu-bar toggle + quit button card.androidMain, iosMain, wasmJsMain: currently no-op actuals.HomeScreen
components/home/HomeLoadingStatecomponents/home/HomeEmptyStatecomponents/home/HomeLockedStatecomponents/otp/HomeOtpListSectioncomponents/security/PasskeyDialogAccountsScreen
components/accounts/AccountsLockedStatecomponents/accounts/AccountsErrorStatecomponents/accounts/AccountsListContentcomponents/security/PasskeyDialogAddAccountScreen
components/accounts/OtpUriInputFieldcomponents/accounts/QrImportActionscomponents/accounts/AddAccountPasskeyFieldcomponents/accounts/InlineErrorMessageSettingsScreen
components/settings/StorageLocationCardcomponents/settings/RememberPasskeyCardcomponents/settings/BackupProvidersCardcomponents/settings/CompanionSyncCardcomponents/settings/DeleteStorageDialogcomponents/security/PasskeyDialogscreens/PlatformSettingsContentAccountDetailScreen
HomeOtpListSection → renders OTPCard rows.AccountsListContent → renders AccountListItem rows.BackupProvidersCard → renders BackupProviderRow rows.components/<domain>/ComponentName.kt.components/accountscomponents/homecomponents/otpcomponents/securitycomponents/settingscomponents/*.tech.arnav.twofac.components.<domain>.ComponentName.screens/ (e.g. NewFeatureScreen.kt).navigation/NavigationRoutes.kt using @Serializable object/data class.App.kt NavHost with a composable<...> entry.TopLevelDestinationshouldShowBottomBar, isSelected)expect/actual only when platform API differences are required.screens/ and reusable UI in components/<domain>/?NavigationRoutes.kt?App.kt navigation wiring updated?components root?