Browse Source

Rename old css file, add new redesigned files

Joseph Bielawski 11 years ago
parent
commit
dd0902352e
32 changed files with 2407 additions and 1806 deletions
  1. 0 2
      app/AppKernel.php
  2. 27 0
      app/Resources/FOSUserBundle/views/ChangePassword/changePassword_content.html.twig
  3. 34 8
      app/Resources/FOSUserBundle/views/Profile/edit_content.html.twig
  4. 23 17
      app/Resources/FOSUserBundle/views/Profile/show.html.twig
  5. 17 3
      app/Resources/FOSUserBundle/views/layout.html.twig
  6. 22 21
      app/Resources/HWIOAuthBundle/views/Connect/login.html.twig
  7. 2 2
      app/Resources/TwigBundle/views/Exception/error404.html.twig
  8. 1 1
      composer.json
  9. 4 5
      src/Packagist/WebBundle/Controller/WebController.php
  10. 614 0
      src/Packagist/WebBundle/Resources/public/css/bootstrap.min.css
  11. 439 542
      src/Packagist/WebBundle/Resources/public/css/main.css
  12. 736 0
      src/Packagist/WebBundle/Resources/public/css/old_main.css
  13. BIN
      src/Packagist/WebBundle/Resources/public/font/fontello.eot
  14. 138 0
      src/Packagist/WebBundle/Resources/public/font/fontello.svg
  15. BIN
      src/Packagist/WebBundle/Resources/public/font/fontello.ttf
  16. BIN
      src/Packagist/WebBundle/Resources/public/font/fontello.woff
  17. 6 0
      src/Packagist/WebBundle/Resources/public/js/layout.js
  18. 46 39
      src/Packagist/WebBundle/Resources/views/About/about.html.twig
  19. 10 13
      src/Packagist/WebBundle/Resources/views/Feed/feeds.html.twig
  20. 1 1
      src/Packagist/WebBundle/Resources/views/User/favorites.html.twig
  21. 1 1
      src/Packagist/WebBundle/Resources/views/User/packages.html.twig
  22. 16 14
      src/Packagist/WebBundle/Resources/views/User/profile.html.twig
  23. 41 46
      src/Packagist/WebBundle/Resources/views/Web/index.html.twig
  24. 11 10
      src/Packagist/WebBundle/Resources/views/Web/list.html.twig
  25. 7 12
      src/Packagist/WebBundle/Resources/views/Web/search.html.twig
  26. 3 6
      src/Packagist/WebBundle/Resources/views/Web/searchForm.html.twig
  27. 16 0
      src/Packagist/WebBundle/Resources/views/Web/searchSection.html.twig
  28. 31 17
      src/Packagist/WebBundle/Resources/views/Web/stats.html.twig
  29. 22 14
      src/Packagist/WebBundle/Resources/views/Web/submitPackage.html.twig
  30. 139 84
      src/Packagist/WebBundle/Resources/views/layout.html.twig
  31. 0 645
      web/css/fontawesome/font-awesome-ie7.css
  32. 0 303
      web/css/fontawesome/font-awesome.css

+ 0 - 2
app/AppKernel.php

@@ -1,9 +1,7 @@
 <?php
 
-use Symfony\Component\ClassLoader\DebugUniversalClassLoader;
 use Symfony\Component\Config\Loader\LoaderInterface;
 use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\ExceptionHandler;
 use Symfony\Component\HttpKernel\Kernel;
 
 class AppKernel extends Kernel

+ 27 - 0
app/Resources/FOSUserBundle/views/ChangePassword/changePassword_content.html.twig

@@ -0,0 +1,27 @@
+<form action="{{ path('fos_user_change_password') }}" {{ form_enctype(form) }} method="POST" class="fos_user_change_password span4">
+    {{ form_errors(form) }}
+
+    {{ form_label(form.current_password, 'Current password') }}
+    <div class="input-prepend">
+        {{ form_widget(form.current_password) }}
+        <span class="add-on"><span class="icon-key"></span></span>
+    </div>
+
+    {{ form_label(form.new.first, 'New password') }}
+    <div class="input-prepend">
+        {{ form_widget(form.new.first) }}
+        <span class="add-on"><span class="icon-lock"></span></span>
+    </div>
+
+    {{ form_label(form.new.second, 'Confirm new password') }}
+    <div class="input-prepend">
+        {{ form_widget(form.new.second) }}
+        <span class="add-on"><span class="icon-lock-open"></span></span>
+    </div>
+
+    {{ form_widget(form) }}
+
+    <div>
+        <input type="submit" class="btn btn-inverse" value="{{ 'change_password.submit'|trans({}, 'FOSUserBundle') }}" />
+    </div>
+</form>

+ 34 - 8
app/Resources/FOSUserBundle/views/Profile/edit_content.html.twig

@@ -1,16 +1,42 @@
-<form action="{{ path('fos_user_profile_edit') }}" {{ form_enctype(form) }} method="POST" class="fos_user_profile_edit">
-    {{ form_row(form.username) }}
-    {{ form_row(form.email) }}
-    {{ form_row(form.current_password) }}
+<form action="{{ path('fos_user_profile_edit') }}" {{ form_enctype(form) }} method="POST" class="fos_user_profile_edit span4">
+    {{ form_errors(form) }}
+
+    {{ form_label(form.username) }}
+    <div class="input-prepend">
+        {{ form_widget(form.username) }}
+        <span class="add-on"><span class="icon-user"></span></span>
+    </div>
+
+    {{ form_label(form.email) }}
+    <div class="input-prepend">
+        {{ form_widget(form.email) }}
+        <span class="add-on"><span class="icon-mail"></span></span>
+    </div>
+
+    {{ form_label(form.current_password) }}
+    <div class="input-prepend">
+        {{ form_widget(form.current_password) }}
+        <span class="add-on"><span class="icon-lock"></span></span>
+    </div>
 
     <div class="notifications">
-        {{ form_errors(form.failureNotifications) }}
-        {{ form_widget(form.failureNotifications) }}
-        {{ form_label(form.failureNotifications) }}
+        <label class="checkbox" for="failureNotifications">
+            {{ form_widget(form.failureNotifications) }}
+            Notify me of package update failures
+        </label>
     </div>
 
     <div>
         {{ form_widget(form) }}
-        <input type="submit" value="{{ 'profile.edit.submit'|trans({}, 'FOSUserBundle') }}" />
+        <input type="submit" class="btn btn-success" value="{{ 'profile.edit.submit'|trans({}, 'FOSUserBundle') }}" />
     </div>
 </form>
+
+<div class="span4">
+    <h5>Using GitHub:</h5>
+
+    <a href="{{ app.user.githubId ? '#' : hwi_oauth_login_url('github') }}" class="btn btn-github {{ app.user.githubId ? 'disabled' : '' }}">
+        <span class="icon-github" style="margin: 0 30px 0 50px"></span>
+        {{ app.user.githubId ? 'Accounts connected' : 'Connect accounts' }}
+    </a>
+</div>

+ 23 - 17
app/Resources/FOSUserBundle/views/Profile/show.html.twig

@@ -3,31 +3,37 @@
 {% import "PackagistWebBundle::macros.html.twig" as macros %}
 
 {% block content %}
-    <div class="box clearfix">
-        <h1>{{ user.username }} (that's you!)</h1>
-        <p><a href="{{ path('fos_user_profile_edit') }}">Edit your information</a></p>
-        <p><a href="{{ path('fos_user_change_password') }}">Change your password</a></p>
-        {% if not user.githubId %}
-        <p><a href="{{ hwi_oauth_login_url('github') }}">Connect your github account</a></p>
-        {% endif %}
-        <p><a href="{{ path('user_favorites', {name: app.user.username}) }}">View your favorites</a></p>
-        <p><a href="{{ path('user_profile', {name: app.user.username}) }}">View your public profile</a></p>
+<h2 class="title">
+    {{ user.username }} <small>(that's you!)</small>
+</h2>
+
+<section class="row">
+    <div class="span3">
+        {{ knp_menu_render('profile_menu', {'currentClass': 'active', 'allow_safe_labels': true}) }}
+    </div>
 
-        {% if app.user.apiToken %}
-            <h1>Your API Token</h1>
-            <p><a href="#" onclick="this.parentNode.innerHTML = '<pre><code>{{ app.user.apiToken }}</code></pre>'; return false;">Show API Token</a></p>
+    <section class="span9">
+        {%- if app.user.apiToken %}
+            <h3 class="font-normal">Your API Token</h3>
+            <p>
+                <a id="show-api-token" href="#">Show API Token</a>
+            </p>
+            <pre id="api-token" class="hidden"><code>{{ app.user.apiToken }}</code></pre>
             <p>You can use your API token to interact with the Packagist API.</p>
-            <h1>GitHub Service Hook</h1>
+
+            <h3 class="font-normal">GitHub Service Hook</h3>
             <p>Enabling the Packagist service hook ensures that your package will always be updated instantly when you push to GitHub. To do so you can go to your GitHub repository, click the "Settings" button, then "Webhooks &amp; Services". Add a "Packagist" service, and configure it with your API token (see above), plus your Packagist username. Check the "Active" box and submit the form. You can then hit the "Test Service" button to trigger it and check if Packagist removes the warning about the package not being auto-updated.</p>
-            <h1>Bitbucket POST Service</h1>
+
+            <h3 class="font-normal">Bitbucket POST Service</h3>
             <p>To enable the Bitbucket service hook, go to your BitBucket repository, open the "Admin" tab and select "Services" in the menu. Pick "POST" in the list and add it to your repository. Afterwards, you have to enter the Packagist endpoint, containing both your username and API token (see above). Enter <code>https://packagist.org/api/bitbucket?username={{ app.user.username }}&amp;apiToken=&hellip;</code> for the service's URL. Save your changes and you're done.</p>
-        {% endif %}
+        {%- endif %}
 
-        <h1>Your packages</h1>
+        <h3 class="font-normal">Your packages</h3>
         {% if packages|length %}
             {{ macros.listPackages(packages, true, true, meta) }}
         {% else %}
             <p>No packages found.</p>
         {% endif %}
-    </div>
+    </section>
+</section>
 {% endblock %}

+ 17 - 3
app/Resources/FOSUserBundle/views/layout.html.twig

@@ -1,7 +1,21 @@
 {% extends 'PackagistWebBundle::layout.html.twig' %}
 
 {% block content %}
-    <div class="box clearfix">
-        {% block fos_user_content %}{% endblock %}
-    </div>
+{% if app.user is null %}
+    <section class="row">
+        {{ block('fos_user_content') }}
+    </section>
+{% else %}
+    <h2 class="title">
+        {{ app.user.username }} <small>(that's you!)</small>
+    </h2>
+
+    <section class="row">
+        <div class="span3">
+            {{ knp_menu_render('profile_menu', {'currentClass': 'active', 'allow_safe_labels': true}) }}
+        </div>
+
+        {{ block('fos_user_content') }}
+    </section>
+{% endif %}
 {% endblock %}

+ 22 - 21
app/Resources/HWIOAuthBundle/views/Connect/login.html.twig

@@ -1,41 +1,42 @@
 {% extends 'HWIOAuthBundle::layout.html.twig' %}
 
 {% block hwi_oauth_content %}
+    <section class="row-fluid">
     {% if error %}
         <div>{{ error }}</div>
     {% endif %}
 
-    {# HWIOAuthBundle uses the same template for the login and the connect functionality currently
-       so we need to check if the user is already authenticated. #}
-    {% if not app.user %}
-        <div class="loginForm">
-            <form action="{{ path('login_check') }}" method="post">
-                <div>
-                    <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
-                    <input type="text" id="username" name="_username" />
+        {# HWIOAuthBundle uses the same template for the login and the connect functionality currently
+           so we need to check if the user is already authenticated. #}
+        <div class="span12">
+        {% if not app.user %}
+            <form class="offset1 span4" action="{{ path('login_check') }}" method="post">
+                <div class="input-prepend">
+                    <input type="text" id="username" name="_username" placeholder="{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}">
+                    <span class="add-on"><span class="icon-user"></span></span>
                 </div>
 
-                <div>
-                    <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
-                    <input type="password" id="password" name="_password" />
+                <div class="input-prepend">
+                    <input type="password" id="password" name="_password" placeholder="{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}">
+                    <span class="add-on"><span class="icon-lock"></span></span>
                 </div>
 
                 {% if packagist_host and packagist_host in app.request.headers.get('Referer') %}
                     <input type="hidden" name="_target_path" value="{{ app.request.headers.get('Referer') }}" />
                 {% endif %}
-                <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
+                <input class="btn btn-primary span12" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
             </form>
 
-            <p>
-                <a href="{{ path('fos_user_resetting_request') }}">Forgot password?</a>
+            <div class="offset1 span4">
                 {% for owner in hwi_oauth_resource_owners() %}
-                    <a class="login-{{ owner }}" href="{{ hwi_oauth_login_url(owner) }}">Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a> <br />
+                    <a class="btn btn-{{ owner }}" href="{{ hwi_oauth_login_url(owner) }}"><span class="icon-{{ owner }}"></span>Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a>{% if not loop.last %}<br />{% endif %}
                 {% endfor %}
-            </p>
+            </div>
+        {% else %}
+            {% for owner in hwi_oauth_resource_owners() %}
+                <a class="btn btn-{{ owner }}" href="{{ hwi_oauth_login_url(owner) }}"><span class="icon-{{ owner }}"></span>Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a>{% if not loop.last %}<br />{% endif %}
+            {% endfor %}
+        {% endif %}
         </div>
-    {% else %}
-        {% for owner in hwi_oauth_resource_owners() %}
-            <a class="login-{{ owner }}" href="{{ hwi_oauth_login_url(owner) }}">Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a> <br />
-        {% endfor %}
-    {% endif %}
+    </section>
 {% endblock hwi_oauth_content %}

+ 2 - 2
app/Resources/TwigBundle/views/Exception/error404.html.twig

@@ -2,9 +2,9 @@
 
 {% block content %}
     <div class="box">
-         <form id="search-form" action="/search/" method="GET"  autocomplete="off">
+         <form id="search-form" action="{{ path('search') }}" method="GET" autocomplete="off">
             <p class="submit-wrapper"><input class="submit" type="submit" value="Search" /></p>
-            <p><input type="search" id="search_query_query" name="search_query[query]" required="required"    autocomplete="off" placeholder="Search packages..." tabindex="1" /></p>
+            <p><input type="search" id="search_query_query" name="search_query[query]" required="required" autocomplete="off" placeholder="Search packages..." tabindex="1" /></p>
         </form>
         <div class="search-list hidden">
         </div>

+ 1 - 1
composer.json

@@ -51,7 +51,7 @@
         "zendframework/zend-version": "2.0.*",
 
         "kriswallsmith/assetic": "~1.2@alpha",
-        "pagerfanta/pagerfanta": "~1.0"
+        "pagerfanta/pagerfanta": "~1.0",
         "knplabs/knp-menu-bundle": "*@dev",
         "knplabs/knp-menu": "*@dev"
     },

+ 4 - 5
src/Packagist/WebBundle/Controller/WebController.php

@@ -1075,13 +1075,12 @@ class WebController extends Controller
 
         // fill gaps at the end of the chart
         if (count($chart['months']) > count($chart['packages'])) {
-            $chart['packages'] += array_fill(0, count($chart['months']) - count($chart['packages']), max($chart['packages']));
+            $chart['packages'] += array_fill(0, count($chart['months']) - count($chart['packages']), !empty($chart['packages']) ? max($chart['packages']) : 0);
         }
         if (count($chart['months']) > count($chart['versions'])) {
-            $chart['versions'] += array_fill(0, count($chart['months']) - count($chart['versions']), max($chart['versions']));
+            $chart['versions'] += array_fill(0, count($chart['months']) - count($chart['versions']), !empty($chart['versions']) ? max($chart['versions']) : 0);
         }
 
-
         $res = $this->getDoctrine()
             ->getConnection()
             ->fetchAssoc('SELECT DATE_FORMAT(createdAt, "%Y-%m-%d") createdAt FROM `package` ORDER BY id LIMIT 1');
@@ -1119,8 +1118,8 @@ class WebController extends Controller
 
         return array(
             'chart' => $chart,
-            'packages' => max($chart['packages']),
-            'versions' => max($chart['versions']),
+            'packages' => !empty($chart['packages']) ? max($chart['packages']) : 0,
+            'versions' => !empty($chart['versions']) ? max($chart['versions']) : 0,
             'downloads' => $downloads,
             'downloadsChart' => $dlChart,
             'maxDailyDownloads' => !empty($dlChart) ? max($dlChart['values']) : null,

File diff suppressed because it is too large
+ 614 - 0
src/Packagist/WebBundle/Resources/public/css/bootstrap.min.css


File diff suppressed because it is too large
+ 439 - 542
src/Packagist/WebBundle/Resources/public/css/main.css


+ 736 - 0
src/Packagist/WebBundle/Resources/public/css/old_main.css

@@ -0,0 +1,736 @@
+/*  HTML5 ✰ Boilerplate  */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: 100%;
+  font: inherit;
+  vertical-align: baseline;
+}
+
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+  display: block;
+}
+
+blockquote, q { quotes: none; }
+blockquote:before, blockquote:after,
+q:before, q:after { content: ''; content: none; }
+ins { background-color: #ff9; color: #000; text-decoration: none; }
+mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
+del { text-decoration: line-through; }
+abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
+table { border-collapse: collapse; border-spacing: 0; }
+hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
+input, select { vertical-align: middle; }
+
+body { font:13px/1.231 sans-serif; *font-size:small; }
+select, input, textarea, button { font:99% sans-serif; }
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+
+html { overflow-y: scroll; }
+a:hover, a:active { outline: none; }
+ul, ol { margin-left: 2em; }
+ol { list-style-type: decimal; }
+nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
+small { font-size: 85%; }
+strong, th { font-weight: bold; }
+td { vertical-align: top; }
+
+sub, sup { font-size: 75%; line-height: 0; position: relative; }
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+
+pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
+textarea { overflow: auto; }
+.ie6 legend, .ie7 legend { margin-left: -7px; }
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
+button, input, select, textarea { margin: 0; }
+.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
+
+::-moz-selection{ background: #ffba53; color:#000; text-shadow: none; }
+::selection { background:#ffba53; color:#000; text-shadow: none; }
+a:link { -webkit-tap-highlight-color: #ffba53; }
+
+button {  width: auto; overflow: visible; }
+.ie7 img { -ms-interpolation-mode: bicubic; }
+
+body, select, input, textarea {  color: #444; }
+h1, h2, h3, h4, h5, h6 { font-weight: bold; }
+
+/*
+    // ========================================== \\
+   ||                                              ||
+   ||               Your styles !                  ||
+   ||                                              ||
+    \\ ========================================== //
+*/
+
+html {
+  height: 100%;
+}
+
+body {
+  background: #555 url("../img/texture.png");
+  font-size: 15px;
+  font-family: Helvetica, Arial;
+  color: #555;
+  min-height: 100%;
+}
+
+a, a:visited, a:active {
+  color: #c67700;
+  text-decoration: none;
+}
+a:hover {
+  color: #975a00;
+}
+
+.container {
+  background: #e5e5e5 url("../img/texture.png");
+  padding-bottom: 20px;
+  border-bottom: 1px solid #fafafa;
+  min-height: 400px;
+}
+
+.container div.user, .container div.box, .container header, .container div.flash-message {
+  width: 900px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+header h1 {
+  margin: 10px 0 0;
+  padding: 0;
+}
+header h1 a {
+  display: inline-block;
+  text-decoration: none;
+  margin: 0;
+  width: 0;
+  height: 0;
+  padding: 85px 0 0 435px;
+  background: url("../img/logo.png") 0 0 no-repeat;
+  overflow: hidden;
+}
+
+header h2 {
+  display: none;
+}
+
+header p {
+  clear: both;
+  margin: 0 -8px 10px;
+}
+.box {
+  width: 900px;
+  font-size: 15px;
+  padding: 7px;
+  background: #f5f5f5;
+  border: 1px solid #fff;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
+  margin-bottom: 10px;
+}
+
+header {
+  margin: 0 10px;
+  font-size: 15px;
+}
+
+.main {
+  margin: 10px 0;
+  clear: left;
+}
+
+.main:after {
+  display: block;
+  content: '';
+  clear: both;
+}
+
+footer {
+  width: 900px;
+  margin: 0 auto;
+  padding: 10px 0 4px;
+}
+footer ul {
+  width: 20%;
+  list-style: none;
+  float: right;
+}
+footer li {
+  margin: 0;
+  padding: 2px;
+}
+footer a, footer a:visited {
+  color: #ddd;
+  padding-left: 11px;
+  background: url("../img/footer_arrows.png") 0 2px no-repeat;
+}
+footer a:hover {
+  color: #fff;
+  background-position: 0 -18px;
+}
+
+.flash-message {
+  font-size: 20px;
+  margin: 20px 0;
+}
+
+.flash-message.success {
+  color: #519f1c;
+}
+.flash-message.error {
+  color: #a21a1a;
+}
+
+p {
+  margin-bottom: 10px;
+  font-family: "Arial", sans-serif;
+  line-height: 150%;
+}
+div.box > p:last-child {
+  margin-bottom: 0;
+}
+
+.package p {
+  margin-bottom: 0;
+}
+
+.user {
+  text-align: right;
+  padding: 4px 8px 5px;
+  color: #fff;
+  background: #bf7300;
+  background: -moz-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
+  background: -webkit-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
+  background: -o-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
+  background: -ms-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
+  background: linear-gradient(top, #bf7300 0%, #cc8f33 100%);
+  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
+  -webkit-border-bottom-right-radius: 6px;
+  -webkit-border-bottom-left-radius: 6px;
+  -moz-border-radius-bottomright: 6px;
+  -moz-border-radius-bottomleft: 6px;
+  border-bottom-right-radius: 6px;
+  border-bottom-left-radius: 6px;
+}
+.user a, .user a:visited { color: #fff; }
+.user a:hover { text-decoration: underline; }
+
+.loginForm {
+  width: 406px;
+}
+
+.login-github {
+  border: 1px solid #ccc;
+  color: #000 !important;
+  background: #fff url(../img/github_icon.png) 6px 6px no-repeat;
+  padding: 3px 5px 3px 26px;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+}
+.loginForm .login-github {
+  float: right;
+}
+
+.submit, .submit:active, .submit:visited, input[type="submit"] {
+  font-size: 22px;
+  float: right;
+  background: #53a51d;
+  background: -moz-linear-gradient(top, #53a51d 0%, #75b74a 100%);
+  background: -webkit-linear-gradient(top, #53a51d 0%, #75b74a 100%);
+  background: -o-linear-gradient(top, #53a51d 0%, #75b74a 100%);
+  background: -ms-linear-gradient(top, #53a51d 0%, #75b74a 100%);
+  background: linear-gradient(top, #53a51d 0%, #75b74a 100%);
+  border-width: 0;
+  display: block;
+  padding: 12px 20px;
+  color: #fff;
+  margin: 13px 0 10px;
+  text-decoration: none;
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
+}
+
+.submit:hover {
+  color: #fff;
+  background: #53a51d;
+}
+
+.packages nav {
+  padding: 4px;
+}
+
+.packages nav span, .packages nav a {
+  margin-right: 5px;
+  display: inline-block;
+}
+
+.getting-started {
+  float: left;
+  width: 48%;
+  margin-right: 4%;
+}
+
+.publishing-packages {
+  float: right;
+  width: 48%;
+}
+
+
+.main h1 {
+  font-size: 25px;
+  margin-bottom: 10px;
+  color: #53a51d;
+  font-weight: normal;
+}
+
+.main h2 {
+  font-size: 20px;
+  margin-bottom: 10px;
+}
+
+ul.packages {
+  list-style-type: none;
+  margin: 0;
+  padding: 0;
+}
+
+ul.packages h1 {
+  font-family: Verdana;
+  font-size: 22px;
+  line-height: 1em;
+  font-weight: normal;
+  margin: 0;
+  padding: 8px 4px 0 0;
+  height: 32px;
+}
+
+ul.packages h1 .metadata {
+  float: right;
+  color: #555;
+  font-size: 18px;
+  margin-right: 10px;
+}
+
+ul.packages li {
+    background: none repeat scroll 0 0 #EEEEEE;
+    border: 1px solid #BBBBBB;
+    border-radius: 3px 3px 3px 3px;
+    margin: 10px 0;
+    padding: 0 0 0 10px;
+}
+
+ul.packages li.selected {
+  background: #F9F9EE;
+}
+
+label {
+  display: block;
+  margin: 0 0 5px;
+}
+
+input, textarea {
+  width: 400px;
+}
+
+textarea {
+  resize: vertical;
+}
+
+input[type="submit"] {
+  width: 406px;
+  float: none;
+  background: #64c523 url("../img/arrow.png") 370px center no-repeat;
+}
+input[type="submit"].loading {
+  background-image: url("../img/loader.gif");
+}
+
+input[type="text"], input[type="password"], input[type="email"], input[type="search"] {
+  padding: 4px;
+  background-color: #fff;
+  border: 1px solid #ccc;
+  -moz-border-radius: 6px;
+  -webkit-border-radius: 6px;
+  border-radius: 6px;
+  box-shadow: none;
+}
+input[type="text"]:hover, input[type="password"]:hover, input[type="email"]:hover, input[type="search"]:hover,
+input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="search"]:focus {
+  border-color: #64c523;
+  outline-style: none;
+}
+input[type="text"]:invalid, input[type="password"]:invalid, input[type="email"]:invalid {
+  border-color: #c67700;
+  color: #bf7300;
+}
+input[type="search"] {
+  -moz-appearance:none;
+  -webkit-appearance:none;
+  font-size: 25px;
+}
+
+input[type="checkbox"] {
+  float: left;
+  clear: left;
+  width: auto;
+  margin: 3px 5px 0 0;
+}
+
+form ul {
+  color: #c00;
+  list-style: none;
+  margin: 10px 0;
+}
+
+/* Explore */
+.packages-short {
+  width: 50%;
+  float: left;
+  height: 415px;
+}
+.packages-short li a {
+  display: block;
+}
+.packages-short ul {
+  list-style: none;
+  margin: 0;
+}
+
+
+/* Search */
+#search_query_query {
+  width: 890px;
+}
+.no-js #search_query_query {
+  width: 780px;
+}
+#search-form .submit-wrapper {
+  width: 100px;
+  float: right;
+  display: none;
+}
+.no-js #search-form .submit-wrapper {
+  display: block;
+}
+#search-form .submit {
+  margin: 0;
+  padding: 6px 20px;
+  width: 100px;
+}
+#search-form p {
+  margin: 0;
+}
+.search-list {
+  margin-top: 10px;
+}
+
+/* Package */
+.package form h2 {
+  margin: 10px 0;
+}
+.package > h1 {
+  float: left;
+  margin-right: 20px;
+}
+#copy {
+  cursor: pointer;
+}
+.package .warning {
+  clear: both;
+  border: 1px solid #800;
+  background: #fee;
+  text-align: center;
+  padding: 5px;
+  margin: 20px 0;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.package .tags {
+  overflow: hidden;
+  white-space: nowrap;
+}
+.package .tags a {
+  background: #c67700;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  color: #fff;
+  display: inline-block;
+  padding: 1px 3px;
+  margin: 4px 5px 0 0;
+}
+.package .description {
+  clear: left;
+}
+.package .authors {
+  border-top: 1px solid #ccc;
+  margin-top: 10px;
+  padding-top: 10px;
+}
+.package .downloads {
+  clear: both;
+  float: right;
+  border: 1px solid #bbb;
+  background: #eee;
+  padding: 5px 10px;
+  margin: 0 0 10px;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.package .downloads span {
+  display: inline-block;
+  width: 90px;
+}
+.package .details span {
+  float: left;
+  display: block;
+  clear: left;
+  width: 90px;
+}
+.package .versions {
+  list-style: none;
+  clear: both;
+  margin: 0;
+}
+.package .version {
+  background: #eee;
+  padding: 5px 10px;
+  border: 1px solid #bbb;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  margin-bottom: 10px;
+}
+.package .version.last {
+  margin-bottom: 0;
+}
+.package .version h1 {
+  margin-bottom: 5px;
+  cursor: pointer;
+}
+.package .version .source-reference {
+  padding-left: 10px;
+  font-size: 12px;
+}
+.package .version .release-date {
+  padding-left: 10px;
+  font-size: 14px;
+  float: right;
+}
+.package .version .license {
+  float: right;
+  font-size: 14px;
+  clear: right;
+  text-align: right;
+  line-height: 12px;
+}
+.package .version .license.unknown {
+  color: #c00;
+}
+.package .version .details {
+  display: none;
+}
+.package .version .details.open {
+  display: block;
+}
+.package .package-links {
+  border-top: 1px solid #ccc;
+  margin-top: 10px;
+  padding-top: 10px;
+}
+.package .package-links div {
+  float: left;
+  width: 32%;
+  margin-bottom: 10px;
+}
+.package .version {
+  font-size: 11px;
+}
+.package .version h2 {
+  font-size: 14px;
+  margin-bottom: 2px;
+}
+.package .version .details ul {
+  margin-left: 2px;
+  list-style: disc inside none;
+}
+.package .requireme {
+  padding: 3px 0 3px 0;
+}
+.package .requireme input {
+  border: 0 !important;
+  border-radius: 0;
+  background-color: transparent;
+  font-family: Courier;
+  min-width: 500px;
+  width: auto;
+}
+.package .package-links .provides {
+  clear: left;
+}
+.package .package-links .requires,
+.package .package-links .devRequires,
+.package .package-links .provides,
+.package .package-links .conflicts {
+  margin-right: 5px;
+}
+.package .details-toggler {
+  height: 12px;
+  margin: 0 -5px;
+  padding: 0 4px;
+  width: 100%;
+  border: 1px solid #ccc;
+  -webkit-border-radius: 2px;
+  -moz-border-radius: 2px;
+  border-radius: 2px;
+  background: url(../img/expand.gif) center center no-repeat #ddd;
+}
+.package .details-toggler.open {
+  background-image: url(../img/contract.gif);
+}
+.package .details-toggler:hover {
+  background-color: #ccc;
+  cursor: pointer;
+}
+.package .description, .package .details {
+  margin-bottom: 10px;
+}
+
+.package .mark-favorite {
+  font-size: 20px;
+  cursor: pointer;
+  color: #c4b90c;
+}
+.package .mark-favorite.icon-star {
+  color: #eadc00;
+}
+
+.no-js .package .force-update, .no-js .package .mark-favorite {
+  display: none;
+}
+.package .action {
+  float: right;
+  margin-left: 10px;
+}
+.package .action input {
+  width: auto;
+  font-size: 16px;
+  margin: 0;
+  padding: 8px;
+  background-image: none;
+}
+.package .action.delete input, .package .action.delete-version input {
+  background: #a61c1c;
+  background: -moz-linear-gradient(top, #a61c1c 0%, #b84949 100%);
+  background: -webkit-linear-gradient(top, #a61c1c 0%, #b84949 100%);
+  background: -o-linear-gradient(top, #a61c1c 0%, #b84949 100%);
+  background: -ms-linear-gradient(top, #a61c1c 0%, #b84949 100%);
+  background: linear-gradient(top, #a61c1c 0%, #b84949 100%);
+}
+.package .action.delete-version {
+  float: none;
+  display: inline-block;
+  height: 20px;
+}
+.package .action.delete-version input {
+  font-size: 10px;
+  padding: 3px;
+}
+.package .action input.loading {
+  background-position: 10px center;
+  background-image: url("../img/loader.gif");
+  padding-left: 30px;
+}
+
+
+pre {
+  background: #fff;
+  border: 1px solid #ddd;
+  -moz-border-radius: 6px;
+  -webkit-border-radius: 6px;
+  border-radius: 6px;
+  display: block;
+  padding: 5px;
+  margin: 10px 0;
+}
+
+.humane {
+  max-height: 90%;
+  overflow: auto;
+}
+.humane pre {
+  text-align: left;
+  background-color: #111;
+  color: #fff;
+  text-shadow: none;
+}
+
+/*
+    // ========================================== \\
+   ||                                              ||
+   ||                    Finito !                  ||
+   ||                                              ||
+    \\ ========================================== //
+*/
+
+.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
+.hidden { display: none; visibility: hidden; }
+.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
+.invisible { visibility: hidden; }
+.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
+.clearfix:after { clear: both; }
+.clearfix { zoom: 1; }
+
+@media all and (orientation:portrait) {
+
+}
+
+@media all and (orientation:landscape) {
+
+}
+
+@media screen and (max-device-width: 480px) {
+
+  /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+
+@media print {
+  * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
+  -ms-filter: none !important; }
+  a, a:visited { color: #444 !important; text-decoration: underline; }
+  a[href]:after { content: " (" attr(href) ")"; }
+  abbr[title]:after { content: " (" attr(title) ")"; }
+  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
+  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+  thead { display: table-header-group; }
+  tr, img { page-break-inside: avoid; }
+  @page { margin: 0.5cm; }
+  p, h2, h3 { orphans: 3; widows: 3; }
+  h2, h3{ page-break-after: avoid; }
+}

BIN
src/Packagist/WebBundle/Resources/public/font/fontello.eot


+ 138 - 0
src/Packagist/WebBundle/Resources/public/font/fontello.svg

@@ -0,0 +1,138 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Created by FontForge 20100429 at Mon Feb 25 20:22:10 2013
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+</metadata>
+<defs>
+<font id="fontello" horiz-adv-x="1030" >
+  <font-face 
+    font-family="fontello"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1000"
+    panose-1="2 0 6 3 0 0 0 0 0 0"
+    ascent="850"
+    descent="-150"
+    bbox="14.5185 -142 1086 850"
+    underline-thickness="50"
+    underline-position="-100"
+    unicode-range="U+2692-1F680"
+  />
+<missing-glyph horiz-adv-x="364" 
+d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="364" 
+d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="333" 
+ />
+    <glyph glyph-name="uni2692" unicode="&#x2692;" 
+d="M170 506q-14 -14 -14 -47q0 -11 -2 -11q-1 -1 -18 -16t-18 -16q-16 -13 -28 4l-70 76q-3 4 -4 8t-0.5 7t4 6.5t6 5.5t7.5 5.5t7 5.5q15 11 20 16q6 6 27 6q22 0 36.5 14.5t18.5 37.5q5 25 10 30q2 0 9 7q18 18 67 53q134 90 186 96q114 0 148 -2q13 0 -8 -8
+q-123 -54 -152 -76q-80 -56 -36 -114q35 -47 38 -48q8 -8 -2 -14q-8 -8 -38 -35t-38 -35q-14 -8 -18 -4q-42 48 -71 60t-67 -12zM866 4q17 -22 -2 -38l-48 -42q-22 -13 -38 4l-414 472q-8 8 0 20l72 62q13 8 20 -2zM994 516q-49 -88 -154 -62q-56 12 -100 -32l-82 -78
+l-68 78l68 70q40 40 37 118q-1 34 5 58q12 56 140 112q12 6 18 -3t2 -15q-10 -10 -46 -80q-13 -10 -12 -35q1 -24 40 -53q58 -40 96 22q2 4 24.5 38t23.5 36q4 10 13 9q10 -2 11 -17q16 -103 -16 -166zM152 -2l254 248l76 -86l-246 -242q-20 -20 -38 -4l-46 46q-23 18 0 38z
+" />
+    <glyph glyph-name="uni26EF" unicode="&#x26ef;" horiz-adv-x="1101" 
+d="M15 402q0 15 13 17l86 14q6 19 18 42q-23 32 -50 64q-4 5 -4 11q0 7 4 11q11 15 45 49t45 34q7 0 12 -4l64 -50q20 11 43 18q5 53 13 86q4 13 16 13h104q15 0 17 -14l13 -85q22 -7 41 -17l66 49q4 4 11 4t12 -4q81 -73 81 -90q0 -5 -4 -10l-23 -30q-21 -27 -26 -34
+q13 -25 19 -46l85 -12q13 -2 13 -17v-103q0 -15 -13 -17l-86 -14q-6 -19 -18 -42q23 -32 50 -64q4 -5 4 -11q0 -7 -4 -11q-14 -17 -46.5 -50t-43.5 -33q-6 0 -11 4l-64 50q-24 -12 -43 -17q-6 -55 -13 -87q-4 -13 -17 -13h-104q-14 0 -16 14l-13 85q-24 7 -42 17l-66 -49
+q-4 -4 -11 -4t-12 4q-80 73 -80 90q0 5 4 10l24 32l25 32q-14 25 -20 46l-85 13q-13 2 -13 16v103zM229 350q0 -58 42.5 -100.5t100.5 -42.5t100.5 42.5t42.5 100.5t-42.5 100.5t-100.5 42.5t-100.5 -42.5t-42.5 -100.5zM855 -77q-5 -9 -27 -37t-27 -28l-7 4l-26 15l-36 21
+q-3 3 -3 4q0 13 29 77q-11 14 -17 29q-83 9 -83 17v78q0 9 83 18q5 11 17 29q-29 64 -29 77q0 2 1 3.5t3 2.5t4.5 2t6.5 3t7 4l16 10q11 6 17 9q15 9 17 9q5 0 27 -28t27 -36q7 1 17 1t17 -1q33 45 51 63l4 1q2 0 69 -39q2 -2 2 -4q0 -15 -28 -77q9 -13 16 -29q83 -9 83 -18
+v-78q0 -8 -83 -17q-7 -17 -16 -29q28 -62 28 -77q0 -2 -2 -4l-37 -21l-25 -15l-7 -4q-5 0 -27.5 28.5t-27.5 36.5q-14 -2 -17 -2t-17 2zM855 494q-5 -8 -27 -36t-27 -28q-1 0 -69 39q-3 3 -3 4q0 13 29 77q-11 14 -17 29q-83 9 -83 18v78q0 8 83 17q5 11 17 29
+q-29 64 -29 77q0 2 1 3.5t3 2.5t4.5 2t6.5 3t7 4l16 9q11 7 17 10q15 9 17 9q5 0 27 -28t27 -36q14 2 17 2t17 -2q33 45 51 63l4 1q2 0 69 -39q2 -2 2 -4q0 -15 -28 -77q9 -13 16 -29q83 -9 83 -17v-78q0 -9 -83 -18q-7 -17 -16 -29q28 -62 28 -77q0 -2 -2 -4
+q-67 -39 -69 -39q-5 0 -27.5 28t-27.5 36q-7 -1 -17 -1t-17 1zM801 64q0 -29 21 -50t50 -21t50.5 21t21.5 50q0 28 -22 50t-50 22t-49.5 -21.5t-21.5 -50.5zM801 636q0 -29 21 -50.5t50 -21.5t50.5 21.5t21.5 50.5q0 28 -21.5 49.5t-50.5 21.5q-28 0 -49.5 -21.5
+t-21.5 -49.5z" />
+    <glyph glyph-name="uni2709" unicode="&#x2709;" horiz-adv-x="930" 
+d="M17 626q2 14 26 14h846q38 0 20 -32q-8 -15 -24 -22l-97 -51l-180 -97q-93 -50 -97 -52q-16 -10 -46 -10q-29 0 -46 10q-4 2 -97 52l-180 97l-97 51q-32 18 -28 40zM895 486q20 11 20 -10v-368q0 -16 -17 -32t-33 -16h-800q-16 0 -33 16t-17 32v368q0 21 20 10l384 -200
+q17 -10 46 -10t46 10z" />
+    <glyph glyph-name="uniE700" unicode="&#xe700;" 
+d="M815 6v-106h-800v202q41 16 82 26q95 34 129 69q35 35 35 95q0 22 -23 48q-24 27 -31 74q-1 11 -23 25q-21 13 -25 61q0 32 14 38l4 4q-1 6 -3 19q-13 53 -8 95.5t39 85.5q46 58 160 58t160 -58t42 -112l-14 -88q18 -8 18 -42q-5 -55 -23 -60q-20 -5 -23 -26
+q-10 -46 -33 -73q-23 -28 -23 -49q0 -60 36 -95t130 -69q180 -65 180 -122zM865 400h150v-100h-150v-150h-100v150h-150v100h150v150h100v-150z" />
+    <glyph glyph-name="uniE70A" unicode="&#xe70a;" 
+d="M26 353q74 120 203.5 201.5t285.5 81.5t285.5 -81.5t203.5 -201.5q11 -20 11 -39q0 -18 -11 -38q-74 -120 -203 -201.5t-286 -81.5q-156 0 -285.5 81.5t-203.5 201.5q-11 20 -11 38q0 19 11 39zM86 314q70 -109 180 -179.5t249 -70.5t249 70.5t180 179.5
+q-85 130 -213 197q34 -58 34 -125q0 -104 -73 -177t-177 -73t-177 73t-73 177q0 67 34 125q-128 -67 -213 -197zM345 386q0 -11 8 -19t19 -8t19 8t8 19q0 47 34.5 81.5t81.5 34.5q11 0 19 8t8 19t-8 18.5t-19 7.5q-69 0 -119.5 -50t-50.5 -119z" />
+    <glyph glyph-name="uniE70B" unicode="&#xe70b;" 
+d="M26 353q85 130 212 207q125 76 277 76q43 0 100 -10l31 54q6 9 15 9q4 0 28 -12l46 -27q9 -6 9 -15v-5l-176 -316l-176 -316l-28 -50q-6 -9 -15 -9q-7 0 -75 39q-9 6 -9 16q0 5 25 49q-162 74 -264 233q-11 19 -11 38q0 20 11 39zM368 184q-45 33 -74 85.5t-29 116.5
+q0 67 34 125q-128 -67 -213 -197q92 -142 239 -209zM345 386q0 -11 8 -19t19 -8t19 8t8 19q0 47 34.5 81.5t81.5 34.5q11 0 19 8t8 19t-8 18.5t-19 7.5q-69 0 -119.5 -50t-50.5 -119zM556 67q124 11 224 79t164 168q-63 98 -158 164l35 63q53 -36 102.5 -86t80.5 -102
+q11 -20 11 -39q0 -18 -11 -38q-42 -70 -111 -132t-144 -98q-111 -53 -234 -53zM604 152l157 281q4 -23 4 -47q0 -82 -46.5 -145t-114.5 -89z" />
+    <glyph glyph-name="uniE722" unicode="&#xe722;" 
+d="M915 750q42 0 71 -29t29 -71v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-800q-40 0 -70 30t-30 70v600q0 41 29.5 70.5t70.5 29.5h800zM915 650h-800v-600h800v600zM465 156h-250v90h250v-90zM465 306h-250v90h250v-90zM465 456h-250v90h250v-90zM811 226l4 -70h-250
+q0 70 6 70q84 22 84 66q0 16 -27 56t-27 88q0 110 90 110t90 -110q0 -48 -28 -88t-28 -56q0 -20 20.5 -35.5t43.5 -22.5z" />
+    <glyph glyph-name="uniE738" unicode="&#xe738;" horiz-adv-x="1011" 
+d="M159 600q0 18 11.5 33t26.5 17h608q20 0 36 -15q14 -14 14 -35v-50h-696v50zM259 700q0 18 11.5 33t26.5 17h410q20 0 36 -15q14 -14 14 -35h-498zM955 550q33 -30 38 -46q6 -18 0 -54l-76 -450q-3 -18 -17.5 -32.5t-30.5 -17.5h-710q-52 0 -60 50q0 1 -39 225t-39 225
+q-10 22 -3 44t10 26q1 2 21 20l40 40v-80h836v80zM707 280v100h-70v-80h-260v80h-68v-100q0 -50 48 -50h300q18 0 33 10.5t15 25.5z" />
+    <glyph glyph-name="uniE73C" unicode="&#xe73c;" horiz-adv-x="830" 
+d="M665 200q62 0 106 -43.5t44 -106.5q0 -62 -44.5 -106t-105.5 -44t-105.5 44t-44.5 106q0 3 1 13t1 13l-260 156q-43 -32 -92 -32q-61 0 -105.5 44t-44.5 106t44.5 106t105.5 44q55 0 92 -30l260 156q0 2 -1 12t-1 12q0 62 44.5 106t105.5 44q62 0 106 -43.5t44 -106.5
+q0 -62 -44.5 -106t-105.5 -44q-52 0 -90 32l-262 -156q2 -10 2 -26q0 -14 -2 -24l262 -156q36 30 90 30z" />
+    <glyph glyph-name="uniE771" unicode="&#xe771;" horiz-adv-x="970" 
+d="M836 640q119 -121 119 -290t-119 -290q-118 -120 -289 -120q-139 0 -252 88l70 76q83 -60 182 -60q126 0 216 90t90 216q0 128 -90 218t-216 90q-124 0 -213 -86q-88 -86 -93 -210h142l-184 -206l-184 206h124q5 166 123 282q119 116 285 116q171 0 289 -120zM511 570h70
+v-204l130 -130l-50 -50l-150 150v234z" />
+    <glyph glyph-name="uniE78E" unicode="&#xe78e;" horiz-adv-x="887" 
+d="M15 350q0 109 47.5 197t123.5 145q28 17 55 13t45 -27.5t14 -52.5t-28 -47q-114 -87 -114 -228q0 -118 84 -202t202 -84t202 84q83 83 83 202q0 141 -114 228q-22 17 -27 46t13 54q16 23 45.5 27.5t54.5 -13.5q76 -58 123.5 -145.5t47.5 -196.5q0 -91 -35 -169.5
+t-90 -133.5q-56 -56 -134.5 -91t-168.5 -35t-168.5 35t-134.5 91t-91 134.5t-35 168.5zM372 421v358q0 28 21.5 49.5t50.5 21.5q28 0 49.5 -21t21.5 -50v-358q0 -29 -21.5 -50t-49.5 -21q-29 0 -50.5 21.5t-21.5 49.5z" />
+    <glyph glyph-name="uniE792" unicode="&#xe792;" horiz-adv-x="970" 
+d="M485 820q49 0 84.5 -35t35.5 -85q0 -76 -72 -110v-140q0 -52 78 -52h100q85 0 129 -54q43 -53 43 -118v-114q72 -34 72 -112q0 -50 -35.5 -85t-84.5 -35t-84.5 35t-35.5 85q0 78 72 112v114q0 78 -76 78h-100q-43 0 -78 12v-204q72 -34 72 -112q0 -50 -35.5 -85
+t-84.5 -35t-84.5 35t-35.5 85q0 78 72 112v204q-30 -12 -76 -12h-100q-35 0 -56.5 -22t-21.5 -56v-114q72 -34 72 -112q0 -50 -35.5 -85t-84.5 -35t-84.5 35t-35.5 85q0 78 72 112v114q0 65 43 118q44 54 131 54h100q76 0 76 52v140q-72 34 -72 110q0 50 35.5 85t84.5 35z
+M205 0q0 29 -20.5 49.5t-49.5 20.5q-28 0 -48 -20.5t-20 -49.5q0 -28 20 -48t48 -20t49 20t21 48zM417 700q0 -28 20 -48t48 -20t49 20t21 48q0 29 -20.5 49.5t-49.5 20.5q-28 0 -48 -20.5t-20 -49.5zM555 0q0 29 -20.5 49.5t-49.5 20.5q-28 0 -48 -20.5t-20 -49.5
+q0 -28 20 -48t48 -20t49 20t21 48zM835 -68q28 0 49 20t21 48q0 29 -20.5 49.5t-49.5 20.5q-28 0 -48 -20.5t-20 -49.5q0 -28 20 -48t48 -20z" />
+    <glyph glyph-name="uniE79B" unicode="&#xe79b;" horiz-adv-x="951" 
+d="M909 720q13 4 21.5 -3t4.5 -19q-3 -8 -73 -313.5t-73 -312.5q-2 -13 -13 -18.5t-25 0.5l-139 75l-139 75l22 26l209 227l145 156q38 41 40 43q4 4 -1 9t-9 1l-550 -402l-302 120q-12 4 -12 12t12 12q7 4 227 82l437 154q217 76 218 76zM327 -8v204l160 -82
+q-122 -108 -142 -128q-18 -14 -18 6z" />
+    <glyph glyph-name="uniE7A3" unicode="&#xe7a3;" horiz-adv-x="991" 
+d="M495 432q58 0 108.5 16.5t61.5 47.5q2 -6 21 -58l35 -100q-5 -38 -70 -65q-66 -27 -156 -27t-156 27q-65 27 -70 65l35 100q19 52 21 58q11 -31 62.5 -47.5t107.5 -16.5zM371 624l52 142q10 34 72 34t74 -34q11 -34 50 -142q-29 -44 -124 -44t-124 44zM935 196
+q41 -16 41 -41.5t-37 -46.5l-352 -188q-37 -22 -91 -22t-91 22l-354 188q-38 20 -36 46t42 42l188 76l-22 -60q0 -47 80 -82q78 -34 192 -34t192 34q81 35 82 82l-22 60z" />
+    <glyph glyph-name="uniF09B" unicode="&#xf09b;" horiz-adv-x="887" 
+d="M15 350q0 123 60 219.5t153 151.5q101 58 216 58q123 0 219.5 -60t151.5 -154q57 -99 57 -215q0 -123 -60 -219.5t-153 -151.5q-101 -58 -215 -58q-123 0 -220 60t-152 154q-57 99 -57 215zM86 350q0 -115 70 -211q69 -95 180 -129v94q-27 -4 -38 -4q-61 0 -85 56
+q-11 29 -32 46q-23 19 -23 22q0 7 15 7q10 0 18.5 -2.5t17 -10t11.5 -10.5t12 -16l9 -12q21 -28 54 -28q21 0 45 8q9 30 35 49q-91 9 -137 47q-44 37 -44 125q0 67 40 111q-8 26 -8 47q0 30 16 60q33 0 56 -10q22 -9 56 -34q40 10 95 10q45 0 85 -9q31 22 56 33q23 10 56 10
+q15 -29 15 -60q0 -23 -8 -47q41 -47 41 -111q0 -89 -45 -126q-44 -37 -137 -46q39 -25 39 -73v-126q111 34 180 129q70 96 70 211q0 75 -29.5 141t-75.5 112t-111 75t-141 29t-141.5 -29t-111.5 -75t-75.5 -112t-29.5 -141z" />
+    <glyph glyph-name="uniF0EB" unicode="&#xf0eb;" horiz-adv-x="601" 
+d="M219 -25q-26 0 -43.5 14.5t-17.5 39.5q0 13 7 26q-25 16 -25 45q0 20 14 36q-14 16 -14 35q0 31 26 46q-4 52 -52 113q-21 27 -42 49q-57 63 -57 150q0 57 25.5 104.5t64.5 77.5q86 68 196 68q109 0 195 -68q39 -30 64.5 -77.5t25.5 -104.5q0 -87 -57 -150
+q-29 -32 -43.5 -51t-31.5 -51q-18 -34 -19 -60q26 -15 26 -46q0 -19 -14 -35q14 -16 14 -36q0 -29 -25 -45q8 -14 8 -26q0 -25 -17.5 -39.5t-43.5 -14.5q-10 -23 -32 -38.5t-50 -15.5t-50 15.5t-32 38.5zM124 428q3 -3 17 -18t17 -19q71 -85 79 -166h127q8 81 79 166
+q3 4 17 19t17 18q38 44 38 101q0 63 -39.5 105t-98.5 61q-37 12 -76 12q-80 0 -145 -47q-70 -51 -70 -131q0 -57 38 -101zM283 600q0 8 5.5 13t12.5 5q65 0 104 -39q21 -21 21 -50q0 -7 -5 -12.5t-13 -5.5t-13 5.5t-5 12.5q0 25 -30 39q-31 14 -59 14q-7 0 -12.5 5t-5.5 13z
+" />
+    <glyph glyph-name="uniF309" unicode="&#xf309;" horiz-adv-x="950" 
+d="M935 636q-37 -56 -94 -98v-24q0 -130 -60 -250q-60 -121 -186 -203q-127 -83 -290 -83q-159 0 -290 84q18 -2 46 -2q131 0 234 80q-64 2 -111.5 39t-64.5 93q9 -4 34 -4q26 0 50 6q-63 13 -106.5 64.5t-43.5 121.5v2q36 -20 84 -24q-84 58 -84 158q0 47 26 94
+q155 -189 390 -196q-6 18 -6 42q0 78 55.5 133t134.5 55q82 0 136 -58q58 12 120 44q-19 -66 -82 -104q55 8 108 30z" />
+    <glyph glyph-name="uniF330" unicode="&#xf330;" horiz-adv-x="990" 
+d="M301 806l194 -158l-284 -184l-196 164zM681 54l116 78v-46l-302 -190l-302 190v46l118 -78q6 -2 12 -2q10 0 14 4l158 132l160 -132q4 -4 14 -4q6 0 12 2zM975 628l-194 -164l-286 184l196 158zM495 286l286 178l174 -140l-282 -184zM319 140l-282 184l174 140l284 -178z
+" />
+    <glyph glyph-name="u1F342" unicode="&#x1f342;" horiz-adv-x="970" 
+d="M251 646q182 107 506 66q169 -23 196 -50q4 -5 -2 -10q-76 -40 -130 -109t-78 -132q-23 -61 -65 -132q-40 -69 -93 -105q-137 -96 -382 -4q-67 -78 -114 -176q-12 -24 -47 -7t-25 39q43 100 129 193q87 95 176 153q179 119 317 174l54 20q-65 0 -148.5 -15.5
+t-144.5 -37.5q-70 -25 -162 -84q-89 -57 -161 -141q-23 242 174 358z" />
+    <glyph glyph-name="u1F464" unicode="&#x1f464;" horiz-adv-x="970" 
+d="M751 128q204 -72 204 -122v-106h-940v106q0 50 204 122q93 34 128 69q34 34 34 95q0 23 -22 49q-21 26 -32 73q-3 21 -23 26q-18 5 -23 60q0 32 14 38l4 4q-7 46 -12 88q-4 53 41 112q45 58 157 58t158 -58t40 -112l-12 -88q18 -8 18 -42q-5 -55 -23 -60q-20 -5 -23 -26
+q-7 -47 -31 -74q-23 -26 -23 -48q0 -60 35 -95q34 -34 127 -69z" />
+    <glyph glyph-name="u1F465" unicode="&#x1f465;" 
+d="M791 -90v150q0 54 -30 81q-32 29 -154 89q40 30 40 84q0 17 -13 33t-19 51q-2 8 -14 16q-13 8 -14 42q0 24 12 30q-10 40 -8 73.5t23 64.5q27 40 95 40t96 -40q29 -40 24 -78l-8 -60q12 -6 12 -30q-1 -34 -14 -42q-12 -8 -14 -16q-6 -35 -19 -51t-13 -33q0 -42 21 -66
+t77 -48q113 -47 130 -80q6 -7 9 -61q4 -71 5 -101v-48h-224zM527 172q182 -78 182 -124v-138h-694v184q0 44 84 78q73 30 104 64q28 31 28 88q0 21 -19 44t-25 68q-1 10 -18 22q-15 11 -20 56q0 26 10 36l4 2l-5 46l-5 36q-5 50 33 103t127 53t127 -53t33 -103l-10 -82
+q14 -8 14 -38q-5 -45 -20 -56q-17 -12 -18 -22q-6 -45 -25 -68t-19 -44q0 -57 28 -88q31 -34 104 -64z" />
+    <glyph glyph-name="u1F4B3" unicode="&#x1f4b3;" 
+d="M915 700q41 0 70.5 -29.5t29.5 -70.5v-500q0 -42 -29 -71t-71 -29h-800q-41 0 -70.5 29.5t-29.5 70.5v500q0 40 30 70t70 30h800zM915 400h-800v-300h800v300zM915 600h-800v-50h800v50zM245 294v-30h-30v30h30zM425 234v30h30v30h60v-30h-30v-30h-30v-30h-60v30h30z
+M485 204v30h30v-30h-30zM305 204v30h60v-30h-60zM395 234h-30v60h60v-30h-30v-30zM275 234v-30h-60v30h30v30h30v30h60v-30h-30v-30h-30z" />
+    <glyph glyph-name="u1F4C1" unicode="&#x1f4c1;" horiz-adv-x="1031" 
+d="M969 500q29 0 38.5 -10.5t7.5 -37.5l-42 -452q-2 -27 -13.5 -38.5t-40.5 -11.5h-806q-51 0 -56 50l-42 452q-2 27 7.5 37.5t38.5 10.5h908zM935 610l10 -40h-846l14 132q4 19 20 33.5t36 14.5h164q52 0 86 -34l30 -30q31 -36 86 -36h340q20 0 38 -12t22 -28z" />
+    <glyph glyph-name="u1F4C8" unicode="&#x1f4c8;" horiz-adv-x="1033" 
+d="M49 284q-42 11 -32 56q11 42 54 32l98 -24l-52 -80zM939 272q14 12 33.5 11t30.5 -15q33 -32 -2 -64l-252 -226q-12 -12 -30 -12q-15 0 -28 10l-286 220l-54 14l50 80l36 -8q13 -5 16 -8l264 -204zM449 492l-350 -550q-12 -22 -38 -22q-25 0 -39 24t1 46l374 588
+q7 15 28 20q18 6 36 -6l246 -156l226 326q10 16 27.5 19t34.5 -9q38 -24 12 -62l-252 -362q-24 -36 -62 -12z" />
+    <glyph glyph-name="u1F4E3" unicode="&#x1f4e3;" horiz-adv-x="890" 
+d="M873 242q9 -120 -39 -140q-28 -12 -61 3q-36 16 -65 40q-37 28 -106.5 42t-141.5 7q-26 -4 -41.5 -18t-6.5 -38q26 -65 46 -108q4 -10 24 -22q19 -12 24 -20q13 -34 -22 -46q-45 -20 -102 -40q-30 -10 -54 42q-23 56 -58 132q-6 13 -34 17q-27 4 -46 31l-20 -7
+q-14 -5 -19 -6.5t-16 -3.5t-18 -0.5t-17 5t-22 10.5q-40 24 -54 60q-16 30 -5 79q11 47 43 61q126 52 213 108q84 54 124 103q34 42 59 92q22 44 25 78q7 76 51 95q48 19 130 -70t142 -228q58 -137 67 -258zM778 200q9 5 10 38q2 38 -11 98q-27 133 -108 251q-40 58 -67 84
+q-29 27 -36 23q-9 -5 -10 -42q-2 -40 10 -105q25 -141 108 -252q44 -57 68 -76q29 -23 36 -19z" />
+    <glyph glyph-name="u1F4F0" unicode="&#x1f4f0;" horiz-adv-x="830" 
+d="M715 800q42 0 71 -29t29 -71v-700q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-40 0 -70 30t-30 70v700q0 41 29.5 70.5t70.5 29.5h600zM715 700h-600v-700h600v700zM465 200h-250v50h250v-50zM615 400h-200v50h200v-50zM415 600h200v-100h-200v100zM365 400h-150v200h150v-200
+zM315 300h-100v50h100v-50zM365 350h250v-50h-250v50zM615 100h-400v50h400v-50zM515 200v50h100v-50h-100z" />
+    <glyph glyph-name="u1F511" unicode="&#x1f511;" horiz-adv-x="810" 
+d="M761 397q-48 -99 -150 -117q-67 -12 -130 -2l-118 -194l-70 -12l-104 -166q-13 -27 -46 -32l-76 -14q-13 -4 -22.5 4.5t-11.5 21.5l-16 98q-8 30 12 56l258 386q-25 51 -38 120q-10 57 7 108t52.5 87t81.5 60t97 33q107 20 195 -45q89 -65 107 -177q20 -117 -28 -215z
+M663 536q30 49 20 100t-50 80q-53 37 -109 17.5t-75 -72.5q-4 -10 4 -36q4 -13 31 -32q12 -8 67 -49q6 -5 42 -28q13 -8 19 -8q32 0 51 28z" />
+    <glyph glyph-name="u1F512" unicode="&#x1f512;" horiz-adv-x="673" 
+d="M69 -7q-23 0 -38.5 15.5t-15.5 37.5v322q0 22 15.5 37.5t38.5 15.5h17v108q0 102 74 176t176 74q103 0 177 -74q73 -73 73 -176v-108h18q23 0 38.5 -15.5t15.5 -37.5v-322q0 -22 -15.5 -37.5t-38.5 -15.5h-535zM336 671q-58 0 -100 -41.5t-42 -100.5v-108h285v108
+q0 58 -42 100t-101 42zM265 279q0 -44 39 -64l-38 -128q-3 -9 2.5 -16t14.5 -7h107q9 0 14.5 7t2.5 16l-38 128q39 20 39 64q0 29 -21.5 50t-50.5 21t-50 -21t-21 -50z" />
+    <glyph glyph-name="u1F513" unicode="&#x1f513;" horiz-adv-x="959" 
+d="M69 -7q-23 0 -38.5 15.5t-15.5 37.5v322q0 22 15.5 37.5t38.5 15.5h375v108q0 103 73 176q74 74 177 74q102 0 176 -74t74 -176v-143q0 -14 -11 -25t-25 -11h-36q-14 0 -25 11t-11 25v143q0 59 -42 100.5t-100 41.5q-59 0 -101 -42t-42 -100v-108h53q23 0 38.5 -15.5
+t15.5 -37.5v-322q0 -22 -15.5 -37.5t-38.5 -15.5h-535zM265 82q0 -8 5.5 -13t12.5 -5h107q8 0 13 5t5 13q0 4 -9 32l-19 64l-11 37q39 19 39 64q0 29 -21.5 50t-50.5 21t-50 -21t-21 -50q0 -44 39 -64l-1 -4q-1 -4 -4 -13l-6 -20q-3 -9 -20 -64q-8 -25 -8 -32z" />
+    <glyph glyph-name="u1F680" unicode="&#x1f680;" horiz-adv-x="890" 
+d="M558 236q7 -56 8 -81q2 -33 -8 -59q-4 -10 -7 -22t-4.5 -16t-6 -10t-11 -11t-19.5 -13l-33 -20q-11 -6 -16 -8.5t-27 -11.5l-39 -17q-46 -21 -85 -37q-30 -11 -44.5 3.5t-3.5 44.5l40 110l-130 132l-106 -40q-30 -13 -43.5 2.5t-2.5 45.5l16 42l25 62q12 29 17 40
+q37 75 47 81q2 1 12 8l17 12q17 13 41 13h52l71 -6q37 52 106 124q64 66 122.5 107.5t140.5 71.5q85 31 165 19q17 0 20 -20q10 -85 -18.5 -170.5t-75.5 -148.5q-99 -133 -184 -199zM608 532q22 -22 54 -22t54 23t22 55t-22 55t-54 23t-54 -23t-22 -55q0 -33 22 -56z" />
+  </font>
+</defs></svg>

BIN
src/Packagist/WebBundle/Resources/public/font/fontello.ttf


BIN
src/Packagist/WebBundle/Resources/public/font/fontello.woff


+ 6 - 0
src/Packagist/WebBundle/Resources/public/js/layout.js

@@ -25,4 +25,10 @@
             humane.log(details ? [message, details] : message, {timeout: 0, clickToClose: true});
         }
     });
+
+    $('#show-api-token').click(function (e) {
+        $(this).parent().hide();
+        $('#api-token').toggleClass('hidden');
+        e.preventDefault();
+    });
 })(jQuery, humane);

+ 46 - 39
src/Packagist/WebBundle/Resources/views/About/about.html.twig

@@ -1,17 +1,19 @@
 {% extends "PackagistWebBundle::layout.html.twig" %}
 
 {% block content %}
-    <div class="box clearfix">
-        <h1>What is Packagist?</h1>
-        <p>Packagist is a Composer package repository. It lets you find packages and lets Composer know where to get the code from. You can use Composer to manage your project or libraries' dependencies - read more about it on the <a href="http://getcomposer.org/">Composer website</a>.</p>
+    <h2 class="title">What is Packagist?</h2>
+    <p>Packagist is a Composer package repository. It lets you find packages and lets Composer know where to get the code from. You can use Composer to manage your project or libraries' dependencies - read more about it on the <a href="http://getcomposer.org/">Composer website</a>.</p>
+    <p>You can find the packagist.org source on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
 
-        <h1>How to submit packages?</h1>
-        <h2>Naming your package</h2>
-        <p>First of all, you must pick a package name. This is a very important step since it can not change and it should be unique enough to avoid conflicts in the future.</p>
-        <p>The package name consists of a vendor name and a project name joined by a <code>/</code>. The vendor name exists to prevent naming conflicts. For example, by including a vendor name both <code>igorw</code> and <code>seldaek</code> can have a library named <code>json</code> by naming their packages <code>igorw/json</code> and <code>seldaek/json</code>.</p>
-        <p>In some cases the vendor name and the package name may be identical. An example of this would be `monolog/monolog`. For projects with a unique name this is recommended. It also allows adding more related projects under the same vendor later on. If you are maintaining a library, this would make it really easy to split it up into smaller decoupled parts.</p>
-        <p>Here is a list of typical package names for reference:
-<pre>
+    <h2 class="font-normal">How to submit packages?</h2>
+    <section class="row">
+        <section class="span6">
+            <h3 class="font-slim">Naming your package</h3>
+            <p>First of all, you must pick a package name. This is a very important step since it can not change and it should be unique enough to avoid conflicts in the future.</p>
+            <p>The package name consists of a vendor name and a project name joined by a <code>/</code>. The vendor name exists to prevent naming conflicts. For example, by including a vendor name both <code>igorw</code> and <code>seldaek</code> can have a library named <code>json</code> by naming their packages <code>igorw/json</code> and <code>seldaek/json</code>.</p>
+            <p>In some cases the vendor name and the package name may be identical. An example of this would be `monolog/monolog`. For projects with a unique name this is recommended. It also allows adding more related projects under the same vendor later on. If you are maintaining a library, this would make it really easy to split it up into smaller decoupled parts.</p>
+            <p>Here is a list of typical package names for reference:</p>
+            <pre>
 // Monolog is a library, so the vendor name and package name are the same.
 monolog/monolog
 
@@ -22,13 +24,15 @@ monolog/monolog-drupal-module
 // Acme is a company or person here, they can name their package with a common name (Email).
 // As long as it's in their own vendor namespace it does not conflict with anyone else.
 acme/email
-</pre></p>
-        <p>Note that package names are case-insensitive, but it's encouraged to use a dash (-) as separator instead of CamelCased names.</p>
+</pre>
+            <p>Note that package names are case-insensitive, but it's encouraged to use a dash (-) as separator instead of CamelCased names.</p>
+        </section>
 
-        <h2>Creating a composer.json file</h2>
-        <p>The composer.json file should reside at the top of your package's git/svn/.. repository, and is the way you describe your package to both packagist and composer.</p>
-        <p>A typical composer.json file looks like this:
-<pre>
+        <section class="span6">
+            <h3 class="font-slim">Creating a composer.json file</h3>
+            <p>The composer.json file should reside at the top of your package's git/svn/.. repository, and is the way you describe your package to both packagist and composer.</p>
+            <p>A typical composer.json file looks like this:</p>
+            <pre>
 {
     "name": "monolog/monolog",
     "type": "library",
@@ -54,13 +58,15 @@ acme/email
     }
 }
 </pre>
-Most of this information is obvious, keywords are tags, require are list of dependencies that your package has. This can of course be packages, not only a php version. You can use ext-foo to require php extensions (e.g. ext-curl). Note that most extensions don't expose version information, so unless you know for sure it does, it's safer to use <code>"ext-curl": "*"</code> to allow any version of it. Finally the type field is in this case indicating that this is a library. If you do plugins for frameworks etc, and if they integrate composer, they may have a custom package type for their plugins that you can use to install the package with their own installer. In the absence of custom type, you can omit it or use "library".</p>
-        <p>Once you have this file committed in your repository root, you can <a href="{{ path('submit') }}">submit the package</a> to Packagist by entering the public repository URL.</p>
+            <p>Most of this information is obvious, keywords are tags, require are list of dependencies that your package has. This can of course be packages, not only a php version. You can use ext-foo to require php extensions (e.g. ext-curl). Note that most extensions don't expose version information, so unless you know for sure it does, it's safer to use <code>"ext-curl": "*"</code> to allow any version of it. Finally the type field is in this case indicating that this is a library. If you do plugins for frameworks etc, and if they integrate composer, they may have a custom package type for their plugins that you can use to install the package with their own installer. In the absence of custom type, you can omit it or use "library".</p>
+            <p>Once you have this file committed in your repository root, you can <a href="{{ path('submit') }}">submit the package</a> to Packagist by entering the public repository URL.</p>
+        </section>
 
-        <h1>Managing package versions</h1>
-        <p>New versions of your package are automatically fetched from tags you create in your VCS repository.</p>
-        <p>The easiest way to manage versioning is to just omit the version field from the composer.json file. The version numbers will then be parsed from the tag and branch names.</p>
-        <p>Tag/version names should match 'X.Y.Z', or 'vX.Y.Z', with an optional suffix for RC, beta, alpha or patch versions. Here are a few examples of valid tag names:
+        <section class="span6">
+            <h3 class="font-slim">Managing package versions</h3>
+            <p>New versions of your package are automatically fetched from tags you create in your VCS repository.</p>
+            <p>The easiest way to manage versioning is to just omit the version field from the composer.json file. The version numbers will then be parsed from the tag and branch names.</p>
+            <p>Tag/version names should match 'X.Y.Z', or 'vX.Y.Z', with an optional suffix for RC, beta, alpha or patch versions. Here are a few examples of valid tag names:</p>
 <pre>
 1.0.0
 v1.0.0
@@ -69,24 +75,25 @@ v4.4.4beta2
 v2.0.0-alpha
 v2.0.4-p1
 </pre>
-        Branches will automatically appear as "dev" versions that are easily installable by anyone that wants to try your library's latest and greatest, but that does not mean you should not tag releases. The use of <a href="http://semver.org/">Semantic Versioning</a> is strongly encouraged.</p>
-
-        <h1>Update Schedule</h1>
-
-        <p>New packages will be crawled <strong>immediately</strong> after submission if you have JS enabled.</p>
-
-        <p>Existing packages without auto-updating (GitHub/BitBucket hook) will be crawled <strong>once a day</strong> for updates. When a hook is enabled packages are crawled whenever you push, or at least once a week in case the crawl failed. You can also trigger a manual update on your package page if you are logged-in as a maintainer.</p>
-
-        <p>It is highly recommended to set up the <strong>GitHub/BitBucket service hook</strong> for all your packages. This reduces the load on our side, and ensures your package is updated almost instantly. Check the how-to in your <a href="{{ path('fos_user_profile_show') }}">profile</a> page.</p>
-
-        <p>If you use <strong>BitBucket</strong>, <strong>GitLab</strong> or other non-supported method you can add a "POST" hook or Push Event and then enter 'https://packagist.org/api/update-package?username=XXX&amp;apiToken=YYY' as the URL. To manually send update notices from other services you can build up a POST request to the previous URL and send the following JSON request body: <code>{"repository": { "url": "...the VCS url Packagist should update..."}}</code>. Do not forget to send a Content-Type header set to application/json too.</p>
+            <p>Branches will automatically appear as "dev" versions that are easily installable by anyone that wants to try your library's latest and greatest, but that does not mean you should not tag releases. The use of <a href="http://semver.org/">Semantic Versioning</a> is strongly encouraged.</p>
+        </section>
 
-        <p>The search index is updated <strong>every five minutes</strong>. It will index (or reindex) any package that has been crawled since the last time the search indexer ran.</p>
+        <section class="span6">
+            <h3 class="font-slim">Update Schedule</h3>
+            <p>New packages will be crawled <strong>immediately</strong> after submission if you have JS enabled.</p>
+            <p>Existing packages without auto-updating (GitHub/BitBucket hook) will be crawled <strong>once a day</strong> for updates. When a hook is enabled packages are crawled whenever you push, or at least once a week in case the crawl failed. You can also trigger a manual update on your package page if you are logged-in as a maintainer.</p>
+            <p>It is highly recommended to set up the <strong>GitHub/BitBucket service hook</strong> for all your packages. This reduces the load on our side, and ensures your package is updated almost instantly. Check the how-to in your <a href="{{ path('fos_user_profile_show') }}">profile</a> page.</p>
+            <p>The search index is updated <strong>every five minutes</strong>. It will index (or reindex) any package that has been crawled since the last time the search indexer ran.</p>
+        </section>
 
-        <h1>Community</h1>
-        <p>If you have questions about composer or want to help out, come and join us in the <em><a href="irc://irc.freenode.net/#composer">#composer</a></em> channel on irc.freenode.net. You can find more community resources in the <a href="https://getcomposer.org/doc/06-community.md">Composer documentation</a>.</p>
+        <section class="span12">
+            <h3 class="font-slim">Community</h3>
+            <p>If you have questions about composer or want to help out, come and join us in the <em><a href="irc://irc.freenode.net/#composer">#composer</a></em> channel on irc.freenode.net. You can find more community resources in the <a href="https://getcomposer.org/doc/06-community.md">Composer documentation</a>.</p>
+        </section>
 
-        <h1>Contributing</h1>
-        <p>To report issues or contribute code you can find the source repository on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
-    </div>
+        <section class="span12">
+            <h3 class="font-slim">Contributing</h3>
+            <p>To report issues or contribute code you can find the source repository on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
+        </section>
+    </section>
 {% endblock %}

+ 10 - 13
src/Packagist/WebBundle/Resources/views/Feed/feeds.html.twig

@@ -1,20 +1,17 @@
 {% extends "PackagistWebBundle::layout.html.twig" %}
 
 {% block content %}
-    {% set packageCount = 0 %}
-    <div class="box clearfix">
-        <h1>Atom/RSS Feeds</h1>
+    <h2 class="title">Atom/RSS Feeds</h2>
 
-        <h2>Global Feeds</h2>
-        <p>Newly Submitted Packages: <a href="{{ url('feed_packages', {_format: 'rss'}) }}">RSS</a>, <a href="{{ url('feed_packages', {_format: 'atom'}) }}">Atom</a></p>
-        <p>New Releases: <a href="{{ url('feed_releases', {_format: 'rss'}) }}">RSS</a>, <a href="{{ url('feed_releases', {_format: 'atom'}) }}">Atom</a></p>
+    <h3 class="font-normal">Global Feeds</h3>
+    <p>Newly Submitted Packages: <a href="{{ url('feed_packages', {_format: 'rss'}) }}">RSS</a>, <a href="{{ url('feed_packages', {_format: 'atom'}) }}">Atom</a></p>
+    <p>New Releases: <a href="{{ url('feed_releases', {_format: 'rss'}) }}">RSS</a>, <a href="{{ url('feed_releases', {_format: 'atom'}) }}">Atom</a></p>
 
-        <h2>Vendor Feed</h2>
-        <p>New Releases for a specific vendor namespace: <code>{{ url('feed_vendor', {vendor: 'XXX', _format: 'rss'})|replace({XXX: '%vendor%'}) }}</code></p>
-        <p>Replace <code>%vendor%</code> by the vendor name, and change rss to atom if you would like an atom feed.</p>
+    <h3 class="font-normal">Vendor Feed</h3>
+    <p>New Releases for a specific vendor namespace: <code>{{ url('feed_vendor', {vendor: 'XXX', _format: 'rss'})|replace({XXX: '%vendor%'}) }}</code></p>
+    <p>Replace <code>%vendor%</code> by the vendor name, and change rss to atom if you would like an atom feed.</p>
 
-        <h2>Package Feed</h2>
-        <p>New Releases for a specific package: <code>{{ url('feed_package', {package: 'X/X', _format: 'rss'})|replace({'X/X': '%vendor/package%'}) }}</code></p>
-        <p>Replace <code>%vendor/package%</code> by the package name, and change rss to atom if you would like an atom feed.</p>
-    </div>
+    <h3 class="font-normal">Package Feed</h3>
+    <p>New Releases for a specific package: <code>{{ url('feed_package', {package: 'X/X', _format: 'rss'})|replace({'X/X': '%vendor/package%'}) }}</code></p>
+    <p>Replace <code>%vendor/package%</code> by the package name, and change rss to atom if you would like an atom feed.</p>
 {% endblock %}

+ 1 - 1
src/Packagist/WebBundle/Resources/views/User/favorites.html.twig

@@ -1,5 +1,5 @@
 {% extends "PackagistWebBundle:Web:list.html.twig" %}
 
 {% block content_title %}
-    <h1>{{ user.username }}'s favorite packages</h1>
+    {{ user.username }}'s favorite packages
 {% endblock %}

+ 1 - 1
src/Packagist/WebBundle/Resources/views/User/packages.html.twig

@@ -1,5 +1,5 @@
 {% extends "PackagistWebBundle:Web:list.html.twig" %}
 
 {% block content_title %}
-    <h1>Packages maintained by {{ user.username }}</h1>
+    Packages maintained by {{ user.username }}
 {% endblock %}

+ 16 - 14
src/Packagist/WebBundle/Resources/views/User/profile.html.twig

@@ -2,19 +2,21 @@
 
 {% import "PackagistWebBundle::macros.html.twig" as macros %}
 
-
 {% block content %}
-    <div class="box clearfix">
-        <h1>{{ user.username }}</h1>
-        {% if is_granted('ROLE_ADMIN') %}
-            <p>Email: <a href="mailto:{{ user.email }}">{{ user.email }}</a></p>
-        {% endif %}
-        <p>Member since {{ user.createdAt|date('M d, Y') }}
-        <h2>Packages</h2>
-        {% if packages|length %}
-            {{ macros.listPackages(packages, true, false, meta) }}
-        {% else %}
-            <p>No packages found.</p>
-        {% endif %}
-    </div>
+    <h2 class="title">
+        {{ user.username }}
+        <small>
+            member since: {{ user.createdAt|date('M d, Y') }}
+            {%- if is_granted('ROLE_ADMIN') %}
+                <strong>email: <a href="mailto:{{ user.email }}">{{ user.email }}</a></strong>
+            {%- endif %}
+        </small>
+    </h2>
+
+    <h3>Packages</h3>
+    {% if packages|length %}
+        {{ macros.listPackages(packages, true, false, meta) }}
+    {% else %}
+        <p>No packages found.</p>
+    {% endif %}
 {% endblock %}

+ 41 - 46
src/Packagist/WebBundle/Resources/views/Web/index.html.twig

@@ -1,21 +1,13 @@
 {% extends "PackagistWebBundle::layout.html.twig" %}
 
-{% block search %}
-    <div class="box">
-        <p>Packagist is the main <a href="http://getcomposer.org/">Composer</a> repository. It aggregates all sorts of PHP packages that are installable with Composer.<br /><a href="{{ path('browse') }}">Browse packages</a> or <a href="{{ path('submit') }}">submit your own</a>.</p>
-    </div>
-
-    {{ parent() }}
-{% endblock %}
-
 {% block content %}
-    <div class="box clearfix">
-        <section class="getting-started">
-            <h1>Getting Started</h1>
-            <div>
-                <h2>Define Your Dependencies</h2>
-                <p>Put a file named <em>composer.json</em> at the root of your project, containing your project dependencies:</p>
-                <pre>
+<section class="row">
+    <section class="span6 getting-started">
+        <h2 class="font-normal">Getting Started</h2>
+        <div>
+            <h3 class="font-normal">Define Your Dependencies</h3>
+            <p>Put a file named <em>composer.json</em> at the root of your project, containing your project dependencies:</p>
+            <pre>
 {
     "require": {
         "vendor/package": "1.3.2",
@@ -24,33 +16,34 @@
     }
 }
 </pre>
-                <h2>Install Composer In Your Project</h2>
-                <p>Run this in your command line:</p>
-                <pre>
-curl -s http://getcomposer.org/installer | php
+
+            <h3 class="font-normal">Install Composer In Your Project</h3>
+            <p>Run this in your command line:</p>
+            <pre>
+curl -sS http://getcomposer.org/installer | php
 </pre>
-                <p>Or <a href="http://getcomposer.org/composer.phar">download composer.phar</a> into your project root.</p>
-                <h2>Install Dependencies</h2>
-                <p>Execute this in your project root.</p>
-                <pre>
+            <p>Or <a href="http://getcomposer.org/composer.phar">download composer.phar</a> into your project root.</p>
+
+            <h3 class="font-normal">Install Dependencies</h3>
+            <p>Execute this in your project root.</p>
+            <pre>
 php composer.phar install
 </pre>
-                <h2>Autoload Dependencies</h2>
-                <p>If your packages specify <a href="https://getcomposer.org/doc/01-basic-usage.md#autoloading">autoloading information</a>, you can autoload all the dependencies by adding this to your code:</p>
-                <pre>
+            <h3 class="font-normal">Autoload Dependencies</h3>
+            <p>If your packages specify <a href="https://getcomposer.org/doc/01-basic-usage.md#autoloading">autoloading information</a>, you can autoload all the dependencies by adding this to your code:</p>
+            <pre>
 require 'vendor/autoload.php';
 </pre>
+            <p><a href="{{ path('browse') }}">Browse</a> the packages we have to find more great libraries you can use in your project.</p>
+        </div>
+    </section>
 
-                <p><a href="{{ path('browse') }}">Browse</a> the packages we have to find more great libraries you can use in your project.</p>
-            </div>
-        </section>
-
-        <section class="publishing-packages">
-            <h1>Publishing Packages</h1>
-            <div>
-                <h2>Define Your Package</h2>
-                <p>Put a file named <em>composer.json</em> at the root of your package, containing this information:</p>
-                <pre>
+    <section class="span6 publishing-packages">
+        <h2 class="font-normal">Publishing Packages</h2>
+        <div>
+            <h3 class="font-normal">Define Your Package</h3>
+            <p>Put a file named <em>composer.json</em> at the root of your package, containing this information:</p>
+            <pre>
 {
     "name": "your-vendor-name/package-name",
     "description": "A short description of what your package does",
@@ -60,14 +53,16 @@ require 'vendor/autoload.php';
     }
 }
 </pre>
-                <p>This is the strictly minimal information you have to give.</p>
-                <p>For more details about package naming and the fields you can use to document your package better, see the <a href="{{ path('about') }}">about</a> page.</p>
-                <h2>Commit The File</h2>
-                <p>You surely don't need help with that.</p>
-                <h2>Publish It</h2>
-                <p><a href="{{ path('hwi_oauth_connect') }}">Login</a> or <a href="{{ path('fos_user_registration_register') }}">register</a> on this site, then hit the big fat green button above that says <a href="{{ path('submit') }}">submit</a>.</p>
-                <p>Once you entered your public repository URL in there, your package will be automatically crawled periodically. You just have to make sure you keep the composer.json file up to date.</p>
-            </div>
-        </section>
-    </div>
+            <p>This is the strictly minimal information you have to give.</p>
+            <p>For more details about package naming and the fields you can use to document your package better, see the <a href="{{ path('about') }}">about</a> page.</p>
+
+            <h3 class="font-normal">Commit The File</h3>
+            <p>You surely don't need help with that.</p>
+
+            <h3 class="font-normal">Publish It</h3>
+            <p><a href="{{ path('hwi_oauth_connect') }}">Login</a> or <a href="{{ path('fos_user_registration_register') }}">register</a> on this site, then hit the big fat green button above that says <a href="{{ path('submit') }}">submit</a>.</p>
+            <p>Once you entered your public repository URL in there, your package will be automatically crawled periodically. You just have to make sure you keep the composer.json file up to date.</p>
+        </div>
+    </section>
+</section>
 {% endblock %}

+ 11 - 10
src/Packagist/WebBundle/Resources/views/Web/list.html.twig

@@ -2,15 +2,16 @@
 
 {% import "PackagistWebBundle::macros.html.twig" as macros %}
 
+{% set showSearchDesc = 'hide' %}
+
 {% block content %}
-    <div class="box clearfix package-list">
-        {% block content_title %}<h1>Packages</h1>{% endblock %}
-        {% block list %}
-            {% if packages|length %}
-                {{ macros.listPackages(packages, paginate is not defined or paginate, false, meta|default(null)) }}
-            {% else %}
-                <p>No packages found.</p>
-            {% endif %}
-        {% endblock %}
-    </div>
+    <h3 class="title">{% block content_title %}Packages{% endblock %}</h3>
+
+    {% block list %}
+        {% if packages|length %}
+            {{ macros.listPackages(packages, paginate is not defined or paginate, false, meta|default(null)) }}
+        {% else %}
+            <p>No packages found.</p>
+        {% endif %}
+    {% endblock %}
 {% endblock %}

+ 7 - 12
src/Packagist/WebBundle/Resources/views/Web/search.html.twig

@@ -1,16 +1,11 @@
 {% extends "PackagistWebBundle:Web:list.html.twig" %}
 
-{% block content %}
-{% endblock %}
-
-{% block search %}
-    <div class="box clearfix">
-        {% include "PackagistWebBundle:Web:searchForm.html.twig" %}
+{% set showSearchDesc = 'hide' %}
 
-        <div class="search-list {% if packages is not defined %}hidden{% endif %}">
-            {% if packages is defined %}
-                {{ block('list') }}
-            {% endif %}
-        </div>
+{% block content %}
+    <div class="search-list {% if packages is not defined %}hidden{% endif %}">
+        {% if packages is defined %}
+            {{ block('list') }}
+        {% endif %}
     </div>
-{% endblock %}
+{% endblock %}

+ 3 - 6
src/Packagist/WebBundle/Resources/views/Web/searchForm.html.twig

@@ -1,9 +1,6 @@
 <form id="search-form" action="{{ path('search.ajax') }}" method="GET" {{ form_enctype(searchForm) }} autocomplete="off">
-    <p class="submit-wrapper"><input class="submit" type="submit" value="Search" /></p>
-    <p>
-        {{ form_errors(searchForm.query) }}
-        {{ form_widget(searchForm.query, {'attr': {'autocomplete': 'off', 'autofocus': 'autofocus', 'placeholder': 'Search packages...', 'tabindex': 1}}) }}
-        {{ form_rest(searchForm) }}
-    </p>
+    {{ form_errors(searchForm.query) }}
+    {{ form_widget(searchForm.query, {'attr': {'autocomplete': 'off', 'autofocus': 'autofocus', 'placeholder': 'Search packages...', 'tabindex': 1}}) }}
+    {{ form_rest(searchForm) }}
 </form>
 

+ 16 - 0
src/Packagist/WebBundle/Resources/views/Web/searchSection.html.twig

@@ -0,0 +1,16 @@
+<section class="wrapper wrapper-blue">
+    <div class="container">
+        <div class="row">
+            <div class="span12">
+                {% include "PackagistWebBundle:Web:searchForm.html.twig" %}
+            </div>
+
+            {%- if showSearchDesc == 'show' %}
+            <div class="span12">
+                <p>Packagist is the main <a href="http://getcomposer.org/">Composer</a> repository. It aggregates all sorts of PHP packages that are installable with Composer.</p>
+                <p><a href="{{ path('browse') }}">Browse packages</a> or <a href="{{ path('submit') }}">submit your own</a>.</p>
+            </div>
+            {%- endif %}
+        </div>
+    </div>
+</section>

+ 31 - 17
src/Packagist/WebBundle/Resources/views/Web/stats.html.twig

@@ -1,21 +1,40 @@
 {% extends "PackagistWebBundle::layout.html.twig" %}
 
+{% set showSearchDesc = 'hide' %}
+
 {% block content %}
     {% set packageCount = 0 %}
-    <div class="box clearfix">
-        <h1>Statistics</h1>
-        <h2>Packages/versions over time</h2>
+
+    <h2 class="title">Statistics</h2>
+
+    <section class="row-fluid">
+        <div class="span3 pull-right">
+            <h2 class="font-slim">Totals</h2>
+            <p>{{ packages|number_format(0, '.', " ") }} packages registered</p>
+            <p>{{ versions|number_format(0, '.', " ") }} versions available</p>
+            <p>{{ downloads == 'N/A' ? downloads : downloads|number_format(0, '.', " ") }} packages installed<br><small>(since {{ downloadsStartDate }})</small></p>
+        </div>
+
+        <h2 class="font-normal">Packages/versions over time</h2>
+
+        <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ versions }}&amp;chxl=1:|{{ chart.months|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ versions }},0,{{ versions }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ chart.versions|join(',') }}|{{ chart.packages|join(',') }}&amp;chdl=Versions|Packages&amp;chls=2|2" /></p>
         <p>
             <canvas width="900" height="250" data-labels="{{ chart.months|join(',') }}" data-values="{{ chart.versions|join(',') }}|{{ chart.packages|join(',') }}">
                 Sorry, the graph can't be displayed because your browser doesn't support &lt;canvas&gt; html element.
             </canvas>
         </p>
-        <ul class="legend">
-            <li class="legend-first"><span>&#9632;</span> Versions</li>
-            <li class="legend-second"><span>&#9632;</span> Packages</li>
-        </ul>
         <p>The last data point is for the current month and shows partial data.</p>
 
+        {% if downloadsChart %}
+            <h2>Packages installed per day</h2>
+            <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ maxDailyDownloads }}&amp;chxl=1:|{{ downloadsChart.labels|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ maxDailyDownloads }},0,{{ maxDailyDownloads }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ downloadsChart.values|join(',') }}&amp;chdl=Installs&amp;chls=2|2" /></p>
+        {% endif %}
+        {% if downloadsChartMonthly %}
+            <h2>Packages installed per month</h2>
+            <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ maxMonthlyDownloads }}&amp;chxl=1:|{{ downloadsChartMonthly.labels|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ maxMonthlyDownloads }},0,{{ maxMonthlyDownloads }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ downloadsChartMonthly.values|join(',') }}&amp;chdl=Installs&amp;chls=2|2" /></p>
+            <p>The last data point is for the current month and shows partial data.</p>
+        {% endif %}
+
         {% if downloadsChart %}
             <h2>Packages installed in the last 30 days</h2>
             <p>
@@ -39,15 +58,10 @@
             </ul>
             <p>The last data point is for the current month and shows partial data.</p>
         {% endif %}
-
-        <h2>Totals</h2>
-        <p>{{ packages|number_format(0, '.', " ") }} packages registered</p>
-        <p>{{ versions|number_format(0, '.', " ") }} versions available</p>
-        <p>{{ downloads == 'N/A' ? downloads : downloads|number_format(0, '.', " ") }} packages installed (since {{ downloadsStartDate }})</p>
-    </div>
+    </section>
 {% endblock %}
 
-{% block scripts %}
-    <script src="{{ asset('js/libs/Chart.js/Chart.min.js') }}"></script>
-    <script src="{{ asset('bundles/packagistweb/js/charts.js') }}"></script>
-{% endblock %}
+{#{% block scripts %}#}
+    {#<script src="{{ asset('js/libs/Chart.js/Chart.min.js') }}"></script>#}
+    {#<script src="{{ asset('bundles/packagistweb/js/charts.js') }}"></script>#}
+{#{% endblock %}#}

+ 22 - 14
src/Packagist/WebBundle/Resources/views/Web/submitPackage.html.twig

@@ -4,22 +4,30 @@
     <script src="{{ asset('bundles/packagistweb/js/submitPackage.js')}}?v=2"></script>
 {% endblock %}
 
+{% set showSearchDesc = 'hide' %}
+
 {% block content %}
-    <div class="box clearfix">
-        <h1>Submit package</h1>
-        <p>Please make sure you have read the package <a href="{{ path('about') }}">naming conventions</a> before submitting your package. The authoritative name of your package will be taken from the composer.json file inside the master branch or trunk of your repository, and it can not be changed after that.</p>
-        <p><strong>Do not submit forks of existing packages.</strong> If you need to test changes to a package that you forked to patch, use <a href="http://getcomposer.org/doc/05-repositories.md#vcs">VCS Repositories</a> instead. If however it is a real long-term fork you intend on maintaining feel free to submit it.</p>
-        <p>If you need help or if you have any questions please get in touch with the Composer <a href="http://getcomposer.org/doc/06-community.md">community</a>.</p>
-        <form id="submit-package-form" action="{{ path('submit') }}" data-check-url="{{ path('submit.fetch_info') }}" method="POST" {{ form_enctype(form) }}>
-            <div>
-                <p>
-                    {{ form_label(form.repository, "Repository URL (Git/Svn/Hg)") }}
+    <h2 class="title">Submit package</h2>
+
+    <section class="row-fluid">
+        <div class="span7 pull-right">
+            <p>Please make sure you have read the package <a href="{{ path('about') }}">naming conventions</a> before submitting your package. The authoritative name of your package will be taken from the composer.json file inside the master branch or trunk of your repository, and it can not be changed after that.</p>
+            <p><strong>Do not submit forks of existing packages.</strong> If you need to test changes to a package that you forked to patch, use <a href="http://getcomposer.org/doc/05-repositories.md#vcs">VCS Repositories</a> instead. If however it is a real long-term fork you intend on maintaining feel free to submit it.</p>
+            <p>If you need help or if you have any questions please get in touch with the Composer <a href="http://getcomposer.org/doc/06-community.md">community</a>.</p>
+        </div>
+
+        <form class="span5" id="submit-package-form" action="{{ path('submit') }}" data-check-url="{{ path('submit.fetch_info') }}" method="POST" {{ form_enctype(form) }}>
+            <fieldset class="row">
+                <div class="span11">
+                    {{ form_label(form.repository) }}
                     {{ form_errors(form.repository) }}
-                    {{ form_widget(form.repository) }}
-                </p>
+                    {{ form_widget(form.repository, {'attr': {'class': 'span12'}}) }}
+                </div>
+
                 {{ form_rest(form) }}
-                <input id="submit" type="submit" value="Submit" />
-            </div>
+
+                <input class="btn btn-success span11" id="submit" type="submit" value="Submit" />
+            </fieldset>
         </form>
-    </div>
+    </section>
 {% endblock %}

+ 139 - 84
src/Packagist/WebBundle/Resources/views/layout.html.twig

@@ -1,11 +1,10 @@
 <!DOCTYPE html>
-<!--[if lte IE 8 ]> <html lang="en" class="no-js oldie"> <![endif]-->
-<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
+<html>
     <head>
         <meta charset="UTF-8" />
 
         <title>{% block title %}Packagist{% endblock %}</title>
-        <meta name="description" content="" />
+        <meta name="description" content="The PHP package archivist." />
         <meta name="author" content="Jordi Boggiano" />
 
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -13,6 +12,7 @@
         <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
         <link rel="apple-touch-icon" href="{{ asset('apple-touch-icon.png') }}" />
 
+        <link rel="stylesheet" href="{{ asset('bundles/packagistweb/css/bootstrap.min.css') }}" />
         <link rel="stylesheet" href="{{ asset('bundles/packagistweb/css/main.css?v=15') }}" />
         <link rel="stylesheet" href="{{ asset('css/humane/jackedup.css?v=3') }}" />
         <link rel="stylesheet" href="{{ asset('css/fontawesome/font-awesome.css') }}" />
@@ -27,109 +27,164 @@
 
         <link rel="search" type="application/opensearchdescription+xml" href="{{ asset('search.osd') }}" title="Packagist" />
 
-        {# {% stylesheets
-            '@PackagistWebBundle/Resources/public/css/main.css'
-            'css/humane/jackedup.css'
-            filter="yui_css" output='css/main.css' %}
-            <link rel="stylesheet" href="{{ asset_url }}" />
-        {% endstylesheets %} #}
-
-        <script src="{{ asset('js/libs/modernizr-1.7.min.js') }}"></script>
 
         {% block head_additions %}{% endblock %}
     </head>
+
     <body>
-        <div class="container">
-            <div class="user">
-                {% if app.user %}
-                    <a href="{{ path('fos_user_profile_show') }}">{{ app.user.username }}</a> | <a href="{{ path('logout') }}">Logout</a>
-                {% else %}
-                    <a href="{{ path('fos_user_registration_register') }}">Create a new account</a>
-                    |
-                    <a href="{{ path('hwi_oauth_connect') }}">Login</a>
-                {% endif %}
-            </div>
-
-            <header>
-                {% if page is not defined or page != 'submit' %}
-                    <a class="submit" href="{{ path('submit') }}">Submit Package</a>
-                {% endif %}
-                <h1><a href="{{ path('home') }}">Packagist</a></h1>
-                <h2>The PHP package archivist.</h2>
-            </header>
-
-            <div class="main" role="main">
-                {% for type, flashMessages in app.session.flashbag.all() %}
-                    {% for flashMessage in flashMessages %}
-                        {% if 'fos_user_' in type %}
+        <header class="navbar-wrapper">
+            <nav class="container">
+                <div class="navbar navbar-inner">
+                    <div class="pull-right">
+                        <ul class="nav">
+                        {%- if app.user %}
+                            <li class="nav-user">
+                                <section>
+                                    <img width="57" height="57" alt="" src="https://secure.gravatar.com/avatar/b494363ed38b483b240180920c0d38c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png">
+                                    <a href="{{ path('fos_user_profile_show') }}"><span>{{ app.user.username }}</span></a>
+
+                                    {{ knp_menu_render('user_menu', {'allow_safe_labels': true}) }}
+                                </section>
+                            </li>
+                        {%- else %}
+                            <li>
+                                <a href="{{ path('fos_user_registration_register') }}">Create a new account</a>
+                            </li>
+                            <li class="nav-user">
+                                <section class="nav-user-signin">
+                                    <a href="{{ path('hwi_oauth_connect') }}">Sign in</a>
+
+                                    <form action="" method="POST" class="nav-user-signin-menu">
+                                        <div class="input-prepend">
+                                            <input type="text" id="username" name="_username" placeholder="{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}">
+                                            <span class="add-on"><span class="icon-user"></span></span>
+                                        </div>
+                                        <div class="input-prepend">
+                                            <input type="password" id="password" name="_password" placeholder="{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}">
+                                            <span class="add-on"><span class="icon-lock"></span></span>
+                                        </div>
+
+                                        <label for="remember_me" class="checkbox pull-left">
+                                            <input type="checkbox" id="remember_me" name="_remember_me" value="on" checked="checked" />
+                                            {{- 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}
+                                        </label>
+
+                                        {%- if packagist_host and packagist_host in app.request.headers.get('Referer') %}
+                                            <input type="hidden" name="_target_path" value="{{ app.request.headers.get('Referer') }}" />
+                                        {%- endif %}
+
+                                        <div style="width: 95%;float: left">
+                                            <a href="{{ hwi_oauth_login_url('github') }}" class="pull-right btn btn-github"><span class="icon-github"></span>Use Github</a>
+                                            <button type="submit" class="btn btn-success" id="_submit" name="_submit">{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}</button>
+                                        </div>
+
+                                        <div style="background: #ddd; float: left; font-size: 14px; margin: 11px -20px -12px; padding: 7px 21px; width: 100%; text-align: center;">
+                                            <a href="{{ path('fos_user_registration_register') }}">No account yet? Create one now!</a>
+                                        </div>
+                                    </form>
+                                </section>
+                            </li>
+                        {%- endif %}
+                        {%- if page is not defined or page != 'submit' %}
+                            <li>
+                                <a style="background: #83c129;" href="{{ path('submit') }}">Submit Package</a>
+                            </li>
+                        {%- endif %}
+                        </ul>
+                    </div>
+
+                    <h1><a class="brand" href="{{ path('home') }}">Packagist</a> <em>The PHP package archivist.</em></h1>
+                </div>
+            </nav>
+
+            {%- if app.session.flashbag.all()|length > 0 %}
+            <section class="wrapper wrapper-white">
+                <div class="container">
+                {%- for type, flashMessages in app.session.flashbag.all() %}
+                    {%- for flashMessage in flashMessages %}
+                        {%- if 'fos_user_' in type %}
                             <div class="flash-message {{ type|replace({'fos_user_': ''}) }}">
                                 <p>{{ flashMessage|trans({}, 'FOSUserBundle') }}</p>
                             </div>
-                        {% else %}
+                        {%- else %}
                             <div class="flash-message {{ type }}">
                                 <p>{{ flashMessage }}</p>
                             </div>
-                        {% endif %}
-                    {% endfor %}
-                {% endfor %}
-
-                {% block search %}
-                    {% if searchForm is defined %}
-                        <div class="box">
-                            {% include "PackagistWebBundle:Web:searchForm.html.twig" %}
-                            <div class="search-list hidden">
-                            </div>
-                        </div>
-                    {% endif %}
-                {% endblock %}
-
-                {% block content %}
-                {% endblock %}
-            </div>
-        </div>
-
-        <footer>
-            <ul>
-                <li><a href="{{ path('about') }}">{{ 'menu.about_packagist'|trans }}</a></li>
-                <li><a href="{{ path('feeds') }}">{{ 'menu.rss_feeds'|trans }}</a></li>
-                <li><a href="{{ path('home') }}">{{ 'menu.home'|trans }}</a></li>
-            </ul>
-            <ul>
-                {% if app.user %}
+                        {%- endif %}
+                    {%- endfor %}
+                {%- endfor %}
+                </div>
+            </section>
+            {%- endif %}
+        </header>
+
+        {%- if searchForm is defined %}
+            {{ include("PackagistWebBundle:Web:searchSection.html.twig", {showSearchDesc: showSearchDesc|default('show')}) }}
+        {%- endif %}
+
+        {% block content_header %}{% endblock %}
+
+        <section class="wrapper">
+            <section class="container content" role="main">
+                {% block content %}{% endblock %}
+
+                <div class="row hidden">
+                    <div class="search-list span12"></div>
+                </div>
+            </section>
+        </section>
+
+        <footer class="wrapper-footer">
+            <nav class="container">
+                <ul class="social span2 pull-right">
+                    <li><a href="http://github.com/composer/packagist" title="{{ 'menu.github'|trans }}"><span class="icon-github"></span></a></li>
+                    <li><a href="https://twitter.com/packagist" title="{{ 'menu.twitter'|trans }}"><span class="icon-twitter"></span></a></li>
+                    <li><a href="mailto:contact@packagist.org" title="{{ 'menu.contact'|trans }}"><span class="icon-mail"></span></a></li>
+                </ul>
+
+                <ul class="span2">
+                    <li><a href="{{ path('about') }}">{{ 'menu.about_packagist'|trans }}</a></li>
+                    <li><a href="{{ path('feeds') }}">{{ 'menu.rss_feeds'|trans }}</a></li>
+                    <li><a href="{{ path('home') }}">{{ 'menu.home'|trans }}</a></li>
+                </ul>
+
+                <ul class="span2">
+                {%- if app.user %}
                     <li><a href="{{ path('fos_user_profile_show') }}">{{ 'menu.profile'|trans }}</a></li>
                     <li><a href="{{ path('logout') }}">{{ 'menu.logout'|trans }}</a></li>
-                {% else %}
+                {%- else %}
                     <li><a href="{{ path('fos_user_registration_register') }}">{{ 'menu.register'|trans }}</a></li>
                     <li><a href="{{ path('hwi_oauth_connect') }}">{{ 'menu.login'|trans }}</a></li>
-                {% endif %}
-            </ul>
-            <ul>
-                <li><a href="{{ path('browse') }}">{{ 'menu.browse_packages'|trans }}</a></li>
-                <li><a href="{{ path('stats') }}">{{ 'menu.stats'|trans }}</a></li>
-            </ul>
-            <ul>
-                <li><a href="https://twitter.com/packagist">{{ 'menu.twitter'|trans }}</a></li>
-                <li><a href="mailto:contact@packagist.org">{{ 'menu.contact'|trans }}</a></li>
-            </ul>
-            <p>Packagist maintenance and hosting is supported by <a href="https://toranproxy.com/">Toran Proxy</a></p>
-            <div class="clearfix"></div>
+                {%- endif %}
+                </ul>
+
+                <ul class="span2">
+                    <li><a href="{{ path('browse') }}">{{ 'menu.browse_packages'|trans }}</a></li>
+                    <li><a href="{{ path('stats') }}">{{ 'menu.stats'|trans }}</a></li>
+                </ul>
+                <!--<ul>
+                    <li><a href="https://twitter.com/packagist">{{ 'menu.twitter'|trans }}</a></li>
+                    <li><a href="mailto:contact@packagist.org">{{ 'menu.contact'|trans }}</a></li>
+                </ul>
+                <p>Packagist maintenance and hosting is supported by <a href="https://toranproxy.com/">Toran Proxy</a></p>-->
+            </nav>
         </footer>
 
-        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
+        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
         <script>!window.jQuery && document.write(unescape('%3Cscript src="{{ asset('js/libs/jquery-1.8.2.min.js') }}"%3E%3C/script%3E'))</script>
         <script src="{{ asset('js/libs/humane.min.js?v=2') }}"></script>
         <script src="{{ asset('js/libs/ZeroClipboard.min.js') }}"></script>
         <script src="{{ asset('bundles/packagistweb/js/layout.js?v=2') }}"></script>
         <script src="{{ asset('bundles/packagistweb/js/search.js?v=6')}}"></script>
 
-        {% if not app.debug and google_analytics.ga_key %}
-            <script>
-                var _gaq=[['_setAccount','{{ google_analytics.ga_key }}'],['_trackPageview']];
-                (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
-                g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
-                s.parentNode.insertBefore(g,s)}(document,'script'));
-            </script>
-        {% endif %}
+        {%- if not app.debug and google_analytics.ga_key %}
+        <script>
+            var _gaq=[['_setAccount','{{ google_analytics.ga_key }}'],['_trackPageview']];
+            (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
+            g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
+            s.parentNode.insertBefore(g,s)}(document,'script'));
+        </script>
+        {%- endif %}
 
         {% block scripts %}{% endblock %}
     </body>

+ 0 - 645
web/css/fontawesome/font-awesome-ie7.css

@@ -1,645 +0,0 @@
-[class^="icon-"],
-[class*=" icon-"] {
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-}
-.btn.dropdown-toggle [class^="icon-"],
-.btn.dropdown-toggle [class*=" icon-"] {
-  /* keeps button heights with and without icons the same */
-
-  line-height: 1.4em;
-}
-.icon-large {
-  font-size: 1.3333em;
-}
-.icon-glass {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf000;&nbsp;');
-}
-.icon-music {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf001;&nbsp;');
-}
-.icon-search {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf002;&nbsp;');
-}
-.icon-envelope {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf003;&nbsp;');
-}
-.icon-heart {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf004;&nbsp;');
-}
-.icon-star {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf005;&nbsp;');
-}
-.icon-star-empty {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf006;&nbsp;');
-}
-.icon-user {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf007;&nbsp;');
-}
-.icon-film {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf008;&nbsp;');
-}
-.icon-th-large {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf009;&nbsp;');
-}
-.icon-th {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00a;&nbsp;');
-}
-.icon-th-list {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00b;&nbsp;');
-}
-.icon-ok {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00c;&nbsp;');
-}
-.icon-remove {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00d;&nbsp;');
-}
-.icon-zoom-in {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00e;&nbsp;');
-}
-.icon-zoom-out {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf010;&nbsp;');
-}
-.icon-off {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf011;&nbsp;');
-}
-.icon-signal {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf012;&nbsp;');
-}
-.icon-cog {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf013;&nbsp;');
-}
-.icon-trash {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf014;&nbsp;');
-}
-.icon-home {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf015;&nbsp;');
-}
-.icon-file {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf016;&nbsp;');
-}
-.icon-time {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf017;&nbsp;');
-}
-.icon-road {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf018;&nbsp;');
-}
-.icon-download-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf019;&nbsp;');
-}
-.icon-download {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01a;&nbsp;');
-}
-.icon-upload {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01b;&nbsp;');
-}
-.icon-inbox {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01c;&nbsp;');
-}
-.icon-play-circle {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01d;&nbsp;');
-}
-.icon-repeat {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01e;&nbsp;');
-}
-.icon-refresh {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf021;&nbsp;');
-}
-.icon-list-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf022;&nbsp;');
-}
-.icon-lock {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf023;&nbsp;');
-}
-.icon-flag {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf024;&nbsp;');
-}
-.icon-headphones {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf025;&nbsp;');
-}
-.icon-volume-off {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf026;&nbsp;');
-}
-.icon-volume-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf027;&nbsp;');
-}
-.icon-volume-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf028;&nbsp;');
-}
-.icon-qrcode {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf029;&nbsp;');
-}
-.icon-barcode {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02a;&nbsp;');
-}
-.icon-tag {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02b;&nbsp;');
-}
-.icon-tags {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02c;&nbsp;');
-}
-.icon-book {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02d;&nbsp;');
-}
-.icon-bookmark {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02e;&nbsp;');
-}
-.icon-print {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02f;&nbsp;');
-}
-.icon-camera {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf030;&nbsp;');
-}
-.icon-font {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf031;&nbsp;');
-}
-.icon-bold {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf032;&nbsp;');
-}
-.icon-italic {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf033;&nbsp;');
-}
-.icon-text-height {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf034;&nbsp;');
-}
-.icon-text-width {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf035;&nbsp;');
-}
-.icon-align-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf036;&nbsp;');
-}
-.icon-align-center {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf037;&nbsp;');
-}
-.icon-align-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf038;&nbsp;');
-}
-.icon-align-justify {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf039;&nbsp;');
-}
-.icon-list {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03a;&nbsp;');
-}
-.icon-indent-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03b;&nbsp;');
-}
-.icon-indent-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03c;&nbsp;');
-}
-.icon-facetime-video {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03d;&nbsp;');
-}
-.icon-picture {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03e;&nbsp;');
-}
-.icon-pencil {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf040;&nbsp;');
-}
-.icon-map-marker {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf041;&nbsp;');
-}
-.icon-adjust {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf042;&nbsp;');
-}
-.icon-tint {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf043;&nbsp;');
-}
-.icon-edit {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf044;&nbsp;');
-}
-.icon-share {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf045;&nbsp;');
-}
-.icon-check {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf046;&nbsp;');
-}
-.icon-move {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf047;&nbsp;');
-}
-.icon-step-backward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf048;&nbsp;');
-}
-.icon-fast-backward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf049;&nbsp;');
-}
-.icon-backward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04a;&nbsp;');
-}
-.icon-play {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04b;&nbsp;');
-}
-.icon-pause {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04c;&nbsp;');
-}
-.icon-stop {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04d;&nbsp;');
-}
-.icon-forward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04e;&nbsp;');
-}
-.icon-fast-forward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf050;&nbsp;');
-}
-.icon-step-forward {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf051;&nbsp;');
-}
-.icon-eject {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf052;&nbsp;');
-}
-.icon-chevron-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf053;&nbsp;');
-}
-.icon-chevron-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf054;&nbsp;');
-}
-.icon-plus-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf055;&nbsp;');
-}
-.icon-minus-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf056;&nbsp;');
-}
-.icon-remove-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf057;&nbsp;');
-}
-.icon-ok-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf058;&nbsp;');
-}
-.icon-question-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf059;&nbsp;');
-}
-.icon-info-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05a;&nbsp;');
-}
-.icon-screenshot {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05b;&nbsp;');
-}
-.icon-remove-circle {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05c;&nbsp;');
-}
-.icon-ok-circle {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05d;&nbsp;');
-}
-.icon-ban-circle {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05e;&nbsp;');
-}
-.icon-arrow-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf060;&nbsp;');
-}
-.icon-arrow-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf061;&nbsp;');
-}
-.icon-arrow-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf062;&nbsp;');
-}
-.icon-arrow-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf063;&nbsp;');
-}
-.icon-share-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf064;&nbsp;');
-}
-.icon-resize-full {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf065;&nbsp;');
-}
-.icon-resize-small {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf066;&nbsp;');
-}
-.icon-plus {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf067;&nbsp;');
-}
-.icon-minus {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf068;&nbsp;');
-}
-.icon-asterisk {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf069;&nbsp;');
-}
-.icon-exclamation-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06a;&nbsp;');
-}
-.icon-gift {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06b;&nbsp;');
-}
-.icon-leaf {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06c;&nbsp;');
-}
-.icon-fire {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06d;&nbsp;');
-}
-.icon-eye-open {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06e;&nbsp;');
-}
-.icon-eye-close {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf070;&nbsp;');
-}
-.icon-warning-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf071;&nbsp;');
-}
-.icon-plane {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf072;&nbsp;');
-}
-.icon-calendar {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf073;&nbsp;');
-}
-.icon-random {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf074;&nbsp;');
-}
-.icon-comment {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf075;&nbsp;');
-}
-.icon-magnet {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf076;&nbsp;');
-}
-.icon-chevron-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf077;&nbsp;');
-}
-.icon-chevron-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf078;&nbsp;');
-}
-.icon-retweet {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf079;&nbsp;');
-}
-.icon-shopping-cart {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07a;&nbsp;');
-}
-.icon-folder-close {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07b;&nbsp;');
-}
-.icon-folder-open {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07c;&nbsp;');
-}
-.icon-resize-vertical {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07d;&nbsp;');
-}
-.icon-resize-horizontal {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07e;&nbsp;');
-}
-.icon-bar-chart {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf080;&nbsp;');
-}
-.icon-twitter-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf081;&nbsp;');
-}
-.icon-facebook-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf082;&nbsp;');
-}
-.icon-camera-retro {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf083;&nbsp;');
-}
-.icon-key {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf084;&nbsp;');
-}
-.icon-cogs {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf085;&nbsp;');
-}
-.icon-comments {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf086;&nbsp;');
-}
-.icon-thumbs-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf087;&nbsp;');
-}
-.icon-thumbs-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf088;&nbsp;');
-}
-.icon-star-half {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf089;&nbsp;');
-}
-.icon-heart-empty {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08a;&nbsp;');
-}
-.icon-signout {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08b;&nbsp;');
-}
-.icon-linkedin-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08c;&nbsp;');
-}
-.icon-pushpin {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08d;&nbsp;');
-}
-.icon-external-link {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;');
-}
-.icon-signin {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf090;&nbsp;');
-}
-.icon-trophy {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf091;&nbsp;');
-}
-.icon-github-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf092;&nbsp;');
-}
-.icon-upload-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf093;&nbsp;');
-}
-.icon-lemon {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf094;&nbsp;');
-}
-.icon-phone {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf095;&nbsp;');
-}
-.icon-check-empty {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf096;&nbsp;');
-}
-.icon-bookmark-empty {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf097;&nbsp;');
-}
-.icon-phone-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf098;&nbsp;');
-}
-.icon-twitter {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf099;&nbsp;');
-}
-.icon-facebook {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09a;&nbsp;');
-}
-.icon-github {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09b;&nbsp;');
-}
-.icon-unlock {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09c;&nbsp;');
-}
-.icon-credit-card {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09d;&nbsp;');
-}
-.icon-rss {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09e;&nbsp;');
-}
-.icon-hdd {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a0;&nbsp;');
-}
-.icon-bullhorn {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a1;&nbsp;');
-}
-.icon-bell {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a2;&nbsp;');
-}
-.icon-certificate {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a3;&nbsp;');
-}
-.icon-hand-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a4;&nbsp;');
-}
-.icon-hand-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a5;&nbsp;');
-}
-.icon-hand-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a6;&nbsp;');
-}
-.icon-hand-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a7;&nbsp;');
-}
-.icon-circle-arrow-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a8;&nbsp;');
-}
-.icon-circle-arrow-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a9;&nbsp;');
-}
-.icon-circle-arrow-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0aa;&nbsp;');
-}
-.icon-circle-arrow-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ab;&nbsp;');
-}
-.icon-globe {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ac;&nbsp;');
-}
-.icon-wrench {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ad;&nbsp;');
-}
-.icon-tasks {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ae;&nbsp;');
-}
-.icon-filter {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b0;&nbsp;');
-}
-.icon-briefcase {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b1;&nbsp;');
-}
-.icon-fullscreen {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b2;&nbsp;');
-}
-.icon-group {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c0;&nbsp;');
-}
-.icon-link {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c1;&nbsp;');
-}
-.icon-cloud {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c2;&nbsp;');
-}
-.icon-beaker {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c3;&nbsp;');
-}
-.icon-cut {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c4;&nbsp;');
-}
-.icon-copy {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c5;&nbsp;');
-}
-.icon-paper-clip {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c6;&nbsp;');
-}
-.icon-save {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c7;&nbsp;');
-}
-.icon-sign-blank {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c8;&nbsp;');
-}
-.icon-reorder {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c9;&nbsp;');
-}
-.icon-list-ul {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ca;&nbsp;');
-}
-.icon-list-ol {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cb;&nbsp;');
-}
-.icon-strikethrough {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cc;&nbsp;');
-}
-.icon-underline {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cd;&nbsp;');
-}
-.icon-table {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ce;&nbsp;');
-}
-.icon-magic {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d0;&nbsp;');
-}
-.icon-truck {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d1;&nbsp;');
-}
-.icon-pinterest {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d2;&nbsp;');
-}
-.icon-pinterest-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d3;&nbsp;');
-}
-.icon-google-plus-sign {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d4;&nbsp;');
-}
-.icon-google-plus {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d5;&nbsp;');
-}
-.icon-money {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d6;&nbsp;');
-}
-.icon-caret-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d7;&nbsp;');
-}
-.icon-caret-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d8;&nbsp;');
-}
-.icon-caret-left {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d9;&nbsp;');
-}
-.icon-caret-right {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0da;&nbsp;');
-}
-.icon-columns {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0db;&nbsp;');
-}
-.icon-sort {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dc;&nbsp;');
-}
-.icon-sort-down {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dd;&nbsp;');
-}
-.icon-sort-up {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0de;&nbsp;');
-}
-.icon-envelope-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e0;&nbsp;');
-}
-.icon-linkedin {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e1;&nbsp;');
-}
-.icon-undo {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e2;&nbsp;');
-}
-.icon-legal {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e3;&nbsp;');
-}
-.icon-dashboard {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e4;&nbsp;');
-}
-.icon-comment-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e5;&nbsp;');
-}
-.icon-comments-alt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e6;&nbsp;');
-}
-.icon-bolt {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e7;&nbsp;');
-}
-.icon-sitemap {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e8;&nbsp;');
-}
-.icon-umbrella {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e9;&nbsp;');
-}
-.icon-paste {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ea;&nbsp;');
-}
-.icon-user-md {
-  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf200;&nbsp;');
-}

+ 0 - 303
web/css/fontawesome/font-awesome.css

@@ -1,303 +0,0 @@
-/*  Font Awesome
-    the iconic font designed for use with Twitter Bootstrap
-    -------------------------------------------------------
-    The full suite of pictographic icons, examples, and documentation
-    can be found at: http://fortawesome.github.com/Font-Awesome/
-
-    License
-    -------------------------------------------------------
-    The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0:
-    http://creativecommons.org/licenses/by/3.0/ A mention of
-    'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable
-    source code is considered acceptable attribution (most common on the web).
-    If human readable source code is not available to the end user, a mention in
-    an 'About' or 'Credits' screen is considered acceptable (most common in desktop
-    or mobile software).
-
-    Contact
-    -------------------------------------------------------
-    Email: dave@davegandy.com
-    Twitter: http://twitter.com/fortaweso_me
-    Work: http://lemonwi.se co-founder
-
-    */
-@font-face {
-  font-family: "FontAwesome";
-  src: url('../../font/fontawesome-webfont.eot');
-  src: url('../../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../../font/fontawesome-webfont.woff') format('woff'), url('../../font/fontawesome-webfont.ttf') format('truetype'), url('../../font/fontawesome-webfont.svg#FontAwesome') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-/*  Font Awesome styles
-    ------------------------------------------------------- */
-[class^="icon-"]:before, [class*=" icon-"]:before {
-  font-family: FontAwesome;
-  font-weight: normal;
-  font-style: normal;
-  display: inline-block;
-  text-decoration: inherit;
-}
-a [class^="icon-"], a [class*=" icon-"] {
-  display: inline-block;
-  text-decoration: inherit;
-}
-/* makes the font 33% larger relative to the icon container */
-.icon-large:before {
-  vertical-align: top;
-  font-size: 1.3333333333333333em;
-}
-.btn [class^="icon-"], .btn [class*=" icon-"] {
-  /* keeps button heights with and without icons the same */
-
-  line-height: .9em;
-}
-li [class^="icon-"], li [class*=" icon-"] {
-  display: inline-block;
-  width: 1.25em;
-  text-align: center;
-}
-li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] {
-  /* 1.5 increased font size for icon-large * 1.25 width */
-
-  width: 1.875em;
-}
-li[class^="icon-"], li[class*=" icon-"] {
-  margin-left: 0;
-  list-style-type: none;
-}
-li[class^="icon-"]:before, li[class*=" icon-"]:before {
-  text-indent: -2em;
-  text-align: center;
-}
-li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
-  text-indent: -1.3333333333333333em;
-}
-/*  Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-    readers do not read off random characters that represent icons */
-.icon-glass:before                { content: "\f000"; }
-.icon-music:before                { content: "\f001"; }
-.icon-search:before               { content: "\f002"; }
-.icon-envelope:before             { content: "\f003"; }
-.icon-heart:before                { content: "\f004"; }
-.icon-star:before                 { content: "\f005"; }
-.icon-star-empty:before           { content: "\f006"; }
-.icon-user:before                 { content: "\f007"; }
-.icon-film:before                 { content: "\f008"; }
-.icon-th-large:before             { content: "\f009"; }
-.icon-th:before                   { content: "\f00a"; }
-.icon-th-list:before              { content: "\f00b"; }
-.icon-ok:before                   { content: "\f00c"; }
-.icon-remove:before               { content: "\f00d"; }
-.icon-zoom-in:before              { content: "\f00e"; }
-
-.icon-zoom-out:before             { content: "\f010"; }
-.icon-off:before                  { content: "\f011"; }
-.icon-signal:before               { content: "\f012"; }
-.icon-cog:before                  { content: "\f013"; }
-.icon-trash:before                { content: "\f014"; }
-.icon-home:before                 { content: "\f015"; }
-.icon-file:before                 { content: "\f016"; }
-.icon-time:before                 { content: "\f017"; }
-.icon-road:before                 { content: "\f018"; }
-.icon-download-alt:before         { content: "\f019"; }
-.icon-download:before             { content: "\f01a"; }
-.icon-upload:before               { content: "\f01b"; }
-.icon-inbox:before                { content: "\f01c"; }
-.icon-play-circle:before          { content: "\f01d"; }
-.icon-repeat:before               { content: "\f01e"; }
-
-/* \f020 doesn't work in Safari. all shifted one down */
-.icon-refresh:before              { content: "\f021"; }
-.icon-list-alt:before             { content: "\f022"; }
-.icon-lock:before                 { content: "\f023"; }
-.icon-flag:before                 { content: "\f024"; }
-.icon-headphones:before           { content: "\f025"; }
-.icon-volume-off:before           { content: "\f026"; }
-.icon-volume-down:before          { content: "\f027"; }
-.icon-volume-up:before            { content: "\f028"; }
-.icon-qrcode:before               { content: "\f029"; }
-.icon-barcode:before              { content: "\f02a"; }
-.icon-tag:before                  { content: "\f02b"; }
-.icon-tags:before                 { content: "\f02c"; }
-.icon-book:before                 { content: "\f02d"; }
-.icon-bookmark:before             { content: "\f02e"; }
-.icon-print:before                { content: "\f02f"; }
-
-.icon-camera:before               { content: "\f030"; }
-.icon-font:before                 { content: "\f031"; }
-.icon-bold:before                 { content: "\f032"; }
-.icon-italic:before               { content: "\f033"; }
-.icon-text-height:before          { content: "\f034"; }
-.icon-text-width:before           { content: "\f035"; }
-.icon-align-left:before           { content: "\f036"; }
-.icon-align-center:before         { content: "\f037"; }
-.icon-align-right:before          { content: "\f038"; }
-.icon-align-justify:before        { content: "\f039"; }
-.icon-list:before                 { content: "\f03a"; }
-.icon-indent-left:before          { content: "\f03b"; }
-.icon-indent-right:before         { content: "\f03c"; }
-.icon-facetime-video:before       { content: "\f03d"; }
-.icon-picture:before              { content: "\f03e"; }
-
-.icon-pencil:before               { content: "\f040"; }
-.icon-map-marker:before           { content: "\f041"; }
-.icon-adjust:before               { content: "\f042"; }
-.icon-tint:before                 { content: "\f043"; }
-.icon-edit:before                 { content: "\f044"; }
-.icon-share:before                { content: "\f045"; }
-.icon-check:before                { content: "\f046"; }
-.icon-move:before                 { content: "\f047"; }
-.icon-step-backward:before        { content: "\f048"; }
-.icon-fast-backward:before        { content: "\f049"; }
-.icon-backward:before             { content: "\f04a"; }
-.icon-play:before                 { content: "\f04b"; }
-.icon-pause:before                { content: "\f04c"; }
-.icon-stop:before                 { content: "\f04d"; }
-.icon-forward:before              { content: "\f04e"; }
-
-.icon-fast-forward:before         { content: "\f050"; }
-.icon-step-forward:before         { content: "\f051"; }
-.icon-eject:before                { content: "\f052"; }
-.icon-chevron-left:before         { content: "\f053"; }
-.icon-chevron-right:before        { content: "\f054"; }
-.icon-plus-sign:before            { content: "\f055"; }
-.icon-minus-sign:before           { content: "\f056"; }
-.icon-remove-sign:before          { content: "\f057"; }
-.icon-ok-sign:before              { content: "\f058"; }
-.icon-question-sign:before        { content: "\f059"; }
-.icon-info-sign:before            { content: "\f05a"; }
-.icon-screenshot:before           { content: "\f05b"; }
-.icon-remove-circle:before        { content: "\f05c"; }
-.icon-ok-circle:before            { content: "\f05d"; }
-.icon-ban-circle:before           { content: "\f05e"; }
-
-.icon-arrow-left:before           { content: "\f060"; }
-.icon-arrow-right:before          { content: "\f061"; }
-.icon-arrow-up:before             { content: "\f062"; }
-.icon-arrow-down:before           { content: "\f063"; }
-.icon-share-alt:before            { content: "\f064"; }
-.icon-resize-full:before          { content: "\f065"; }
-.icon-resize-small:before         { content: "\f066"; }
-.icon-plus:before                 { content: "\f067"; }
-.icon-minus:before                { content: "\f068"; }
-.icon-asterisk:before             { content: "\f069"; }
-.icon-exclamation-sign:before     { content: "\f06a"; }
-.icon-gift:before                 { content: "\f06b"; }
-.icon-leaf:before                 { content: "\f06c"; }
-.icon-fire:before                 { content: "\f06d"; }
-.icon-eye-open:before             { content: "\f06e"; }
-
-.icon-eye-close:before            { content: "\f070"; }
-.icon-warning-sign:before         { content: "\f071"; }
-.icon-plane:before                { content: "\f072"; }
-.icon-calendar:before             { content: "\f073"; }
-.icon-random:before               { content: "\f074"; }
-.icon-comment:before              { content: "\f075"; }
-.icon-magnet:before               { content: "\f076"; }
-.icon-chevron-up:before           { content: "\f077"; }
-.icon-chevron-down:before         { content: "\f078"; }
-.icon-retweet:before              { content: "\f079"; }
-.icon-shopping-cart:before        { content: "\f07a"; }
-.icon-folder-close:before         { content: "\f07b"; }
-.icon-folder-open:before          { content: "\f07c"; }
-.icon-resize-vertical:before      { content: "\f07d"; }
-.icon-resize-horizontal:before    { content: "\f07e"; }
-
-.icon-bar-chart:before            { content: "\f080"; }
-.icon-twitter-sign:before         { content: "\f081"; }
-.icon-facebook-sign:before        { content: "\f082"; }
-.icon-camera-retro:before         { content: "\f083"; }
-.icon-key:before                  { content: "\f084"; }
-.icon-cogs:before                 { content: "\f085"; }
-.icon-comments:before             { content: "\f086"; }
-.icon-thumbs-up:before            { content: "\f087"; }
-.icon-thumbs-down:before          { content: "\f088"; }
-.icon-star-half:before            { content: "\f089"; }
-.icon-heart-empty:before          { content: "\f08a"; }
-.icon-signout:before              { content: "\f08b"; }
-.icon-linkedin-sign:before        { content: "\f08c"; }
-.icon-pushpin:before              { content: "\f08d"; }
-.icon-external-link:before        { content: "\f08e"; }
-
-.icon-signin:before               { content: "\f090"; }
-.icon-trophy:before               { content: "\f091"; }
-.icon-github-sign:before          { content: "\f092"; }
-.icon-upload-alt:before           { content: "\f093"; }
-.icon-lemon:before                { content: "\f094"; }
-.icon-phone:before                { content: "\f095"; }
-.icon-check-empty:before          { content: "\f096"; }
-.icon-bookmark-empty:before       { content: "\f097"; }
-.icon-phone-sign:before           { content: "\f098"; }
-.icon-twitter:before              { content: "\f099"; }
-.icon-facebook:before             { content: "\f09a"; }
-.icon-github:before               { content: "\f09b"; }
-.icon-unlock:before               { content: "\f09c"; }
-.icon-credit-card:before          { content: "\f09d"; }
-.icon-rss:before                  { content: "\f09e"; }
-
-.icon-hdd:before                  { content: "\f0a0"; }
-.icon-bullhorn:before             { content: "\f0a1"; }
-.icon-bell:before                 { content: "\f0a2"; }
-.icon-certificate:before          { content: "\f0a3"; }
-.icon-hand-right:before           { content: "\f0a4"; }
-.icon-hand-left:before            { content: "\f0a5"; }
-.icon-hand-up:before              { content: "\f0a6"; }
-.icon-hand-down:before            { content: "\f0a7"; }
-.icon-circle-arrow-left:before    { content: "\f0a8"; }
-.icon-circle-arrow-right:before   { content: "\f0a9"; }
-.icon-circle-arrow-up:before      { content: "\f0aa"; }
-.icon-circle-arrow-down:before    { content: "\f0ab"; }
-.icon-globe:before                { content: "\f0ac"; }
-.icon-wrench:before               { content: "\f0ad"; }
-.icon-tasks:before                { content: "\f0ae"; }
-
-.icon-filter:before               { content: "\f0b0"; }
-.icon-briefcase:before            { content: "\f0b1"; }
-.icon-fullscreen:before           { content: "\f0b2"; }
-
-.icon-group:before                { content: "\f0c0"; }
-.icon-link:before                 { content: "\f0c1"; }
-.icon-cloud:before                { content: "\f0c2"; }
-.icon-beaker:before               { content: "\f0c3"; }
-.icon-cut:before                  { content: "\f0c4"; }
-.icon-copy:before                 { content: "\f0c5"; }
-.icon-paper-clip:before           { content: "\f0c6"; }
-.icon-save:before                 { content: "\f0c7"; }
-.icon-sign-blank:before           { content: "\f0c8"; }
-.icon-reorder:before              { content: "\f0c9"; }
-.icon-list-ul:before              { content: "\f0ca"; }
-.icon-list-ol:before              { content: "\f0cb"; }
-.icon-strikethrough:before        { content: "\f0cc"; }
-.icon-underline:before            { content: "\f0cd"; }
-.icon-table:before                { content: "\f0ce"; }
-
-.icon-magic:before                { content: "\f0d0"; }
-.icon-truck:before                { content: "\f0d1"; }
-.icon-pinterest:before            { content: "\f0d2"; }
-.icon-pinterest-sign:before       { content: "\f0d3"; }
-.icon-google-plus-sign:before     { content: "\f0d4"; }
-.icon-google-plus:before          { content: "\f0d5"; }
-.icon-money:before                { content: "\f0d6"; }
-.icon-caret-down:before           { content: "\f0d7"; }
-.icon-caret-up:before             { content: "\f0d8"; }
-.icon-caret-left:before           { content: "\f0d9"; }
-.icon-caret-right:before          { content: "\f0da"; }
-.icon-columns:before              { content: "\f0db"; }
-.icon-sort:before                 { content: "\f0dc"; }
-.icon-sort-down:before            { content: "\f0dd"; }
-.icon-sort-up:before              { content: "\f0de"; }
-
-.icon-envelope-alt:before         { content: "\f0e0"; }
-.icon-linkedin:before             { content: "\f0e1"; }
-.icon-undo:before                 { content: "\f0e2"; }
-.icon-legal:before                { content: "\f0e3"; }
-.icon-dashboard:before            { content: "\f0e4"; }
-.icon-comment-alt:before          { content: "\f0e5"; }
-.icon-comments-alt:before         { content: "\f0e6"; }
-.icon-bolt:before                 { content: "\f0e7"; }
-.icon-sitemap:before              { content: "\f0e8"; }
-.icon-umbrella:before             { content: "\f0e9"; }
-.icon-paste:before                { content: "\f0ea"; }
-
-.icon-user-md:before              { content: "\f200"; }

Some files were not shown because too many files changed in this diff