You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ma...@apache.org on 2014/01/22 21:33:26 UTC

svn commit: r1560502 [1/18] - in /incubator/spark: ./ _layouts/ _plugins/ css/ images/ js/ mllib/ news/ news/_posts/ releases/_posts/ screencasts/_posts/ site/ site/css/ site/images/ site/js/ site/mllib/ site/news/ site/releases/ site/screencasts/ site...

Author: matei
Date: Wed Jan 22 20:33:24 2014
New Revision: 1560502

URL: http://svn.apache.org/r1560502
Log:
Update site look and add pages for Streaming and MLlib

This monster commit does a variety of things:
- Update the site look and feel to be cleaner
- Add top-level points to front page
- Add a listing of related projects, and pages for those included in Spark
- Reorganize docs and community pages
- Make sure the site scales properly on mobile devices
- Add tabs to let users view the examples in any programming language

It's just a start, but should be a step towards a better web presence.


Added:
    incubator/spark/_plugins/extra.rb
    incubator/spark/community.md
    incubator/spark/css/bootstrap-theme.css
    incubator/spark/css/bootstrap-theme.min.css
    incubator/spark/css/bootstrap.css
    incubator/spark/css/bootstrap.min.css
    incubator/spark/css/cerulean.min.css
    incubator/spark/css/custom.css
    incubator/spark/images/hadoop.jpg   (with props)
    incubator/spark/images/logistic-regression.png   (with props)
    incubator/spark/images/logistic-regression2.png   (with props)
    incubator/spark/images/scaling.png   (with props)
    incubator/spark/images/spark-logo.png   (with props)
    incubator/spark/images/spark-stack.png   (with props)
    incubator/spark/images/spark-streaming-recovery.png   (with props)
    incubator/spark/images/spark-streaming-throughput.png   (with props)
    incubator/spark/js/
    incubator/spark/js/bootstrap.js
    incubator/spark/js/bootstrap.min.js
    incubator/spark/js/jquery-1.10.2.min.js
    incubator/spark/js/lang-tabs.js
    incubator/spark/mllib/
    incubator/spark/mllib/index.md
    incubator/spark/site/community.html
    incubator/spark/site/css/bootstrap-theme.css
    incubator/spark/site/css/bootstrap-theme.min.css
    incubator/spark/site/css/bootstrap.css
    incubator/spark/site/css/bootstrap.min.css
    incubator/spark/site/css/cerulean.min.css
    incubator/spark/site/css/custom.css
    incubator/spark/site/images/hadoop.jpg   (with props)
    incubator/spark/site/images/logistic-regression.png   (with props)
    incubator/spark/site/images/logistic-regression2.png   (with props)
    incubator/spark/site/images/scaling.png   (with props)
    incubator/spark/site/images/spark-logo.png   (with props)
    incubator/spark/site/images/spark-stack.png   (with props)
    incubator/spark/site/images/spark-streaming-recovery.png   (with props)
    incubator/spark/site/images/spark-streaming-throughput.png   (with props)
    incubator/spark/site/js/
    incubator/spark/site/js/bootstrap.js
    incubator/spark/site/js/bootstrap.min.js
    incubator/spark/site/js/jquery-1.10.2.min.js
    incubator/spark/site/js/lang-tabs.js
    incubator/spark/site/mllib/
    incubator/spark/site/mllib/index.html
    incubator/spark/site/streaming/
    incubator/spark/site/streaming/index.html
    incubator/spark/streaming/
    incubator/spark/streaming/index.md
Modified:
    incubator/spark/_config.yml
    incubator/spark/_layouts/global.html
    incubator/spark/_layouts/post.html
    incubator/spark/documentation.md
    incubator/spark/downloads.md
    incubator/spark/examples.md
    incubator/spark/faq.md
    incubator/spark/index.md
    incubator/spark/mailing-lists.md
    incubator/spark/news/_posts/2013-12-15-spark-summit-2013-is-a-wrap.md
    incubator/spark/news/index.md
    incubator/spark/releases/_posts/2013-09-25-spark-release-0-8-0.md
    incubator/spark/research.md
    incubator/spark/screencasts/_posts/2013-04-16-3-transformations-and-caching.md
    incubator/spark/screencasts/_posts/2013-08-26-4-a-standalone-job-in-spark.md
    incubator/spark/site/documentation.html
    incubator/spark/site/downloads.html
    incubator/spark/site/examples.html
    incubator/spark/site/faq.html
    incubator/spark/site/index.html
    incubator/spark/site/mailing-lists.html
    incubator/spark/site/news/amp-camp-2013-registration-ope.html
    incubator/spark/site/news/announcing-the-first-spark-summit.html
    incubator/spark/site/news/fourth-spark-screencast-published.html
    incubator/spark/site/news/index.html
    incubator/spark/site/news/nsdi-paper.html
    incubator/spark/site/news/run-spark-and-shark-on-amazon-emr.html
    incubator/spark/site/news/spark-0-6-1-and-0-5-2-released.html
    incubator/spark/site/news/spark-0-6-2-released.html
    incubator/spark/site/news/spark-0-7-0-released.html
    incubator/spark/site/news/spark-0-7-2-released.html
    incubator/spark/site/news/spark-0-7-3-released.html
    incubator/spark/site/news/spark-0-8-0-released.html
    incubator/spark/site/news/spark-0-8-1-released.html
    incubator/spark/site/news/spark-accepted-into-apache-incubator.html
    incubator/spark/site/news/spark-and-shark-in-the-news.html
    incubator/spark/site/news/spark-featured-in-wired.html
    incubator/spark/site/news/spark-mailing-lists-moving-to-apache.html
    incubator/spark/site/news/spark-meetups.html
    incubator/spark/site/news/spark-screencasts-published.html
    incubator/spark/site/news/spark-summit-2013-is-a-wrap.html
    incubator/spark/site/news/spark-tips-from-quantifind.html
    incubator/spark/site/news/spark-user-survey-and-powered-by-page.html
    incubator/spark/site/news/spark-version-0-6-0-released.html
    incubator/spark/site/news/strata-exercises-now-available-online.html
    incubator/spark/site/news/video-from-first-spark-development-meetup.html
    incubator/spark/site/releases/spark-release-0-3.html
    incubator/spark/site/releases/spark-release-0-5-0.html
    incubator/spark/site/releases/spark-release-0-5-1.html
    incubator/spark/site/releases/spark-release-0-5-2.html
    incubator/spark/site/releases/spark-release-0-6-0.html
    incubator/spark/site/releases/spark-release-0-6-1.html
    incubator/spark/site/releases/spark-release-0-6-2.html
    incubator/spark/site/releases/spark-release-0-7-0.html
    incubator/spark/site/releases/spark-release-0-7-2.html
    incubator/spark/site/releases/spark-release-0-7-3.html
    incubator/spark/site/releases/spark-release-0-8-0.html
    incubator/spark/site/releases/spark-release-0-8-1.html
    incubator/spark/site/research.html
    incubator/spark/site/screencasts/1-first-steps-with-spark.html
    incubator/spark/site/screencasts/2-spark-documentation-overview.html
    incubator/spark/site/screencasts/3-transformations-and-caching.html
    incubator/spark/site/screencasts/4-a-standalone-job-in-spark.html
    incubator/spark/site/screencasts/index.html

Modified: incubator/spark/_config.yml
URL: http://svn.apache.org/viewvc/incubator/spark/_config.yml?rev=1560502&r1=1560501&r2=1560502&view=diff
==============================================================================
--- incubator/spark/_config.yml (original)
+++ incubator/spark/_config.yml Wed Jan 22 20:33:24 2014
@@ -12,3 +12,6 @@ keep_files: ['docs', '.svn']
 # E.g. on OS X this might be:
 #url: file:///Users/andyk/Development/spark/website/site/
 url: /
+
+shark_url: http://shark.cs.berkeley.edu
+graphx_url: http://amplab.github.io/graphx/

Modified: incubator/spark/_layouts/global.html
URL: http://svn.apache.org/viewvc/incubator/spark/_layouts/global.html?rev=1560502&r1=1560501&r2=1560502&view=diff
==============================================================================
--- incubator/spark/_layouts/global.html (original)
+++ incubator/spark/_layouts/global.html Wed Jan 22 20:33:24 2014
@@ -1,28 +1,24 @@
 <!DOCTYPE html>
-<!--[if IE 6]>
-<html id="ie6" dir="ltr" lang="en-US">
-<![endif]-->
-<!--[if IE 7]>
-<html id="ie7" dir="ltr" lang="en-US">
-<![endif]-->
-<!--[if IE 8]>
-<html id="ie8" dir="ltr" lang="en-US">
-<![endif]-->
-<!--[if !(IE 6) | !(IE 7) | !(IE 8)  ]><!-->
-<html dir="ltr" lang="en-US">
-<!--<![endif]-->
+<html lang="en">
 <head>
-  <link rel="shortcut icon" href="{{site.url}}favicon.ico" />
-  <meta charset="UTF-8" />
-  <meta name="viewport" content="width=device-width" />
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
   <title>
     {% if page.custom_title %} {{page.custom_title}}
     {% else %} {{page.title}} | Apache Spark
     {% endif %}
   </title>
 
-  <link rel="stylesheet" type="text/css" media="all" href="{{site.url}}css/style.css" />
-  <link rel="stylesheet" href="{{site.url}}css/pygments-default.css">
+  {% if page.redirect %}
+    <meta http-equiv="refresh" content="0; url={{site.url}}{{page.redirect}}">
+    <link rel="canonical" href="{{site.url}}{{page.redirect}}" />
+  {% endif %}
+
+  <!-- Bootstrap core CSS -->
+  <link href="{{site.url}}css/cerulean.min.css" rel="stylesheet">
+  <link href="{{site.url}}css/custom.css" rel="stylesheet">
 
   <script type="text/javascript">
   <!-- Google Analytics initialization -->
@@ -47,48 +43,144 @@
   }
   </script>
 
-  <link rel='canonical' href='{{site.url}}index.html' />
-
-  <style type="text/css">
-    #site-title,
-    #site-description {
-      position: absolute !important;
-      clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
-      clip: rect(1px, 1px, 1px, 1px);
-    }
-  </style>
-  <style type="text/css" id="custom-background-css">
-    body.custom-background { background-color: #f1f1f1; }
-  </style>
+  <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+  <!--[if lt IE 9]>
+  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+  <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+  <![endif]-->
 </head>
 
-<!--body class="page {% if page.sidebar %}two-column right-sidebar{% else %}singular{% endif%}"-->
-<body class="{{page.type}}">
-<div id="page" class="hfeed">
-
-  {% include navbar.html %}
-
-  <div id="main">
-    <div id="primary">
-      <div id="content" role="main">
-        {% if page.type contains 'archive' %}
-          {{ content }}
-        {% else %}
-          <article class="page type-page status-publish hentry">
-            {{ content }}
-          </article><!-- #post -->
-        {% endif %}
-      </div><!-- #content -->
-      {% if page.sidebar %}
-      <div id="secondary" class="widget-area" role="complementary">
-        {{ page.sidebar | markdownify }}
-      </div>
-      {% endif %}
-      {% include footer.html %}
-    </div><!-- #primary -->
-  </div><!-- #main -->
-</div><!-- #page -->
+<body>
+
+<div class="container" style="max-width: 1200px;">
 
+<div class="masthead">
+  {% if page.subproject %}
+    <p class="lead">
+      <a href="{{site.url}}">
+      <img src="{{site.url}}images/spark-logo.png"
+      style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;"></a>
+      <a href="#"><span class="subproject">
+        {{ page.subproject }}
+      </span></a>
+    </p>
+  {% else %}
+    <p class="lead">
+      <a href="{{site.url}}">
+      <img src="{{site.url}}images/spark-logo.png"
+        style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;"></a><span class="tagline">
+          Lightning-fast cluster computing
+      </span>
+    </p>
+  {% endif %}
+</div>
+
+<nav class="navbar navbar-default" role="navigation">
+  <!-- Brand and toggle get grouped for better mobile display -->
+  <div class="navbar-header">
+    <button type="button" class="navbar-toggle" data-toggle="collapse"
+            data-target="#navbar-collapse-1">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  </div>
+
+  <!-- Collect the nav links, forms, and other content for toggling -->
+  <div class="collapse navbar-collapse" id="navbar-collapse-1">
+    <ul class="nav navbar-nav">
+      <li><a href="{{site.url}}downloads.html">Download</a></li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+          Related Projects <b class="caret"></b>
+        </a>
+        <ul class="dropdown-menu">
+          <li><a href="{{site.shark_url}}">Shark (SQL)</a></li>
+          <li><a href="{{site.url}}streaming/">Spark Streaming</a></li>
+          <li><a href="{{site.url}}mllib/">MLlib (machine learning)</a></li>
+          <li><a href="{{site.graphx_url}}">GraphX (graph)</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+          Documentation <b class="caret"></b>
+        </a>
+        <ul class="dropdown-menu">
+          <li><a href="{{site.url}}documentation.html">Overview</a></li>
+          <li><a href="{{site.url}}docs/latest/">Latest Release</a></li>
+          <li><a href="{{site.url}}examples.html">Examples</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+          Community <b class="caret"></b>
+        </a>
+        <ul class="dropdown-menu">
+          <li><a href="{{site.url}}community.html">Mailing Lists</a></li>
+          <li><a href="{{site.url}}community.html#events">Events and Meetups</a></li>
+          <li><a href="{{site.url}}community.html#history">Project History</a></li>
+          <li><a href="https://cwiki.apache.org/confluence/display/SPARK/Powered+By+Spark">Powered By</a></li>
+        </ul>
+      </li>
+      <li><a href="{{site.url}}faq.html">FAQ</a></li>
+    </ul>
+  </div>
+  <!-- /.navbar-collapse -->
+</nav>
+
+
+<div class="row">
+  <div class="col-md-3 col-md-push-9">
+    <div class="news" style="margin-bottom: 20px;">
+      <h5>Latest News</h5>
+      <ul class="list-unstyled">
+        {% for post in site.categories.news limit:4 %}
+          <li><a href="{{ post.url }}">{{ post.title }}</a>
+          <span class="small">({{post.date| date:"%b %d, %Y"}})</span></li>
+        {% endfor %}
+      </ul>
+      <p class="small" style="text-align: right;"><a href="{{site.url}}news/index.html">Archive</a></p>
+    </div>
+    <div class="hidden-xs hidden-sm">
+      <a href="{{site.url}}downloads.html" class="btn btn-success btn-lg btn-block" style="margin-bottom: 30px;">
+        Download Spark
+      </a>
+      <p style="font-size: 16px; font-weight: 500; color: #555;">
+        Related Projects:
+      </p>
+      <ul class="list-narrow">
+        <li><a href="{{site.shark_url}}">Shark (SQL)</a></li>
+        <li><a href="{{site.url}}streaming/">Spark Streaming</a></li>
+        <li><a href="{{site.url}}mllib/">MLlib (machine learning)</a></li>
+        <li><a href="{{site.graphx_url}}">GraphX (graph)</a></li>
+      </ul>
+    </div>
+  </div>
+
+  <div class="col-md-9 col-md-pull-3">
+    {{content}}
+  </div>
+</div>
+
+{% if page.extra %}
+  {{ page.extra | markdownify }}
+{% endif %}
+
+<footer class="small">
+  <hr>
+  Apache Spark is an effort undergoing incubation at The Apache Software Foundation.
+  <a href="http://incubator.apache.org/" style="border: none;">
+    <img style="vertical-align: middle; float: right; margin-bottom: 15px;"
+        src="{{site.url}}images/incubator-logo.png" alt="Apache Incubator" title="Apache Incubator" />
+  </a>  
+</footer>
+
+</div>
+
+<script src="https://code.jquery.com/jquery.js"></script>
+<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+<script src="{{site.url}}js/lang-tabs.js"></script>
 
 </body>
 </html>

Modified: incubator/spark/_layouts/post.html
URL: http://svn.apache.org/viewvc/incubator/spark/_layouts/post.html?rev=1560502&r1=1560501&r2=1560502&view=diff
==============================================================================
--- incubator/spark/_layouts/post.html (original)
+++ incubator/spark/_layouts/post.html Wed Jan 22 20:33:24 2014
@@ -5,4 +5,9 @@ type: singular
 <h2>{{page.title}}</h2>
 
 
-{{content}}
\ No newline at end of file
+{{content}}
+
+<p>
+<br/>
+<a href="{{site.url}}news/">Spark News Archive</a>
+</p>

Added: incubator/spark/_plugins/extra.rb
URL: http://svn.apache.org/viewvc/incubator/spark/_plugins/extra.rb?rev=1560502&view=auto
==============================================================================
--- incubator/spark/_plugins/extra.rb (added)
+++ incubator/spark/_plugins/extra.rb Wed Jan 22 20:33:24 2014
@@ -0,0 +1,19 @@
+# A custom block for "extra" content to put at the bottom of pages.
+# This will appear below the two-column layout pages normally have.
+
+module Liquid
+  class ExtraBlock < Liquid::Block
+    alias :super_render :render
+
+    def initialize(tag_name, identifier, tokens)
+      super
+    end
+
+    def render(context)
+      context.environments.first["page"]["extra"] = super_render(context)
+      ''
+    end
+  end
+end
+puts "registering new extra template"
+Liquid::Template.register_tag('extra', Liquid::ExtraBlock)

Added: incubator/spark/community.md
URL: http://svn.apache.org/viewvc/incubator/spark/community.md?rev=1560502&view=auto
==============================================================================
--- incubator/spark/community.md (added)
+++ incubator/spark/community.md Wed Jan 22 20:33:24 2014
@@ -0,0 +1,77 @@
+---
+layout: global
+title: Community
+type: "page singular"
+navigation:
+  weight: 5
+  show: true
+---
+
+<h2>Spark Community</h2>
+
+<a name="mailing-lists"></a>
+<h3>Mailing Lists</h3>
+
+<p>Get help using Spark or contribute to the project on our mailing lists:</p>
+<ul>
+  <li>
+    <a href="http://apache-spark-user-list.1001560.n3.nabble.com">user@spark.incubator.apache.org</a> is for usage questions, help, and announcements. <a href="mailto:user-subscribe@spark.incubator.apache.org?subject=(send%20this%20email%20to%20subscribe)">(subscribe)</a> <a href="http://apache-spark-user-list.1001560.n3.nabble.com">(archives)</a>
+  </li>
+  <li>
+    <a href="http://apache-spark-developers-list.1001551.n3.nabble.com">dev@spark.incubator.apache.org</a> is for people who want to contribute code to Spark. <a href="mailto:dev-subscribe@spark.incubator.apache.org?subject=(send%20this%20email%20to%20subscribe)">(subscribe)</a> <a href="http://apache-spark-developers-list.1001551.n3.nabble.com">(archives)</a>
+  </li>
+</ul>
+
+<a name="events"></a>
+<h3>Events and Meetups</h3>
+
+<p>Conferences:</p>
+<ul>
+  <li>
+    <b><a href="http://spark-summit.org">Spark Summit:</a></b>
+    In December 2013, the community held the first <a href="http://spark-summit.org">Spark Summit</a>, with 30 talks from organizations using Apache Spark. Visit the <a href="http://spark-summit.org/summit-2013/">Summit archive page</a> for slides and videos of all the talks. <a href="http://spark-summit.org">Spark Summit 2014</a> is also coming up.
+  </li>
+</ul>
+
+<p>Meetups:</p>
+<ul>
+  <li>
+    <b><a href="http://www.meetup.com/spark-users/">Bay Area Spark Meetup:</a></b>
+    This group has been running monthly events since January 2012 in the San Francisco area.
+    The meetup page also contains an <a href="http://www.meetup.com/spark-users/events/past/">archive of past meetups</a>, including videos and <a href="http://www.meetup.com/spark-users/files/">slides</a> on most of the recent pages.
+  </li>
+  <li>
+    <b><a href="http://www.meetup.com/Seattle-Spark-Meetup/">Seattle Spark Meetup:</a></b> Newly formed group in Seattle.
+  </li>
+</ul>
+
+<p>If you'd like your meetup added, email <a href="mailto:user@spark.incubator.apache.org">user@spark.incubator.apache.org</a>.</p>
+
+<a name="issue-tracker"></a>
+<h3>Issue Tracker</h3>
+
+<p>The project tracks bugs and new features on <a href="https://spark-project.atlassian.net/browse/SPARK">JIRA</a>. If you'd like, you can also subscribe to the <a href="http://groups.google.com/group/spark-issues">spark-issues</a> group to receive emails about new or updated issues.</p>
+
+<h3>Powered By</h3>
+
+<p>Our wiki has a list of <a href="https://cwiki.apache.org/confluence/display/SPARK/Powered+By+Spark">projects and organizations powered by Spark</a>.</p>
+
+<a name="history"></a>
+<h3>Project History</h3>
+
+
+<p>
+Spark started as a research project at the <a href="https://amplab.cs.berkeley.edu">UC Berkeley AMPLab</a>
+in 2009, and was open sourced in early 2010.
+Many of the ideas behind the system are presented in various
+<a href="{{site.url}}research.html">research papers</a>.
+The AMPLab continues to perform research on both improving Spark and on systems built on top, such as
+<a href="{{site.shark_url}}">Shark</a>, <a href="{{site.graphx_url}}">GraphX</a>, and
+<a href="{{site.url}}streaming/">Spark Streaming</a>.
+</p>
+
+<p>
+After being released, Spark grew a developer community on GitHub and entered Apache in 2013
+as its permanent home.
+A wide range of contributors now develop the project (over 120 developers from 25 companies).
+</p>

Added: incubator/spark/css/bootstrap-theme.css
URL: http://svn.apache.org/viewvc/incubator/spark/css/bootstrap-theme.css?rev=1560502&view=auto
==============================================================================
--- incubator/spark/css/bootstrap-theme.css (added)
+++ incubator/spark/css/bootstrap-theme.css Wed Jan 22 20:33:24 2014
@@ -0,0 +1,397 @@
+/*!
+ * Bootstrap v3.0.3 (http://getbootstrap.com)
+ * Copyright 2013 Twitter, Inc.
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ */
+
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn:active,
+.btn.active {
+  background-image: none;
+}
+
+.btn-default {
+  text-shadow: 0 1px 0 #fff;
+  background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
+  background-repeat: repeat-x;
+  border-color: #dbdbdb;
+  border-color: #ccc;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-default:hover,
+.btn-default:focus {
+  background-color: #e0e0e0;
+  background-position: 0 -15px;
+}
+
+.btn-default:active,
+.btn-default.active {
+  background-color: #e0e0e0;
+  border-color: #dbdbdb;
+}
+
+.btn-primary {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+  background-repeat: repeat-x;
+  border-color: #2b669a;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-primary:hover,
+.btn-primary:focus {
+  background-color: #2d6ca2;
+  background-position: 0 -15px;
+}
+
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #2d6ca2;
+  border-color: #2b669a;
+}
+
+.btn-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+  background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+  background-repeat: repeat-x;
+  border-color: #3e8f3e;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-success:hover,
+.btn-success:focus {
+  background-color: #419641;
+  background-position: 0 -15px;
+}
+
+.btn-success:active,
+.btn-success.active {
+  background-color: #419641;
+  border-color: #3e8f3e;
+}
+
+.btn-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+  background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+  background-repeat: repeat-x;
+  border-color: #e38d13;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-warning:hover,
+.btn-warning:focus {
+  background-color: #eb9316;
+  background-position: 0 -15px;
+}
+
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #eb9316;
+  border-color: #e38d13;
+}
+
+.btn-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+  background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+  background-repeat: repeat-x;
+  border-color: #b92c28;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-danger:hover,
+.btn-danger:focus {
+  background-color: #c12e2a;
+  background-position: 0 -15px;
+}
+
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #c12e2a;
+  border-color: #b92c28;
+}
+
+.btn-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+  background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+  background-repeat: repeat-x;
+  border-color: #28a4c9;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-info:hover,
+.btn-info:focus {
+  background-color: #2aabd2;
+  background-position: 0 -15px;
+}
+
+.btn-info:active,
+.btn-info.active {
+  background-color: #2aabd2;
+  border-color: #28a4c9;
+}
+
+.thumbnail,
+.img-thumbnail {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  background-color: #e8e8e8;
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+}
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  background-color: #357ebd;
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+}
+
+.navbar-default {
+  background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
+  background-repeat: repeat-x;
+  border-radius: 4px;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+}
+
+.navbar-default .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+  background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+}
+
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+
+.navbar-inverse {
+  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+  background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.navbar-inverse .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
+  background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+
+.alert {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.alert-success {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+  background-repeat: repeat-x;
+  border-color: #b2dba1;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+}
+
+.alert-info {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+  background-repeat: repeat-x;
+  border-color: #9acfea;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+}
+
+.alert-warning {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+  background-repeat: repeat-x;
+  border-color: #f5e79e;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+}
+
+.alert-danger {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+  background-repeat: repeat-x;
+  border-color: #dca7a7;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+}
+
+.progress {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+}
+
+.progress-bar {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+}
+
+.progress-bar-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+}
+
+.progress-bar-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+}
+
+.progress-bar-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+}
+
+.progress-bar-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+}
+
+.list-group {
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 #3071a9;
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+  background-repeat: repeat-x;
+  border-color: #3278b3;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
+}
+
+.panel {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.panel-default > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+}
+
+.panel-primary > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+}
+
+.panel-success > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+}
+
+.panel-info > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+}
+
+.panel-warning > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+}
+
+.panel-danger > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+}
+
+.well {
+  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+  background-repeat: repeat-x;
+  border-color: #dcdcdc;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+}
\ No newline at end of file

Added: incubator/spark/css/bootstrap-theme.min.css
URL: http://svn.apache.org/viewvc/incubator/spark/css/bootstrap-theme.min.css?rev=1560502&view=auto
==============================================================================
--- incubator/spark/css/bootstrap-theme.min.css (added)
+++ incubator/spark/css/bootstrap-theme.min.css Wed Jan 22 20:33:24 2014
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.0.3 (http://getbootstrap.com)
+ * Copyright 2013 Twitter, Inc.
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ */
+
+.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);
 filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;fil
 ter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);backgr
 ound-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#2
 8a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,
 #f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gr
 adient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255
 ,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{bac
 kground-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gra
 dient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.
 Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8'
 ,GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-l
 inear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1p
 x 0 rgba(255,255,255,0.1)}
\ No newline at end of file