102 | -------------------------------------------------------------------------------- /assets/js/global.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Theme javascript functions file. 3 | */ 4 | 5 | ( function( $ ) { 6 | "use strict"; 7 | 8 | var 9 | html = $( 'html' ), 10 | body = $( 'body' ), 11 | searchToggle = $( '#search-toggle' ), 12 | searchOverlay = $( '#site-search-overlay' ), 13 | searchOpen = ( 'site-search-open' ), 14 | nightToggle = $( '#night-mode-toggle' ), 15 | nightActive = ( 'night-mode' ); 16 | 17 | /** 18 | * Removes "no-js" and adds "js" classes to the body tag. 19 | */ 20 | (function(html){html.className = html.className.replace( /\bno-js\b/,'js' );})(document.documentElement); 21 | 22 | /** 23 | * Test if inline SVGs are supported. 24 | * @link https://github.com/Modernizr/Modernizr/ 25 | */ 26 | function supportsInlineSVG() { 27 | var div = document.createElement( 'div' ); 28 | div.innerHTML = ''; 29 | return 'http://www.w3.org/2000/svg' === ( 'undefined' !== typeof SVGRect && div.firstChild && div.firstChild.namespaceURI ); 30 | } 31 | 32 | /* Document Ready */ 33 | $( document ).ready( function () { 34 | 35 | supportsInlineSVG(); 36 | 37 | if ( true === supportsInlineSVG() ) { 38 | document.documentElement.className = document.documentElement.className.replace( /(\s*)no-svg(\s*)/, '$1svg$2' ); 39 | } 40 | 41 | /* Night Mode */ 42 | nightToggle.on( 'click', function( e ) { 43 | 44 | if ( html.hasClass( nightActive ) ) { 45 | html.removeClass( nightActive ); 46 | localStorage.setItem( 'night-mode', 'false' ); 47 | } else { 48 | html.addClass( nightActive ); 49 | localStorage.setItem( 'night-mode', 'true' ); 50 | } 51 | }); 52 | 53 | /* Search */ 54 | searchToggle.on( 'click', function( e ) { 55 | e.preventDefault(); 56 | 57 | if ( body.hasClass( searchOpen ) ) { 58 | body.removeClass( searchOpen ); 59 | } else { 60 | body.addClass( searchOpen ); 61 | $( '#site-search .search-field' ).focus(); 62 | } 63 | }); 64 | 65 | /* Search overlay */ 66 | searchOverlay.on( 'click', function( e ) { 67 | e.preventDefault(); 68 | body.removeClass( searchOpen ); 69 | }); 70 | 71 | // Runs for auto-post-load. 72 | $( '.nav-previous' ).find( 'a' ).attr( 'rel', 'prev' ); 73 | }); 74 | 75 | // Runs when auto-post-load is triggered. 76 | $( document.body ).on( 'alnp-post-loaded', function( e, post_title, post_url, post_ID, post_count ) { 77 | $( '.nav-previous' ).find( 'a' ).attr( 'rel', 'prev' ); 78 | $( '.entry-footer' ).addClass( 'alnp-post-loaded' ); 79 | } ); 80 | 81 | } )( jQuery ); 82 | 83 | ! ( function( e, t, n ) { 84 | 85 | t.addEventListener( 'DOMContentLoaded', function() { 86 | 87 | function i( e, i ) { 88 | var r = 2 < arguments.length && arguments[2] !== n ? arguments[2] : 'click'; 89 | var c = t.querySelectorAll( e ); 90 | 91 | if ( e && i ) { 92 | 93 | c && c.forEach( function( e ) { 94 | e.addEventListener( r, function() { 95 | var e = 'true' === this.getAttribute( i ); 96 | this.setAttribute( i, String( ! e ) ); 97 | }); 98 | }); 99 | } 100 | } 101 | 102 | i( '[aria-checked]', 'aria-checked' ); 103 | 104 | }); 105 | 106 | }( window, document ) ); 107 | -------------------------------------------------------------------------------- /scss/blocks/_pullquote.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-pullquote { 3 | @include blockMobileDisplay(); 4 | border-color: $black; 5 | padding-bottom: 2.5em; 6 | padding-top: 2.5em; 7 | border-width: 3px; 8 | 9 | &.alignwide { 10 | @include blockWideDisplay(); 11 | } 12 | 13 | &.alignfull { 14 | padding-left: 20px; 15 | padding-right: 20px; 16 | 17 | p, 18 | cite { 19 | display: block; 20 | margin-left: auto; 21 | margin-right: auto; 22 | max-width: $content__width--wide; 23 | } 24 | } 25 | 26 | blockquote { 27 | border: none !important; 28 | margin: 0; 29 | max-width: none; 30 | padding: 0 !important; 31 | text-align: center; 32 | word-break: break-word; 33 | 34 | p { 35 | margin-bottom: 0; 36 | 37 | @media only screen and (min-width: 600px) { 38 | padding-left: 20px; 39 | padding-right: 20px; 40 | } 41 | } 42 | 43 | &:not([class*="text-color"]) { 44 | color: $color__text-main; 45 | 46 | cite { 47 | color: $gray; 48 | } 49 | } 50 | } 51 | 52 | p { 53 | font-family: $font__heading; 54 | font-size: $font__size-mdlrg; 55 | font-weight: 500; 56 | hyphens: auto; 57 | line-height: 1.4; 58 | margin-bottom: 0; 59 | margin-top: 0; 60 | word-break: break-word; 61 | 62 | em { 63 | font-style: normal; 64 | } 65 | } 66 | 67 | cite { 68 | display: inline-block; 69 | font-size: $font__size-sm; 70 | font-family: $font__figcaption; 71 | margin-bottom: -10px; 72 | margin-top: .75em; 73 | text-transform: none; 74 | } 75 | 76 | &.alignleft, 77 | &.alignright { 78 | padding-left: 0; 79 | padding-right: 0; 80 | padding-top: 20px; 81 | padding-bottom: 25px; 82 | 83 | @media screen and (min-width: $content__align--mobile-media-query--min) { 84 | margin-top: 0.65em; 85 | margin-bottom: 1.75em; 86 | } 87 | 88 | blockquote { 89 | margin-left: 0; 90 | max-width: 100%; 91 | padding: 0; 92 | text-align: left; 93 | } 94 | 95 | p { 96 | padding-left: 0; 97 | padding-right: 0; 98 | } 99 | 100 | cite { 101 | display: block; 102 | margin-bottom: -7px; 103 | } 104 | } 105 | 106 | &.is-style-solid-color { 107 | padding: 20px 35px; 108 | 109 | &.alignleft, 110 | &.alignright { 111 | @media screen and (min-width: $content__align--mobile-media-query--min) { 112 | margin-bottom: 0.65em; 113 | margin-top: 0.65em; 114 | } 115 | } 116 | 117 | p { 118 | margin-bottom: 0.3em; 119 | margin-top: 0.3em; 120 | padding-left: 0; 121 | padding-right: 0; 122 | } 123 | 124 | blockquote { 125 | margin: 0 auto; 126 | text-align: left; 127 | } 128 | 129 | cite { 130 | display: block; 131 | margin-bottom: 0.5em; 132 | opacity: 0.8; 133 | } 134 | 135 | &:not([class*="background-color"]) { 136 | background-color: $black; 137 | } 138 | 139 | blockquote:not([class*="text-color"]), 140 | blockquote:not([class*="text-color"]) cite, 141 | blockquote:not([class*="text-color"]) a { 142 | color: $white; 143 | } 144 | } 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /scss/modules/_customizer.scss: -------------------------------------------------------------------------------- 1 | .customize-partial-edit-shortcuts-shown { 2 | 3 | .custom-logo-link { 4 | @media only screen and (min-width: 600px) { 5 | margin-left: -30px; 6 | align-items: center; 7 | display: flex; 8 | justify-content: center; 9 | 10 | .customize-partial-edit-shortcut, 11 | .customize-partial-edit-shortcut-button { 12 | position: relative; 13 | float: none; 14 | left: initial; 15 | } 16 | 17 | .customize-partial-edit-shortcut-button { 18 | left: -10px; 19 | } 20 | 21 | .customize-partial-edit-shortcut { 22 | height: auto; 23 | width: auto; 24 | } 25 | } 26 | } 27 | 28 | .customize-partial-edit-shortcut-blogname, 29 | .customize-partial-edit-shortcut-custom_logo { 30 | @media only screen and (max-width: 599px) { 31 | display: none; 32 | } 33 | } 34 | 35 | #site-navigation { 36 | 37 | .customize-partial-edit-shortcut-button { 38 | @media only screen and (min-width: 600px) and (max-width: 700px) { 39 | margin-top: -2px; 40 | } 41 | 42 | @media only screen and (max-width: 599px) { 43 | display: none; 44 | } 45 | } 46 | } 47 | 48 | .widget-area__wrapper { 49 | 50 | .customize-partial-edit-shortcut--footer-colors { 51 | top: 8px; 52 | left: 10px; 53 | 54 | .customize-partial-edit-shortcut-button { 55 | left: 0; 56 | 57 | &::before { 58 | box-shadow: none; 59 | color: $white; 60 | content: "\f540"; 61 | font: 400 15px/72px dashicons; 62 | height: 20px; 63 | line-height: 20px; 64 | display: block; 65 | position: absolute; 66 | right: 0.18em; 67 | text-shadow: 0 -1px 1px rgba(0, 122, 182, 0.8), 1px 0 1px #007ab6, 0 1px 1px #007ab6, -1px 0 1px #007ab6; 68 | top: 0.24em; 69 | width: 20px; 70 | } 71 | } 72 | } 73 | 74 | .widget { 75 | 76 | .customize-partial-edit-shortcut-button { 77 | left: -35px; 78 | top: 4px; 79 | } 80 | } 81 | 82 | .footer-navigation { 83 | 84 | .customize-partial-edit-shortcut-button { 85 | display: none; 86 | } 87 | } 88 | } 89 | 90 | .coblocks-customizer-add-widget-line { 91 | background: none; 92 | border: none; 93 | box-shadow: none; 94 | padding: 8px 0; 95 | width: 100%; 96 | opacity: 0; 97 | visibility: hidden; 98 | margin-top: 20px; 99 | transition: opacity 150ms cubic-bezier(0.38, 0.32, 0.36, 0.98), visibility 0 cubic-bezier(0.38, 0.32, 0.36, 0.98) 150ms; 100 | 101 | &::after { 102 | background: #008ec2; 103 | content: ""; 104 | display: block; 105 | height: 3px; 106 | margin-left: auto; 107 | margin-right: auto; 108 | max-width: 440px; 109 | } 110 | } 111 | 112 | #secondary:hover .coblocks-customizer-add-widget-line { 113 | opacity: 1; 114 | visibility: visible; 115 | transition: opacity 150ms cubic-bezier(0.38, 0.32, 0.36, 0.98), visibility 0 cubic-bezier(0.38, 0.32, 0.36, 0.98) 0; 116 | } 117 | 118 | #engagement-bar { 119 | 120 | .customize-partial-edit-shortcut-button { 121 | margin-top: 12px; 122 | margin-left: -6px; 123 | 124 | @media only screen and (max-width: 699px) { 125 | display: none; 126 | } 127 | } 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /inc/customizer/class-coblocks-range-control.php: -------------------------------------------------------------------------------- 1 | json['id'] = $this->id; 51 | $this->json['value'] = $this->value(); 52 | $this->json['link'] = $this->get_link(); 53 | $this->json['defaultValue'] = $this->setting->default; 54 | $this->json['input_attrs']['min'] = ( isset( $this->input_attrs['min'] ) ) ? $this->input_attrs['min'] : '0'; 55 | $this->json['input_attrs']['max'] = ( isset( $this->input_attrs['max'] ) ) ? $this->input_attrs['max'] : '100'; 56 | $this->json['input_attrs']['step'] = ( isset( $this->input_attrs['step'] ) ) ? $this->input_attrs['step'] : '1'; 57 | } 58 | 59 | /** 60 | * Don't render the control content from PHP, as it's rendered via JS on load. 61 | */ 62 | public function render_content() {} 63 | 64 | /** 65 | * Render a JS template for the content of the control. 66 | */ 67 | protected function content_template() { 68 | ?> 69 | 70 |
71 | 72 | <# if ( data.label ) { #> 73 | 76 | <# } #> 77 | 78 |
79 | {{ data.value }} 80 | checked="checked" <# } #> /> 81 | <# if ( data.description ) { #> 82 | {{ data.description }} 83 | <# } #> 84 |
85 | 86 | 87 | 88 | 89 | 90 |
91 | a { 92 | background: rgba(0, 0, 0, 0.05); 93 | border-radius: 2px; 94 | box-shadow: 0 0 0; 95 | color: $black; 96 | display: inline-block; 97 | line-height: 22px; 98 | margin: 0 -2px 5px 0; 99 | padding: 4px 10px; 100 | } 101 | 102 | .tagcloud > a:hover { 103 | background: rgba(0, 0, 0, 0.1); 104 | color: $black; 105 | } 106 | 107 | .widget_text + .widget.optin-monster-api { 108 | margin-top: -2em; 109 | } 110 | 111 | /* MC4WP */ 112 | .widget_mc4wp_form_widget { 113 | text-align: center; 114 | 115 | p { 116 | margin-bottom: 0; 117 | 118 | &:first-of-type { 119 | margin-bottom: 1.5em; 120 | } 121 | } 122 | 123 | input { 124 | appearance: none; 125 | background: none; 126 | background: transparent; 127 | border: none; 128 | border-bottom: 4px solid $black; 129 | border-radius: 0; 130 | color: $black; 131 | font-family: $font__heading; 132 | font-size: 18px; 133 | font-weight: 600; 134 | height: 50px; 135 | margin-bottom: 25px; 136 | padding-bottom: 0; 137 | padding-left: 0; 138 | 139 | &:focus { 140 | box-shadow: none; 141 | border-color: $gray; 142 | } 143 | 144 | @include input-placeholder { 145 | color: rgba(0, 0, 0, .8); 146 | } 147 | } 148 | 149 | input[type=submit] { 150 | border: 0; 151 | background: $black; 152 | margin-bottom: 0; 153 | border-radius: 4px; 154 | color: #fff; 155 | height: auto; 156 | padding: .5em 5em; 157 | width: 100%; 158 | text-align: center; 159 | transition: 200ms background cubic-bezier(0.3, -0.55, 0.1, 1.1); 160 | 161 | &:hover { 162 | background: $gray; 163 | } 164 | } 165 | 166 | .mc4wp-alert { 167 | @include font-size(13px); 168 | font-family: $font__heading; 169 | font-style: inherit; 170 | color: $gray; 171 | position: absolute; 172 | margin: 2px auto; 173 | width: 100%; 174 | left: 0; 175 | text-align: center; 176 | 177 | @media only screen and (min-width: 700px) { 178 | @include font-size(15px); 179 | margin: 10px auto; 180 | } 181 | } 182 | } 183 | 184 | -------------------------------------------------------------------------------- /scss/_variables.scss: -------------------------------------------------------------------------------- 1 | $font__body: "Lora", serif; 2 | $font__heading: "Heebo", serif; 3 | $font__sans: "Heebo", sans-serif; 4 | $font__figcaption: $font__heading; 5 | 6 | $white: #fff; 7 | $black: #191521; 8 | $gray: #565d67; 9 | $dark-gray: #6d6c6c; 10 | $twitter: #1a8bf0; 11 | $facebook: #3b5998; 12 | $linkedin: #0084bf; 13 | 14 | $content_width: 760px; 15 | $content_max-width: 720px; 16 | $content_mobile-width: 90%; 17 | 18 | $color__text-heading: $black; 19 | $color__text-main: $black; 20 | 21 | $font__size_base: 19px; 22 | $font__size-ratio: 1.1; 23 | 24 | $font__size-xxs: 1em / (1.5 * $font__size-ratio); 25 | $font__size-xs: 1em / (1.2 * $font__size-ratio); 26 | $font__size-sm: 1em / (1 * $font__size-ratio); 27 | $font__size-md: 1em * (1.25 * $font__size-ratio); 28 | $font__size-mdlrg: 1em * (1.5 * $font__size-ratio); 29 | $font__size-lg: 1em * (1.75 * $font__size-ratio); 30 | $font__size-xl: 1em * (2 * $font__size-ratio); 31 | $font__size-xxl: 1em * (2.5 * $font__size-ratio); 32 | $font__size-xxxl: 1em * (5 * $font__size-ratio); 33 | 34 | $font__line-height-body: 1.8; 35 | $font__line-height-heading: 1.25; 36 | $font__line-height-pre: 1.6; 37 | 38 | $font__weight-body: 400; 39 | $font__weight-heading: 800; 40 | 41 | // Content variables 42 | $content__width: 740px; 43 | $content__width--wide: 1100px; 44 | $content__padding: 20px; 45 | $content__width--less-padding: $content__width - ($content__padding * 2); 46 | $content__width--wide--less-padding: $content__width--wide - ($content__padding * 2); 47 | $content__media-query: $content__width - 1; 48 | $content__media-query--wide: $content__width--wide - 1; 49 | $content__align--leftright-margin: $content__width / 2 - $content__padding; 50 | $content__align--mobile-media-query--min: 499px; 51 | $content__align--mobile-media-query--max: $content__align--mobile-media-query--min - 1; 52 | $content__align--width: 300px; 53 | $content__spacer: 30px; 54 | $content__spacer--mobile: 20px; 55 | 56 | $block__quote--border-width: 4px; 57 | $block__quote--cite-font: $font__figcaption; 58 | 59 | // Editor variables 60 | $font__size-editor--small: 17px; 61 | $font__size-editor--medium: 21px; 62 | $font__size-editor--large: 24px; 63 | $font__size-editor--huge: 30px; 64 | 65 | $accent: #218799; 66 | $background: rgba(0, 0, 0, 0.04); 67 | $green: #49e2be; 68 | $red: #f00; 69 | 70 | $color--error: #e85c41; 71 | $color--success: #2cb994; 72 | 73 | $color--background-body: #fff; 74 | $color--background-screen: #f1f1f1; 75 | $color--background-hr: #ccc; 76 | $color--background-button: #e6e6e6; 77 | $color--background-pre: #f1f1f1; 78 | $color--background-ins: #fff9c0; 79 | $color--background-input-focus: #fff; 80 | 81 | $color--has-background-color-fallback: #f5f5f5; 82 | 83 | $color--background-lightbox: #fff; 84 | $color--background-lightbox-dark: #1c1c21; 85 | $color--background-lightbox-button: $black; 86 | $color--background-lightbox-button-dark: #dfdfe2; 87 | 88 | $color--text-screen: #21759b; 89 | $color--text-input: $black; 90 | $color--text-input-focus: $black; 91 | $color--text-input-placeholder: #bbb; 92 | $color--text-footer-a: #bbb; 93 | $color--link: #4169e1; 94 | $color--link-visited: #800080; 95 | $color--link-hover: #333; 96 | 97 | $color--border-button: #ccc #ccc #888; 98 | $color--border-button-hover: #ccc #888 #aaa; 99 | $color--border-button-focus: #aaa #888 #888; 100 | $color--border-input: #e6e6e6; 101 | $color--border-input-hover: #d6d6d6; 102 | $color--border-input-focus: #c6c6c6; 103 | $color--border-abbr: #e8e8e8; 104 | $color--border-table: #ccc; 105 | $color--border-footer: rgba(0, 0, 0, 0.075); 106 | 107 | $color--outline-button: #959595; 108 | -------------------------------------------------------------------------------- /scss/blocks/_blocks.scss: -------------------------------------------------------------------------------- 1 | // Editor customizations. 2 | @import "color-palette"; 3 | @import "font-sizes"; 4 | 5 | // Import blocks. 6 | @import "archives-categories"; 7 | @import "audio-video"; 8 | @import "button"; 9 | @import "captions"; 10 | @import "code"; 11 | @import "columns"; 12 | @import "cover"; 13 | @import "embed"; 14 | @import "file"; 15 | @import "gallery"; 16 | @import "image"; 17 | @import "latest-comments"; 18 | @import "latest-posts"; 19 | @import "list"; 20 | @import "misc"; 21 | @import "more"; 22 | @import "paragraph"; 23 | @import "preformatted"; 24 | @import "pullquote"; 25 | @import "quote"; 26 | @import "separator"; 27 | @import "table"; 28 | @import "verse"; 29 | 30 | // Third party blocks. 31 | @import "coblocks"; 32 | @import "blockgallery"; 33 | 34 | .entry-media, 35 | .entry-header, 36 | .entry-footer { 37 | max-width: $content__width; 38 | padding-left: $content__padding; 39 | padding-right: $content__padding; 40 | margin-left: auto; 41 | margin-right: auto; 42 | } 43 | 44 | .entry-media { 45 | max-width: $content__width--wide; 46 | } 47 | 48 | .entry-content > *, 49 | .entry-summary > * { 50 | margin: $content__spacer--mobile auto; 51 | max-width: $content__width; 52 | padding-left: $content__padding; 53 | padding-right: $content__padding; 54 | 55 | @media screen and (min-width: $content__media-query) { 56 | margin-bottom: $content__spacer; 57 | margin-top: $content__spacer; 58 | } 59 | 60 | &:not(p):not(ul):not(ol) { 61 | margin: $content__spacer--mobile + 12px auto; 62 | 63 | @media screen and (min-width: $content__media-query) { 64 | margin-bottom: $content__spacer + 12px; 65 | margin-top: $content__spacer + 12px; 66 | } 67 | } 68 | 69 | &:first-child { 70 | margin-top: 0 !important; 71 | } 72 | 73 | &:last-child { 74 | margin-bottom: 0 !important; 75 | } 76 | 77 | > *:first-child { 78 | margin-top: 0; 79 | } 80 | 81 | > *:last-child { 82 | margin-bottom: 0; 83 | } 84 | 85 | &.alignwide { 86 | max-width: $content__width--wide; 87 | 88 | @media screen and (min-width: $content__media-query) { 89 | margin-bottom: $content__spacer + 20px; 90 | margin-top: $content__spacer + 20px; 91 | } 92 | } 93 | 94 | &.alignfull { 95 | margin: $content__spacer + 10px 0; 96 | max-width: 100% !important; 97 | padding-left: 0; 98 | padding-right: 0; 99 | 100 | @media screen and (min-width: $content__media-query) { 101 | margin-bottom: $content__spacer + 30px; 102 | margin-top: $content__spacer + 30px; 103 | } 104 | } 105 | 106 | &.alignleft { 107 | margin-right: $content__padding; 108 | max-width: 100%; 109 | 110 | @media screen and (min-width: $content__align--mobile-media-query--min) { 111 | float: left; 112 | margin-right: 40px; 113 | margin-top: 0; 114 | max-width: $content__align--width !important; 115 | } 116 | 117 | @media screen and (min-width: $content__media-query) { 118 | margin-left: calc(50% - #{$content__align--leftright-margin}); 119 | } 120 | } 121 | 122 | &.alignright { 123 | margin-left: $content__padding; 124 | 125 | @media screen and (min-width: $content__align--mobile-media-query--min) { 126 | float: right; 127 | margin-left: 40px; 128 | margin-top: 0; 129 | max-width: $content__align--width !important; 130 | } 131 | 132 | @media screen and (min-width: $content__media-query) { 133 | margin-right: calc(50% - #{$content__align--leftright-margin}); 134 | } 135 | } 136 | 137 | .alignleft, 138 | .alignright { 139 | > figcaption { 140 | @media screen and (max-width: $content__align--mobile-media-query--max) { 141 | display: block !important; 142 | } 143 | } 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /scss/elements/_buttons.scss: -------------------------------------------------------------------------------- 1 | .submit, 2 | .button { 3 | @include font-size(16px); 4 | appearance: none; 5 | background: #1c1c1c; 6 | border: none; 7 | box-shadow: none !important; 8 | color: $white; 9 | cursor: pointer; 10 | display: inline-block; 11 | border-radius: 4px; 12 | font-family: $font__sans; 13 | font-weight: 500; 14 | padding: 0.53em 1.3em 0.53em; 15 | position: relative; 16 | text-decoration: none; 17 | transform: translate3d(0, 0, 0); 18 | transition: background 200ms cubic-bezier(0.645, 0.045, 0.355, 1), border 200ms cubic-bezier(0.645, 0.045, 0.355, 1); 19 | 20 | &:hover { 21 | background: $gray; 22 | color: $white; 23 | outline: none; 24 | } 25 | 26 | &:focus { 27 | outline: 1px dotted $color--outline-button; 28 | outline-offset: -4px; 29 | } 30 | 31 | &--sml { 32 | @include font-size(15px); 33 | padding: .24em 1.3em .2em; 34 | } 35 | 36 | &--lrg { 37 | @include font-size(18px); 38 | padding-top: .44em; 39 | } 40 | 41 | &--ghost { 42 | background: transparent !important; 43 | border: 1px solid rgba(0, 0, 0, 0.2); 44 | color: $black; 45 | 46 | &:hover { 47 | border-color: rgba(0, 0, 0, 0.3); 48 | color: $black; 49 | } 50 | } 51 | 52 | &--gray { 53 | background: $background; 54 | color: $gray; 55 | 56 | &:hover { 57 | color: $gray; 58 | } 59 | } 60 | 61 | &--round { 62 | border-radius: 50px; 63 | } 64 | 65 | &--trans { 66 | @include font-size(17px); 67 | background: transparent !important; 68 | border: 0; 69 | color: $black; 70 | 71 | &:hover { 72 | background: $background; 73 | color: $black; 74 | border: 0; 75 | box-shadow: none 76 | } 77 | } 78 | 79 | &--attention { 80 | animation: buttonAttention 800ms infinite alternate; 81 | } 82 | 83 | &--attention--fb { 84 | animation: buttonAttentionFB 800ms infinite alternate; 85 | } 86 | 87 | &--attention--linkedin { 88 | animation: buttonAttentionLinkedIn 800ms infinite alternate; 89 | } 90 | 91 | &--chromeless { 92 | border: 0; 93 | box-shadow: 0; 94 | display: inline-block; 95 | background: none !important; 96 | line-height: 1 !important; 97 | } 98 | 99 | &--fullwidth { 100 | width: 100%; 101 | } 102 | 103 | &--mobile-fullwidth { 104 | @media only screen and (max-width: 599px) { 105 | width: 100%; 106 | } 107 | } 108 | } 109 | 110 | input[type=submit], 111 | input[type=button] { 112 | @include font-size(16px); 113 | appearance: none; 114 | background: #1c1c1c; 115 | border: none; 116 | box-shadow: 0 0 0; 117 | color: $white; 118 | cursor: pointer; 119 | display: inline-block; 120 | border-radius: 4px; 121 | font-family: $font__sans; 122 | font-weight: 500; 123 | padding: .53em 1.3em .53em; 124 | position: relative; 125 | text-decoration: none; 126 | transform: translate3d(0, 0, 0); 127 | transition: background 200ms cubic-bezier(0.645, 0.045, 0.355, 1), border 200ms cubic-bezier(0.645, 0.045, 0.355, 1); 128 | 129 | &:hover { 130 | background: $gray; 131 | color: $white; 132 | outline: none; 133 | } 134 | 135 | &:focus { 136 | outline: 1px dotted $color--outline-button; 137 | outline-offset: -4px; 138 | } 139 | } 140 | 141 | .animation--pulse:active { 142 | animation: pulse 100ms; 143 | animation-fill-mode: none; 144 | } 145 | 146 | @keyframes pulse { 147 | 0% { 148 | transform: scale(1); 149 | } 150 | 15% { 151 | transform: scale(.85); 152 | } 153 | 100% { 154 | transform: scale(1); 155 | } 156 | } 157 | 158 | @keyframes buttonAttention { 159 | 0% { 160 | background: rgba($twitter, 0.02) 161 | } 162 | 100% { 163 | background: rgba($twitter, 0.08); 164 | } 165 | } 166 | 167 | @keyframes buttonAttentionFB { 168 | 0% { 169 | background: rgba($facebook, 0.02); 170 | } 171 | 100% { 172 | background: rgba($facebook, 0.08); 173 | } 174 | } 175 | 176 | @keyframes buttonAttentionLinkedIn { 177 | 0% { 178 | background: rgba($linkedin, 0.02); 179 | } 180 | 100% { 181 | background: rgba($linkedin, 0.08); 182 | } 183 | } -------------------------------------------------------------------------------- /scss/blocks/_coblocks.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-coblocks-alert { 3 | @include blockMobileDisplay(); 4 | padding-bottom: 0.8em; 5 | padding-top: 0.7em; 6 | 7 | &:not(.has-custom-size) &__title { 8 | font-size: 19px; 9 | } 10 | 11 | &:not(.has-custom-size) &__text { 12 | font-size: 18px; 13 | } 14 | 15 | &__text, 16 | &__title { 17 | margin-bottom: 0; 18 | margin-top: 0; 19 | } 20 | } 21 | 22 | .wp-block-coblocks-click-to-tweet { 23 | border: none !important; 24 | padding-left: 0 !important; 25 | 26 | &__text { 27 | line-height: 1.4; 28 | font-style: italic; 29 | padding-left: 30px; 30 | 31 | @media screen and (min-width: $content__media-query) { 32 | padding-left: 60px; 33 | } 34 | 35 | &:not([class*="font-size"]) { 36 | font-size: $font__size-md; 37 | 38 | @media screen and (min-width: 600px) { 39 | font-size: $font__size-mdlrg; 40 | } 41 | } 42 | } 43 | 44 | &__text::before { 45 | width: 20px; 46 | height: 20px; 47 | top: 7px; 48 | 49 | @media screen and (min-width: $content__media-query) { 50 | width: 30px; 51 | height: 30px; 52 | top: 8px; 53 | } 54 | } 55 | 56 | &__twitter-btn { 57 | border-radius: 4px; 58 | font-family: $font__heading; 59 | font-size: 17px; 60 | font-weight: 500; 61 | height: 34px; 62 | line-height: 35px; 63 | margin-bottom: 5px !important; 64 | margin-top: 1em; 65 | padding: 0 0.75em; 66 | margin-left: 30px; 67 | 68 | @media screen and (min-width: $content__media-query) { 69 | margin-bottom: 10px !important; 70 | margin-left: 60px; 71 | } 72 | 73 | @media (max-width: 700px) { 74 | font-size: $font__size-sm; 75 | } 76 | 77 | &::before { 78 | top: 3px; 79 | margin-right: 7px; 80 | } 81 | } 82 | } 83 | 84 | .wp-block-coblocks-author { 85 | @include blockMobileDisplay(); 86 | border-radius: 0; 87 | padding-left: 30px; 88 | padding-right: 30px; 89 | 90 | &__heading { 91 | color: $gray; 92 | font-size: 18px; 93 | font-weight: 500; 94 | margin-bottom: 0; 95 | font-family: $font__heading; 96 | } 97 | 98 | &__biography { 99 | font-size: $font__size-sm; 100 | margin-bottom: 0.8em; 101 | margin-top: 0.2em; 102 | } 103 | 104 | &__name { 105 | font-size: $font__size-md; 106 | font-family: $font__heading; 107 | font-weight: $font__weight-heading; 108 | margin: 0.15em 0 0; 109 | padding: 0; 110 | } 111 | 112 | .wp-block-button { 113 | margin-top: 0; 114 | } 115 | } 116 | 117 | .wp-block-coblocks-dynamic-separator { 118 | @include blockMobileDisplay(); 119 | max-width: $content__width - ( $content__padding * 4 ); 120 | 121 | @media screen and (max-width: $content__width) { 122 | padding-left: 0; 123 | padding-right: 0; 124 | width: calc( 100% - #{$content__padding * 2} ); 125 | } 126 | 127 | &.is-style-dots::before { 128 | font-size: 36px; 129 | font-weight: 800; 130 | letter-spacing: 0.55em; 131 | margin-left: 19px; 132 | top: calc(50% - 28px); 133 | } 134 | } 135 | 136 | .wp-block-coblocks-pricing-table-item { 137 | 138 | &__title { 139 | font-size: $font__size-sm; 140 | font-family: $font__heading; 141 | font-weight: $font__weight-heading; 142 | margin-bottom: 1.5em !important; 143 | padding-top: 0; 144 | } 145 | 146 | &__currency { 147 | font-size: $font__size-sm; 148 | } 149 | 150 | &__price-wrapper { 151 | margin-bottom: 0.7em; 152 | } 153 | 154 | &__amount { 155 | font-family: $font__heading; 156 | font-weight: $font__weight-heading; 157 | letter-spacing: -2px; 158 | } 159 | 160 | &__features { 161 | font-size: $font__size-sm; 162 | margin-bottom: 1.7em; 163 | } 164 | } 165 | 166 | .wp-block-coblocks-social { 167 | 168 | &:not(.has-button-size-sml):not(.has-button-size-lrg) .wp-block-coblocks-social__button { 169 | font-size: 15px; 170 | padding: 11px 18px 10px; 171 | } 172 | 173 | &.has-button-size-sml .wp-block-coblocks-social__button { 174 | font-size: 14px; 175 | padding: 10px 12px 8px; 176 | 177 | .wp-block-coblocks-social__icon { 178 | position: relative; 179 | top: -1px; 180 | } 181 | } 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /scss/navigation/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .dropdown-toggle { 2 | background-color: transparent; 3 | border: 0; 4 | box-shadow: none; 5 | display: block; 6 | font-size: 16px !important; 7 | left: -.3em; 8 | margin: 0 auto; 9 | padding: 5px 10px; 10 | position: absolute; 11 | text-shadow: none; 12 | top: 0; 13 | left: initial; 14 | padding: 0; 15 | right: .1em; 16 | line-height: 1.1 !important; 17 | } 18 | 19 | .dropdown-toggle:hover, 20 | .dropdown-toggle:focus { 21 | background: transparent; 22 | } 23 | 24 | .dropdown-toggle:focus { 25 | outline: thin dotted; 26 | } 27 | 28 | .dropdown-toggle.toggled-on .svg-icon { 29 | transform: rotate(-180deg); 30 | } 31 | 32 | .main-navigation .dropdown-toggle .svg-icon { 33 | display: none; 34 | 35 | @media only screen and (min-width: 600px) { 36 | display: initial; 37 | fill: $gray; 38 | height: 7px; 39 | position: relative; 40 | width: 7px; 41 | transition: transform 200ms 300ms cubic-bezier(.694, 0, .335, 1), opacity 100ms cubic-bezier(0.645, 0.045, 0.355, 1); 42 | transform-origin: 50% 50%; 43 | top: 6px; 44 | } 45 | 46 | @media only screen and (min-width: 600px) and (max-width: 700px) { 47 | top: 4px; 48 | } 49 | } 50 | 51 | /* The Dropdown container. */ 52 | 53 | @media only screen and (min-width: 600px) { 54 | 55 | .main-navigation ul ul { 56 | background: $white; 57 | margin-top: -10px; 58 | margin: 0; 59 | opacity: 0; 60 | padding: 8px 0; 61 | position: absolute; 62 | right: -8px; 63 | top: 100%; 64 | box-shadow: 3px 3px 0 0 rgba(0, 0, 0, .05); 65 | transition: transform 200ms linear 300ms, opacity 200ms ease-in-out 300ms, visibility 200ms linear 300ms; 66 | visibility: hidden; 67 | z-index: 99999; 68 | min-width: 175px; 69 | 70 | @media only screen and (min-width: 600px) { 71 | right: -100%; 72 | left: auto; 73 | padding: 12px 0; 74 | margin-top: 10px; 75 | border-radius: 4px; 76 | border: 1px solid rgba(0, 0, 0, .15); 77 | transform: translate3d(0, 10px, 0); 78 | } 79 | 80 | li { 81 | display: block; 82 | 83 | @media only screen and (min-width: 600px) { 84 | min-width: 175px; 85 | } 86 | 87 | a { 88 | display: block; 89 | width: 100%; 90 | 91 | @media only screen and (min-width: 600px) { 92 | border-radius: 0 !important; 93 | padding: 4px 18px !important; 94 | } 95 | } 96 | } 97 | } 98 | 99 | .main-navigation ul li:hover > ul, 100 | .main-navigation ul li.focus > ul { 101 | transition: transform 200ms linear, opacity 200ms ease-in-out, visibility 0ms 0ms linear; 102 | visibility: visible; 103 | opacity: 1; 104 | transform: translate3d(0, 0, 0); 105 | } 106 | 107 | .main-navigation ul { 108 | 109 | /* The dropdown's arrow pointer nib, located at the top. */ 110 | li.menu-item-has-children, 111 | li.page_item_has_children { 112 | margin-right: 7px; 113 | 114 | a { 115 | 116 | @media only screen and (min-width: 600px) { 117 | padding-right: 13px; 118 | } 119 | } 120 | 121 | @media only screen and (min-width: 600px) { 122 | &::after, 123 | &::before { 124 | border-style: solid; 125 | border-width: 0 6px 6px; 126 | bottom: -11px; 127 | content: ""; 128 | height: 0; 129 | opacity: 0; 130 | position: absolute; 131 | right: 1em; 132 | transform: translate3d(0, 10px, 0); 133 | transition: transform 200ms linear 300ms, opacity 200ms ease-in-out 300ms, visibility 200ms linear 300ms; 134 | visibility: hidden; 135 | width: 0; 136 | z-index: 100000; 137 | margin-top: 10px; 138 | } 139 | 140 | &::before { 141 | border-color: transparent transparent rgba(0, 0, 0, .2); 142 | bottom: -10px; 143 | } 144 | 145 | &::after { 146 | border-color: transparent transparent $white; 147 | } 148 | 149 | } 150 | 151 | &:hover, 152 | &.focus { 153 | 154 | & > a { 155 | opacity: 0.7; 156 | } 157 | 158 | .svg-icon { 159 | opacity: 0.7; 160 | transform: rotate(-180deg) translate3d(0, 1px, 0); 161 | transition: transform 200ms cubic-bezier(.694, 0, .335, 1); 162 | } 163 | 164 | &::after, 165 | &::before { 166 | opacity: 1; 167 | transform: translate3d(0, 0, 0); 168 | transition: transform 200ms linear, opacity 200ms ease-in-out, visibility 0ms 0ms linear; 169 | visibility: visible; 170 | } 171 | } 172 | } 173 | } 174 | } 175 | -------------------------------------------------------------------------------- /scss/_base.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --letter-spacing: 1; 3 | --caps-letter-spacing: .2em; 4 | --bold-font-weight: 800; 5 | } 6 | 7 | // Typography. 8 | .body-font { 9 | font-family: $font__body; 10 | } 11 | 12 | .sans-serif-font { 13 | font-family: $font__sans; 14 | } 15 | 16 | .small { 17 | @include font-size(16px); 18 | 19 | @media (min-width: 600px) { 20 | @include font-size(17px); 21 | } 22 | } 23 | 24 | .extra-small { 25 | @include font-size(13px); 26 | 27 | @media (min-width: 600px) { 28 | @include font-size(15px); 29 | } 30 | } 31 | 32 | .smooth { 33 | @include font-smoothing; 34 | } 35 | 36 | .regular { 37 | font-weight: 400; 38 | } 39 | 40 | .medium { 41 | font-weight: 500; 42 | } 43 | 44 | .thin { 45 | font-weight: 300; 46 | } 47 | 48 | .medium-bold { 49 | font-weight: 600; 50 | } 51 | 52 | .bold { 53 | font-weight: 800 !important; 54 | } 55 | 56 | .normal { 57 | font-style: initial !important; 58 | } 59 | 60 | .italic { 61 | font-style: italic; 62 | } 63 | 64 | .caps { 65 | text-transform: uppercase; 66 | letter-spacing: var(--caps-letter-spacing); 67 | } 68 | 69 | .left-align { 70 | text-align: left; 71 | } 72 | 73 | .center-align { 74 | text-align: center; 75 | } 76 | 77 | .right-align { 78 | text-align: right; 79 | } 80 | 81 | .justify { 82 | text-align: justify; 83 | } 84 | 85 | .nowrap { 86 | white-space: nowrap; 87 | } 88 | 89 | .break-word { 90 | word-wrap: break-word; 91 | } 92 | 93 | // Lists. 94 | 95 | .list-reset { 96 | list-style: none; 97 | padding-left: 0; 98 | margin: 0; 99 | } 100 | 101 | // Colors. 102 | .gray { 103 | color: $gray; 104 | } 105 | 106 | .dark-gray { 107 | color: $dark-gray; 108 | } 109 | 110 | .white { 111 | color: $white; 112 | } 113 | 114 | .no-shadow { 115 | box-shadow: none !important; 116 | } 117 | 118 | // Position. 119 | .hide, 120 | .hidden { 121 | @include hide; 122 | } 123 | 124 | .bottom-spacer { 125 | @include bottom-spacer; 126 | } 127 | 128 | .top-spacer { 129 | @include top-spacer; 130 | } 131 | 132 | .margin-left-auto { 133 | margin-left: auto; 134 | } 135 | 136 | .margin-auto { 137 | margin-left: auto; 138 | margin-right: auto; 139 | } 140 | 141 | .container { 142 | @include structure; 143 | 144 | &.max-width { 145 | padding-left: 20px; 146 | padding-right: 20px; 147 | width: 1100px; 148 | } 149 | } 150 | 151 | .max-width { 152 | max-width: 100%; 153 | } 154 | 155 | 156 | .display-block { 157 | display: block; 158 | } 159 | 160 | .display-inline-block { 161 | display: inline-block; 162 | } 163 | 164 | .display-inline { 165 | display: inline; 166 | } 167 | 168 | .display-none { 169 | display: none; 170 | } 171 | 172 | .overflow-hidden { overflow: hidden } 173 | 174 | .flex { display: flex; } 175 | 176 | .left { float: left } 177 | .right { float: right } 178 | 179 | .relative { position: relative } 180 | .absolute { position: absolute } 181 | .fixed { position: fixed } 182 | 183 | .top-0 { top: 0 } 184 | .right-0 { right: 0 } 185 | .bottom-0 { bottom: 0 } 186 | .left-0 { left: 0 } 187 | 188 | 189 | .container--sml { 190 | max-width: 380px; 191 | margin: 0 auto; 192 | } 193 | 194 | 195 | 196 | 197 | 198 | 199 | @custom-media --breakpoint-sm (min-width: 40em); 200 | @custom-media --breakpoint-md (min-width: 52em); 201 | @custom-media --breakpoint-lg (min-width: 64em); 202 | 203 | .flex { 204 | @media only screen and (min-width: 600px) { 205 | display: flex; 206 | } 207 | } 208 | 209 | @media (--breakpoint-sm) { 210 | .sm-flex { display: flex } 211 | } 212 | 213 | @media (--breakpoint-md) { 214 | .md-flex { display: flex } 215 | } 216 | 217 | @media (--breakpoint-lg) { 218 | .lg-flex { display: flex } 219 | } 220 | 221 | .flex-column { flex-direction: column } 222 | .flex-wrap { flex-wrap: wrap } 223 | 224 | .items-start { align-items: flex-start } 225 | .items-end { align-items: flex-end } 226 | .items-center { align-items: center } 227 | .items-baseline { align-items: baseline } 228 | .items-stretch { align-items: stretch } 229 | 230 | .self-start { align-self: flex-start } 231 | .self-end { align-self: flex-end } 232 | .self-center { align-self: center } 233 | .self-baseline { align-self: baseline } 234 | .self-stretch { align-self: stretch } 235 | 236 | .justify-start { justify-content: flex-start } 237 | .justify-end { justify-content: flex-end } 238 | .justify-center { justify-content: center } 239 | .justify-between { justify-content: space-between } 240 | .justify-around { justify-content: space-around } 241 | 242 | .content-start { align-content: flex-start } 243 | .content-end { align-content: flex-end } 244 | .content-center { align-content: center } 245 | .content-between { align-content: space-between } 246 | .content-around { align-content: space-around } 247 | .content-stretch { align-content: stretch } 248 | 249 | 250 | -------------------------------------------------------------------------------- /assets/js/navigation.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Theme navigation file. 3 | * 4 | * Contains handlers for the site's navigation. 5 | */ 6 | 7 | (function( $ ) { 8 | var masthead, menuToggle, siteNavContain, siteNavigation; 9 | 10 | function initMainNavigation( container ) { 11 | 12 | // Add dropdown toggle that displays child menu items. 13 | var dropdownToggle = $( '