Index: themes/bartik/css/layout.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/bartik/css/layout.css,v
retrieving revision 1.2
diff -u -r1.2 layout.css
--- themes/bartik/css/layout.css	22 Aug 2010 13:57:02 -0000	1.2
+++ themes/bartik/css/layout.css	26 Aug 2010 22:18:07 -0000
@@ -14,6 +14,28 @@
   margin-left: auto;
   margin-right: auto;
 }
+.no-region-header #logo-name-slogan,
+.no-site-info .region-header {
+  width: 960px;
+}
+.with-region-header #logo-name-slogan,
+.with-site-info .region-header {
+  width: 480px;
+}
+#logo-name-slogan {
+  float: left;
+}
+.region-header {
+  float: right;
+  margin-top: 38px;
+}
+.region-header .block {
+  clear: both;
+  margin: 0 15px 20px;
+}
+.region-header .block .content {
+  margin: 0;
+}
 #content,
 .sidebar,
 .region-triptych-first,
Index: themes/bartik/css/style.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/bartik/css/style.css,v
retrieving revision 1.5
diff -u -r1.5 style.css
--- themes/bartik/css/style.css	22 Aug 2010 14:03:57 -0000	1.5
+++ themes/bartik/css/style.css	26 Aug 2010 22:18:07 -0000
@@ -244,50 +244,32 @@
   word-spacing: 0.1em;
   font-style: italic;
 }
+
 /* Menus when in the header region. */
-#header .block-menu {
-  height: 1.1em;
-  margin: 10px 0;
-  font-size: 120%;
-  float: left; /* LTR */
-  width: 75%;
-}
-#header .block ul, /* Any menu block in the header region. */
+#header .block ul,
 #header .block li {
   list-style: none;
   margin: 0;
   padding: 0;
+  text-align: right; /* LTR */
 }
-#header .block-menu li a {
-  float: left; /* LTR */
-  padding: 0 12px;
-  display: block;
-  border-right: 1px solid #555; /* LTR */
-}
-#header .block-menu li.first a {
-  padding-left: 0; /* LTR */
-}
-#header .block-menu li.last a {
-  padding-right: 0; /* LTR */
-  border-right: none; /* LTR */
-}
-#header #block-search-form { /* Search block in the Header region. */
+
+/* Search block in the Header region. */
+#header #block-search-form {
+  width: 240px;
   float: right; /* LTR */
-  width: 24%;
-  margin: 8px 0;
 }
-#header #block-user-login { /* Login block in the Header region. */
+#header #block-search-form .form-item-search-block-form input {
+  width: 77%;
+}
+
+/* Login block in the Header region. */
+#header #block-user-login {
   display: block;
-  position: absolute;
-  top: 0;
-  right: 2%; /* LTR */
-  background: #464748;
   color: #fff;
-  float: right; /* LTR */
-  font-size: 13px;
-  padding: 4px 10px 5px;
   text-transform: uppercase;
   font-size: 80%;
+  width: 450px;
 }
 #header #block-user-login a {
   color: #fff;
@@ -303,6 +285,7 @@
 }
 #header #block-user-login .form-text {
   margin-right: 5px; /* LTR */
+  width: 110px;
 }
 #header #block-user-login .form-item label .form-required {
   display: none;
@@ -313,7 +296,7 @@
 }
 #header #block-user-login .item-list ul li {
   display: inline;
-  margin: 0 5px 0 15px; /* LTR */
+  margin: 0 5px;
 }
 #header #block-user-login div.item-list {
   margin-top: 5px;
@@ -324,17 +307,25 @@
 #header #block-user-login .userbox {
   margin-left: 10px; /* LTR */
 }
+#header #block-user-login .form-actions {
+  padding-top: 0;
+  display: inline;
+}
 #header #block-user-login input.form-submit {
-  color: #fff;
-  background: #929599;
-  border: 1px solid #73767c;
-  padding: 1px;
+  background: rgba(255, 255, 255, 0.7);
+  color: #333;
+  text-shadow: 0 1px #eee;
+  padding: 3px 7px;
+  border: none;
   text-transform: uppercase;
   margin-top: 1px;
   position: relative;
   display: inline;
+  font-size: 110%;
+  -moz-border-radius: 12px;
 }
-#header #block-user-login #user-login-form div.item-list { /* Hide create new account + email replacement password links. */
+/* Hide create new account + email replacement password links. */
+#header #block-user-login #user-login-form div.item-list {
   display: none;
 }
 
Index: themes/bartik/templates/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/bartik/templates/page.tpl.php,v
retrieving revision 1.4
diff -u -r1.4 page.tpl.php
--- themes/bartik/templates/page.tpl.php	22 Aug 2010 13:57:02 -0000	1.4
+++ themes/bartik/templates/page.tpl.php	26 Aug 2010 22:18:08 -0000
@@ -87,38 +87,38 @@
 ?>
 <div id="page-wrapper"><div id="page">
 
-  <div id="header"><div class="section clearfix">
+  <div id="header"><div class="section clearfix <?php print $header_classes?>">
 
-    <?php if ($logo): ?>
-      <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
-        <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
-      </a>
-    <?php endif; ?>
+    <?php if ($logo || $site_name || $site_slogan): ?>
+      <div id="logo-name-slogan">
+
+        <?php if ($logo): ?>
+          <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
+            <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
+          </a>
+        <?php endif; ?>
 
-    <?php if ($site_name || $site_slogan): ?>
-      <div id="name-and-slogan"<?php if ($hide_site_name && $hide_site_slogan) { print ' class="element-invisible"'; } ?>>
+        <div id="name-and-slogan"<?php print $hide['site_info']; ?>>
 
-        <?php if ($site_name): ?>
           <?php if ($title): ?>
-            <div id="site-name"<?php if ($hide_site_name) { print ' class="element-invisible"'; } ?>>
+            <div id="site-name"<?php print $hide['site_name']; ?>>
               <strong>
-                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><?php print $site_name; ?></a>
               </strong>
             </div>
           <?php else: /* Use h1 when the content title is empty */ ?>
-            <h1 id="site-name"<?php if ($hide_site_name) { print ' class="element-invisible"'; } ?>>
-              <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+            <h1 id="site-name"<?php print $hide['site_name']; ?>>
+              <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><?php print $site_name; ?></a>
             </h1>
           <?php endif; ?>
-        <?php endif; ?>
 
-        <?php if ($site_slogan): ?>
-          <div id="site-slogan"<?php if ($hide_site_slogan) { print ' class="element-invisible"'; } ?>>
+          <div id="site-slogan"<?php print $hide['site_slogan']; ?>>
             <?php print $site_slogan; ?>
           </div>
-        <?php endif; ?>
 
-      </div> <!-- /#name-and-slogan -->
+        </div> <!-- /#name-and-slogan -->
+
+      </div> <!-- /#logo-name-slogan -->
     <?php endif; ?>
 
     <?php print render($page['header']); ?>
Index: themes/bartik/template.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/bartik/template.php,v
retrieving revision 1.4
diff -u -r1.4 template.php
--- themes/bartik/template.php	9 Aug 2010 16:54:50 -0000	1.4
+++ themes/bartik/template.php	26 Aug 2010 22:18:07 -0000
@@ -45,18 +45,41 @@
   if (module_exists('color')) {
     _color_page_alter($variables);
   }
-  // Always print the site name and slogan, but if they are toggled off, we'll
-  // just hide them visually.
+  // Always print the site name and slogan, but hide them if they are toggled off.
   $variables['hide_site_name']   = theme_get_setting('toggle_name') ? FALSE : TRUE;
   $variables['hide_site_slogan'] = theme_get_setting('toggle_slogan') ? FALSE : TRUE;
   if ($variables['hide_site_name']) {
-    // If toggle_name is FALSE, the site_name will be empty, so we rebuild it.
+    // If hide_site_name is FALSE the site_name will be empty so we rebuild it.
     $variables['site_name'] = filter_xss_admin(variable_get('site_name', 'Drupal'));
+    $variables['hide']['site_name'] = ' class="element-invisible"';
+  }
+  else {
+    $variables['hide']['site_name'] = FALSE;
   }
   if ($variables['hide_site_slogan']) {
-    // If toggle_site_slogan is FALSE, the site_slogan will be empty, so we rebuild it.
+    // If hide_site_slogan is FALSE the site_slogan will be empty so we rebuild it.
     $variables['site_slogan'] = filter_xss_admin(variable_get('site_slogan', ''));
+    $variables['hide']['site_slogan'] = ' class="element-invisible"';
+  }
+  else {
+    $variables['hide']['site_slogan'] = FALSE;
   }
+  if ($variables['hide_site_name'] && $variables['hide_site_slogan']) {
+    $variables['hide']['site_info'] = ' class="element-invisible"';
+  }
+  else {
+    $variables['hide']['site_info'] = FALSE;
+  }
+  $header_classes = array();
+  if (!$variables['hide']['site_info'] || $variables['logo']) {
+    $header_classes[] = 'with-site-info';
+  }
+  else {
+    $header_classes[] = 'no-site-info';
+  }
+  $header_classes[] = $variables['page']['header'] ? 'with-region-header' : 'no-region-header';
+  $variables['header_classes'] = implode(' ', $header_classes);
+
   // Since the title and the shortcut link are both block level elements,
   // positioning them next to each other is much simpler with a wrapper div.
   if (!empty($variables['title_suffix']['add_or_remove_shortcut']) && $variables['title']) {
