302 lines
5.9 KiB
SCSS
302 lines
5.9 KiB
SCSS
|
// Featured image styles
|
||
|
|
||
|
.site-header.featured-image {
|
||
|
|
||
|
/* Hide overflow for overflowing featured image */
|
||
|
overflow: hidden;
|
||
|
|
||
|
/* Need relative positioning to properly align layers. */
|
||
|
position: relative;
|
||
|
|
||
|
/* Add text shadow to text, to increase readability. */
|
||
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
|
||
|
|
||
|
/* Set white text color when featured image is set. */
|
||
|
.site-branding .site-title,
|
||
|
.site-branding .site-description,
|
||
|
.main-navigation a:after,
|
||
|
.main-navigation .main-menu > li.menu-item-has-children:after,
|
||
|
.main-navigation li,
|
||
|
.social-navigation li,
|
||
|
.entry-meta,
|
||
|
.entry-title {
|
||
|
color: $color__background-body;
|
||
|
}
|
||
|
|
||
|
.main-navigation a,
|
||
|
.main-navigation a + svg,
|
||
|
.social-navigation a,
|
||
|
.site-title a,
|
||
|
.site-featured-image a {
|
||
|
color: $color__background-body;
|
||
|
transition: opacity $link_transition ease-in-out;
|
||
|
|
||
|
&:hover,
|
||
|
&:active,
|
||
|
&:hover + svg,
|
||
|
&:active + svg {
|
||
|
color: $color__background-body;
|
||
|
opacity: 0.6;
|
||
|
}
|
||
|
|
||
|
&:focus,
|
||
|
&:focus + svg {
|
||
|
color: $color__background-body;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.main-navigation .sub-menu a {
|
||
|
opacity: inherit;
|
||
|
}
|
||
|
|
||
|
/* add focus state to social media icons */
|
||
|
.social-navigation a {
|
||
|
&:focus {
|
||
|
color: $color__background-body;
|
||
|
opacity: 1;
|
||
|
border-bottom: 1px solid $color__background-body;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.social-navigation svg,
|
||
|
.site-featured-image svg {
|
||
|
/* Use -webkit- only if supporting: Chrome < 54, iOS < 9.3, Android < 4.4.4 */
|
||
|
-webkit-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35) );
|
||
|
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35) );
|
||
|
}
|
||
|
|
||
|
/* Entry header */
|
||
|
.site-featured-image {
|
||
|
|
||
|
/* First layer: grayscale. */
|
||
|
.post-thumbnail img {
|
||
|
height: auto;
|
||
|
left: 50%;
|
||
|
max-width: 1000%;
|
||
|
min-height: 100%;
|
||
|
min-width: 100vw;
|
||
|
position: absolute;
|
||
|
top: 50%;
|
||
|
transform: translateX(-50%) translateY(-50%);
|
||
|
width: auto;
|
||
|
z-index: 1;
|
||
|
|
||
|
@supports ( object-fit: cover ) {
|
||
|
height: 100%;
|
||
|
left: 0;
|
||
|
object-fit: cover;
|
||
|
top: 0;
|
||
|
transform: none;
|
||
|
width: 100%;
|
||
|
}
|
||
|
|
||
|
/* When image filters are active, make it grayscale to colorize it blue. */
|
||
|
.image-filters-enabled & {
|
||
|
filter: grayscale(100%);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.entry-header {
|
||
|
|
||
|
margin-top: calc( 4 * #{$size__spacing-unit});
|
||
|
margin-bottom: 0;
|
||
|
margin-left: 0;
|
||
|
margin-right: 0;
|
||
|
|
||
|
@include media (tablet) {
|
||
|
|
||
|
margin-left: $size__site-margins;
|
||
|
margin-right: $size__site-margins;
|
||
|
}
|
||
|
|
||
|
.entry-title {
|
||
|
|
||
|
&:before {
|
||
|
background: $color__background-body;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Entry meta */
|
||
|
|
||
|
.entry-meta {
|
||
|
|
||
|
font-weight: 500;
|
||
|
|
||
|
> span {
|
||
|
|
||
|
margin-right: $size__spacing-unit;
|
||
|
display: inline-block;
|
||
|
|
||
|
&:last-child {
|
||
|
margin-right: 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
a {
|
||
|
|
||
|
@include link-transition;
|
||
|
color: currentColor;
|
||
|
|
||
|
&:hover {
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.svg-icon {
|
||
|
position: relative;
|
||
|
display: inline-block;
|
||
|
vertical-align: middle;
|
||
|
margin-right: 0.5em;
|
||
|
}
|
||
|
|
||
|
.discussion-avatar-list {
|
||
|
display: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.has-discussion {
|
||
|
|
||
|
@include media (tablet) {
|
||
|
|
||
|
.entry-meta {
|
||
|
display: flex;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.entry-title {
|
||
|
padding-right: calc(1 * (100vw / 12) + #{$size__spacing-unit});
|
||
|
}
|
||
|
|
||
|
.entry-meta .comment-count {
|
||
|
position: absolute;
|
||
|
right: 0;
|
||
|
}
|
||
|
|
||
|
.entry-meta .discussion-avatar-list {
|
||
|
display: block;
|
||
|
position: absolute;
|
||
|
bottom: 100%;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Custom Logo Link */
|
||
|
|
||
|
.custom-logo-link {
|
||
|
|
||
|
background: $color__background-body;
|
||
|
box-shadow: 0 0 0 0 rgba($color__background-body, 0);
|
||
|
|
||
|
&:hover,
|
||
|
&:active,
|
||
|
&:focus {
|
||
|
box-shadow: 0 0 0 2px rgba($color__background-body, 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Make sure important elements are above pseudo elements used for effects. */
|
||
|
.site-branding {
|
||
|
position: relative;
|
||
|
z-index: 10;
|
||
|
}
|
||
|
|
||
|
.site-featured-image .entry-header {
|
||
|
position: relative;
|
||
|
z-index: 9;
|
||
|
}
|
||
|
|
||
|
/* Set up image filter layer positioning */
|
||
|
.site-branding-container:after,
|
||
|
.site-featured-image:before,
|
||
|
.site-featured-image:after,
|
||
|
&:after {
|
||
|
display: block;
|
||
|
position: absolute;
|
||
|
top: 0; left: 0;
|
||
|
content: "\020";
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
}
|
||
|
|
||
|
/* Background & Effects */
|
||
|
/* Shared background settings between pseudo elements. */
|
||
|
background-position: center;
|
||
|
background-repeat: no-repeat;
|
||
|
background-size: cover;
|
||
|
|
||
|
/* The intensity of each blend mode is controlled via layer opacity. */
|
||
|
|
||
|
/* Second layer: screen. */
|
||
|
.image-filters-enabled & .site-featured-image:before {
|
||
|
background: $color__link;
|
||
|
mix-blend-mode: screen;
|
||
|
opacity: 0.1;
|
||
|
}
|
||
|
|
||
|
/* Third layer: multiply. */
|
||
|
/* When image filters are inactive, a black overlay is added. */
|
||
|
.site-featured-image:after {
|
||
|
background: #000;
|
||
|
mix-blend-mode: multiply;
|
||
|
opacity: .7;
|
||
|
|
||
|
/* When image filters are active, a blue overlay is added. */
|
||
|
.image-filters-enabled & {
|
||
|
background: $color__link;
|
||
|
opacity: .8;
|
||
|
z-index: 3;
|
||
|
|
||
|
/* Browsers supporting mix-blend-mode don't need opacity < 1 */
|
||
|
@supports (mix-blend-mode: multiply) {
|
||
|
opacity: 1;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Fourth layer: overlay. */
|
||
|
.image-filters-enabled & .site-branding-container:after {
|
||
|
background: rgba(0, 0, 0, 0.35);
|
||
|
mix-blend-mode: overlay;
|
||
|
opacity: 0.5;
|
||
|
z-index: 4;
|
||
|
|
||
|
/* Browsers supporting mix-blend-mode can have a light overlay */
|
||
|
@supports (mix-blend-mode: overlay) {
|
||
|
background: rgba($color__background-body, 0.35);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Fifth layer: readability overlay */
|
||
|
&:after {
|
||
|
background: #000;
|
||
|
/**
|
||
|
* Add a transition to the readability overlay, to add a subtle
|
||
|
* but smooth effect when resizing the screen.
|
||
|
*/
|
||
|
transition: opacity 1200ms ease-in-out;
|
||
|
opacity: 0.7;
|
||
|
z-index: 5;
|
||
|
|
||
|
/* When image filters are active, a blue overlay is added. */
|
||
|
.image-filters-enabled & {
|
||
|
background: mix($color__link, black, 12%);
|
||
|
opacity: 0.38;
|
||
|
|
||
|
@include media(tablet) {
|
||
|
opacity: 0.18;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
::-moz-selection {
|
||
|
background: rgba($color__background-body, 0.17);
|
||
|
}
|
||
|
|
||
|
::selection {
|
||
|
background: rgba($color__background-body, 0.17);
|
||
|
}
|
||
|
}
|