compose-foundation

Build Compose UI toolkits using Foundation primitives without Material dependencies.

Updated Mar 20, 2026
One-click install
npx skills add https://github.com/ClankerGuru/skills --skill compose-foundation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: compose-foundation
Source: https://github.com/ClankerGuru/skills/tree/main/compose-foundation
Command: npx skills add https://github.com/ClankerGuru/skills --skill compose-foundation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Build a complete UI toolkit using only Compose Foundation + UI layers. Zero Material dependency. This is how you build real design systems.

Core Features & Use Cases

  • Foundation primitives such as Row, Column, BasicText, and BasicTextField can be used without Material dependencies.
  • Create design systems with CompositionLocal theming, tokens, and custom indications to replace Material components.
  • Build cross-platform UI components that rely on Foundation primitives and avoid Material imports.

Quick Start

Start by importing the Foundation primitives in your Compose project and avoiding Material imports to begin building your theme and components.

Frequently Asked Questions about compose-foundation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a custom UI in Compose without Material dependencies?

To build a custom UI in Compose without Material dependencies, you use Foundation primitives like Row, Column, and BasicText combined with CompositionLocal theming and custom indications to construct your own design system.

Can I use CompositionLocal theming for a Material-free design system in Kotlin?

Yes, you can use CompositionLocal theming for a Material-free design system in Kotlin by defining your own theme tokens and passing them down the composition tree to style Foundation components without importing Material libraries.

What is the best way to replace Material components with Foundation primitives in Compose?

The best way to replace Material components with Foundation primitives in Compose is to map UI elements to BasicText and BasicTextField, then apply custom indication patterns and CompositionLocal tokens to handle styling and interactions.

Does a Foundation-only Compose UI toolkit work across Kotlin Multiplatform contexts?

Yes, a Foundation-only Compose UI toolkit works across Kotlin Multiplatform contexts because Foundation primitives are multiplatform compatible, allowing you to build cross-platform components without relying on Android-specific Material imports.

When should I avoid Material and use a Foundation-only approach for my Compose design system?

You should avoid Material and use a Foundation-only approach for your Compose design system when you need a fully custom visual identity, want to eliminate Material dependency overhead, or are building highly specialized cross-platform components.

How do I implement custom indication patterns without Material in Jetpack Compose?

To implement custom indication patterns without Material in Jetpack Compose, you replace Material's default ripple with your own indication logic applied directly to Foundation primitives like BasicText to handle user interactions visually.