Book Image

Learning Material Design

By : Kyle Mew, Nadir Belhaj
Book Image

Learning Material Design

By: Kyle Mew, Nadir Belhaj

Overview of this book

Google's Material Design language has taken the web development and design worlds by storm. Now available on many more platforms than Android, Material Design uses color, light, and movements to not only generate beautiful interfaces, but to provide intuitive navigation for the user. Learning Material Design will teach you the fundamental theories of Material Design using code samples to put these theories into practice. Focusing primarily on Android Studio, you’ll create mobile interfaces using the most widely used and powerful material components, such as sliding drawers and floating action buttons. Each section will introduce the relevant Java classes and APIs required to implement these components. With the rules regarding structure, layout, iconography, and typography covered, we then move into animation and transition, possibly Material Design's most powerful concept, allowing complex hierarchies to be displayed simply and stylishly. With all the basic technologies and concepts mastered, the book concludes by showing you how these skills can be applied to other platforms, in particular web apps, using the powerful Polymer library.
Table of Contents (17 chapters)


Welcome to Learning Material Design, a comprehensive guide to the latest and hottest design philosophy for mobile and web applications. More than just a design language, Material Design represents a powerful shift in how modern digital interfaces look and behave. Based largely on traditional design principles, Material Design brings a tactile look and feel to apps and pages, giving screen elements physical properties such as fluid, realistic motion and the ability to depict a third dimension using shadows.

Covering all major design principles and guidelines and including enough of the technologies and code required to implement them, the book is designed so that you can get started with building your own material interfaces from the very beginning.

All the commonly used material components, such as cards and sliding drawers, are covered in terms of both design guidelines and code structures. This element-specific approach is coupled with details on how Material Design can be applied to interfaces in general, and how to use these guidelines to create material transitions and navigation processes.

Although concentrating largely on mobile interface design and using the powerful Android Studio development environment, the latter part of the book focuses on how the principles learned earlier can be just as easily applied to designs of web and desktop interfaces with a number of helpful and simple-to-use CSS frameworks, particularly Materialize and Material Design Lite.

This book is only the beginning of a journey into what may well become one of the most persistent digital design paradigms we have yet seen. But by the end, you will have learned not only the design theory behind materials, but also enough of technical know-how to put what you have learned into practice and be in a position to create or convert Material Design applications on your own.

What this book covers

Chapter 1, Getting Started with Material Design, introduces some of the basic precepts of Material Design, but concentrates largely on how to set up a development environment and create a simple "Hello World" app. This includes an introduction to the material theme and palette.

Chapter 2, Building a Mobile Layout, is where we concentrate on some fundamental processes in designing an Android interface, such as the content hierarchy and how components are positioned and scaled within it. The second portion of this chapter covers support libraries and how these can help us make Material Design backward compatible.

Chapter 3, Common Components, covers the most frequently used mobile material components, such as app bars, menus, and modal dialogs, along with the creation of action icons for menus.

Chapter 4, Sliding Drawers and Navigation, explains the typical material navigation techniques, in particular, the navigation menu and sliding drawers.

Chapter 5, Lists, Cards, and Data, is where we see how the recycler view can be used to organize data in the form of a list, and how separate fields of mixed media can be applied to the card view widget.

Chapter 6, Animations and Transitions, covers transition from one screen to another, including hide and reveal animations and how components that are shared across screens are animated.

Chapter 7, Material on Other Devices, is where we look at how Material Design is applied to the Android TV and Wear platforms.

Chapter 8, Material Web Frameworks, takes us on a brief tour of one of the most commonly used technologies for applying Material Design to web pages. This is done using ready-made CSS and JavaScript frameworks.

Chapter 9, The Materialize Framework, delves deeper into the Materialize web frameworks, demonstrating how common components, animations, and navigation are achieved.

Chapter 10, Material Design Lite, is the final chapter. It covers the most popular material framework—Material Design Lite. As in the previous chapter, we explore the most commonly used components and features.

What you need for this book

Android Studio and SDK are both open source and free, and instructions on installation and configuration are included in the book.

Who this book is for

This book is ideal for web developers and designers who are interested in implementing Material Design in their mobile and web apps. No prior knowledge or experience of Material Design is required, but some familiarity with procedural languages such as Java and markup languages such as HTML will provide an advantage.


In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "The Tools directory contains exactly what it says, that is, tools."

A block of code is set as follows:

    android:text="@string/hello_world" />

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

    android:textSize="24sp" />

Any command-line input or output is written as follows:

bower install <package>
bower update <package>
bower search <containing>
bower list

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "You can then open the SDK manager from the menu via Tools | Android | SDK Manager or the matching icon on the main toolbar."


Warnings or important notes appear in a box like this.


Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.

To send us general feedback, simply e-mail , and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the color images of this book

We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from


Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to and enter the name of the book in the search field. The required information will appear under the Errata section.


Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.


If you have a problem with any aspect of this book, you can contact us at , and we will do our best to address the problem.