first part of syncing LCARStrek with Firefox 37 windows theme changes
[themes.git] / LCARStrek / browser / devtools / widgets.css
index 394d732319b9c72501d3d944fd3d68ea9939bdce..2979d74cc6a646cd7d1584f4389195c8a8fca31e 100644 (file)
@@ -3,10 +3,11 @@
  * 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/. */
 
+/* === BEGIN widgets.inc.css === */
+
 /* Generic pane helpers */
 
 .generic-toggled-side-pane {
-  min-width: 50px;
   -moz-margin-start: 0px !important;
   /* Unfortunately, transitions don't work properly with locale-aware properties,
      so both the left and right margins are set via js, while the start margin
   transition: margin 0.25s ease-in-out;
 }
 
-/* BreacrumbsWidget */
+/* Responsive container */
 
-.breadcrumbs-widget-container {
-  -moz-margin-end: 3px;
-  /* A fake 1px-shadow is included in the border-images of the
-     breadcrumbs-widget-items, to match toolbar-buttons style.
-     This negative margin compensates the extra row of pixels created
-     by the shadow.*/
-/*  margin: -1px 0;*/
+.devtools-responsive-container {
+  -moz-box-orient: horizontal;
 }
 
-/* Preloading hack, LTR */
+.devtools-main-content {
+  min-width: 50px;
+}
 
-.breadcrumbs-widget-container:-moz-locale-dir(ltr)::after {
-  content: '';
-  display: block;
-  background-image:
-    url("breadcrumbs/ltr-start.png"),
-    url("breadcrumbs/ltr-start-selected.png"),
-    url("breadcrumbs/ltr-start-pressed.png"),
-    url("breadcrumbs/ltr-start-selected-pressed.png"),
-    url("breadcrumbs/ltr-middle.png"),
-    url("breadcrumbs/ltr-middle-selected.png"),
-    url("breadcrumbs/ltr-middle-pressed.png"),
-    url("breadcrumbs/ltr-middle-selected-pressed.png"),
-    url("breadcrumbs/ltr-end.png"),
-    url("breadcrumbs/ltr-end-selected.png"),
-    url("breadcrumbs/ltr-end-pressed.png"),
-    url("breadcrumbs/ltr-end-selected-pressed.png");
-}
-
-/* Preloading hack, RTL */
-
-.breadcrumbs-widget-container:-moz-locale-dir(rtl)::after {
-  content: '';
-  display: block;
-  background-image:
-    url("breadcrumbs/rtl-start.png"),
-    url("breadcrumbs/rtl-start-selected.png"),
-    url("breadcrumbs/rtl-start-pressed.png"),
-    url("breadcrumbs/rtl-start-selected-pressed.png"),
-    url("breadcrumbs/rtl-middle.png"),
-    url("breadcrumbs/rtl-middle-selected.png"),
-    url("breadcrumbs/rtl-middle-pressed.png"),
-    url("breadcrumbs/rtl-middle-selected-pressed.png"),
-    url("breadcrumbs/rtl-end.png"),
-    url("breadcrumbs/rtl-end-selected.png"),
-    url("breadcrumbs/rtl-end-pressed.png"),
-    url("breadcrumbs/rtl-end-selected-pressed.png");
+.devtools-main-content,
+.devtools-sidebar-tabs {
+  /* Prevent some children that should be hidden from remaining visible as this is shrunk (Bug 971959) */
+  position: relative;
+}
+
+@media (max-width: 700px) {
+  .devtools-responsive-container {
+    -moz-box-orient: vertical;
+  }
+
+  .devtools-responsive-container > .devtools-side-splitter {
+    /* This is a normally vertical splitter, but we have turned it horizontal
+       due to the smaller resolution */
+    border: 0;
+    margin: 0;
+    min-height: 3px;
+    height: 3px;
+    margin-top: -3px;
+
+    /* Reset the vertical splitter styles */
+    width: auto;
+    min-width: 0;
+
+    /* In some edge case the cursor is not changed to n-resize */
+    cursor: n-resize;
+  }
+
+  .devtools-responsive-container > .devtools-sidebar-tabs {
+    min-height: 35vh;
+    max-height: 75vh;
+  }
+}
+
+/* BreacrumbsWidget */
+
+.breadcrumbs-widget-container {
+  -moz-margin-start: 2px;
+  -moz-margin-start: 2px;
+  max-height: 24px; /* Set max-height for proper sizing on linux */
+  height: 24px; /* Set height to prevent starting small waiting for content */
 }
 
 .scrollbutton-up,
 .scrollbutton-down {
-  min-height: 25px;
-  margin-top: 0;
-  margin-bottom: 0;
+  background: transparent;
+  box-shadow: none;
+  border: none;
+  margin: 0;
+  padding: 0;
 }
 
 .scrollbutton-up {
   -moz-margin-end: 0;
 }
 
-.scrollbutton-up:not([disabled]):active:hover,
-.scrollbutton-down:not([disabled]):active:hover {
-}
-
 .scrollbutton-up > .toolbarbutton-icon,
 .scrollbutton-down > .toolbarbutton-icon {
   /* margin: 0 5px; */
   border-bottom-right-radius: 0;
 }
 
-.scrollbutton-up > .toolbarbutton-icon:-moz-locale-dir(rtl),
-.scrollbutton-down > .toolbarbutton-icon:-moz-locale-dir(ltr) {
-/*  transform: scaleX(-1); */
-}
-
-.breadcrumbs-widget-item {
-  background-color: #000000;
-  overflow: hidden;
-  min-width: 85px;
-  max-width: 250px;
-  min-height: 25px;
-  border-style: solid;
-  border-width: 2px 13px;
-  border-radius: 0;
-  margin: 0 -11px 0 0;
-  padding: 0 9px;
-  outline: none;
-  color: #FF9F00;
-}
-
-.breadcrumbs-widget-item:hover {
-  background-color: #FFCF00;
-  color: #000000;
-}
-
-.breadcrumbs-widget-item[checked]:not(:hover) {
-  background-color: #008484;
-  color: #000000;
+/* Draw shadows to indicate there is more content 'behind' scrollbuttons. */
+/*
+.scrollbutton-up:-moz-locale-dir(ltr),
+.scrollbutton-down:-moz-locale-dir(rtl) {
+  border-right: solid 1px rgba(255, 255, 255, .1);
+  border-left: solid 1px transparent;
+  box-shadow: 3px 0px 3px -3px var(--theme-sidebar-background);
 }
 
-.breadcrumbs-widget-item[siblings-menu-open],
-.breadcrumbs-widget-item:active {
-  background-color: #FF9F00;
-  color: #000000;
+.scrollbutton-down:-moz-locale-dir(ltr),
+.scrollbutton-up:-moz-locale-dir(rtl) {
+  border-right: solid 1px transparent;
+  border-left: solid 1px rgba(255, 255, 255, .1);
+  box-shadow: -3px 0px 3px -3px var(--theme-sidebar-background);
 }
 
-.breadcrumbs-widget-item:-moz-focusring > label {
-  border-bottom: 1px dotted #008484;
+.scrollbutton-up[disabled],
+.scrollbutton-down[disabled] {
+  box-shadow: none;
+  border-color: transparent;
 }
+*/
 
-.breadcrumbs-widget-item:-moz-focusring > .button-box {
-  border-width: 0;
+.scrollbutton-up > .toolbarbutton-icon:-moz-locale-dir(rtl),
+.scrollbutton-down > .toolbarbutton-icon:-moz-locale-dir(ltr) {
+/*  transform: scaleX(-1); */
 }
 
-.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-tag {
-  /* color: hsl(208,100%,60%); */
+/* The breadcrumb separator elements are used as background images with
+ * -moz-element, so we position them offscreen since we don't care about
+ * seeing the original elements.
+ */
+.breadcrumb-separator-container {
+  position: fixed;
+  top: -1000px;
+  left: -1000px;
 }
 
-.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-id {
-  /* color: hsl(205,100%,70%); */
+#breadcrumb-separator-before,
+#breadcrumb-separator-after,
+#breadcrumb-separator-normal {
+  width: 12px;
+  height: 24px;
+  overflow: hidden;
 }
 
-.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-pseudo-classes {
-  color: #FF9F00;
+#breadcrumb-separator-before,
+#breadcrumb-separator-after:after {
+  background: var(--theme-selection-background);
 }
 
-.breadcrumbs-widget-item-id,
-.breadcrumbs-widget-item-classes {
-  /* color: #8d99a6; */
+#breadcrumb-separator-after,
+#breadcrumb-separator-before:after {
+  background: var(--theme-toolbar-background);
 }
 
-.breadcrumbs-widget-item-pseudo-classes {
-  color: #FFCF00;
+/* This chevron arrow cannot be replicated easily in CSS, so we are using
+ * a background image for it (still keeping it in a separate element so
+ * we can handle RTL support with a CSS transform).
+ */
+#breadcrumb-separator-normal {
+  background: url("breadcrumbs-divider@2x.png") no-repeat center right;
+  background-size: 12px 24px;
 }
 
-/* Breadcrumbs LTR */
-
-.breadcrumbs-widget-item:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-middle.png") 2 13 2 13 fill stretch;
+/* Fake a triangle by rotating a rectangle inside the elements */
+#breadcrumb-separator-before:after,
+#breadcrumb-separator-after:after {
+  content: "";
+  display: block;
+  width: 25px;
+  height: 24px;
+  transform: translateX(-18px) rotate(45deg);
+  box-sizing: border-box;
 }
 
-.breadcrumbs-widget-item:not([checked]):hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-middle-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item {
+  background-color: var(--theme-toolbar-background);
+  min-height: 24px;
+  min-width: 65px;
+  margin: 0;
+  padding: 0 8px 0 20px;
+  border: none;
+  border-radius: 0;
+  outline: none;
+  color: var(--theme-content-color1);
 }
 
-.breadcrumbs-widget-item[checked]:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-middle-selected.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item:hover {
+  background-color: var(--theme-hover-background);
+  color: var(--theme-hover-color);
 }
 
-.breadcrumbs-widget-item[checked]:hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-middle-selected-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item[checked]:not(:hover) {
+  background-color: var(--theme-selection-background);
+  color: var(--theme-selection-color);
 }
 
-.breadcrumbs-widget-item:first-of-type:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-start.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item[siblings-menu-open],
+.breadcrumbs-widget-item:active {
+  background-color: #FF9F00;
+  color: #000000;
 }
 
-.breadcrumbs-widget-item:first-of-type:not([checked]):hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-start-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item > .button-box {
+  border: none;
+  padding-top: 0;
+  padding-bottom: 0;
 }
 
-.breadcrumbs-widget-item:first-of-type[checked]:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-start-selected.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item:not([checked]) {
+  background-image: -moz-element(#breadcrumb-separator-normal);
+  background-repeat: no-repeat;
+  background-position: center left;
 }
 
-.breadcrumbs-widget-item:first-of-type[checked]:hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-start-selected-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item {
+  background-image: -moz-element(#breadcrumb-separator-after);
+  background-repeat: no-repeat;
+  background-position: 0 0;
 }
 
-.breadcrumbs-widget-item:last-of-type:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-end.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item[checked] {
+  background-image: -moz-element(#breadcrumb-separator-before);
+  background-repeat: no-repeat;
+  background-position: 0 0;
+  background-color: #008484; /* Select Highlight Blue */
 }
 
-.breadcrumbs-widget-item:last-of-type:not([checked]):hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-end-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item:first-child {
+  background-image: none;
 }
 
-.breadcrumbs-widget-item:last-of-type[checked]:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-end-selected.png") 2 13 2 13 fill stretch;
+/* RTL support: move the images that were on the left to the right,
+ * and move images that were on the right to the left.
+ */
+.breadcrumbs-widget-item:-moz-locale-dir(rtl) {
+  padding: 0 20px 0 8px;
 }
 
-.breadcrumbs-widget-item:last-of-type[checked]:hover:active:-moz-locale-dir(ltr) {
-  border-image: url("breadcrumbs/ltr-end-selected-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item:-moz-locale-dir(rtl),
+.breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item:-moz-locale-dir(rtl) {
+  background-position: center right;
 }
 
-.breadcrumbs-widget-container[overflows] > .breadcrumbs-widget-item:first-of-type:-moz-locale-dir(ltr) {
+#breadcrumb-separator-before:-moz-locale-dir(rtl),
+#breadcrumb-separator-after:-moz-locale-dir(rtl),
+#breadcrumb-separator-normal:-moz-locale-dir(rtl) {
+  transform: scaleX(-1);
 }
 
-.breadcrumbs-widget-container[overflows] > .breadcrumbs-widget-item:last-of-type:-moz-locale-dir(ltr) {
+#breadcrumb-separator-before:-moz-locale-dir(rtl):after,
+#breadcrumb-separator-after:-moz-locale-dir(rtl):after {
+  transform: translateX(-5px) rotate(45deg);
 }
 
-/* Breadcrumbs RTL */
-
-.breadcrumbs-widget-item:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-middle.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-id,
+.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-tag,
+.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-pseudo-classes,
+.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-classes {
+  color: var(--theme-highlight-lightorange);
 }
 
-.breadcrumbs-widget-item:not([checked]):hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-middle-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item:not([checked]):hover .breadcrumbs-widget-item-id,
+.breadcrumbs-widget-item:not([checked]):hover .breadcrumbs-widget-item-tag,
+.breadcrumbs-widget-item:not([checked]):hover .breadcrumbs-widget-item-pseudo-classes,
+.breadcrumbs-widget-item:not([checked]):hover .breadcrumbs-widget-item-classes {
+  color: var(--theme-hover-color) !important;
 }
 
-.breadcrumbs-widget-item[checked]:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-middle-selected.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item {
+  color: var(--theme-highlight-lightorange);
 }
 
-.breadcrumbs-widget-item[checked]:hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-middle-selected-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item-id {
+  color: var(--theme-body-color-alt);
 }
 
-.breadcrumbs-widget-item:first-of-type:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-start.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item-classes {
+  color: var(--theme-content-color1);
 }
 
-.breadcrumbs-widget-item:first-of-type:not([checked]):hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-start-pressed.png") 2 13 2 13 fill stretch;
+.breadcrumbs-widget-item-pseudo-classes {
+  color: var(--theme-highlight-lightorange);
 }
 
-.breadcrumbs-widget-item:first-of-type[checked]:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-start-selected.png") 2 13 2 13 fill stretch;
-}
+/* SimpleListWidget */
 
-.breadcrumbs-widget-item:first-of-type[checked]:hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-start-selected-pressed.png") 2 13 2 13 fill stretch;
+.simple-list-widget-container {
+  /* Hack: force hardware acceleration */
+  transform: translateZ(1px);
 }
 
-.breadcrumbs-widget-item:last-of-type:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-end.png") 2 13 2 13 fill stretch;
+.simple-list-widget-item.selected {
+  background-color: var(--theme-selection-background);
+  color: var(--theme-selection-color);
 }
 
-.breadcrumbs-widget-item:last-of-type:not([checked]):hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-end-pressed.png") 2 13 2 13 fill stretch;
+.simple-list-widget-item:not(.selected):hover {
+  background-color: var(--theme-hover-background);
+  color: var(--theme-hover-color);
 }
 
-.breadcrumbs-widget-item:last-of-type[checked]:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-end-selected.png") 2 13 2 13 fill stretch;
+.simple-list-widget-perma-text,
+.simple-list-widget-empty-text {
+  color: var(--theme-body-color-alt);
+  padding: 4px 8px;
 }
 
-.breadcrumbs-widget-item:last-of-type[checked]:hover:active:-moz-locale-dir(rtl) {
-  border-image: url("breadcrumbs/rtl-end-selected-pressed.png") 2 13 2 13 fill stretch;
-}
+/* FastListWidget */
 
-.breadcrumbs-widget-container[overflows] > .breadcrumbs-widget-item:first-of-type:-moz-locale-dir(rtl) {
+.fast-list-widget-container {
+  /* Hack: force hardware acceleration */
+  transform: translateZ(1px);
 }
 
-.breadcrumbs-widget-container[overflows] > .breadcrumbs-widget-item:last-of-type:-moz-locale-dir(rtl) {
+/* dark/light theme */
+.fast-list-widget-empty-text {
+  padding: 12px;
+  font-weight: 600;
+  color: var(--theme-body-color-alt);
 }
 
 /* SideMenuWidget */
 
+/* SideMenuWidget container */
+
 .side-menu-widget-container {
-  background-color: #000000;
-  color: #FF9F00;
+  /* Hack: force hardware acceleration */
+  transform: translateZ(1px);
 }
 
-/* SideMenuWidget container */
-
-.side-menu-widget-container[with-arrows=true]:-moz-locale-dir(ltr) {
+.side-menu-widget-container:-moz-locale-dir(ltr),
+.side-menu-widget-empty-text:-moz-locale-dir(ltr) {
 }
 
-.side-menu-widget-container[with-arrows=true]:-moz-locale-dir(rtl) {
+.side-menu-widget-container:-moz-locale-dir(rtl),
+.side-menu-widget-empty-text:-moz-locale-dir(rtl)[with-arrows=true]:-moz-locale-dir(rtl) {
 }
 
-.side-menu-widget-container[with-arrows=true] .side-menu-widget-group {
+.side-menu-widget-group {
   /* To allow visibility of the dark margin shadow. */
 /*  -moz-margin-end: 1px; */
 }
 
 .side-menu-widget-group-title {
   padding: 4px;
-
-  background-color: #A09090;
-  color: #000000;
+  background-color: var(--theme-contrastsidebar-background);
+  color: var(--theme-contrastsidebar-color);
 }
 
 /* SideMenuWidget items */
 
 .side-menu-widget-item {
   border-top: 1px solid #9C9CFF;
+  /* To compensate for the top and bottom borders */
   margin-top: -1px;
   margin-bottom: -1px;
+  background-clip: padding-box;
 }
 
 .side-menu-widget-item:last-of-type {
 }
 
 .side-menu-widget-item.selected {
-  background-color: #008484 !important;
-  color: #000000;
+  background-color: var(--theme-selection-background);
+  color: var(--theme-selection-color);
+}
+
+.side-menu-widget-item-arrow {
+  -moz-margin-start: -7px;
+  width: 7px; /* The image's width is 7 pixels */
+  /* Cover the border of the side-menu-widget-item */
+  margin-top: -1px;
+  margin-bottom: -1px;
 }
 
 .side-menu-widget-item.selected > .side-menu-widget-item-arrow {
 }
 
 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(ltr) {
-  background-image: url("itemArrow-ltr.png"), linear-gradient(to right, #000000, #000000);
-  background-position: center right, top right;
+  background-position: center right;
 }
 
 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(rtl) {
-  background-image: url("itemArrow-rtl.png"), linear-gradient(to right, #000000, #000000);
-  background-position: center left, top left;
+  background-position: center left;
 }
 
-/* SideMenuWidget items contents */
+.side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(ltr) {
+  background-image: url("itemArrow-ltr.svg");
+}
 
-.side-menu-widget-item-label {
-  padding: 4px 0px;
+.side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(rtl) {
+  background-image: url("itemArrow-rtl.svg");
 }
 
-.side-menu-widget-item-arrow {
-  -moz-margin-start: -8px;
-  width: 8px;
+/* SideMenuWidget items contents */
+
+.side-menu-widget-item-contents {
+  padding: 4px;
+  /* To avoid having content overlapping the arrow image. */
+  -moz-padding-end: 8px;
 }
 
 .side-menu-widget-item-other {
-  background-color: #000000;
-  margin: 0 -4px;
-  -moz-padding-start: 5px;
+  /* To avoid having content overlapping the arrow image. */
+  -moz-padding-end: 8px;
+  /* To compensate for the .side-menu-widget-item-contents padding. */
+  -moz-margin-start: -4px;
+  -moz-margin-end: -8px;
+  color: var(--theme-selection-color);
 }
 
 .side-menu-widget-item-other.selected {
-  background-color: #008484;
-  color: #000000;
+  background-color: var(--theme-selection-background);
+  color: var(--theme-selection-color);
 }
 
 .side-menu-widget-item-other:first-of-type {
+  margin-top: 4px;
 /*  border-top-left-radius: 4px; */
 }
 
+.side-menu-widget-item-other:last-of-type {
+  margin-bottom: -4px;
+}
+
 .side-menu-widget-item-other:not(.selected) > label {
   color: #9C9CFF;
 }
 
 /* SideMenuWidget misc */
 
-.side-menu-widget-empty-notice-container {
-  padding: 12px;
+.theme-dark .side-menu-widget-container,
+.theme-dark .side-menu-widget-empty-text {
+  background-color: var(--theme-toolbar-background);
+}
 
-  background-color: #000000;
-  font-weight: 600;
-  color: #A09090;
+.side-menu-widget-empty-text {
+  padding: 12px;
 }
 
 /* VariablesView */
 
-.variables-view-container {
-  background: #000000;
+.variables-view-container:not([empty]) {
+  /* Hack: force hardware acceleration */
+  transform: translateZ(1px);
 }
 
 .variables-view-empty-notice {
-  color: #A09090;
+  color: var(--theme-body-color-alt);
   padding: 2px;
 }
 
-.variables-view-scope > .title {
-  background-color: #A09090;
-  color: #000000;
+.variables-view-scope:focus > .title,
+.theme-dark .variable-or-property:focus > .title {
+  background-color: var(--theme-selection-background);
+  color: var(--theme-selection-color);
 }
 
-.variables-view-scope:focus > .title {
-  background-color: #008484;
+.variables-view-scope > .title {
+  background-color: #A09090;
   color: #000000;
 }
 
-.variables-view-scope > .variables-view-element-details:not(:empty) {
-  -moz-margin-start: 2px;
-  -moz-margin-end: 1px;
-}
-
-/* Generic traits applied to both variables and properties */
-
-.variable-or-property {
-  transition: background 1s ease-in-out;
-  color: #FF9F00;
-}
+/* Generic variables traits */
 
-.variable-or-property[changed] {
-  background: rgba(255, 207, 0, 0.3);
-  transition-duration: 0.4s;
+.variables-view-variable:not(:last-child) {
+  border-bottom: 1px solid #A09090;
 }
 
-.variable-or-property > .title > .value {
-  -moz-padding-start: 6px;
-  -moz-padding-end: 4px;
+.variables-view-variable > .title > .name {
+  font-weight: 600;
 }
 
-.variable-or-property:focus > .title {
-  background-color: #008484;
-  color: #000000;
-  border-radius: 5px;
-}
+/* Generic variables *and* properties traits */
 
-.variable-or-property[editable] > .title > .value {
-  cursor: text;
+.variable-or-property:focus > .title > label {
+  color: inherit !important;
 }
 
-.variable-or-property:not([non-header]) > .variables-view-element-details {
-  -moz-margin-start: 10px;
+.variables-view-container .theme-twisty {
+  margin: 2px;
 }
 
-/* Custom variables and properties traits */
-
-.variables-view-variable {
-  -moz-margin-start: 1px;
-  -moz-margin-end: 1px;
-  border-bottom: 1px solid #A09090;
+.variable-or-property > .title > .theme-twisty {
+  -moz-margin-start: 5px;
 }
 
-.variables-view-variable > .title > .name {
-  font-weight: 600;
+.variable-or-property:not([untitled]) > .variables-view-element-details {
+  -moz-margin-start: 7px;
 }
 
-.variables-view-variable:not(:focus) > .title > .name {
-  color: #FF9F00;
-}
+/* Traits applied when variables or properties are changed or overridden */
 
-.variables-view-property:not(:focus) > .title > .name {
-  color: #E7ADE7;
+.variable-or-property:not([overridden]) {
+  transition: background 1s ease-in-out, color 1s ease-in-out;
 }
 
-/* Token value colors */
-
-.variable-or-property:not(:focus) > .title > .token-undefined {
-  color: #8050B0;
+.variable-or-property:not([overridden])[changed] {
+  color: #000000;
+  transition-duration: .4s;
 }
 
-.variable-or-property:not(:focus) > .title > .token-null {
-  color: #008484;
+.variable-or-property[overridden] {
+  background: rgba(160,144,144,0.0.5);
 }
 
-.variable-or-property:not(:focus) > .title > .token-boolean {
-  color: #FFCF00;
+.variable-or-property[overridden] .title > label {
+  /* Cross out the title for this variable and all child properties. */
+  font-style: italic;
+  text-decoration: line-through;
+  border-bottom: none !important;
+  color: #A09090;
+  opacity: 0.7;
 }
 
-.variable-or-property:not(:focus) > .title > .token-number {
-  color: #E7ADE7;
-}
+/* Traits applied when variables or properties are editable */
 
-.variable-or-property:not(:focus) > .title > .token-string {
-  color: #9C9CFF;
+.variable-or-property[editable] > .title > .value {
+  cursor: text;
 }
 
-.variable-or-property:not(:focus) > .title > .token-other {
-  color: #FF9F00;
+.variable-or-property[overridden] .title > .value {
+  /* Disallow editing this variable and all child properties. */
+  pointer-events: none;
 }
 
 /* Custom configurable/enumerable/writable or frozen/sealed/extensible
  * variables and properties */
 
-.variable-or-property[non-enumerable]:not([self]):not([exception]):not([return]):not([scope]) > .title > .name {
-  opacity: 0.5;
-}
-
-.variable-or-property[non-configurable] > .title > .name {
-  border-bottom: 1px dashed #9C9CFF;
-}
-
-.variable-or-property[non-writable] > .title > .name {
-  border-bottom: 1px dashed #FF0000;
+.variable-or-property[non-enumerable]:not([self]):not([pseudo-item]) > .title > .name {
+  opacity: 0.6;
 }
 
 .variable-or-property-non-writable-icon {
-  background: url("chrome://browser/skin/identity-icons-https.png") no-repeat;
+  background: url("chrome://browser/skin/devtools/vview-lock.png") no-repeat;
+  background-size: cover;
   width: 16px;
   height: 16px;
   opacity: 0.5;
 
 @media (min-resolution: 2dppx) {
   .variable-or-property-non-writable-icon > .title:after {
-    background-image: url("chrome://browser/skin/identity-icons-https@2x.png");
-    background-size: 32px;
+    background-image: url("chrome://browser/skin/devtools/vview-lock@2x.png");
   }
 }
 
 .variable-or-property-frozen-label,
 .variable-or-property-sealed-label,
 .variable-or-property-non-extensible-label {
+  height: 16px;
   -moz-padding-end: 4px;
 }
 
   color: #A09090;
 }
 
-/* Special variables and properties */
-
-.variable-or-property[safe-getter] > .title > .name {
-  border-bottom: 1px dashed #A09090;
-}
-
-.variable-or-property[exception]:not(:focus) > .title > .name {
-  color: #FF0000;
-}
-
-.variable-or-property[return]:not(:focus) > .title > .name {
-  color: #008484;
-}
-
-.variable-or-property[scope]:not(:focus) > .title > .name {
-  color: #9C9CFF;
-}
-
 /* Aligned values */
 
 .variables-view-container[aligned-values] .title > .separator {
 }
 
 .variables-view-container[aligned-values] .title > .value {
+  -moz-box-flex: 0;
   width: 70vw;
 }
 
 
 /* Actions first */
 
-.variables-view-container[actions-first] .variables-view-delete {
+.variables-view-open-inspector {
+  -moz-box-ordinal-group: 1;
+}
+
+.variables-view-edit,
+.variables-view-add-property {
+  -moz-box-ordinal-group: 2;
+}
+
+.variable-or-property-frozen-label,
+.variable-or-property-sealed-label,
+.variable-or-property-non-extensible-label,
+.variable-or-property-non-writable-icon {
+  -moz-box-ordinal-group: 3;
+}
+
+.variables-view-delete {
+  -moz-box-ordinal-group: 4;
+}
+
+.variables-view-container[actions-first] .variables-view-delete,
+.variables-view-container[actions-first] .variables-view-add-property,
+.variables-view-container[actions-first] .variables-view-open-inspector {
   -moz-box-ordinal-group: 0;
 }
 
+.variables-view-container[actions-first] [invisible] {
+  visibility: hidden;
+}
+
 /* Variables and properties tooltips */
 
 .variable-or-property > tooltip > label {
   margin: 0 2px 0 2px;
 }
 
-.variable-or-property[non-enumerable] > tooltip > label[value=enumerable],
-.variable-or-property[non-configurable] > tooltip > label[value=configurable],
-.variable-or-property[non-writable] > tooltip > label[value=writable]
-.variable-or-property[non-extensible] > tooltip > label[value=extensible] {
+.variable-or-property[non-enumerable] > tooltip > label.enumerable,
+.variable-or-property[non-configurable] > tooltip > label.configurable,
+.variable-or-property[non-writable] > tooltip > label.writable
+.variable-or-property[non-extensible] > tooltip > label.extensible {
   color: #A09090;
   text-decoration: line-through;
 }
 
-.variable-or-property[safe-getter] > tooltip > label[value=WebIDL] {
+.variable-or-property[overridden] > tooltip > label.overridden {
+  -moz-padding-start: 4px;
+  -moz-border-start: 1px dotted #9C9CFF;
+}
+
+.variable-or-property[safe-getter] > tooltip > label.WebIDL {
   -moz-padding-start: 4px;
   -moz-border-start: 1px dotted #9C9CFF;
   color: #008484;
 /* Variables and properties editing */
 
 .variables-view-delete {
-  list-style-image: url("chrome://browser/skin/devtools/vview-delete.png");
-  -moz-image-region: rect(0, 16px, 16px, 0);
+  background: url("chrome://browser/skin/devtools/vview-delete.png");
+  background-size: cover;
+  width: 16px;
+  height: 16px;
+}
+
+@media (min-resolution: 2dppx) {
+  .variables-view-delete {
+    background-image: url("chrome://browser/skin/devtools/vview-delete@2x.png");
+  }
 }
 
 .variables-view-delete:hover {
-  -moz-image-region: rect(0, 32px, 16px, 16px);
+  background-position: 32px;
 }
 
 .variables-view-delete:active {
-  -moz-image-region: rect(0, 48px, 16px, 32px);
+  background-position: 16px;
 }
 
-.variables-view-delete > .toolbarbutton-text {
-  display: none;
+.variable-or-property:focus > .title > .variables-view-delete {
+/*  background-position: 0px; */
 }
 
 .variables-view-edit {
-  background: url("chrome://browser/skin/devtools/vview-edit.png") center no-repeat;
-  width: 20px;
+  background: url("chrome://browser/skin/devtools/vview-edit.png");
+  background-size: cover;
+  width: 16px;
   height: 16px;
   cursor: pointer;
 }
 
-.variables-view-throbber {
-  background: url("chrome://global/skin/icons/loading_16.png") center no-repeat;
+@media (min-resolution: 2dppx) {
+  .variables-view-edit {
+    background-image: url("chrome://browser/skin/devtools/vview-edit@2x.png");
+  }
+}
+
+.variables-view-edit:hover {
+  background-position: 32px;
+}
+
+.variables-view-edit:active {
+  background-position: 16px;
+}
+
+.variable-or-property:focus > .title > .variables-view-edit {
+/*  background-position: 0px; */
+}
+
+.variables-view-open-inspector {
+  background: url("chrome://browser/skin/devtools/vview-open-inspector.png");
+  background-size: cover;
   width: 16px;
   height: 16px;
+  cursor: pointer;
+}
+
+.variables-view-open-inspector:hover {
+  background-position: 32px;
+}
+
+.variables-view-open-inspector:active {
+  background-position: 16px;
+}
+
+.variable-or-property:focus > .title > .variables-view-open-inspector {
+/*  background-position: 0px; */
+}
+
+/* Variables and properties input boxes */
+
+.variable-or-property > .title > .separator + .element-value-input {
+  -moz-margin-start: -2px !important;
+  -moz-margin-end: 2px !important;
 }
 
-.element-value-input {
+.variable-or-property > .title > .separator[hidden=true] + .element-value-input {
   -moz-margin-start: 4px !important;
   -moz-margin-end: 2px !important;
 }
 .element-name-input {
   -moz-margin-start: -2px !important;
   -moz-margin-end: 2px !important;
-  color: #E7ADE7;
   font-weight: 600;
 }
 
 .element-value-input,
 .element-name-input {
   border: 1px solid #008484 !important;
+  color: inherit;
 }
 
 /* Variables and properties searching */
 
-.variables-view-searchinput {
-  min-height: 24px;
+.variable-or-property[unmatched] {
+  border: none;
+  margin: 0;
+}
+
+/* Canvas graphs */
+
+.graph-widget-container {
+  position: relative;
+}
+
+.graph-widget-canvas {
+  width: 100%;
+  height: 100%;
+}
+
+.graph-widget-canvas[input=hovering-background] {
+  cursor: text;
+}
+
+.graph-widget-canvas[input=hovering-region] {
+  cursor: pointer;
+}
+
+.graph-widget-canvas[input=hovering-selection-start-boundary],
+.graph-widget-canvas[input=hovering-selection-end-boundary],
+.graph-widget-canvas[input=adjusting-selection-boundary] {
+  cursor: col-resize;
+}
+
+.graph-widget-canvas[input=hovering-selection-contents] {
+  cursor: grab;
+}
+
+.graph-widget-canvas[input=dragging-selection-contents] {
+  cursor: grabbing;
+}
+
+/* Line graph widget */
+
+.line-graph-widget-gutter {
+  position: absolute;
+  background: #000000;
+  width: 10px;
+  height: 100%;
+  top: 0;
+  left: 0;
+  border-right: 1px solid #9C9CFF;
+  pointer-events: none;
 }
 
-.variable-or-property[non-match] {
+.line-graph-widget-gutter-line {
+  position: absolute;
+  width: 100%;
+  border-top: 1px solid;
+}
+
+.line-graph-widget-gutter-line[type=maximum] {
+  border-color: #008484;
+}
+
+.line-graph-widget-gutter-line[type=minimum] {
+  border-color: #FF0000;
+}
+
+.line-graph-widget-gutter-line[type=average] {
+  border-color: #FF9F00;
+}
+
+.line-graph-widget-tooltip {
+  position: absolute;
+  background: #404000;
+  border-radius: 2px;
+  line-height: 15px;
+  -moz-padding-start: 6px;
+  -moz-padding-end: 6px;
+  transform: translateY(-50%);
+  font-size: 80%;
+  z-index: 1;
+  pointer-events: none;
+}
+
+.line-graph-widget-tooltip[with-arrows=true]::before {
+  content: "";
+  position: absolute;
+  border-top: 3px solid transparent;
+  border-bottom: 3px solid transparent;
+  top: calc(50% - 3px);
+}
+
+.line-graph-widget-tooltip[arrow=start][with-arrows=true]::before {
+  -moz-border-end: 3px solid #9C9CFF;
+  left: -3px;
+}
+
+.line-graph-widget-tooltip[arrow=end][with-arrows=true]::before {
+  -moz-border-start: 3px solid #9C9CFF;
+  right: -3px;
+}
+
+.line-graph-widget-tooltip[type=maximum] {
+  left: -1px;
+}
+
+.line-graph-widget-tooltip[type=minimum] {
+  left: -1px;
+}
+
+.line-graph-widget-tooltip[type=average] {
+  right: -1px;
+}
+
+.line-graph-widget-tooltip[type=maximum][with-arrows=true] {
+  left: 14px;
+}
+
+.line-graph-widget-tooltip[type=minimum][with-arrows=true] {
+  left: 14px;
+}
+
+.line-graph-widget-tooltip[type=average][with-arrows=true] {
+  right: 4px;
+}
+
+.line-graph-widget-tooltip > [text=info] {
+  color: #A09090;
+}
+
+.line-graph-widget-tooltip > [text=value] {
+  -moz-margin-start: 3px;
+}
+
+.line-graph-widget-tooltip > [text=metric] {
+  -moz-margin-start: 1px;
+  color: #9C9CFF;
+}
+
+.line-graph-widget-tooltip > [text=value],
+.line-graph-widget-tooltip > [text=metric] {
+/*  text-shadow: 1px  0px rgba(255,255,255,0.6),
+              -1px  0px rgba(255,255,255,0.6),
+               0px -1px rgba(255,255,255,0.6),
+               0px  1px rgba(255,255,255,0.6);*/
+}
+
+.line-graph-widget-tooltip[type=maximum] > [text=value] {
+  color: #008484;
+}
+
+.line-graph-widget-tooltip[type=minimum] > [text=value] {
+  color: #FF0000;
+}
+
+.line-graph-widget-tooltip[type=average] > [text=value] {
+  color: #FF9F00;
+}
+
+/* Bar graph widget */
+
+.bar-graph-widget-canvas {
+  background: #000000;
+}
+
+.bar-graph-widget-legend {
+  position: absolute;
+  top: 4px;
+  left: 8px;
+  color: #A09090;
+  font-size: 80%;
+  pointer-events: none;
+}
+
+.bar-graph-widget-legend-item {
+  float: left;
+ -moz-margin-end: 8px;
+}
+
+.bar-graph-widget-legend-item > [view="color"],
+.bar-graph-widget-legend-item > [view="label"] {
+  vertical-align: middle;
+}
+
+.bar-graph-widget-legend-item > [view="color"] {
+  display: inline-block;
+  width: 8px;
+  height: 8px;
+  border: 1px solid #9C9CFF;
+  border-radius: 1px;
+  -moz-margin-end: 4px;
+  pointer-events: none;
+}
+
+.bar-graph-widget-legend-item > [view="label"] {
+/*  text-shadow: 1px  0px rgba(255,255,255,0.8),
+              -1px  0px rgba(255,255,255,0.8),
+               0px -1px rgba(255,255,255,0.8),
+               0px  1px rgba(255,255,255,0.8);*/
+}
+
+/* Charts */
+
+.generic-chart-container {
+  /* Hack: force hardware acceleration */
+  transform: translateZ(1px);
+}
+
+.generic-chart-container {
+  color: var(--theme-body-color-alt);
+}
+
+.chart-colored-blob {
+  fill: var(--theme-highlight-blue);
+  background: var(--theme-highlight-blue);
+}
+
+/* Charts: Pie */
+
+.pie-chart-slice {
+  stroke-width: 1px;
+  cursor: pointer;
+}
+
+.pie-chart-slice {
+  stroke: #A09090;
+}
+
+.pie-chart-slice[largest] {
+  stroke-width: 2px;
+  stroke: #9C9CFF;
+}
+
+.pie-chart-label {
+  text-anchor: middle;
+  dominant-baseline: middle;
+  pointer-events: none;
+}
+
+.pie-chart-label {
+  fill: #000;
+}
+
+.pie-chart-container[slices="1"] > .pie-chart-slice {
+  stroke-width: 0px;
+}
+
+.pie-chart-slice,
+.pie-chart-label {
+  transition: all 0.1s ease-out;
+}
+
+.pie-chart-slice:not(:hover):not([focused]),
+.pie-chart-slice:not(:hover):not([focused]) + .pie-chart-label {
+  transform: none !important;
+}
+
+/* Charts: Table */
+
+.table-chart-title {
+  padding-bottom: 10px;
+  font-size: 120%;
+  font-weight: 600;
+}
+
+.table-chart-row {
+  margin-top: 1px;
+  cursor: pointer;
+}
+
+.table-chart-grid:hover > .table-chart-row {
+  transition: opacity 0.1s ease-in-out;
+}
+
+.table-chart-grid:not(:hover) > .table-chart-row {
+  transition: opacity 0.2s ease-in-out;
+}
+
+.generic-chart-container:hover > .table-chart-grid:hover > .table-chart-row:not(:hover),
+.generic-chart-container:hover ~ .table-chart-container > .table-chart-grid > .table-chart-row:not([focused]) {
+  opacity: 0.4;
+}
+
+.table-chart-row-box {
+  width: 8px;
+  height: 1.5em;
+  -moz-margin-end: 10px;
+}
+
+.table-chart-row-label {
+  width: 8em;
+  -moz-padding-end: 6px;
+  cursor: inherit;
+}
+
+.table-chart-totals {
+  margin-top: 8px;
+  padding-top: 6px;
+}
+
+.table-chart-totals {
+  border-top: 1px solid var(--theme-body-color-alt); /* Grey foreground text */
+}
+
+.table-chart-summary-label {
+  font-weight: 600;
+  padding: 1px 0px;
+}
+
+.table-chart-summary-label {
+  color: var(--theme-content-color2);
+}
+
+/* Table Widget */
+
+/* Table body */
+
+.table-widget-body > .devtools-side-splitter {
   border: none;
+}
+
+.table-widget-body {
+  overflow: auto;
+
+  background: var(--theme-sidebar-background);
+}
+
+.table-widget-body:-moz-locale-dir(ltr) {
+/*  box-shadow: inset -1px 0 0 @smw_marginDark@;*/
+}
+
+.table-widget-body:-moz-locale-dir(rtl) {
+/*  box-shadow: inset 1px 0 0 @smw_marginDark@;*/
+}
+
+.table-widget-body:-moz-locale-dir(ltr) {
+/*  box-shadow: inset -1px 0 0 @smw_marginLight@;*/
+}
+
+.table-widget-body:-moz-locale-dir(rtl) {
+/*  box-shadow: inset 1px 0 0 @smw_marginLight@;*/
+}
+
+/* Column Headers */
+
+.table-widget-column-header,
+.table-widget-cell {
+  -moz-border-end: 1px solid #A09090;
+}
+
+/* Table widget column header colors are taken from netmonitor.inc.css to match
+   the look of both the tables. This needs to be updated along with netmonitor
+   header colors in bug 951714 */
+
+.table-widget-column-header {
+  background: rgba(0,0,0,0);
+  position: sticky;
+  top: 0;
+  min-height: 32px;
+  width: 100%;
+  border: none;
+  padding: 8px 0 0 !important;
+  color: inherit;
+  text-align: center;
+  font-weight: inherit !important;
+  transition: background-color 0.1s ease-in-out;
+}
+
+.table-widget-column-header:hover {
+  background: #FFCF00;
+}
+
+.table-widget-column-header:hover:active {
+  background: #FF9F00;
+}
+
+.table-widget-column-header:not(:active)[sorted] {
+  background: #008484;
+}
+
+.table-widget-column-header:not(:active)[sorted=ascending] {
+  background-image: radial-gradient(farthest-side at center top, hsla(0,0%,0%,.7), hsla(0,0%,0%,0.3));
+  background-size: 100% 1px;
+  background-repeat: no-repeat;
+}
+
+.table-widget-column-header:not(:active)[sorted=descending] {
+  background-image: radial-gradient(farthest-side at center bottom, hsla(0,0%,0%,.7), hsla(0,0%,0%,0.3));
+  background-size: 100% 1px;
+  background-repeat: no-repeat;
+  background-position: bottom;
+}
+
+/* Cells */
+
+.table-widget-cell {
+  width: 100%;
+  margin: -1px 0 !important;
+  padding: 3px 4px;
+  background-clip: padding-box;
+  min-width: 100px;
+  -moz-user-focus: normal;
+}
+
+.table-widget-cell {
+  border-top: 1px solid #A09090;
+  border-bottom: 1px solid #A09090;
+  color: var(--theme-body-color);
+}
+
+.theme-dark:not(.filtering) .table-widget-cell:nth-child(odd):not(.theme-selected),
+.theme-light:not(.filtering) .table-widget-cell:nth-child(odd):not(.theme-selected),
+.table-widget-cell:not(.theme-selected)[odd] {
+  background: #404000;
+}
+
+.table-widget-cell:last-of-type {
+/*  box-shadow: inset 0 -1px 0 @smw_itemDarkTopBorder@;*/
+}
+
+.table-widget-cell.flash-out {
+  animation: flash-out 0.5s ease-in;
+}
+
+@keyframes flash-out {
+  to {
+    background: var(--theme-contrast-background2);
+  }
+}
+
+/* Empty text and initial text */
+
+.table-widget-empty-text {
+  display: none;
+  text-align: center;
+  font-size: large;
+  margin-top: -20px !important;
+}
+
+.table-widget-body:empty + .table-widget-empty-text:not([value=""]),
+.table-widget-body[empty] + .table-widget-empty-text:not([value=""]) {
+  display: block;
+}
+
+/* Tree Widget */
+
+.tree-widget-container {
+  padding: 0;
   margin: 0;
+  width: 100%;
+  height: 100%;
+  list-style: none;
+  overflow: hidden;
+  -moz-margin-end: 40px;
 }
 
-/* Expand/collapse arrow */
+.tree-widget-container:-moz-focusring,
+.tree-widget-container *:-moz-focusring {
+  outline-style: none;
+}
 
-.arrow {
-  background: url("chrome://global/skin/tree/twisty-closed.gif") center center no-repeat;
-  width: 9px;
-  height: 20px;
-  -moz-margin-start: 5px;
-  -moz-margin-end: 5px;
+.tree-widget-empty-text {
+  padding: 10px 20px;
+  font-size: medium;
+  background: transparent;
+  pointer-events: none;
 }
 
-.variables-view-scope > .title > .arrow {
-  background-image: url("chrome://global/skin/tree/twisty-closed-selected.gif");
+/* Tree Item */
+
+.tree-widget-container .tree-widget-item {
+  padding: 2px 0px 4px;
+  /* OSX has line-height 14px by default, which causes weird alignment issues
+   * because of 20px high icons. thus making line-height consistent with that of
+   * windows.
+   */
+  line-height: 17px !important;
+  display: inline-block;
+  width: 100%;
+  word-break: keep-all; /* To prevent long urls like http://foo.com/bar from
+                           breaking in multiple lines */
 }
 
-.arrow[open] {
-  background-image: url("chrome://global/skin/tree/twisty-open.png");
+.tree-widget-container .tree-widget-children {
+  margin: 0;
+  padding: 0;
+  list-style: none;
 }
 
-.variables-view-scope > .title > .arrow[open] {
-  background-image: url("chrome://global/skin/tree/twisty-open-selected.gif");
+.tree-widget-item[level="1"] {
+  font-weight: 800;
 }
 
-.arrow[invisible] {
-  visibility: hidden;
+/* Twisties */
+.tree-widget-item:before {
+  content: "";
+  width: 14px;
+  height: 14px;
+  float: left;
+  margin: 3px 2px -3px;
+  background-repeat: no-repeat;
+  background-image: url("chrome://browser/skin/devtools/controls.png");
+  background-size: 56px 28px;
+  cursor: pointer;
+  background-position: -28px -14px;
+}
+
+.tree-widget-item:-moz-locale-dir(rtl):before {
+  float: right;
+  transform: scaleX(-1);
+}
+
+.theme-light .tree-widget-item:before {
+  background-position: 0 -14px;
+}
+
+.tree-widget-item[empty]:before {
+  background: transparent;
+}
+
+.tree-widget-item[expanded]:before {
+  background-position: -42px -14px;
+}
+
+.theme-light .tree-widget-item[expanded]:before {
+  background-position: -14px -14px;
+}
+
+.tree-widget-item + ul {
+  overflow: hidden;
+  animation: collapse-tree-item 0.2s;
+  max-height: 0;
+}
+
+.tree-widget-item[expanded] + ul {
+  animation: expand-tree-item 0.3s;
+  max-height: unset;
+}
+
+@keyframes collapse-tree-item {
+  from {
+    max-height: 300px;
+  }
+  to {
+    max-height: 0;
+  }
+}
+
+@keyframes expand-tree-item {
+  from {
+    max-height: 0;
+  }
+  to {
+    max-height: 500px;
+  }
+}
+
+@media (min-resolution: 2dppx) {
+  .tree-widget-item:before {
+    background-image: url("chrome://browser/skin/devtools/controls@2x.png");
+  }
+}
+
+/* Indentation of child items in the tree */
+
+/* For level > 6 */
+.tree-widget-item[level] + ul > li > .tree-widget-item {
+  -moz-padding-start: 98px;
+}
+
+/* First level */
+.tree-widget-item[level="1"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 14px;
+}
+
+/* Second level */
+.tree-widget-item[level="2"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 28px;
+}
+
+/* Third level */
+.tree-widget-item[level="3"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 42px;
+}
+
+/* Fourth level */
+.tree-widget-item[level="4"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 56px;
+}
+
+/* Fifth level */
+.tree-widget-item[level="5"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 70px;
+}
+
+/* Sixth level */
+.tree-widget-item[level="6"] + ul > li > .tree-widget-item {
+  -moz-padding-start: 84px;
+}
+
+/* Custom icons for certain tree items indicating the type of the item */
+
+.tree-widget-item[type]:after {
+  content: "";
+  float: left;
+  width: 16px;
+  height: 17px;
+  -moz-margin-end: 4px;
+  background-repeat: no-repeat;
+  background-size: 20px auto;
+  filter: url('filters.svg#invert');
+  background-position: 0 0;
+  background-size: auto 20px;
+}
+
+.tree-widget-item:-moz-locale-dir(rtl):after {
+  float: right;
+}
+
+.theme-dark .tree-widget-item[type]:after {
+  filter: url('filters.svg#invert-white');
+}
+
+.tree-widget-item[type="dir"]:after {
+  background-image: url("chrome://browser/skin/devtools/filetype-dir-close.svg");
+  background-position: 2px 0;
+  background-size: auto 16px;
+  width: 20px;
+}
+
+.tree-widget-item[type="dir"][expanded]:not([empty]):after {
+  background-image: url("chrome://browser/skin/devtools/filetype-dir-open.svg");
+}
+
+.tree-widget-item[type="url"]:after {
+  background-image: url("chrome://browser/skin/devtools/filetype-globe.svg");
+  background-size: auto 18px;
+  width: 18px;
 }
 
 /* === BEGIN manifest-editor.inc.css === */
 
 .variables-view-container.manifest-editor {
   background-color: #000000;
-  padding: 20px 13px;
+  padding: 20px 2px;
 }
 
 .manifest-editor .variable-or-property:focus > .title {
 /*  color: #27406A; */
 }
 
-.manifest-editor .variable-or-property > .title > label {
+.manifest-editor .variable-or-property > .title > label,
+.manifest-editor textbox {
   font-family: monospace;
 }
 
 
 .manifest-editor .variables-view-delete,
 .manifest-editor .variables-view-delete:hover,
-.manifest-editor .variables-view-delete:active {
+.manifest-editor .variables-view-delete:active,
+.manifest-editor .variable-or-property:focus .variables-view-delete,
+.manifest-editor .variables-view-add-property,
+.manifest-editor .variables-view-add-property:hover,
+.manifest-editor .variables-view-add-property:active,
+.manifest-editor .variable-or-property:focus .variables-view-add-property {
   list-style-image: none;
   -moz-image-region: initial;
 }
 
-.manifest-editor .variables-view-delete::before {
-  width: 12px;
-  height: 12px;
+.manifest-editor .variables-view-delete::before,
+.manifest-editor .variables-view-add-property::before {
+  width: 11px;
+  height: 11px;
   content: "";
   display: inline-block;
+  background-size: 11px auto;
+}
+
+.manifest-editor .variables-view-delete::before {
   background-image: url("app-manager/remove.svg");
   background-size: 12px auto;
 }
 
+.manifest-editor .variables-view-add-property::before {
+  background-image: url("app-manager/add.svg");
+  -moz-margin-end: 2px;
+}
+
 /* === END manifest-editor.inc.css === */
+
+/* === END widgets.inc.css === */