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">
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">
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>
72 <div id=
"radioLabel" aria-hidden=
"true" hidden?=
"{{!label}}">{{label}}
<content></content></div>
77 Polymer('paper-radio-button', {
80 * Fired when the checked state changes due to user interaction.
86 * Fired when the checked state changes.
93 * Gets or sets the state, `true` is checked and `false` is unchecked.
99 checked
: {value
: false, reflect
: true},
102 * The label for the radio button.
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.
122 * If true, the user cannot interact with this element.
124 * @attribute disabled
128 disabled
: {value
: false, reflect
: true}
139 var old
= this.checked
;
141 if (this.checked
!== old
) {
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
);