COMPOSE UI LIBRARY

Asgard

Shared components. Your app’s theme.

Asgard is my Jetpack Compose component library, built on Expressive Material 3. It grew out of Thor’s design system and supplies reusable structure and motion while taking colors, typography and shapes from the host app’s MaterialTheme.

01

Reuse the interaction, keep the visual identity

Headers, navigation and settings often need the same behavior across apps, but each app still needs its own visual identity. Asgard extracts that shared component layer from Thor without imposing Thor’s palette or font.

The host provides its MaterialTheme. Components read those theme values, so a change to the app’s colors, typography or shapes flows through the shared UI. This also makes the browser gallery useful for checking components under different themes.

A header inside your app’s themeKotlin
// Inside your existing MaterialTheme:
AsgardHeader(
    title = "Apps",
    icon = Icons.Rounded.Dashboard,
)

A small excerpt from the README’s quick start. Supply the icon from your app and follow the full setup for dependencies and imports.

02

From navigation to data displays

The public library includes headers, navigation bars and rails, segmented controls, cards, settings rows and charts. Chart APIs include line charts, stacked bars and timelines for screens that need to explain changing values.

Icons are supplied by the caller as ImageVector values. Apart from the header’s back arrow, Asgard does not bundle an icon pack. An app can keep using its chosen icon set instead of taking on a second one through the component library.

03

Check the target and version before integrating

The documented Kotlin Multiplatform targets are Android and wasmJs. The umbrella Maven coordinate is com.trinadhthatakula:asgard; Gradle selects the platform artifact for the consuming target.

Use the README for the current dependency example and the migration guide when upgrading. For a Thor extension whose host already supplies Asgard, the README documents a compileOnly dependency to avoid packaging a duplicate library.

A few practical questions

Does Asgard replace MaterialTheme?

No. It reads the host app’s MaterialTheme and adds reusable components around it. The app continues to own its colors, typography and shapes.

Can I try the components before integrating?

Yes. The public wasmJs gallery runs in a browser and exposes component controls, light and dark themes, and seed-color changes.

Does it support every Compose Multiplatform target?

The README documents Android and wasmJs. Check the repository before planning an integration on another target.

HAVE SOMETHING IN MIND?

Let’s make it happen.

A new app, an interesting role, or a good conversation.