Every visible entry resolves to a real demo and source location.
Interactive. Inspectable. Offline.
Material 3 you can experience and inspect.
Material Design is an Android reference app for exploring working Material 3 components, foundations, adaptive behavior, expressive motion, reviewed APIs, and the source behind every catalog entry.
App, core, feature, and sample ownership stays explicit.
Bookmarks, recents, themes, accents, and motion preferences stay on-device.
The Android reference app
A complete product shell around working Material examples.
The app demonstrates how components behave inside a coherent Material 3 Expressive product. It does not simulate ratings, installs, accounts, lessons, or placeholder examples.
Explore
Find featured, bookmarked, recently added, and recently viewed references without fabricated popularity signals.
Catalog
Browse component categories, apply filters, and open every installed working demonstration.
APIs
Separate stable and experimental APIs from stable-artifact and alpha-only availability.
Foundations
Inspect color, typography, shape, motion, elevation, layout, and accessibility as connected systems.
Instant search
Search official names, aliases, summaries, categories, guidance, and API symbols with deterministic ranking.
Detail and inspect
Use preview, guidance, inspect, and API views to connect behavior, intent, metadata, and repository source.
Validated bundled catalog
Every installed reference currently in the app.
The catalog contains 48 components and 7 foundations. Forty-nine entries map directly to official APIs; six clearly identified project implementations supplement the official system.
Actions7 references
Communication10 references
Containment7 references
Navigation11 references
Selection and input11 references
Foundations and layout9 references
Architecture and runtime
Boundaries that make every reference traceable.
A small application composition root connects typed routes, immutable state, a validated offline catalog, local preferences, feature screens, and domain-owned sample modules.
- 1
Start and compose
MainActivitycreates the app container, catalog loader, user-library repository, andGalleryViewModel. - 2
Load and validate
The bundled JSON catalog is parsed off the main thread and validated before entries are published.
- 3
Publish independent state
Catalog loading, search, category, destination, API stability, library, appearance, and one-shot events use focused flows.
- 4
Adapt the shell
Compact floating navigation or expanded navigation is selected from current window space, with state preserved across resizing.
- 5
Resolve a stable identity
Typed detail routes carry a catalog ID, then connect its metadata and source locations to exactly one registered demo.
- 6
Persist locally
Preferences DataStore stores bookmarks, recent IDs, theme state, accent selection, and reduced-motion choice.
app/Composition root
Activity, typed navigation, adaptive shell, search, ViewModel, dependency container, and demo registry.
core/Shared contracts
Catalog loading and validation, deterministic search, DataStore state, theming, colors, and expressive motion.
feature/Product destinations
Explore, Catalog, APIs, Foundations, Detail, Settings, and About surfaces.
samples/Copyable references
State-hoisted samples grouped under actions, communication, containment, navigation, foundations, and selection.
Personal and private
Rich local settings without an account or backend.
Appearance and library state are useful inside the app, stay local, and are excluded from Android cloud backup and device-transfer restoration.
Theme modes
Follow the system or choose light, dark, and OLED presentation.
Color choices
Use Material You dynamic color, monochrome, curated accents, or custom color input where supported.
Theme presets
Choose the default system, Dracula, Tokyo Night, or custom theme treatment.
Reduced motion
Replace decorative spatial and opacity motion while preserving state, feedback, haptics, and safety timing.
Bookmarks and recents
Save references and return to recently viewed components without sending activity anywhere.
Offline by construction
The app declares no internet permission, analytics SDK, advertising SDK, telemetry, or remote catalog dependency.
Engineering and release quality
The catalog, code, app shell, and release metadata verify one another.
Focused unit, instrumentation, catalog, design-system, backup-rule, and build-logic tests support a release flow with lint, production-string checks, version checks, R8 optimization, resource shrinking, and optional local signing.
Stable IDs, canonical names, aliases, demo keys, source files, symbols, guidance, official links, API metadata, and pinned artifacts remain aligned.
ViewModel search, library state, typed detail routes, destination changes, and representative adaptive navigation flows have automated coverage.
Tests protect backup exclusions, while the manifest and dependency set remain free of app network, tracking, and advertising capabilities.
Release builds run lint vital analysis, R8 optimization, resource shrinking, deterministic APK naming, and local keystore signing when configured.
Learn the system, not a screenshot
Reason from intent to verification.
Material quality comes from relationships between hierarchy, content, state, typography, color, shape, space, motion, accessibility, and adaptation.
Build one connected system
Choose semantic roles and component relationships before decorative values.
Model behavior and state
Rest, focus, press, selection, loading, success, error, cancellation, and interruption all belong to the design.
Adapt by available space
Recompose navigation and grouping for the current window instead of inferring capability from a device label.
One intent, independent implementations
Use each project surface for its actual job.
The Android app is the downloadable product and primary working reference. Documentation, the stable browser showcase, Material Web workspace, and skills support learning and implementation without sharing runtime code or release schedules.
Experience and inspect working components
Search, interact, read guidance, review API metadata, and locate modular Compose source.
Open Android documentationExplore a framework-free browser reference
Inspect themes, components, widgets, navigation, feedback, typography, and design tokens.
Open the browser showcaseTranslate intent for the web
Use semantic HTML, web-owned tokens and APIs, responsive layouts, and browser-specific accessibility.
Open Material Web guidanceBrowsable and agent-ready skills
The same current guidance in HTML and Markdown.
HTML pages are designed for people to browse. Matching Markdown files under skills/ provide the same project contracts for coding agents and development harnesses.
Developer
Built by Tremors.
A personal educational project focused on thoughtful interfaces, inspectable implementation, and practical guidance for humans and coding agents.

Credits
Built on excellent platform and open-source work.
Material Design remains an independent educational project. Each referenced project belongs to its respective authors and is used under its own license.
Android app
Built with Kotlin, Jetpack Compose, Material 3, Material 3 Adaptive, AndroidX Lifecycle, Navigation Compose, Preferences DataStore, Kotlin Coroutines, and Kotlin Serialization.
Design and website
Guidance builds on Google Material Design. The site uses semantic HTML, CSS, vanilla JavaScript, Roboto Flex, and Material Symbols.
Testing and build
Android verification uses JUnit, AndroidX Test, Espresso, Compose UI testing, Kotlin Coroutines Test, Gradle TestKit, Android lint, R8, and Android build tools.
License and source
The project source is available under the MIT License. Source, changelog, release notes, privacy policy, and active work remain public on GitHub.
Frequently asked questions
What this project is and how it behaves.
Is the Android app offline?
Yes. The manifest does not declare android.permission.INTERNET. The catalog is bundled in the APK and the app includes no ads, analytics, or tracking SDKs.
What information stays on the device?
Bookmarks, recent component IDs, theme mode, theme preset, accent choice, custom color values, and reduced-motion preference are stored in Preferences DataStore and excluded from cloud backup and device transfer.
Are all catalog entries working?
Yes. Every visible entry has a stable ID, exact official name, guidance, reviewed API metadata, real source paths, and exactly one registered demonstration. Incomplete ideas stay in the task backlog.
Are project experiments official Material APIs?
No. The catalog explicitly separates official APIs from project implementations, and separately models artifact availability and individual API stability.
Does Android share code with the web implementations?
No. The surfaces share design intent, terminology, states, accessibility goals, and adaptive behavior. Each platform owns its code, tokens, APIs, state, tests, and release lifecycle.
How can I contribute or report a problem?
Review the developer guide and active tasks, then use GitHub Issues for bugs, missing references, documentation gaps, and accessibility feedback.
First public Android release
Explore Material 3 on Android.
Install the APK on Android 7.0 or newer. No account, network permission, or online service is required by the app.