ArticleTemplates/assets/scss/pillar/_colour.scss (376 lines of code) (raw):

// Note the variable naming differences between the app templates and MAPI: // App templates name — MAPI name // $p-kicker — main and pillar // $p-feature-headline — featureHeadline // $p-soft — no correspondence // $p-inverted — mediaMain and elementBackground // $p-liveblog-background — liveblogBackground // in addition, MAPI includes pillar-toned liveblogBackground and liveblogMain @mixin pillar-colour($p-kicker, $p-feature-headline, $p-soft, $p-inverted, $p-liveblog-background, $p-media-main) { .comment-count a, .element-pullquote blockquote { color: $p-kicker; } .avatar { background-color: $p-inverted; } .prose .element-pullquote blockquote { color: $p-kicker; &:before, &:after, footer { color: $p-kicker; } } .alerts { border-color: rgba($p-kicker, .5); color: $p-kicker; } .more--live-blogs .more__button, .more--live-blogs-blocks .more__button { background-color: $p-kicker; &:active { background-color: darken($p-kicker, 10%); } } .comments__ordering { color: color(brightness-0); &:active { color: color(brightness-0); } } .comment__report, .comments .touchpoint--primary { .touchpoint__button { background-color: color(brightness-0); } &:active .touchpoint__button { background-color: color(brightness-0); } .touchpoint__label { color: color(brightness-0); } &:active .touchpoint__label { color: color(brightness-0); } } .comments__viewmore { .comments__viewmore--label { color: color(brightness-0); } &:active .comments__viewmore--label { color: color(brightness-0); } } .comment__recommend { &.increase .touchpoint__button { color: color(brightness-100); background-color: $p-kicker; border-color: transparent; } } .more.more--comments .more__label { color: $p-kicker; border: solid 1px rgba($p-kicker, .5); &:active { color: darken($p-kicker, 10%); border-color: rgba(darken($p-kicker, 10%), .5); } } // Maybe make this bit less smart and more manual later? @include pillar-reversible($p-kicker, $p-feature-headline, $p-soft, $p-inverted); // Feature, Review, Recipe, Interview overrides &.garnett--type-feature, &.garnett--type-review, &.garnett--type-recipe, &.garnett--type-interview { .headline { color: $p-feature-headline; } } // Analysis overrides &.garnett--type-analysis { .headline { background-image: repeating-linear-gradient(to bottom, transparent, transparent calc(3.6rem - 1px), rgba($p-kicker, .5)); @include mq($from: col2) { background-image: repeating-linear-gradient(to bottom, transparent, transparent calc(4.4rem - 1px), rgba($p-kicker, .5)); } } } // Immersive overrides &.garnett--type-immersive { .article__series, .byline__author > a { color: $p-inverted; } .article__series { background-color: $p-kicker; } .article__series-copy { color: color(brightness-100); a { color: color(brightness-100); } } &.tone--special .article__series-copy { color: color(tone-highlight); a { color: color(brightness-100); } } .section__rule { + p.has__dropcap { @include immersive-dropcap($p-kicker); } } } // Numbered list displayHint &.display-hint--numberedList { .article__header { .article-kicker, .headline { background-color: $p-kicker; color: color(brightness-100); } } h2 strong { color: $p-kicker; } } // play buttons .audio-player__button.touchpoint--primary .touchpoint__button, .element-placeholder .element-placeholder__button .touchpoint__button, .element-youtube .element-placeholder__button .touchpoint__button, .audio-player__slider__knob { background-color: color(tone-highlight); } .audio-player__container_new .audio-player__button.touchpoint--primary .touchpoint__button, .listen-to-article__container .audio-player__button.touchpoint--primary .touchpoint__button { background-color: $p-media-main; } .audio-player__container_new .audio-player__button--loading .pulse, .listen-to-article__container .audio-player__button--loading .pulse { &:before, &:after, & { background-color: $p-media-main; } } .element-placeholder .element-placeholder__button .touchpoint__button, .element-youtube .element-placeholder__button .touchpoint__button, .audio-player__button.touchpoint--primary .touchpoint__button { &:before { color: color(brightness-7); } } .element-placeholder .element-placeholder__button .touchpoint__label, .element-youtube .element-placeholder__button .touchpoint__label { color: color(brightness-100); } // Media overrides &.garnett--type-media { @include pillar-reversible($p-inverted, $p-kicker, $p-feature-headline, $p-soft); &:not(.garnett--type-guardianlabs) .byline { color: color(brightness-100); } } // Live overrides &.garnett--type-live.is-live { a.touchpoint { &:active { color: $p-kicker; } } .alerts { span.following[data-icon] { &:before { color: $p-kicker; } } span.not-following[data-icon] { border: 1px solid $p-kicker; &:before { color: $p-kicker; } } } .article__header, .section, .article-kicker, .headline, .main-media { background-color: $p-kicker; } .avatar { background-color: $p-feature-headline; } @include mq($from: col4) { .article__header { background-color: color(brightness-96); } } &.garnett--pillar-sport .sponsorship { background-color: color(news-soft); &__about-uri { color: color(brightness-7); } } &.garnett--pillar-news .sponsorship { background-color: color(tone-live); &__about-uri, &__formatted-sponsor-name, &__formatted-sponsor-name a { color: color(brightness-100); } } .standfirst { color: color(brightness-96); @include text-underline(color(brightness-100), color(brightness-93)); } // Template specific styles .article--liveblog { .prose table, .table { border-top-color: $p-kicker; } .prose .element-pullquote { blockquote { footer, &::after, &::before { color: $p-kicker; } } } .standfirst, .standfirst__inner, .meta, .main-media { background-color: $p-liveblog-background; } .meta__published__comments { border-left-color: rgba(color(tone-sandy-light), .5); } } .key-events { &__title { color: $p-kicker; } &__time, &__link, &__link h2 { .key-event--highlighted & { color: $p-kicker !important; } } } .block--live-summary { .prose p, .prose li { @include text-underline($p-kicker, $p-feature-headline); } } } &.garnett--type-live, &.garnett--type-article { .key-events { a { color: $p-kicker !important; } } } .block--live-key-event, .block--live-summary { border-top-color: $p-kicker; .block__title .highlight { background-color: color(tone-highlight); padding: 0.25rem 0.125rem; } } // quiz styles .element-atom { .quiz { .question__wrapper { border-top: 2px solid $p-kicker; } .question__text { &::before { color: $p-kicker; } } .quiz-scores, .quiz-results { border-color: $p-kicker; border-top: 2px solid $p-kicker; } .quiz-scores .quiz-scores__score { border-top: 2px solid $p-kicker; background: $p-feature-headline; color: $p-inverted; } &.personality-quiz { .question__wrapper { border-top: 2px solid color(brightness-7); } .question__text { &::before { color: color(brightness-7); } } .quiz-scores, .quiz-results { border-color: color(brightness-7); border-top: 2px solid color(brightness-7); } } } } @media (prefers-color-scheme: dark) { @include personality-quiz-dark-mode; } //for android .body .dark-mode-on { @include personality-quiz-dark-mode; } .prose, .article__header { .bullet { @include faux-bullet($color: $p-kicker, $right-space: 4px); } ul > li { @include faux-bullet(); } } &.garnett--type-media, &.garnett--type-guardianlabs { .article__header, .prose { ul > li, .bullet { @include faux-bullet($color: color(brightness-60)); } } } } @mixin personality-quiz-dark-mode { .element-atom { .quiz { &.personality-quiz { .question__wrapper { border-top: 2px solid #707070; } .question__text { &::before { color: #707070; } } .quiz-scores, .quiz-results { border-color: #707070; border-top: 2px solid #707070; color: color(brightness-86); } } } } } // CSS for reversible pillar colours, this means we can // use $kicker colours to mean $p-kicker or $p-inverted // depending on context @mixin pillar-reversible($kicker, $feature, $soft, $inverted) { &:not(.garnett--type-guardianlabs) { // Section and series labels above headline .article-kicker { color: $kicker; } // Author names .byline, .headline__byline, .byline__author, .byline__author a, .touch-gallery__caption__caption a, .gallery-caption a, .sponsorship__about-uri { color: $kicker; } // in-article .prose { @include text-underline($kicker, $feature); } .standfirst { @include text-underline($kicker, $feature, $bottom-space: 0); } table { border-top-color: $soft; } } }