Skip to content

Design Support Library

Mitchell Bryson edited this page Aug 5, 2026 · 136 revisions

Overview

At its I/O 2015 conference, Google announced the Design Support Library, which brought a lot of material design components — including a navigation drawer view, floating labels, floating action buttons, snackbars, and a framework to tie motion and scroll events — to Android apps. In 2018 that library was superseded by Material Components for Android (com.google.android.material:material) as part of the AndroidX migration, and this page now covers the successor library. The pre-AndroidX com.android.support:design artifact ended at version 28.0.0 and should no longer be used.

Compose-first note: As announced at Google I/O 2026, the View-based Material Components for Android library is in maintenance mode — there are no more planned feature releases, and Google now recommends Jetpack Compose with Compose Material 3 (androidx.compose.material3:material3) for new UI work. The Views library still receives maintenance releases and remains the correct dependency for existing View-based apps like the ones covered in these guides.

Features

The Material Components library provides the following key components:

  1. FloatingActionButton - A round button at the bottom right denoting a primary action on your interface. Promoting key actions within a modern material design app.
  2. TabLayout - An easier way to put tabs around a ViewPager which acts as sliding tabs between fragments within an app.
  3. NavigationView - An easier way to provide a modern navigation drawer from the left with a header and a series of navigation items.
  4. SnackBar - Shown on the bottom of the screen and contains text with an optional single action. They automatically time out after the given time length by animating off the screen.
  5. TextInputLayout - Float the hint above any text field as the user is entering information and/or add a character counter.
  6. CoordinatorLayout - Provides an additional level of control over scroll and touch events between child views.
    • AppBarLayout allows your toolbar and other views to react to scroll events.
    • CollapsingToolbarLayout extend this to allow the toolbar to collapse as the user scrolls through a view.
    • Bottom Sheets to expose a sheet of material that slides up from the bottom of the screen.
  7. Bottom Navigation Views for easily switching from 3 to 5 tabbed items.
  8. Vector Drawables to reduce the need to include images for every density size.

Note that CoordinatorLayout and vector drawable support ship as separate AndroidX libraries (androidx.coordinatorlayout and androidx.vectordrawable) that the Material Components library depends on.

Setup

Make sure the repositories section of your build configuration includes Google's Maven repository google() and mavenCentral():

repositories {
    google()
    mavenCentral()
}

The Material Components library depends on the AndroidX AppCompat library. If your project still uses the pre-AndroidX support libraries, check out this migration guide. Per the library's getting started guide, current releases require compileSdkVersion 35 or later and minSdkVersion 21 or later:

android {
   compileSdkVersion 35
}

Add these dependencies to your app/build.gradle file:

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.1'
    implementation 'com.google.android.material:material:1.14.0'
}

Check Google's Maven repository for the latest version of the library. Your activities should extend AppCompatActivity, and your app theme should inherit from a Theme.Material3.* parent (version 1.5.0 or later) to get the current Material 3 component styles — see the Styles and Themes guide.

If you are using the RecyclerView, CardView, or any other external dependencies make sure to update them. The RecyclerView for instance has features that are used with the Material Components library.

dependencies {
    implementation 'androidx.recyclerview:recyclerview:1.4.0'
}

Adding Vector Drawable Library

Vector drawables are rasterized at compile time into PNG assets for very old devices by default. Since the Material Components library requires minSdkVersion 21 or later — and vector drawables are natively supported from API 21 — new projects generally need no extra configuration. If you support a legacy project, you can enable the AndroidX vector drawable support explicitly:

android {
   defaultConfig {
     vectorDrawables.useSupportLibrary = true
    }
 }

The AndroidX libraries can also be added explicitly if needed:

dependencies {
    implementation 'androidx.vectordrawable:vectordrawable:1.2.0' // VectorDrawableCompat
    implementation 'androidx.vectordrawable:vectordrawable-animated:1.2.0' // AnimatedVectorDrawableCompat
}

Check out the vector drawables guide for usage details.

Adding Transitions Library

The Transitions API was first introduced in Android 4.4 (KitKat) and the AndroidX library back-ports view-hierarchy animations to earlier releases. To use this library, you need to add it explicitly:

dependencies {
    implementation 'androidx.transition:transition:1.7.0'
}

Adding Annotations Library

To leverage the annotations library, you can also explicitly add it to your Gradle file. Adding the AppCompat or Material Components library implicitly adds it:

dependencies {
    implementation 'androidx.annotation:annotation:1.10.0'
}

Adding Percent Support Library

Earlier revisions of this page covered PercentRelativeLayout and PercentFrameLayout from the percent support library. That library is deprecated — use ConstraintLayout for percentage-based dimensions and complex layouts instead.

Sample Code

If you want to see how the various components come together, check out the Material Components catalog app, which showcases every component in the library. The older cheesesquare sample demonstrates the original design support library patterns but uses the outdated pre-AndroidX support library — check the migration guide if you want to copy code from it.

Change Log

For changes and the latest versions of the library, visit the official releases page. For the AndroidX libraries, see the versions page. Remember that AndroidX and com.google.android.material replaced all of the old support libraries.

References

Finding these guides helpful?

We need help from the broader community to improve these guides, add new topics and keep the topics up-to-date. See our contribution guidelines here and our topic issues list for great ways to help out.

Check these same guides through our standalone viewer for a better browsing experience and an improved search. Follow us on twitter @codepath for access to more useful Android development resources.

Clone this wiki locally