first pass on the openstack theme

This commit is contained in:
Evgeny Fadeev 2013-03-18 01:10:34 -04:00
parent 2b8afc7e62
commit a00ff23013
7 changed files with 382 additions and 60 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
os/media/images/sprites.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,11 +1,248 @@
#userToolsNav button {
/*$body-font: 'Helvetica Neue', Arial, Helvetica, sans-serif;
$heading-font: 'PT Sans', serif;*/
body,
p,
.short-summary .counts,
#footer ul,
.short-summary .userinfo {
font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
}
#secondaryHeader,
#questionCount,
#footer h3,
h1,
h1.section-title,
.box h2,
.short-summary h2,
.short-summary .counts .item-count,
.tag-right,
.tabBar,
.question-page .vote-number {
font-family: 'PT Sans', serif;
}
#header {
background: #e4eef1;
border-top: 3px solid #255e6e;
box-shadow: 1px 1px 1px 1px #ccc;
-webkit-box-shadow: 1px 1px 1px 1px #ccc;
font-family: 'PT Sans', serif;
}
#metaNav {
position: absolute;
left: 200px;
bottom: 22px;
}
#metaNav a.on {
font-weight: normal;
color: #e4eef1;
background: #255e6e !important;
border-radius: 5px;
text-shadow: 0 0 0;
box-shadow: 0 0 2px 2px white;
}
#metaNav #navTags,
#metaNav #navBadges,
#metaNav #navUsers,
#metaNav #navGroups,
#metaNav .help {
background: none;
border: none;
border-bottom: 1px solid #d0e296;
color: #d0e296;
display: inline;
padding: 3px 10px 6px 10px;
margin: 0 0 0 30px;
}
#userToolsNav a,
#metaNav a {
color: #255e6e;
font-size: 16px;
font-family: 'Open Sans Condensed', Arial, sans-serif;
line-height: 14px;
line-height: 16px;
height: 16px;
text-shadow: #fff 0 1px 1px;
}
#header.with-logo #userToolsNav {
bottom: 19px;
right: -100px;
}
#secondaryHeader {
background: #fff;
border: none;
margin-bottom: 7px;
}
.scope-selector {
font-size: 16px;
height: 37px;
border-bottom: 3px solid white;
}
.scope-selector.on,
.scope-selector:hover {
background: none;
border-bottom: 3px solid;
color: #cf2f19;
text-decoration: none;
-webkit-transition: 0.07s ease;
}
.scope-selector:first-child {
margin-left: 0;
}
.scope-selector:hover {
color: #264D69;
}
#homeButton {
background: url(../images/sprites.png) no-repeat 0 -30px;
border: none;
display: none;
width: 33px;
}
#homeButton:hover {
background: url(../images/sprites.png) no-repeat -44px -29px;
}
.tabBar {
background: none;
}
#logo img {
height: 56px;
margin-left: -10px;
}
#searchBar {
box-shadow: inset #eee 1px 1px 2px 1px;
margin-left: 255px;
margin-top: -33px;
}
.search-drop-menu {
margin-left: 255px;
}
.search-drop-menu .footer button {
padding: 2px 6px 3px;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(5%,#F3F3F3), color-stop(100%,rgb(245, 133, 12)));
box-shadow: 0 0 2px 2px white;
text-shadow: 0 0 0;
}
.search-drop-menu .footer button:hover {
}
body.anon #searchBar,
body.anon .search-drop-menu {
margin-left: 158px;
}
#askButton {
display: none;
}
#ContentRight {
margin-top: -56px;
margin-bottom: 56px;
}
.box .contributorback,
.box h2 {
background: none;
text-align: left;
}
input[type="submit"].searchBtn,
input.cancelSearchBtn {
border: 0;
display: none;
height: 0;
margin: 0;
padding: 0;
right: -500px;
}
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button {
font-family: 'PT Sans', serif;
font-weight: normal;
border: 1px solid #e2e2e2 !important;
padding: 4px 15px;
color: black!important;
text-decoration: none!important;
font-size: 12.5px;
background: #FFFFFF;
background: -moz-linear-gradient(top, #FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(50%,#F3F3F3), color-stop(100%,#EBEBEB));
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EBEBEB',GradientType=0 );
box-shadow: 0px 1px 1px rgba(0,0,0,.5);
-webkit-box-shadow: 0px 1px 2px rgba(0,0,0,.2);
-moz-box-shadow: 0px 1px 2px rgba(0,0,0,.2);
text-shadow: #fff 0px 1px 1px;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-bottom-color: #a0a0a0 !important;
border-right-color: #bababa !important;
border-left-color: #bababa !important;
}
.box .inputs #interestingTagInput,
.box .inputs #ignoredTagInput,
.box .inputs #subscribedTagInput,
.box .inputs #ab-tag-search {
width: 132px;
height: 23px;
line-height: 23px;
}
#tagSelector div.inputs {
}
#tagSelector.box h2 {
}
#metaNav .dropdown,
#metaNav a {
display: inline;
float: none;
padding: 0;
margin: 5px 0 0 0;
}
#metaNav span.dropdown-toggle {
padding: 10px;
border-left: 1px solid #e4eef1;
/*background: url(../images/sprites.png) no-repeat -7px -242px;*/
position: relative;
}
#metaNav span.dropdown-toggle:hover {
background: #e4eef1;
/*background: url(../images/sprites.png) no-repeat -7px -274px;*/
}
#metaNav span.dropdown-toggle:hover .dropdown-menu {
background: #e4eef1;
border-left: 1px solid #e4eef1;
display: block;
left: -1px;
padding: 0 0 10px 0;
top: 32px;
}
#metaNav .dropdown-menu {
background: #e4eef1;
left: 26px;
top: 22px;
}
#metaNav .dropdown-menu li {
line-height: 1.7;
padding-left: 13px;
}
#metaNav .dropdown-menu li:hover {
display: block !important;
margin: 0;
padding: 0;
width: 100% !important;
}
#metaNav .dropdown-menu a {
margin: 0;
padding: 0;
}
#metaNav .dropdon-menu a:hover {
text-decoration: underline;
}
#footer .span-8,
#footer .span-4 {
box-sizing: border-box;
margin: 0;
padding-right: 10px;
width: 20%;
}
#footer h3 {
color: #de0000;
font-size: 16px;
}
#footer ul {
list-style: none;
margin: 0;
}

View File

@ -0,0 +1,14 @@
{% if settings.USE_LOCAL_FONTS %}
{# this version is for serving fonts locally - e.g. for intranet sites #}
<style type="text/css">
@font-face {
font-family: 'Open Sans Condensed';
font-style: normal;
font-weight: 700;
src: url('{{"/images/OpenSans-CondBold.ttf"|media}}');
}
</style>
{% else %}
{# note: for IE8 we ask for fonts separately #}
<link href='//fonts.googleapis.com/css?family=PT+Sans&amp;subset=latin' rel='stylesheet' type='text/css'>
{% endif %}

View File

@ -0,0 +1,52 @@
<div class="content-wrapper">
<div id="footer">
<hr />
<div class="span-8">
<h3>My Feedback About This Page</h3>
<form id="FeedbackForm_FeedbackForm" action="/home/FeedbackForm" method="post" enctype="application/x-www-form-urlencoded">
<textarea id="FeedbackForm_FeedbackForm_Content" name="Content" rows="5" cols="20"></textarea>
<input class="action button" id="FeedbackForm_FeedbackForm_action_submitFeedback" type="submit" name="action_submitFeedback" value="Tell Us" title="Tell Us" />
</form>
</div>
<div class="span-4">
<h3>OpenStack</h3>
<ul>
<li><a href="/projects/">Projects</a></li>
<li><a href="/openstack-security/">OpenStack Security</a></li>
<li><a href="/projects/openstack-faq/">Common Questions</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
<div class="span-4">
<h3>Community</h3>
<ul>
<li><a href="/community/">User Groups</a></li>
<li><a href="/events/">Events</a></li>
<li><a href="/jobs/">Jobs</a></li>
<li><a href="/companies/">Companies</a></li>
<li><a href="http://wiki.openstack.org/HowToContribute">Contribute</a></li>
</ul>
</div>
<div class="span-4">
<h3>Documentation</h3>
<ul>
<li><a href="http://docs.openstack.org/">OpenStack Manuals</a></li>
<li><a href="http://www.openstack.org/software/start/">Getting Started</a></li>
<li><a href="http://api.openstack.org/">API Documentation</a></li>
<li><a href="http://wiki.openstack.org/">Wiki</a></li>
</ul>
</div>
<div class="span-4 last">
<h3>Branding &amp; Legal</h3>
<ul>
<li><a href="/brand/">Logos &amp; Guidelines</a></li>
<li><a href="/brand/openstack-trademark-policy/">Trademark Policy</a></li>
<li><a href="/privacy/">Privacy Policy</a></li>
<li><a href="http://wiki.openstack.org/CLA">OpenStack CLA</a></li>
</ul>
</div>
<hr />
<p>The OpenStack project is provided under the Apache 2.0 license. Openstack.org is powered by <a href="http://www.rackspacecloud.com/">Rackspace Cloud Computing</a>.</p>
</div>
</div>

View File

@ -0,0 +1,71 @@
{% import "macros.html" as macros%}
{%- if request.user.is_authenticated() -%}
<span class="dropdown-toggle">
<ul class="dropdown-menu">
<li>
{{ macros.inbox_link(request.user) }}
<a>{% trans %}responses{% endtrans %}</a>
</li>
<li>
{{ macros.moderation_items_link(request.user, moderation_items) }}
<a>{% trans %}moderation{% endtrans %}</a>
</li>
{%-
if settings.KARMA_MODE != 'hidden' and settings.BADGES_MODE != 'hidden'
-%}
<li>
{{ macros.user_long_score_and_badge_summary(
user,
badges_mode = settings.BADGES_MODE
)
}}
</li>
{%- endif -%}
{% if request.user.is_administrator() %}
<li>
<a class="settings" href="{% url site_settings %}">{% trans %}settings{% endtrans %}</a>
</li>
<li>
<a class="widgets" href="{% url widgets %}">{% trans %}widgets{% endtrans %}</a>
</li>
{% endif %}
{% if settings.USE_ASKBOT_LOGIN_SYSTEM %}
<li>
<a href="{{ settings.LOGOUT_URL }}?next={{ settings.LOGOUT_REDIRECT_URL }}"
>{% trans %}sign out{% endtrans %}</a>
</li>
{% endif %}
</ul>
<a href="{{ request.user.get_absolute_url() }}">{{ request.user.username|escape }}</a>
</span>
{% elif settings.USE_ASKBOT_LOGIN_SYSTEM %}
<a href="{{ settings.LOGIN_URL }}?next={{request.path|clean_login_url|escape}}">{% trans %}Hi there! Please sign in{% endtrans %}</a>
{% endif %}
<a
id="navTags"
href="{% url tags %}"
{% if active_tab == 'tags' %}class="on"{% endif %}
>{% trans %}tags{% endtrans %}</a>
{% if settings.GROUPS_ENABLED %}
<span class="dropdown">
<a
id="navGroups" class='{% if active_tab == 'groups' %}"on"{% endif %}'
href="{% url groups %}" data-target="#" >
{% trans %}people & groups{% endtrans %}
</a>
</span>
{%else%}
<a
id="navUsers"
href="{% url users %}"
{% if active_tab == 'users' %}class="on"{% endif %}
>{% trans %}users{% endtrans %}</a>
{% endif %}
{% if settings.BADGES_MODE == 'public' %}
<a
id="navBadges"
href="{% url badges %}"
{% if active_tab == 'badges' %}class="on"{% endif %}
>{% trans %}badges{% endtrans %}</a>
{% endif %}
<a class="help" href="{% url "help" %}" title="{% trans %}help{% endtrans %}">{% trans %}help{% endtrans %}</a>

View File

@ -1,53 +1 @@
{%- if request.user.is_authenticated() -%}
<a href="{{ request.user.get_absolute_url() }}">{{ request.user.username|escape }}</a>
<span class="user-info">
{{ macros.inbox_link(request.user) }}
{{ macros.moderation_items_link(request.user, moderation_items) }}
{%-
if settings.KARMA_MODE != 'hidden' and settings.BADGES_MODE != 'hidden'
-%}
({{ macros.user_long_score_and_badge_summary(
user,
badges_mode = settings.BADGES_MODE
)
}})
{%- endif -%}
</span>
{% if settings.USE_ASKBOT_LOGIN_SYSTEM %}
<a href="{{ settings.LOGOUT_URL }}?next={{ settings.LOGOUT_REDIRECT_URL }}">{% trans %}sign out{% endtrans %}</a>
{% endif %}
{% elif settings.USE_ASKBOT_LOGIN_SYSTEM %}
<script type="text/javascript">
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].replace(/^\s+|\s+$/g, '');
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
</script>
<form style="display: inline;" action="{{ settings.LOGIN_URL }}" method="post">
<input id="launchpad_csrf_token" type="hidden" name="csrfmiddlewaretoken" value="" />
<script type="text/javascript">
var csrfInput = document.getElementById('launchpad_csrf_token');
csrfInput.setAttribute('value', getCookie('{{ settings.CSRF_COOKIE_NAME }}'));
</script>
<input type="hidden" name="login_provider_name" value="openid" />
<input type="hidden" name="openid_login_token" value="https://login.launchpad.net/" />
<input type="hidden" name="next" value="{{ request.path|clean_login_url|escape }}" />
<button>{% trans %}Hi there! Please, sign in{% endtrans %}</button>
</form>
{% endif %}
{% if request.user.is_authenticated() and request.user.is_administrator() %}
<a class="settings" href="{% url site_settings %}">{% trans %}settings{% endtrans %}</a>
<a class="widgets" href="{% url widgets %}">{% trans %}widgets{% endtrans %}</a>
{% endif %}
<a class="help" href="{% url "help" %}" title="{% trans %}help{% endtrans %}">{% trans %}help{% endtrans %}</a>
{# this file is empty on purpose #}