static/css/restyle/restyle.less (1,881 lines of code) (raw):
// Needed for hovercards
@import (less) '../impala/hovercards';
// Colors
@primary-blue: rgba(12, 153, 213, 1);
@primary-link: #6ac3e2;
@primary-font: Inter, sans-serif;
@link-on-white-bg: #0996F8;
@link-on-color-bg: #fff;
@header-font-color: #c63717;
@default-font-color: #333;
// Common styles
@detail-border: 1px solid #ebebeb;
// Sizes
@containerWidth: 1018px;
@pageWidth: 960px;
h1,
h2,
h3,
h4,
h5 {
line-height: 1.5;
font-family: @primary-font !important;
font-style: normal !important;
font-weight: normal;
}
* {
font-family: @primary-font !important;
}
// Styles
html {
font-size: 13px;
background: #051818;
color: #fff;
}
body.restyle {
background: #fff none repeat scroll 0 0;
color: @default-font-color;
font-family: @primary-font;
font-style: normal;
line-height: 1.5;
min-width: @containerWidth;
overflow-x: hidden;
}
body.restyle.fluid, .fluid .section, .fluid .header-bg {
min-width: auto;
min-height: auto;
max-width: none;
width: auto;
}
h1,
#masthead h1 {
font-family: @primary-font;
}
#masthead h1 a {
color: @link-on-color-bg;
}
h2 {
margin-top: 1em;
}
.primary h1,
.island h2 {
margin-top: 0;
}
h1,
.primary h2,
hgroup h2.addon,
hgroup h2.collection,
.developer-hub header h2,
.developer-hub #homepage h2 {
color: @default-font-color;
font-size: 1.692rem;
font-style: normal;
}
masthead.submit-theme,
#collections-landing {
margin-top: 20px;
}
.addon-description-header,
.addon-details .secondary.addon-vitals {
background: none;
}
#addon .install-wrapper .warning {
color: @link-on-color-bg;
}
.addon-details h2 {
color: inherit;
font-size: 1.75rem;
}
.primary header h2 {
margin: 0 0 15px;
}
// These are all defined in AMO's original CSS and seem to need overriding :'(
a,
a:link,
a:visited,
a:hover,
a:focus,
a:active,
.more-info,
.more-info:link,
.more-info:visited,
.more-info:hover,
.more-info:focus,
.more-info:active {
color: @link-on-white-bg;
}
a.button,
a.delete-button,
a.delete-button:hover,
button.link:hover span,
button.link:focus span,
button.link:active span {
color: @link-on-color-bg;
}
.amo-header,
.primary:not(.more-island),
.secondary {
&::after {
clear: both;
content: "";
display: block;
height: 0;
width: 100%;
}
}
.primary,
.secondary {
background: #fff;
}
.header-bg {
background-color: #0c99d5;
/*
Main Content Wrapper Background - General
blue-pattern, blue-gradient, white overlay
(sharp-cut at 130px)
*/
background-image:
linear-gradient(
to bottom,
transparent 0,
transparent 100px
),
linear-gradient(
to bottom,
rgba(12, 153, 213, 0) 0,
@primary-blue 500px,
#fff 0%
),
repeating-linear-gradient(
118deg,
rgba(12, 153, 213, 0) 0,
#00a7e0 550px,
rgba(12, 153, 213, 0) 550px,
#00a7e0 800px,
rgba(12, 153,213, 0) 800px,
#00a7e0 950px
);
background-position:
0 416px,
0 0,
0 0;
// This breaks the background panel wrapper out of the containing box,
// allowing it to be full-width. This means the background gradient can
// span the entire width of the viewport, even though the parent has a
// max-width.
margin: 0 0 12px ~"calc(-1 * ((100vw - 100%) / 2))";
min-width: @containerWidth;
width: 100vw;
.html-rtl & {
margin: 0 ~"calc(-1 * ((100vw - 100%) / 2))" 12px 0;
}
}
/*
Main Content Wrapper Background - Home and Add-on Details page
blue-pattern, blue-gradient, white overlay
(sharp-cut at 416px)
*/
.home .header-bg,
.addon-details .header-bg {
background-image:
linear-gradient(
to bottom,
transparent 0,
transparent 100px
),
linear-gradient(
to bottom,
rgba(12, 153, 213, 0) 0,
@primary-blue 500px,
@primary-blue 0%
),
repeating-linear-gradient(
118deg,
rgba(12, 153, 213, 0) 0,
#00a7e0 550px,
rgba(12, 153, 213, 0) 550px,
#00a7e0 800px,
rgba(12, 153, 213, 0) 800px,
#00a7e0 950px
);
background-position:
0 416px,
0 0,
0 0;
}
.amo-header {
margin-bottom: 0;
}
.amo-header-wrapper {
margin: 0 auto;
max-width: @pageWidth;
}
.category-landing [role="main"],
.amo-header + .primary {
width: 78%;
}
.category-landing .amo-header + .primary header {
display: none;
}
// hide overflow to cover streching of bg in
// .addon-details .primary:first-of-type:before
.addon-details #background-wrapper {
overflow: hidden;
}
.amo-header {
font-family: inherit;
}
body:not(.home) .amo-header,
.addon-details .header-bg,
.home .header-bg {
min-height: 130px;
}
.addon-details .header-bg {
margin-bottom: 0;
}
#site-nav ul {
margin-bottom: 0;
}
.menu-nav {
color: @link-on-color-bg;
}
.amo-header ul a {
color: @link-on-color-bg;
font-family: inherit;
ul a {
color: #fff;
}
}
#masthead h1 {
font-size: 4.308rem; // 56px
line-height: 3.692rem; // 48px
letter-spacing: -1px;
text-transform: none;
}
.site-title {
margin-bottom: 0;
padding-bottom: 7px;
a {
color: @link-on-color-bg;
text-decoration: none;
&:focus,
&:hover {
color: @link-on-color-bg;
text-shadow: none;
}
img {
width: 70px;
}
}
}
// DevHub Title
.site-title.prominent {
// These are tied up in some really nested class + id selectors, so we
// cave and use !important
margin-bottom: 20px !important;
margin-top: -20px !important;
a {
color: @link-on-color-bg;
outline: none;
&:before {
background-image: none;
}
small {
margin-left: 5px;
margin-bottom: -7px;
line-height: normal;
}
}
}
// Navigation Menu and Panels
#site-nav,
.secondary .categories {
> ul > li {
border-left: none;
left: -9px;
> a {
padding-bottom: 8px;
}
// arrow
> ul:after {
left: 10px;
.html-rtl & {
left: auto;
right: 10px;
}
}
&:hover:after {
top: 25px;
left: 1px;
height: 10px;
}
}
#themes ul.two-col {
height: 293px;
padding: 8px;
div {
display: none;
}
+ div {
left: -1px;
top: 305px;
.html-rtl & {
left: auto;
right: -1px;
}
}
}
}
.secondary .categories {
background: none;
h3 {
background: none;
font-family: inherit;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: 1.2;
margin: 0;
padding: 6px;
text-transform: uppercase;
a {
color: #aaa;
}
}
}
#aux-nav,
#site-nav {
line-height: inherit;
}
.menu-nav {
a {
color: #000;
}
> ul > li {
// Menu Panel
> ul {
a {
color: #000;
}
> a {
color: @link-on-color-bg;
}
background-color: #fff;
border: 0;
border-radius: 0;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
top: 25px;
// Menu Panel triangle
&:after {
box-shadow: -2px -2px 2px rgba(0, 0, 0, 0.1);
content: '';
display: block;
position: absolute;
top: -6px;
z-index: 1;
transform: rotate(45deg);
background-color: #fff;
width: 12px;
height: 12px;
}
}
> a,
&:hover > a {
background: none;
border: 0;
box-shadow: none;
}
&:hover:after {
background: #fff;
content: '';
height: 16px;
position: absolute;
width: 200px;
z-index: 62;
}
&.nomenu:hover:after {
display: none;
}
}
}
#aux-nav > ul > li {
> ul:after {
right: 10px;
.html-rtl & {
left: 10px;
right: auto;
}
}
&:hover:after {
top: 32px;
right: 1px;
height: 10px;
}
}
// Top Menu
#aux-nav > ul > li {
// Other Applications Panel triangle position
ul:after {
left: auto;
right: 15px;
}
// Other Applications Menu Arrow
a:after {
display: none;
}
&:not(:first-child):before {
background: linear-gradient(
to bottom,
transparent 0%,
transparent 20%,
#fff 20%,
#fff 80%,
transparent 80%
);
}
}
.header-search {
background: none;
border-radius: 0;
box-shadow: none;
input {
border-radius: 0;
box-shadow: none;
font: inherit;
height: 30px;
}
}
// fix color of search suggestions
#site-search-suggestions a span {
color: @link-on-white-bg;
}
#main-wrapper {
background: #fff;
}
.restyle .site-balloon,
.restyle .notification-box {
background: #fbfbfb;
border: 2px solid #1f386e;
border-radius: 6px;
color: @default-font-color;
margin: 22px 0;
padding: 15px 45px 15px 15px;
.html-rtl& {
padding: 15px 15px 15px 45px;
}
&::before, &::after {
display: none;
}
.close {
background-image: url(../../img/impala/banner-close-style-refresh.png);
color: @default-font-color;
&:focus,
&:hover {
background-color: @dark-gray;
}
}
h2 {
font-size: 1.1rem;
}
&.error {
background-color: #fee3e5;
border-color: #e0c9d6;
// Previous selector is !important, so we have to do this :'(
color: @default-font-color !important;
}
&.warning {
background-color: #fd9;
border-color: #664400;
}
}
#try-new-frontend {
background: url(../../img/zamboni/promo-background.png) #202340;
border: none;
border-radius: 0;
color: #fff;
font-size: 17px;
font-weight: 600;
line-height: 26px;
margin: -12px 0 12px 0; // header_bg has a 12px bottom margin.
padding: 17px 80px;
.close {
background-color: #FFF;
background-image: none; // override default to use our svg mask instead.
mask: url(../../img/impala/x.svg) no-repeat 50% 50%;
right: 24px;
width: 13px;
height: 13px;
&:focus,
&:hover {
background-color: #F9F9FA;
}
}
a:link, a:visited {
color: #0A84FF;
font-weight: 600;
}
p {
margin-right: 0.5em;
}
* {
// This sucks, but there is a font-family: @primary-font !important on
// * at the top of this file...
font-family: Inter, sans-serif !important;
}
}
.addon-details #try-new-frontend {
margin: 0; // on addon detail page, header_bg has no bottom margin.
}
#promos {
float: none;
margin: 20px 0 0;
min-height: 0;
opacity: 1;
visibility: visible;
width: @pageWidth;
hgroup {
margin: 0 auto 20px;
}
&.show {
display: block;
}
#monthly {
background-image: url(../../img/zamboni/discovery_pane/promos-refresh/carousel-1.png);
h2,
h3,
p {
color: @link-on-color-bg;
text-shadow: @dark-gray 1px 1px;
}
}
.promo,
.promo-collection.webdev,
.promo-purple,
#holiday,
#travel {
background-image: url(../../img/zamboni/discovery_pane/promos-refresh/carousel-2.png);
h2,
h3,
a,
p.desc {
color: @link-on-color-bg;
text-align: left;
text-shadow: @dark-gray 1px 1px;
.html-rtl & {
text-align: right;
}
}
}
.promo-collection.webdev h2,
#monthly h2,
#monthly h3 {
font-size: 36px;
font-weight: 100;
}
#travel {
background-position: 50% 0;
background-repeat: no-repeat;
}
.promo-gray {
background-image: url(../../img/zamboni/discovery_pane/promos-refresh/carousel-gray.png);
}
.promo-test-pilot {
background: none;
}
}
#promos,
#promos li > div,
#promos > div,
#promos .feature {
border-radius: 0;
border-radius: 0;
}
.island {
background: none;
border: 0;
border-radius: 0;
box-shadow: none;
}
.restyle .primary.island {
border-top: @detail-border;
}
.island > section {
border-bottom: @detail-border;
}
#reviews .review,
#detail-relnotes .items {
border: 0;
}
#reviews a.more-info,
#detail-relnotes a.more-info {
float: none;
}
.promo h2 {
margin-top: 0;
}
.featured:not(.listing-grid) li {
height: auto;
width: auto;
}
// Featured/Monthly Add-on background modification
#featured-addon,
#monthly {
background: none;
&::before {
display: none;
}
.wrap > div {
max-height: 160px;
}
}
#starter.feature {
background: none;
}
#promos .feature {
padding: 10px 78px;
}
#promos .control,
.carousel > a {
&:hover {
background: rgba(255, 255, 255, 0.1);
color: rgba(255, 255, 255, 0.3);
}
&:after {
background: none;
border: 0;
border-radius: 0;
box-shadow: none;
color: rgba(255, 255, 255, 1);
font-family: @primary-font;
height: 100%;
line-height: 260px;
vertical-align: middle;
}
}
.restyle .control {
font-family: @primary-font;
}
#promos {
.prev {
left: 0;
}
.next {
right: 0;
}
h2, h3 {
font-family: inherit;
font-style: normal;
}
.promo {
background-size: cover;
}
}
// Featured/Monthly Add-on Carousel Element
// move icon to the left
#featured-addon .wrap > div,
#monthly .wrap > div {
display: block;
}
#featured-addon .blurb,
#featured-addon .thumb,
#monthly .blurb,
#monthly .thumb {
display: inline-block;;
}
#featured-addon .thumb,
#monthly .thumb {
float: left;
}
#featured-addon > div,
#go-mobile > div,
#monthly > div,
.addons li > a {
background: none;
background-color: rgba(255, 255, 255, 0);
border: 0;
border-radius: 0;
box-shadow: none;
transition-property: background-color;
}
.addons li > a:active,
.addons li > a:focus,
.addons li > a:hover {
background-color: rgba(255, 255, 255, 0.2);
box-shadow: none;
transition-property: background-color;
h3 {
text-decoration: none;
}
}
.addons img {
float: left;
margin-bottom: 3px;
margin-right: 8px;
}
.addons h3,
#featured-addon h3,
#monthly h3 {
font-size: 1.2rem;
font-weight: 200;
line-height: 1.3rem;
max-height: 1.2rem;
padding-bottom: 5px;
text-align: left;
}
#featured-addon h3 a,
#monthly h3 a {
color: @link-on-color-bg;
}
#monthly .addons p.desc,
#monthly .wrap p {
clear: both;
color: #fff;
font-weight: 200;
max-height: 5.4em;
text-overflow: ellipsis;
}
// Side nav on Home
.home #side-nav {
// pushed down to make room for more header
margin-top: 0;
}
.toplist li a {
line-height: 1.5;
padding: 0.25em 0;
small {
margin-top: -3px;
}
}
// Button overrides.
// Display is set here so it doesn't clobber low specificity
// platform specific button hiding.
button,
.button {
display: inline-block;
}
// Add a selector here if there's a different style coming from
// elsewhere.
.sidebar a.button,
.sidebar button,
.linux .button.linux,
.mac .button.mac,
.other .button.bsd,
.other .button.solaris,
.windows .button.windows,
a.delete-button.delete-addon,
#upload-file-finish.button,
#upload-file-widget .button.prominent,
#promos .view-button a,
.cta a.button:link,
.cta a.button:visited,
.theme-queue a.button,
.theme-queue button,
.theme .choices button,
button,
button.button,
.button,
a.button:link,
a.button:visited,
input:not(.upvotes):not(.downvotes)[type="submit"] {
background: #5784bf;
border: none;
border-radius: 3px;
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.10),
inset 0 -2px 0 0 rgba(0, 0, 0, 0.10);
box-sizing: border-box;
color: #fff;
font-family: @primary-font;
font-size: 1rem;
height: auto;
line-height: 1.5;
padding: 8px 14px 9px;
position: relative;
text-shadow: none;
transition: box-shadow linear 0.25s;
&.download,
&.add,
&.button-green {
background: #57bd35;
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.10),
inset 0 -2px 0 0 rgba(56, 136, 30, 0.50);
&.button-red {
background: @button-red-dark;
}
span:not(.os) {
border: none;
margin: 0;
background: url(../../img/impala/button-icons.png) no-repeat 0 -191px;
padding: 0 0 0 24px;
.html-rtl & {
padding: 0 24px 0 0;
.sprite-pos-right(3, 64, 3px);
}
}
}
&.contribute b {
display: inline;
background-position: 0 -444px;
}
&.approve,
&#commit,
&.good {
background: #57bd35;
}
&.delete-button,
&.developer {
background: #bc2b1a;
span {
background-position: 0 -383px;
.html-rtl & {
.sprite-pos-right(6, 64, 3px);
}
}
}
&.disabled,
&:disabled,
&.concealed {
background: #ccc;
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.10),
inset 0 -2px 0 0 rgba(136, 136, 136, 0.50);
color: #919497;
text-shadow: none;
&:hover {
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.10),
inset 0 -2px 0 0 rgba(0, 0, 0, 0.10);
}
&:active {
top: 0;
}
span:not(.os) {
background-position: 0 -253px;
.html-rtl & {
.sprite-pos-right(4, 64, 3px);
}
}
}
b {
display: none;
}
&.selected,
&:hover,
&:focus {
box-shadow: 0 2px rgba(0, 0, 0, 0.1),
inset 0 -2px rgba(0, 0, 0, 0.1),
inset 0 0 100px rgba(255, 255, 255, 0.2);
}
&:active {
top: 2px;
box-shadow: none;
}
&.installer.warning,
&.installer.caution,
&.caution:not(.concealed),
&.warning:not(.concealed) {
background-image: url(../../img/impala/warning-bg.png);
color: #333 !important;
span,
span:not(.os) {
background-position: 0 -317px;
.html-rtl & {
.sprite-pos-right(5, 64, 3px);
}
}
}
}
.theme .choices button,
.theme-queue a.button,
.theme-queue button {
padding: 8px 20px 9px;
min-width: 100px;
}
.sidebar a.button,
.sidebar button {
width: 100%;
&#commit:before {
top: 12px;
}
}
a.button.release-theme-lock {
bottom: 4px;
position: absolute;
right: 0;
top: -14px;
z-index: 10;
span {
top: 0;
}
&:active {
bottom: 2px;
top: -12px;
}
}
.header-search .search-button {
background-color: #57bd35;
background-image: url('../../img/icons/go-arrow.png');
border-radius: 0;
box-shadow: none;
height: 30px;
left: -6px;
&:hover,
&:focus {
box-shadow: inset 0 0 100px rgba(255, 255, 255, 0.2);
}
&:active {
box-shadow: none;
top: 0;
}
}
.html-rtl .header-search .search-button {
left: 6px;
}
.button.CTA {
background: #57bd35 !important;
font-size: 16px !important;
padding: 16px !important;
}
.invisible-upload {
padding: 5px 0;
}
.item .install {
border-radius: none;
background: none;
strong {
padding: 0;
margin: 10px 0 2px;
}
}
#popular-extensions {
margin-top: 0;
}
.addon-details .secondary,
.reviews .secondary,
.category-landing .secondary,
body:not(.developer-hub) section.secondary {
.highlight {
padding: 7px 0 0;
}
width: 180px;
}
.secondary {
margin: 0;
width: 21.49%;
h2, h3 {
color: #aaa;
font-family: inherit;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: 1.2;
margin: 0;
padding: 6px;
text-transform: uppercase;
}
li {
border: 0;
}
}
.island .pager {
display: none;
}
#featured-extensions {
padding-top: 0;
}
// NOTE: This was originally `.sidebar-breakout h3, h2` but I assumed the <h2>
// should be scoped.
.sidebar-breakout h2,
.sidebar-breakout h3 {
font: inherit;
font-size: 1.25rem;
}
#footer {
background-color: rgba(12, 153, 213, 1);
color: #666;
padding: 60px 0 5px 0;
width: 100%;
.links-footer a {
color: @link-on-color-bg !important;
}
}
#footer #lang_form {
margin: 12px 0 15px 27px;
label {
color: @link-on-white-bg;
display: block;
font-family: @primary-font;
font-size: 14px;
margin: 10px 0 4px;
text-transform: none;
}
}
.html-rtl #footer #lang_form {
float: left;
margin: 12px 27px 15px 0;
}
#footer #copyright p {
font-size: 85%;
margin-bottom: 0.5em;
}
.addon-details {
.primary,
.secondary {
background: none;
font-family: @primary-font;
}
.extra .button.disabled.not-available {
padding: 5px 5px 5px 25px;
}
}
.html-rtl {
.extra .button.disabled.not-available {
background-position: right 6px center;
padding: 5px 25px 5px 5px;
text-align: right;
}
}
#addon h1 {
color: #fff;
}
.version-number {
color: #ccc;
font-size: 0.5em;
}
// first block of details - icon, name, description...
.addon-details {
.primary:first-of-type {
min-height: 257px;
}
.secondary.addon-vitals {
position: relative;
z-index: 1;
}
.install-wrapper .install-button a.button.download {
margin-bottom: 10px;
}
}
#addon-description.prose {
font-family: @primary-font;
}
// DevHub
#devhub-promo h2 strong {
font-family: @primary-font;
}
#masthead h1 {
margin-top: -5px;
&.site-title.amo {
margin: -29px 20px 0 0;
.html-rtl & {
margin: -29px 0 0 20px;
}
}
}
.addon-vitals .widgets .widget {
color: #fff;
}
#addon-summary a,
.notice.c.author a {
color: @link-on-color-bg;
text-decoration: underline;
}
.notice.c.author a.download {
text-decoration: none;
}
.notice.c.author {
h3, p {
margin-left: 90px;
a {
color: @link-on-color-bg;
}
}
}
.notice {
background: 0;
border: 0;
border-radius: 0;
border-top: 1px solid #ccd6e3;
box-shadow: none;
}
// move elements in front of the background
.addon-details .primary .notice,
.addon-details .secondary.addon-vitals {
color: #fff;
z-index: 1;
}
.hovercard a h3,
.secondary li a,
#footer a:link,
#footer a:visited {
color: @link-on-white-bg;
}
/* Notice - underneath description (asking for contribution &/or showing dependencies )*/
.addon-details {
.hovercard.addon:hover {
.rating a {
color: @link-on-white-bg;
}
}
.primary .notice {
background: 0;
border: 0;
border-radius: 0;
border-top: 1px solid rgba(255,255,255,0.3);
box-shadow: none;
padding-bottom: 18px;
.hovercard.addon {
.rating b {
color: #fff;
}
&:hover,
&:focus {
.summary a h3,
.summary a .category.more-info,
.rating b {
color: @default-font-color;
}
}
.more .addon-summary {
display: none;
}
}
}
}
// Standard pages have the default
// text color. This is overridden for details
// pages below.
h3.author a,
h4.author a {
color: @default-font-color;
text-decoration: underline;
}
h3.author .transfer-ownership {
color: @link-on-color-bg;
text-decoration: none;
}
// font issues on addon-details
.addon-details {
.version-number,
h4.author,
h4.author a,
a.eula,
a.privacy-policy,
a.webext-permissions,
.notice h3,
.notice p,
.notice p a,
.notice p b,
.warning a,
#addon-summary,
#weekly-downloads .stats,
#reviews-link,
#daily-users a {
color: @link-on-color-bg;
}
h4.author a,
a.privacy-policy,
a.webext-permissions,
a.eula,
.vital a,
.warning a,
#contribution.notice p a,
#reviews-link {
text-decoration: underline;
}
#weekly-downloads .stats {
font-size: 1rem;
}
.version-number {
font-size: 0.39em;
.html-rtl& {
margin: 15px 4px 0 4px;
}
}
.notice h3 {
font-style: normal;
}
.addon-vitals .stats {
background: none;
}
.widgets {
display: none;
}
}
.restyle #promos.shown {
height: 271px;
min-height: 271px;
}
#side-nav.c.expanded {
margin-top: 0;
}
.home #side-nav.top {
margin-top: 0;
}
#main-wrapper,
#background-wrapper {
border-top: 1px solid #fff;
}
#background-wrapper.expanded {
height: 420px;
}
// Create a new collection pages/collections I'm following pages
.featured {
background: none;
border: 0;
}
.banner-box .featured {
background: #489615;
}
.featured-inner {
border: 0;
padding-top: 0;
}
// Create a new collection search
#ui-id-1 {
position: absolute !important; // because jQuery has set postion: relative with inline css
}
.ui-helper-hidden-accessible {
display: none;
}
// Navigation
.secondary .other-categories,
.secondary .categories {
background-color: transparent;
border: 0;
margin-top: 0;
padding-top: 0;
ul {
border-top: none;
padding: 0;
ul li {
margin: 0;
}
li {
padding: 0;
}
}
h3 a {
color: #aaa;
font-family: @primary-font;
font-size: 14px;
font-style: normal;
font-weight: 700;
text-transform: uppercase;
}
li a {
color: @link-on-white-bg;
display: block;
font-size: 12px;
font-weight: normal;
padding: 5px 6px;
position: relative;
text-decoration: none;
&:after {
color: rgba(0, 0, 0, 0.125);
content: '\203a';
font-family: Georgia;
font-weight: normal;
font-size: 18px;
position: absolute;
right: 6px;
top: 0;
}
&:hover {
background-color: #ecf5fe;
}
&:hover:after,
&:focus:after,
&.selected:after {
color: inherit;
}
}
}
.addons-column {
h3 a {
font-family: @primary-font;
}
}
.secondary .submit-theme {
border: 0;
h3, p {
font-family: @primary-font;
}
}
// Theme Page
.section > hgroup a,
.article.prose a {
color: @link-on-white-bg;
}
.xoxo a {
color: @link-on-white-bg;
}
.restyle .previews {
background: #f5f5f5;
// This breaks the preview panel out of the containing box, allowing
// it to be full-width.
// See: https://github.com/mozilla/addons-server/pull/1947
margin-left: ~"calc(-1 * ((100vw - 100%) / 2))";
padding: 30px 0;
width: 100vw;
.html-rtl& {
margin-right: ~"calc(-1 * ((100vw - 100%) / 2))";
}
.carousel {
margin: 0 auto;
max-width: @pageWidth;
padding: 6px 20px;
overflow-x: hidden;
overflow-y: visible;
position: relative;
}
.control {
color: @link-on-white-bg;
height: 170px;
line-height: 3.5;
&:hover {
color: @link-on-white-bg;
}
&.prev {
background: linear-gradient(to right, rgba(245, 245, 245, 1) 50%,
rgba(245, 245, 245, 0));
}
&.next {
background: linear-gradient(to left, rgba(245, 245, 245, 1) 50%,
rgba(245, 245, 245, 0));
}
&.disabled {
opacity: 0;
transition: opacity 100ms linear;
}
}
}
// If the viewport is smaller than the min-width of the page weirdness
// happens, so we go back to a non-full-width screenshot then.
// See: https://github.com/mozilla/addons-server/issues/1983
@media (max-width: @pageWidth) {
.restyle .previews {
margin-left: 0;
width: 100%;
}
}
@media (max-width: @containerWidth) {
.header-bg {
// This should be a negative result so this order is intentional :-)
margin-left: (@pageWidth - @containerWidth) / 2;
}
}
// lightbox
#lightbox {
background: rgba(0, 0, 0, 0.75);
section {
border: 0;
border-radius: 0;
}
.close {
border-radius: 0;
}
}
.category-landing {
.addons-column {
ul li {
overflow: visible;
}
}
// Featured add-ons in a category listing page.
// This fixes https://github.com/mozilla/addons-server/issues/2025
#featured-addons {
background: none;
border: 0;
.featured-inner {
background: none;
border: 0;
padding-left: 0;
padding-right: 0;
}
ul {
margin: 0;
padding: 0 0 40px;
width: auto;
}
}
.view-all {
text-align: left;
a:link,
a:visited {
color: @link-on-white-bg;
}
}
}
.category-landing .featured.three-col .addon.hovercard {
&:hover {
height: 320px;
margin-bottom: -320px;
}
.addon-writeup {
display: none;
}
.extra {
max-width: 200px;
.button.not-available {
font-size: 12px;
float: none;
margin-top: -10px;
min-width: 0;
padding: 5px 5px 5px 20px;
}
}
}
.category-landing .featured.three-col .addon.hovercard.feature {
&:focus,
&:hover {
height: auto;
}
}
.extra .button.disabled.not-available {
background-color: #fff;
border: 1px solid #ebebeb;
border-radius: 0;
box-shadow: none;
color: @default-font-color;
font-size: 1rem;
font-weight: normal;
margin: 0;
padding: 5px 5px 5px 25px;
text-align: left;
.addon-description-header & {
border: 0;
}
.addon.hovercard & {
border: 1px solid #ebebeb;
}
.more-versions a {
color: #0996f8 !important; //need to override .disabled a[href] color: #888!important; rule
}
}
.manage-button {
margin: 1em 0 0;
}
// Install buttons
.install-button .concealed.CTA {
display: block !important;
}
.extra .button.not-available {
background: #fbfbfb url(../../img/impala/no.png) 6px 50% no-repeat;
border: 1px solid #b1b1b1;
border-radius: 3px;
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.1),
inset 0 -2px 0 0 rgba(30, 30, 30, 0.25);
color: #b1b1b1;
cursor: default;
font-size: 14px;
padding-left: 20px;
padding-right: 5px;
pointer-events: all;
margin-bottom: 5px;
white-space: normal;
text-shadow: none;
}
.addon.hovercard,
.items .item.incompatible {
.extra .button.not-available {
display: none;
float: right;
}
&:focus .extra .button.not-available,
&:hover .extra .button.not-available {
display: block !important;
}
.install-shell .install {
display: inline-block;
}
.d2c-reasons-help {
margin: 0 0 0 -8px;
}
}
#addon .more-versions a {
color: @link-on-white-bg;
}
.versions-list .more-versions {
display: none; // Hide the more versions link on the versions list page.
}
// Contribute button fixes
.notice.author .aux {
text-align: right;
#contribute-button {
text-decoration: none;
}
.install-button {
margin-right: 0;
.add {
margin-top: 5px;
text-decoration: none;
}
}
}
// (new) Contribution url button
#contribution-url-button {
text-decoration: none;
}
// (new) Contribution url button
.notice.c.author .button-wrapper {
float:right;
}
.html-rtl .notice.c.author .button-wrapper {
float:right;
}
.notice.c.author {
h3,
p {
margin-left: 0;
margin-right: 160px;
&.suggestion {
margin-right: 0;
}
}
}
// Fix theme button alignment
.theme .choices {
float: none;
}
.theme-queue a.button:active,
.sidebar a.button:active,
.theme-queue button:active,
.sidebar button:active {
border: 0;
box-shadow: inset 1px 1px 1px #fff;
}
// Developer Hub
.developer-hub {
.addon-submission-process {
padding-top: 0;
form {
margin-top: 0;
}
}
}
#edit-addon h3 a {
top: 0;
}
.download-anyway {
display: none; // Shown by buttons.js
}
.action-needed {
overflow: auto;
}
#review-box form {
height: auto;
min-height: 270px;
}
#contribute-box,
.install-note,
.modal,
.popup {
border: 1px solid grey;
border-radius: 0;
box-shadow: none;
}
.install-note.left {
&::before {
border: 6px solid transparent;
border-bottom-color: grey;
right: 71px;
top: -13px;
}
&::after {
border-bottom-width: 6px;
right: 72px;
top: -11px;
}
}
.contrib-overlay,
.modal-overlay {
background: rgba(0, 0, 0, 0.7);
}
.primary.island {
border: 1px solid #ebebeb;
margin-top: 10px;
}
.prettyform .listing-footer {
background: none;
border-top: 0;
}
.prettyform .listing-footer {
background: none;
}
.restyle.statistics {
#page {
max-width: @pageWidth;
min-width: @pageWidth;
}
.primary {
float: left;
margin-left: 0;
width: 74%;
.html-rtl& {
margin-right: 0;
}
}
.stat-criteria {
overflow: auto;
.island.criteria {
float: left;
}
}
.notification-box {
clear: both;
}
}
/* Reviewer pages */
body.reviewer-tools {
.site-title strong {
color: @link-on-color-bg;
}
.reviewer-menu {
margin-top: 30px;
width: 660px;
}
.pill-nav-amo {
border-radius: 0;
background-color: transparent;
background-image: none;
}
.pill-nav-amo a {
color: @link-on-color-bg;
border-radius: 0;
}
.pill-nav-amo a.selected {
background-color: #ffffff;
color: @link-on-white-bg;
background-image: none;
}
#navbar {
border: none;
overflow: visible;
}
#navbar ul li.top {
border-right: 0;
padding: 0 30px 0;
text-align: center;
}
#navbar > ul > li > ul {
background-color: #fff;
border: none;
border-radius: 0;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
}
#navbar > ul li > ul li {
background-color: #fff;
background-image: none;
color: @default-font-color;
border-bottom: none;
text-align: left;
a, a:link, a:visited {
color: @default-font-color;
border-bottom: none;
}
a:hover {
background: #ebf4fe;
}
}
#navbar li.top:hover, #navbar li.top.selected {
background-image: none;
text-decoration: underline;
}
#navbar li.top a.controller {
border-right: none;
}
.daily-message .featured-inner {
border: @detail-border;
}
.listing-header {
background: none;
background-color: #ecf5fe;
background-image: none;
text-align: center;
border-bottom: 0;
border-radius: 0;
}
#reviewers-stats-charts, #reviewers-stats-charts-unlisted, #reviewers-stats {
border: @detail-border;
border-radius: 0;
}
.reviewer-stats-dark {
text-align: center;
background-color: transparent;
}
div.reviewer-waiting {
border-radius: 0;
border: @detail-border;
}
.waiting_new, .waiting_med, .waiting_old {
box-shadow: none;
}
.reviewer-stats-table:first-child > div {
border-left-width: 0;
}
.reviewer-stats-table .int {
color: @default-font-color;
}
#reviewers_main, .section {
.results {
border: @detail-border;
background-color: #ecf5fe;
border-radius: 0;
.results-inner {
border: none;
}
}
}
#reviewers-score-bar {
background: none;
border-radius: 0;
border: @detail-border;
box-shadow: none;
}
div.section {
ul.tabnav {
li a {
padding-bottom: 5px;
background-color: #ecf5fe;
border-radius: 0;
color: @link-on-white-bg;
}
li.selected a {
background-color: #ffffff;
border-color: #ebebeb;
color: @default-font-color;
}
}
.queue-outer {
border-radius: 0;
border: @detail-border;
.queue-inner {
border-radius: 0;
border: none;
.data-grid th.ordered {
background: #ffffff;
}
a,
a:visited {
color: @link-on-white-bg;
}
}
}
.queue-search form #id_q {
border-radius: 0;
}
#queue-island {
border: @detail-border;
}
#addon.primary {
#addon-summary {
a {
color: @link-on-white-bg;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
}
.article {
border: @detail-border;
border-radius: 0;
}
div#review-actions {
border: @detail-border;
border-radius: 0;
#review-actions-form {
border: none;
border-radius: 0;
}
.action_nav {
background: none;
background-color: #ecf5fe;
#id_action>* {
text-shadow: none;
border: none;
background: none;
color: @link-on-white-bg;
}
#id_action>*.on-tab {
color: @default-font-color;
background-color: #ffffff;
border-top: none;
}
#id_action>*:first-child,
#id_action>*:last-child {
border-radius: 0;
border-left: none;
}
}
}
.whiteboard {
border: @detail-border;
border-radius: 0;
}
}
.secondary {
width: 15%;
a.thumbnail.thumbnail {
border: @detail-border;
}
}
#addon {
.object-lead {
background: none;
}
}
}
}
.listing .item {
.desc {
color: #777;
font-size: 1rem;
}
&.incompatible {
.action {
opacity: 1;
.info,
.install.clickHijack .install-button > .button {
opacity: 0.4;
}
}
}
}
.listing .item:not(.incompatible) .install-shell {
visibility: visible;
}
.item-info .install-button .button {
max-width: 200px;
white-space: normal;
&.download {
color: @link-on-color-bg;
text-shadow: @dark-gray 1px 1px;
}
}
.collection-add-dropdown,
.collection-rate-dropdown {
width: auto;
}
// Platform-specific button logic
body.android .install-shell .platform.linux,
body.android .install-shell .platform.mac,
body.android .install-shell .platform.windows,
body.linux .install-shell .platform.android,
body.linux .install-shell .platform.mac,
body.linux .install-shell .platform.windows,
body.mac .install-shell .platform.android,
body.mac .install-shell .platform.linux,
body.mac .install-shell .platform.windows,
body.windows .install-shell .platform.android,
body.windows .install-shell .platform.linux,
body.windows .install-shell .platform.mac {
// We're overriding another !important, which we also can't remove :-(
display: none !important;
}
#search-facets .facets .facet > ul {
max-height: 100%;
overflow-y: visible;
}
.thunderbird .listing-grid .install-shell {
display: block;
}
// This specificity is required to avoid using `!important`
.restyle nav.paginator {
text-align: center;
p {
width: auto;
}
.num {
float: left;
}
.rel {
display: inline-block;
float: none;
}
.pos {
float: right;
}
}
// Hide the datepicker display on stats at the bottom of the page.
#ui-datepicker-div {
display: none;
}
// Override weird impala styles that make hovers for incompatible add-ons
// jump around (https://github.com/mozilla/addons-server/issues/3203)
.addon.hovercard,
.items .item.incompatible {
.extra .button.not-available {
display: inline-block;
visibility: hidden;
}
&:hover,
&:focus {
.extra .button.not-available {
visibility: visible;
}
}
}
.webext-permissions.badge {
display: block;
img {
height: 1.1em;
margin-right: 0.25em;
.html-rtl & {
margin-left: 0.25em;
}
}
}
#webext-permissions {
ul {
margin-left: 1.5em;
.html-rtl & {
margin-right: 1.5em;
}
li {
list-style: circle;
details {
summary {
list-style: none;
}
li {
list-style-type: disc;
}
}
details[open] summary:after {
content: " \25b2"
}
details summary:after {
content: " \25bc"
}
}
}
h3 {
font-size: larger;
margin-top: 1em;
}
.prose {
img {
float: left;
margin: 10px;
}
}
}
div.detailed {
display: inline-block;
vertical-align: middle;
}