// 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 { @include postContentMaxWidth() margin-top: calc( 4 * #{$size__spacing-unit}); margin-bottom: 0; margin-left: 0; margin-right: 0; @include media (tablet) { margin-left: auto; margin-right: auto; } .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%; } } } } } /* 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); } }