<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
-->
<resources>

    <style name="Widget.Design.FloatingActionButton" parent="android:Widget">
        <item name="android:background">@drawable/design_fab_background</item>
        <item name="backgroundTint">?attr/colorAccent</item>
        <item name="fabSize">normal</item>
        <item name="elevation">@dimen/design_fab_elevation</item>
        <item name="pressedTranslationZ">@dimen/design_fab_translation_z_pressed</item>
        <item name="rippleColor">?attr/colorControlHighlight</item>
        <item name="borderWidth">@dimen/design_fab_border_width</item>
    </style>

    <style name="Widget.Design.ScrimInsetsFrameLayout" parent="">
        <item name="insetForeground">#4000</item>
    </style>

    <style name="Widget.Design.NavigationView" parent="">
        <item name="elevation">@dimen/design_navigation_elevation</item>
        <item name="android:background">?android:attr/windowBackground</item>
        <item name="android:fitsSystemWindows">true</item>
        <item name="android:maxWidth">@dimen/design_navigation_max_width</item>
    </style>

    <style name="Widget.Design.TabLayout" parent="Base.Widget.Design.TabLayout">
        <item name="tabGravity">fill</item>
        <item name="tabMode">fixed</item>
    </style>

    <style name="Base.Widget.Design.TabLayout" parent="android:Widget">
        <item name="tabMaxWidth">@dimen/design_tab_max_width</item>
        <item name="tabIndicatorColor">?attr/colorAccent</item>
        <item name="tabIndicatorHeight">2dp</item>
        <item name="tabPaddingStart">12dp</item>
        <item name="tabPaddingEnd">12dp</item>
        <item name="tabBackground">?attr/selectableItemBackground</item>
        <item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
        <item name="tabSelectedTextColor">?android:textColorPrimary</item>
    </style>

    <style name="TextAppearance.Design.Tab" parent="TextAppearance.AppCompat.Button">
        <item name="android:textSize">@dimen/design_tab_text_size</item>
        <item name="android:textColor">?android:textColorSecondary</item>
        <item name="textAllCaps">true</item>
    </style>

    <style name="Widget.Design.TextInputLayout" parent="android:Widget">
        <item name="hintTextAppearance">@style/TextAppearance.Design.Hint</item>
        <item name="errorTextAppearance">@style/TextAppearance.Design.Error</item>
    </style>

    <style name="TextAppearance.Design.Hint" parent="TextAppearance.AppCompat.Caption">
        <item name="android:textColor">?attr/colorControlActivated</item>
    </style>

    <style name="TextAppearance.Design.Error" parent="TextAppearance.AppCompat.Caption">
        <item name="android:textColor">@color/design_textinput_error_color</item>
    </style>

    <style name="TextAppearance.Design.Snackbar.Message" parent="android:TextAppearance">
        <item name="android:textSize">@dimen/design_snackbar_text_size</item>
        <item name="android:textColor">?android:textColorPrimary</item>
    </style>

    <style name="Widget.Design.Snackbar" parent="android:Widget">
        <item name="android:theme">@style/ThemeOverlay.AppCompat.Dark</item>
        <item name="android:minWidth">@dimen/design_snackbar_min_width</item>
        <item name="android:maxWidth">@dimen/design_snackbar_max_width</item>
        <item name="android:background">@drawable/design_snackbar_background</item>
        <item name="android:paddingLeft">@dimen/design_snackbar_padding_horizontal</item>
        <item name="android:paddingRight">@dimen/design_snackbar_padding_horizontal</item>
        <item name="elevation">@dimen/design_snackbar_elevation</item>
        <item name="maxActionInlineWidth">@dimen/design_snackbar_action_inline_max_width</item>
    </style>

    <style name="Widget.Design.CollapsingToolbar" parent="android:Widget">
        <item name="expandedTitleMargin">32dp</item>
        <item name="statusBarScrim">?attr/colorPrimaryDark</item>
    </style>

    <style name="Widget.Design.AppBarLayout" parent="android:Widget">
        <item name="elevation">@dimen/design_appbar_elevation</item>
        <item name="android:background">?attr/colorPrimary</item>
    </style>

    <style name="Widget.Design.CoordinatorLayout" parent="android:Widget">
        <item name="statusBarBackground">?attr/colorPrimaryDark</item>
    </style>

    <style name="TextAppearance.Design.CollapsingToolbar.Expanded" parent="TextAppearance.AppCompat.Display1">
        <item name="android:textColor">?android:attr/textColorPrimary</item>
    </style>

</resources>

