<?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 xmlns:tools="http://schemas.android.com/tools">

    <!-- General -->
    <dimen name="sud_layout_margin_sides">40dp</dimen>

    <dimen name="sud_glif_button_corner_radius">2dp</dimen>
    <!-- Calculated by (sud_glif_margin_sides - 4dp internal padding of button) -->
    <dimen name="sud_glif_button_margin_end">20dp</dimen>
    <!-- Calculated by (sud_glif_margin_sides - sud_glif_button_padding) -->
    <dimen name="sud_glif_button_margin_start">8dp</dimen>
    <dimen name="sud_glif_button_padding">16dp</dimen>
    <!-- Negative of sud_glif_button_padding -->
    <dimen name="sud_glif_negative_button_padding">-16dp</dimen>
    <dimen name="sud_glif_footer_padding_vertical">8dp</dimen>
    <dimen name="sud_glif_footer_min_height">72dp</dimen>
    <dimen name="sud_glif_margin_sides">24dp</dimen>
    <dimen name="sud_glif_margin_top">56dp</dimen>

    <dimen name="sud_glif_alert_dialog_corner_radius">8dp</dimen>
    <dimen name="sud_glif_v3_button_corner_radius">4dp</dimen>

    <!-- Content styles -->
    <dimen name="sud_check_box_line_spacing_extra">4sp</dimen>
    <dimen name="sud_check_box_margin_bottom">12dp</dimen>
    <dimen name="sud_check_box_margin_start">1dp</dimen>
    <dimen name="sud_check_box_margin_top">24dp</dimen>
    <dimen name="sud_check_box_padding_start">15dp</dimen>

    <dimen name="sud_content_frame_padding_top">0dp</dimen>
    <dimen name="sud_content_frame_padding_bottom">16dp</dimen>

    <dimen name="sud_description_margin_top">24dp</dimen>
    <dimen name="sud_description_margin_bottom">12dp</dimen>
    <dimen name="sud_description_margin_bottom_lists">24dp</dimen>
    <dimen name="sud_description_line_spacing_extra">4sp</dimen>
    <dimen name="sud_description_text_size">16sp</dimen>

    <dimen name="sud_description_glif_margin_top">3dp</dimen>
    <dimen name="sud_description_glif_margin_bottom_lists">24dp</dimen>

    <dimen name="sud_content_glif_margin_top">32dp</dimen>
    <dimen name="sud_content_glif_margin_bottom">6dp</dimen>

    <dimen name="sud_content_illustration_max_height">312dp</dimen>
    <dimen name="sud_content_illustration_max_width">312dp</dimen>
    <dimen name="sud_content_illustration_min_height">172dp</dimen>
    <dimen name="sud_content_illustration_min_width">172dp</dimen>
    <dimen name="sud_content_illustration_padding_vertical">24dp</dimen>

    <!-- Margin on the start to offset for margin in the drawable -->
    <dimen name="sud_radio_button_margin_start">-6dp</dimen>
    <dimen name="sud_radio_button_margin_top">0dp</dimen>
    <dimen name="sud_radio_button_margin_bottom">12dp</dimen>
    <dimen name="sud_radio_button_padding_start">18dp</dimen>
    <dimen name="sud_radio_button_line_spacing_extra">5sp</dimen>

    <!-- Card layout (for tablets) -->
    <dimen name="sud_card_corner_radius">2dp</dimen>
    <dimen name="sud_card_elevation">5dp</dimen>
    <dimen name="sud_card_land_header_text_margin_top">128dp</dimen>
    <dimen name="sud_card_port_margin_sides">56dp</dimen>

    <dimen name="sud_card_title_padding_end">0dp</dimen>
    <dimen name="sud_card_title_padding_start">0dp</dimen>
    <dimen name="sud_card_title_padding_top">16dp</dimen>
    <dimen name="sud_card_title_padding_bottom">28dp</dimen>

    <!-- Decor view (illustration or the header without illustration) -->
    <dimen name="sud_decor_padding_top">0dp</dimen>

    <!-- GLIF card layout (for tablets) -->
    <dimen name="sud_glif_card_elevation">5dp</dimen>
    <dimen name="sud_glif_card_width">560dp</dimen>
    <dimen name="sud_glif_card_height">672dp</dimen>

    <!-- Header layout (for phones) -->
    <dimen name="sud_title_area_elevation">3dp</dimen>
    <!-- Hack to force the header (and its shadow) to be drawn on top of the list contents -->
    <dimen name="sud_header_elevation_hack">1dp</dimen>

    <dimen name="sud_header_title_size">24sp</dimen>
    <dimen name="sud_header_title_margin_bottom">16dp</dimen>
    <dimen name="sud_header_title_padding_top">16dp</dimen>
    <dimen name="sud_header_title_padding_bottom">2dp</dimen>
    <!-- This is the extra spacing required to make the leading exactly 32sp -->
    <dimen name="sud_header_title_line_spacing_extra">3.67sp</dimen>

    <dimen name="sud_glif_header_title_margin_top">16dp</dimen>
    <dimen name="sud_glif_header_title_margin_bottom">2dp</dimen>

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

    <!-- Illustration -->
    <item name="sud_illustration_aspect_ratio" format="float" type="dimen">2.22</item>

    <!-- Items -->
    <dimen name="sud_items_icon_container_width">48dp</dimen>
    <dimen name="sud_items_padding_vertical">15dp</dimen>
    <dimen name="sud_items_verbose_padding_vertical">20dp</dimen>

    <!-- Ignore UnusedResources: can be used by clients -->
    <dimen name="sud_items_icon_divider_inset" tools:ignore="UnusedResources">88dp</dimen>
    <!-- Ignore UnusedResources: can be used by clients -->
    <dimen name="sud_items_text_divider_inset" tools:ignore="UnusedResources">40dp</dimen>

    <!-- Ignore UnusedResources: can be used by clients -->
    <dimen name="sud_items_glif_icon_divider_inset" tools:ignore="UnusedResources">72dp</dimen>
    <!-- Ignore UnusedResources: can be used by clients -->
    <dimen name="sud_items_glif_text_divider_inset" tools:ignore="UnusedResources">24dp</dimen>

    <!-- Extra padding in the bottom to compensate for difference between descent and (top) internal leading -->
    <dimen name="sud_items_padding_bottom_extra">1dp</dimen>
    <dimen name="sud_items_verbose_padding_bottom_extra">0dp</dimen>
    <dimen name="sud_items_preferred_height">56dp</dimen>

    <!-- Navigation bar -->
    <!-- TODO: Move this dimen to gingerbread, or see if it should be in platform style as well -->
    <dimen name="sud_navbar_button_drawable_padding" tools:ignore="UnusedResources">6dp</dimen>
    <dimen name="sud_navbar_button_padding_sides">10dp</dimen>
    <dimen name="sud_navbar_height">56dp</dimen>
    <dimen name="sud_navbar_ic_intrinsic_size">24dp</dimen>
    <dimen name="sud_navbar_padding_sides">24dp</dimen>
    <dimen name="sud_navbar_text_size">16sp</dimen>

    <!-- Progress bar -->
    <!-- The margin to compensate for the padding built-in to the widget itself -->
    <dimen name="sud_progress_bar_margin_vertical">-7dp</dimen>
    <dimen name="sud_glif_progress_bar_margin_vertical">7dp</dimen>
    <dimen name="sud_glif_progress_bar_padding">40dp</dimen>

    <!-- Edit Text dimensions -->
    <dimen name="sud_edit_text_min_height">56dp</dimen>
    <dimen name="sud_edit_text_padding_horizontal">12dp</dimen>

    <!-- SwitchItem -->
    <dimen name="sud_switch_padding_start">16dp</dimen>
    <dimen name="sud_switch_padding_end">0dp</dimen>
    <dimen name="sud_switch_padding_top">39dp</dimen>
    <dimen name="sud_switch_divider_height">32dp</dimen>
    <dimen name="sud_switch_divider_padding_top">36dp</dimen>
    <dimen name="sud_switch_content_padding_end">16dp</dimen>

    <!-- ExpandableSwithItem -->
    <dimen name="sud_expand_arrow_drawable_padding">4dp</dimen>

</resources>
