<?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/fab_background</item>
        <item name="backgroundTint">?attr/colorAccent</item>

        <item name="fabSize">normal</item>
        <item name="elevation">@dimen/fab_elevation</item>
        <item name="pressedTranslationZ">@dimen/fab_translation_z_pressed</item>
        <item name="rippleColor">?attr/colorControlHighlight</item>
    </style>

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

    <style name="Widget.Design.NavigationView" parent="">
        <item name="android:elevation">@dimen/navigation_elevation</item>
        <item name="android:background">?android:attr/windowBackground</item>
        <item name="android:fitsSystemWindows">true</item>
        <item name="android:maxWidth">@dimen/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/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">14sp</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/error_color</item>
    </style>

</resources>

