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
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
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.
20 <paper-radio-button></paper-radio-button>
24 To change the ink color for checked state:
26 paper-radio-button::shadow #ink[checked] {
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 {
42 To change the radio unchecked color:
44 paper-radio-button::shadow #offRadio {
45 border-color: #b5b5b5;
49 @element paper-radio-button
53 <link rel="import" href="../paper-ripple/paper-ripple.html">
55 <polymer-element name="paper-radio-button" role="radio" tabindex="0" aria-checked="false">
58 <link rel="stylesheet" href="paper-radio-button.css">
60 <div id="radioContainer" class="{{ {labeled: label} | tokenList }}">
62 <div id="offRadio"></div>
63 <div id="onRadio"></div>
65 <paper-ripple id="ink" class="circle recenteringTouch" checked?="{{!checked}}"></paper-ripple>
69 <div id="radioLabel" aria-hidden="true" hidden?="{{!label}}">{{label}}<content></content></div>
74 Polymer('paper-radio-button', {
77 * Fired when the checked state changes.
84 * Gets or sets the state, `true` is checked and `false` is unchecked.
90 checked: {value: false, reflect: true},
93 * The label for the radio button.
102 * Normally the user cannot uncheck the radio button by tapping once
103 * checked. Setting this property to `true` makes the radio button
104 * toggleable from checked to unchecked.
113 * If true, the user cannot interact with this element.
115 * @attribute disabled
119 disabled: {value: false, reflect: true}
128 this.fire('paper-radio-button-activate');
132 this.checked = !this.toggles || !this.checked;
135 checkedChanged: function() {
136 this.$.onRadio.classList.toggle('fill', this.checked);
137 this.setAttribute('aria-checked', this.checked ? 'true': 'false');
141 labelChanged: function() {
142 this.setAttribute('aria-label', this.label);