<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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>
    <dimen name="car_headline0_size">50sp</dimen>
    <dimen name="car_headline1_size">45sp</dimen>
    <dimen name="car_headline2_size">36sp</dimen>
    <dimen name="car_title_size">26sp</dimen>
    <dimen name="car_body1_size">32sp</dimen>
    <dimen name="car_body2_size">26sp</dimen>
    <dimen name="car_caption_size">18sp</dimen>
    <dimen name="car_key1_size">40sp</dimen>
    <dimen name="car_key2_size">18sp</dimen>
    <dimen name="car_micro_size">20sp</dimen>

    <dimen name="car_drawer_header_height">96dp</dimen>
    <dimen name="car_drawer_header_menu_button_size">96dp</dimen>
    <dimen name="car_drawer_standard_width">704dp</dimen>
    <dimen name="car_drawer_max_width">884dp</dimen>
    <dimen name="car_drawer_item_max_width">788dp</dimen>

    <dimen name="car_list_item_height">88dp</dimen>
    <dimen name="car_list_item_height_small">64dp</dimen>
    <!-- Sample row height used for scroll bar calculations in the off chance that a view hasn't
         been measured. It's highly unlikely that this value will actually be used for more than
         a frame max. The sample row is a 96dp card + 16dp margin on either side. -->
    <dimen name="car_sample_row_height">128dp</dimen>
    <!-- The amount of space the LayoutManager will make sure the last item on the screen is
         peeking before scrolling down -->
    <dimen name="car_last_card_peek_amount">16dp</dimen>
    <dimen name="car_paged_list_view_pagination_width">48dp</dimen>
    <dimen name="car_paged_list_view_button_background_inset">24dp</dimen>
    <dimen name="car_paged_list_view_scrollbar_thumb_margin">8dp</dimen>

    <dimen name="scroll_button_size">48dp</dimen>
    <dimen name="scroll_bar_thumb_width">12dp</dimen>

    <!-- height of list dividers -->
    <dimen name="car_divider_height">1dp</dimen>

    <dimen name="car_list_item_icon_size">64dp</dimen>
    <dimen name="car_list_item_icon_right_margin">32dp</dimen>
    <dimen name="car_list_item_icon_size_small">32dp</dimen>
    <dimen name="car_list_item_small_icon_size">56dp</dimen>
    <dimen name="car_list_item_right_icon_margin">20dp</dimen>
    <dimen name="car_list_item_right_icon_size">56dp</dimen>
    <dimen name="car_list_unavailable_category_item_height">108dp</dimen>
    <dimen name="car_list_truncated_list_card_height">108dp</dimen>
    <dimen name="car_list_truncated_list_card_elevation">8dp</dimen>
    <dimen name="car_list_truncated_list_icon_size">56dp</dimen>
    <dimen name="car_list_truncated_list_icon_padding">22dp</dimen>
    <dimen name="car_list_truncated_list_drawable_padding">48dp</dimen>
    <dimen name="car_list_truncated_list_padding">10dp</dimen>
    <dimen name="car_text_vertical_margin">2dp</dimen>
    <dimen name="car_card_bottom_margin">8dp</dimen>

    <dimen name="car_touch_feedback_radius">32dp</dimen>
    <dimen name="car_card_view_corner_radius">2dp</dimen>
    <dimen name="car_card_view_elevation">8dp</dimen>
    <dimen name="car_fab_focused_stroke_width">8dp</dimen>
    <dimen name="car_fab_focused_growth">1.2dp</dimen>
    <!-- The minimum the scrollbar thumb can shrink to -->
    <dimen name="min_thumb_height">48dp</dimen>
    <!-- The maximum the scrollbar thumb can grow to -->
    <dimen name="max_thumb_height">128dp</dimen>

    <dimen name="car_standard_width">800dp</dimen>
    <dimen name="car_card_max_width">768dp</dimen>
    <dimen name="car_card_margin">96dp</dimen>
    <dimen name="car_drawer_margin_right">96dp</dimen>

    <dimen name="car_drawer_button_container_width">@dimen/stream_content_keyline_2</dimen>

    <!-- The margin on both sizes of the screen. This margin limits the amount of space that
         content can take up on screen. -->
    <dimen name="stream_margin_size">16dp</dimen>

    <!-- The size of the gutters between each column. -->
    <dimen name="stream_gutter_size">16dp</dimen>

    <!-- Keylines for content in the stream. -->
    <dimen name="stream_content_keyline_1">24dp</dimen>
    <dimen name="stream_content_keyline_2">96dp</dimen>
    <dimen name="stream_content_keyline_1_neg">-24dp</dimen>
    <dimen name="stream_content_keyline_2_neg">-96dp</dimen>

    <!-- Keylines for content within a card. -->
    <dimen name="stream_card_keyline_1">24dp</dimen>
    <dimen name="stream_card_keyline_2">96dp</dimen>
    <dimen name="stream_card_keyline_3">176dp</dimen>

    <!-- The top margin before the start of content in an application. -->
    <dimen name="lens_header_height">96dp</dimen>

    <!-- The height of the container that holds the controls for a media applicatin. -->
    <dimen name="action_panel_height">104dp</dimen>

    <!-- The size of a FAB in a car application. -->
    <dimen name="stream_fab_size">80dp</dimen>

    <!-- The default size for all touch targets in car applications.. -->
    <dimen name="stream_button_size">72dp</dimen>

    <!-- The default size for the icons within the touch targets in car applications.. -->
    <dimen name="stream_button_icon_size">36dp</dimen>

    <!-- Size of progress-bar in Drawer -->
    <dimen name="car_drawer_progress_bar_size">48dp</dimen>

    <!-- NOTE: car-support defines a similarly named value, but the value varies by screen-size. We
        do not want that -->
    <dimen name="car_drawer_right_margin">96dp</dimen>

    <dimen name="car_drawer_item_right_icon_margin_end">32dp</dimen>

    <!-- Used by car_list_item_empty.xml -->
    <dimen name="car_drawer_disabled_list_margin_side">16dp</dimen>
    <dimen name="car_drawer_disabled_list_icon_margin_top">48dp</dimen>
    <dimen name="car_drawer_disabled_list_icon_margin_bottom">22dp</dimen>
</resources>
