Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Unified Diff: chrome/browser/resources/settings/controls/controlled_radio_button.html

Issue 2816883002: MD Settings: compose a <paper-radio-button> instead of wrapping one in <controlled-radio-button> (Closed)
Patch Set: nits Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_"

Powered by Google App Engine
This is Rietveld 408576698