| Index: chrome/browser/resources/settings/controls/controlled_radio_button.html
|
| diff --git a/chrome/browser/resources/settings/controls/controlled_radio_button.html b/chrome/browser/resources/settings/controls/controlled_radio_button.html
|
| index 6b56e8f0a98bbac0650948e794eec0fcc034aa84..9e88f575088ffbafd449d1e77986adc924b6d7f0 100644
|
| --- a/chrome/browser/resources/settings/controls/controlled_radio_button.html
|
| +++ b/chrome/browser/resources/settings/controls/controlled_radio_button.html
|
| @@ -9,21 +9,103 @@
|
| <template>
|
| <style include="settings-shared">
|
| :host {
|
| + --ink-to-circle: calc((var(--paper-radio-button-ink-size) -
|
| + var(--paper-radio-button-size)) / 2);
|
| align-items: center;
|
| display: flex;
|
| outline: none;
|
| }
|
|
|
| - #radioButton {
|
| + #labelWrapper {
|
| + -webkit-margin-start: var(--paper-radio-button-label-spacing, 10px);
|
| flex: 1;
|
| }
|
|
|
| + #label {
|
| + color: var(--paper-radio-button-label-color, var(--primary-text-color));
|
| + }
|
| +
|
| + .circle,
|
| + .disc,
|
| + .disc-wrapper,
|
| + paper-ripple {
|
| + border-radius: 50%;
|
| + }
|
| +
|
| + .disc-wrapper {
|
| + height: var(--paper-radio-button-ink-size);
|
| + margin: 0 calc(-1 * var(--ink-to-circle));
|
| + position: relative;
|
| + width: var(--paper-radio-button-ink-size);
|
| + }
|
| +
|
| + .circle,
|
| + .disc {
|
| + box-sizing: border-box;
|
| + height: var(--paper-radio-button-size);
|
| + left: var(--ink-to-circle);
|
| + position: absolute;
|
| + top: var(--ink-to-circle);
|
| + width: var(--paper-radio-button-size);
|
| + }
|
| +
|
| + .circle {
|
| + border: 2px solid var(--paper-radio-button-unchecked-color,
|
| + --primary-text-color);
|
| + }
|
| +
|
| + :host([checked]) .circle {
|
| + border-color: var(--paper-radio-button-checked-color, --primary-color);
|
| + }
|
| +
|
| + .disc {
|
| + background-color: var(--paper-radio-button-unchecked-background-color,
|
| + transparent);
|
| + transform: scale(0);
|
| + transition: border-color 200ms, transform 200ms;
|
| + }
|
| +
|
| + :host([checked]) .disc {
|
| + background-color: var(--paper-radio-button-checked-color,
|
| + --primary-color);
|
| + transform: scale(0.5);
|
| + }
|
| +
|
| + paper-ripple {
|
| + color: var(--paper-radio-button-unchecked-ink-color,
|
| + --primary-text-color);
|
| + opacity: .6;
|
| + }
|
| +
|
| + :host([checked]) paper-ripple {
|
| + color: var(--paper-radio-button-checked-ink-color,
|
| + --primary-text-color);
|
| + }
|
| +
|
| :host([controlled_]) {
|
| /* Disable pointer events for this whole element, as outer on-tap gets
|
| * triggered when clicking/tapping anywhere in :host. */
|
| pointer-events: none;
|
| }
|
|
|
| + :host([controlled_]) :-webkit-any(.circle, .disc) {
|
| + opacity: .5;
|
| + }
|
| +
|
| + :host([controlled_]) .circle {
|
| + border-color: var(--paper-radio-button-unchecked-color,
|
| + --primary-text-color);
|
| + }
|
| +
|
| + :host([controlled_][checked]) .disc {
|
| + background-color: var(--paper-radio-button-unchecked-color,
|
| + --primary-text-color);
|
| + }
|
| +
|
| + :host([controlled_]) #labelWrapper {
|
| + opacity: .65;
|
| + }
|
| +
|
| cr-policy-pref-indicator {
|
| -webkit-margin-start: var(--settings-control-spacing);
|
| /* Enable pointer events for the indicator so :hover works. Disable
|
| @@ -32,10 +114,16 @@
|
| }
|
| </style>
|
|
|
| - <paper-radio-button id="radioButton" name="{{name}}" checked="{{checked}}"
|
| - disabled="[[controlled_]]" tabindex$="[[tabindex]]">
|
| - [[label]] <content></content>
|
| - </paper-radio-button>
|
| + <div class="disc-wrapper">
|
| + <div class="circle"></div>
|
| + <div class="disc"></div>
|
| + <paper-ripple center hold-down="[[pressed_]]"></paper-ripple>
|
| + </div>
|
| +
|
| + <div id="labelWrapper">
|
| + <span id="label" hidden$="[[!label]]">[[label]]</span>
|
| + <content></content>
|
| + </div>
|
|
|
| <template is="dom-if" if="[[showIndicator_(controlled_, name, pref.*)]]">
|
| <cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_"
|
|
|