Delete chrome.mediaGalleriesPrivate because the functionality unique to it has since...
[chromium-blink-merge.git] / third_party / polymer / components / paper-radio-button / paper-radio-button.html
blobd9457bb4f726ee23bf4900a5871c68b21920a240
1 <!--
2 Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6 Code distributed by Google as part of the polymer project is also
7 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8 -->
10 <!--
11 `paper-radio-button` is a button that can be either checked or unchecked.
12 User can tap the radio button to check it. But it cannot be unchecked by
13 tapping once checked.
15 Use `paper-radio-group` to group a set of radio buttons. When radio buttons
16 are inside a radio group, only one radio button in the group can be checked.
18 Example:
20 <paper-radio-button></paper-radio-button>
22 Styling radio button:
24 To change the ink color for checked state:
26 paper-radio-button::shadow #ink[checked] {
27 color: #4285f4;
30 To change the radio checked color:
32 paper-radio-button::shadow #onRadio {
33 background-color: #4285f4;
36 To change the ink color for unchecked state:
38 paper-radio-button::shadow #ink {
39 color: #b5b5b5;
42 To change the radio unchecked color:
44 paper-radio-button::shadow #offRadio {
45 border-color: #b5b5b5;
48 @group Paper Elements
49 @element paper-radio-button
50 @homepage github.io
51 -->
53 <link rel="import" href="../paper-ripple/paper-ripple.html">
54 <link rel="import" href="../core-a11y-keys/core-a11y-keys.html">
56 <polymer-element name="paper-radio-button" role="radio" tabindex="0" aria-checked="false">
57 <template>
59 <link rel="stylesheet" href="paper-radio-button.css">
61 <core-a11y-keys target="{{}}" keys="space" on-keys-pressed="{{tap}}"></core-a11y-keys>
63 <div id="radioContainer" class="{{ {labeled: label} | tokenList }}">
65 <div id="offRadio"></div>
66 <div id="onRadio"></div>
68 <paper-ripple id="ink" class="circle recenteringTouch" checked?="{{!checked}}"></paper-ripple>
70 </div>
72 <div id="radioLabel" aria-hidden="true" hidden?="{{!label}}">{{label}}<content></content></div>
74 </template>
75 <script>
77 Polymer('paper-radio-button', {
79 /**
80 * Fired when the checked state changes due to user interaction.
82 * @event change
85 /**
86 * Fired when the checked state changes.
88 * @event core-change
91 publish: {
92 /**
93 * Gets or sets the state, `true` is checked and `false` is unchecked.
95 * @attribute checked
96 * @type boolean
97 * @default false
99 checked: {value: false, reflect: true},
102 * The label for the radio button.
104 * @attribute label
105 * @type string
106 * @default ''
108 label: '',
111 * Normally the user cannot uncheck the radio button by tapping once
112 * checked. Setting this property to `true` makes the radio button
113 * toggleable from checked to unchecked.
115 * @attribute toggles
116 * @type boolean
117 * @default false
119 toggles: false,
122 * If true, the user cannot interact with this element.
124 * @attribute disabled
125 * @type boolean
126 * @default false
128 disabled: {value: false, reflect: true}
131 eventDelegates: {
132 tap: 'tap'
135 tap: function() {
136 if (this.disabled) {
137 return;
139 var old = this.checked;
140 this.toggle();
141 if (this.checked !== old) {
142 this.fire('change');
146 toggle: function() {
147 this.checked = !this.toggles || !this.checked;
150 checkedChanged: function() {
151 this.$.onRadio.classList.toggle('fill', this.checked);
152 this.setAttribute('aria-checked', this.checked ? 'true': 'false');
153 this.fire('core-change');
156 labelChanged: function() {
157 this.setAttribute('aria-label', this.label);
162 </script>
163 </polymer-element>