Chromium Code Reviews| Index: extensions/renderer/resources/extension.css |
| diff --git a/extensions/renderer/resources/extension.css b/extensions/renderer/resources/extension.css |
| index 6ebf72952e1a5ba1d0535b87044b48ae34a00332..90cee026e77e2a9ad4c2381181556d576d7d43c2 100644 |
| --- a/extensions/renderer/resources/extension.css |
| +++ b/extensions/renderer/resources/extension.css |
| @@ -3,10 +3,406 @@ |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| - * A style sheet for Chrome extensions. |
| + * This stylesheet is used to apply Chrome styles to extension pages that opt in |
| + * to using them. These styles have been copied from |
| + * ui/webui/resources/css/chrome_shared.css and |
| + * ui/webui/resources/css/widgets.css. This is to prevent WebUI changes from |
| + * breaking extensions, however please keep the files in sync if possible. |
|
Marijn Kruisselbrink
2014/09/10 20:46:30
"please keep in sync" comments probably work bette
ericzeng
2014/09/10 21:29:30
The WebUI team didn't want to worry about breaking
|
| */ |
| +/* Prevent CSS from overriding the hidden property. */ |
| +[hidden] { |
| + display: none !important; |
| +} |
| + |
| +html.loading * { |
| + -webkit-transition-delay: 0 !important; |
| + -webkit-transition-duration: 0 !important; |
| +} |
| + |
| body { |
| - font-family: $FONTFAMILY; |
| - font-size: $FONTSIZE; |
| + cursor: default; |
| + margin: 0; |
| +} |
| + |
| +p { |
| + line-height: 1.8em; |
| +} |
| + |
| +h1, |
| +h2, |
| +h3 { |
| + -webkit-user-select: none; |
| + font-weight: normal; |
| + /* Makes the vertical size of the text the same for all fonts. */ |
| + line-height: 1; |
| +} |
| + |
| +h1 { |
| + font-size: 1.5em; |
| +} |
| + |
| +h2 { |
| + font-size: 1.3em; |
| + margin-bottom: 0.4em; |
| +} |
| + |
| +h3 { |
| + color: black; |
| + font-size: 1.2em; |
| + margin-bottom: 0.8em; |
| +} |
| + |
| +a { |
| + color: rgb(17, 85, 204); |
| + text-decoration: underline; |
| +} |
| + |
| +a:active { |
| + color: rgb(5, 37, 119); |
| +} |
| + |
| +/* Elements that need to be LTR even in an RTL context, but should align |
| + * right. (Namely, URLs, search engine names, etc.) |
| + */ |
| +html[dir='rtl'] .weakrtl { |
| + direction: ltr; |
| + text-align: right; |
| +} |
| + |
| +/* Input fields in search engine table need to be weak-rtl. Since those input |
| + * fields are generated for all cr.ListItem elements (and we only want weakrtl |
| + * on some), the class needs to be on the enclosing div. |
| + */ |
| +html[dir='rtl'] div.weakrtl input { |
| + direction: ltr; |
| + text-align: right; |
| +} |
| + |
| +html[dir='rtl'] .favicon-cell.weakrtl { |
| + -webkit-padding-end: 22px; |
| + -webkit-padding-start: 0; |
| +} |
| + |
| +/* weakrtl for selection drop downs needs to account for the fact that |
| + * Webkit does not honor the text-align attribute for the select element. |
| + * (See Webkit bug #40216) |
| + */ |
| +html[dir='rtl'] select.weakrtl { |
| + direction: rtl; |
| +} |
| + |
| +html[dir='rtl'] select.weakrtl option { |
| + direction: ltr; |
| +} |
| + |
| +/* WebKit does not honor alignment for text specified via placeholder attribute. |
| + * This CSS is a workaround. Please remove once WebKit bug is fixed. |
| + * https://bugs.webkit.org/show_bug.cgi?id=63367 |
| + */ |
| +html[dir='rtl'] input.weakrtl::-webkit-input-placeholder, |
| +html[dir='rtl'] .weakrtl input::-webkit-input-placeholder { |
| + direction: rtl; |
| +} |
| + |
| +/* Default state **************************************************************/ |
| + |
| +:-webkit-any(button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button), |
| +select, |
| +input[type='checkbox'], |
| +input[type='radio'] { |
| + -webkit-appearance: none; |
| + -webkit-user-select: none; |
| + background-image: linear-gradient(#ededed, #ededed 38%, #dedede); |
| + border: 1px solid rgba(0, 0, 0, 0.25); |
| + border-radius: 2px; |
| + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08), |
| + inset 0 1px 2px rgba(255, 255, 255, 0.75); |
| + color: #444; |
| + font: inherit; |
| + margin: 0 1px 0 0; |
| + outline: none; |
| + text-shadow: 0 1px 0 rgb(240, 240, 240); |
| +} |
| + |
| +:-webkit-any(button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button), |
| +select { |
| + min-height: 2em; |
| + min-width: 4em; |
| +<if expr="is_win"> |
| + /* The following platform-specific rule is necessary to get adjacent |
| + * buttons, text inputs, and so forth to align on their borders while also |
| + * aligning on the text's baselines. */ |
| + padding-bottom: 1px; |
| +</if> |
| +} |
| + |
| +:-webkit-any(button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button) { |
| + -webkit-padding-end: 10px; |
| + -webkit-padding-start: 10px; |
| +} |
| + |
| +select { |
| + -webkit-appearance: none; |
| + -webkit-padding-end: 20px; |
| + -webkit-padding-start: 6px; |
| + /* OVERRIDE */ |
| + background-image: url($SELECT), |
| + linear-gradient(#ededed, #ededed 38%, #dedede); |
| + background-position: right center; |
| + background-repeat: no-repeat; |
| +} |
| + |
| +html[dir='rtl'] select { |
| + background-position: center left; |
| +} |
| + |
| +input[type='checkbox'] { |
| + bottom: 2px; |
| + height: 13px; |
| + position: relative; |
| + vertical-align: middle; |
| + width: 13px; |
| +} |
| + |
| +input[type='radio'] { |
| + /* OVERRIDE */ |
| + border-radius: 100%; |
| + bottom: 3px; |
| + height: 15px; |
| + position: relative; |
| + vertical-align: middle; |
| + width: 15px; |
| +} |
| + |
| +/* TODO(estade): add more types here? */ |
| +input[type='number'], |
| +input[type='password'], |
| +input[type='search'], |
| +input[type='text'], |
| +input[type='url'], |
| +input:not([type]), |
| +textarea { |
| + border: 1px solid #bfbfbf; |
| + border-radius: 2px; |
| + box-sizing: border-box; |
| + color: #444; |
| + font: inherit; |
| + margin: 0; |
| + /* Use min-height to accommodate addditional padding for touch as needed. */ |
| + min-height: 2em; |
| + padding: 3px; |
| + outline: none; |
| +<if expr="is_win or is_macosx or is_ios"> |
| + /* For better alignment between adjacent buttons and inputs. */ |
| + padding-bottom: 4px; |
| +</if> |
| +} |
| + |
| +input[type='search'] { |
| + -webkit-appearance: textfield; |
| + /* NOTE: Keep a relatively high min-width for this so we don't obscure the end |
| + * of the default text in relatively spacious languages (i.e. German). */ |
| + min-width: 160px; |
| +} |
| + |
| +/* Remove when https://bugs.webkit.org/show_bug.cgi?id=51499 is fixed. |
| + * TODO(dbeam): are there more types that would benefit from this? */ |
| +input[type='search']::-webkit-textfield-decoration-container { |
| + direction: inherit; |
| +} |
| + |
| +/* Checked ********************************************************************/ |
| + |
| +input[type='checkbox']:checked::before { |
| + -webkit-user-select: none; |
| + background-image: url($CHECK); |
| + background-size: 100% 100%; |
| + content: ''; |
| + display: block; |
| + height: 100%; |
| + width: 100%; |
| +} |
| + |
| +input[type='radio']:checked::before { |
| + background-color: #666; |
| + border-radius: 100%; |
| + bottom: 3px; |
| + content: ''; |
| + display: block; |
| + left: 3px; |
| + position: absolute; |
| + right: 3px; |
| + top: 3px; |
| +} |
| + |
| +/* Hover **********************************************************************/ |
| + |
| +:enabled:hover:-webkit-any( |
| + select, |
| + input[type='checkbox'], |
| + input[type='radio'], |
| + :-webkit-any( |
| + button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button)) { |
| + background-image: linear-gradient(#f0f0f0, #f0f0f0 38%, #e0e0e0); |
| + border-color: rgba(0, 0, 0, 0.3); |
| + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.12), |
| + inset 0 1px 2px rgba(255, 255, 255, 0.95); |
| + color: black; |
| +} |
| + |
| +:enabled:hover:-webkit-any(select) { |
| + /* OVERRIDE */ |
| + background-image: url($SELECT), |
| + linear-gradient(#f0f0f0, #f0f0f0 38%, #e0e0e0); |
| +} |
| + |
| +/* Active *********************************************************************/ |
| + |
| +:enabled:active:-webkit-any( |
| + select, |
| + input[type='checkbox'], |
| + input[type='radio'], |
| + :-webkit-any( |
| + button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button)) { |
| + background-image: linear-gradient(#e7e7e7, #e7e7e7 38%, #d7d7d7); |
| + box-shadow: none; |
| + text-shadow: none; |
| +} |
| + |
| +:enabled:active:-webkit-any(select) { |
| + /* OVERRIDE */ |
| + background-image: url($SELECT), |
| + linear-gradient(#e7e7e7, #e7e7e7 38%, #d7d7d7); |
| +} |
| + |
| +/* Disabled *******************************************************************/ |
| + |
| +:disabled:-webkit-any( |
| + button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button), |
| +select:disabled { |
| + background-image: linear-gradient(#f1f1f1, #f1f1f1 38%, #e6e6e6); |
| + border-color: rgba(80, 80, 80, 0.2); |
| + box-shadow: 0 1px 0 rgba(80, 80, 80, 0.08), |
| + inset 0 1px 2px rgba(255, 255, 255, 0.75); |
| + color: #aaa; |
| +} |
| + |
| +select:disabled { |
| + /* OVERRIDE */ |
| + background-image: url($DISABLED_SELECT), |
| + linear-gradient(#f1f1f1, #f1f1f1 38%, #e6e6e6); |
| +} |
| + |
| +input:disabled:-webkit-any([type='checkbox'], |
| + [type='radio']) { |
| + opacity: .75; |
| +} |
| + |
| +input:disabled:-webkit-any([type='password'], |
| + [type='search'], |
| + [type='text'], |
| + [type='url'], |
| + :not([type])) { |
| + color: #999; |
| +} |
| + |
| +/* Focus **********************************************************************/ |
| + |
| +:enabled:focus:-webkit-any( |
| + select, |
| + input[type='checkbox'], |
| + input[type='number'], |
| + input[type='password'], |
| + input[type='radio'], |
| + input[type='search'], |
| + input[type='text'], |
| + input[type='url'], |
| + input:not([type]), |
| + :-webkit-any( |
| + button, |
| + input[type='button'], |
| + input[type='submit']):not(.custom-appearance):not(.link-button)) { |
| + /* OVERRIDE */ |
| + -webkit-transition: border-color 200ms; |
| + /* We use border color because it follows the border radius (unlike outline). |
| + * This is particularly noticeable on mac. */ |
| + border-color: rgb(77, 144, 254); |
| + outline: none; |
| +} |
| + |
| +/* Link buttons ***************************************************************/ |
| + |
| +.link-button { |
| + box-shadow: none; |
| + background: transparent none; |
| + border: none; |
| + color: rgb(17, 85, 204); |
| + cursor: pointer; |
| + /* Input elements have -webkit-small-control which can override the body font. |
| + * Resolve this by using 'inherit'. */ |
| + font: inherit; |
| + margin: 0; |
| + padding: 0 4px; |
| +} |
| + |
| +.link-button:hover { |
| + text-decoration: underline; |
| +} |
| + |
| +.link-button:active { |
| + color: rgb(5, 37, 119); |
| + text-decoration: underline; |
| +} |
| + |
| +.link-button[disabled] { |
| + color: #999; |
| + cursor: default; |
| + text-decoration: none; |
| +} |
| + |
| +/* Checkbox/radio helpers ****************************************************** |
| + * |
| + * .checkbox and .radio classes wrap labels. Checkboxes and radios should use |
| + * these classes with the markup structure: |
| + * |
| + * <div class="checkbox"> |
| + * <label> |
| + * <input type="checkbox"></input> |
| + * <span> |
| + * </label> |
| + * </div> |
| + */ |
| + |
| +:-webkit-any(.checkbox, .radio) label { |
| + /* Don't expand horizontally: <http://crbug.com/112091>. */ |
| + display: inline-flex; |
| + padding-bottom: 7px; |
| + padding-top: 7px; |
| +} |
| + |
| +:-webkit-any(.checkbox, .radio) label input ~ span { |
| + -webkit-margin-start: 0.6em; |
| + /* Make sure long spans wrap at the same horizontal position they start. */ |
| + display: block; |
| +} |
| + |
| +:-webkit-any(.checkbox, .radio) label:hover { |
| + color: black; |
| +} |
| + |
| +label > input:disabled:-webkit-any([type='checkbox'], [type='radio']) ~ span { |
| + color: #999; |
| } |