Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Material Design 2.0

Avatar for The Funtasty The Funtasty
February 21, 2019

Material Design 2.0

Avatar for The Funtasty

The Funtasty

February 21, 2019
Tweet

More Decks by The Funtasty

Other Decks in Technology

Transcript

  1. About Material Design Material Design announced Google I/O 2014 Design

    Support library announced Google I/O 2015 Material Theming announced Google I/O 2018
  2. dependencies { implementation 'com.android.support:design:28.0.0' } dependencies { implementation 'com.google.android.material:material:1.1.0-alpha03' }

    <style name="YourTheme" parent="Theme.AppCompat.Light.NoActionBar"/> <style name=“YourTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
  3. dependencies { implementation 'com.android.support:design:28.0.0' } dependencies { implementation 'com.google.android.material:material:1.1.0-alpha03' }

    <style name="YourTheme" parent="Theme.AppCompat.Light.NoActionBar"/> <style name=“YourTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <style name=“YourTheme" parent="Theme.MaterialComponents.Bridge"> Workaround:
  4. View Style Default Style Theme <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/white"/> <style

    name="ButtonStyle"> <item name="android:textColor">@color/white</item> </style> <style name="AppTheme"> <item name="buttonStyle">@style/ButtonStyle</item> </style>
  5. View Style Default Style Theme <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/white"/> <style

    name="ButtonStyle"> <item name="android:textColor">@color/white</item> </style> <style name="AppTheme"> <item name="buttonStyle">@style/ButtonStyle</item> </style> <style name="AppTheme"> <item name="colorPrimary">@color/colorPrimary</item> </style>
  6. Small Components Medium Components Large Components Button Chip Floating action

    button Filled text field Outlined text field Snackbar Card Dialog Menu Bottom Sheet Navigation drawer
  7. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  8. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  9. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  10. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  11. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  12. <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/purple</item> <item name=“colorPrimaryVariant">@color/purple_dark</item> <item name="colorSecondary">@color/lime</item> <item

    name=“colorSecondaryVariant">@color/lime_dark</item> <item name="colorOnPrimary">@color/white</item> <item name=“colorOnSecondary">@color/black</item> ... </style>
  13. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="materialCardViewStyle">@style/MyCardView</item> ... </style> <style name="MyCardView"

    parent="Widget.MaterialComponents.CardView"> <item name="cardElevation">0dp</item> <item name="strokeColor">?colorPrimaryVariant</item> <item name="strokeWidth">1dp</item> </style>
  14. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="materialCardViewStyle">@style/MyCardView</item> ... </style> <style name="MyCardView"

    parent="Widget.MaterialComponents.CardView"> <item name="cardElevation">0dp</item> <item name="strokeColor">?colorPrimaryVariant</item> <item name="strokeWidth">1dp</item> </style>
  15. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="borderlessButtonStyle">@style/MyButton</item> ... </style> <style name="MyButton"

    parent="Widget.MaterialComponents.Button.OutlinedButton"> <item name="shapeAppearance">@style/ButtonShapeAppearance</item> </style> <style name="ButtonShapeAppearance"> <item name="cornerFamilyTopRight">cut</item> <item name="cornerFamilyBottomRight">cut</item> <item name="cornerSize">18dp</item> </style>
  16. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="borderlessButtonStyle">@style/MyButton</item> ... </style> <style name="MyButton"

    parent="Widget.MaterialComponents.Button.OutlinedButton"> <item name="shapeAppearance">@style/ButtonShapeAppearance</item> </style> <style name="ButtonShapeAppearance"> <item name="cornerFamilyTopRight">cut</item> <item name="cornerFamilyBottomRight">cut</item> <item name="cornerSize">18dp</item> </style>
  17. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="shapeAppearanceMediumComponent">@style/MyShapeAppearanceMedium</item> ... </style> <style name="MyShapeAppearanceMedium"

    parent=“ShapeAppearance.Mat...MediumComponent"> <item name="cornerFamily">rounded</item> <item name="cornerSize">16dp</item> </style> MaterialAlertDialogBuilder(this) .setTitle("Demo Dialog") .setMessage("Hello world") .setPositiveButton("OK") { _, _ -> } .show()
  18. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="shapeAppearanceMediumComponent">@style/MyShapeAppearanceMedium</item> ... </style> <style name="MyShapeAppearanceMedium"

    parent=“ShapeAppearance.Mat...MediumComponent"> <item name="cornerFamily">rounded</item> <item name="cornerSize">16dp</item> </style> MaterialAlertDialogBuilder(this) .setTitle("Demo Dialog") .setMessage("Hello world") .setPositiveButton("OK") { _, _ -> } .show()
  19. <style name="AppTheme" parent=“Theme.MaterialComponents.Light.NoActionBar"> ... <item name="shapeAppearanceMediumComponent">@style/MyShapeAppearanceMedium</item> ... </style> <style name="MyShapeAppearanceMedium"

    parent=“ShapeAppearance.Mat...MediumComponent"> <item name="cornerFamily">rounded</item> <item name="cornerSize">16dp</item> </style> MaterialAlertDialogBuilder(this) .setTitle("Demo Dialog") .setMessage("Hello world") .setPositiveButton("OK") { _, _ -> } .show()
  20. material.io - tools • material theme editor Sketch plugin •

    Color tool (outdated) • Gallery (alternative to Zeplin)