diff --git a/core/modules/layout/layouts/static/node-form/node-form-rtl.css b/core/modules/layout/layouts/static/node-form/node-form-rtl.css
new file mode 100644
index 0000000000000000000000000000000000000000..9c443453ccbecbc2af11b528ca5e41ccc7cf5c92
--- /dev/null
+++ b/core/modules/layout/layouts/static/node-form/node-form-rtl.css
@@ -0,0 +1,15 @@
+/**
+ * @file
+ * RTL Layout styles for the node add/edit form.
+ */
+
+/* Wide screens */
+@media only screen and (min-width: 600px) {
+  .layout-region-main,
+  .layout-region-footer {
+    float: right;
+  }
+  .layout-region-secondary {
+    float: left;
+  }
+}
diff --git a/core/modules/layout/layouts/static/node-form/node-form.css b/core/modules/layout/layouts/static/node-form/node-form.css
new file mode 100644
index 0000000000000000000000000000000000000000..2e732775905d460324599c19365359d6af7559ba
--- /dev/null
+++ b/core/modules/layout/layouts/static/node-form/node-form.css
@@ -0,0 +1,42 @@
+/**
+ * @file
+ * Layout styles for the node add/edit form.
+ */
+
+/* Narrow screens */
+.layout-region {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+/* Wide screens */
+@media only screen and (min-width: 780px) {
+  .layout-node-form {
+    overflow: hidden;
+  }
+
+  .layout-region-main,
+  .layout-region-footer {
+    float: left; /* LTR */
+    width: 65%;
+  }
+
+  .layout-region-secondary {
+    float: right; /* LTR */
+    width: 35%;
+  }
+  /**
+   * 1. Applies the Position Is Everything technique for equal-height columns;
+   *    @see http://www.positioniseverything.net/articles/onetruelayout/equalheight
+   * 2. When animating the height of elements within this region, prevent
+   *    vertical jittering of elements further down in the document flow.
+   */
+  .overlay .layout-region-secondary {
+    margin-bottom: -999em; /* 1 */
+    padding-bottom: 999em; /* 1 */
+    display: table; /* 2 */
+  }
+}
+
+
diff --git a/core/modules/layout/layouts/static/node-form/node-form.tpl.php b/core/modules/layout/layouts/static/node-form/node-form.tpl.php
new file mode 100644
index 0000000000000000000000000000000000000000..a65bcb1896d9d4791297c831ba2937faf81c6f2e
--- /dev/null
+++ b/core/modules/layout/layouts/static/node-form/node-form.tpl.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * @file
+ * Custom template for the node add/edit form.
+ *
+ * Available variables:
+ * - $form: the remainder of the original $form array after preprocessing.
+ *   Should be printed using drupal_render_children($form).
+ * - $regions: array of layout regions
+ *   - $main: Contents for the main region
+ *   - $secondary: Contents for the secondary regions
+ *   - $footer: Form actions
+ */
+?>
+<div class="layout-display layout-node-form clearfix">
+  <div class="layout-region layout-region-main">
+    <?php print drupal_render_children($form); ?>
+
+    <?php if ($regions['main']): ?>
+      <?php print render($regions['main']); ?>
+    <?php endif; ?>
+  </div>
+
+  <?php if ($regions['secondary']): ?>
+    <div class="layout-region layout-region-secondary">
+      <?php print render($regions['secondary']); ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($regions['footer']): ?>
+    <div class="layout-region layout-region-footer">
+      <?php print render($regions['footer']); ?>
+    </div>
+  <?php endif; ?>
+</div>
diff --git a/core/modules/layout/layouts/static/node-form/node-form.yml b/core/modules/layout/layouts/static/node-form/node-form.yml
new file mode 100644
index 0000000000000000000000000000000000000000..00104b03b3770604d547f566feac31f899474676
--- /dev/null
+++ b/core/modules/layout/layouts/static/node-form/node-form.yml
@@ -0,0 +1,15 @@
+title: Node Add/Edit Form
+category: Columns: 2
+template: node-form
+stylesheets:
+  - node-form.css
+regions:
+  main:
+    label: Main fields
+    type: content
+  secondary:
+    label: Secondary Fields and Metadata
+    type: content
+  footer:
+    label: Form Actions
+    type: content
diff --git a/core/modules/node/lib/Drupal/node/NodeFormController.php b/core/modules/node/lib/Drupal/node/NodeFormController.php
index e44290e290ad13a8b935688198adc60e1aeec985..66018a13efcee23c7bf0a95c25dc69c8ed7d10eb 100644
--- a/core/modules/node/lib/Drupal/node/NodeFormController.php
+++ b/core/modules/node/lib/Drupal/node/NodeFormController.php
@@ -56,6 +56,13 @@ protected function prepareEntity(EntityInterface $node) {
    */
   public function form(array $form, array &$form_state, EntityInterface $node) {
     $user_config = config('user.settings');
+
+    // Use a custom layout for this form
+    $form['#theme'] = array('node_form');
+    $form['#attached'] = array(
+      'css' => array(drupal_get_path('module', 'layout') . '/layouts/static/node-form/node-form.css'),
+    );
+
     // Some special stuff when previewing a node.
     if (isset($form_state['node_preview'])) {
       $form['#prefix'] = $form_state['node_preview'];
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index ea2b4ce0771e158cd4976dca9dc92f0ce6ccbd2a..c9cd81a346cd8737de91578fa97050d6984d924d 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -170,6 +170,11 @@ function node_theme() {
     'node_recent_content' => array(
       'variables' => array('node' => NULL),
     ),
+    'node_form' => array(
+      'render element' => 'form',
+      'path' => 'core/modules/layout/layouts/static/node-form',
+      'template' => 'node-form',
+    ),
   );
 }

@@ -1190,6 +1195,48 @@ function template_preprocess_node(&$variables) {
 }

 /**
+ * Processes variables for node-form.tpl.php
+ */
+function template_preprocess_node_form(&$vars) {
+  $form = &$vars['form'];
+
+  // Create regions expected by the layout template.
+  $vars['regions'] = array(
+    'main' => array(),
+    'secondary' => array(),
+    'footer' => array(),
+  );
+
+  /**
+   * Chunk the form into separate render arrays and place them in regions.
+   *
+   * @todo
+   * Currently this is rudimentary; array key order within regions determines
+   * render order, and the remaining $form array needs to be printed in the
+   * template using drupal_render_children($form).
+   */
+
+  // Move the settings summary fieldset into the sidebar region.
+  if (isset($form['settings_summary'])) {
+    $vars['regions']['secondary'][] = $form['settings_summary'];
+    unset($form['settings_summary']);
+  }
+
+  // Move the collapsible/additional settings into the sidebar below
+  // the settings summary.
+  if (isset($form['additional_settings'])) {
+    $vars['regions']['secondary'][] = $form['additional_settings'];
+    unset($form['additional_settings']);
+  }
+
+  // Move the form actions group into the footer region.
+  if (isset($form['actions'])) {
+    $vars['regions']['footer'] = $form['actions'];
+    unset($form['actions']);
+  }
+}
+
+/**
  * Implements hook_permission().
  */
 function node_permission() {
diff --git a/core/themes/seven/style-rtl.css b/core/themes/seven/style-rtl.css
index 89303705a4429a27820f6b84e7dcc1d99b9b0717..085210d0c467def8c0b3ed064f9706cf441ea071 100644
--- a/core/themes/seven/style-rtl.css
+++ b/core/themes/seven/style-rtl.css
@@ -220,3 +220,22 @@ div.add-or-remove-shortcuts {
 }

 /* @end */
+
+
+/**
+ * Node Add/Edit Page Layout
+ */
+
+/* Narrow screens */
+/*.overlay .layout-region-secondary {
+     -moz-box-shadow: inset -0.15em 0.3em .5em rgba(0, 0, 0, .1);
+  -webkit-box-shadow: inset -0.15em 0.3em .5em rgba(0, 0, 0, .1);
+          box-shadow: inset -0.15em 0.3em .5em rgba(0, 0, 0, .1);
+}*/
+/* Wide screens */
+@media only screen and (min-width: 780px) {
+  .overlay [id="edit-additional-settings"] {
+    -webkit-box-shadow: inset -3px 3px 5px rgba(0, 0, 0, .15);
+    box-shadow:         inset -3px 3px 5px rgba(0, 0, 0, .15);
+  }
+}
diff --git a/core/themes/seven/style.css b/core/themes/seven/style.css
index f1925cbabeea380e6acfabe199ac9f51f245ce64..5646ef83cb105c3f989d37545545453c0d508bdd 100644
--- a/core/themes/seven/style.css
+++ b/core/themes/seven/style.css
@@ -504,6 +504,9 @@ details {
 }
 details summary {
   padding: 12px 16px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
 details details {
   background-color: #fff;
@@ -771,9 +774,9 @@ a.button.add:active {
     width: 100%;
   }
   details summary {
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing:    border-box;
+    box-sizing:         border-box;
     width: 100%;
   }
   #dblog-filter-form .form-actions {
@@ -1402,12 +1405,14 @@ details.fieldset-no-legend {
 /* @end */

 /**
- * Node add/edit screen
+ * Node Add/Edit Page
  */
 [id="edit-settings-summary"] {
   background-color: #f2f2f2;
-  border: 1px solid #a5a5a5;
-  margin-bottom: 0;
+  /*border: 1px solid #a5a5a5;*/
+  border: 0;
+  border-bottom: 1px solid #aeaeae;
+  margin: 0;
   overflow: hidden;
   padding: 0;
 }
@@ -1451,15 +1456,29 @@ details.fieldset-no-legend {

 [id="edit-additional-settings"] {
   background-color: #e2e2e2;
-  border-bottom: 0;
+  border: 0;
+  /*border-bottom: 0;
   border-left: 1px solid #a5a5a5;
   border-right: 1px solid #a5a5a5;
-  border-top: 0;
+  border-top: 0;*/
   -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
   box-shadow:         inset 0 0 5px rgba(0, 0, 0, .15);
   margin-top: 0;
   padding-top: 0;
 }
+#edit-additional-settings .form-autocomplete,
+#edit-additional-settings .form-text,
+#edit-additional-settings .form-tel,
+#edit-additional-settings .form-email,
+#edit-additional-settings .form-url,
+#edit-additional-settings .form-search,
+#edit-additional-settings .form-number,
+#edit-additional-settings .form-color,
+#edit-additional-settings textarea {
+  box-sizing: border-box;
+  width: 100%;
+  max-width: 100%;
+}
 [id="edit-additional-settings"] > .details-wrapper {
   padding: 0;
 }
@@ -1503,7 +1522,7 @@ details.fieldset-no-legend {
 [id="edit-additional-settings"] details:not([open]) {
   background-color: #f2f2f2 !important;
   background-image: none !important;
-  border-bottom: 1px solid #a5a5a5 !important;
+  border-bottom: 1px solid #aeaeae !important;
   border-top: 1px solid white !important;
   padding-top: 0 !important;
 }
@@ -1514,3 +1533,65 @@ details.fieldset-no-legend {
 [id="edit-additional-settings"] details:not([open]) a {
   color: #0074bd;
 }
+
+/**
+ * Node Add/Edit Page Layout
+ *
+ * 1. Uses box-sizing: border-box to avoid margins and padding detroying the
+ *    layout. @see core/modules/layout/layouts/static/node-form/node-form.css
+ */
+
+/* Narrow screens */
+.layout-region-secondary {
+  background-color: #f2f2f2;
+  border: 1px solid #b5b5b5;
+  border-bottom: 0;
+  /*background-color: #eee;*/
+  /*border: 1px solid #c6c6c6;*/
+
+  /*-moz-box-shadow:    inset 0 0.1em .5em rgba(0, 0, 0, .1);
+  -webkit-box-shadow: inset 0 0.1em .5em rgba(0, 0, 0, .1);
+  box-shadow:         inset 0 0.1em .5em rgba(0, 0, 0, .1);*/
+}
+
+.overlay .layout-region-secondary {
+  /* -moz-box-shadow:    inset 0.15em 0.3em .5em rgba(0, 0, 0, .1); /* LTR */
+  /* -webkit-box-shadow: inset 0.15em 0.3em .5em rgba(0, 0, 0, .1); /* LTR */
+  /* box-shadow:         inset 0.15em 0.3em .5em rgba(0, 0, 0, .1); /* LTR */
+}
+
+/* Wide screens */
+@media only screen and (min-width: 780px) {
+  .layout-region-main,
+  .layout-region-footer {
+    padding-left: 2em; /* 1 */
+    padding-right: 2em; /* 1 */
+  }
+  .layout-region-main {
+    padding-top: .5em;
+  }
+  [id="edit-additional-settings"] {
+    margin-bottom: 0;
+  }
+
+  .overlay [id="edit-additional-settings"] {
+    -webkit-box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .15); /* LTR */
+    box-shadow:         inset 2px 2px 5px rgba(0, 0, 0, .15); /* LTR */
+    border-bottom: 1px solid white;
+  }
+  .overlay #page {
+    padding-left: 0 !important;
+    padding-right: 0 !important;
+  }
+  .overlay .layout-node-form {
+    border-top: 1px solid #aeaeae;
+  }
+  .overlay .layout-region-secondary {
+    border-top: 0;
+    border-right: 0;
+  }
+  .overlay[class*="page-node-add-"] #overlay-content,
+  .overlay.page-node-edit #overlay-content {
+    padding: 0;
+  }
+}
