diff --git a/vipra-ui/app/html/index.html b/vipra-ui/app/html/index.html
index bd78eb3789a0e5e1091284cf1342d597537f0ce9..c849420058cc60a9bfc3cd022c5658380b1a3137 100644
--- a/vipra-ui/app/html/index.html
+++ b/vipra-ui/app/html/index.html
@@ -1,87 +1,87 @@
-<div class="container" ng-cloak ng-hide="!rootModels.topicModel || state.name !== 'index'">
-  <div class="row" ng-hide="search">
-    <div class="col-md-12 text-center">
-      <br><span class="logo-text">\ˈvī-prə\</span><br>
-      <svg class="logo logo-big hover" viewBox="0 0 200 120">
-        <polyline style="animation-delay:0s" class="logo-shape" points="0,0 100,45 100,75 0,0" fill="#006591" />
-        <polyline style="animation-delay:.5s" class="logo-shape" points="100,45 200,0 100,75 100,45" fill="#0079a2" />
-        <polyline style="animation-delay:1s" class="logo-shape" points="100,75 200,0 100,120 100,75" fill="#006591" />
-        <polyline style="animation-delay:1.5s" class="logo-shape" points="0,0 100,75 100,120 0,0" fill="#0079a2" />
-      </svg>
-    </div>
-  </div>
-  <div class="row" ng-hide="search">
-    <div class="col-md-8 text-center">
-      <h4>Latest articles</h4>
-      <ul class="list-unstyled">
-        <li class="ellipsis" ng-repeat="article in latestArticles">
-          <article-link article="::article" badge="false" menu="false" excerpt="false"/>
-        </li>
-      </ul>
-      <p class="text-muted text-center" ng-if="!latestArticles.length">No articles</p>
-    </div>
-    <div class="col-md-4 text-center">
-      <h4>Latest topics</h4>
-      <ul class="list-unstyled">
-        <li class="ellipsis" ng-repeat="topic in latestTopics">
-          <topic-link topic="::topic" badge="false" menu="false"/>
-        </li>
-      </ul>
-      <p class="text-muted text-center" ng-if="!latestTopics.length">No topics</p>
-    </div>
-  </div>
-  <div class="row row-spaced search-row">
-    <div class="col-md-12">
-      <div class="input-group">
-        <div class="form-group has-feedback">
-          <input type="text" class="form-control input-lg" placeholder="Search..." ng-model="search" ng-model-options="{debounce:500}" id="searchBox">
-          <i class="form-control-feedback glyphicon glyphicon-search text-muted"></i>
+<div class="fullsize" ng-cloak ng-hide="!rootModels.topicModel || state.name !== 'index'">
+  <div class="title-band" ng-class="{slim:search}">
+    <div class="container">
+      <div class="row row-spaced" ng-hide="search">
+        <div class="col-md-12 text-center text-logo">
+          \ˈvī-prə\
         </div>
-        <span class="input-group-btn">
-          <button class="btn btn-default btn-lg" type="button" title="Advanced" ng-click="advancedSearch=!advancedSearch"><i class="fa text-muted" ng-class="{'fa-chevron-down':!advancedSearch,'fa-chevron-up':advancedSearch}"></i></button>
-        </span>
       </div>
-    </div>
-  </div>
-  <div class="row row-spaced" ng-show="advancedSearch" ng-cloak>
-    <div class="col-md-6 form-horizontal">
-      <label for="advFromDate" class="col-sm-2 control-label">From</label>
-      <div class="input-group date col-sm-10" id="advFromDate" bs-datetimepicker ng-model="rootModels.advFromDate">
-        <input type="text" class="form-control">
-        <span class="input-group-addon">
-          <span class="glyphicon glyphicon-calendar"></span>
-        </span>
+      <div class="row row-spaced">
+        <div class="col-md-12">
+          <div class="input-group">
+            <div class="form-group has-feedback">
+              <input type="text" class="form-control input-lg" placeholder="Search..." ng-model="search" ng-model-options="{debounce:500}" id="searchBox">
+              <i class="form-control-feedback glyphicon glyphicon-search text-muted"></i>
+            </div>
+            <span class="input-group-btn">
+              <button class="btn btn-default btn-lg" type="button" title="Advanced" ng-click="advancedSearch=!advancedSearch"><i class="fa text-muted" ng-class="{'fa-chevron-down':!advancedSearch,'fa-chevron-up':advancedSearch}"></i></button>
+            </span>
+          </div>
+        </div>
       </div>
-    </div>
-    <div class="col-md-6 form-horizontal">
-      <label for="advToDate" class="col-sm-2 control-label">To</label>
-      <div class="input-group date col-sm-10" id="advToDate" bs-datetimepicker ng-model="rootModels.advToDate">
-        <input type="text" class="form-control">
-        <span class="input-group-addon">
-          <span class="glyphicon glyphicon-calendar"></span>
-        </span>
+      <div class="row row-spaced" ng-show="advancedSearch" ng-cloak>
+        <div class="col-md-6 form-horizontal">
+          <label for="advFromDate" class="col-sm-2 control-label">From</label>
+          <div class="input-group date col-sm-10" id="advFromDate" bs-datetimepicker ng-model="rootModels.advFromDate">
+            <input type="text" class="form-control">
+            <span class="input-group-addon">
+              <span class="glyphicon glyphicon-calendar"></span>
+            </span>
+          </div>
+        </div>
+        <div class="col-md-6 form-horizontal">
+          <label for="advToDate" class="col-sm-2 control-label">To</label>
+          <div class="input-group date col-sm-10" id="advToDate" bs-datetimepicker ng-model="rootModels.advToDate">
+            <input type="text" class="form-control">
+            <span class="input-group-addon">
+              <span class="glyphicon glyphicon-calendar"></span>
+            </span>
+          </div>
+        </div>
+      </div>
+      <div class="row latest-items" ng-hide="search">
+        <div class="col-md-8 text-center">
+          <h4>Latest articles</h4>
+          <ul class="list-unstyled">
+            <li class="ellipsis" ng-repeat="article in latestArticles">
+              <article-link article="::article" badge="false" menu="false" excerpt="false"/>
+            </li>
+          </ul>
+          <p class="text-muted text-center" ng-if="!latestArticles.length">No articles</p>
+        </div>
+        <div class="col-md-4 text-center">
+          <h4>Latest topics</h4>
+          <ul class="list-unstyled">
+            <li class="ellipsis" ng-repeat="topic in latestTopics">
+              <topic-link topic="::topic" badge="false" menu="false"/>
+            </li>
+          </ul>
+          <p class="text-muted text-center" ng-if="!latestTopics.length">No topics</p>
+        </div>
       </div>
     </div>
   </div>
-  <div class="row row-spaced">
-    <div class="col-md-12 text-center" ng-show="searching" ng-cloak>
-      Searching...
-    </div>
-    <div class="col-md-12" ng-show="!searching && search && (!searchResults || searchResults.length == 0)" ng-cloak>
-      <h4>No Results</h4>
-    </div>
-    <div class="col-md-12" ng-show="searchResults.length > 0" ng-cloak>
-      <h4>Results</h4>
-      <ul class="list-unstyled search-results">
-        <li class="search-result" ng-repeat="article in searchResults">
-          <a ui-sref="articles.show({id:article.id})" ng-bind="article.title"></a>
-          <p>
-            <span class="text" ng-bind="article.text"></span>
-            <br>
-            <small class="text-muted" ng-bind-template="{{::Vipra.toPercent(article.meta.score)}}% &ndash; {{::Vipra.formatDate(article.date)}}"></small>
-          </p>
-        </li>
-      </ul>
+  <div class="container">
+    <div class="row row-spaced">
+      <div class="col-md-12 text-center" ng-show="searching" ng-cloak>
+        Searching...
+      </div>
+      <div class="col-md-12" ng-show="!searching && search && (!searchResults || searchResults.length == 0)" ng-cloak>
+        <h4>No Results</h4>
+      </div>
+      <div class="col-md-12" ng-show="searchResults.length > 0" ng-cloak>
+        <h4>Results</h4>
+        <ul class="list-unstyled search-results">
+          <li class="search-result" ng-repeat="article in searchResults">
+            <a ui-sref="articles.show({id:article.id})" ng-bind="article.title"></a>
+            <p>
+              <span class="text" ng-bind="article.text"></span>
+              <br>
+              <small class="text-muted" ng-bind-template="{{::Vipra.toPercent(article.meta.score)}}% &ndash; {{::Vipra.formatDate(article.date)}}"></small>
+            </p>
+          </li>
+        </ul>
+      </div>
     </div>
   </div>
 </div>
diff --git a/vipra-ui/app/img/vipra-logo.svg b/vipra-ui/app/img/vipra-logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..930f15bdae51cf859a030c85fb89a49e5f0ff314
--- /dev/null
+++ b/vipra-ui/app/img/vipra-logo.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   id="svg2"
+   viewBox="0 0 200 120">
+  <metadata
+     id="metadata16">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs14" />
+  <polyline
+     id="polyline4"
+     fill="#006591"
+     points="0,0 100,45 100,75 0,0" />
+  <polyline
+     id="polyline6"
+     fill="#0079a2"
+     points="100,45 200,0 100,75 100,45" />
+  <polyline
+     id="polyline8"
+     fill="#006591"
+     points="100,75 200,0 100,120 100,75" />
+  <polyline
+     id="polyline10"
+     fill="#0079a2"
+     points="0,0 100,75 100,120 0,0" />
+</svg>
diff --git a/vipra-ui/app/index.html b/vipra-ui/app/index.html
index 0e63f34c47274e8ee3acbd3b8dfe0005c045e44b..ba25f1f959c1ac32e20fe664f5c180a7b3005f5d 100644
--- a/vipra-ui/app/index.html
+++ b/vipra-ui/app/index.html
@@ -15,7 +15,7 @@
   <script src="js/app.js"></script>
   <script src="js/templates.js"></script>
 </head>
-<body>
+<body ng-attr-class="{{state?state.name:''}}">
   <nav class="navbar navbar-default navbar-fixed-top">
     <div class="container-fluid">
       <!-- Brand and toggle get grouped for better mobile display -->
diff --git a/vipra-ui/app/less/app.less b/vipra-ui/app/less/app.less
index f728684c197f9eb9760bc850882a2889382fbfd4..075a6a7190cb42f0a818b7c6c864f56808212da8 100644
--- a/vipra-ui/app/less/app.less
+++ b/vipra-ui/app/less/app.less
@@ -2,6 +2,7 @@
 @topbarSpace: 70px;
 @sidebar-padding: 5px;
 @sidebar-width: 250px;
+@bar-color: #f8f8f8;
 
 html {
   position: relative;
@@ -32,7 +33,7 @@ a:hover {
 }
 
 .search-results {
-  padding: 15px;
+  padding-top: 15px;
   .search-result {
     &:not(: last-child) {
       margin-bottom: 20px;
@@ -263,7 +264,7 @@ a:hover {
 }
 
 .topbar {
-  background: #f9f9f9;
+  background: @bar-color;
   width: 100%;
   padding: 5px;
   vertical-align: middle;
@@ -294,7 +295,7 @@ a:hover {
 }
 
 .sidebar {
-  background: #f9f9f9;
+  background: @bar-color;
   padding: @sidebar-padding;
   height: 100%;
   position: absolute;
@@ -397,10 +398,12 @@ a:hover {
   vertical-align: bottom;
 }
 
+.centered-container,
 .message-container {
   position: relative;
 }
 
+.centered,
 .message {
   position: absolute;
   top: 50%;
@@ -519,10 +522,6 @@ entity-menu {
   border-top: 1px solid #e5e5e5;
 }
 
-.search-row {
-  margin-top: 35px;
-}
-
 .dbpedia-logo {
   background-image: url(../img/dbpedia-logo.svg);
   display: inline-block;
@@ -693,6 +692,32 @@ entity-menu {
   }
 }
 
+.title-band {
+  background: linear-gradient(141deg, #0fb8ad 0%, #1fc8db 51%, #2cb5e8 75%);
+  padding: 100px 0 50px 0;
+  &.slim {
+    padding: 80px 0 30px 0;
+  }
+  .text-logo {
+    font-size: 50px;
+    color: #fff;
+  }
+}
+
+.latest-items {
+  color: white;
+  a {
+    color: white;
+  }
+}
+
+.index{
+  .navbar-default {
+    border-color: transparent;
+    background: rgba(255,255,255,0.6);
+  }
+}
+
 @-moz-keyframes spin {
   100% {
     -moz-transform: rotateY(360deg);