Bug 1349691 - Polish the layout panel. r=jdescottes draft
authorGabriel Luong <gabriel.luong@gmail.com>
Mon, 17 Apr 2017 17:47:55 -0400
changeset 563821 6ee58373d8752bd0e320e0ce7ce2cfe3db6db6bb
parent 563820 e5054dd06d753956542cc74f91687094f2507aa1
child 624587 0023b8d0508f432c0e727634d9b11a1857c167f7
push id54431
push userbmo:gl@mozilla.com
push dateMon, 17 Apr 2017 21:48:23 +0000
reviewersjdescottes
bugs1349691
milestone55.0a1
Bug 1349691 - Polish the layout panel. r=jdescottes MozReview-Commit-ID: Em6HnIZOkah
devtools/client/inspector/boxmodel/components/BoxModelProperties.js
devtools/client/inspector/grids/components/GridDisplaySettings.js
devtools/client/inspector/grids/components/GridItem.js
devtools/client/inspector/layout/components/App.js
devtools/client/themes/boxmodel.css
devtools/client/themes/layout.css
--- a/devtools/client/inspector/boxmodel/components/BoxModelProperties.js
+++ b/devtools/client/inspector/boxmodel/components/BoxModelProperties.js
@@ -55,30 +55,24 @@ module.exports = createClass({
       {
         className: "boxmodel-properties",
       },
       dom.div(
         {
           className: "boxmodel-properties-header",
           onDoubleClick: this.onToggleExpander,
         },
-        dom.div(
+        dom.span(
           {
             className: "boxmodel-properties-expander theme-twisty",
             open: this.state.isOpen,
             onClick: this.onToggleExpander,
           }
         ),
-        dom.span(
-          {
-            className: "boxmodel-properties-label",
-            title: BOXMODEL_L10N.getStr("boxmodel.propertiesLabel"),
-          },
-          BOXMODEL_L10N.getStr("boxmodel.propertiesLabel")
-        )
+        BOXMODEL_L10N.getStr("boxmodel.propertiesLabel")
       ),
       dom.div(
         {
           className: "boxmodel-properties-wrapper",
           hidden: !this.state.isOpen,
           tabIndex: 0,
         },
         properties
--- a/devtools/client/inspector/grids/components/GridDisplaySettings.js
+++ b/devtools/client/inspector/grids/components/GridDisplaySettings.js
@@ -51,31 +51,35 @@ module.exports = createClass({
       },
       dom.span(
         {},
         getStr("layout.gridDisplaySettings")
       ),
       dom.ul(
         {},
         dom.li(
-          {},
+          {
+            className: "grid-settings-item"
+          },
           dom.label(
             {},
             dom.input(
               {
                 type: "checkbox",
                 checked: highlighterSettings.showInfiniteLines,
                 onChange: this.onShowInfiniteLinesCheckboxClick,
               }
             ),
             getStr("layout.extendGridLinesInfinitely")
           )
         ),
         dom.li(
-          {},
+          {
+            className: "grid-settings-item"
+          },
           dom.label(
             {},
             dom.input(
               {
                 type: "checkbox",
                 checked: highlighterSettings.showGridLineNumbers,
                 onChange: this.onShowGridLineNumbersCheckboxClick,
               }
--- a/devtools/client/inspector/grids/components/GridItem.js
+++ b/devtools/client/inspector/grids/components/GridItem.js
@@ -111,19 +111,17 @@ module.exports = createClass({
       grid,
       onHideBoxModelHighlighter,
       onShowBoxModelHighlighterForNode,
       setSelectedNode,
     } = this.props;
     let { nodeFront } = grid;
 
     return dom.li(
-      {
-        className: "grid-item",
-      },
+      {},
       dom.label(
         {},
         dom.input(
           {
             type: "checkbox",
             value: grid.id,
             checked: grid.highlighted,
             onChange: this.onGridCheckboxClick,
--- a/devtools/client/inspector/layout/components/App.js
+++ b/devtools/client/inspector/layout/components/App.js
@@ -47,16 +47,17 @@ const App = createClass({
   },
 
   mixins: [ addons.PureRenderMixin ],
 
   render() {
     return dom.div(
       {
         id: "layout-container",
+        className: "devtools-monospace"
       },
       Accordion({
         items: [
           {
             header: BOXMODEL_L10N.getStr("boxmodel.title"),
             component: BoxModel,
             componentProps: this.props,
             opened: true,
--- a/devtools/client/themes/boxmodel.css
+++ b/devtools/client/themes/boxmodel.css
@@ -3,16 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/ */
 
 /**
  * This is the stylesheet of the Box Model view implemented in the layout panel.
  */
 
 .boxmodel-container {
   overflow: auto;
+  padding-bottom: 4px;
 }
 
 /* Header */
 
 .boxmodel-header,
 .boxmodel-info {
   display: flex;
   align-items: center;
@@ -107,17 +108,18 @@
   position: absolute;
   pointer-events: none;
   margin: 0;
   text-align: center;
 }
 
 .boxmodel-main > p > span,
 .boxmodel-main > p > input,
-.boxmodel-content {
+.boxmodel-content,
+.boxmodel-size > span {
   vertical-align: middle;
   pointer-events: auto;
 }
 
 /* Coordinates for the region sizes */
 
 .boxmodel-top,
 .boxmodel-bottom {
@@ -309,22 +311,26 @@
 .boxmodel-position-group {
   display: flex;
   align-items: center;
 }
 
 /* Box Model Properties: contains a list of relevant box model properties */
 
 .boxmodel-properties-header {
-  display: flex;
-  padding: 2px 0;
+  padding: 2px 3px;
 }
 
-.boxmodel-properties-wrapper {
-  padding: 0 9px;
+.boxmodel-properties-expander {
+  vertical-align: middle;
+  display: inline-block;
+}
+
+.boxmodel-properties-wrapper .property-view {
+  padding-inline-start: 17px;
 }
 
 .boxmodel-properties-wrapper .property-name-container {
   flex: 1;
 }
 
 .boxmodel-properties-wrapper .property-value-container {
   flex: 1;
--- a/devtools/client/themes/layout.css
+++ b/devtools/client/themes/layout.css
@@ -11,52 +11,80 @@
 
 /**
  * Common styles for shared components
  */
 
 .grid-container {
   display: flex;
   flex-direction: column;
-  flex: 1;
+  flex: 1 auto;
   align-items: center;
+  min-width: 140px;
 }
 
 .grid-container > span {
-  font-weight: bold;
-  margin-bottom: 3px;
+  font-weight: 600;
+  margin-bottom: 5px;
+  pointer-events: none;
 }
 
 .grid-container > ul {
   list-style: none;
   margin: 0;
   padding: 0;
 }
 
 .grid-container li {
+  display: flex;
+  align-items: center;
   padding: 4px 0;
 }
 
+.grid-container input {
+  margin: 0 5px;
+}
+
+.grid-container label {
+  display: flex;
+  align-items: center;
+}
+
 /**
  * Grid Container
  */
 
 #layout-grid-container {
   display: flex;
   flex-direction: column;
   margin: 5px;
 }
 
 /**
+ * Grid Outline
+ */
+
+.grid-outline {
+  margin-top: 10px;
+  overflow: visible;
+}
+
+/**
  * Grid Content
  */
 
 .grid-content {
   display: flex;
+  flex-wrap: wrap;
   flex: 1;
+  margin-top: 10px;
+}
+
+.grid-container:first-child {
+  margin-bottom: 10px;
 }
 
 /**
  * Grid Outline
  */
 
 #grid-outline {
   margin: 5px auto;
@@ -92,29 +120,28 @@
   text-align: center;
   padding: 0.5em;
 }
 
 /**
  * Grid Item
  */
 
-.grid-item {
-  display: flex;
-  align-items: center;
-}
-
-.grid-item input {
-  margin: 0 5px;
-}
-
 .grid-color-swatch {
   width: 12px;
   height: 12px;
   margin-left: 5px;
   border: 1px solid var(--theme-highlight-gray);
   border-radius: 50%;
   cursor: pointer;
 }
 
 .grid-color-value {
   display: none;
 }
+
+/**
+ * Settings Item
+ */
+
+.grid-settings-item label {
+  line-height: 16px;
+}