<?xml version='1.0' encoding='UTF-8'?>
<!-- Copyright (C) 2019 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>
    <!-- General -->

    <!-- Main text color (titles, text body, etc.) -->
    <color name="chassis_primary_text_color">#FFFFFFFF</color>
    <!-- Text color used in subtitles or other secondary text blocks -->
    <color name="chassis_secondary_text_color">#90FFFFFF</color>
    <!-- The ripple color for a card. -->
    <color name="chassis_card_ripple_background">#27ffffff</color>

    <!-- Tabs -->

    <!-- Selected colors -->
    <color name="chassis_tab_selected_color">@color/chassis_primary_text_color</color>
    <!-- Normal colors -->
    <color name="chassis_tab_unselected_color">@color/chassis_secondary_text_color</color>

    <!-- Toolbar -->

    <!-- Text color applied to the hint displayed inside the search box -->
    <color name="chassis_toolbar_search_hint_text_color">#33FFFFFF</color>
    <!-- Toolbar background color -->
    <color name="chassis_toolbar_background_color">#E0000000</color>
</resources>
