Shared Jetpack Compose design library for the Yui apps: theme, fonts, buttons, fields, shapes
Find a file
2026-11-04 19:57:39 +02:00
gradle Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
src/main Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
.gitignore Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
build.gradle.kts Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
gradle.properties Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
gradlew Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
gradlew.bat Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
README.md Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00
settings.gradle.kts Initial commit: shared Yui design library (theme, fonts, buttons, fields, shapes) 2026-11-04 19:57:39 +02:00

yui-design

Shared Jetpack Compose design library for the Yui apps (Kitchen, YuiNote, ...): one palette, one set of buttons and fields, one look. Change the palette or a button here once, and every app gets it.

  • Package: xyz.whiledo.yui.design, Gradle artifact xyz.whiledo.yui:yui-design
  • Android library, minSdk 34, Material 3 + Compose (BOM 2026.09.00)

What is inside

Area Contents
theme/ YuiTheme, ThemeMode, YuiShapes, light/dark colour schemes (Raspberry / Blush palette), YuiExtraColors (extra), YuiTypography
fonts (res/font) Rubik (headings), Nunito (body), Lobster (logo only), all with Cyrillic
components/Buttons.kt PrimaryButton, SecondaryButton, CompactButton, morphing pill shape
components/TextFields.kt YuiTextField, numberKeyboard
components/Chips.kt YuiFilterChip
components/EmptyState.kt EmptyState
components/ExpressiveShapes.kt, WavyProgress.kt CookieShape, BloomShape, WavyProgressBar
components/Modifiers.kt pressScale, pressClickable, enterAnimation, shimmer, sharedPhoto, dimmed

Anything that knows about an app's own data (recipes, notes, photos) stays in that app.

Using it in an app

Add the library as a git submodule and include it as a composite build:

git submodule add https://git.whiledo.xyz/whileAI/yui-design.git yui-design

settings.gradle.kts:

includeBuild("yui-design")

app/build.gradle.kts:

dependencies {
    implementation("xyz.whiledo.yui:yui-design")
}

Then wrap the UI in YuiTheme(mode) { ... }. Fonts are in the library's own resources, so from app code they are xyz.whiledo.yui.design.R.font.* (the app's own R does not contain them).

After cloning an app: git clone --recurse-submodules ... (or git submodule update --init).

Updating

Change the code here, commit and push this repo, then in each app bump the submodule pointer (git add yui-design && git commit). An app only gets the new look when it commits that pointer.

Building on its own

$env:JAVA_HOME = 'C:\Program Files\Android\Android Studio\jbr'
.\gradlew.bat assembleDebug

local.properties (with sdk.dir) is not committed.