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); | ||
|  | 	} | ||
|  | } |