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.

No internet permission No ads or trackers Android 7.0+ MIT licensed
55 working references

Every visible entry resolves to a real demo and source location.

16 Android modules

App, core, feature, and sample ownership stays explicit.

Local-first state

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
  • Buttons
  • Button groups
  • Toggle buttons
  • Split buttons
  • Icon buttons
  • Floating action buttons
  • FAB menu
Communication10 references
  • Badges
  • Basic alert dialogs
  • Dialogs
  • Bottom sheets
  • Snackbars
  • Tooltips
  • Menus
  • Grouped dropdown menus
  • Progress indicators
  • Loading indicators
Containment7 references
  • Cards
  • Lists
  • Segmented list items
  • Carousels
  • Hero carousels
  • Pull to refresh
  • Swipe to dismiss
Navigation11 references
  • Top app bars
  • Bottom app bars
  • Flexible bottom app bars
  • Navigation bars
  • Short navigation bars
  • Navigation rails
  • Wide navigation rails
  • Navigation drawers
  • Tabs
  • Scrollable tab row variants
  • Floating toolbars
Selection and input11 references
  • Chips
  • Segmented buttons
  • Selection controls
  • Sliders
  • Vertical sliders
  • Date pickers
  • Time pickers
  • Time picker dialogs
  • Text fields
  • Search
  • Top search bars and full-screen search
Foundations and layout9 references
  • Color
  • Shape
  • Motion
  • Elevation
  • Layout
  • Accessibility
  • Typography
  • Dividers
  • Scaffold
Review implementation status and platform boundaries

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. 1

    Start and compose

    MainActivity creates the app container, catalog loader, user-library repository, and GalleryViewModel.

  2. 2

    Load and validate

    The bundled JSON catalog is parsed off the main thread and validated before entries are published.

  3. 3

    Publish independent state

    Catalog loading, search, category, destination, API stability, library, appearance, and one-shot events use focused flows.

  4. 4

    Adapt the shell

    Compact floating navigation or expanded navigation is selected from current window space, with state preserved across resizing.

  5. 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. 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.

Read the repository development guide

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.

Read the complete privacy policy

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.

Catalog validation

Stable IDs, canonical names, aliases, demo keys, source files, symbols, guidance, official links, API metadata, and pinned artifacts remain aligned.

State and navigation

ViewModel search, library state, typed detail routes, destination changes, and representative adaptive navigation flows have automated coverage.

Privacy rules

Tests protect backup exclusions, while the manifest and dependency set remain free of app network, tracking, and advertising capabilities.

Release build

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.

Follow the complete expressive development guide

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.

Android reference

Experience and inspect working components

Search, interact, read guidance, review API metadata, and locate modular Compose source.

Open Android documentation
Stable showcase

Explore a framework-free browser reference

Inspect themes, components, widgets, navigation, feedback, typography, and design tokens.

Open the browser showcase
Independent workspace

Translate intent for the web

Use semantic HTML, web-owned tokens and APIs, responsive layouts, and browser-specific accessibility.

Open Material Web guidance

Browsable 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.

Tremors avatar

Tremors

Software engineer building native Android products, design-system references, and independent web experiences.

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.

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.