impala headings
This commit is contained in:
Родитель
08d7b82bf6
Коммит
d4a29f3f5d
|
@ -23,7 +23,7 @@
|
|||
</aside>
|
||||
|
||||
<section id="reviews" class="primary island c">
|
||||
<h2>{{ _('Reviews') }}</h2>
|
||||
<h1>{{ _('Reviews') }}</h1>
|
||||
{{ impala_review_list_box(addon=addon, reviews=reviews) }}
|
||||
</section>
|
||||
|
||||
|
|
|
@ -56,13 +56,13 @@
|
|||
<div id="addon" class="island c" role="main" data-id="{{ addon.id }}">
|
||||
<hgroup>
|
||||
<img id="addon-icon" src="{{ addon.get_icon_url(64) }}" class="icon">
|
||||
<h2 class="addon"{{ addon.name|locale_html }}>
|
||||
<h1 class="addon"{{ addon.name|locale_html }}>
|
||||
{{ addon.name }}
|
||||
<span class="version-number">{{ version.version }}</span>
|
||||
{% if addon.is_no_restart() %}
|
||||
<span class="no-restart">{{ _('No Restart') }}</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
</h1>
|
||||
<h4 class="author">{{ _('by') }} {{ users_list(addon.listed_authors) }}</h4>
|
||||
</hgroup>
|
||||
<p id="addon-summary" {{ addon.summary|locale_html }}>{{ addon.summary|nl2br }}</p>
|
||||
|
|
|
@ -50,12 +50,12 @@
|
|||
<section class="primary">
|
||||
<hgroup class="hero">
|
||||
{% if page == 'installed' %}
|
||||
<h2 class="addon"{{ addon.name|locale_html }}>{{ title }}</h2>
|
||||
<h1 class="addon"{{ addon.name|locale_html }}>{{ title }}</h1>
|
||||
{% else %}
|
||||
{{ impala_breadcrumbs([(addon.type_url(), amo.ADDON_TYPES[addon.type]),
|
||||
(addon.get_url_path(), addon.name),
|
||||
(None, title)]) }}
|
||||
<h2>{{ title }}</h2>
|
||||
<h1>{{ title }}</h1>
|
||||
{% endif %}
|
||||
</hgroup>
|
||||
</section>
|
||||
|
@ -84,12 +84,7 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
<section class="primary full">
|
||||
<header class="hero">
|
||||
<h2>{{ ngettext('About the Developer', 'About the Developers',
|
||||
authors|length) }}</h2>
|
||||
</header>
|
||||
</section>
|
||||
<h1>{{ ngettext('About the Developer', 'About the Developers', authors|length) }}</h1>
|
||||
{% endif %}
|
||||
|
||||
{% for author in authors %}
|
||||
|
|
|
@ -18,21 +18,21 @@
|
|||
{{ addon_heading(addon, version) }}
|
||||
</hgroup>
|
||||
<div class="prose">
|
||||
<h3>{{ _('End-User License Agreement') }}</h3>
|
||||
<h2>{{ _('End-User License Agreement') }}</h2>
|
||||
<p>
|
||||
{% trans addon_name = addon.name %}
|
||||
{{ addon_name }} requires that you accept the following
|
||||
End-User License Agreement before installation can proceed:
|
||||
{% endtrans %}
|
||||
</p>
|
||||
<div class="policy-statement">{{ addon.eula|clean|nl2br }}</div>
|
||||
<div class="policy-statement">{{ addon.eula|nl2br }}</div>
|
||||
{{ install_button(addon, version=version, show_contrib=False,
|
||||
show_eula=False, show_warning=False, impala=True) }}
|
||||
<p class="policy-cancel">
|
||||
<a href="{{ detail_url }}">{{ _('Cancel Installation') }}</a>
|
||||
</p>
|
||||
<p class="policy-back">
|
||||
<a href="{{ detail_url }}">{{ _('Back to {0}…')|f(addon.name)|safe }}</a>
|
||||
<a href="{{ detail_url }}">{{ _('Back to {0}…')|f(addon.name) }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
{{ addon_heading(addon, version) }}
|
||||
</hgroup>
|
||||
<div class="prose">
|
||||
<h3>{{ _('Source Code License') }}</h3>
|
||||
<h2>{{ _('Source Code License') }}</h2>
|
||||
{% if license.url %}
|
||||
<p><a href="{{ license.url }}">{{ license.name }}</a></p>
|
||||
{% else %}
|
||||
<h4>{{ license.name }}</h4>
|
||||
<pre class="license">{{ license.text|clean|nl2br }}</pre>
|
||||
<pre class="license">{{ license.text|nl2br }}</pre>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -19,10 +19,10 @@
|
|||
{{ addon_heading(addon, version) }}
|
||||
</hgroup>
|
||||
<div class="prose">
|
||||
<h3>{{ _('Privacy Policy') }}</h3>
|
||||
<div class="policy-statement">{{ addon.privacy_policy|clean|nl2br }}</div>
|
||||
<h2>{{ _('Privacy Policy') }}</h2>
|
||||
<div class="policy-statement">{{ addon.privacy_policy|nl2br }}</div>
|
||||
<p class="policy-back">
|
||||
<a href="{{ detail_url }}">{{ _('Back to {0}…')|f(addon.name)|safe }}</a>
|
||||
<a href="{{ detail_url }}">{{ _('Back to {0}…')|f(addon.name) }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<div class="item addon">
|
||||
<hgroup class="c">
|
||||
<img id="addon-icon" src="{{ addon.get_icon_url(32) }}" class="icon">
|
||||
<h2 class="addon"{{ addon.name|locale_html }}>
|
||||
<h1 class="addon"{{ addon.name|locale_html }}>
|
||||
<a href="{{ addon.get_url_path(impala=True) }}">
|
||||
{{ addon.name }}
|
||||
</a>
|
||||
</h2>
|
||||
</h1>
|
||||
<h4 class="author">
|
||||
{{ _('by') }} {{ users_list(addon.listed_authors) }}
|
||||
</h4>
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
{% endmacro %}
|
||||
|
||||
{% macro addon_heading(addon, version) %}
|
||||
<h2{{ addon.name|locale_html }}>
|
||||
<h1{{ addon.name|locale_html }}>
|
||||
{{ addon.name }}
|
||||
{% if version and not addon.is_selfhosted() %}
|
||||
<span class="version">{{ version.version }}</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
</h1>
|
||||
{% endmacro %}
|
||||
|
|
|
@ -14,7 +14,6 @@ from babel.support import Format
|
|||
import caching.base as caching
|
||||
import jinja2
|
||||
from jingo import register, env
|
||||
from jingo.helpers import nl2br
|
||||
from tower import ugettext as _
|
||||
|
||||
import amo
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
{% endwith %}
|
||||
<hgroup>
|
||||
{% if page == "list" %}
|
||||
<h2>{{ _('Reviews for {0}')|f(addon.name) }}</h2>
|
||||
<h1>{{ _('Reviews for {0}')|f(addon.name) }}</h1>
|
||||
{% with num = reviews.paginator.count %}
|
||||
{# L10n: {0} is a number. #}
|
||||
<h3>{{ ngettext('<b>{0}</b> review for this add-on',
|
||||
|
@ -53,16 +53,16 @@
|
|||
{% endwith %}
|
||||
{% elif reply %}
|
||||
{# L10n: {0} is a developer's name. #}
|
||||
<h2>{{ _('Developer reply by {0}')|f(reply.user.name) }}</h2>
|
||||
<h1>{{ _('Developer reply by {0}')|f(reply.user.name) }}</h1>
|
||||
{% elif reviews.object_list %}
|
||||
<h2>{% trans cnt=reviews.object_list|length, addon=addon.name,
|
||||
<h1>{% trans cnt=reviews.object_list|length, addon=addon.name,
|
||||
user=reviews.object_list[0].user.name %}
|
||||
Review for {{ addon }} by {{ user }}
|
||||
{% pluralize %}
|
||||
Reviews for {{ addon }} by {{ user }}
|
||||
{% endtrans %}</h2>
|
||||
{% endtrans %}</h1>
|
||||
{% else %}
|
||||
<h2>{{ _('No reviews found.') }}</h2>
|
||||
<h1>{{ _('No reviews found.') }}</h1>
|
||||
{% endif %}
|
||||
</hgroup>
|
||||
</header>
|
||||
|
@ -92,7 +92,7 @@
|
|||
{{ field(form.body, _('Review:')) }}
|
||||
<p>
|
||||
<input type="submit" value="{{ _('Submit review') }}">
|
||||
or <a href="#" id="review-edit-cancel">{{ _('Cancel') }}</a>
|
||||
{{ _('or') }} <a href="#" id="review-edit-cancel">{{ _('Cancel') }}</a>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
left: 20px;
|
||||
margin: 0 12px 1em 0;
|
||||
}
|
||||
h2 {
|
||||
h1 {
|
||||
padding-right: 54px;
|
||||
}
|
||||
.install {
|
||||
|
@ -43,7 +43,7 @@
|
|||
right: 20px;
|
||||
margin: 0 0 1em 12px;
|
||||
}
|
||||
h2 {
|
||||
h1 {
|
||||
padding-right: 0;
|
||||
padding-left: 54px;
|
||||
}
|
||||
|
@ -343,7 +343,7 @@
|
|||
overflow: hidden;
|
||||
position: relative;
|
||||
padding: 1em;
|
||||
h2 {
|
||||
h1 {
|
||||
line-height: 25px;
|
||||
}
|
||||
.copy {
|
||||
|
@ -398,7 +398,7 @@
|
|||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
h2 {
|
||||
h1 {
|
||||
font: bold 16px/18px @serif-stack;
|
||||
text-transform: none;
|
||||
margin: 0 0 4px;
|
||||
|
@ -426,121 +426,3 @@ span.featured {
|
|||
span.featured {
|
||||
background-color: #093;
|
||||
}
|
||||
|
||||
span.emaillink {
|
||||
direction: rtl;
|
||||
unicode-bidi: bidi-override;
|
||||
.i {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
caption {
|
||||
display: none;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.html-rtl th {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
table.person-info {
|
||||
width: 100%;
|
||||
th, td {
|
||||
border-top: 1px solid @border-black;
|
||||
padding: 8px 0;
|
||||
}
|
||||
th {
|
||||
color: #333;
|
||||
line-height: 15px;
|
||||
width: 40%;
|
||||
}
|
||||
tr:first-child {
|
||||
th, td {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
td {
|
||||
padding-top: 0;
|
||||
}
|
||||
ol {
|
||||
list-style: decimal;
|
||||
margin: 0 0 0 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
border: 3px solid #fff;
|
||||
}
|
||||
img.icon {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.meet {
|
||||
.hero h2:first-child {
|
||||
margin-top: 1em;
|
||||
}
|
||||
hgroup.hero h2,
|
||||
header.hero h2 {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
&.about {
|
||||
hgroup.hero h2 {
|
||||
margin: 2em 0;
|
||||
}
|
||||
}
|
||||
.author-bio {
|
||||
border-top: 1px dotted @border-blue;
|
||||
margin-top: 1em;
|
||||
padding-top: 1em;
|
||||
}
|
||||
.notice.author {
|
||||
padding-left: 14px;
|
||||
.avatar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.island {
|
||||
> h3:first-child {
|
||||
margin: 0;
|
||||
}
|
||||
> section {
|
||||
float: none;
|
||||
padding: 0 14px 0 0;
|
||||
width: auto;
|
||||
}
|
||||
.secondary {
|
||||
width: 208px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.html-rtl.meet .island > section {
|
||||
padding: 0 0 0 14px;
|
||||
}
|
||||
|
||||
.policy-statement {
|
||||
background-color: #fff;
|
||||
border: 1px solid @border-black;
|
||||
color: @medium-gray;
|
||||
line-height: 1.4;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
.policy-statement,
|
||||
pre.license {
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
p.policy-cancel {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p.policy-back a {
|
||||
color: @dark-gray;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
@import 'lib';
|
||||
|
||||
.policy-statement {
|
||||
background-color: #fff;
|
||||
border: 1px solid @border-black;
|
||||
color: @medium-gray;
|
||||
line-height: 1.4;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
.policy-statement,
|
||||
pre.license {
|
||||
margin: 1.5em 0;
|
||||
}
|
||||
|
||||
p.policy-cancel {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p.policy-back a {
|
||||
color: @dark-gray;
|
||||
}
|
|
@ -249,7 +249,7 @@ a {
|
|||
}
|
||||
|
||||
#breadcrumbs {
|
||||
margin-bottom: 1.2em;
|
||||
margin-bottom: 15px;
|
||||
font-family: @serif-stack;
|
||||
color: #666;
|
||||
li {
|
||||
|
|
|
@ -18,15 +18,29 @@ body {
|
|||
font-size: 13px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
#masthead h1 {
|
||||
font-size: 40px;
|
||||
font-family: MetaBlack;
|
||||
letter-spacing: -1px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: @red;
|
||||
font: italic 24px/1.3 @serif-stack;
|
||||
}
|
||||
|
||||
#breadcrumbs + h1 {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
section + h1 {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
color: @dark-gray;
|
||||
font: italic 18px @serif-stack;
|
||||
}
|
||||
|
||||
h4 {
|
||||
|
@ -57,11 +71,6 @@ pre {
|
|||
}
|
||||
|
||||
.primary, .modal {
|
||||
h2 {
|
||||
color: @dark-gray;
|
||||
font-family: @serif-stack;
|
||||
font-style: italic;
|
||||
}
|
||||
p {
|
||||
font-size: 14px;
|
||||
margin-top: 1em;
|
||||
|
@ -118,18 +127,13 @@ pre {
|
|||
}
|
||||
}
|
||||
header + .item {
|
||||
border-top: 1px dotted #C9DDF2;
|
||||
border-top: 1px dotted @border-blue;
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.primary {
|
||||
.hero {
|
||||
h2 {
|
||||
color: @red;
|
||||
}
|
||||
}
|
||||
.prose {
|
||||
h3 {
|
||||
font: italic 16px/18px @serif-stack;
|
||||
|
@ -158,3 +162,15 @@ pre {
|
|||
.error {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
caption {
|
||||
display: none;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.html-rtl th {
|
||||
text-align: right;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
@import 'lib';
|
||||
|
||||
.prettyform {
|
||||
.avatar {
|
||||
border: 5px solid #FFFFFF;
|
||||
border: 5px solid #fff;
|
||||
box-shadow: 1px 1px 3px #B2C8E0;
|
||||
display: block;
|
||||
margin-left: 135px;
|
||||
|
@ -23,9 +25,86 @@
|
|||
padding: 0;
|
||||
text-align: right;
|
||||
span {
|
||||
border-bottom: 1px dotted #BBBBBB;
|
||||
border-bottom: 1px dotted #bbb;
|
||||
cursor: help;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.emaillink {
|
||||
direction: rtl;
|
||||
unicode-bidi: bidi-override;
|
||||
.i {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
table.person-info {
|
||||
width: 100%;
|
||||
th, td {
|
||||
border-top: 1px solid @border-black;
|
||||
padding: 8px 0;
|
||||
}
|
||||
th {
|
||||
color: #333;
|
||||
line-height: 15px;
|
||||
width: 40%;
|
||||
}
|
||||
tr:first-child {
|
||||
th, td {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
td {
|
||||
padding-top: 0;
|
||||
}
|
||||
ol {
|
||||
list-style: decimal;
|
||||
margin: 0 0 0 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
border: 3px solid #fff;
|
||||
}
|
||||
|
||||
img.icon {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.meet {
|
||||
&.about {
|
||||
.hero h1 {
|
||||
margin: 1em 0;
|
||||
}
|
||||
}
|
||||
.author-bio {
|
||||
border-top: 1px dotted @border-blue;
|
||||
margin-top: 1em;
|
||||
padding-top: 1em;
|
||||
}
|
||||
.notice.author {
|
||||
padding-left: 14px;
|
||||
.avatar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.island {
|
||||
> h3:first-child {
|
||||
margin: 0;
|
||||
}
|
||||
> section {
|
||||
float: none;
|
||||
padding: 0 14px 0 0;
|
||||
width: auto;
|
||||
}
|
||||
.secondary {
|
||||
width: 208px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.html-rtl.meet .island > section {
|
||||
padding: 0 0 0 14px;
|
||||
}
|
||||
|
|
|
@ -426,6 +426,7 @@ MINIFY_BUNDLES = {
|
|||
'css/impala/buttons.less',
|
||||
'css/impala/promos.less',
|
||||
'css/impala/addon_details.less',
|
||||
'css/impala/policy.less',
|
||||
'css/impala/expando.less',
|
||||
'css/impala/popups.less',
|
||||
'css/impala/l10n.less',
|
||||
|
|
Загрузка…
Ссылка в новой задаче