├── .gitignore ├── 404.php ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── _dev ├── admin-src │ ├── img │ │ └── banner-772x250.jpg │ ├── js │ │ ├── _benjamin-admin.js │ │ ├── _benjamin-customizer.js │ │ └── modules │ │ │ ├── checkbox-group.js │ │ │ ├── count-widgets.js │ │ │ ├── customizer-focus.js │ │ │ ├── install-franklin.js │ │ │ ├── layout-settings-flag.js │ │ │ ├── load-preview-url.js │ │ │ ├── refresh-alert.js │ │ │ └── sortables.js │ └── scss │ │ ├── _modules │ │ ├── clearfix.scss │ │ ├── form-alert.scss │ │ ├── franklin-notice.scss │ │ ├── media.scss │ │ ├── one-offs.scss │ │ ├── post-format.scss │ │ ├── section-tabs.scss │ │ ├── sortables.scss │ │ ├── swatches.scss │ │ └── widget-controls.scss │ │ ├── _post-formats │ │ ├── chat.scss │ │ ├── gallery.scss │ │ ├── media.scss │ │ └── misc.scss │ │ ├── _settings │ │ └── variables.scss │ │ └── benjamin-admin.scss ├── gulpfile.js ├── package-lock.json ├── package.json └── src │ ├── img │ ├── close-white.png │ ├── close-white.svg │ ├── close.png │ ├── minus-white.png │ ├── minus-white.svg │ └── minus.png │ ├── js │ ├── _benjamin-previewer.js │ ├── audio.js │ ├── mobile-video-bg.js │ ├── resize-hero.js │ └── uswds.js │ └── scss │ ├── _mixins │ └── sidebar.scss │ ├── _modules │ ├── alerts.scss │ ├── articles.scss │ ├── audio.scss │ ├── blockquote.scss │ ├── brand.scss │ ├── checkboxes.scss │ ├── comments.scss │ ├── contact-block.scss │ ├── entry.scss │ ├── featured-post.scss │ ├── footer-nav.scss │ ├── form.scss │ ├── gallery.scss │ ├── grid-bugfixes.scss │ ├── grid.scss │ ├── hero.scss │ ├── images.scss │ ├── main.scss │ ├── media-block.scss │ ├── nav-links.scss │ ├── navbar--dark.scss │ ├── navbar-secondary.scss │ ├── navbar.scss │ ├── navlist.scss │ ├── page-links.scss │ ├── page.scss │ ├── post-navigation.scss │ ├── post.scss │ ├── sections.scss │ ├── sidebar.scss │ ├── sidenav.scss │ ├── sortables.scss │ ├── table.scss │ ├── typography.scss │ ├── video-bg.scss │ ├── widgets.scss │ ├── wp-editor.scss │ └── wp-styles.scss │ ├── _utilities │ ├── clearfix.scss │ ├── content-breakpoint.scss │ ├── content-media.scss │ ├── content-span-columns.scss │ ├── print.scss │ ├── visibility.scss │ └── width-visibility.scss │ ├── _variables │ ├── classic.scss │ ├── red.scss │ └── standard.scss │ ├── benjamin-classic.scss │ ├── benjamin-red.scss │ ├── benjamin.scss │ └── manifest.scss ├── archive.php ├── assets ├── admin │ ├── css │ │ ├── benjamin-admin.css │ │ └── benjamin-admin.min.css │ ├── img │ │ └── banner-772x250.jpg │ └── js │ │ ├── _benjamin-admin-min.js │ │ ├── _benjamin-admin.js │ │ ├── _benjamin-customizer-min.js │ │ └── _benjamin-customizer.js └── frontend │ ├── css │ ├── benjamin-classic.css │ ├── benjamin-classic.min.css │ ├── benjamin.css │ └── benjamin.min.css │ ├── fonts │ ├── merriweather-bold-webfont.woff │ ├── merriweather-bold-webfont.woff2 │ ├── merriweather-italic-webfont.woff │ ├── merriweather-italic-webfont.woff2 │ ├── merriweather-light-webfont.woff │ ├── merriweather-light-webfont.woff2 │ ├── merriweather-regular-webfont.woff │ ├── merriweather-regular-webfont.woff2 │ ├── sourcesanspro-bold-webfont.woff │ ├── sourcesanspro-bold-webfont.woff2 │ ├── sourcesanspro-italic-webfont.woff │ ├── sourcesanspro-italic-webfont.woff2 │ ├── sourcesanspro-light-webfont.woff │ ├── sourcesanspro-light-webfont.woff2 │ ├── sourcesanspro-regular-webfont.woff │ └── sourcesanspro-regular-webfont.woff2 │ ├── img │ ├── alerts │ │ ├── error.png │ │ ├── error.svg │ │ ├── info.png │ │ ├── info.svg │ │ ├── success.png │ │ ├── success.svg │ │ ├── warning.png │ │ └── warning.svg │ ├── angle-arrow-down-hover.png │ ├── angle-arrow-down-hover.svg │ ├── angle-arrow-down-primary-hover.png │ ├── angle-arrow-down-primary-hover.svg │ ├── angle-arrow-down-primary.png │ ├── angle-arrow-down-primary.svg │ ├── angle-arrow-down.png │ ├── angle-arrow-down.svg │ ├── angle-arrow-up-primary-hover.png │ ├── angle-arrow-up-primary-hover.svg │ ├── angle-arrow-up-primary.png │ ├── angle-arrow-up-primary.svg │ ├── arrow-down.png │ ├── arrow-down.svg │ ├── arrow-right.png │ ├── arrow-right.svg │ ├── circle-124.png │ ├── close-white.png │ ├── close-white.svg │ ├── close.png │ ├── close.svg │ ├── correct8.png │ ├── correct8.svg │ ├── correct9.png │ ├── correct9.svg │ ├── external-link-alt-hover.png │ ├── external-link-alt-hover.svg │ ├── external-link-alt.png │ ├── external-link-alt.svg │ ├── external-link-hover.png │ ├── external-link-hover.svg │ ├── external-link.png │ ├── external-link.svg │ ├── favicons │ │ ├── favicon-114.png │ │ ├── favicon-144.png │ │ ├── favicon-16.png │ │ ├── favicon-192.png │ │ ├── favicon-40.png │ │ ├── favicon-57.png │ │ ├── favicon-72.png │ │ ├── favicon.ico │ │ └── favicon.png │ ├── hero.png │ ├── icon-dot-gov.svg │ ├── icon-https.svg │ ├── logo-img.png │ ├── minus-alt.png │ ├── minus-alt.svg │ ├── minus-white.png │ ├── minus-white.svg │ ├── minus.png │ ├── minus.svg │ ├── plus-alt.png │ ├── plus-alt.svg │ ├── plus.png │ ├── plus.svg │ ├── search-alt.png │ ├── search-alt.svg │ ├── search.png │ ├── search.svg │ ├── social-icons │ │ ├── png │ │ │ ├── facebook25.png │ │ │ ├── rss25.png │ │ │ ├── twitter16.png │ │ │ └── youtube15.png │ │ └── svg │ │ │ ├── facebook25.svg │ │ │ ├── rss25.svg │ │ │ ├── twitter16.svg │ │ │ └── youtube15.svg │ └── us_flag_small.png │ └── js │ ├── _benjamin-previewer-min.js │ ├── _benjamin-previewer.js │ ├── audio-min.js │ ├── audio.js │ ├── uswds-min.js │ └── uswds.js ├── comments.php ├── composer.json ├── footer.php ├── front-page.php ├── functions.php ├── header.php ├── inc ├── _inc.php ├── admin │ ├── about-page.php │ ├── ajax.php │ ├── assets.php │ ├── franklin-notice.php │ ├── functions.php │ └── metabox-featured-post.php ├── customizer │ ├── _helpers.php │ ├── _init.php │ ├── _sanitizations.php │ ├── controls │ │ ├── checkbox-group.php │ │ ├── color-scheme.php │ │ ├── label.php │ │ ├── menu-dropdown.php │ │ └── sortable.php │ ├── footer.php │ ├── frontpage.php │ ├── header.php │ ├── identity.php │ ├── page-404.php │ ├── template-settings.php │ ├── template-settings │ │ ├── activate.php │ │ ├── header.php │ │ ├── layout.php │ │ └── sidebar.php │ └── widgetized.php ├── frontend │ ├── assets.php │ ├── brand.php │ ├── class-BenjaminFeaturedPost.php │ ├── excerpts.php │ ├── filters.php │ ├── footers │ │ ├── footer-menu.php │ │ ├── footer-return.php │ │ ├── footer-widgets-1.php │ │ └── footer-widgets-2.php │ ├── get-sidebar.php │ ├── get-width-visibility.php │ ├── hero │ │ ├── BenjaminHero.php │ │ ├── BenjaminHeroBG.php │ │ └── BenjaminHeroContent.php │ ├── nav-settings.php │ ├── nav-walkers │ │ ├── footer-nav-walker.php │ │ ├── navbar-walker.php │ │ ├── navlist-walker.php │ │ └── sidenav-walker.php │ ├── navbars │ │ └── navbar.php │ ├── page-sortables.php │ ├── post-format-markup.php │ ├── section-banner.php │ ├── sticky-sidenav.php │ ├── template-parts.php │ ├── template-settings.php │ └── template-tags.php ├── shared │ ├── audio-markup.php │ ├── custom-post-types.php │ ├── extras.php │ ├── functions.php │ ├── jetpack.php │ ├── register-sidebars.php │ ├── set-default-settings.php │ ├── template-list.php │ ├── theme-support.php │ ├── video-markup.php │ └── widgets.php └── widgets │ ├── Benjamin_Nav_Menu_Widget.php │ ├── Benjamin_Widget_Archives.php │ ├── Benjamin_Widget_Categories.php │ ├── Benjamin_Widget_Meta.php │ ├── Benjamin_Widget_Pages.php │ ├── Benjamin_Widget_Recent_Comments.php │ └── Benjamin_Widget_Recent_Posts.php ├── index.php ├── languages ├── benjamin.pot └── readme.txt ├── page-templates ├── sidenav.php ├── template-1.php ├── template-2.php ├── template-3.php ├── template-4.php └── widgetized.php ├── page.php ├── phpcs.xml ├── readme.txt ├── screenshot.png ├── search.php ├── searchform.php ├── sidebar.php ├── single.php ├── style.css └── template-parts ├── feed ├── content-none.php └── content.php └── singles ├── content-none.php ├── content-page.php └── content.php /.gitignore: -------------------------------------------------------------------------------- 1 | _dev/node_modules/ 2 | .DS_Store 3 | *.sublime-workspace -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 35 | 36 |
37 | 42 | 43 |
44 | post_content ); 49 | echo $content; // WPCS: xss ok. 50 | else : 51 | echo '

' . esc_html_e( 'It looks like nothing was found at this location. Maybe try one of the links below or a search?', 'benjamin' ) . '

'; 52 | 53 | get_search_form(); 54 | 55 | echo '
'; 56 | echo '
'; 57 | echo '
'; 58 | 59 | the_widget( 'Benjamin_Widget_Pages', array( 'title' => __( 'Pages', 'benjamin' ) ) ); 60 | endif; 61 | ?> 62 |
63 | 64 | 70 |
71 | 72 | -1 ) { 7 | var pos = setting.id.lastIndexOf('_settings_active'); 8 | var name = setting.id.substr(0, pos); 9 | var val = setting.get(); 10 | var $parentSection = wp.customize.section( name +'_settings_section' ).container.find('#accordion-section-' + name); 11 | $parentSection = $parentSection.prevObject; 12 | var elms = [$parentSection[0], $parentSection[1]]; 13 | 14 | elms.forEach(function(elm,i,a){ 15 | 16 | if(val == 'yes') { 17 | elm.classList.add('control-section-is-active'); 18 | } else { 19 | elm.classList.remove('control-section-is-active'); 20 | } 21 | }); 22 | 23 | 24 | } 25 | 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /_dev/admin-src/js/modules/load-preview-url.js: -------------------------------------------------------------------------------- 1 | function randomString(length, chars) { 2 | var result = ''; 3 | for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; 4 | return result; 5 | } 6 | 7 | function toggle404Page(api, isExpanded){ 8 | var rand = randomString(32, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); 9 | var randNum = randomString(32, '0123456789'); 10 | var url = api.settings.url.home + rand; 11 | 12 | if ( isExpanded ) { 13 | api.previewer.previewUrl.set( url + '?p=' + randNum ); 14 | }else { 15 | url = api.settings.url.home; 16 | api.previewer.previewUrl.set( url + '?p=' + randNum ); 17 | } 18 | } 19 | 20 | 21 | (function ( api ) { 22 | 23 | /** 24 | * Load a fake page when we open a 404 settings section, load the front page when we leave 25 | */ 26 | api.section( '_404_settings_section', function( section ) { 27 | section.expanded.bind( function( isExpanded ) { 28 | toggle404Page(api, isExpanded); 29 | } ); 30 | } ); 31 | 32 | 33 | /** 34 | * Load a fake page when we open a 404 settings section, load the front page when we leave 35 | */ 36 | api.section( '_404_content_section', function( section ) { 37 | section.expanded.bind( function( isExpanded ) { 38 | toggle404Page(api, isExpanded); 39 | } ); 40 | } ); 41 | 42 | /** 43 | * Load the front page when we goto the frontpage template settings section 44 | */ 45 | api.section( 'frontpage_settings_section', function( section ) { 46 | section.expanded.bind( function( isExpanded ) { 47 | var url = api.settings.url.home ; 48 | 49 | var previousUrl = api.previewer.previewUrl.get(); 50 | if ( isExpanded ) { 51 | api.previewer.previewUrl.set( url ); 52 | } 53 | } ); 54 | } ); 55 | 56 | } ( wp.customize ) ); 57 | -------------------------------------------------------------------------------- /_dev/admin-src/js/modules/refresh-alert.js: -------------------------------------------------------------------------------- 1 | window.refreshAlert = function() { 2 | 3 | $('#save').addClass('alert alert--refresh').val('Save and Refresh'); 4 | } 5 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/clearfix.scss: -------------------------------------------------------------------------------- 1 | .cf:before, 2 | .cf:after { 3 | content: " "; /* 1 */ 4 | display: table; /* 2 */ 5 | } 6 | 7 | .cf:after { 8 | clear: both; 9 | } 10 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/form-alert.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | border: 1px solid $red-light !important; 3 | } 4 | 5 | #save.alert--refresh+.spinner { 6 | position: relative; 7 | &::before { 8 | color: $red-light; 9 | content: 'Refresh Page After Save'; 10 | position: absolute; 11 | top: -13px; 12 | right: 0; 13 | text-align: right; 14 | visibility: visible; 15 | width: 200px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/franklin-notice.scss: -------------------------------------------------------------------------------- 1 | .franklin-notice { 2 | background-image: url('../img/banner-772x250.jpg'); 3 | background-repeat: no-repeat; 4 | background-size: cover; 5 | color: white; 6 | font-size: 1.2rem; 7 | margin: 20px 20px 20px 2px; 8 | padding: 20px; 9 | position: relative; 10 | 11 | &::before { 12 | background-color: rgba(0,0,0, .6); 13 | content:''; 14 | display: block; 15 | position: absolute; 16 | top:0; 17 | right:0; 18 | bottom:0; 19 | left: 0; 20 | z-index: 1; 21 | } 22 | 23 | p { 24 | font-size: 1.2rem; 25 | width: 35%; 26 | } 27 | 28 | li { 29 | line-height: 1.4rem; 30 | } 31 | } 32 | .franklin-notice__dismiss { 33 | text-decoration: none; 34 | z-index: 9; 35 | 36 | &::before { 37 | color: rgba($white, .6); 38 | transition: color 500ms ease; 39 | } 40 | 41 | &:hover::before { 42 | color: $white; 43 | } 44 | } 45 | 46 | 47 | .franklin-notice__inner { 48 | position: relative; 49 | z-index: 2; 50 | } 51 | 52 | .franklin-notice__title { 53 | color: white; 54 | font-size: 4rem; 55 | line-height: 5.5rem; 56 | margin:1rem 0 0; 57 | } 58 | 59 | .franklin-notice__sub-title { 60 | font-size: 1.2rem; 61 | margin-top: 0; 62 | } 63 | 64 | .franklin-notice .franklin-notice__button { 65 | font-size: 2rem; 66 | height: auto; 67 | padding: 1rem; 68 | 69 | &.button-ghost { 70 | background-color: transparent; 71 | border: none; 72 | box-shadow: none; 73 | color: darken(white, 40%); 74 | font-size: 1rem; 75 | } 76 | } -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/media.scss: -------------------------------------------------------------------------------- 1 | .js--uswds-media-wrap { 2 | margin-bottom: 10px; 3 | } 4 | 5 | .use-url { 6 | clear: both; 7 | display: block; 8 | margin: 4px 0; 9 | text-align: center; 10 | } 11 | 12 | .js--placeholder { 13 | 14 | border: 1px dashed #b4b9be; 15 | margin-bottom: 5px; 16 | text-align: center; 17 | 18 | iframe, 19 | video, 20 | > .wp-video { 21 | margin-bottom: -4px; 22 | max-width: 100% !important; 23 | height: auto; 24 | } 25 | } 26 | 27 | 28 | .js--video-url { 29 | padding: 4px; 30 | width: 100%; 31 | } 32 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/one-offs.scss: -------------------------------------------------------------------------------- 1 | 2 | .button .dashicons { 3 | margin-top: 3px; 4 | } 5 | 6 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/post-format.scss: -------------------------------------------------------------------------------- 1 | 2 | .postbox[id^='post_formats_'] { 3 | display: none; 4 | 5 | textarea, 6 | input[type=text] { 7 | width: 100%; 8 | } 9 | } 10 | 11 | 12 | #titlediv + #top-sortables{ 13 | margin-top: 20px; 14 | } -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/section-tabs.scss: -------------------------------------------------------------------------------- 1 | .control-section-is-active h3 { 2 | 3 | &::before { 4 | content: "\f147"; 5 | display: block; 6 | float: left; 7 | font-family: "dashicons"; 8 | margin-right: 5px; 9 | } 10 | } -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/sortables.scss: -------------------------------------------------------------------------------- 1 | .customize-control { 2 | .sortables > div { 3 | border: 1px solid #e5e5e5; 4 | box-shadow: 0 1px 1px rgba(0,0,0,.04); 5 | margin-bottom: 10px; 6 | padding: 10px; 7 | } 8 | 9 | .sortable, 10 | .ui-state-highlight { 11 | 12 | background-color: $off-white; 13 | border-left: 4px solid $dark-grey; 14 | margin-bottom: 5px; 15 | padding: 4px 10px; 16 | &:hover { 17 | cursor: move; 18 | } 19 | } 20 | 21 | 22 | .sortables__list { 23 | margin-left: 0; 24 | min-height: 30px; 25 | list-style-type: none; 26 | 27 | &:empty { 28 | &::before { 29 | display: block; 30 | content: 'Empty - using page content'; 31 | } 32 | } 33 | 34 | } 35 | 36 | .sortables__list-title { 37 | font-size: 1.1em; 38 | font-weight: bold; 39 | margin: 0 0 10px; 40 | } 41 | 42 | .sortables__active-list .sortable { 43 | background-color: lighten($blue, 40%); 44 | border-left: 4px solid $blue; 45 | color: darken($blue, 15%); 46 | padding: 5px; 47 | } 48 | 49 | 50 | .ui-state-highlight { 51 | background-color: lighten($dark-grey, 20%); 52 | min-height: 30px; 53 | } 54 | 55 | .sortable__title { 56 | // background-color: $off-white; 57 | font-size: 1em; 58 | margin: 0; 59 | padding: 0; 60 | 61 | .sortables__active-list & { 62 | background-color: lighten($blue, 40%); 63 | } 64 | } 65 | 66 | 67 | .sortable__visibility { 68 | display: none; 69 | select { 70 | font-size: 10px; 71 | margin-left: 5px; 72 | } 73 | 74 | .sortables__active-list & { 75 | display: block; 76 | } 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/swatches.scss: -------------------------------------------------------------------------------- 1 | /* Swatches */ 2 | .swatches { 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | .swatch { 8 | background: black; 9 | float: left; 10 | margin-left: -1px; 11 | padding: 20px; 12 | } 13 | .swatch--white { 14 | background-color: #fff; 15 | } 16 | .swatch--navy { 17 | background-color: #112e51; 18 | } 19 | .swatch--blue { 20 | background-color: #02bfe7; 21 | } 22 | .swatch--grey { 23 | background-color: #f1f1f1; 24 | } 25 | .swatch--grey-medium { 26 | background-color: #d6d7d9; 27 | } 28 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_modules/widget-controls.scss: -------------------------------------------------------------------------------- 1 | /* Widget Control */ 2 | .benjamin-widget-area-options { 3 | display: none; 4 | } 5 | 6 | .widgets-holder-wrap .benjamin-widget-area-options { 7 | display: block; 8 | } 9 | 10 | .widgets-holder-wrap.closed .benjamin-widget-area-options { 11 | margin-bottom: 9px; 12 | } 13 | 14 | .customize-section-description, 15 | .customize-description-description { 16 | margin-bottom: 20px; 17 | } 18 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_post-formats/chat.scss: -------------------------------------------------------------------------------- 1 | 2 | // basically the wrapper around all the fields 3 | .chat-log { 4 | max-width: 500px; 5 | } 6 | 7 | // the select field for the chatlog location 8 | .chat-location-wrapper { 9 | margin-bottom: 10px; 10 | } 11 | 12 | // the fields with the author names 13 | .authors-form > div{ 14 | float: left; 15 | margin-right: 10px; 16 | 17 | label { 18 | display: block; 19 | } 20 | } 21 | 22 | 23 | // adding a new message either before the log, or when inserting into the log 24 | .new-message-form { 25 | > div { 26 | float: left; 27 | margin-right: 10px; 28 | } 29 | 30 | label { 31 | display: block; 32 | } 33 | 34 | button { 35 | clear: both; 36 | display: block; 37 | } 38 | } 39 | 40 | 41 | 42 | 43 | 44 | .message { 45 | margin-bottom: 10px; 46 | 47 | .message__author { 48 | font-size: 16px; 49 | margin: 0px; 50 | } 51 | } 52 | 53 | .message__actions{ 54 | a { 55 | font-size: 16px; 56 | } 57 | .dashicons-no { 58 | color:rgb(177, 43, 0); 59 | } 60 | .dashicons-plus-alt { 61 | color: rgb(3, 130, 0); 62 | } 63 | .dashicons-dismiss { 64 | color:rgb(177, 43, 0); 65 | } 66 | } 67 | 68 | .message__text { 69 | padding: 10px; 70 | margin:0 0 10px; 71 | position: relative; 72 | 73 | &::before { 74 | border-top: 10px solid transparent; 75 | border-bottom: 0 solid transparent; 76 | content: ''; 77 | display: block; 78 | height: 0; 79 | position: absolute; 80 | bottom: 0; 81 | width: 0; 82 | } 83 | p { 84 | margin:0 0 10px; 85 | } 86 | } 87 | 88 | .message--author-1 { 89 | .message__author {} 90 | .message__text{ 91 | background: rgb(117, 144, 230); 92 | &::before{ 93 | border-right: 10px solid rgb(117, 144, 230); 94 | left:-10px; 95 | } 96 | } 97 | } 98 | 99 | .message--author-2 { 100 | .message__author { 101 | text-align: right; 102 | } 103 | 104 | .message__text { 105 | background: rgb(145, 154, 182); 106 | text-align: right; 107 | &::before{ 108 | border-left: 10px solid rgb(145, 154, 182); 109 | right:-10px; 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_post-formats/gallery.scss: -------------------------------------------------------------------------------- 1 | .gallery::before, 2 | .gallery::after { 3 | content: " "; 4 | display: table; 5 | } 6 | 7 | .gallery::after { 8 | clear: both; 9 | } 10 | 11 | .gallery-item { 12 | float: left; 13 | margin:0 1em 1em 0; 14 | 15 | 16 | a { 17 | display: block; 18 | } 19 | 20 | 21 | 22 | // 1 column 23 | .gallery-columns-1 & { 24 | float: none; 25 | 26 | a { 27 | text-align: center; 28 | } 29 | } 30 | 31 | // set the image height ot auto so they do no stretch 32 | img { 33 | height: 75px; 34 | width: 75px; 35 | } 36 | 37 | 38 | .gallery-caption { 39 | display: none; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_post-formats/media.scss: -------------------------------------------------------------------------------- 1 | 2 | .pfp-media-holder { 3 | background-color: #000; 4 | margin-bottom: 10px; 5 | text-align: center; 6 | 7 | > img { 8 | margin-top: 4px; 9 | max-height: 300px; 10 | } 11 | } 12 | 13 | .pfp-video, 14 | .pfp-embed { 15 | margin-top: 4px; 16 | max-height: 300px; 17 | } 18 | 19 | .pfp-hide { 20 | display: none; 21 | } 22 | 23 | 24 | .pfp-or-hr { 25 | display: inline-block; 26 | margin: 0 5px; 27 | } 28 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_post-formats/misc.scss: -------------------------------------------------------------------------------- 1 | .cf:before, 2 | .cf:after { 3 | content: " "; /* 1 */ 4 | display: table; /* 2 */ 5 | } 6 | 7 | .cf:after { 8 | clear: both; 9 | } 10 | 11 | 12 | #post_formats_gallery{ 13 | overflow:auto; 14 | } 15 | 16 | #post_format_gallery_list li{ 17 | float:left; 18 | margin:5px; 19 | } 20 | 21 | #post_format_gallery_list li a{ 22 | text-align:center; 23 | } 24 | 25 | 26 | .pfp-quote-field { 27 | label { 28 | display: block; 29 | margin-bottom: 5px; 30 | } 31 | input, 32 | textarea { 33 | min-width: 300px; 34 | max-width: 100%; 35 | resize: none; 36 | } 37 | 38 | textarea { 39 | width: 100%; 40 | } 41 | } 42 | 43 | .pfp-aside, 44 | .pfp-status { 45 | textarea { 46 | width: 100%; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/_settings/variables.scss: -------------------------------------------------------------------------------- 1 | $white: rgba(255, 255, 255, 1); 2 | $black: rgba(0, 0, 0, 1); 3 | $off-black: #3a3939; 4 | 5 | $yellow: rgba(247, 212, 21, 1); 6 | $green: rgba(7, 167, 82, 1); 7 | $orange: rgba(222, 135, 2, 1); 8 | $blue: rgba(11, 148, 214, 1); 9 | $red: rgba(191, 17, 56, 1); 10 | $red-light: rgba(199, 53, 53, 1); 11 | $silver: rgba(161, 163, 161, 1); 12 | $light-grey: #929292; 13 | $dark-grey: rgb(112, 112, 112); 14 | $purple: #823aa0; 15 | $purple-light: #9e54bd; 16 | $white-faded: rgba(255, 255, 255, .2); 17 | $white-faded-less: rgba(255,255,255,.1); 18 | $off-yellow: #405539; 19 | $black-background: rgba(0, 0, 0, .6); 20 | $white-background: rgba(255, 255, 255, .6); 21 | $off-white: rgb(219, 219, 219); 22 | -------------------------------------------------------------------------------- /_dev/admin-src/scss/benjamin-admin.scss: -------------------------------------------------------------------------------- 1 | @import '_settings/variables'; 2 | 3 | @import '_modules/form-alert'; 4 | @import '_modules/clearfix'; 5 | @import '_modules/swatches'; 6 | @import '_modules/sortables'; 7 | @import '_modules/widget-controls'; 8 | @import '_modules/section-tabs'; 9 | 10 | @import '_modules/franklin-notice'; 11 | @import '_modules/post-format'; 12 | @import '_modules/media'; 13 | @import '_modules/one-offs'; 14 | 15 | @import "_post-formats/chat.scss"; 16 | @import "_post-formats/misc.scss"; 17 | @import "_post-formats/media.scss"; 18 | @import "_post-formats/gallery.scss"; 19 | -------------------------------------------------------------------------------- /_dev/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Benjamin", 3 | "version": "1.0.0", 4 | "devDependencies": { 5 | "aliasify": "2.0.0", 6 | "autoprefixer": "6.3.6", 7 | "browser-sync": "2.12.2", 8 | "browserify": "9.0.4", 9 | "css-mqpacker": "4.0.1", 10 | "del": "2.2.0", 11 | "es6-promise": "3.1.2", 12 | "gulp": "3.9.1", 13 | "gulp-bower": "0.0.10", 14 | "gulp-concat": "2.6.0", 15 | "gulp-cssnano": "2.1.1", 16 | "gulp-if": "2.0.2", 17 | "gulp-imagemin": "2.3.0", 18 | "gulp-jshint": "2.0.0", 19 | "gulp-notify": "2.2.0", 20 | "gulp-minify": "0.0.7 ", 21 | "gulp-plumber": "1.1.0", 22 | "gulp-postcss": "6.1.0", 23 | "gulp-rename": "1.2.2", 24 | "gulp-sass": "2.3.1", 25 | "gulp-sourcemaps": "1.6.0", 26 | "gulp-util": "3.0.7", 27 | "gulp-watch": "4.3.5", 28 | "gulp-wp-pot": "2.0.4", 29 | "imagemin-pngquant": "4.2.2", 30 | "react": "15.6.1", 31 | "react-dom": "15.6.1", 32 | "uswds": "1.1.0", 33 | "vinyl-transform": "1.0.0", 34 | "vinyl-source-stream": "1.1.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /_dev/src/img/close-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/_dev/src/img/close-white.png -------------------------------------------------------------------------------- /_dev/src/img/close-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_dev/src/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/_dev/src/img/close.png -------------------------------------------------------------------------------- /_dev/src/img/minus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/_dev/src/img/minus-white.png -------------------------------------------------------------------------------- /_dev/src/img/minus-white.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /_dev/src/img/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/_dev/src/img/minus.png -------------------------------------------------------------------------------- /_dev/src/js/_benjamin-previewer.js: -------------------------------------------------------------------------------- 1 | // 'use strict'; 2 | 3 | jQuery(document).ready(function($) { 4 | 5 | wp.customize.preview.bind( 'widgetWidthClasses', function ( data ) { 6 | 7 | setTimeout(function(){ 8 | 9 | var $widgets = document.querySelectorAll('.widget-area--' + data.sidebar); 10 | var prefix = 'usa-width-'; 11 | var newClasses; 12 | 13 | 14 | $widgets.forEach(function($e,i,a){ 15 | 16 | var classes = $e.className.split(" ").filter(function(c) { 17 | return c.indexOf(prefix) !== 0; 18 | }); 19 | classes.push(data.className); 20 | classes = classes.join(" ").trim(); 21 | 22 | $e.className = classes; 23 | }); 24 | 25 | }, 1000); 26 | 27 | 28 | 29 | }); 30 | 31 | }); 32 | 33 | window.$ = jQuery; -------------------------------------------------------------------------------- /_dev/src/js/mobile-video-bg.js: -------------------------------------------------------------------------------- 1 | var windowWidth = window.innerWidth; 2 | 3 | if(windowWidth > 600) { 4 | var $videos = document.getElementsByClassName('video-bg'); 5 | 6 | 7 | for (var i = 0; i < $videos.length; i++) { 8 | var $elm = $videos[i]; 9 | var $video = $elm.getElementsByClassName('video')[0]; 10 | var videoFile = $video.getAttribute("data-src"); 11 | $video.src = videoFile; 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /_dev/src/js/resize-hero.js: -------------------------------------------------------------------------------- 1 | var $hero = document.querySelector('.usa-hero--full'); 2 | var $navbar = document.querySelector('.usa-header'); 3 | var $banner = document.querySelector('.usa-banner'); 4 | 5 | // console.log($navbar.offsetHeight + $banner.offsetHeight); 6 | // console.log($hero.offsetHeight); 7 | // console.log('width:'+($navbar.offsetHeight + $banner.offsetHeight)+'px'); -------------------------------------------------------------------------------- /_dev/src/js/uswds.js: -------------------------------------------------------------------------------- 1 | require('uswds'); 2 | require('./mobile-video-bg'); 3 | require('./resize-hero'); -------------------------------------------------------------------------------- /_dev/src/scss/_mixins/sidebar.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/_dev/src/scss/_mixins/sidebar.scss -------------------------------------------------------------------------------- /_dev/src/scss/_modules/alerts.scss: -------------------------------------------------------------------------------- 1 | 2 | // Alert variables ---------- // 3 | $usa-custom-alerts: () !default; 4 | 5 | $usa-alerts: ( 6 | success: $color-green-lightest, 7 | warning: $color-gold-lightest, 8 | error: $color-secondary-lightest, 9 | info: $color-primary-alt-lightest 10 | ); 11 | 12 | $alerts: map-merge($usa-alerts, $usa-custom-alerts); 13 | 14 | div.wpcf7-response-output{ 15 | background-color: $color-gray-lightest; 16 | background-position: 1rem 2rem; 17 | background-repeat: no-repeat; 18 | background-size: 4rem; 19 | margin: 1.5em 0 2em; 20 | max-width: 46rem; 21 | padding: 1.2em 3em 2em 4em; 22 | 23 | 24 | &.wpcf7-validation-errors { 25 | background-color: #f9dede; 26 | background-image: url(../img/alerts/error.svg); 27 | border-width: 0; 28 | } 29 | 30 | &.wpcf7-mail-sent-ok { 31 | background-color: $color-green-lightest; 32 | background-image: url(../img/alerts/success.svg); 33 | border-width: 0; 34 | } 35 | 36 | @include media($medium-screen) { 37 | background-size: 5.2rem; 38 | padding-left: 4em; 39 | } 40 | 41 | ul { 42 | margin-bottom: 0; 43 | margin-top: 1em; 44 | } 45 | 46 | .usa-alert-icon { 47 | display: table-cell; 48 | padding-right: 1rem; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/articles.scss: -------------------------------------------------------------------------------- 1 | article { 2 | 3 | margin-bottom: 6rem; 4 | 5 | &::after, 6 | &::before, { 7 | content: " "; 8 | display: table; 9 | } 10 | 11 | &::after { 12 | clear: both; 13 | } 14 | 15 | 16 | 17 | p:before, 18 | p:after { 19 | content: " "; /* 1 */ 20 | display: table; /* 2 */ 21 | } 22 | 23 | p:after { 24 | clear: both; 25 | } 26 | 27 | /** 28 | * For IE 6/7 only 29 | * Include this rule to trigger hasLayout and contain floats. 30 | */ 31 | p { 32 | *zoom: 1; 33 | } 34 | 35 | .entry-footer { 36 | clear: both; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/audio.scss: -------------------------------------------------------------------------------- 1 | .audio-player__player { 2 | width: 100%; 3 | } -------------------------------------------------------------------------------- /_dev/src/scss/_modules/blockquote.scss: -------------------------------------------------------------------------------- 1 | blockquote { 2 | p::before, 3 | cite::before { 4 | color: $color-gray-light; 5 | font-family: 'dashicons'; 6 | display: inline-block; 7 | } 8 | p { 9 | font-size: 3rem; 10 | margin: 0; 11 | margin-bottom: .5rem; 12 | 13 | &::before { 14 | content: "\f122"; 15 | } 16 | } 17 | 18 | cite::before { 19 | content: "\f460"; 20 | } 21 | } -------------------------------------------------------------------------------- /_dev/src/scss/_modules/brand.scss: -------------------------------------------------------------------------------- 1 | .usa-header-basic .usa-logo { 2 | @media(min-width: 951px) { 3 | bottom: initial; 4 | position: initial; 5 | padding-top: 2rem; 6 | padding-bottom: 1.9rem; 7 | } 8 | } 9 | 10 | 11 | .usa-logo-text { 12 | font-family: 'Source Sans Pro', 'Helvetica Neue', 'Helvetica', 'Roboto', 'Arial', 'sans-serif'; 13 | line-height: 4rem; 14 | } 15 | 16 | .usa-logo-image a{ 17 | display: block; 18 | height: 4rem; 19 | line-height: 4rem; 20 | 21 | img { 22 | vertical-align: middle; 23 | max-height: 100%; 24 | max-width: initial; 25 | width: auto; 26 | @media(max-width: 950px){ 27 | height: 2rem; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/checkboxes.scss: -------------------------------------------------------------------------------- 1 | [type=checkbox], 2 | [type=radio] { 3 | margin-left: -2rem; 4 | opacity: 0; 5 | position: absolute; 6 | 7 | .lt-ie9 & { 8 | border: 0; 9 | float: left; 10 | margin: 0.4em 0.4em 0 0; 11 | position: static; 12 | width: auto; 13 | } 14 | } 15 | 16 | [type=checkbox] + span, 17 | [type=radio] + span { 18 | cursor: pointer; 19 | font-weight: 400; 20 | margin-bottom: 0.5em; 21 | } 22 | 23 | [type=checkbox] + span::before, 24 | [type=radio] + span::before { 25 | background: $color-white; 26 | border-radius: $border-radius; 27 | box-shadow: 0 0 0 1px $color-gray-medium; 28 | content: '\a0'; 29 | display: inline-block; 30 | height: 1.8rem; 31 | line-height: 1.8rem; 32 | margin-right: 0.6em; 33 | text-indent: 0.15em; 34 | vertical-align: middle\0; // Target IE 11 and below to vertically center inputs 35 | width: 1.8rem; 36 | } 37 | 38 | [type=radio] + span::before { 39 | box-shadow: 0 0 0 2px $color-white, 0 0 0 3px $color-gray-medium; 40 | height: 1.6rem; 41 | line-height: 1.6rem; 42 | width: 1.6rem; 43 | border-radius: 100%; 44 | } 45 | 46 | [type=checkbox]:checked + span::before, 47 | [type=radio]:checked + span::before { 48 | background-color: $color-primary; 49 | box-shadow: 0 0 0 1px $color-primary; 50 | } 51 | 52 | [type=radio]:checked + span::before { 53 | box-shadow: 0 0 0 2px $color-white, 0 0 0 4px $color-primary; 54 | } 55 | 56 | [type=radio]:focus + span::before { 57 | box-shadow: 0 0 0 2px $color-white, 0 0 0 4px $color-primary, 0 0 3px 4px $color-focus, 0 0 7px 4px $color-focus; 58 | } 59 | 60 | [type=checkbox]:checked + span::before, 61 | [type=checkbox]:checked:disabled + span::before { 62 | background-image: url('#{$image-path}/correct8.png'); 63 | background-image: url('#{$image-path}/correct8.svg'); 64 | background-position: 50%; 65 | background-repeat: no-repeat; 66 | } 67 | 68 | [type=checkbox]:focus + span::before { 69 | box-shadow: 0 0 0 1px $color-white, 0 0 0 3px $color-primary; 70 | } 71 | 72 | [type=checkbox]:disabled + span { 73 | color: $color-gray; 74 | } 75 | 76 | [type=checkbox]:disabled + span::before, 77 | [type=radio]:disabled + span::before { 78 | background: $color-gray-lighter; 79 | box-shadow: 0 0 0 1px $color-gray-light; 80 | cursor: not-allowed; 81 | } 82 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/comments.scss: -------------------------------------------------------------------------------- 1 | .comment-list { 2 | list-style-type: none; 3 | padding-left: 0; 4 | } 5 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/contact-block.scss: -------------------------------------------------------------------------------- 1 | .usa-footer-contact-links { 2 | margin-bottom: 4rem; 3 | 4 | &.left { 5 | text-align: left; 6 | } 7 | 8 | &.center { 9 | text-align: center; 10 | } 11 | 12 | &.left .usa-social-link, 13 | &.center .usa-social-link { 14 | margin-left: 0; 15 | margin-right: 1rem; 16 | left: 0; 17 | right: 1.2rem; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/entry.scss: -------------------------------------------------------------------------------- 1 | .entry { 2 | 3 | margin-bottom: 6rem; 4 | 5 | // clearfix 6 | &::after, 7 | &::before, { 8 | content: " "; 9 | display: table; 10 | } 11 | 12 | &::after { 13 | clear: both; 14 | } 15 | 16 | /** 17 | * For IE 6/7 only 18 | * Include this rule to trigger hasLayout and contain floats. 19 | */ 20 | p { 21 | *zoom: 1; 22 | } 23 | 24 | .entry-title { 25 | .dashicons { 26 | color: $color-gray-light; 27 | font-size: inherit; 28 | height: auto; 29 | margin-right: 1.5rem; 30 | line-height: 1.3; 31 | width: auto; 32 | } 33 | } 34 | 35 | .entry-footer { 36 | clear: both; 37 | } 38 | 39 | .entry-header { 40 | margin-bottom: 2rem; 41 | } 42 | 43 | .entry-meta__field { 44 | margin-right: 10px; 45 | 46 | .dashicons { 47 | color: $color-gray-light; 48 | margin-right: .8rem; 49 | } 50 | 51 | } 52 | 53 | .usa-width-one-fourth .entry-meta__field{ 54 | display: block; 55 | margin-bottom: 5px; 56 | margin-right: 0; 57 | 58 | } 59 | 60 | 61 | .entry-featured-image { 62 | 63 | margin: 0 0 10px; 64 | } 65 | 66 | 67 | .link-offsite .dashicons{ 68 | font-size: .8em; 69 | text-decoration: none; 70 | } 71 | } 72 | 73 | .entry__post-format-header { 74 | margin-bottom: 3rem; 75 | } -------------------------------------------------------------------------------- /_dev/src/scss/_modules/featured-post.scss: -------------------------------------------------------------------------------- 1 | .usa-featured-post-hero a { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/footer-nav.scss: -------------------------------------------------------------------------------- 1 | .usa-footer .usa-footer-primary-link.usa-current { 2 | color: $color-primary; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/form.scss: -------------------------------------------------------------------------------- 1 | .wpcf7-not-valid { 2 | border: 3px solid #cd2026; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/gallery.scss: -------------------------------------------------------------------------------- 1 | .gallery::before, 2 | .gallery::after { 3 | content: " "; 4 | display: table; 5 | } 6 | 7 | .gallery::after { 8 | clear: both; 9 | } 10 | 11 | .gallery-item { 12 | float: left; 13 | margin:0 1em 1em 0; 14 | padding-bottom: 2.2rem; 15 | position: relative; 16 | 17 | 18 | a { 19 | display: block; 20 | } 21 | 22 | // on phone sized screens, images are all stacked 23 | @media(max-width: $small-screen) { 24 | float: none; 25 | text-align: center; 26 | max-width: 100%; 27 | width: auto; 28 | } 29 | // on medium size screens and up, galleries have variable image sizes 30 | @media(min-width: $small-screen) { 31 | @for $i from 1 through 12 { 32 | .gallery-columns-#{$i} & { 33 | width: calc( ( 100% / #{$i} ) - 1em); 34 | } 35 | } 36 | 37 | } 38 | 39 | // set the image height ot auto so they do no stretch 40 | img { 41 | height: auto; 42 | } 43 | 44 | .gallery-caption { 45 | line-height: 2.2rem; 46 | margin-bottom: -2.2rem; 47 | overflow: hidden; 48 | text-overflow: ellipsis; 49 | white-space: nowrap; 50 | 51 | } 52 | &:hover .gallery-caption, 53 | &:focus .gallery-caption, 54 | &:active .gallery-caption { 55 | background-color: $color-white; 56 | overflow: auto; 57 | position: absolute; 58 | text-overflow: initial; 59 | white-space: initial; 60 | width: 100%; 61 | z-index: 99; 62 | } 63 | 64 | // 1 column 65 | .gallery-columns-1 & { 66 | float: none; 67 | 68 | a { 69 | text-align: center; 70 | } 71 | } 72 | 73 | 74 | } 75 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/grid-bugfixes.scss: -------------------------------------------------------------------------------- 1 | @media screen and (min-width: 600px) { 2 | 3 | .usa-width-one-fourth { 4 | float: left; 5 | display: block; 6 | margin-right: 2.35765%; 7 | width: 23.23176%; 8 | } 9 | .usa-width-one-fourth:last-child { 10 | margin-right: 0; 11 | } 12 | .usa-width-one-fourth:nth-child(2n) { 13 | float: left; 14 | display: block; 15 | margin-right: 2.35765%; 16 | width: 23.23176%; 17 | } 18 | .usa-width-one-fourth:nth-child(2n):last-child { 19 | margin-right: 0; 20 | } 21 | .usa-width-one-fourth:nth-child(4n) { 22 | margin-right: 0; 23 | } 24 | .usa-width-three-fourths { 25 | float: left; 26 | display: block; 27 | margin-right: 2.35765%; 28 | width: 74.41059%; 29 | } 30 | .usa-width-three-fourths:last-child { 31 | margin-right: 0; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/hero.scss: -------------------------------------------------------------------------------- 1 | 2 | /* Hero */ 3 | .usa-hero, 4 | .usa-hero a { 5 | color: white; 6 | } 7 | 8 | .usa-hero { 9 | background-color: $color-primary-alt-darkest; 10 | background-image: none; 11 | position: relative; 12 | 13 | .post-meta__field, 14 | .entry-meta__field { 15 | float: left; 16 | margin-bottom: 0; 17 | margin-right: 10px; 18 | } 19 | 20 | .hero__pre-title { 21 | margin-bottom: 2rem; 22 | 23 | .dashicons { 24 | font-size: inherit; 25 | height: auto; 26 | margin-right: 1.5rem; 27 | line-height: 1.3; 28 | width: auto; 29 | } 30 | } 31 | 32 | .hero__post_format { 33 | margin-bottom: 1.4rem; 34 | } 35 | } 36 | 37 | 38 | // the title 39 | .hero__title { 40 | 41 | .dashicons { 42 | font-size: inherit; 43 | height: auto; 44 | margin-right: 1.5rem; 45 | line-height: 1.3; 46 | width: auto; 47 | } 48 | } 49 | 50 | 51 | // Sizes 52 | .usa-hero--slim { 53 | 54 | .audio-player { 55 | margin-bottom: -3rem; 56 | } 57 | } 58 | 59 | 60 | 61 | .usa-hero--medium { 62 | padding-top: 6rem; 63 | padding-bottom: 6rem; 64 | 65 | .audio-player { 66 | margin-bottom: -6rem; 67 | } 68 | } 69 | 70 | .usa-hero--big { 71 | padding-top: 9rem; 72 | padding-bottom: 9rem; 73 | 74 | .audio-player { 75 | margin-bottom: -9rem; 76 | } 77 | } 78 | 79 | .usa-hero--xtra-big { 80 | padding-top: 14rem; 81 | padding-bottom: 14rem; 82 | 83 | .audio-player { 84 | margin-bottom: -14rem; 85 | } 86 | } 87 | 88 | 89 | // Full hgiht hero 90 | .usa-hero--full { 91 | min-height: 100vh; 92 | } 93 | 94 | // trim hero a little more if the admin bar is showing 95 | .admin-bar .usa-hero--full { 96 | min-height: calc( 100vh - 46px); 97 | 98 | @media(min-width: 782px) { 99 | min-height: calc( 100vh - 32px); 100 | 101 | } 102 | } 103 | 104 | 105 | 106 | // the image BG overlay 107 | .usa-hero::before { 108 | background-color: $black-overlay; 109 | content: ''; 110 | display: block; 111 | position: absolute; 112 | top: 0; 113 | right: 0; 114 | bottom: 0; 115 | left: 0; 116 | } 117 | 118 | .usa-hero > .usa-grid{ 119 | position: relative; 120 | } 121 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/images.scss: -------------------------------------------------------------------------------- 1 | img { 2 | height: auto; 3 | max-width: 100%; 4 | } 5 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/main.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: $color-gray-lightest; 3 | } 4 | 5 | #main-content { 6 | background: $color-white; 7 | } 8 | 9 | 10 | .main-content { 11 | 12 | min-height: 1px; 13 | } 14 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/media-block.scss: -------------------------------------------------------------------------------- 1 | .usa-media_block--right { 2 | text-align: right; 3 | } 4 | 5 | .usa-media_block--right .usa-media_block-img { 6 | float: right; 7 | margin-left: 3rem; 8 | margin-right: 0; 9 | } 10 | 11 | .usa-media_block{ 12 | margin-bottom: 3rem; 13 | } 14 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/nav-links.scss: -------------------------------------------------------------------------------- 1 | .nav-links a { 2 | text-decoration: none; 3 | } -------------------------------------------------------------------------------- /_dev/src/scss/_modules/navbar--dark.scss: -------------------------------------------------------------------------------- 1 | 2 | .usa-header--dark { 3 | background-color: $color-primary-darkest; 4 | border-bottom: 1px solid $color-primary; 5 | 6 | .usa-navbar { 7 | border-bottom: 0; 8 | } 9 | 10 | .usa-logo a { 11 | color: $color-white; 12 | } 13 | 14 | .usa-nav { 15 | background-color: $color-primary-darkest; 16 | } 17 | 18 | .usa-nav-primary button, 19 | .usa-nav-primary > li > a { 20 | color: $color-white; 21 | } 22 | 23 | .usa-nav-primary button[aria-expanded=false] { /* stylelint-disable-line selector-no-qualifying-type */ 24 | background-image: url('#{$image-path}/angle-arrow-down-hover.png'); 25 | background-image: url('#{$image-path}/angle-arrow-down-hover.svg'); 26 | } 27 | 28 | 29 | 30 | .is-visible .usa-nav-primary a:hover, 31 | .is-visible .usa-nav-primary button:hover { 32 | background-color: $color-primary-alt-dark; 33 | color: $color-primary-darkest; 34 | 35 | } 36 | 37 | .is-visible .usa-nav-primary button[aria-expanded=true] { 38 | background-image: url('#{$image-path}/minus-white.png'); 39 | background-image: url('#{$image-path}/minus-white.svg'); 40 | } 41 | 42 | // submenu 43 | .usa-nav-primary button[aria-expanded=true] { 44 | background-color: $color-primary; 45 | > span { 46 | border-bottom-color: $color-primary-darkest; 47 | } 48 | } 49 | .usa-nav-submenu { 50 | background-color: $color-primary; 51 | } 52 | 53 | 54 | // mobile submenu / drawer 55 | .is-visible .usa-nav-primary .usa-nav-submenu a { 56 | color: $color-white; 57 | 58 | &:hover { 59 | color: $color-primary-darkest; 60 | } 61 | } 62 | 63 | .usa-nav-close { 64 | background-image: url('#{$image-path}/close-white.png'); 65 | background-position: center center; 66 | background-repeat: no-repeat; 67 | background-size: 13px; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/navbar-secondary.scss: -------------------------------------------------------------------------------- 1 | .site-nav-secondary { 2 | padding: 1.5em 0; 3 | } 4 | 5 | 6 | 7 | .usa-brand-wrapper + .usa-site-nav-secondary__widgets { 8 | float: right; 9 | } 10 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/navbar.scss: -------------------------------------------------------------------------------- 1 | .usa-header { 2 | background-color: $color-white; 3 | } 4 | 5 | .usa-header.sticky { 6 | position: sticky; 7 | position: -webkit-sticky; 8 | top: 0; 9 | z-index: 9999; 10 | .admin-bar & { 11 | top: 32px; 12 | 13 | @media screen and (max-width: 782px) { 14 | top: 46px; 15 | } 16 | } 17 | 18 | } 19 | 20 | /* navbar */ 21 | .usa-navbar { 22 | width: auto ; 23 | 24 | @media screen and (min-width: 951px){ 25 | width: auto; 26 | } 27 | } 28 | 29 | .usa-header-basic .usa-navbar { 30 | @media screen and (min-width: 951px){ 31 | width: auto; 32 | } 33 | } 34 | 35 | .usa-logo { 36 | position: relative; 37 | } 38 | 39 | @media screen and (min-width: 951px){ 40 | .usa-nav-container .usa-nav{ 41 | padding-top: 2rem; 42 | } 43 | // 44 | .usa-nav-container .usa-navbar{ 45 | height: 7.3rem; 46 | // width: auto; 47 | } 48 | } 49 | 50 | 51 | .usa-accordion-button.usa-nav-link.child-active > span{ 52 | border-bottom: 0.7rem solid $color-primary; 53 | padding-bottom: 1rem; 54 | } 55 | 56 | .usa-nav-close { 57 | background-image: url('#{$image-path}/close.png'); 58 | background-position: center center; 59 | background-repeat: no-repeat; 60 | background-size: 13px; 61 | } 62 | 63 | @media screen and (max-width: 782px) { 64 | .admin-bar .usa-nav { 65 | top: 46px; 66 | } 67 | } 68 | 69 | 70 | @media screen and (max-width: 950px) { 71 | .admin-bar .usa-nav { 72 | top: 32px; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/navlist.scss: -------------------------------------------------------------------------------- 1 | .usa-navlist-item { 2 | line-height: 2em; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/page-links.scss: -------------------------------------------------------------------------------- 1 | .page-links { 2 | margin-bottom: 1.5rem; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/page.scss: -------------------------------------------------------------------------------- 1 | .page { 2 | 3 | margin-bottom: 6rem; 4 | 5 | &::after, 6 | &::before, { 7 | content: " "; 8 | display: table; 9 | } 10 | 11 | &::after { 12 | clear: both; 13 | } 14 | 15 | 16 | 17 | p:before, 18 | p:after { 19 | content: " "; /* 1 */ 20 | display: table; /* 2 */ 21 | } 22 | 23 | p:after { 24 | clear: both; 25 | } 26 | 27 | /** 28 | * For IE 6/7 only 29 | * Include this rule to trigger hasLayout and contain floats. 30 | */ 31 | p { 32 | *zoom: 1; 33 | } 34 | 35 | .entry-footer { 36 | clear: both; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/post-navigation.scss: -------------------------------------------------------------------------------- 1 | .post-navigation { 2 | margin-bottom: 1.5rem; 3 | 4 | &::before, 5 | &::after { 6 | content: " "; 7 | display: table; 8 | } 9 | 10 | &::after { 11 | clear: both; 12 | } 13 | 14 | } 15 | 16 | 17 | .nav-previous { 18 | float: left; 19 | } 20 | 21 | .nav-next { 22 | float: right; 23 | } 24 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/post.scss: -------------------------------------------------------------------------------- 1 | .post { 2 | 3 | margin-bottom: 6rem; 4 | 5 | // clearfix 6 | &::after, 7 | &::before, { 8 | content: " "; 9 | display: table; 10 | } 11 | 12 | &::after { 13 | clear: both; 14 | } 15 | 16 | 17 | // clear fix the paragraps 18 | p:before, 19 | p:after { 20 | content: " "; /* 1 */ 21 | display: table; /* 2 */ 22 | } 23 | 24 | p:after { 25 | clear: both; 26 | } 27 | 28 | /** 29 | * For IE 6/7 only 30 | * Include this rule to trigger hasLayout and contain floats. 31 | */ 32 | p { 33 | *zoom: 1; 34 | } 35 | 36 | .post-title { 37 | .dashicons { 38 | color: $color-gray-light; 39 | font-size: inherit; 40 | height: auto; 41 | margin-right: 1.5rem; 42 | line-height: 1.3; 43 | width: auto; 44 | } 45 | } 46 | 47 | .post-footer { 48 | clear: both; 49 | } 50 | 51 | .post-header { 52 | margin-bottom: 2rem; 53 | } 54 | 55 | .post-meta__field { 56 | margin-right: 10px; 57 | 58 | .dashicons { 59 | color: $color-gray-light; 60 | margin-right: .8rem; 61 | } 62 | 63 | } 64 | 65 | .usa-width-one-fourth .post-meta__field{ 66 | display: block; 67 | margin-bottom: 5px; 68 | margin-right: 0; 69 | 70 | } 71 | 72 | 73 | .post-featured-image { 74 | 75 | margin: 0 0 10px; 76 | } 77 | 78 | 79 | .link-offsite .dashicons{ 80 | font-size: .8em; 81 | text-decoration: none; 82 | } 83 | } 84 | 85 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/sections.scss: -------------------------------------------------------------------------------- 1 | #primary{ 2 | position: relative; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/sidebar.scss: -------------------------------------------------------------------------------- 1 | .sidebar { 2 | min-height: 1px; 3 | } 4 | 5 | 6 | .sidebar.usa-section-dark { 7 | 8 | &::after { 9 | z-index: -1; 10 | } 11 | 12 | 13 | &::before { 14 | background-color: $color-primary-darkest; 15 | background-image: none; 16 | width: calc(100vw); 17 | margin-left: calc(#{$site-margins}/-2); 18 | } 19 | 20 | &::before, 21 | &::after{ 22 | bottom: 0; 23 | content: ''; 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | 28 | } 29 | 30 | 31 | .widget { 32 | position: relative; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/sidenav.scss: -------------------------------------------------------------------------------- 1 | .usa-section-dark { 2 | .usa-sidenav-list li > span { 3 | color: $color-primary-alt-light; 4 | } 5 | 6 | .usa-sidenav-list a { 7 | color: $color-white; 8 | 9 | &:hover { 10 | background: $color-primary-alt-dark; 11 | color: $color-primary-darkest; 12 | 13 | 14 | } 15 | 16 | } 17 | } 18 | 19 | 20 | .sidenav.sticky { 21 | position: sticky; 22 | position: -webkit-sticky; 23 | top: 0; 24 | 25 | .admin-bar & { 26 | top: 32px; 27 | 28 | @media screen and (max-width: 782px) { 29 | top: 46px; 30 | } 31 | } 32 | 33 | @media(max-width: $medium-screen){ 34 | display: none; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/sortables.scss: -------------------------------------------------------------------------------- 1 | .sortable-row { 2 | margin-bottom: 2.5em; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/table.scss: -------------------------------------------------------------------------------- 1 | /* Table fix */ 2 | .sortable-row table th, 3 | .sortable-row table td, 4 | .usa-width-one-third table th, 5 | .usa-width-one-third table td { 6 | padding: .5rem; 7 | } 8 | 9 | .usa-width-one-fourth table th, 10 | .usa-width-one-fourth table td { 11 | padding: .25rem; 12 | } 13 | 14 | .usa-section-dark { 15 | table td, 16 | table th { 17 | color: $color-primary; 18 | 19 | a { 20 | color: $color-primary-alt-dark; 21 | 22 | &:hover, 23 | &:focus, 24 | &:active { 25 | color: $color-primary-alt-darkest; 26 | } 27 | } 28 | } 29 | } 30 | 31 | 32 | .widget table { 33 | margin-top: 0; 34 | } 35 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/typography.scss: -------------------------------------------------------------------------------- 1 | h1, 2 | h2, 3 | h3, 4 | h4, 5 | h5, 6 | h6 { 7 | margin-top: 0; 8 | } 9 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/video-bg.scss: -------------------------------------------------------------------------------- 1 | 2 | .video-bg { 3 | display: none; 4 | overflow: hidden; 5 | position: absolute; 6 | top: 0; 7 | right: 0; 8 | bottom: 0; 9 | left: 0; 10 | 11 | @media(min-width: $medium-screen) { 12 | display: block; 13 | } 14 | 15 | > video{ 16 | bottom: 0; 17 | height: auto; 18 | min-height: 100%; 19 | min-width: 100%; 20 | position: absolute; 21 | right: 0; 22 | top: 0; 23 | width: auto; 24 | } 25 | 26 | > iframe { 27 | width: 100vw; 28 | height: calc(100vw/1.77) 29 | } 30 | 31 | &::after { 32 | background-color: $black-overlay; 33 | content: ''; 34 | display: block; 35 | position: absolute; 36 | top: 0; 37 | right: 0; 38 | bottom: 0; 39 | left: 0; 40 | } 41 | } 42 | 43 | .video-screen { 44 | 45 | > * { 46 | max-height: 400px; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/widgets.scss: -------------------------------------------------------------------------------- 1 | .widget { 2 | margin-bottom: 4rem; 3 | } 4 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/wp-editor.scss: -------------------------------------------------------------------------------- 1 | .alignnone { 2 | margin: 5px 20px 20px 0; 3 | } 4 | 5 | .aligncenter, 6 | div.aligncenter { 7 | display: block; 8 | margin: 0 auto 20px; 9 | } 10 | 11 | .alignright { 12 | float:right; 13 | margin:0 0 0 20px; 14 | } 15 | 16 | .alignleft { 17 | float: left; 18 | margin:0 20px 0 0; 19 | } 20 | 21 | .aligncenter { 22 | display: block; 23 | 24 | } 25 | 26 | a img.alignright { 27 | float: right; 28 | margin:0 0 0 20px; 29 | } 30 | 31 | a img.alignnone { 32 | 33 | } 34 | 35 | a img.alignleft { 36 | float: left; 37 | margin:0 20px 0 0; 38 | } 39 | 40 | a img.aligncenter { 41 | display: block; 42 | margin-left: auto; 43 | margin-right: auto 44 | } 45 | 46 | .gallery-caption, 47 | .wp-caption { 48 | max-width: 96%; /* Image does not overflow the content area */ 49 | } 50 | 51 | .gallery-caption.alignnone, 52 | .wp-caption.alignnone { 53 | margin: 5px 20px 20px 0; 54 | } 55 | .gallery-caption.alignleft, 56 | .wp-caption.alignleft { 57 | margin: 5px 20px 20px 0; 58 | } 59 | 60 | .gallery-caption.alignright, 61 | .wp-caption.alignright { 62 | margin: 5px 0 20px 20px; 63 | } 64 | .gallery-caption p.wp-caption-text, 65 | .wp-caption p.wp-caption-text { 66 | font-size: 11px; 67 | line-height: 17px; 68 | margin: 10px 0 0; 69 | text-align: center; 70 | } 71 | -------------------------------------------------------------------------------- /_dev/src/scss/_modules/wp-styles.scss: -------------------------------------------------------------------------------- 1 | /* Text meant only for screen readers. */ 2 | .screen-reader-text { 3 | clip: rect(1px, 1px, 1px, 1px); 4 | position: absolute !important; 5 | white-space: nowrap; 6 | height: 1px; 7 | width: 1px; 8 | overflow: hidden; 9 | } 10 | 11 | .screen-reader-text:focus { 12 | background-color: #f1f1f1; 13 | border-radius: 3px; 14 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 15 | clip: auto !important; 16 | color: #21759b; 17 | display: block; 18 | font-size: 14px; 19 | font-size: 0.875rem; 20 | font-weight: bold; 21 | height: auto; 22 | left: 5px; 23 | line-height: normal; 24 | padding: 15px 23px 14px; 25 | text-decoration: none; 26 | top: 5px; 27 | width: auto; 28 | z-index: 100000; /* Above WP toolbar. */ 29 | } 30 | 31 | 32 | 33 | .bypostauthor { 34 | display: block; 35 | } 36 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/clearfix.scss: -------------------------------------------------------------------------------- 1 | .cf::before, 2 | .cf::after { 3 | content: " "; 4 | display: table; 5 | } 6 | 7 | .cf::after { 8 | clear: both; 9 | } 10 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/content-breakpoint.scss: -------------------------------------------------------------------------------- 1 | @function content-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) { 2 | @if length($query) == 1 { 3 | $query: $default-feature nth($query, 1) $total-columns; 4 | } @else if is-even(length($query)) { 5 | $query: append($query, $total-columns); 6 | } 7 | 8 | @if is-not(belongs-to($query, $visual-grid-breakpoints)) { 9 | $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; 10 | } 11 | 12 | @return $query; 13 | } 14 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/content-media.scss: -------------------------------------------------------------------------------- 1 | 2 | @mixin content-media($query: $feature $value $columns, $total-columns: $grid-columns) { 3 | @if length($query) == 1 { 4 | @media screen and ($default-feature: nth($query, 1)) { 5 | $default-grid-columns: $grid-columns; 6 | $grid-columns: $total-columns !global; 7 | @content; 8 | $grid-columns: $default-grid-columns !global; 9 | } 10 | } @else { 11 | $loop-to: length($query); 12 | $media-query: "screen and "; 13 | $default-grid-columns: $grid-columns; 14 | $grid-columns: $total-columns !global; 15 | 16 | @if is-not(is-even(length($query))) { 17 | $grid-columns: nth($query, $loop-to) !global; 18 | $loop-to: $loop-to - 1; 19 | } 20 | 21 | $i: 1; 22 | @while $i <= $loop-to { 23 | $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") "; 24 | 25 | @if ($i + 1) != $loop-to { 26 | $media-query: $media-query + "and "; 27 | } 28 | 29 | $i: $i + 2; 30 | } 31 | 32 | @media #{$media-query} { 33 | @content; 34 | $grid-columns: $default-grid-columns !global; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/content-span-columns.scss: -------------------------------------------------------------------------------- 1 | @mixin content-span-columns($span: $columns of $container-columns, $display: block) { 2 | $columns: nth($span, 1); 3 | $container-columns: container-span($span); 4 | 5 | $parent-columns: get-parent-columns($container-columns) !global; 6 | 7 | $direction: get-direction($layout-direction, $default-layout-direction); 8 | $opposite-direction: get-opposite-direction($direction); 9 | 10 | 11 | float: #{$opposite-direction}; 12 | 13 | display: block; 14 | margin-#{$direction}: floor(flex-gutter($container-columns)); 15 | width: floor(flex-grid($columns, $container-columns)); 16 | 17 | &:last-child { 18 | margin-#{$direction}: 0; 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/print.scss: -------------------------------------------------------------------------------- 1 | @media print{ 2 | 3 | .sidebar, 4 | .comment-respond, 5 | .nav-links, 6 | .edit-link, 7 | .usa-header, 8 | .usa-banner, 9 | .usa-footer { 10 | display: none 11 | } 12 | 13 | .usa-hero { 14 | background-color: white; 15 | background-image: none; 16 | color: black; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/visibility.scss: -------------------------------------------------------------------------------- 1 | // Mobile First Breakpoints 2 | .visible-medium-up { 3 | display: none; 4 | 5 | @media screen and (min-width: $medium-screen){ 6 | display: block; 7 | } 8 | } 9 | // Mobile First Breakpoints 10 | .visible-large-up { 11 | display: none; 12 | 13 | @media screen and (min-width: $large-screen){ 14 | display: block; 15 | } 16 | } 17 | 18 | .hidden-medium-up { 19 | @media screen and (min-width: $medium-screen){ 20 | display: none !important; 21 | } 22 | } 23 | 24 | .hidden-large-up { 25 | @media screen and (min-width: $large-screen){ 26 | display: none !important; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /_dev/src/scss/_utilities/width-visibility.scss: -------------------------------------------------------------------------------- 1 | // sidebar = .visible-medium-up 2 | .usa-width-full-medium-only { 3 | @media screen and (max-width: $large-screen){ 4 | margin-right: 0 !important; 5 | width: 100% !important; 6 | } 7 | } 8 | 9 | // sidebar = .hidden-medium-up 10 | .usa-width-full-medium-up { 11 | 12 | @media screen and (min-width: $medium-screen){ 13 | margin-right: 0 !important; 14 | width: 100% !important; 15 | } 16 | } 17 | 18 | // sidebar = .hidden-large-up 19 | .usa-width-full-large-up { 20 | 21 | @media screen and (min-width: $large-screen){ 22 | margin-right: 0 !important; 23 | width: 100% !important; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /_dev/src/scss/benjamin-classic.scss: -------------------------------------------------------------------------------- 1 | $output-bourbon-deprecation-warnings: false !default; 2 | /*! benjamin @version */ 3 | 4 | // Vendor -------------- // 5 | @import 'lib/bourbon'; 6 | @import 'lib/neat'; 7 | @import 'lib/normalize'; 8 | 9 | // Core -------------- // 10 | @import '_variables/classic'; 11 | @import 'core/fonts'; 12 | @import 'core/base'; 13 | @import 'core/grid'; 14 | @import 'core/utilities'; 15 | 16 | @import 'manifest'; 17 | -------------------------------------------------------------------------------- /_dev/src/scss/benjamin-red.scss: -------------------------------------------------------------------------------- 1 | $output-bourbon-deprecation-warnings: false !default; 2 | /*! benjamin @version */ 3 | 4 | // Vendor -------------- // 5 | @import 'lib/bourbon'; 6 | @import 'lib/neat'; 7 | @import 'lib/normalize'; 8 | 9 | // Core -------------- // 10 | @import '_variables/red'; 11 | @import 'core/fonts'; 12 | @import 'core/base'; 13 | @import 'core/grid'; 14 | @import 'core/utilities'; 15 | 16 | @import 'manifest'; 17 | -------------------------------------------------------------------------------- /_dev/src/scss/benjamin.scss: -------------------------------------------------------------------------------- 1 | $output-bourbon-deprecation-warnings: false !default; 2 | /*! benjamin @version */ 3 | 4 | // Vendor -------------- // 5 | @import 'lib/bourbon'; 6 | @import 'lib/neat'; 7 | @import 'lib/normalize'; 8 | 9 | // Core -------------- // 10 | @import '_variables/standard'; 11 | @import 'core/fonts'; 12 | @import 'core/base'; 13 | @import 'core/grid'; 14 | @import 'core/utilities'; 15 | 16 | @import 'manifest'; 17 | -------------------------------------------------------------------------------- /_dev/src/scss/manifest.scss: -------------------------------------------------------------------------------- 1 | @import '_utilities/visibility'; 2 | @import '_utilities/width-visibility'; 3 | @import '_utilities/clearfix'; 4 | 5 | @import '_mixins/sidebar'; 6 | 7 | // Elements -------------- // 8 | // Styles basic HTML elements 9 | @import 'elements/buttons'; 10 | @import 'elements/embed'; 11 | @import 'elements/figure'; 12 | @import 'elements/inputs'; 13 | @import 'elements/labels'; 14 | @import 'elements/list'; 15 | @import 'elements/table'; 16 | @import 'elements/typography'; 17 | 18 | // Components -------------- // 19 | @import 'components/accordions'; 20 | @import 'components/alerts'; 21 | @import 'components/banner'; 22 | @import 'components/footer'; 23 | @import 'components/forms'; 24 | @import 'components/graphic-list'; 25 | @import 'components/header'; 26 | @import 'components/hero'; 27 | @import 'components/layout'; 28 | @import 'components/media-block'; 29 | @import 'components/navigation'; 30 | @import 'components/search'; 31 | @import 'components/section'; 32 | @import 'components/sidenav'; 33 | @import 'components/skipnav'; 34 | 35 | // Custom CSS ------------// 36 | @import '_modules/main'; 37 | @import '_modules/typography'; 38 | 39 | // hero 40 | @import '_modules/hero'; 41 | @import '_modules/featured-post'; 42 | @import '_modules/video-bg'; 43 | 44 | // top navbar 45 | @import '_modules/navbar'; 46 | @import '_modules/navbar-secondary'; 47 | @import '_modules/navbar--dark'; 48 | @import '_modules/brand'; 49 | 50 | 51 | 52 | @import '_modules/sortables'; 53 | @import '_modules/sidenav'; 54 | 55 | // entry content 56 | @import '_modules/entry'; 57 | @import '_modules/wp-styles'; 58 | @import '_modules/blockquote'; 59 | @import '_modules/table'; 60 | @import '_modules/images'; 61 | 62 | // navigations 63 | @import '_modules/navlist'; 64 | @import '_modules/nav-links'; 65 | @import '_modules/footer-nav'; 66 | @import '_modules/post-navigation'; 67 | @import '_modules/page-links'; 68 | 69 | 70 | 71 | // misc 72 | @import '_modules/audio'; 73 | @import '_modules/wp-editor'; 74 | @import '_modules/widgets'; 75 | @import '_modules/checkboxes'; 76 | @import '_modules/comments'; 77 | @import '_modules/contact-block'; 78 | @import '_modules/media-block'; 79 | @import '_modules/sidebar'; 80 | @import '_modules/sections'; 81 | @import '_modules/form'; 82 | @import '_modules/alerts'; 83 | @import '_modules/gallery'; 84 | 85 | // custom grid for content area 86 | @import '_utilities/content-span-columns'; 87 | 88 | @import '_utilities/content-media'; 89 | @import '_modules/grid-bugfixes'; 90 | @import '_modules/grid'; 91 | 92 | 93 | // print 94 | @import '_utilities/print'; 95 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 30 | 31 | 32 |
33 | 38 | 39 |
40 | 59 |
60 | 61 | 66 | 67 |
68 | 69 | -1&&t.indexOf("action=install-plugin")>-1){var i={slug:"franklin",success:franklinPlugin.success};n.preventDefault(),this.classList.add("disabled"),this.innerText=wp.updates.l10n.installing,wp.updates.ajax("install-plugin",i)}else e.indexOf("Activate")>-1&&t.indexOf("action=activate")>-1&&console.log("activate plugin",n.originalEvent,"bom")})},saveDismissValue:function(){var n={action:"benjamin_dismiss_franklin_notice"};jQuery.ajax({type:"POST",url:ajaxurl,data:n})},dismissButtonEvent:function(){var n=document.querySelectorAll(".js--dismiss-franklin-notice");return n.length<=0?!1:void n.forEach(function(n,t){n.addEventListener("click",function(n){n.preventDefault();var t=this.closest(".franklin-notice");this.closest(".franklin-notice").parentNode.removeChild(t),franklinPlugin.saveDismissValue()})})},init:function(){}},franklinPlugin.installButtonEvent(),franklinPlugin.dismissButtonEvent()},{}]},{},[1]); -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-bold-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-bold-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-italic-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-italic-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-light-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-light-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-light-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-regular-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/merriweather-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/merriweather-regular-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-bold-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-bold-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-italic-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-italic-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-light-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-light-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-light-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-regular-webfont.woff -------------------------------------------------------------------------------- /assets/frontend/fonts/sourcesanspro-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/fonts/sourcesanspro-regular-webfont.woff2 -------------------------------------------------------------------------------- /assets/frontend/img/alerts/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/alerts/error.png -------------------------------------------------------------------------------- /assets/frontend/img/alerts/error.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/alerts/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/alerts/info.png -------------------------------------------------------------------------------- /assets/frontend/img/alerts/info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/alerts/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/alerts/success.png -------------------------------------------------------------------------------- /assets/frontend/img/alerts/success.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/alerts/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/alerts/warning.png -------------------------------------------------------------------------------- /assets/frontend/img/alerts/warning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-down-hover.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-hover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-primary-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-down-primary-hover.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-primary-hover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-down-primary.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down-primary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-down.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-up-primary-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-up-primary-hover.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-up-primary-hover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-up-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/angle-arrow-up-primary.png -------------------------------------------------------------------------------- /assets/frontend/img/angle-arrow-up-primary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/arrow-down.png -------------------------------------------------------------------------------- /assets/frontend/img/arrow-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/arrow-right.png -------------------------------------------------------------------------------- /assets/frontend/img/arrow-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/circle-124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/circle-124.png -------------------------------------------------------------------------------- /assets/frontend/img/close-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/close-white.png -------------------------------------------------------------------------------- /assets/frontend/img/close-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/close.png -------------------------------------------------------------------------------- /assets/frontend/img/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/correct8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/correct8.png -------------------------------------------------------------------------------- /assets/frontend/img/correct8.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/correct9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/correct9.png -------------------------------------------------------------------------------- /assets/frontend/img/correct9.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/external-link-alt-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/external-link-alt-hover.png -------------------------------------------------------------------------------- /assets/frontend/img/external-link-alt-hover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/external-link-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/external-link-alt.png -------------------------------------------------------------------------------- /assets/frontend/img/external-link-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/external-link-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/external-link-hover.png -------------------------------------------------------------------------------- /assets/frontend/img/external-link-hover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/external-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/external-link.png -------------------------------------------------------------------------------- /assets/frontend/img/external-link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-114.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-144.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-16.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-192.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-40.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-57.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon-72.png -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon.ico -------------------------------------------------------------------------------- /assets/frontend/img/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/favicons/favicon.png -------------------------------------------------------------------------------- /assets/frontend/img/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/hero.png -------------------------------------------------------------------------------- /assets/frontend/img/icon-dot-gov.svg: -------------------------------------------------------------------------------- 1 | dot gov icon -------------------------------------------------------------------------------- /assets/frontend/img/icon-https.svg: -------------------------------------------------------------------------------- 1 | https icon -------------------------------------------------------------------------------- /assets/frontend/img/logo-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/logo-img.png -------------------------------------------------------------------------------- /assets/frontend/img/minus-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/minus-alt.png -------------------------------------------------------------------------------- /assets/frontend/img/minus-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/minus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/minus-white.png -------------------------------------------------------------------------------- /assets/frontend/img/minus-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/minus.png -------------------------------------------------------------------------------- /assets/frontend/img/minus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/plus-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/plus-alt.png -------------------------------------------------------------------------------- /assets/frontend/img/plus-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/plus.png -------------------------------------------------------------------------------- /assets/frontend/img/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/search-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/search-alt.png -------------------------------------------------------------------------------- /assets/frontend/img/search-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/search.png -------------------------------------------------------------------------------- /assets/frontend/img/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/png/facebook25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/social-icons/png/facebook25.png -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/png/rss25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/social-icons/png/rss25.png -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/png/twitter16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/social-icons/png/twitter16.png -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/png/youtube15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/social-icons/png/youtube15.png -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/svg/facebook25.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/svg/rss25.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/svg/twitter16.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/social-icons/svg/youtube15.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/frontend/img/us_flag_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/assets/frontend/img/us_flag_small.png -------------------------------------------------------------------------------- /assets/frontend/js/_benjamin-previewer-min.js: -------------------------------------------------------------------------------- 1 | !function e(r,n,t){function i(u,a){if(!n[u]){if(!r[u]){var f="function"==typeof require&&require;if(!a&&f)return f(u,!0);if(o)return o(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var s=n[u]={exports:{}};r[u][0].call(s.exports,function(e){var n=r[u][1][e];return i(n?n:e)},s,s.exports,e,r,n,t)}return n[u].exports}for(var o="function"==typeof require&&require,u=0;uo;o++){var n=e[o*t];C.length 13 | 14 | 15 |
16 | 19 |
20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /front-page.php: -------------------------------------------------------------------------------- 1 | 28 | 29 | 30 |
31 | 36 | 37 |
38 | 41 |
42 | 43 | 48 | 49 |
50 | 51 | 6 | 7 | > 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | > 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 29 |
30 | 31 |
32 | -------------------------------------------------------------------------------- /inc/_inc.php: -------------------------------------------------------------------------------- 1 | admin_url( 'admin-ajax.php' ) ); 22 | wp_localize_script( 'admin-scripts', 'ajax_object', $ajax_object ); 23 | } 24 | add_action( 'admin_enqueue_scripts', 'benjamin_admin_assets' ); 25 | -------------------------------------------------------------------------------- /inc/admin/functions.php: -------------------------------------------------------------------------------- 1 | &$value ) { 18 | if ( is_array( $value ) ) { 19 | $value = benjamin_sanitize_text_or_array_field( $value ); 20 | } else { 21 | $value = sanitize_text_field( wp_unslash( $value ) ); 22 | } 23 | } 24 | } 25 | 26 | return $val; 27 | } 28 | -------------------------------------------------------------------------------- /inc/customizer/_helpers.php: -------------------------------------------------------------------------------- 1 | null, 12 | 'title' => null, 13 | 'description' => null, 14 | ), 15 | $args 16 | ) 17 | ); 18 | 19 | // the section's args, add the panel arg if the template is NOT the archive. 20 | $section_args = array( 21 | 'title' => sprintf( '%s ', $title ), 22 | 'description' => sprintf( '%s ', $description ), 23 | ); 24 | 25 | // Add the section for the templates settings. 26 | $wp_customize->add_section( 27 | $section, 28 | $section_args 29 | ); 30 | 31 | } 32 | 33 | 34 | /** 35 | * produces a "label" - this is simply to group like controls together 36 | */ 37 | function benjamin_customizer_label( &$wp_customize, $args = array() ) { 38 | 39 | extract( 40 | hortcode_atts( 41 | array( 42 | 'section' => null, 43 | 'setting_id' => null, 44 | 'label' => null, 45 | 'control_id' => null, 46 | ), 47 | $args 48 | ) 49 | ); 50 | 51 | if ( ! $section || ! $setting_id || ! $label || ! $control_id ) { 52 | return; 53 | } 54 | 55 | $args = array( 56 | 'label' => sprintf( '%s ', $label ), 57 | 'type' => 'label', 58 | 'section' => $section, 59 | 'settings' => $setting_id, 60 | 'priority' => 1, 61 | ); 62 | 63 | $wp_customize->add_control( 64 | new Benjamin_Label_Custom_Control( 65 | $wp_customize, 66 | $control_id, 67 | $args 68 | ) 69 | ); 70 | } 71 | -------------------------------------------------------------------------------- /inc/customizer/controls/checkbox-group.php: -------------------------------------------------------------------------------- 1 | choices ) ) { 16 | return; 17 | } 18 | 19 | $output = ''; 20 | $saved = json_decode( $this->value() ); 21 | 22 | $output .= '' . esc_html( $this->label ) . ''; 23 | 24 | $output .= '

'; 25 | $output .= esc_html( $this->description ); 26 | $output .= '

'; 27 | 28 | $output .= '
    '; 32 | foreach ( $this->choices as $k => $v ) { 33 | $checked = null; 34 | 35 | if ( $saved && in_array( $k, $saved, true ) ) { 36 | $checked = 'checked'; 37 | } 38 | 39 | $output .= '
  • '; 40 | 41 | $output .= ''; 45 | 46 | $output .= '
  • '; 47 | } 48 | 49 | $output .= '
'; 50 | 51 | $output .= 'id ) . '" data-customize-setting-link="' . esc_attr( $this->setting->id ) . '" '; 53 | $output .= 'value=\'' . $this->value() . '\' '; 54 | $output .= ' />'; 55 | 56 | echo $output; //WPCS: xss ok. 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /inc/customizer/controls/color-scheme.php: -------------------------------------------------------------------------------- 1 | 20 | 25 |

26 | description ); ?> 27 |

28 |
    29 | choices as $name => $v ) : 31 | if( ! filter_var( $v['uri'], FILTER_VALIDATE_URL ) ) { 32 | continue; 33 | } 34 | ?> 35 |
  • 36 | link(); ?> 38 | data-customize-setting-link="id ); ?>" 39 | value="" 40 | value(), $v['uri'] ) ?> 41 | /> 42 | 43 | 44 |
      45 | 46 |
    • 48 | 49 |
    50 | 51 |
  • 52 | 55 | 56 |
57 | 21 | 26 |

27 | description ); ?> 28 |

29 | menus = wp_get_nav_menus( $options ); 16 | 17 | parent::__construct( $manager, $id, $args ); 18 | } 19 | 20 | /** 21 | * Render the content on the theme customizer page 22 | */ 23 | public function render_content() { 24 | if ( ! empty( $this->menus ) ) : 25 | ?> 26 | 43 | __( 'Return to Top', 'benjamin' ), 26 | 'footer-menu' => __( 'Footer Menu', 'benjamin' ), 27 | 'widget-area-1' => __( 'Widget Area 1', 'benjamin' ), 28 | 'widget-area-2' => __( 'Widget Area 2', 'benjamin' ), 29 | ); 30 | 31 | $wp_customize->add_section( 32 | 'footer_settings_section', 33 | array( 34 | 'title' => __( 'Footer Settings', 'benjamin' ), 35 | 'priority' => 38, 36 | ) 37 | ); 38 | 39 | $wp_customize->add_setting( 40 | 'footer_sortables_setting', 41 | array( 42 | 'default' => $default_json, 43 | 'sanitize_callback' => 'benjamin_footer_sortable_sanitize', 44 | ) 45 | ); 46 | 47 | $description = __( 48 | 'The page content is sortable, and optional. Simply drag the 49 | available components from the "available" box over to active. This setting 50 | does not depend on the "Settings Active" setting above.', 51 | 'benjamin' 52 | ); 53 | 54 | $wp_customize->add_control( 55 | new Benjamin_Sortable_Control( 56 | $wp_customize, 57 | 'footer_sortables_control', 58 | array( 59 | 'description' => sprintf( '%s', $description ), 60 | 'label' => __( 'Sortable Footer Parts', 'benjamin' ), 61 | 'section' => 'footer_settings_section', 62 | 'settings' => 'footer_sortables_setting', 63 | 'priority' => 1, 64 | 'optional' => true, 65 | 'choices' => $choices, 66 | ) 67 | ) 68 | ); 69 | } 70 | 71 | add_action( 'customize_register', 'benjamin_footer_settings' ); 72 | -------------------------------------------------------------------------------- /inc/customizer/identity.php: -------------------------------------------------------------------------------- 1 | '; 12 | $logo_desc .= __( 'header settings section.', 'benjamin' ); 13 | 14 | $wp_customize->get_control( 'custom_logo' )->description = sprintf( '%s', $logo_desc ); 15 | 16 | $classic = array( '#0c555d', '#399099', '#ff5049', '#ffffff', '#f5f5f5', '#000000' ); 17 | $standard = array( '#112e51', '#02bfe7', '#e31c3d', '#ffffff', '#f1f1f1', '#d6d7d9' ); 18 | 19 | // removing red color scheme for now. 20 | $choices = array( 21 | 'standard' => array( 22 | 'uri' => BENJAMIN_FRONTEND_ASSETS_DIR . 'css/benjamin.min.css', 23 | 'colors' => array( '#112e51', '#02bfe7', '#e31c3d', '#ffffff', '#f1f1f1', '#d6d7d9' ), 24 | ), 25 | 'classic' => array( 26 | 'uri' => BENJAMIN_FRONTEND_ASSETS_DIR . 'css/benjamin-classic.min.css', 27 | 'colors' => array( '#0c555d', '#399099', '#ff5049', '#ffffff', '#f5f5f5', '#000000' ), 28 | 29 | ), 30 | ); 31 | $choices = apply_filters( 'benjamin_filter_color_schemes', $choices ); 32 | 33 | // color scheme. 34 | $wp_customize->add_setting( 35 | 'color_scheme_setting', 36 | array( 37 | 'default' => $choices['standard']['uri'], 38 | 'sanitize_callback' => 'benjamin_color_scheme_sanitize', 39 | ) 40 | ); 41 | 42 | $description = 'Benjamin comes with ' . count( $choices ) . ' color schemes, like color swatches.'; 43 | $wp_customize->add_control( 44 | new Benjamin_Color_Scheme_Custom_Control( 45 | $wp_customize, 46 | 'color_scheme_control', 47 | array( 48 | 'description' => $description, 49 | 'label' => __( 'Color Scheme', 'benjamin' ), 50 | 'section' => 'title_tagline', 51 | 'settings' => 'color_scheme_setting', 52 | 'choices' => $choices, 53 | ) 54 | ) 55 | ); 56 | 57 | } 58 | 59 | add_action( 'customize_register', 'benjamin_site_identity' ); 60 | -------------------------------------------------------------------------------- /inc/customizer/template-settings.php: -------------------------------------------------------------------------------- 1 | add_panel( 16 | 'extra_template_settings', 17 | array( 18 | 'title' => __( 'More Templates Settings', 'benjamin' ), 19 | 'priority' => 37, 20 | ) 21 | ); 22 | 23 | $templates = benjamin_the_template_list(false, true); 24 | // for each template in the template list, we set up their customizer sections. 25 | foreach ( $templates as $name => $args ) : 26 | 27 | $is_active = get_theme_mod( $name . '_settings_active', 'no' ) === 'yes' ? 'is-active' : null; 28 | 29 | // the section's args, add the panel arg if the template is NOT the archive. 30 | $section_args = array( 31 | /* translators: Displays the dynamically set label */ 32 | 'title' => sprintf( __( '%s ', 'benjamin' ), ucfirst( $args['label'] ) ), 33 | 'priority' => 36, 34 | 'description' => $args['description'], 35 | 'type' => $is_active, 36 | ); 37 | 38 | // do not put the default settings in the panel. 39 | if ( $name !== BENJAMIN_DEFAULT_TEMPLATE ) { 40 | $section_args['panel'] = 'extra_template_settings'; 41 | } 42 | 43 | // Add the section for the templates settings. 44 | $wp_customize->add_section( 45 | $name . '_settings_section', 46 | $section_args 47 | ); 48 | 49 | // now do the settings. 50 | if ( $name !== BENJAMIN_DEFAULT_TEMPLATE ) { 51 | require( 'template-settings/activate.php' ); 52 | } 53 | 54 | require get_template_directory() . '/inc/customizer/template-settings/header.php'; 55 | require get_template_directory() . '/inc/customizer/template-settings/sidebar.php'; 56 | require get_template_directory() . '/inc/customizer/template-settings/layout.php'; 57 | 58 | endforeach; 59 | 60 | } 61 | add_action( 'customize_register', 'benjamin_template_layout_settings' ); 62 | 63 | -------------------------------------------------------------------------------- /inc/customizer/template-settings/activate.php: -------------------------------------------------------------------------------- 1 | add_setting( 4 | $name . '_settings_active', 5 | array( 6 | 'default' => 'no', 7 | 'sanitize_callback' => 'benjamin_template_settings_active_sanitize', 8 | ) 9 | ); 10 | 11 | $activate_args = array( 12 | 'description' => __( 13 | 'Overrides the default template settings to give 14 | this template a unique look and feel.

If you do not activate these 15 | settings then the default (Feed) settings and widgets will be used.', 16 | 'benjamin' 17 | ), 18 | 'label' => __( 'Use Template Settings', 'benjamin' ), 19 | 'section' => $name . '_settings_section', 20 | 'settings' => $name . '_settings_active', 21 | 'type' => 'radio', 22 | 'choices' => array( 23 | 'no' => __( 'No', 'benjamin' ), 24 | 'yes' => __( 'Yes', 'benjamin' ), 25 | ), 26 | 'priority' => 1, 27 | ); 28 | 29 | $wp_customize->add_control( $name . '_settings_active_control', $activate_args ); 30 | -------------------------------------------------------------------------------- /inc/customizer/template-settings/layout.php: -------------------------------------------------------------------------------- 1 | add_setting( 8 | $name . '_other_settings_label', 9 | array( 10 | 'default' => 'none', 11 | 'sanitize_callback' => 'wp_filter_nohtml_kses', 12 | ) 13 | ); 14 | $args = array( 15 | 'label' => __( 'Other Settings', 'benjamin' ), 16 | 'type' => 'label', 17 | 'section' => $name . '_settings_section', 18 | 'settings' => $name . '_other_settings_label', 19 | 'input_attrs' => array( 20 | 'data-toggled-by' => $name . '_settings_active', 21 | ), 22 | ); 23 | 24 | $wp_customize->add_control( 25 | new Benjamin_Label_Custom_Control( 26 | $wp_customize, 27 | $name . '_other_settings_label_control', 28 | $args 29 | ) 30 | ); 31 | 32 | 33 | $wp_customize->add_setting( 34 | $name . '_page_layout_setting', 35 | array( 36 | 'default' => '', 37 | 'sanitize_callback' => 'benjamin_hide_layout_sanitize', 38 | ) 39 | ); 40 | 41 | $layout_args = array( 42 | 'description' => __( 'Hide parts of a page, great for making landing pages.' ,'benjamin' ), 43 | 'label' => __( 'Page Layout', 'benjamin' ), 44 | 'section' => $name . '_settings_section', 45 | 'settings' => $name . '_page_layout_setting', 46 | 'choices' => array( 47 | 'banner' => __( 'Hide Banner', 'benjamin' ), 48 | 'navbar' => __( 'Hide Navbar', 'benjamin' ), 49 | 'page-content' => __( 'Hide Page Content and Sidebar', 'benjamin' ), 50 | 'footer' => __( 'Hide Footer', 'benjamin' ), 51 | ), 52 | 'input_attrs' => array( 53 | 'data-toggled-by' => $name . '_settings_active', 54 | ), 55 | ); 56 | 57 | $wp_customize->add_control( 58 | new Benjamin_Checkbox_Group_Control( 59 | $wp_customize, 60 | $name . '_page_layout_control', 61 | $layout_args 62 | ) 63 | ); 64 | -------------------------------------------------------------------------------- /inc/customizer/widgetized.php: -------------------------------------------------------------------------------- 1 | $section, 10 | 'title' => __( 'Widgetized Page', 'benjamin' ), 11 | 'description' => $template['description'], 12 | ); 13 | benjamin_customize_section( $wp_customize, $section_args ); 14 | $wp_customize->add_setting( 15 | 'widgetized_sortables_setting', 16 | array( 17 | 'default' => '[{"name":"page-content","label":"Page Content"}]', 18 | 'sanitize_callback' => 'benjamin_widgetized_sortable_sanitize', 19 | ) 20 | ); 21 | 22 | $description = __( 23 | 'The page content is sortable, and optional. Simply drag the 24 | available components from the "available" box over to "active". Once a widget 25 | area has been dragged to "active" you\'ll need to add some ', 26 | 'benjamin' 27 | ); 28 | $description .= ''; 30 | $description .= __( 'widgets', 'benjamin' ) . ''; 31 | 32 | $wp_customize->add_control( 33 | new Benjamin_Sortable_Control( 34 | $wp_customize, 35 | 'widgetized_sortables_control', 36 | array( 37 | 'label' => __( 'Sortable Page Content', 'benjamin' ), 38 | /* translators: use the $description variable above - states that the content is sortable via drag and drop */ 39 | 'description' => sprintf( __( '%s ', 'benjamin' ), $description ), 40 | 'section' => $section, 41 | 'settings' => 'widgetized_sortables_setting', 42 | 'optional' => true, 43 | 'choices' => array( 44 | 'widget-area-1' => __( 'Widget Area 1', 'benjamin' ), 45 | 'widget-area-2' => __( 'Widget Area 2', 'benjamin' ), 46 | 'widget-area-3' => __( 'Widget Area 3', 'benjamin' ), 47 | 'page-content' => __( 'Page Content', 'benjamin' ), 48 | ), 49 | ) 50 | ) 51 | ); 52 | 53 | } 54 | add_action( 'customize_register', 'benjamin_widgetized_settings' ); 55 | -------------------------------------------------------------------------------- /inc/frontend/assets.php: -------------------------------------------------------------------------------- 1 | ' 13 | : get_bloginfo( 'name', 'display' ); 14 | 15 | $output .= ''; 22 | 23 | return $output; 24 | else : 25 | $output .= ''; 30 | 31 | return $output; 32 | endif; 33 | } 34 | 35 | 36 | function benjamin_navbar_brand() { 37 | echo benjamin_get_navbar_brand(); // WPCS: xss ok. 38 | } 39 | 40 | 41 | function benjamin_get_custom_logo( $logo_id = null ) { 42 | 43 | $logo_id = get_theme_mod( 'custom_logo', null ); 44 | if ( ! $logo_id ) { 45 | return false; 46 | } 47 | 48 | $thumb_url_array = wp_get_attachment_image_src( $logo_id, 'full', true ); 49 | 50 | if ( strpos( reset( $thumb_url_array ), 'wp-includes/images/media/default.png' ) ) { 51 | return false; 52 | } 53 | 54 | return $thumb_url_array[0]; 55 | } 56 | -------------------------------------------------------------------------------- /inc/frontend/excerpts.php: -------------------------------------------------------------------------------- 1 | ' . __( 'Read More', 'benjamin' ) . ''; 10 | } 11 | 12 | 13 | function benjamin_excerpt_length() { 14 | global $summary_settings; 15 | 16 | return 55; 17 | } 18 | 19 | function benjamin_auto_excerpt_more( $more ) { 20 | return benjamin_continue_reading_link(); 21 | } 22 | 23 | function benjamin_custom_excerpt_more( $output ) { 24 | if ( has_excerpt() && ! is_attachment() ) { 25 | $output .= benjamin_continue_reading_link(); 26 | } 27 | return $output; 28 | } 29 | 30 | add_filter( 'excerpt_length', 'benjamin_excerpt_length' ); 31 | add_filter( 'excerpt_more', 'benjamin_auto_excerpt_more' ); 32 | add_filter( 'get_the_excerpt', 'benjamin_custom_excerpt_more' ); 33 | -------------------------------------------------------------------------------- /inc/frontend/filters.php: -------------------------------------------------------------------------------- 1 | ', 7 | '', 8 | ); 9 | 10 | $replace = array( 11 | '', 12 | '', 13 | ); 14 | 15 | $link = str_replace( $find, $replace, $link ); 16 | return $link; 17 | } 18 | add_filter( 'get_archives_link', 'benjamin_archive_link' ); 19 | -------------------------------------------------------------------------------- /inc/frontend/footers/footer-menu.php: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /inc/frontend/footers/footer-return.php: -------------------------------------------------------------------------------- 1 | 4 | 9 | -------------------------------------------------------------------------------- /inc/frontend/footers/footer-widgets-1.php: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /inc/frontend/footers/footer-widgets-2.php: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /inc/frontend/get-sidebar.php: -------------------------------------------------------------------------------- 1 | 19 | 20 | 23 | 24 | ' . get_bloginfo( 'name', 'display' ) . ' 12 | '; 13 | if ( is_front_page() ) : 14 | $output .= '

' . $link . '

'; 15 | else : 16 | $output .= '

' . $link . '

'; 17 | endif; 18 | 19 | return $output; 20 | } 21 | 22 | 23 | function benjamin_nav_title() { 24 | echo benjamin_get_benjamin_nav_title(); // WPCS: xss ok. 25 | } 26 | 27 | 28 | // toggles the dark and light themes 29 | function benjamin_navbar_header_class() { 30 | $color = get_theme_mod( 'navbar_color_setting', 'light' ); 31 | $color = 'usa-header--' . $color; 32 | 33 | return $color; 34 | } 35 | 36 | 37 | 38 | 39 | /** 40 | * Navigate through pages of the feed 41 | */ 42 | function benjamin_get_the_posts_navigation() { 43 | $args = array( 44 | 'prev_text' => '' . __( 'Older Posts', 'benjamin' ), 45 | 'next_text' => __( 'Newer Posts', 'benjamin' ) . ' ', 46 | ); 47 | return get_the_posts_navigation( $args ); 48 | } 49 | 50 | 51 | function benjamin_the_posts_navigation() { 52 | echo benjamin_get_the_posts_navigation(); // WPCS: xss ok. 53 | } -------------------------------------------------------------------------------- /inc/frontend/nav-walkers/footer-nav-walker.php: -------------------------------------------------------------------------------- 1 | curItem = $item; 12 | $object = $item->object; 13 | $type = $item->type; 14 | $title = $item->title; 15 | $description = $item->description; 16 | $permalink = $item->url; 17 | 18 | $is_current = false; 19 | if ( $item->classes ) { 20 | foreach ( $item->classes as $key => $class ) { 21 | if ( strpos( $class, 'current-menu-item' ) !== false ) { 22 | $is_current = true; 23 | } 24 | } 25 | } 26 | 27 | $classes = ( $is_current && $depth == 0 ) ? ' usa-current' : ''; 28 | 29 | $output .= '
  • '; 41 | 42 | $link_class = ( $depth === 0 ) ? 'usa-nav-link' : ''; 43 | $link_class .= $classes; 44 | 45 | if ( $depth === 0 && $args->walker->has_children ) { 46 | 47 | $output .= ''; 51 | 52 | } elseif ( $permalink && $permalink !== '#' ) { 53 | 54 | $output .= ''; 55 | $output .= '' . $title . ''; 56 | $output .= ''; 57 | 58 | } else { 59 | 60 | $output .= ''; 61 | $output .= '' . $title . ''; 62 | $output .= ''; 63 | 64 | } 65 | 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /inc/frontend/nav-walkers/navlist-walker.php: -------------------------------------------------------------------------------- 1 | '; 13 | } 14 | 15 | public function end_lvl( &$output, $depth = 0, $args = array() ) { 16 | $output .= ''; 17 | } 18 | 19 | function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { 20 | 21 | $object = $item->object; 22 | $type = $item->type; 23 | $title = $item->title; 24 | $description = $item->description; 25 | $permalink = $item->url; 26 | $is_current = false; 27 | 28 | if ( $item->classes ) { 29 | foreach ( $item->classes as $key => $class ) { 30 | if ( strpos( $class, 'current-menu-item' ) !== false ) { 31 | $is_current = true; 32 | } 33 | } 34 | } 35 | 36 | $classes = ( $is_current ) ? 'usa-current' : ''; 37 | $output .= '
  • '; 38 | 39 | if ( $permalink && $permalink !== '#' ) { 40 | $output .= ''; 41 | $output .= '' . $title . ''; 42 | $output .= ''; 43 | } else { 44 | $output .= ''; 45 | $output .= '' . $title . ''; 46 | $output .= ''; 47 | } 48 | 49 | } 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /inc/frontend/nav-walkers/sidenav-walker.php: -------------------------------------------------------------------------------- 1 | '; 11 | } 12 | 13 | public function end_lvl( &$output, $depth = 0, $args = array() ) { 14 | $output .= ''; 15 | } 16 | 17 | function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { 18 | 19 | $object = $item->object; 20 | $type = $item->type; 21 | $title = $item->title; 22 | $description = $item->description; 23 | $permalink = $item->url; 24 | $is_current = false; 25 | 26 | if ( $item->classes ) { 27 | foreach ( $item->classes as $key => $class ) { 28 | if ( strpos( $class, 'current-menu-item' ) !== false ) { 29 | $is_current = true; 30 | } 31 | } 32 | } 33 | 34 | $classes = $is_current ? 'usa-current' : ''; 35 | 36 | $output .= '
  • '; 37 | 38 | $link_class = ( $depth == 0 ) ? 'usa-nav-link' : ''; 39 | 40 | if ( $permalink && $permalink != '#' ) { 41 | $output .= ''; 42 | $output .= '' . $title . ''; 43 | $output .= ''; 44 | } else { 45 | $output .= ''; 46 | $output .= '' . $title . ''; 47 | $output .= ''; 48 | } 49 | 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /inc/frontend/navbars/navbar.php: -------------------------------------------------------------------------------- 1 | 4 | 37 | -------------------------------------------------------------------------------- /inc/frontend/section-banner.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
    14 | 15 |
    16 |
    17 |
    18 | 19 |

    20 | 0 ) : ?> 21 | 27 | 28 |
    29 |
    30 | 31 |
    32 | 33 | 34 |
    35 | 36 |
    37 | 38 | 39 |
    40 | 41 |
    42 |
    43 | 44 | 45 | -------------------------------------------------------------------------------- /inc/frontend/sticky-sidenav.php: -------------------------------------------------------------------------------- 1 | '; 13 | $output .= '
      '; 14 | foreach ( $anchors as $anchor ) : 15 | $label = str_replace( array( '-', '_' ), ' ', $anchor ); 16 | $output .= '
    • '; 17 | $output .= '' . $label . ''; 18 | $output .= '
    • '; 19 | endforeach; 20 | $output .= '
    '; 21 | $output .= ''; 22 | 23 | return $output; 24 | } 25 | 26 | function benjamin_sticky_sidenav( $id = 0 ) { 27 | if ( $id === 0 ) { 28 | return false; 29 | } 30 | 31 | echo benjamin_get_sticky_sidenav( $id ); // WPCS: xss ok. 32 | } 33 | 34 | 35 | function benjamin_sticky_sidenav_anchors( $id ) { 36 | $post_content = get_post( $id ); 37 | $content = $post_content->post_content; 38 | 39 | $pattern = '(id="([a-zA-z0-9\-]+)"+)'; 40 | preg_match_all( $pattern, $content, $matches ); 41 | 42 | if ( 2 === count( $matches ) > 1 ) { 43 | return $matches[1]; 44 | } else { 45 | return false; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /inc/shared/audio-markup.php: -------------------------------------------------------------------------------- 1 | '; 24 | $audio .= ''; 25 | $audio .= ''; 26 | } elseif ( wp_oembed_get( $url ) ) { 27 | $audio .= wp_oembed_get( $url ); 28 | } 29 | $output .= $audio; 30 | 31 | return $output; 32 | } 33 | 34 | /** 35 | * display the audio markup 36 | * 37 | * @param [type] $url [description] 38 | * @param [type] $background [description] 39 | * @return [type] [description] 40 | */ 41 | function benjamin_the_audio_markup( $url, $background = null ) { 42 | echo benjamin_get_the_audio_markup( $url, $background ); //WPCS: xss ok. 43 | } 44 | 45 | 46 | /** 47 | * Adds an inline script to the audio player. 48 | * 49 | * @return [type] [description] 50 | */ 51 | function benjamin_enqueue_visualizer_script() { 52 | $script = 'window.audioVis2D(".js--audio-player");'; 53 | wp_enqueue_script( 'audio-vis-2d', get_template_directory_uri() . '/assets/frontend/js/audio.js', null, null, true ); 54 | wp_add_inline_script( 'audio-vis-2d', $script, 'after' ); 55 | } 56 | -------------------------------------------------------------------------------- /inc/shared/custom-post-types.php: -------------------------------------------------------------------------------- 1 | true, 7 | 'publicly_queryable' => true, 8 | '_builtin' => false, 9 | ); 10 | return benjamin_get_cpt_template_types( get_post_types($args) ); 11 | } 12 | 13 | function benjamin_get_cpt_template_types( $cpts ) { 14 | $new = array(); 15 | foreach ( $cpts as $cpt ) { 16 | $obj = get_post_type_object($cpt); 17 | $new[ $cpt ] = array( 18 | 'label' => $obj->label, 19 | /* translators: custom post type label. */ 20 | 'description' => sprintf( __( 'A single instance of a %s.', 'benjamin' ), $obj->label), 21 | ); 22 | if ( $obj->has_archive ) { 23 | 24 | $new[ $cpt . '-feed' ] = array( 25 | 'label' => $obj->label . ' Feed', 26 | /* translators: custom post type label. */ 27 | 'description' => sprintf( __( 'The feed for your %s.', 'benjamin'), $obj->label ) 28 | ); 29 | } 30 | } 31 | 32 | return $new; 33 | } 34 | -------------------------------------------------------------------------------- /inc/shared/extras.php: -------------------------------------------------------------------------------- 1 | '; 37 | } 38 | } 39 | add_action( 'wp_head', 'benjamin_pingback_header' ); 40 | -------------------------------------------------------------------------------- /inc/shared/functions.php: -------------------------------------------------------------------------------- 1 | ID, $format, null ); 65 | } 66 | -------------------------------------------------------------------------------- /inc/shared/jetpack.php: -------------------------------------------------------------------------------- 1 | 'main', 22 | 'render' => 'benjamin_infinite_scroll_render', 23 | 'footer' => 'page', 24 | ) 25 | ); 26 | 27 | // Add theme support for Responsive Videos. 28 | add_theme_support( 'jetpack-responsive-videos' ); 29 | } 30 | add_action( 'after_setup_theme', 'benjamin_jetpack_setup' ); 31 | 32 | /** 33 | * Custom render function for Infinite Scroll. 34 | */ 35 | function benjamin_infinite_scroll_render() { 36 | while ( have_posts() ) { 37 | the_post(); 38 | if ( is_search() ) : 39 | get_template_part( 'template-parts/content', 'search' ); 40 | else : 41 | get_template_part( 'template-parts/content', get_post_format() ); 42 | endif; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /inc/shared/theme-support.php: -------------------------------------------------------------------------------- 1 | tag in the document head, and expect WordPress to 26 | * provide it for us. 27 | */ 28 | add_theme_support( 'title-tag' ); 29 | 30 | /* 31 | * Enable support for Post Thumbnails on posts and pages. 32 | * 33 | * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ 34 | */ 35 | add_theme_support( 'post-thumbnails' ); 36 | 37 | // This theme uses wp_nav_menu() in one location. 38 | register_nav_menus( 39 | array( 40 | 'primary' => esc_html__( 'Primary', 'benjamin' ), 41 | 'footer' => esc_html__( 'Footer', 'benjamin' ), 42 | ) 43 | ); 44 | 45 | /* 46 | * Switch default core markup for search form, comment form, and comments 47 | * to output valid HTML5. 48 | */ 49 | add_theme_support( 50 | 'html5', 51 | array( 52 | 'comment-form', 53 | 'comment-list', 54 | 'gallery', 55 | 'caption', 56 | ) 57 | ); 58 | 59 | add_theme_support( 60 | 'custom-logo', 61 | array( 62 | 'height' => 100, 63 | 'width' => 400, 64 | 'flex-height' => true, 65 | 'flex-width' => true, 66 | 'header-text' => array( 'site-title', 'site-description' ), 67 | ) 68 | ); 69 | 70 | // Add theme support for selective refresh for widgets. 71 | add_theme_support( 'customize-selective-refresh-widgets' ); 72 | 73 | $post_formats = array( 'audio', 'aside', 'chat', 'gallery', 'image', 'link', 'quote', 'video', 'status' ); 74 | add_theme_support( 'post-formats', $post_formats ); 75 | 76 | } 77 | add_action( 'after_setup_theme', 'benjamin_setup' ); 78 | -------------------------------------------------------------------------------- /inc/shared/video-markup.php: -------------------------------------------------------------------------------- 1 | '; 31 | $video .= ''; 32 | 33 | } elseif ( wp_oembed_get( $url ) ) { 34 | $video .= wp_oembed_get( $url ); 35 | } 36 | 37 | $output .= '
    '; 38 | $output .= $video; 39 | $output .= '
    '; 40 | 41 | return $output; 42 | } 43 | 44 | 45 | /** 46 | * echos the video markup 47 | * 48 | * @param [type] $url [description] 49 | * 50 | * @return [type] [description] 51 | */ 52 | function benjamin_the_video_markup( $url ) { 53 | echo benjamin_get_the_video_markup( $url ); //WPCS: xss ok. 54 | } 55 | 56 | 57 | /** 58 | * gets a youtube ID from a URL 59 | * 60 | * @param [type] $url [description] 61 | * 62 | * @return [type] [description] 63 | */ 64 | function benjamin_get_youtube_id( $url ) { 65 | preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match ); 66 | return isset( $match[1] ) ? $match[1] : ''; 67 | } 68 | 69 | 70 | /** 71 | * gets the video type from the url 72 | * 73 | * @param [type] $url [description] 74 | * 75 | * @return [type] [description] 76 | */ 77 | function benjamin_get_video_type( $url ) { 78 | 79 | $filetypes = array( '.mp4', '.mov', '.wmv', '.avi', '.mpg', '.ogv', '.3gp', '.3g2'); 80 | $type = null; 81 | if ( in_array( substr( $url, -4 ), $filetypes, true ) ) { 82 | $type = 'uploaded'; 83 | } elseif ( preg_match( '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#', $url ) ) { 84 | $type = 'youtube'; 85 | } elseif ( preg_match( '#^https?://(.+\.)?vimeo\.com/.*#', $url ) ) { 86 | $type = 'vimeo'; 87 | } 88 | 89 | return $type; 90 | } 91 | -------------------------------------------------------------------------------- /inc/shared/widgets.php: -------------------------------------------------------------------------------- 1 | 'Benjamin_Nav_Menu_Widget', 13 | 'WP_Widget_Archives' => 'Benjamin_Widget_Archives', 14 | 'WP_Widget_Categories' => 'Benjamin_Widget_Categories', 15 | 'WP_Widget_Meta' => 'Benjamin_Widget_Meta', 16 | 'WP_Widget_Pages' => 'Benjamin_Widget_Pages', 17 | 'WP_Widget_Recent_Comments' => 'Benjamin_Widget_Recent_Comments', 18 | 'WP_Widget_Recent_Posts' => 'Benjamin_Widget_Recent_Posts', 19 | ); 20 | 21 | // include the widget files. 22 | foreach ( $benjamin_widgets as $old => $new ) { 23 | require get_template_directory() . '/inc/widgets/' . $new . '.php'; 24 | } 25 | 26 | 27 | /** 28 | * Replaces some default widgets with ours. 29 | * These widgets function exactly the same but have some additional options which 30 | * simple change out the data is displayed, mostly by styling the lists / menus. 31 | */ 32 | function benjamin_register_widgets() { 33 | global $benjamin_widgets; 34 | 35 | foreach ( $benjamin_widgets as $old => $new ) { 36 | unregister_widget( $old ); 37 | register_widget( $new ); 38 | } 39 | } 40 | add_action( 'widgets_init', 'benjamin_register_widgets' ); 41 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 30 | 31 | 32 |
    33 | 38 | 39 |
    40 | 64 |
    65 | 66 | 71 | 72 |
    73 | 74 | 24 | 25 | 26 |
    27 | 28 | ID ); 31 | endif; 32 | ?> 33 |
    34 | 49 |
    50 | ID ); 53 | } 54 | ?> 55 | 56 |
    57 | 58 | 24 | 25 |
    26 | 27 | 32 |
    33 | 41 |
    42 | 47 | 48 |
    49 | 50 | 25 | 26 |
    27 | 28 | 33 |
    34 | 42 |
    43 | 48 | 49 |
    50 | 51 | 25 | 26 |
    27 | 28 | 33 |
    34 | 42 |
    43 | 48 | 49 |
    50 | 51 | 25 | 26 |
    27 | 28 | 33 |
    34 | 42 |
    43 | 48 | 49 |
    50 | 51 | 25 | 26 | 27 |
    28 | 33 | 34 |
    35 | 36 |
    37 | 38 | 43 | 44 |
    45 | 46 | 25 | 26 |
    27 | 28 | 33 |
    34 | 42 |
    43 | 48 | 49 |
    50 | 51 | 2 | 3 | Wordpress, but without linelength check. 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyle-jennings/benjamin/44eba81148018ab22f3b9e2f1664571f53c10249/screenshot.png -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 30 | 31 | 32 |
    33 | 38 | 39 |
    40 | 44 |
    45 |

    46 |
    47 | 48 | 67 |
    68 | 69 | 74 | 75 |
    76 | 77 | 11 | 28 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 27 | 28 |
    29 | 30 | 35 |
    36 | '« ' . __( 'Previous Post', 'benjamin' ), 44 | 'next_text' => __( 'Next Post ', 'benjamin' ) . '»', 45 | ); 46 | the_post_navigation( $navigation_args ); 47 | 48 | // If comments are open or we have at least one comment, load up the comment template. 49 | if ( comments_open() || get_comments_number() ) { 50 | comments_template(); 51 | } 52 | endwhile; // End of the loop. 53 | ?> 54 |
    55 | 60 | 61 |
    62 | 63 | 11 | 12 |
    13 |
    14 |

    15 |
    16 | 17 |
    18 | 21 | 22 |

    23 | Get started here.', 'benjamin' ), 28 | array( 29 | 'a' => array( 30 | 'href' => array(), 31 | ), 32 | ) 33 | ), 34 | esc_url( admin_url( 'post-new.php' ) ) 35 | ); 36 | ?> 37 |

    38 | 39 | 40 | 41 |

    42 | 47 | 48 |

    49 | 54 |
    55 |
    56 | -------------------------------------------------------------------------------- /template-parts/feed/content.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
    > 12 | 13 |
    14 |

    15 | 18 |

    19 |
    20 | 21 |
    22 | 27 | 28 |
    29 | 30 | 33 | 34 | 37 | 47 | 50 |
    51 | 52 |
    53 | →', 'benjamin' ), 60 | array( 'span' => array( 'class' => array() ) ) 61 | ), 62 | the_title( '"', '"', false ) 63 | ) 64 | ); 65 | 66 | ?> 67 |
    68 |
    69 | 70 |
    71 | '', 76 | ) 77 | ); 78 | ?> 79 |
    80 |
    81 | -------------------------------------------------------------------------------- /template-parts/singles/content-none.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
    13 | 16 | 17 |
    18 | 20 |

    21 | Get started here.', 'benjamin'), 26 | array( 27 | 'a' => array( 28 | 'href' => array(), 29 | ), 30 | ) 31 | ), 32 | esc_url( admin_url( 'post-new.php' ) ) 33 | ); 34 | ?> 35 |

    36 | 37 | 40 |

    41 | 45 |

    46 | 50 |
    51 |
    52 | -------------------------------------------------------------------------------- /template-parts/singles/content-page.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
    > 13 |
    14 | '', 21 | ) 22 | ); 23 | ?> 24 |
    25 | 26 | 27 |
    28 | "', '"', false ) 34 | ), 35 | '', 36 | '' 37 | ); 38 | ?> 39 |
    40 | 41 |
    42 | -------------------------------------------------------------------------------- /template-parts/singles/content.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
    > 13 | 14 | 15 |
    16 | 21 | 22 |
    23 | 24 | 25 |
    26 | →', 'benjamin' ), 33 | array('span' => array( 'class' => array() ) ) 34 | ), 35 | the_title( '"', '"', false ) 36 | ) 37 | ); 38 | 39 | wp_link_pages( 40 | array( 41 | 'before' => '', 43 | ) 44 | ); 45 | ?> 46 |
    47 | 48 |
    49 | 50 |
    51 |
    52 | --------------------------------------------------------------------------------