summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'themes/twentynineteen/sass/site/header')
-rw-r--r--themes/twentynineteen/sass/site/header/_site-featured-image.scss301
-rw-r--r--themes/twentynineteen/sass/site/header/_site-header.scss134
2 files changed, 435 insertions, 0 deletions
diff --git a/themes/twentynineteen/sass/site/header/_site-featured-image.scss b/themes/twentynineteen/sass/site/header/_site-featured-image.scss
new file mode 100644
index 00000000..12599438
--- /dev/null
+++ b/themes/twentynineteen/sass/site/header/_site-featured-image.scss
@@ -0,0 +1,301 @@
+// 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);
+ }
+}
diff --git a/themes/twentynineteen/sass/site/header/_site-header.scss b/themes/twentynineteen/sass/site/header/_site-header.scss
new file mode 100644
index 00000000..22ab1034
--- /dev/null
+++ b/themes/twentynineteen/sass/site/header/_site-header.scss
@@ -0,0 +1,134 @@
+// Site header
+
+.site-header {
+ padding: 1em;
+
+ &.featured-image {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ min-height: 90vh;
+
+ .site-branding-container {
+ margin-bottom: auto;
+ }
+ }
+
+ @include media(tablet) {
+ margin: 0;
+ padding: 3rem 0;
+
+ &.featured-image {
+ min-height: 100vh;
+ margin-bottom: 3rem;
+ }
+ }
+}
+
+// Site branding
+
+.site-branding {
+
+ color: $color__text-light;
+ position: relative;
+
+ @include media(tablet) {
+ margin: 0 $size__site-margins;
+ }
+}
+
+// Site logo
+
+.site-logo {
+
+ position: relative;
+ z-index: 999;
+ margin-bottom: calc(.66 * #{$size__spacing-unit});
+
+ @include media(tablet) {
+ margin-bottom: 0;
+ position: absolute;
+ right: calc(100% + (1.25 * #{$size__spacing-unit}));
+ top: 4px; // Accounts for box-shadow widths
+ z-index: 999;
+ }
+
+ .custom-logo-link {
+ border-radius: 100%;
+ box-sizing: content-box;
+ box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
+ display: block;
+ width: 50px;
+ height: 50px;
+ overflow: hidden;
+ transition: box-shadow $background_transition ease-in-out;
+
+ .custom-logo {
+ min-height: inherit;
+ }
+
+ &:hover,
+ &:active,
+ &:focus {
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 1);
+ }
+
+ @include media(tablet) {
+ width: 64px;
+ height: 64px;
+ }
+ }
+}
+
+// Site title
+
+.site-title {
+ margin: auto;
+ display: inline;
+ color: $color__text-main;
+
+ a {
+ color: $color__text-main;
+
+ &:link,
+ &:visited {
+ color: $color__text-main;
+ }
+
+ &:hover {
+ color: $color__text-hover;
+ }
+ }
+
+ .featured-image & {
+ margin: 0;
+
+ @include media(tablet) {
+ display: inline-block;
+ }
+ }
+
+ /* When there is no description set, make sure navigation appears below title. */
+ + .main-navigation {
+ display: block;
+ }
+
+ @include media(tablet) {
+ display: inline;
+ }
+
+ &:not(:empty) + .site-description:not(:empty):before {
+ content: "\2014";
+ margin: 0 .2em;
+ }
+}
+
+// Site description
+
+.site-description {
+
+ display: inline;
+ color: $color__text-light;
+ font-weight: normal;
+ margin: 0;
+}