Brand-spanking new header/footer for AMO! (Bug 608022)

TODO:
-- make templates/global and css/global into a submodule to share with SUMO
-- devhub fixes
-- search fixes (bug 616060)
--- fix SkipTests!
This commit is contained in:
Matt Claypotch 2010-12-01 15:27:17 -08:00 коммит произвёл Jeff Balogh
Родитель b5565b0b72
Коммит 7231bdd4e7
32 изменённых файлов: 1002 добавлений и 335 удалений

Просмотреть файл

@ -6,9 +6,8 @@
{% block site_stats %}
{% if downloads and pings %}
<ul class="stats">
<div class="stats">
{% if downloads.count > 0 %}
<li>
<a href="{{ url('statistics.dashboard') }}">
{% trans plural=downloads.count, count=downloads.count|numberfmt %}
<strong>{{ count }}</strong><span>add-on downloaded</span>
@ -16,20 +15,8 @@
<strong>{{ count }}</strong><span>add-ons downloaded</span>
{% endtrans %}
</a>
</li>
{% endif %}
{% if pings.count > 0 %}
<li>
<a href="{{ url('statistics.dashboard') }}">
{% trans plural=pings.count, count=pings.count|numberfmt %}
<strong>{{ count }}</strong><span>add-on in use</span>
{% pluralize %}
<strong>{{ count }}</strong><span>add-ons in use</span>
{% endtrans %}
</a>
</li>
{% endif %}
</ul>
</div>
{% endif %}
{% endblock %}

Просмотреть файл

@ -103,12 +103,12 @@ class TestStuff(test_utils.TestCase):
def test_heading(self):
def title_eq(url, expected):
response = self.client.get(url, follow=True)
actual = PyQuery(response.content)('#title').text()
actual = PyQuery(response.content)('.site-title img').attr('alt')
eq_(expected, actual)
title_eq('/firefox', 'Add-ons for Firefox')
title_eq('/thunderbird', 'Add-ons for Thunderbird')
title_eq('/mobile', 'Mobile Add-ons for Firefox')
title_eq('/firefox', 'Firefox')
title_eq('/thunderbird', 'Thunderbird')
title_eq('/mobile', 'Firefox Mobile')
def test_xenophobia(self):
r = self.client.get(reverse('home'), follow=True)

Просмотреть файл

@ -1,6 +1,7 @@
from django.test import client
import test_utils
from nose import SkipTest
from nose.tools import eq_
from pyquery import PyQuery as pq
@ -10,6 +11,7 @@ from search import forms
def test_form_version_label():
raise SkipTest()
for app in amo.APP_USAGE:
r = client.Client().get('/en-US/{0}/'.format(app.short))
doc = pq(r.content)
@ -18,6 +20,7 @@ def test_form_version_label():
def test_korean():
raise SkipTest()
"All forms, regardless of nationality, should have an 'Any' version."
r = client.Client().get('/ko/firefox/')
doc = pq(r.content)
@ -36,6 +39,7 @@ class TestSearchForm(test_utils.TestCase):
eq_(actual, expected)
def test_personas_selected(self):
raise SkipTest()
r = self.client.get(reverse('browse.personas'), follow=True)
doc = pq(r.content)
eq_(doc('#cat option:selected').val(), 'personas')
@ -58,6 +62,7 @@ class TestSearchForm(test_utils.TestCase):
'%s shows personas' % app)
def test_no_search_tools(self):
raise SkipTest()
"""The Search Tools category should not be included for non-browser
applications."""

Просмотреть файл

@ -0,0 +1,664 @@
#header:after,
.amo-header:after,
.header-search form:after {
content: ".";
display: block;
clear: both;
height: 0;
visibility: hidden;
}
@font-face {
font-family: 'MetaBlack';
src: url('https://www.mozilla.com/img/fonts/MetaWebPro-Black.woff') format('woff');
font-weight: bold;
font-style: normal;
}
/*----------------------------------
Header
----------------------------------*/
#header {
background: #33589f;
background: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0, rgb(42,65,135)),
color-stop(1, rgb(59,105,177))
);
background: -moz-linear-gradient(
center bottom,
rgb(42,65,135) 0%,
rgb(59,105,177) 100%
);
background: linear-gradient(
center bottom,
rgb(42,65,135) 0%,
rgb(59,105,177) 100%
);
height: 57px;
margin: 10px auto 0;
font-family: verdana;
-moz-box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1);
-webkit-box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1);
box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
text-align: center;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3B69B1', endColorstr='#2D488D',GradientType=0 ); /* ie */
/* width: 980px;*/
}
#header h1 {
margin: 0;
float: left;
font-family: MetaBold;
}
#header h1 a,
#header h1 a:link,
#header h1 a:visited {
display: block;
height: 57px;
width: 110px;
background: url(../../img/zamboni/global/header-logos.png) 15px 0 no-repeat;
text-indent: -9999px;
overflow: hidden;
-moz-transition: background 0.2s ease-in-out;
}
#header h1 a:hover,
#header h1 a:active {
background: -moz-radial-gradient(center 45deg, ellipse closest-side, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 100%),
url(../../img/zamboni/global/header-logos.png) 15px 0 no-repeat;
-moz-transition: background 0.2s ease-in-out;
}
#nav-main {
display: inline-block;
text-align: left;
}
#nav-main, #nav-main ul, #nav-main li {
list-style: none;
}
#nav-main ul {
float: left;
z-index: 99;
left: auto;
margin: 0;
padding: 0;
}
#nav-main li {
float: left;
background: none;
margin: 0;
padding: 0;
position: relative;
}
#nav-main a,
#nav-main span {
display: block;
color: #fff;
font-weight: bold;
font-size: 13px;
}
#nav-main ul {
font-family: "Trebuchet MS", MetaBlack, sans-serif;
}
#nav-main ul ul {
font-family: "Trebuchet MS", sans-serif;
}
#nav-main ul {
border-right: 1px solid rgb(83,115,176);
border-left: 1px solid rgb(47,80,140);
}
#nav-main ul {
border-right-color: rgba(255,255,255,0.15);
border-right-color: rgba(255,255,255,0.15);
border-left-color: rgba(0,0,0,0.2);
}
#nav-main ul li a,
#nav-main ul li span {
padding: 18px 15px 0 15px;
height: 39px;
display: block;
float: left;
text-transform: uppercase;
border-left: 1px solid rgb(83,115,176);
border-right: 1px solid rgb(47,80,140);
}
#nav-main ul li a {
border-left-color: rgba(255,255,255,0.15);
border-right-color: rgba(0,0,0,0.2);
}
#nav-main li ul {
position: absolute;
left: -999em;
opacity: 0;
}
#nav-main li:hover ul,
#nav-main li.sfhover ul {
margin-top: 57px;
left: 0;
opacity: 1;
-moz-transition: opacity 0.2s ease-in-out;
-webkit-transition: opacity 0.2s ease-in-out;
}
#nav-main ul li ul li {
float: none;
}
#nav-main ul li a,
#nav-main ul li a:link,
#nav-main ul li a:visited {
color: #fff;
text-decoration: none;
-moz-transition: background 0.2s linear;
-webkit-transition: background 0.2s linear;
}
#nav-main ul li.current a,
#nav-main ul li.current a:link
#nav-main ul li.current a:visited {
-webkit-transition: none;
}
#nav-main ul li a:hover,
#nav-main ul li a:active {
color: #fff;
background: #263c7b;
background: rgba(38,60,123,0.9);
-moz-transition: background 0.1s ease-in;
-webkit-transition: background 0.1s ease-in;
}
#nav-main ul li.current span,
#nav-main ul li.current a,
#nav-main ul li.current a:link,
#nav-main ul li.current a:visited {
height: 35px;
}
#nav-main ul li li.current span,
#nav-main ul li li.current a,
#nav-main ul li li.current a:link,
#nav-main ul li li.current a:visited,
#nav-main ul li.current li a,
#nav-main ul li.current li a:link,
#nav-main ul li.current li a:visited {
height: auto;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
#nav-main ul li.current a:hover,
#nav-main ul li.current a:active {
-moz-box-shadow: inset 0 -5px rgba(102,155,225,0.8);
-webkit-box-shadow: inset 0 -5px rgba(102,155,225,0.8);
box-shadow: inset 0 -5px rgba(102,155,225,0.8);
}
#nav-main ul li.current {
border-bottom: 4px solid #5784bf;
-moz-box-shadow: inset 0 -5px #669be1;
-webkit-box-shadow: inset 0 -5px #669be1;
box-shadow: inset 0 -5px #669be1;
}
#nav-main ul ul li.current {
border-bottom: 0;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
#nav-main ul ul,
#nav-main ul ul li {
height: auto;
border: 0;
}
#nav-main ul ul {
border-top: 0;
padding: 0 0 4px 0;
width: 190px;
background: #263c7b;
background: rgba(38,60,123,0.9);
-webkit-border-bottom-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-bottomright: 4px;
-moz-border-radius-bottomleft: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
-moz-box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1), 0 5px 10px rgba(0,0,0,0.2);
-webkit-box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1), 0 5px 10px rgba(0,0,0,0.2);
box-shadow: 0 3px rgba(0,0,0,0.1), inset 0 -4px rgba(0,0,0,0.1), 0 5px 10px rgba(0,0,0,0.2);
text-shadow: 1px 1px 0 #1b3b6a, 0 0 5px #1b3b6a;
}
#nav-main ul li ul li a,
#nav-main ul li ul li a:link,
#nav-main ul li ul li a:visited,
#nav-main ul li ul li span {
padding: 5px 15px;
margin: 0;
height: auto;
float: none;
display: block;
font-size: 11px;
font-weight: normal;
border: 0;
background-image: none;
position: relative;
text-transform: none;
-moz-transition: background 0.1s ease-in;
-webkit-transition: background 0.1s ease-in;
}
#nav-main ul li ul li a:hover,
#nav-main ul li ul li a:active {
background: #263c7b;
background: rgba(38,60,123,0.9);
padding-top: 4px;
padding-bottom: 4px;
border-bottom: 1px solid #496288;
border-top: 1px solid #162f55;
-moz-transition: background 0.1s ease-out;
-webkit-transition: background 0.1s ease-out;
}
#header a.mozilla {
color: #a0c8da;
font-family: georgia, serif;
font-weight: normal;
font-style: italic;
float: right;
display: block;
text-align: center;
padding-top: 17px;
height: 44px;
font-size: 18px;
width: 133px;
}
#header a.mozilla:hover,
#header a.mozilla:active {
text-decoration: none;
background: -moz-radial-gradient(center 45deg, ellipse closest-side, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 100%);
-moz-transition: opacity 0.2s ease-in-out;
-webkit-transition: opacity 0.2s ease-in-out;
}
#header a.mozilla span {
background: url(../../img/zamboni/global/header-logos.png) 1px -73px no-repeat;
overflow: hidden;
text-indent: -9999px;
width: 64px;
max-height: 21px;
_height: 21px;
display: -moz-inline-stack;
display: inline-block;
vertical-align: top;
zoom: 1;
*display: inline;
}
#nav-access {
display: none;
}
.amo-header {
height: 128px;
font-family: Georgia;
}
.amo-header a {
color: #3d6db5;
}
/** Search */
div.header-search {
margin: 0;
width: 380px;
clear: right;
float: right;
}
div.header-search input.text {
width: 285px;
}
div.header-search span.wrap {
width: 288px;
}
div.header-search form {
margin: 0;
border-radius: 6px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
padding: 6px;
}
div.header-search span.wrap {
background: #fff url(../../img/zamboni/global/icon-search.png) no-repeat 7px center;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
float: left;
padding: 2px 0 0 36px;
}
div.header-search input.text {
border: none;
outline: none;
box-shadow: none;
font-size: 16px;
width: 200px;
height: 26px;
line-height: 25px;
}
div.header-search input.submit {
box-shadow: none;
float: left;
height: 33px;
margin: 0 0 0 6px;
width: 37px;
}
.site-title {
padding-top: 20px;
}
.site-title a,
.site-title a:visited,
.site-title a:hover,
.site-title a:focus {
font-family: MetaBlack, 'Trebuchet MS', sans-serif;
font-weight: bold;
color: #444;
font-size: 48px;
line-height: 60px;
text-decoration: none;
text-transform: uppercase;
vertical-align: top;
}
.site-title img {
vertical-align: bottom;
}
/*----------------------------------
Footer
----------------------------------*/
#footer {
background: #33559b url(../../img/zamboni/global/bg-footer.png) 0 0 repeat-x;
clear: both;
color: #476FBE;
display: block;
font-family: Georgia, serif;
min-width: 978px;
padding: 123px 0 5px 0;
}
#footer-logo a,
#footer-logo a:link,
#footer-logo a:visited {
display: block;
height: 57px;
width: 110px;
background: url(../../img/zamboni/global/header-logos.png) 15px 0 no-repeat;
text-indent: -200px;
overflow: hidden;
-moz-transition: background 0.2s ease-in-out;
}
#footer-logo a:hover,
#footer-logo a:active {
background: -moz-radial-gradient(center 45deg, ellipse closest-side, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 100%),
url(../../img/zamboni/global/header-logos.png) 15px 0 no-repeat;
-moz-transition: background 0.2s ease-in-out;
}
#footer a:link,
#footer a:visited {
color: #669BE1;
text-decoration: none;
}
#footer a:hover,
#footer a:active {
color: #fff;
text-decoration: underline;
}
#footer-contents {
margin: auto;
text-align: left;
width: 980px;
}
#footer-contents[dir="rtl"] {
text-align: right;
}
#footer-logo {
display: inline;
float: left;
margin: 0 50px 0 10px;
}
#footer-logo a,
#footer-logo a:link,
#footer-logo a:visited {
font-size: 28px;
padding: 0;
}
#footer-menu,
#footer-menu ul {
left: auto;
list-style: none;
margin: 0;
padding: 0;
}
#footer-menu li {
background: none;
display: inline;
float: left;
font-weight: bold;
list-style-type: none;
margin: 15px 10px 0 0;
padding: 0;
position: relative;
width: 115px;
}
#footer-menu li a,
#footer-menu li a:link,
#footer-menu li a:visited,
#footer #lang_form label {
color: #fff;
font-family: MetaBlack, "Trebuchet MS", sans-serif;
font-size: 14px;
font-weight: bold;
text-transform: uppercase;
}
#footer li li a:link,
#footer li li a:visited {
color: #669BE1;
font-family: Georgia, serif;
font-size: 13px;
font-weight: normal;
text-transform: none;
}
#footer li li a:hover,
#footer li li a:active {
color: #fff;
}
#footer-menu ul li ul {
margin: 4px 0 15px;
}
#footer-menu li.last {
margin-right: 0;
}
#footer-menu ul ul li {
display: block;
float: none;
font-weight: normal;
margin: 0;
padding: 0 0 0.3em;
width: auto;
}
#footer #footer-right {
float: right;
width: 180px;
}
#footer #lang_form {
margin: 0 0 15px 27px;
}
#footer #lang_form label {
display: block;
margin: 10px 0 4px;
}
#footer #lang_form select {
font-family: sans-serif;
font-size: 11px;
width: 140px;
}
#footer #lang_form div {
display: inline;
}
#footer #copyright {
clear: both;
}
#footer #copyright p {
font-size: 85%;
margin-bottom: 0.5em;
}
#footer #copyright a:hover,
#footer #copyright a:active {
text-decoration: underline;
}
#footer #footer-links {
font-size: 85%;
}
/* AMO-stuff */
#footer .section {
min-height: 0;
padding-bottom: 20px;
}
#footer-content {
margin-top: 10px;
}
#footer-logo {
margin-left: 3px;
width: 10%;
}
#footer-menu {
display: table;
width: 70%;
}
#footer-menu ul {
display: table-row;
}
#footer-menu li {
display: table-cell;
width: 10%;
padding-top: 11px;
float: none;
}
.footer-devhub-link {
width: 25%;
}
#footer-right img {
position: absolute;
right: 25px;
top: -64px;
}
#social-footer {
height: 68px;
margin-bottom: 4px;
display: table;
font-size: 18px;
font-style: italic;
width: 80%;
color: white;
}
#social-footer a:after {
content: ' »';
}
#social-footer a:link,
#social-footer a:visited {
color: white;
}
#social-footer ul {
display: table-row;
}
#social-footer ul li {
display: table-cell;
vertical-align: middle;
text-align: center;
}
#social-footer ul li:first-child {
line-height: 1.2em;
font-size: 17px;
width: 128px;
}
#social-footer ul li:first-child b {
display: block;
font-family: MetaBlack;
font-style: normal;
font-size: 22px;
text-transform: uppercase;
}

Просмотреть файл

@ -229,7 +229,7 @@ span.emaillink .i {
/* Translation Box Element */
.graybox {
background-color: #fff;
border: 3px solid #c8e8f3;
border: 3px solid #e0effd;
padding: 15px;
}
.graybox.errors {
@ -309,7 +309,7 @@ span.emaillink .i {
}
.translation-box .translation-tab.selected {
border: 1px solid #2E5186;
background-color: #C8E8F3;
background-color: #e0effd;
border-bottom: none;
color: #1D587F;
}
@ -396,7 +396,7 @@ span.emaillink .i {
background-color: #def1f8;
margin-bottom: 10px;
display: none;
border: 1px solid #c8e8f3;
border: 1px solid #e0effd;
-moz-border-radius: 6px;
border-radius: 6px;
}
@ -420,7 +420,7 @@ span.emaillink .i {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
background-color: #C8E8F3;
background-color: #e0effd;
}
.notification-box.error {
border-color: #C63717;
@ -1549,12 +1549,6 @@ html[xmlns] .clearfix {
}
/* END Search engines & Themes Landing pages */
/** Footer language selector **/
#language {
margin: 0 0.5em 0 0;
}
/** END Footer language selector **/
/*** =Browse Thumbs ***/
.browse-thumbs .featured,
.browse-thumbs .featured-inner {
@ -1828,6 +1822,7 @@ html[xmlns] .clearfix {
/**
* Tag classes, from 1 to 10, 10 being the largest
*/
.tagLevel1 {font-size: 1.2em;}
.tagLevel2 {font-size: 1.4em;}
.tagLevel3 {font-size: 1.6em;}
@ -2664,18 +2659,6 @@ div.visit-listed-popup {
/* END Beta Channel */
/* locale-only checkbox in footer */
#locale-only-wrapper {
font-weight:normal;
font-size:11px;
padding-left: 15px;
}
.html-rtl #locale-only-wrapper {
padding-right: 15px;
}
/* END locale-only checkbox in footer */
/* Homepage */
.collections-sidebar > img {
margin-left: 1em;

Просмотреть файл

@ -49,10 +49,10 @@ table {
/* @end */
html {
background-color: #fafdfe;
background-image: url(../../img/amo2009/bg/body.jpg);
background-position: top center;
background-repeat: no-repeat;
background-color: #fff;
background-image: url(../../img/zamboni/global/bg-header.png);
background-position: left top;
background-repeat: repeat-x;
}
body {
@ -60,9 +60,6 @@ body {
color:#444444;
font-size:13px;
line-height:1.538em; /* Baseline grid of 20px */
background-image: url(../../img/amo2009/bg/header-border.png);
background-repeat: repeat-x;
background-position: top left;
position: relative;
min-width: 780px;
}
@ -92,7 +89,7 @@ strong {
a:link,
button.link span {
color: #0055EE;
color: #3d6db5;
text-decoration: none;
}
a:visited {
@ -113,10 +110,11 @@ button.link:active span {
body,
#title,
.categories h3,
.item h3,
.section-teaser .addon-view h3 {
.section-teaser .addon-view h3,
div.header-search input.text {
font-family: "helvetica neue", arial, helvetica, sans-serif;
font-style: normal;
}
h2,
@ -127,6 +125,7 @@ h3,
.stats strong,
h4.step {
font-family: georgia, serif;
font-style: italic;
}
pre, code, kbd, tt, samp, tt {
@ -534,7 +533,6 @@ span.new {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
background-image: url(../../img/amo2009/bg/heading-dark-blue.jpg);
background-repeat: repeat-x;
background-position: bottom left;
border: 1px solid #021437;
@ -551,7 +549,7 @@ h3 .secondary a:link, h3 .secondary a:active, h3 .secondary a:visited, h3 .secon
/* @group hReviews */
.review-detail {
border-bottom: 1px dotted #B5D9E5;
border-bottom: 1px dotted #e0effd;
padding: 0.5em 0 1em 0;
margin-bottom: 0.5em;
}
@ -580,7 +578,7 @@ h3 .secondary a:link, h3 .secondary a:active, h3 .secondary a:visited, h3 .secon
background-repeat: no-repeat;
background-position:right -153px;
padding-right: 1em;
color: #0055EE;
color: #3d6db5;
}
.more-info:hover,
@ -669,25 +667,9 @@ a:hover.button,
a:focus.button,
a:active.button,
button,input[type=submit],input[type=button] {
background-image: url(../../img/amo2009/bg/button-blue.jpg);
background-color:#73B9FF;
background-position:center center;
background-repeat:repeat-x;
padding:0 0.6em 0 0.5em;
-moz-border-radius: 13px;
-webkit-border-radius: 8px;
border-radius: 10px;
color:#FFFFFF;
font-family:helvetica, arial, sans-serif;
text-decoration:none;
font-size:1em;
text-shadow:-1px -1px 1px #196CF2;
white-space:nowrap;
overflow:visible;
cursor:pointer;
border:1px solid #258BFF;
margin:0.3em 0;
vertical-align:middle;
}
a:link.button,
@ -885,7 +867,7 @@ button.add-to-fav {
background-repeat: no-repeat;
-moz-border-radius: 0;
border:none;
color: #0055EE;
color: #3d6db5;
cursor:pointer;
text-shadow:none;
white-space: normal;
@ -976,7 +958,7 @@ form.favorite {
padding: 0 2%;
margin: 0 auto;
max-width: 90em;
min-width: 20em;
min-width: 960px;
position: relative;
min-height: 55em;
}
@ -1052,26 +1034,9 @@ form.favorite {
/* @group Stats */
.stats {
font-size: 0.923em;
text-align: right;
font-size: 1em;
padding: 0;
float: right;
color: #223355;
display: table;
border-collapse: collapse;
margin: -8em 0 0;
}
.stats li {
line-height: 1.2em;
border-bottom: 1px dotted #94BFCE;
padding: 0.2em 0;
line-height: 1.25em;
display: table-row-group;
}
.stats li a {
display: table-row;
margin: -46px 0 0 80px;
}
.stats li:last-child {
@ -1079,17 +1044,13 @@ form.favorite {
}
.stats strong, .stats span {
display: table-cell;
padding: 0.1em 0.2em;
}
.stats span {
text-align: left;
}
.stats strong {
color: #C63717;
font-size: 1.33em;
color: #333;
font-size: 1.3em;
font-style: italic;
font-weight: normal;
}
@ -1098,11 +1059,7 @@ form.favorite {
/* @group Aux nav */
#aux-nav {
position: absolute;
top: 5px;
right: 0;
margin: 0 0 0 100px;
font-size: 0.923em;
font-size: 1em;
padding: 0;
text-align: right;
color: #757778;
@ -1111,7 +1068,7 @@ form.favorite {
#aux-nav p.context,
#aux-nav ul {
float: right;
padding: 0.7em 1em 0 0;
padding: 0.5em 1em 0 0;
}
#aux-nav a:link,
@ -1119,16 +1076,12 @@ form.favorite {
#aux-nav a:hover,
#aux-nav a:focus,
#aux-nav a:active {
font-weight: bold;
color: #3d6db5;
white-space: nowrap;
}
/* @group Change */
#aux-nav > ul.change {
background: url(../../img/amo2009/bg/border-header-user-options.gif) no-repeat top right;
}
#aux-nav > ul {
margin: 0;
padding: 0;
@ -1136,15 +1089,10 @@ form.favorite {
position: relative;
}
#aux-nav p.tools,
#aux-nav > ul:not(:last-of-type) > li {
background: url(../../img/amo2009/bg/border-header-user-options.gif) no-repeat top left;
}
#aux-nav p.tools a,
#aux-nav ul.change a.return {
display: block;
padding: 0.7em 1em 0.5em;
padding: 0.5em 1em 0.5em;
}
#aux-nav > ul li ul li {
@ -1192,7 +1140,7 @@ form.favorite {
#aux-nav > ul a.controller:hover,
#aux-nav > ul a.controller:active {
display: block;
padding: 0.7em 20px 0.5em 1em;
padding: 0.5em 20px 0.5em 1em;
background: url(../../img/amo2009/icons/arrows.gif) no-repeat;
background-position: 95% -65px;
}
@ -1220,62 +1168,6 @@ form.favorite {
/* @end */
/* @group Footer */
#footer {
background-image: url(../../img/amo2009/bg/footer.png);
background-repeat: repeat-x;
background-position: 0 50px;
clear: both;
padding-bottom: 1em;
}
#footer .section {
min-height: 0;
}
#footer .primary {
float: left;
padding-top: 70px;
background-image: url(../../img/amo2009/logo-mozilla.gif);
background-repeat: no-repeat;
background-position: 0 70px;
clear: none;
}
#footer .secondary {
float: right;
text-align: right;
clear: none;
}
#footer p {
margin-bottom: 0;
margin-left: 60px;
margin-right: 1em;
}
#footer ul {
font-size: 0.846em;
line-height: 1.273;
margin-top: 0.3em;
padding: 0;
margin-left: 60px;
margin-right: 1.273em;
}
#footer ul li {
display: inline;
margin-right: 1em;
}
#footer .disclaimer {
font-size: 0.846em;
line-height: 1.273;
color: #666666;
margin-right: 1.273em;
}
#footer .languages {
float: right;
margin: 0;
}
/* @end */
/* @group Layout constructs */
.primary {
@ -1376,8 +1268,8 @@ form.favorite {
/* @group Featured */
.featured {
border: 4px solid #B5D9E5;
background-color: #B5D9E5;
border: 4px solid #e0effd;
background-color: #e0effd;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
@ -1443,7 +1335,7 @@ form.favorite {
.notification {
background-color: #FFFFFF;
border: 1px solid #C8E8F3;
border: 1px solid #e0effd;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
@ -1661,7 +1553,7 @@ form.favorite {
/* @group Highlights */
.highlight {
background-color: #C8E8F3;
background-color: #e0effd;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
@ -1718,7 +1610,7 @@ form.favorite {
/* @group Categories list */
.categories {
background-color: #C8E8F3;
background-color: #e0effd;
color: #444444;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
@ -1757,10 +1649,8 @@ form.favorite {
-webkit-border-radius: 5px;
border-radius: 5px;
font-size: 1.231em;
background-image: url(../../img/amo2009/bg/heading-dark-blue.jpg);
background-repeat: repeat-x;
background-position: bottom left;
border: 1px solid #021437;
font-weight: normal;
}
@ -2395,7 +2285,7 @@ ol.pagination span.prev {
background-image: url(../../img/amo2009/icons/arrows.gif);
background-repeat: no-repeat;
background-position: 5px -420px;
color: #0055EE;
color: #3d6db5;
padding-right:0.7em;
padding-left: 15px;
}
@ -2404,7 +2294,7 @@ ol.pagination span.next {
background-image: url(../../img/amo2009/icons/arrows.gif);
background-repeat: no-repeat;
background-position: 95% -340px;
color: #0055EE;
color: #3d6db5;
padding-left:0.7em;
padding-right: 15px;
}
@ -2724,10 +2614,6 @@ form.addon-feedback div.container {
/* @group Listing - Header */
.listing-header {
background-color: #F0F8FC;
background-image: url(../../img/amo2009/bg/listing-header.gif);
background-repeat: repeat-x;
background-position: bottom left;
border-bottom: 1px solid #A5BFCE;
-webkit-border-top-right-radius: 3px;
-webkit-border-top-left-radius: 3px;
@ -2771,9 +2657,7 @@ form.addon-feedback div.container {
.listing-header li.selected a:focus,
.listing-header li.selected a:active {
color: #fff;
background-color: #223355;
border-color: #001133;
border-width: 1px 0 0 1px;
background-color: #294087;
}
.listing-header .num-results {
@ -2802,7 +2686,6 @@ form.addon-feedback div.container {
.listing-footer {
background-color: #FFFFFF;
background-image: url(../../img/amo2009/bg/listing-footer.gif);
background-repeat: repeat-x;
background-position: left top;
border-top: 1px solid #A5BFCE;
@ -2892,7 +2775,7 @@ ol.pagination + .num-results {
.item .meta {
font-size: 0.923em; /* 12px */
border-top: 1px dotted #B5D9E5;
border-top: 1px dotted #e0effd;
padding-top: 0.3em;
}
.item .meta .addons {
@ -3074,7 +2957,6 @@ ol.pagination + .num-results {
.listing .item {
border-bottom: 1px solid #D6E9F0;
background-image: url(../../img/amo2009/bg/listing-item.png);
margin: 0 0 0 0;
}
@ -3177,14 +3059,13 @@ ol.pagination + .num-results {
.object-lead {
padding: 1em;
margin: 0;
background-image: url(../../img/amo2009/bg/listing-item.png);
background-repeat: repeat-x;
background-position: left bottom;
position: relative;
}
.object-lead img.avatar {
border: 3px solid #C8E8F3;
border: 3px solid #e0effd;
float: left;
margin-right: 1em;
}
@ -3233,7 +3114,7 @@ ol.pagination + .num-results {
}
.object-lead .notification {
background-color: #C8E8F3;
background-color: #e0effd;
border: none;
margin-top: 2em;
margin-bottom: 1em;

Просмотреть файл

@ -65,7 +65,6 @@
.tab-wrapper .fm-control {
font-weight: bold;
background: #fff url(../../img/amo2009/bg/listing-footer.gif) repeat-x;
border-top: 1px solid #a5bfce;
margin-top: -1px;
position: relative;

Просмотреть файл

@ -114,6 +114,83 @@ ul.errorlist {
display: none;
}
/************************************/
/* GRADIENTS */
/************************************/
/* If you made a gradient, add it here.
* If you want to use an existing gradient, add your selector here.
**/
/* 'listing header' */
.listing-header {
background-color: #E0EFFD;
background: -webkit-gradient(
linear,
left bottom,
left top,
from(#FFFFFF),
to(#E0EFFD)
);
background: -moz-linear-gradient(#FFFFFF, #E0EFFD);
}
/* 'listing footer' */
.listing-footer,
.tab-wrapper .fm-control,
.section-teaser .teaser-header {
background-color: #E0EFFD;
background: -webkit-gradient(
linear,
left bottom,
left top,
from(#E0EFFD),
to(#FFFFFF)
);
background: -moz-linear-gradient(#E0EFFD, #FFFFFF);
}
/* 'listing item' */
.object-lead,
.listing .item {
background-color: #E0EFFD;
background: -webkit-gradient(
linear,
left bottom,
left top,
from(#FFFFFF),
to(#F6FBFF)
);
background: -moz-linear-gradient(#FFFFFF, #F6FBFF);
}
/* 'Mozilla' */
.categories h2,
.categories h3,
div.header-search form,
span.new {
background: #33589f;
background: -webkit-gradient(
linear,
left bottom,
left top,
from(rgb(42,65,135)),
to(rgb(59,105,177))
);
background: -moz-linear-gradient(
center bottom,
rgb(42,65,135) 0%,
rgb(59,105,177) 100%
);
background: linear-gradient(
center bottom,
rgb(42,65,135) 0%,
rgb(59,105,177) 100%
);
}
/***** END GRADIENTS *******/
/** Generic Button *********/
a.button:link,
a.button:visited,
@ -125,12 +202,12 @@ input[type=button] {
background: #39f url("../../img/zamboni/button-blue.png") 0 50% repeat-x;
background: -moz-linear-gradient(top, #7bf 40%, #39f 60%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(40%, #7bf), color-stop(60%, #39f));
border: 1px solid #05e;
border: 1px solid #3d6db5;
padding: 0 .95em;
margin: 0;
display: inline-block;
line-height: 1.538;
text-shadow: 0 -1px 0 #05e;
text-shadow: 0 -1px 0 #3d6db5;
-moz-box-shadow: inset 0 0 1px rgba(255,255,255,0.1);
-webkit-box-shadow: inset 0 0 1px rgba(255,255,255,0.1);
box-shadow: inset 0 0 1px rgba(255,255,255,0.1);
@ -240,7 +317,7 @@ button.link {
box-shadow: none;
border: 0;
font-weight: bold;
color: #05e;
color: #3d6db5;
}
button.link:hover,
@ -322,9 +399,9 @@ a.button.go:visited,
button.go,
input[type=submit].go,
input[type=button].go {
color: #05e;
color: #3d6db5;
background: #fff none;
border-color: #b5d9e5;
border-color: #E0EFFD;
text-shadow: 0 1px 0 #fff;
-moz-box-shadow: inset 0 0 3px #c0e1ee;
-webkit-box-shadow: inset 0 0 3px #c0e1ee;
@ -338,7 +415,7 @@ input[type=submit].go:hover,
input[type=button].go:hover,
input[type=submit].go:focus,
input[type=button].go:focus {
color: #05e;
color: #3d6db5;
border-color: #a8cedd;
}
@ -403,7 +480,7 @@ input[type=submit].status,
input[type=button].status {
color: #333;
background: #fff none;
border-color: #b5d9e5;
border-color: #E0EFFD;
text-shadow: 0 1px 0 #fff;
-moz-box-shadow: inset 0 0 3px #c0e1ee;
-webkit-box-shadow: inset 0 0 3px #c0e1ee;
@ -436,7 +513,7 @@ input[type=submit].concealed,
input[type=button].concealed {
color: #859fae;
background: #fff none;
border-color: #b5d9e5;
border-color: #E0EFFD;
text-shadow: 0 1px 0 #fff;
-moz-box-shadow: inset 0 0 3px #c0e1ee;
-webkit-box-shadow: inset 0 0 3px #c0e1ee;
@ -1004,7 +1081,7 @@ ul.license li.copyr { background-position: 0 -260px; }
/** Persona Homepage **/
.personas-featured .persona-list-3col {
border: 1px solid #b5d9e5;
border: 1px solid #E0EFFD;
-moz-border-radius: 5px;
}
@ -1273,7 +1350,7 @@ form .error .note.error {
}
#user-profile .avatar {
border: 3px solid #c8e8f3;
border: 3px solid #e0effd;
padding: 0;
margin-top: 1em;
}
@ -1407,7 +1484,7 @@ form .error .note.error {
}
#featured-addons .preview a {
border: 3px solid #c8e8f3;
border: 3px solid #e0effd;
display: block;
max-width: 200px;
height: 155px;
@ -1493,7 +1570,7 @@ form .error .note.error {
}
.category-landing .addons-column ul {
border: 1px solid #b5d9e5;
border: 1px solid #E0EFFD;
-moz-border-radius: 5px;
padding: 0;
margin: 0;
@ -1504,7 +1581,7 @@ form .error .note.error {
}
.category-landing .addons-column ul li {
border-top: 1px dotted #b5d9e5;
border-top: 1px dotted #E0EFFD;
overflow: hidden;
padding: 0;
position: relative;
@ -1541,7 +1618,7 @@ form .error .note.error {
.category-landing .addons-column ul li a .name {
font-size: 1em;
font-weight: bold;
color: #05e;
color: #3d6db5;
padding: 8px 0 0;
margin-left: 0;
display: block;
@ -1587,7 +1664,7 @@ form .error .note.error {
.category-landing .view-all a:link,
.category-landing .view-all a:visited {
font-size: 1em;
color: #05e;
color: #3d6db5;
padding-right: 10px;
background: transparent url(../../img/zamboni/icons/arrow-right-blue.png) 100% 55% no-repeat;
}
@ -1605,7 +1682,7 @@ form .error .note.error {
}
.category-landing .featured.personas .view-all {
border-top: 1px dotted #B5D9E5;
border-top: 1px dotted #E0EFFD;
padding: 2px 7px;
margin: -15px 0 0;
text-align: right;
@ -1617,8 +1694,8 @@ form .error .note.error {
/** =Search results *********/
.results {
border: 4px solid #b5d9e5;
background-color: #b5d9e5;
border: 4px solid #E0EFFD;
background-color: #E0EFFD;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
@ -1666,7 +1743,7 @@ form .error .note.error {
.separated-listing .contribute,
.collector-note,
.item .performance-note {
background: #d3edf6;
background: #E0EFFD;
float: left;
padding: 3px 10px;
margin-top: 0.5em;
@ -1791,9 +1868,9 @@ form .error .note.error {
padding: 6px 8px 6px 28px;
background: #ffc url("../../img/zamboni/icons/suggest-help.png") 6px .5em no-repeat;
border: 1px solid #fc6;
-moz-box-shadow: 2px 2px 0 #b5d9e5;
-webkit-box-shadow: 2px 2px 0 #b5d9e5;
box-shadow: 2px 2px 0 #b5d9e5;
-moz-box-shadow: 2px 2px 0 #E0EFFD;
-webkit-box-shadow: 2px 2px 0 #E0EFFD;
box-shadow: 2px 2px 0 #E0EFFD;
top: 0;
right: 0;
}
@ -1833,7 +1910,7 @@ form .error .note.error {
#refine-results,
.versions .primary > .warning {
background: #fff;
border: 1px solid #c8e8f3;
border: 1px solid #e0effd;
}
.versions .primary > .warning h2 {
@ -1854,7 +1931,7 @@ form .error .note.error {
padding-top: .5em;
margin-top: 1em;
clear: right;
border-top: 1px dotted #B5D9E5;
border-top: 1px dotted #E0EFFD;
}
.version a.source-code {
@ -1918,7 +1995,7 @@ form .error .note.error {
}
.secondary ul.refinements li a {
color: #05e;
color: #3d6db5;
padding: 0 0 0 10px;
font-weight: bold;
font-size: .923em;
@ -1972,7 +2049,7 @@ form .error .note.error {
.abuse legend a.abuse-image {
padding-left: 25px;
color: #05e;
color: #3d6db5;
background: transparent url("../../img/zamboni/notifications.png") 0 -305px no-repeat;
}
@ -2533,7 +2610,7 @@ h6.author, .author a {
}
.review:hover ul.review-options > li > a {
color: #0055EE;
color: #3d6db5;
}
.review-wrapper {
position: relative;
@ -2558,7 +2635,7 @@ h6.author, .author a {
}
.review.reply-form {
background: #C8E8F3;
background: #e0effd;
border: 0;
}
.reply-form form {
@ -2816,7 +2893,7 @@ td.remove {
background-color: #e4f5fb;
}
td.input {
background: #B5D9E5;
background: #E0EFFD;
padding-top: .5em;
padding-bottom: .4em;
}
@ -3047,8 +3124,8 @@ input.ui-autocomplete-loading {
/** Add-on detail page QR Code area. Feature test from Bug 595561 **/
#addon-qr-code {
-moz-border-radius: 5px;
background-color: #C8E8F3;
border: 6px solid #C8E8F3;
background-color: #e0effd;
border: 6px solid #e0effd;
color: #223355;
float: right;
font-size: 0.9em;

Двоичные данные
media/img/zamboni/app_icons/firefox.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 10 KiB

Двоичные данные
media/img/zamboni/app_icons/generic.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.5 KiB

Двоичные данные
media/img/zamboni/app_icons/seamonkey.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Двоичные данные
media/img/zamboni/app_icons/sunbird.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
media/img/zamboni/app_icons/thunderbird.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 14 KiB

Двоичные данные
media/img/zamboni/footer-logo-med.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 28 KiB

Двоичные данные
media/img/zamboni/global/bg-footer.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.3 KiB

Двоичные данные
media/img/zamboni/global/bg-header.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.1 KiB

Двоичные данные
media/img/zamboni/global/btn-search.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичные данные
media/img/zamboni/global/header-logos.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.3 KiB

Двоичные данные
media/img/zamboni/global/icon-search.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

@ -345,6 +345,7 @@ MINIFY_BUNDLES = {
'css/main-mozilla.css',
'css/jquery-lightbox.css',
'css/autocomplete.css',
'css/global/headerfooter.css',
),
'zamboni/z': (
'css/zamboni/zamboni.css',

20
templates/amo_footer.html Normal file
Просмотреть файл

@ -0,0 +1,20 @@
{% extends "global/footer.html" %}
{% block menu_links %}
{% include "menu_links.html" %}
{% endblock %}
{% block lang_form %}
<img src="{{ MEDIA_URL }}img/zamboni/footer-logo-med.png" alt="">
<form class="languages go" id="lang_form" method="get" action="">
<label for="language">{{ _('Other languages') }}</label>
<select id="language" name="lang" dir="ltr">
{% for code, name in LANGUAGES|dictsort -%}
<option value="{{ code }}" {{ code|ifeq(LANG|lower, "selected") }}>
{{ name }}
</option>
{%- endfor %}
</select>
<button type="submit">{{ _('Go') }}</button>
</form>
{% endblock %}

Просмотреть файл

@ -0,0 +1,5 @@
{% extends "global/header.html" %}
{% block menu_links %}
{% include "menu_links.html" %}
{% endblock %}

Просмотреть файл

@ -46,18 +46,8 @@
<div class="section">
{% block site_header %}
<div id="header" role="banner">
<p id="title">
{% block site_header_title %}
{% include "header_title.html" %}
{% endblock site_header_title %}
</p>
<p id="brand">
<a href="http://www.mozilla.com/" title="{{ _('Mozilla') }}"
accesskey="1">{{ _('Mozilla') }}</a>
</p>
{% block site_stats %}{% endblock %}
{% include "amo_header.html" %}
<div class="amo-header">
<div id="aux-nav" role="navigation">
{% block aux_nav %}
<ul id="other-apps" class="change"
@ -80,6 +70,13 @@
{% include "user_login.html" %}
{% endif %}
</div>
<div class="header-search" role="search">
{% block search_form %}
{% include 'search.html' %}
{% endblock %}
</div>
{% include "header_title.html" %}
{% block site_stats %}{% endblock %}
</div>
{% endblock site_header %}
@ -87,10 +84,6 @@
on the side of the page. #}
{% block main_content %}
{% block navbar %}
<div class="stand-alone-options">
{% include "categories.html" %}
{% include "search.html" %}
</div>
{% endblock %}
{# outer_content is for something you want above content on every page. #}
{% block outer_content %}{% endblock %}
@ -130,14 +123,7 @@
{% block footer %}
<div id="footer" role="contentinfo">
<div class="section">
<div class="primary">
{% include "footer.html" %}
</div> {# primary #}
<div class="secondary">
{% block footer_secondary %}
<img src="{{ MEDIA_URL }}img/amo2009/illustrations/footer-logo.png" alt="">
{% endblock %}
</div> {# secondary #}
{% include "footer.html" %}
</div> {# section #}
</div> {# footer #}
{% endblock %}

Просмотреть файл

@ -6,7 +6,6 @@
{% block under_categories %}{% endblock %}
</div>
<div class="primary" role="main">
{% include "search.html" %}
{% block content %}{% endblock %}
</div>
{% endblock %}

Просмотреть файл

@ -1,15 +1,14 @@
{% include 'includes/lang_switcher.html' %}
<p>{% trans legalurl="http://www.mozilla.com/en-US/about/legal.html#site", ccurl="http://creativecommons.org/licenses/by-sa/3.0/" -%}
Except where otherwise <a href="{{ legalurl }}">noted</a>, content on this site is licensed under the
<strong><a href="{{ ccurl }}">Creative Commons Attribution Share-Alike License v3.0</a></strong> or any later version
{%- endtrans %}<span title="{{ settings.HOSTNAME }}">.</span>
</p>
<ul>
<li><a href="http://www.mozilla.com/{{ LANG }}/privacy-policy.html">{{ _('Privacy Policy') }}</a></li>
<li><a href="http://www.mozilla.com/{{ LANG }}/about/legal.html">{{ _('Legal Notices') }}</a></li>
<li><a href="{{ url('pages.about') }}">{{ _('About') }}</a></li>
<li><a href="http://blog.mozilla.com/addons">{{ _('Blog') }}</a></li>
<li><a href="{{ url('devhub.index') }}">{{ _('Developer Hub') }}</a></li>
<li><a href="{{ url('pages.faq') }}"><abbr title="{{ _('Frequently Asked Questions') }}">{{ _('FAQ') }}</abbr></a></li>
<li><a href="https://forums.addons.mozilla.org">{{ _('Forum') }}</a></li>
</ul>
<div id="social-footer">
<ul>
<li>{{ _('get to know <b>add-ons</b>')|safe }}</li>
<li><a href="{{ url('pages.about') }}">{{ _('About') }}</a></li>
<li><a href="http://blog.mozilla.com/addons">{{ _('Blog') }}</a></li>
<li class="footer-devhub-link"><a href="{{ url('devhub.index') }}">{{ _('Developer Hub') }}</a></li>
<li><a href="{{ url('pages.faq') }}">{{ _('FAQ') }}</a></li>
<li><a href="https://forums.addons.mozilla.org">{{ _('Forum') }}</a></li>
</ul>
</div>
<div id="footer-content">
{% include "amo_footer.html" %}
</div>

Просмотреть файл

@ -0,0 +1,29 @@
<div id="footer-right">
{% block lang_form %}
{% endblock %}
</div>
<div id="footer-logo"><a href="http://mozilla.com/" title="{{ _('Back to home page') }}">{{ _('Firefox') }}</a></div>
<div id="footer-menu" role="navigation">
{% block menu_links %}
{% include 'global/menu_links.html' %}
{% endblock %}
</div>
<div id="copyright">
<p id="footer-links">
<a href="http://mozilla.com/privacy-policy.html">{{ _('Privacy Policy') }}</a> &nbsp;|&nbsp;
<a href="http://mozilla.com/about/legal.html">{{ _('Legal Notices') }}</a> &nbsp;|&nbsp;
<a href="http://mozilla.com/legal/fraud-report/index.html">{{ _('Report Trademark Abuse') }}</a>
</p>
<p>
{% trans %}
Except where otherwise <a href="http://mozilla.com/about/legal.html#site">noted</a>,
content on this site is licensed under the <br />
<a href="http://creativecommons.org/licenses/by-sa/3.0/">
Creative Commons Attribution Share-Alike License v3.0
</a> or any later version.
{% endtrans %}
</p>
</div>

Просмотреть файл

@ -0,0 +1,15 @@
<div id="header">
<div id="nav-access">
<a href="#nav-main">{{ _('skip to navigation') }}</a>
<a href="#lang_form">{{ _('switch language') }}</a>
</div>
<h1><a href="http://www.mozilla.com/" title="{{ _('Back to Mozilla.com') }}">{{ _('Firefox') }}</a></h1>
<a class="mozilla" href="http://www.mozilla.org/">{{ _('visit {0}')|f('<span>mozilla</span>')|safe }}</a>
<div id="nav-main" role="navigation">
{% block menu_links %}
{% include "global/menu_links.html" %}
{% endblock %}
</div>
</div>

Просмотреть файл

@ -0,0 +1,63 @@
<ul>
<li class="first"><a href="http://www.mozilla.com/firefox/features/">{{ _('Features') }}</a>
<ul>
<li class="first"><a href="http://www.mozilla.com/firefox/features/">{{ _('Features') }}</a></li>
<li><a href="http://www.mozilla.com/firefox/security/">{{ _('Security') }}</a></li>
<li><a href="http://www.mozilla.com/firefox/performance/">{{ _('Performance') }}</a></li>
<li><a href="http://www.mozilla.com/firefox/customize/">{{ _('Customization') }}</a></li>
<li><a href="http://www.mozilla.com/firefox/stats/">{{ _('Download Stats') }}</a></li>
<li><a href="http://www.mozilla.com/firefox/video/">{{ _('Videos') }}</a></li>
<li class="last"><a href="http://www.mozilla.com/firefox/central/">{{ _('Tour') }}</a></li>
</ul>
</li>
<li><a href="http://www.mozilla.com/mobile/">{{ _('Mobile') }}</a>
<ul>
<li class="first"><a href="http://www.mozilla.com/mobile/">{{ _('Mobile Overview') }}</a></li>
<li><a href="http://www.mozilla.com/mobile/download/">{{ _('Download') }}</a></li>
<li><a href="http://www.mozilla.com/mobile/features/">{{ _('Features') }}</a></li>
<li><a href="https://addons.mozilla.org/mobile/?browse=featured">{{ _('Customize') }}</a></li>
<li><a href="http://www.mozilla.com/mobile/sync/">{{ _('Sync') }}</a></li>
<li><a href="https://developer.mozilla.org/mobile">{{ _('Develop') }}</a></li>
<li><a href="http://www.mozilla.com/mobile/getinvolved/">{{ _('Get Involved') }}</a></li>
<li><a href="http://www.mozilla.com/mobile/faq/">{{ _('FAQ') }}</a></li>
<li class="last"><a href="https://blog.mozilla.com/mobile/">{{ _('Blog') }}</a></li>
</ul>
</li>
<li class="{% block amo_class %}fart{% endblock %}"><a href="https://addons.mozilla.org/">{{ _('Add-ons') }}</a>
<ul>
{% block amo_links %}
<li class="first"><a href="https://addons.mozilla.org/firefox/">{{ _('Firefox Add-ons') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/featured/">{{ _('Featured Add-ons') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/extensions/">{{ _('Extensions') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/themes/">{{ _('Themes') }}</a></li>
<li><a href="http://www.getpersonas.com/">{{ _('Personas') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/search-tools/">{{ _('Search Tools') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/language-tools/">{{ _('Language Support') }}</a></li>
<li><a href="https://addons.mozilla.org/firefox/collections/">{{ _('Collections') }}</a></li>
<li><a href="https://addons.mozilla.org/mobile/">{{ _('Mobile Add-ons') }}</a></li>
<li class="last"><a href="https://addons.mozilla.org/firefox/developers/">{{ _('Developer Hub') }}</a></li>
{% endblock %}
</ul>
</li>
<li class="{% block sumo_class %}{% endblock %}"><a href="http://support.mozilla.com/">{{ _('Support') }}</a>
<ul>
{% block sumo_links %}
<li class="first"><a href="http://support.mozilla.com/en-US/kb/">{{ _('Firefox Support') }}</a></li>
<li><a href="http://support.mozilla.com/mobile">{{ _('Mobile Support') }}</a></li>
<li class="last"><a href="http://www.mozilla.org/support/thunderbird/">{{ _('Thunderbird Support') }}</a></li>
{% endblock %}
</ul>
</li>
<li class="last"><a href="http://www.mozilla.com/about/">{{ _('About') }}</a>
<ul>
<li class="first"><a href="http://www.mozilla.com/about/">{{ _('About Firefox') }}</a></li>
<li><a href="http://www.mozilla.com/about/participate/">{{ _('Participate') }}</a></li>
<li><a href="http://www.mozilla.com/press/">{{ _('Communications') }}</a></li>
<li><a href="http://www.mozilla.com/about/careers.html">{{ _('Careers') }}</a></li>
<li><a href="http://www.mozilla.com/about/partnerships.html">{{ _('Partnerships') }}</a></li>
<li><a href="http://www.mozilla.com/about/legal.html">{{ _('Legal') }}</a></li>
<li><a href="http://www.mozilla.com/about/contact.html">{{ _('Contact Us') }}</a></li>
<li class="last"><a href="http://blog.mozilla.com/">{{ _('Blog') }}</a></li>
</ul>
</li>
</ul>

Просмотреть файл

@ -1,19 +1,20 @@
<h1 class="site-title">
{% macro heading(text, icon) -%}
<a href="{{ url('home') }}"
title="{{ _('Return to the {0} Add-ons homepage')|f(request.APP.pretty) }}">
{{ text|f(MEDIA_URL + 'img/amo2009/app-icons/' + icon + '.png')|safe }}</a>
{{ text|f(MEDIA_URL + 'img/zamboni/app_icons/' + icon + '.png')|safe }}</a>
{%- endmacro %}
{% if request.APP == amo.FIREFOX %}
{{ heading(_('Add-ons <em>for</em> <img alt="" src="{0}"> <strong>Firefox</strong>'), 'firefox') }}
{{ heading(_('<img alt="Firefox" src="{0}"> Add-ons'), 'firefox') }}
{% elif request.APP == amo.THUNDERBIRD %}
{{ heading(_('Add-ons <em>for</em> <img alt="" src="{0}"> <strong>Thunderbird</strong>'), 'thunderbird') }}
{{ heading(_('<img alt="Thunderbird" src="{0}"> Add-ons'), 'thunderbird') }}
{% elif request.APP == amo.MOBILE %}
{{ heading(_('Mobile Add-ons <em>for</em> <img alt="" src="{0}"> <strong>Firefox</strong>'), 'firefox') }}
{{ heading(_('<img alt="Firefox Mobile" src="{0}"> Add-ons'), 'firefox') }}
{% elif request.APP == amo.SEAMONKEY %}
{{ heading(_('Add-ons <em>for</em> <img alt="" src="{0}"> <strong>SeaMonkey</strong>'), 'seamonkey') }}
{{ heading(_('<img alt="SeaMonkey" src="{0}"> Add-ons'), 'seamonkey') }}
{% elif request.APP == amo.SUNBIRD %}
{{ heading(_('Add-ons <em>for</em> <img alt="" src="{0}"> <strong>Sunbird</strong>'), 'sunbird') }}
{{ heading(_('<img alt="Sunbird" src="{0}"> Add-ons'), 'sunbird') }}
{% else %}
{{ heading(_('Add-ons <img alt="" src="{0}">'), 'generic') }}
{{ heading(_('<img alt="" src="{0}"> Add-ons'), 'generic') }}
{% endif %}
</h1>

Просмотреть файл

@ -1,5 +1,5 @@
<form class="languages go" method="get" action="">
<label for="language">{{ _('Other languages:') }}</label>
<form class="languages go" id="lang_form" method="get" action="">
<label for="language">{{ _('Other languages') }}</label>
<select id="language" name="lang" dir="ltr">
{% for code, name in LANGUAGES.items() -%}
<option value="{{ code }}" {{ code|ifeq(LANG|lower, "selected") }}>

Просмотреть файл

@ -0,0 +1,3 @@
{% extends "global/menu_links.html" %}
{% block amo_class %}current{% endblock %}

Просмотреть файл

@ -1,60 +1,10 @@
{% set search_form = SearchForm(request) %}
{% set show_advanced = search_form.advanced.data == 'on' %}
<div class="search-form expanded-search-form {% if show_advanced %}expanded{% endif %}">
<form id="search-form" action="{{ url('search.search') }}">
<div class="basic" id="search-query">
<input id="query" type="text" title="search" name="q"
{% if not search_form.q.data %}class="placeholder"{% endif %}
value="{{ search_form.q.data or '' }}"
placeholder="{{ _('search for add-ons') }}">
<label for="cat">{{ _('within') }}</label>
<select name="cat" id="cat">
{% for value, title in search_form.fields['cat'].choices -%}
{% if value in search_form.top_level_cat %}
{% set class = 'cat-all' %}
{% else %}
{% set class = '' %}
{% endif %}
<option class="{{ class }}" value="{{ value }}"
{% if value in (search_form.cat.data, search_cat) %}selected{% endif %}>
{{ title }}</option>
{%- endfor %}
</select>
<button type="submit">
<img src="{{ MEDIA_URL }}img/amo2009/blank.gif">
</button>
</div> {# search-query #}
<div id="advanced-link" title="{{ _('Toggle advanced search mode') }}">
<a class="asopen" href="{% if show_advanced %}./{% else %}?advanced=on{% endif %}">{{ _('Advanced') }}</a>
</div>
<div id="advanced-search" class="advanced">
<fieldset class="important">
<div class="container">
{{ search_form.lver.label_tag()|safe }}
{{ search_form.lver|safe }}
</div>
<div class="container">
{{ search_form.pid.label_tag()|safe }}
{{ search_form.pid|safe }}
</div> </fieldset>
<fieldset class="subsidiary">
<div class="container">
{{ search_form.sort.label_tag()|safe }}
{{ search_form.sort|safe }}
</div>
<div class="container">
{{ search_form.pp.label_tag()|safe }}
{{ search_form.pp|safe }}
</div>
<div class="container">
{{ search_form.lup.label_tag()|safe }}
{{ search_form.lup|safe }}
</div>
</fieldset>
<span id="search-data"
data-version="{{ request.REQUEST.get('lver', 'any') }}">
</span>
{{ search_form.advanced|safe }}
</div> {# advanced-search #}
</form>
</div>
<form action="{{ url('search.search') }}" method="get">
<span class="wrap">
<input type="text" name="q"
class="text {% if not search_form.q.data %}placeholder{% endif %}"
placeholder="{{ _('search for add-ons') }}"
value="{{ search_form.q.data or '' }}" required="required">
</span>
<input type="image" class="submit" src="{{ settings.MEDIA_URL }}img/zamboni/global/btn-search.png" title="{{ _('Search') }}" alt="{{ _('Search') }}" />
</form>