summaryrefslogtreecommitdiffstats
path: root/devtools/client/themes/rules.css
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/themes/rules.css')
-rw-r--r--devtools/client/themes/rules.css561
1 files changed, 561 insertions, 0 deletions
diff --git a/devtools/client/themes/rules.css b/devtools/client/themes/rules.css
new file mode 100644
index 000000000..9055101f5
--- /dev/null
+++ b/devtools/client/themes/rules.css
@@ -0,0 +1,561 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* CSS Variables specific to this panel that aren't defined by the themes */
+.theme-light {
+ --rule-highlight-background-color: #ffee99;
+}
+
+.theme-dark {
+ --rule-highlight-background-color: #594724;
+}
+
+.theme-firebug {
+ --rule-highlight-background-color: #ffee99;
+ --rule-property-name: darkgreen;
+ --rule-property-value: darkblue;
+}
+
+/* Rule View Tabpanel */
+
+.theme-firebug .ruleview {
+ font-family: monospace;
+ font-size: 11px;
+}
+
+#sidebar-panel-ruleview {
+ margin: 0;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+ /* Override the min-width from .inspector-tabpanel, as the rule panel can support small
+ widths */
+ min-width: 100px;
+}
+
+/* Rule View Toolbar */
+
+#ruleview-toolbar-container {
+ display: flex;
+ flex-direction: column;
+ height: auto;
+}
+
+#ruleview-toolbar {
+ display: flex;
+}
+
+#ruleview-toolbar > .devtools-searchbox:first-child {
+ padding-inline-start: 0px;
+}
+
+#ruleview-command-toolbar {
+ display: flex;
+}
+
+#pseudo-class-panel {
+ display: flex;
+ height: 24px;
+ overflow: hidden;
+ transition: height 150ms ease;
+}
+
+#pseudo-class-panel[hidden] {
+ height: 0px;
+}
+
+#pseudo-class-panel > label {
+ -moz-user-select: none;
+ flex-grow: 1;
+ display: flex;
+ align-items: center;
+}
+
+/* Rule View Container */
+
+#ruleview-container {
+ -moz-user-select: text;
+ overflow: auto;
+ flex: auto;
+ height: 100%;
+}
+
+/* This extra wrapper only serves as a way to get the content of the view focusable.
+ So that when the user reaches it either via keyboard or mouse, we know that the view
+ is focused and therefore can handle shortcuts.
+ However, for accessibility reasons, tabindex is set to -1 to avoid having to tab
+ through it, and the outline is hidden. */
+#ruleview-container-focusable {
+ height: 100%;
+ outline: none;
+}
+
+#ruleview-container.non-interactive {
+ pointer-events: none;
+ visibility: collapse;
+ transition: visibility 0.25s;
+}
+
+.ruleview-code {
+ direction: ltr;
+}
+
+.ruleview-property:not(:hover) > .ruleview-enableproperty {
+ pointer-events: none;
+}
+
+.ruleview-expandable-container[hidden] {
+ display: none;
+}
+
+.ruleview-expandable-container {
+ display: block;
+}
+
+.ruleview-namecontainer {
+ cursor: text;
+}
+
+.ruleview-propertyvaluecontainer {
+ cursor: text;
+ padding-right: 5px;
+}
+
+.ruleview-propertyvaluecontainer a {
+ cursor: pointer;
+}
+
+.ruleview-computedlist,
+.ruleview-overridden-rule-filter[hidden],
+.ruleview-warning[hidden] {
+ display: none;
+}
+
+.ruleview-computedlist[user-open],
+.ruleview-computedlist[filter-open] {
+ display: block;
+}
+
+.ruleview-rule-source {
+ text-align: end;
+ float: right;
+ max-width: 100%;
+
+ /* Force RTL direction to crop the source link at the beginning. */
+ direction: rtl;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ -moz-user-select: none;
+ margin-bottom: 2px;
+}
+
+.ruleview-rule-source-label {
+ white-space: nowrap;
+ margin: 0;
+ cursor: pointer;
+
+ /* Create an LTR embed to avoid special characters being shifted to the start due to the
+ parent node direction: rtl; */
+ direction: ltr;
+ unicode-bidi: embed
+}
+
+.ruleview-rule-source[unselectable],
+.ruleview-rule-source[unselectable] > .ruleview-rule-source-label {
+ cursor: default;
+}
+
+.theme-firebug .ruleview-rule-source-label {
+ font-family: var(--proportional-font-family);
+ font-weight: bold;
+ color: #0000FF;
+}
+
+.ruleview-rule-source:not([unselectable]):hover {
+ text-decoration: underline;
+}
+
+.ruleview-header {
+ border-top-width: 1px;
+ border-bottom-width: 1px;
+ border-top-style: solid;
+ border-bottom-style: solid;
+ padding: 1px 4px;
+ -moz-user-select: none;
+ word-wrap: break-word;
+ vertical-align: middle;
+ min-height: 1.5em;
+ line-height: 1.5em;
+ margin-top: -1px;
+}
+
+.theme-firebug .theme-gutter.ruleview-header {
+ font-family: var(--proportional-font-family);
+ font-weight: bold;
+ color: inherit;
+ border: none;
+ margin: 4px 0;
+ padding: 3px 4px 2px 4px;
+ line-height: inherit;
+ min-height: 0;
+ background: var(--theme-header-background);
+}
+
+:root[platform="win"] .ruleview-header,
+:root[platform="linux"] .ruleview-header {
+ margin-top: 4px;
+}
+
+.ruleview-header.ruleview-expandable-header {
+ cursor: pointer;
+}
+
+.ruleview-rule-pseudo-element {
+ padding-left:20px;
+ border-left: solid 10px;
+}
+
+.ruleview-rule {
+ padding: 2px 4px;
+}
+
+/**
+ * Display rules that don't match the current selected element and uneditable
+ * user agent styles differently
+ */
+.ruleview-rule[unmatched=true],
+.ruleview-rule[uneditable=true] {
+ background: var(--theme-tab-toolbar-background);
+}
+
+.ruleview-rule[unmatched=true] {
+ opacity: 0.5;
+}
+
+.ruleview-rule[uneditable=true] :focus {
+ outline: none;
+}
+
+.ruleview-rule[uneditable=true] .theme-link {
+ color: var(--theme-highlight-bluegrey);
+}
+
+.ruleview-rule[uneditable=true] .ruleview-enableproperty {
+ visibility: hidden;
+}
+
+.ruleview-rule[uneditable=true] .ruleview-swatch {
+ cursor: default;
+}
+
+.ruleview-rule[uneditable=true] .ruleview-namecontainer > .ruleview-propertyname,
+.ruleview-rule[uneditable=true] .ruleview-propertyvaluecontainer >
+.ruleview-propertyvalue {
+ border-bottom-color: transparent;
+}
+
+.theme-firebug .ruleview-namecontainer > .ruleview-propertyname,
+.theme-firebug .ruleview-propertyvaluecontainer > .ruleview-propertyvalue {
+ border-bottom: none;
+}
+
+.theme-firebug .ruleview-namecontainer > .ruleview-propertyname {
+ color: var(--rule-property-name);
+}
+
+.theme-firebug .ruleview-propertyvaluecontainer > .ruleview-propertyvalue {
+ color: var(--rule-property-value);
+}
+
+.theme-firebug .ruleview-overridden .ruleview-propertyname,
+.theme-firebug .ruleview-overridden .ruleview-propertyvalue {
+ text-decoration: line-through;
+}
+
+.theme-firebug .ruleview-enableproperty:not([checked]) ~ .ruleview-namecontainer,
+.theme-firebug .ruleview-enableproperty:not([checked]) ~ .ruleview-namecontainer *,
+.theme-firebug .ruleview-enableproperty:not([checked]) ~ .ruleview-propertyvaluecontainer,
+.theme-firebug .ruleview-enableproperty:not([checked]) ~ .ruleview-propertyvaluecontainer *,
+.theme-firebug .ruleview-overridden > * > .ruleview-computed:not(.ruleview-overridden),
+.theme-firebug .ruleview-overridden > * > .ruleview-computed:not(.ruleview-overridden) * {
+ color: #CCCCCC;
+}
+
+.ruleview-rule + .ruleview-rule {
+ border-top-width: 1px;
+ border-top-style: dotted;
+}
+
+.theme-firebug .ruleview-rule + .ruleview-rule {
+ border-top: none;
+}
+
+.ruleview-warning {
+ background-image: url(images/alerticon-warning.png);
+ background-size: 13px 12px;
+ margin-inline-start: 5px;
+ display: inline-block;
+ width: 13px;
+ height: 12px;
+}
+
+@media (min-resolution: 1.1dppx) {
+ .ruleview-warning {
+ background-image: url(images/alerticon-warning@2x.png);
+ }
+}
+
+.ruleview-overridden-rule-filter {
+ background-image: url(chrome://devtools/skin/images/filter.svg#filterinput);
+ background-size: 11px 11px;
+ margin-inline-start: 5px;
+ display: inline-block;
+ width: 11px;
+ height: 11px;
+}
+
+.ruleview-ruleopen {
+ padding-inline-end: 5px;
+}
+
+.ruleview-ruleclose {
+ cursor: text;
+ padding-right: 20px;
+}
+
+.ruleview-propertylist {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.ruleview-rule:not(:hover) .ruleview-enableproperty {
+ visibility: hidden;
+}
+
+.ruleview-expander {
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.ruleview-rule .ruleview-expander.theme-twisty:dir(rtl) {
+ /* for preventing .theme-twisty's wrong direction in rtl; Bug 1296648 */
+ transform: none;
+}
+
+.ruleview-newproperty {
+ /* (enable checkbox width: 12px) + (expander width: 15px) */
+ margin-inline-start: 27px;
+}
+
+.ruleview-namecontainer,
+.ruleview-propertyvaluecontainer,
+.ruleview-propertyname,
+.ruleview-propertyvalue {
+ text-decoration: inherit;
+}
+
+.ruleview-computedlist {
+ list-style: none;
+ padding: 0;
+}
+
+.ruleview-computed {
+ margin-inline-start: 35px;
+}
+
+.ruleview-grid,
+.ruleview-swatch {
+ cursor: pointer;
+ border-radius: 50%;
+ width: 0.9em;
+ height: 0.9em;
+ vertical-align: middle;
+ /* align the swatch with its value */
+ margin-top: -1px;
+ margin-inline-end: 5px;
+ display: inline-block;
+ position: relative;
+}
+
+.ruleview-grid {
+ background: url("chrome://devtools/skin/images/grid.svg");
+ background-size: 1em;
+ border-radius: 0;
+}
+
+.ruleview-colorswatch::before {
+ content: '';
+ background-color: #eee;
+ background-image: linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%, #ccc),
+ linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%, #ccc);
+ background-size: 12px 12px;
+ background-position: 0 0, 6px 6px;
+ position: absolute;
+ border-radius: 50%;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: -1;
+}
+
+.ruleview-bezierswatch {
+ background: url("chrome://devtools/skin/images/cubic-bezier-swatch.png");
+ background-size: 1em;
+}
+
+.ruleview-filterswatch {
+ background: url("chrome://devtools/skin/images/filter-swatch.svg");
+ background-size: 1em;
+}
+
+.ruleview-angleswatch {
+ background: url("chrome://devtools/skin/images/angle-swatch.svg");
+ background-size: 1em;
+}
+
+@media (min-resolution: 1.1dppx) {
+ .ruleview-bezierswatch {
+ background: url("chrome://devtools/skin/images/cubic-bezier-swatch@2x.png");
+ background-size: 1em;
+ }
+}
+
+.ruleview-overridden {
+ text-decoration: line-through;
+}
+
+.theme-light .ruleview-overridden {
+ text-decoration-color: var(--theme-content-color3);
+}
+
+.styleinspector-propertyeditor {
+ border: 1px solid #CCC;
+ padding: 0;
+ margin: -1px -3px -1px -1px;
+}
+
+.theme-firebug .styleinspector-propertyeditor {
+ border: 1px solid var(--theme-splitter-color);
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
+}
+
+.ruleview-property {
+ border-left: 3px solid transparent;
+ clear: right;
+}
+
+.ruleview-propertycontainer > * {
+ vertical-align: middle;
+}
+
+.ruleview-property[dirty] {
+ border-left-color: var(--theme-highlight-green);
+}
+
+.ruleview-highlight {
+ background-color: var(--rule-highlight-background-color);
+}
+
+.ruleview-namecontainer > .ruleview-propertyname,
+.ruleview-propertyvaluecontainer > .ruleview-propertyvalue {
+ border-bottom: 1px dashed transparent;
+}
+
+.ruleview-namecontainer:hover > .ruleview-propertyname,
+.ruleview-propertyvaluecontainer:hover > .ruleview-propertyvalue {
+ border-bottom-color: hsl(0,0%,50%);
+}
+
+.ruleview-selectorcontainer {
+ word-wrap: break-word;
+ cursor: text;
+}
+
+.ruleview-selector-separator,
+.ruleview-selector-unmatched {
+ color: #888;
+}
+
+.ruleview-selector-matched > .ruleview-selector-attribute {
+ /* TODO: Bug 1178535 Awaiting UX feedback on highlight colors */
+}
+
+.ruleview-selector-matched > .ruleview-selector-pseudo-class {
+ /* TODO: Bug 1178535 Awaiting UX feedback on highlight colors */
+}
+
+.ruleview-selector-matched > .ruleview-selector-pseudo-class-lock {
+ font-weight: bold;
+ color: var(--theme-highlight-orange);
+}
+
+.theme-firebug .ruleview-selector > .ruleview-selector-matched,
+.theme-firebug .ruleview-selector > .ruleview-selector-separator,
+.theme-firebug .ruleview-selector > .ruleview-selector-unmatched {
+ color: inherit;
+}
+
+.ruleview-selectorhighlighter {
+ background: url("chrome://devtools/skin/images/vview-open-inspector.png") no-repeat 0 0;
+ padding-left: 16px;
+ margin-left: 5px;
+ cursor: pointer;
+}
+
+.ruleview-selectorhighlighter:hover {
+ filter: url(images/filters.svg#checked-icon-state);
+}
+
+.ruleview-grid.active,
+.ruleview-selectorhighlighter:active,
+.ruleview-selectorhighlighter.highlighted {
+ filter: url(images/filters.svg#checked-icon-state) brightness(0.9);
+}
+
+#ruleview-add-rule-button::before {
+ background-image: url("chrome://devtools/skin/images/add.svg");
+ background-size: cover;
+}
+
+#pseudo-class-panel-toggle::before {
+ background-image: url("chrome://devtools/skin/images/pseudo-class.svg");
+ background-size: cover;
+}
+
+.ruleview-overridden-rule-filter {
+ opacity: 0.8;
+}
+.ruleview-overridden-rule-filter:hover {
+ opacity: 1;
+}
+
+.theme-firebug .ruleview-overridden {
+ text-decoration: none;
+}
+
+/* Firebug theme disable/enable CSS rule. Firebug theme uses its own
+ icons to indicate when CSS rules can be disabled or enabled. */
+
+.theme-firebug .ruleview-rule .theme-checkbox {
+ background-repeat: no-repeat;
+ background-size: 12px 12px;
+ background-image: url(chrome://devtools/skin/images/firebug/disable.svg);
+ background-position: 0 0;
+}
+
+.theme-firebug .ruleview-rule .theme-checkbox:not([checked]){
+ filter: grayscale(1);
+}
+
+.theme-firebug .ruleview-rule .theme-checkbox[checked] {
+ background-position: 0 0;
+}
+
+.theme-firebug .ruleview-property:not(:hover) .ruleview-enableproperty {
+ visibility: hidden;
+}