├── .csscomb.json ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .jsbeautifyrc ├── .stylelintignore ├── CHANGELOG.md ├── README.md ├── assets ├── css │ ├── editor.css │ ├── main.css │ └── woocommerce.css ├── fonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ └── fa-solid-900.woff2 ├── img │ ├── hero.jpg │ ├── narrow-content.gif │ ├── paypal.png │ ├── placeholder.png │ └── stripe.png ├── js │ ├── editor.js │ ├── hide-show.js │ ├── min │ │ ├── editor.js │ │ ├── editor.js.map │ │ ├── main.js │ │ └── main.js.map │ ├── smooth-scroll.js │ └── sticky-header.js ├── lang │ └── genesis-starter-theme.pot ├── scss │ ├── components │ │ ├── __index.scss │ │ ├── _archive-description.scss │ │ ├── _author-box.scss │ │ ├── _avatar.scss │ │ ├── _before-footer.scss │ │ ├── _before-header.scss │ │ ├── _block.scss │ │ ├── _breadcrumb.scss │ │ ├── _comment.scss │ │ ├── _content.scss │ │ ├── _custom-header.scss │ │ ├── _entry.scss │ │ ├── _featured-content.scss │ │ ├── _footer-credits.scss │ │ ├── _footer-widgets.scss │ │ ├── _front-page.scss │ │ ├── _gallery.scss │ │ ├── _header-widget-area.scss │ │ ├── _hero-section.scss │ │ ├── _menu-toggle.scss │ │ ├── _menu.scss │ │ ├── _modal.scss │ │ ├── _nav-primary.scss │ │ ├── _nav-secondary.scss │ │ ├── _pagination.scss │ │ ├── _search-form.scss │ │ ├── _sidebar.scss │ │ ├── _singular-image.scss │ │ ├── _sticky-header.scss │ │ ├── _sub-menu.scss │ │ ├── _title-area.scss │ │ ├── _transparent-header.scss │ │ ├── _widget.scss │ │ └── _wrap.scss │ ├── editor.scss │ ├── elements │ │ ├── __index.scss │ │ ├── _button.scss │ │ ├── _form.scss │ │ ├── _heading.scss │ │ ├── _list.scss │ │ ├── _media.scss │ │ ├── _table.scss │ │ └── _typography.scss │ ├── generic │ │ ├── __index.scss │ │ ├── _box-sizing.scss │ │ └── _normalize.scss │ ├── main.scss │ ├── objects │ │ ├── __index.scss │ │ ├── _site-container.scss │ │ ├── _site-footer.scss │ │ ├── _site-header.scss │ │ └── _site-inner.scss │ ├── plugins │ │ ├── __index.scss │ │ ├── atomic-blocks │ │ │ ├── __index.scss │ │ │ ├── _button.scss │ │ │ └── _image.scss │ │ ├── gravity-forms │ │ │ └── __index.scss │ │ └── woocommerce │ │ │ ├── __index.scss │ │ │ ├── _account-page.scss │ │ │ ├── _cart-page.scss │ │ │ ├── _checkout.scss │ │ │ ├── _globals.scss │ │ │ ├── _product.scss │ │ │ └── _shop-page.scss │ ├── settings │ │ ├── __index.scss │ │ ├── _breakpoints.scss │ │ ├── _colors.scss │ │ ├── _global.scss │ │ ├── _grid.scss │ │ ├── _layout.scss │ │ ├── _spacing.scss │ │ └── _typography.scss │ ├── tools │ │ ├── __index.scss │ │ ├── _extends.scss │ │ ├── _functions.scss │ │ ├── _mixins.scss │ │ └── _variables.scss │ └── utilities │ │ ├── __index.scss │ │ ├── _accessibility.scss │ │ ├── _alignment.scss │ │ ├── _grid.scss │ │ ├── _gutenberg.scss │ │ ├── _misc.scss │ │ ├── _print.scss │ │ ├── _spacing.scss │ │ └── _wordpress.scss └── svg │ └── .gitkeep ├── composer.json ├── config ├── genesis-settings.php ├── google-fonts.php ├── image-sizes.php ├── onboarding.php ├── page-layouts.php ├── post-type-support.php ├── responsive-menu.php ├── scripts-and-styles.php ├── simple-social-icons.php ├── theme-support.php └── widget-areas.php ├── functions.php ├── lib ├── classes │ └── class-example.php ├── functions │ ├── defaults.php │ ├── enqueue.php │ ├── header.php │ ├── helpers.php │ ├── markup.php │ ├── onboarding.php │ ├── setup.php │ └── widgets.php ├── init.php ├── plugins │ ├── gravity-forms.php │ └── woocommerce.php ├── shortcodes │ ├── hook.php │ ├── search-form.php │ └── widget-area.php └── structure │ ├── archive.php │ ├── comments.php │ ├── footer.php │ ├── header.php │ ├── hero.php │ ├── home.php │ ├── menus.php │ ├── pagination.php │ ├── single.php │ └── wrap.php ├── mix-manifest.json ├── package.json ├── phpcs.xml ├── phpunit.xml.dist ├── screenshot.png ├── style.css ├── stylelint.config.js ├── superfish-args.js ├── templates ├── blocks.php ├── landing.php └── no-hero.php ├── tests ├── config.php └── phpunit │ ├── integration │ ├── bootstrap.php │ ├── class-example-test.php │ └── phpunit.xml.dist │ └── unit │ ├── bootstrap.php │ ├── class-test-case.php │ └── lib │ └── functions │ └── class-helpers.php ├── themeclaim.json ├── webpack.mix.js └── yarn-error.log /.csscomb.json: -------------------------------------------------------------------------------- 1 | { 2 | "remove-empty-rulesets": true, 3 | "always-semicolon": true, 4 | "color-case": "lower", 5 | "block-indent": "\t", 6 | "color-shorthand": false, 7 | "element-case": "lower", 8 | "eof-newline": true, 9 | "leading-zero": true, 10 | "quotes": "single", 11 | "space-before-colon": "", 12 | "space-after-colon": " ", 13 | "space-before-combinator": " ", 14 | "space-after-combinator": " ", 15 | "space-between-declarations": "\n", 16 | "space-before-opening-brace": " ", 17 | "space-after-opening-brace": "\n", 18 | "space-after-selector-delimiter": "\n", 19 | "space-before-selector-delimiter": "", 20 | "space-before-closing-brace": "\n", 21 | "strip-spaces": true, 22 | "unitless-zero": true, 23 | "vendor-prefix-align": true 24 | } 25 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | # WordPress Coding Standards 5 | # http://make.wordpress.org/core/handbook/coding-standards/ 6 | 7 | root = true 8 | 9 | [*] 10 | charset = utf-8 11 | end_of_line = lf 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | indent_style = tab 15 | indent_size = 4 16 | 17 | [{.*rc,*.json,*.yml}] 18 | indent_style = space 19 | indent_size = 2 20 | 21 | [*.txt] 22 | end_of_line = crlf 23 | 24 | [*.md] 25 | trim_trailing_whitespace = false 26 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | vendor/ 3 | **/*.min.js 4 | lib/js/menu/superfish.js 5 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "wordpress" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore OS generated files. 2 | .DS_Store 3 | 4 | # Ignore node_modules. 5 | node_modules 6 | 7 | # Ignore auto-generated lock files. 8 | composer.lock 9 | package-lock.json 10 | yarn.lock 11 | 12 | # Ignore editor files. 13 | .idea 14 | 15 | # Dev packages 16 | vendor 17 | -------------------------------------------------------------------------------- /.jsbeautifyrc: -------------------------------------------------------------------------------- 1 | { 2 | "indent_size": 4, 3 | "indent_char": " ", 4 | "indent_with_tabs": true, 5 | "eol": "\n", 6 | "end_with_newline": true, 7 | "indent_level": 0, 8 | "preserve_newlines": true, 9 | "max_preserve_newlines": 10, 10 | "space_in_paren": true, 11 | "space_in_empty_paren": false, 12 | "jslint_happy": true, 13 | "space_after_anon_function": true, 14 | "brace_style": "collapse", 15 | "unindent_chained_methods": true, 16 | "break_chained_methods": false, 17 | "keep_array_indentation": true, 18 | "unescape_strings": false, 19 | "wrap_line_length": 0, 20 | "e4x": false, 21 | "comma_first": false, 22 | "operator_position": "before-newline" 23 | } -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | # Ignore vendor directories. 2 | node_modules/* 3 | vendor/* 4 | 5 | # Ignore minified styles. 6 | *.min.css 7 | -------------------------------------------------------------------------------- /assets/css/editor.css: -------------------------------------------------------------------------------- 1 | .wp-block-button__link{display:inline-block;width:auto;padding:1.92rem 3.2rem;border:0;border-radius:4px;color:#fff;background-color:#007bff;font-size:1.4222222222rem;font-weight:600;line-height:1;text-align:center;white-space:normal;text-decoration:none;cursor:pointer;transition:all .2s ease}.wp-block-button__link:active,.wp-block-button__link:focus,.wp-block-button__link:hover{outline:none;color:#fff;background-color:#3395ff;text-decoration:none}.wp-block-button__link:disabled,.wp-block-button__link:disabled:focus,.wp-block-button__link:disabled:hover{opacity:.5;background-color:#ced4da;cursor:not-allowed}.wp-block-button__link.small{padding:1em 1.5em;font-size:small}.wp-block-button__link.rounded{border-radius:10rem}.wp-block-button__link.outline{border:1px solid #007bff;color:#007bff;background:transparent}.wp-block-button__link.outline:active,.wp-block-button__link.outline:focus,.wp-block-button__link.outline:hover{color:#fff;background:#007bff}.wp-block-button__link.fa,.wp-block-button__link.fab,.wp-block-button__link.fas{display:inline-flex;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Avenir Next,Avenir,Lucida Grande,Helvetica Neue,Helvetica,Fira Sans,Noto,Droid Sans,Oxygen,Franklin Gothic Medium,Century Gothic,Liberation Sans;font-weight:600}.wp-block-button__link.fa:before,.wp-block-button__link.fab:before,.wp-block-button__link.fas:before{display:inline-block;margin-right:.8rem;font-family:Font Awesome\ 5 Pro,sans-serif;font-style:normal;font-feature-settings:normal;font-variant:normal;line-height:1;text-rendering:auto}.wp-block-button__link.icon-right:before{order:1;margin-right:0;margin-left:.8rem}.is-style-rounded .wp-block-button__link{border-radius:10rem}.is-style-outline .wp-block-button__link{border:1px solid #007bff;color:#007bff;background-color:transparent}.is-style-outline .wp-block-button__link:active,.is-style-outline .wp-block-button__link:focus,.is-style-outline .wp-block-button__link:hover{border-color:#007bff;color:#fff;background-color:#007bff}@media(max-width:896px){.wp-block-columns{flex-wrap:wrap}}@media(max-width:896px){.wp-block-column{flex:none;width:100%}}@media(min-width:896px){.wp-block-column{margin-left:3.2rem}.wp-block-column:first-of-type{margin-left:0}}.wp-block-embed,.wp-block-gallery{margin-top:1.6rem;margin-bottom:1.6rem}.wp-block-gallery .blocks-gallery-item img{align-self:center}.wp-block-image{margin-top:1.6rem;margin-bottom:1.6rem}.wp-block-image.alignleft{margin-right:1.6rem}.wp-block-image.alignright{margin-left:1.6rem}.wp-block-image.alignwide{max-width:120%}.wp-block-image.alignfull{max-width:none}.wp-block-latest-posts__post-excerpt{display:flex;flex-wrap:wrap}.wp-block-latest-posts li>a{color:#343a40;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Avenir Next,Avenir,Lucida Grande,Helvetica Neue,Helvetica,Fira Sans,Noto,Droid Sans,Oxygen,Franklin Gothic Medium,Century Gothic,Liberation Sans;font-weight:600;line-height:1.2944}.wp-block-pullquote{border-left:0}.wp-block-pullquote,.wp-block-pullquote.aligncenter{margin-top:3.2rem;margin-bottom:3.2rem}.editor-post-title__block .editor-post-title__input,body{color:#495057;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Avenir Next,Avenir,Lucida Grande,Helvetica Neue,Helvetica,Fira Sans,Noto,Droid Sans,Oxygen,Franklin Gothic Medium,Century Gothic,Liberation Sans}blockquote{font-style:italic}.wp-block-button__link{font-size:1em} -------------------------------------------------------------------------------- /assets/fonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-brands-400.eot -------------------------------------------------------------------------------- /assets/fonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /assets/fonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-brands-400.woff -------------------------------------------------------------------------------- /assets/fonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /assets/fonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-regular-400.eot -------------------------------------------------------------------------------- /assets/fonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /assets/fonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-regular-400.woff -------------------------------------------------------------------------------- /assets/fonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /assets/fonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-solid-900.eot -------------------------------------------------------------------------------- /assets/fonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /assets/fonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-solid-900.woff -------------------------------------------------------------------------------- /assets/fonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/fonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /assets/img/hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/img/hero.jpg -------------------------------------------------------------------------------- /assets/img/narrow-content.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/img/narrow-content.gif -------------------------------------------------------------------------------- /assets/img/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/img/paypal.png -------------------------------------------------------------------------------- /assets/img/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/img/placeholder.png -------------------------------------------------------------------------------- /assets/img/stripe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/img/stripe.png -------------------------------------------------------------------------------- /assets/js/editor.js: -------------------------------------------------------------------------------- 1 | wp.domReady( () => { 2 | wp.blocks.unregisterBlockStyle( 'core/button', 'squared' ); 3 | 4 | wp.blocks.registerBlockStyle( 'core/button', { name: 'rounded', label: 'Rounded' }); 5 | } ); 6 | -------------------------------------------------------------------------------- /assets/js/hide-show.js: -------------------------------------------------------------------------------- 1 | function hide(element) { 2 | var el = document.getElementsByClassName(element)[0]; 3 | el.style.opacity = 1; 4 | 5 | (function fade() { 6 | if ((el.style.opacity -= 0.1) < 0) { 7 | el.style.display = 'none'; 8 | } else { 9 | requestAnimationFrame(fade); 10 | } 11 | })(); 12 | } 13 | 14 | function show(element, display) { 15 | var el = document.getElementsByClassName(element)[0]; 16 | 17 | el.style.opacity = 0; 18 | el.style.display = display || 'inline-flex'; 19 | 20 | (function fade() { 21 | var val = parseFloat(el.style.opacity); 22 | 23 | if (!((val += 0.1) > 1)) { 24 | el.style.opacity = val; 25 | requestAnimationFrame(fade); 26 | } 27 | })(); 28 | } 29 | 30 | // Hide modal on click outside. 31 | document.addEventListener('click', function (event) { 32 | var modal = document.getElementsByClassName('modal')[0]; 33 | 34 | if (!modal || event.target.closest('.modal')) { 35 | return; 36 | } 37 | 38 | if ('1' === modal.style.opacity) { 39 | hide('modal'); 40 | } 41 | }); 42 | 43 | -------------------------------------------------------------------------------- /assets/js/min/editor.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/editor.js","webpack:///./assets/scss/editor.scss?9976","webpack:///./assets/scss/main.scss?746f","webpack:///./assets/scss/plugins/woocommerce/__index.scss?3c38","webpack:///./assets/scss/styles.scss"],"names":["wp","domReady","blocks","unregisterBlockStyle","registerBlockStyle","name","label"],"mappings":";;;;;;;;;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFAA,EAAE,CAACC,QAAH,CAAa,YAAM;AACfD,IAAE,CAACE,MAAH,CAAUC,oBAAV,CAAgC,aAAhC,EAA+C,SAA/C;AAEAH,IAAE,CAACE,MAAH,CAAUE,kBAAV,CAA8B,aAA9B,EAA6C;AAAEC,QAAI,EAAE,SAAR;AAAmBC,SAAK,EAAE;AAA1B,GAA7C;AACH,CAJD,E;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,yC","file":"/js/min/editor.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","wp.domReady( () => {\n wp.blocks.unregisterBlockStyle( 'core/button', 'squared' );\n\n wp.blocks.registerBlockStyle( 'core/button', { name: 'rounded', label: 'Rounded' });\n} );\n","// removed by extract-text-webpack-plugin","// removed by extract-text-webpack-plugin","// removed by extract-text-webpack-plugin","// removed by extract-text-webpack-plugin"],"sourceRoot":""} -------------------------------------------------------------------------------- /assets/js/min/main.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/hide-show.js","webpack:///./assets/js/sticky-header.js"],"names":["hide","element","el","document","getElementsByClassName","style","opacity","fade","display","requestAnimationFrame","show","val","parseFloat","addEventListener","event","modal","target","closest","scrollPosition","window","scrollY","siteHeader","siteHeaderHeight","offsetHeight","classList","add","remove"],"mappings":";;;;;;;;;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,SAASA,IAAT,CAAcC,OAAd,EAAuB;AACnB,MAAIC,EAAE,GAAGC,QAAQ,CAACC,sBAAT,CAAgCH,OAAhC,EAAyC,CAAzC,CAAT;AACAC,IAAE,CAACG,KAAH,CAASC,OAAT,GAAmB,CAAnB;;AAEA,GAAC,SAASC,IAAT,GAAgB;AACb,QAAI,CAACL,EAAE,CAACG,KAAH,CAASC,OAAT,IAAoB,GAArB,IAA4B,CAAhC,EAAmC;AAC/BJ,QAAE,CAACG,KAAH,CAASG,OAAT,GAAmB,MAAnB;AACH,KAFD,MAEO;AACHC,2BAAqB,CAACF,IAAD,CAArB;AACH;AACJ,GAND;AAOH;;AAED,SAASG,IAAT,CAAcT,OAAd,EAAuBO,OAAvB,EAAgC;AAC5B,MAAIN,EAAE,GAAGC,QAAQ,CAACC,sBAAT,CAAgCH,OAAhC,EAAyC,CAAzC,CAAT;AAEAC,IAAE,CAACG,KAAH,CAASC,OAAT,GAAmB,CAAnB;AACAJ,IAAE,CAACG,KAAH,CAASG,OAAT,GAAmBA,OAAO,IAAI,aAA9B;;AAEA,GAAC,SAASD,IAAT,GAAgB;AACb,QAAII,GAAG,GAAGC,UAAU,CAACV,EAAE,CAACG,KAAH,CAASC,OAAV,CAApB;;AAEA,QAAI,EAAE,CAACK,GAAG,IAAI,GAAR,IAAe,CAAjB,CAAJ,EAAyB;AACrBT,QAAE,CAACG,KAAH,CAASC,OAAT,GAAmBK,GAAnB;AACAF,2BAAqB,CAACF,IAAD,CAArB;AACH;AACJ,GAPD;AAQH,C,CAED;;;AACAJ,QAAQ,CAACU,gBAAT,CAA0B,OAA1B,EAAmC,UAAUC,KAAV,EAAiB;AAChD,MAAIC,KAAK,GAAGZ,QAAQ,CAACC,sBAAT,CAAgC,OAAhC,EAAyC,CAAzC,CAAZ;;AAEA,MAAI,CAACW,KAAD,IAAUD,KAAK,CAACE,MAAN,CAAaC,OAAb,CAAqB,QAArB,CAAd,EAA8C;AAC1C;AACH;;AAED,MAAI,QAAQF,KAAK,CAACV,KAAN,CAAYC,OAAxB,EAAiC;AAC7BN,QAAI,CAAC,OAAD,CAAJ;AACH;AACJ,CAVD,E;;;;;;;;;;;;;;;;;;;;;;AC9BA,IAAIkB,cAAc,GAAGC,MAAM,CAACC,OAA5B;AAAA,IACIC,UAAU,GAAGlB,QAAQ,CAACC,sBAAT,CAAgC,aAAhC,EAA+C,CAA/C,CADjB;AAAA,IAEIkB,gBAAgB,GAAGD,UAAU,CAACE,YAFlC;AAIAJ,MAAM,CAACN,gBAAP,CAAwB,QAAxB,EAAkC,YAAY;AAE1CK,gBAAc,GAAGC,MAAM,CAACC,OAAxB;;AAEA,MAAIF,cAAc,IAAII,gBAAtB,EAAwC;AACpCD,cAAU,CAACG,SAAX,CAAqBC,GAArB,CAAyB,QAAzB;AACH,GAFD,MAEO;AACHJ,cAAU,CAACG,SAAX,CAAqBE,MAArB,CAA4B,QAA5B;AACH;AAEJ,CAVD,E","file":"/js/min/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","function hide(element) {\n var el = document.getElementsByClassName(element)[0];\n el.style.opacity = 1;\n\n (function fade() {\n if ((el.style.opacity -= 0.1) < 0) {\n el.style.display = 'none';\n } else {\n requestAnimationFrame(fade);\n }\n })();\n}\n\nfunction show(element, display) {\n var el = document.getElementsByClassName(element)[0];\n\n el.style.opacity = 0;\n el.style.display = display || 'inline-flex';\n\n (function fade() {\n var val = parseFloat(el.style.opacity);\n\n if (!((val += 0.1) > 1)) {\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n })();\n}\n\n// Hide modal on click outside.\ndocument.addEventListener('click', function (event) {\n var modal = document.getElementsByClassName('modal')[0];\n\n if (!modal || event.target.closest('.modal')) {\n return;\n }\n\n if ('1' === modal.style.opacity) {\n hide('modal');\n }\n});\n\n","var scrollPosition = window.scrollY,\n siteHeader = document.getElementsByClassName('site-header')[0],\n siteHeaderHeight = siteHeader.offsetHeight;\n\nwindow.addEventListener('scroll', function () {\n\n scrollPosition = window.scrollY;\n\n if (scrollPosition >= siteHeaderHeight) {\n siteHeader.classList.add('sticky');\n } else {\n siteHeader.classList.remove('sticky');\n }\n\n});\n\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /assets/js/smooth-scroll.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/js/smooth-scroll.js -------------------------------------------------------------------------------- /assets/js/sticky-header.js: -------------------------------------------------------------------------------- 1 | var scrollPosition = window.scrollY, 2 | siteHeader = document.getElementsByClassName('site-header')[0], 3 | siteHeaderHeight = siteHeader.offsetHeight; 4 | 5 | window.addEventListener('scroll', function () { 6 | 7 | scrollPosition = window.scrollY; 8 | 9 | if (scrollPosition >= siteHeaderHeight) { 10 | siteHeader.classList.add('sticky'); 11 | } else { 12 | siteHeader.classList.remove('sticky'); 13 | } 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /assets/lang/genesis-starter-theme.pot: -------------------------------------------------------------------------------- 1 | # 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Genesis Starter Theme 3.5.0\n" 6 | "Report-Msgid-Bugs-To: " 7 | "https://wordpress.org/support/theme/genesis-starter-theme\n" 8 | "POT-Creation-Date: 2019-09-04 05:08:55+00:00\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=utf-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "X-Generator: node-wp-i18n 1.2.3\n" 16 | 17 | #: config/page-layouts.php:18 18 | msgid "Narrow Content" 19 | msgstr "" 20 | 21 | #: config/responsive-menu.php:16 22 | msgid "Menu" 23 | msgstr "" 24 | 25 | #: config/theme-support.php:55 26 | msgid "Header Menu" 27 | msgstr "" 28 | 29 | #: config/theme-support.php:56 30 | msgid "After Header Menu" 31 | msgstr "" 32 | 33 | #: config/widget-areas.php:20 34 | msgid "Front Page " 35 | msgstr "" 36 | 37 | #: config/widget-areas.php:22 38 | #. translators: The front page widget area number. 39 | msgid "The Front Page %s widget area." 40 | msgstr "" 41 | 42 | #: config/widget-areas.php:31 43 | msgid "Before Header" 44 | msgstr "" 45 | 46 | #: config/widget-areas.php:32 47 | msgid "The Before Header widget area." 48 | msgstr "" 49 | 50 | #: config/widget-areas.php:36 51 | msgid "Before Footer" 52 | msgstr "" 53 | 54 | #: config/widget-areas.php:37 55 | msgid "The Before Footer widget area." 56 | msgstr "" 57 | 58 | #: lib/functions/defaults.php:56 59 | msgid "Icon Widget" 60 | msgstr "" 61 | 62 | #: lib/functions/header.php:90 63 | msgid "Hero Image" 64 | msgstr "" 65 | 66 | #: lib/structure/hero.php:131 67 | msgid "Latest Posts" 68 | msgstr "" 69 | 70 | #: lib/structure/hero.php:134 71 | msgid "Not found, error 404" 72 | msgstr "" 73 | 74 | #: lib/structure/hero.php:137 75 | msgid "Search results for: " 76 | msgstr "" 77 | 78 | #: lib/structure/hero.php:177 79 | msgid "Showing the latest posts" 80 | msgstr "" 81 | 82 | #: vendor/wp-phpunit/wp-phpunit/data/plugins/internationalized-plugin.php:11 83 | msgid "This is a dummy plugin" 84 | msgstr "" 85 | 86 | #: vendor/wp-phpunit/wp-phpunit/data/themedir1/internationalized-theme/functions.php:7 87 | msgid "This is a dummy theme" 88 | msgstr "" 89 | 90 | #. Theme Name of the plugin/theme 91 | msgid "Genesis Starter Theme" 92 | msgstr "" 93 | 94 | #. Theme URI of the plugin/theme 95 | msgid "https://genesisstartertheme.com/" 96 | msgstr "" 97 | 98 | #. Description of the plugin/theme 99 | msgid "Genesis starter theme with a modern development workflow." 100 | msgstr "" 101 | 102 | #. Author of the plugin/theme 103 | msgid "SEO Themes" 104 | msgstr "" 105 | 106 | #. Author URI of the plugin/theme 107 | msgid "https://seothemes.com/" 108 | msgstr "" 109 | 110 | #. Template Name of the plugin/theme 111 | msgid "Blocks" 112 | msgstr "" 113 | 114 | #. Template Name of the plugin/theme 115 | msgid "Landing" 116 | msgstr "" 117 | 118 | #. Template Name of the plugin/theme 119 | msgid "No Hero" 120 | msgstr "" -------------------------------------------------------------------------------- /assets/scss/components/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Component imports. 3 | /// 4 | /// Components make up the bulk of the actual theme design. Nearly every piece 5 | /// of the design is some type of component, whether it's a one-off or reusable 6 | /// block of code. 7 | /// 8 | /// @group Components 9 | /// @author Lee Anthony 10 | /// @link https://seothemes.com/themes/genesis-starter-theme 11 | //// 12 | 13 | @import "wrap"; 14 | @import "title-area"; 15 | @import "nav-primary"; 16 | @import "nav-secondary"; 17 | @import "menu"; 18 | @import "menu-toggle"; 19 | @import "sub-menu"; 20 | @import "header-widget-area"; 21 | @import "transparent-header"; 22 | @import "sticky-header"; 23 | @import "custom-header"; 24 | @import "hero-section"; 25 | @import "front-page"; 26 | @import "breadcrumb"; 27 | @import "archive-description"; 28 | @import "content"; 29 | @import "sidebar"; 30 | @import "author-box"; 31 | @import "avatar"; 32 | @import "entry"; 33 | @import "block"; 34 | @import "gallery"; 35 | @import "singular-image"; 36 | @import "pagination"; 37 | @import "comment"; 38 | @import "search-form"; 39 | @import "widget"; 40 | @import "featured-content"; 41 | @import "before-header"; 42 | @import "before-footer"; 43 | @import "footer-widgets"; 44 | @import "footer-credits"; 45 | @import "modal"; 46 | 47 | -------------------------------------------------------------------------------- /assets/scss/components/_archive-description.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Archive description component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .archive { 10 | 11 | // Archive description box. 12 | &-description { 13 | width: 100%; 14 | } 15 | 16 | // Archive description title. 17 | &-title {} 18 | } 19 | -------------------------------------------------------------------------------- /assets/scss/components/_author-box.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Author box component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .author-box { 10 | margin: $gutter 0; 11 | padding: $gap; 12 | border: $base--border; 13 | border-radius: $base--border--radius; 14 | background-color: $color--background; 15 | 16 | .is-archive & { 17 | margin-top: 0; 18 | } 19 | 20 | // Author box title. 21 | &-title { 22 | margin-bottom: $spacing--xs; 23 | } 24 | 25 | // Author box content. 26 | &-content { 27 | padding-left: $spacing--xl + $spacing--m; 28 | 29 | p { 30 | 31 | &:last-of-type { 32 | margin-bottom: 0; 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /assets/scss/components/_avatar.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Avatar component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .avatar { 10 | float: left; 11 | margin-right: $spacing--m; 12 | border-radius: $base--border--radius; 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/components/_before-footer.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Before footer component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .before-footer { 10 | padding: $spacing--xl 0 $spacing--xl - $gutter; 11 | border-bottom: $base--border; 12 | background-color: $color--background; 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/components/_before-header.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Before header component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .before-header { 10 | padding: $spacing--s 0; 11 | border-bottom: $base--border; 12 | background-color: $color--background; 13 | font-size: small; 14 | line-height: 1; 15 | 16 | .wrap { 17 | align-items: center; 18 | } 19 | 20 | .widget { 21 | margin-bottom: 0; 22 | } 23 | 24 | p, 25 | button, 26 | .button { 27 | margin-bottom: 0; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /assets/scss/components/_block.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Gutenberg block component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .wp-block { 10 | 11 | // Audio block. 12 | &-audio { 13 | } 14 | 15 | // Button block. 16 | &-button { 17 | 18 | &__link { 19 | 20 | @include button; 21 | 22 | .is-style-rounded & { 23 | border-radius: 10rem; 24 | } 25 | 26 | .is-style-outline & { 27 | border: $base--border--width $base--border--style $color--primary; 28 | color: $color--primary; 29 | background-color: transparent; 30 | 31 | @include hover-focus { 32 | border-color: $color--primary; 33 | color: $color--white; 34 | background-color: $color--primary; 35 | } 36 | } 37 | } 38 | } 39 | 40 | // Categories block. 41 | &-categories { 42 | 43 | &-list { 44 | } 45 | 46 | &-dropdown { 47 | } 48 | } 49 | 50 | // Code block. 51 | &-code { 52 | } 53 | 54 | // Columns block. 55 | &-columns { 56 | 57 | @include mq($until: m) { 58 | flex-wrap: wrap; 59 | } 60 | } 61 | 62 | &-column { 63 | 64 | @include mq($until: m) { 65 | flex: none; 66 | width: 100%; 67 | } 68 | 69 | @include mq(m) { 70 | margin-left: $gutter; 71 | 72 | &:first-of-type { 73 | margin-left: 0; 74 | } 75 | } 76 | } 77 | 78 | // Cover image block. 79 | &-cover-image { 80 | 81 | &.has-parallax { 82 | } 83 | 84 | &.has-background-dim { 85 | } 86 | 87 | &-text { 88 | } 89 | 90 | &.has-left-content { 91 | } 92 | 93 | &.has-right-content { 94 | } 95 | 96 | &.has-left-content &-text { 97 | } 98 | 99 | &.has-right-content &-text { 100 | } 101 | } 102 | 103 | // Embed block. 104 | &-embed { 105 | 106 | @include margin($spacing--m null); 107 | } 108 | 109 | // File block. 110 | &-file { 111 | 112 | &__button { 113 | } 114 | } 115 | 116 | // Gallery block. 117 | &-gallery { 118 | 119 | @include margin($spacing--m null); 120 | 121 | &.is-cropped { 122 | } 123 | 124 | &.columns-1 { 125 | } 126 | 127 | &.columns-2 { 128 | } 129 | 130 | &.columns-3 { 131 | } 132 | 133 | .blocks-gallery-item { 134 | } 135 | 136 | &.is-cropped .blocks-gallery-item { 137 | } 138 | 139 | .blocks-gallery-item { 140 | 141 | img { 142 | align-self: center; 143 | } 144 | } 145 | 146 | &.columns-1 .blocks-gallery-item { 147 | } 148 | } 149 | 150 | // Image block. 151 | &-image { 152 | 153 | @include margin($spacing--m null); 154 | 155 | &.alignleft { 156 | margin-right: $spacing--m; 157 | } 158 | 159 | &.alignright { 160 | margin-left: $spacing--m; 161 | } 162 | 163 | &.alignwide { 164 | max-width: 120%; 165 | } 166 | 167 | &.alignfull { 168 | max-width: none; 169 | } 170 | } 171 | 172 | // Latest posts block. 173 | &-latest-posts { 174 | 175 | &.is-grid { 176 | } 177 | 178 | &__post-date { 179 | } 180 | 181 | &__post-excerpt { 182 | display: flex; 183 | flex-wrap: wrap; 184 | } 185 | 186 | li > a { 187 | color: $color--heading; 188 | font-family: $font-family--heading; 189 | font-weight: $font-weight--semibold; 190 | line-height: $line-height--heading; 191 | } 192 | } 193 | 194 | // Preformatted block. 195 | &-preformatted { 196 | } 197 | 198 | // Pullquote block. 199 | &-pullquote { 200 | border-left: 0; 201 | 202 | @include margin($spacing--l null); 203 | 204 | &.aligncenter { 205 | 206 | @include margin($spacing--l null); 207 | } 208 | } 209 | 210 | // Quote block. 211 | &-quote { 212 | } 213 | 214 | // Separator block. 215 | &-separator { 216 | } 217 | 218 | // Subhead block. 219 | &-subhead { 220 | } 221 | 222 | // Table block. 223 | &-table { 224 | } 225 | 226 | // Verse block. 227 | &-verse { 228 | } 229 | } 230 | -------------------------------------------------------------------------------- /assets/scss/components/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Breadcrumb component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .breadcrumb { 10 | width: 100%; 11 | margin: 0 0 $spacing--m; 12 | 13 | // Link wrapper. 14 | &-link-wrap {} 15 | 16 | // Breadcrumb separator. 17 | &-separator {} 18 | } 19 | -------------------------------------------------------------------------------- /assets/scss/components/_comment.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Comment component. 3 | /// 4 | /// This is the component for handling individual comments in a comments list. 5 | /// 6 | /// @group Components 7 | /// @author Lee Anthony 8 | /// @link https://github.com/seothemes/genesis-starter-theme 9 | //// 10 | 11 | .comment { 12 | margin: $spacing--l 0; 13 | 14 | // Comment list wrapper. 15 | &-list { 16 | list-style-type: none; 17 | } 18 | 19 | // Comment children. 20 | .children { 21 | list-style-type: none; 22 | 23 | @include margin(0 null); 24 | } 25 | 26 | // Comment header. 27 | &-header {} 28 | 29 | // Comment author. 30 | &-author { 31 | margin: 0; 32 | } 33 | 34 | // Comment author link. 35 | &-author-link {} 36 | 37 | // Comment author says. 38 | .says {} 39 | 40 | // Comment meta. 41 | &-meta {} 42 | 43 | // Comment time. 44 | &-time {} 45 | 46 | // Comment time link. 47 | &-time-link {} 48 | 49 | // Comment edit link. 50 | &-edit-link { 51 | display: none; 52 | } 53 | 54 | // Comment content. 55 | &-content {} 56 | 57 | // Comment reply. 58 | &-reply {} 59 | 60 | // Comment reply link. 61 | &-reply-link {} 62 | 63 | // Comment reply title. 64 | &-reply-title {} 65 | 66 | // Comment respond. 67 | &-respond { 68 | width: 100%; 69 | } 70 | 71 | // Comment logged in as. 72 | .logged-in-as {} 73 | 74 | // Comment reply form. 75 | &-form {} 76 | 77 | // Comment form comment. 78 | &-form-comment {} 79 | 80 | // Comment form submit. 81 | .form-submit {} 82 | } 83 | -------------------------------------------------------------------------------- /assets/scss/components/_content.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Content component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .content { 10 | width: 100%; 11 | 12 | @include margin($spacing--l null); 13 | 14 | @include mq(m) { 15 | 16 | @include margin($spacing--xl null); 17 | } 18 | 19 | .content-sidebar &, 20 | .sidebar-content & { 21 | 22 | @include mq(m) { 23 | width: $layout--width--content; 24 | max-width: $layout--max-width--content; 25 | } 26 | } 27 | 28 | .narrow-content & { 29 | 30 | @include mq(m) { 31 | width: $layout--width--content; 32 | } 33 | } 34 | 35 | .sidebar-content & { 36 | 37 | @include mq(m) { 38 | order: 1; 39 | } 40 | } 41 | 42 | .narrow-content & { 43 | 44 | @include margin(null auto); 45 | } 46 | 47 | .full-width-content & { 48 | } 49 | 50 | .is-archive & { 51 | display: flex; 52 | flex-wrap: wrap; 53 | justify-content: center; 54 | width: 100%; 55 | } 56 | 57 | .has-heading-block & { 58 | margin: 0 auto; 59 | } 60 | 61 | .front-page & { 62 | width: 100%; 63 | margin: 0 auto; 64 | 65 | @include mq(m) { 66 | width: 100%; 67 | } 68 | } 69 | 70 | .template-blocks & { 71 | margin: 0 auto; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /assets/scss/components/_custom-header.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Custom header component. 3 | /// 4 | /// This handles the output of `the_custom_header_markup()` from core WP's 5 | /// `custom-header` feature. 6 | /// 7 | /// @group Components 8 | /// @author Lee Anthony 9 | /// @link https://github.com/seothemes/genesis-starter-theme 10 | //// 11 | 12 | .wp-custom-header { 13 | display: flex; 14 | align-items: center; 15 | justify-content: center; 16 | 17 | @include overlay; 18 | @include position(absolute, 0 0 0 0); 19 | 20 | // Video play/pause button. 21 | &-video-button { 22 | } 23 | 24 | // Video play button. 25 | &-video-play { 26 | } 27 | 28 | // Video pause button. 29 | &-video-pause { 30 | } 31 | 32 | img { 33 | max-width: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /assets/scss/components/_entry.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Entry component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .entry { 10 | 11 | .featuredpost &, 12 | .is-archive & { 13 | margin-bottom: $gutter; 14 | border: $base--border; 15 | border-radius: $base--border--radius; 16 | background-color: $color--white; 17 | 18 | &:last-of-type { 19 | 20 | @include mq($until: xs) { 21 | margin-bottom: 0; 22 | } 23 | } 24 | } 25 | 26 | // Entry header. 27 | &-header { 28 | } 29 | 30 | // Entry title. 31 | &-title { 32 | 33 | .is-archive & { 34 | font-size: $font-size--h4; 35 | } 36 | 37 | a { 38 | color: $color--text; 39 | 40 | @include hover-focus { 41 | color: $color--primary; 42 | } 43 | } 44 | } 45 | 46 | // Entry title link. 47 | &-title-link { 48 | } 49 | 50 | // Entry time. 51 | &-time { 52 | } 53 | 54 | // Entry author. 55 | &-author { 56 | } 57 | 58 | // Entry author link. 59 | &-author-link { 60 | } 61 | 62 | // Entry author name. 63 | &-author-name { 64 | } 65 | 66 | // Entry comments link 67 | &-comments-link { 68 | } 69 | 70 | // Entry meta. 71 | &-meta { 72 | font-size: smaller; 73 | } 74 | 75 | // Entry image link. 76 | &-image-link { 77 | display: block; 78 | 79 | img { 80 | min-width: 100%; 81 | border-radius: $base--border--radius $base--border--radius 0 0; 82 | } 83 | } 84 | 85 | // Entry content. 86 | &-content { 87 | 88 | p { 89 | 90 | &:last-of-type { 91 | 92 | } 93 | } 94 | } 95 | 96 | // Entry footer. 97 | &-footer { 98 | 99 | p { 100 | 101 | &:last-of-type { 102 | margin-bottom: 0; 103 | } 104 | } 105 | } 106 | 107 | // Entry categories. 108 | &-categories { 109 | } 110 | 111 | // Entry tags. 112 | &-tags { 113 | } 114 | 115 | // Entry wrap. 116 | &-wrap { 117 | padding: $gap; 118 | } 119 | } 120 | 121 | // More link. 122 | .more-link { 123 | } 124 | -------------------------------------------------------------------------------- /assets/scss/components/_featured-content.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Gallery component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .featured-content { 10 | margin-bottom: $spacing--m; 11 | 12 | .entry { 13 | 14 | > a { 15 | display: block; 16 | 17 | img { 18 | min-width: 100%; 19 | } 20 | } 21 | 22 | > span { 23 | display: none; 24 | } 25 | } 26 | 27 | .sidebar & { 28 | 29 | .entry { 30 | 31 | @include clearfix; 32 | } 33 | 34 | .entry-image { 35 | max-width: $spacing--xxl; 36 | } 37 | 38 | .entry-title { 39 | margin-bottom: $spacing--xxs; 40 | font-size: $base--font-size; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /assets/scss/components/_footer-credits.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Footer credits component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .footer-credits { 10 | font-size: $base--font-size / $major-second; 11 | 12 | 13 | p { 14 | margin-bottom: $gutter; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /assets/scss/components/_footer-widgets.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Footer widgets component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .footer-widgets { 10 | padding: $spacing--xl 0; 11 | 12 | } 13 | 14 | // Footer widget area. 15 | .footer-widget-area { 16 | 17 | @include mq(m) { 18 | flex: 1; 19 | margin-left: $spacing--l; 20 | 21 | &:first-of-type { 22 | margin-left: 0; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/components/_front-page.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Front page component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | [src*="placeholder.com"] { 10 | padding: $spacing--xxs; 11 | border: $base--border; 12 | border-radius: $base--border--radius; 13 | } 14 | 15 | [class*="front-page-"] { 16 | width: 100%; 17 | padding: $spacing--xl 0 $spacing--xl - $gutter; 18 | border-bottom: $base--border; 19 | 20 | @include mq(m) { 21 | padding: $spacing--xxl 0 $spacing--xxl - $gutter; 22 | } 23 | 24 | &:last-of-type { 25 | border-bottom: 0; 26 | } 27 | } 28 | 29 | .front-page { 30 | 31 | &-1 { 32 | padding: $spacing--xxl 0 $spacing--xxl - $gap; 33 | 34 | @include mq(m) { 35 | padding: $spacing--xxxl 0 $spacing--xxxl - $gap; 36 | } 37 | } 38 | 39 | &-5 { 40 | padding: $spacing--xl 0 $spacing--xl - $gutter; 41 | background-color: $color--background; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /assets/scss/components/_gallery.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Gallery component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .gallery { 10 | display: flex; 11 | flex-wrap: wrap; 12 | 13 | // Gallery item. 14 | &-item { 15 | width: $one-half; 16 | margin-bottom: $gutter; 17 | 18 | .gallery-columns-1 & { 19 | width: 100%; 20 | } 21 | 22 | @include mq(m) { 23 | margin-left: $gutter; 24 | 25 | .gallery-columns-1 & { 26 | margin-left: 0; 27 | } 28 | 29 | .gallery-columns-2 & { 30 | width: $one-half; 31 | 32 | &:nth-of-type(2n + 1) { 33 | margin-left: 0; 34 | } 35 | } 36 | 37 | .gallery-columns-3 & { 38 | width: $one-third; 39 | 40 | &:nth-of-type(3n + 1) { 41 | margin-left: 0; 42 | } 43 | } 44 | 45 | .gallery-columns-4 & { 46 | width: $one-fourth; 47 | 48 | &:nth-of-type(4n + 1) { 49 | margin-left: 0; 50 | } 51 | } 52 | 53 | .gallery-columns-5 & { 54 | width: $one-fifth; 55 | 56 | &:nth-of-type(5n + 1) { 57 | margin-left: 0; 58 | } 59 | } 60 | 61 | .gallery-columns-6 & { 62 | width: $one-sixth; 63 | 64 | &:nth-of-type(6n + 1) { 65 | margin-left: 0; 66 | } 67 | } 68 | } 69 | 70 | img { 71 | width: 100%; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /assets/scss/components/_header-widget-area.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Header right component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .header-widget-area { 10 | margin-right: $gap; 11 | margin-left: auto; 12 | 13 | @include mq($until: xxs) { 14 | display: none; 15 | } 16 | 17 | @include mq(m) { 18 | margin: 0; 19 | order: 3; 20 | } 21 | 22 | .widget { 23 | margin-bottom: 0; 24 | 25 | @include mq(m) { 26 | margin-left: $gutter; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /assets/scss/components/_hero-section.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Hero section component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | @mixin hero-section { 10 | display: flex; 11 | flex-wrap: wrap; 12 | align-items: center; 13 | justify-content: center; 14 | width: 100%; 15 | padding: $spacing--l 0; 16 | border-bottom: $base--border; 17 | background-position: center; 18 | background-size: cover; 19 | text-align: center; 20 | 21 | @include overlay; 22 | 23 | @include mq(m) { 24 | padding: $spacing--xl 0; 25 | } 26 | 27 | .wrap { 28 | justify-content: center; 29 | position: relative; 30 | } 31 | 32 | h1 { 33 | width: 100%; 34 | margin-bottom: 0; 35 | } 36 | 37 | p { 38 | margin-top: $spacing--m; 39 | margin-bottom: 0; 40 | } 41 | } 42 | 43 | .hero-section { 44 | 45 | @include hero-section; 46 | } 47 | -------------------------------------------------------------------------------- /assets/scss/components/_menu-toggle.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Menu toggle component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .menu-toggle { 10 | display: flex; 11 | align-items: center; 12 | justify-content: center; 13 | margin: 0; 14 | padding: 0; 15 | background-color: transparent; 16 | order: 1; 17 | 18 | @include size($spacing--m * $perfect-fifth); 19 | 20 | @include mq(m) { 21 | display: none; 22 | } 23 | 24 | @include hover-focus { 25 | background-color: transparent; 26 | } 27 | 28 | &:focus { 29 | outline: $base--border; 30 | } 31 | 32 | .hamburger, 33 | .hamburger:before, 34 | .hamburger:after { 35 | display: block; 36 | position: absolute; 37 | width: $spacing--m * $perfect-fifth; 38 | height: 3px; 39 | background-color: $color--text; 40 | content: ""; 41 | } 42 | 43 | .hamburger { 44 | top: auto; 45 | right: auto; 46 | bottom: auto; 47 | margin: auto; 48 | 49 | &:before { 50 | top: -$spacing--s; 51 | } 52 | 53 | &:after { 54 | bottom: -$spacing--s; 55 | } 56 | } 57 | 58 | &.activated { 59 | 60 | .hamburger { 61 | background-color: transparent; 62 | 63 | &:before { 64 | top: 0; 65 | transform: rotate(45deg); 66 | } 67 | 68 | &:after { 69 | bottom: 0; 70 | transform: rotate(-45deg); 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /assets/scss/components/_menu.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Menu component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .menu { 10 | margin: 0; 11 | list-style-type: none; 12 | 13 | @include mq(m) { 14 | display: flex; 15 | flex-wrap: wrap; 16 | justify-content: flex-end; 17 | align-items: center; 18 | border: 0; 19 | font-size: $base--font-size / $major-second; 20 | } 21 | 22 | // Menu item. 23 | &-item { 24 | display: flex; 25 | flex-wrap: wrap; 26 | align-items: center; 27 | justify-content: space-between; 28 | padding: $spacing--xs 0; 29 | 30 | @include margin(null auto); 31 | 32 | @include mq(m) { 33 | display: block; 34 | margin: 0; 35 | padding: $spacing--m $spacing--s * $golden; 36 | 37 | &:last-of-type { 38 | padding-right: 0; 39 | } 40 | 41 | &:first-of-type { 42 | padding-left: 0; 43 | } 44 | } 45 | 46 | &.button { 47 | padding: 0; 48 | 49 | @include mq(m) { 50 | margin-left: $spacing--m; 51 | } 52 | } 53 | } 54 | 55 | // Link 56 | a { 57 | color: $color--text; 58 | text-decoration: none; 59 | } 60 | 61 | a:hover, 62 | a:focus, 63 | .current-menu-item > a { 64 | color: $color--primary; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /assets/scss/components/_modal.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Modal component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .modal { 10 | display: none; 11 | flex-wrap: wrap; 12 | justify-content: center; 13 | align-items: center; 14 | align-content: center; 15 | z-index: 999; 16 | padding: $gutter; 17 | border-radius: $base--border--radius; 18 | opacity: 0; 19 | background-color: $color--white; 20 | box-shadow: 0 0 0 100vw rgba($color--dark, 0.2), $base--box-shadow; 21 | text-align: center; 22 | 23 | @include position(fixed, 10vh 10vw); 24 | 25 | @include mq(m) { 26 | 27 | @include position(fixed, 20vh 20vw); 28 | } 29 | 30 | p { 31 | margin-top: 0; 32 | margin-bottom: $spacing--m; 33 | } 34 | } 35 | 36 | .close { 37 | display: inline-flex; 38 | justify-content: center; 39 | align-items: center; 40 | padding: 0; 41 | color: inherit; 42 | background-color: transparent; 43 | font-size: 0; 44 | 45 | @include size($base--font-size); 46 | @include size($gap); 47 | 48 | @include hover-focus { 49 | color: inherit; 50 | background-color: transparent; 51 | } 52 | 53 | &:before { 54 | font-size: $base--font-size; 55 | 56 | @include icon("\f00d", 700); 57 | } 58 | 59 | .modal & { 60 | 61 | @include position(absolute, $gap $gap null null); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /assets/scss/components/_nav-primary.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Nav Primary component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .nav-primary { 10 | order: 2; 11 | display: none; 12 | width: 100vw; 13 | margin: 0 -5vw; 14 | padding: $spacing--m 5vw; 15 | background-color: $color--white; 16 | 17 | @include mq(m) { 18 | display: flex !important; 19 | position: relative; 20 | top: auto; 21 | width: auto; 22 | margin: 0 0 0 auto; 23 | padding: 0; 24 | background: 0; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/components/_nav-secondary.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Nav Secondary component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .nav-secondary { 10 | 11 | @include mq(m) { 12 | border-top: $base--border; 13 | } 14 | 15 | .menu { 16 | 17 | @include mq(m) { 18 | justify-content: flex-start; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /assets/scss/components/_pagination.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Pagination component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .pagination { 10 | width: 100%; 11 | padding: $gutter 0; 12 | border-top: $base--border; 13 | background-color: $color--background; 14 | 15 | @include mq(m) { 16 | margin-top: auto; 17 | } 18 | 19 | .wrap { 20 | justify-content: center; 21 | } 22 | 23 | ul { 24 | display: flex; 25 | flex-wrap: wrap; 26 | margin-bottom: 0; 27 | list-style-type: none; 28 | } 29 | 30 | li { 31 | margin-right: $spacing--s; 32 | } 33 | 34 | // Active item. 35 | .active { 36 | } 37 | 38 | // Previous item. 39 | &-prev { 40 | } 41 | 42 | // Next item. 43 | &-next { 44 | } 45 | } 46 | 47 | // Adjacent posts nav. 48 | .adjacent-entry-pagination { 49 | 50 | .narrow-content & { 51 | 52 | .wrap { 53 | 54 | @include mq(m) { 55 | width: $layout--width--content; 56 | } 57 | } 58 | } 59 | 60 | .wrap { 61 | justify-content: space-between; 62 | 63 | > div { 64 | max-width: $one-half; 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /assets/scss/components/_search-form.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Search form component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .search-form {} 10 | -------------------------------------------------------------------------------- /assets/scss/components/_sidebar.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Sidebar component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .sidebar { 10 | 11 | @include margin($spacing--m null); 12 | 13 | @include mq(m) { 14 | 15 | @include margin($spacing--l null); 16 | } 17 | 18 | .content-sidebar &, 19 | .sidebar-content & { 20 | 21 | @include mq(m) { 22 | width: $layout--width--sidebar; 23 | } 24 | } 25 | 26 | .full-width-content & { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /assets/scss/components/_singular-image.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Singular image component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .singular-image { 10 | display: block; 11 | margin-bottom: $gutter; 12 | } 13 | -------------------------------------------------------------------------------- /assets/scss/components/_sticky-header.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Sticky header component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .sticky-header { 10 | 11 | .site-header { 12 | position: fixed; 13 | 14 | @include transition; 15 | 16 | &.sticky { 17 | border-bottom: $base--border; 18 | background-color: $color--white; 19 | } 20 | } 21 | 22 | .hero-section { 23 | 24 | .wrap { 25 | margin-top: $spacing--xxl; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /assets/scss/components/_sub-menu.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Sub menu component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .sub-menu { 10 | display: none; 11 | top: 100%; 12 | width: 100%; 13 | margin: 0 0 0 $spacing--s; 14 | list-style-type: none; 15 | 16 | @include mq(m) { 17 | position: absolute; 18 | width: $spacing--xxxl * $major-third; 19 | margin-left: -$spacing--m; 20 | border: $base--border; 21 | background-color: $color--white; 22 | } 23 | 24 | // Hovered state. 25 | .menu-item-has-children:hover > &, 26 | .menu-item-has-children:focus > &, 27 | .menu-item-has-children:focus-within > & { 28 | 29 | @include mq(m) { 30 | display: block; 31 | } 32 | } 33 | 34 | // Sub menu menu item. 35 | .menu-item { 36 | width: 100%; 37 | 38 | @include mq($until: m) { 39 | 40 | &:last-of-type { 41 | padding-bottom: 0; 42 | } 43 | } 44 | 45 | @include mq(m) { 46 | width: auto; 47 | padding: $spacing--s $spacing--m; 48 | } 49 | 50 | &-has-children { 51 | position: relative; 52 | } 53 | } 54 | 55 | // Sub sub menu. 56 | & & { 57 | 58 | @include mq(m) { 59 | top: -1px; 60 | left: 100%; 61 | margin-left: 0; 62 | white-space: nowrap; 63 | } 64 | } 65 | 66 | // Sub menu toggle. 67 | &-toggle { 68 | display: flex; 69 | justify-content: center; 70 | margin: 0; 71 | padding: 0; 72 | background-color: transparent; 73 | line-height: 0; 74 | 75 | @include size($spacing--l); 76 | 77 | @include mq(m) { 78 | display: none; 79 | } 80 | 81 | @include hover-focus { 82 | background-color: transparent; 83 | } 84 | 85 | &:focus { 86 | outline: $base--border; 87 | } 88 | 89 | &:before { 90 | content: ""; 91 | 92 | @include triangle("down", 1rem, 0.5rem, $color--text); 93 | } 94 | 95 | &.activated { 96 | 97 | &:before { 98 | 99 | @include triangle("up", 1rem, 0.5rem, $color--text); 100 | } 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /assets/scss/components/_title-area.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Title area component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .title-area { 10 | line-height: $line-height--heading; 11 | 12 | @include padding($spacing--m null); 13 | 14 | @include mq(m) { 15 | 16 | @include padding($gap null); 17 | } 18 | } 19 | 20 | // Site title. 21 | .site-title { 22 | margin: 0; 23 | font-size: 1em; 24 | font-weight: $font-weight--semibold; 25 | 26 | .wp-custom-logo & { 27 | 28 | @include hide-visually; 29 | } 30 | 31 | a { 32 | color: $color--text; 33 | 34 | @include hover-focus { 35 | color: $color--primary; 36 | } 37 | } 38 | } 39 | 40 | // Site description. 41 | .site-description { 42 | margin: 0; 43 | font-size: small; 44 | 45 | .wp-custom-logo & { 46 | 47 | @include hide-visually; 48 | } 49 | } 50 | 51 | // Custom logo. 52 | .custom-logo { 53 | width: auto; 54 | 55 | &-link { 56 | display: flex; 57 | align-items: center; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /assets/scss/components/_transparent-header.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Transparent header component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .transparent-header { 10 | 11 | .site-header { 12 | position: absolute; 13 | border-bottom: 1px solid transparent; 14 | background-color: transparent; 15 | } 16 | 17 | .hero-section { 18 | 19 | .wrap { 20 | margin-top: $spacing--xxl; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /assets/scss/components/_widget.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Widget component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .widget { 10 | margin-bottom: $gutter; 11 | 12 | // Widget wrapper. 13 | &-wrap {} 14 | 15 | // Widget title. 16 | &-title { 17 | font-size: $font-size--h5; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/components/_wrap.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Wrap component. 3 | /// 4 | /// @group Components 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .wrap { 10 | display: flex; 11 | flex-wrap: wrap; 12 | justify-content: space-between; 13 | width: 90%; 14 | max-width: $mq-xl; 15 | 16 | @include margin(null auto); 17 | 18 | // Sub wrap. 19 | .wrap { 20 | width: 100%; 21 | max-width: 100%; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /assets/scss/editor.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Editor stylesheet. 3 | /// 4 | /// This is the primary editor stylesheet. It is used for the WordPress 5.0+ 5 | /// block editor (Gutenberg) and is not intended for older versions of the 6 | /// WordPress edit screen. 7 | /// 8 | /// @group Styles 9 | /// @author Lee Anthony 10 | /// @link http://sass-guidelin.es/#main-file 11 | //// 12 | @import "../../node_modules/bourbon/core/bourbon"; 13 | @import "settings/_index"; 14 | @import "tools/_index"; 15 | @import "components/block"; 16 | 17 | .editor-post-title__block .editor-post-title__input, 18 | body { 19 | color: $color--text; 20 | font-family: $base--font-family; 21 | } 22 | 23 | blockquote { 24 | font-style: italic; 25 | } 26 | 27 | .wp-block-button__link { 28 | font-size: 1em; 29 | } 30 | -------------------------------------------------------------------------------- /assets/scss/elements/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Element imports. 3 | /// 4 | /// Elements are (or should be) class-less designs for the base HTML elements. 5 | /// The styles in this folder should only handle the defaults. More specific 6 | /// styles should be handled later in the cascade. 7 | /// 8 | /// @group Elements 9 | /// @author Lee Anthony 10 | /// @link https://seothemes.com/themes/genesis-starter-theme 11 | //// 12 | 13 | @import "typography"; 14 | @import "heading"; 15 | @import "list"; 16 | @import "button"; 17 | @import "form"; 18 | @import "table"; 19 | @import "media"; 20 | -------------------------------------------------------------------------------- /assets/scss/elements/_button.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Button. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | #{$all-buttons} { 10 | 11 | @include button; 12 | } 13 | -------------------------------------------------------------------------------- /assets/scss/elements/_form.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Form. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | ::placeholder { 10 | opacity: 1; // Firefox fix 11 | color: $color--muted; 12 | } 13 | 14 | abbr[title] { 15 | text-decoration: none; 16 | } 17 | 18 | label { 19 | display: inline-block; 20 | margin: 0 0 $spacing--s; 21 | font-size: $base--font-size; 22 | font-weight: $font-weight--semibold; 23 | 24 | i + &, 25 | input + &, 26 | select + &, 27 | textarea + & { 28 | font-size: smaller; 29 | font-weight: $font-weight--regular; 30 | } 31 | } 32 | 33 | input, 34 | select, 35 | textarea { 36 | width: 100%; 37 | margin: 0 0 $spacing--s; 38 | padding: 1em; 39 | border: $base--border; 40 | border-radius: $base--border--radius; 41 | background-clip: padding-box; // Remove iOS box shadow 42 | box-shadow: none; 43 | font-size: $base--font-size; 44 | 45 | &:focus { 46 | border-color: $color--primary; 47 | outline: none; 48 | } 49 | 50 | &:disabled, 51 | &:disabled:hover { 52 | border-color: $color--border; 53 | background-color: $color--muted; 54 | cursor: not-allowed; 55 | } 56 | } 57 | 58 | textarea { 59 | line-height: $base--line-height; 60 | } 61 | 62 | select { 63 | height: calc((#{$base--font-size} / #{$major-second}) + #{$base--font-size} * 2); 64 | 65 | @include padding(0 null); 66 | } 67 | 68 | select[multiple] { 69 | height: auto; 70 | } 71 | 72 | input[type="checkbox"], 73 | input[type="image"], 74 | input[type="radio"] { 75 | width: auto; 76 | margin-right: $spacing--s; 77 | } 78 | 79 | input[type="color"] { 80 | min-height: $spacing--xl; 81 | } 82 | 83 | input[type="search"] { 84 | -webkit-appearance: none; 85 | 86 | &::-webkit-search-cancel-button, 87 | &::-webkit-search-results-button { 88 | display: none; 89 | } 90 | } 91 | 92 | fieldset { 93 | min-width: 0; 94 | margin: 0; 95 | padding: 0.01em 0 0 0; 96 | border: 0; 97 | 98 | body:not(:-moz-handler-blocked) & { 99 | display: table-cell; 100 | } 101 | } 102 | 103 | legend { 104 | display: table; 105 | float: left; 106 | width: 100%; 107 | margin: 0 0 $spacing--s; 108 | padding: 0; 109 | font-size: $font-size--h5; 110 | 111 | @include heading; 112 | 113 | + * { 114 | clear: both; 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /assets/scss/elements/_heading.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Heading. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | 10 | 11 | #{$all-headings} { 12 | 13 | @include heading; 14 | } 15 | 16 | @each $heading, $font-size in $font-sizes { 17 | 18 | #{$heading} { 19 | font-size: $font-size; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /assets/scss/elements/_list.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// List. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | ul, 10 | ol, 11 | dl { 12 | margin: 0 0 $spacing--m; 13 | padding: 0; 14 | list-style-position: inside; 15 | 16 | ul, 17 | ol, 18 | dl { 19 | margin: $spacing--s $spacing--m; 20 | } 21 | } 22 | 23 | dd, 24 | dt { 25 | margin: 0; 26 | } 27 | 28 | dt { 29 | font-weight: $font-weight--semibold; 30 | } 31 | -------------------------------------------------------------------------------- /assets/scss/elements/_media.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Media. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | embed, 10 | iframe, 11 | object, 12 | video, 13 | .wp-caption { 14 | width: 100%; 15 | max-width: 100%; 16 | } 17 | 18 | img { 19 | max-width: 100%; 20 | height: auto; 21 | vertical-align: top; 22 | } 23 | 24 | figure { 25 | margin: 0; 26 | } 27 | 28 | iframe { 29 | border: 0; 30 | } 31 | -------------------------------------------------------------------------------- /assets/scss/elements/_table.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Table. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | table { 10 | width: 100%; 11 | margin: $spacing--s 0; 12 | border-radius: $base--border--radius; 13 | border-spacing: 0; 14 | border-collapse: collapse; 15 | word-break: break-all; 16 | } 17 | 18 | th, 19 | td { 20 | padding: $spacing--s; 21 | border: $base--border; 22 | border-right: 0; 23 | border-left: 0; 24 | text-align: left; 25 | 26 | &:first-of-type { 27 | border-left: $base--border; 28 | } 29 | 30 | &:last-of-type { 31 | border-right: $base--border; 32 | } 33 | } 34 | 35 | th { 36 | background-color: $color--background; 37 | font-size: smaller; 38 | font-weight: $font-weight--semibold; 39 | } 40 | -------------------------------------------------------------------------------- /assets/scss/elements/_typography.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Typography. 3 | /// 4 | /// @group Base 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | body { 10 | height: 100%; 11 | margin: 0; 12 | color: $color--text; 13 | background-color: $color--white; 14 | font-family: $base--font-family; 15 | font-size: $base--font-size; 16 | font-weight: $base--font-weight; 17 | line-height: $base--line-height; 18 | 19 | @include mq(m) { 20 | font-size: $base--font-size * strip-unit(map_get($font-sizes, h6)); 21 | } 22 | } 23 | 24 | a { 25 | color: $color--primary; 26 | text-decoration: none; 27 | 28 | @include transition(); 29 | 30 | @include hover-focus { 31 | color: $color--primary; 32 | text-decoration: underline; 33 | } 34 | } 35 | 36 | p { 37 | margin: 0 0 $spacing--m; 38 | padding: 0; 39 | } 40 | 41 | hr { 42 | clear: both; 43 | margin: 0 0 $spacing--m; 44 | padding: $spacing--m 0 0; 45 | border: 0; 46 | border-bottom: $base--border; 47 | border-collapse: collapse; 48 | } 49 | 50 | b, 51 | strong { 52 | font-weight: $font-weight--bold; 53 | } 54 | 55 | blockquote, 56 | cite, 57 | em, 58 | i { 59 | font-style: italic; 60 | } 61 | 62 | blockquote { 63 | border-left: $base__border; 64 | 65 | @include margin($spacing--m auto); 66 | @include padding($spacing--m); 67 | 68 | p { 69 | 70 | &:last-of-type { 71 | margin-bottom: 0; 72 | } 73 | } 74 | } 75 | 76 | code, 77 | kbd, 78 | samp { 79 | padding: 0.05em 0.5em; 80 | border-radius: $base--border--radius; 81 | background-color: $color--light; 82 | font-family: $font-family--code; 83 | font-size: 90%; 84 | } 85 | 86 | pre { 87 | overflow-x: scroll; 88 | padding: $spacing--m; 89 | border-radius: $base--border--radius; 90 | background-color: $color--light; 91 | font-family: $font-family--code; 92 | 93 | code, 94 | kbd, 95 | samp { 96 | padding: 0; 97 | background-color: transparent; 98 | font-size: 90%; 99 | } 100 | } 101 | 102 | code.hljs { 103 | background: transparent; 104 | } 105 | -------------------------------------------------------------------------------- /assets/scss/generic/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Generic imports. 3 | /// 4 | /// This is the first point that real CSS is output. Resets, normalization, 5 | /// fonts, etc. are best handled here. These are the base styles that other 6 | /// styles will build upon. 7 | /// 8 | /// @group Generic 9 | /// @author Lee Anthony 10 | /// @link https://seothemes.com/themes/genesis-starter-theme 11 | //// 12 | 13 | @import "normalize"; 14 | @import "box-sizing"; 15 | -------------------------------------------------------------------------------- /assets/scss/generic/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Box Sizing. 3 | /// 4 | /// @group Generic 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | html { 10 | overflow-x: hidden; 11 | box-sizing: border-box; 12 | max-width: 100vw; 13 | height: 100%; 14 | font-size: 62.5%; // 10px browser default 15 | -moz-osx-font-smoothing: grayscale; 16 | -webkit-font-smoothing: antialiased; 17 | 18 | &.admin-bar-showing { 19 | height: calc(100% - 32px); 20 | } 21 | } 22 | 23 | *, 24 | *:before, 25 | *:after { 26 | box-sizing: inherit; 27 | } 28 | 29 | p:empty { 30 | display: none; 31 | } 32 | -------------------------------------------------------------------------------- /assets/scss/generic/_normalize.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Normalize. 3 | /// 4 | /// @group Generic 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | html { 10 | line-height: 1.15; 11 | -webkit-text-size-adjust: 100%; 12 | } 13 | 14 | body { 15 | margin: 0; 16 | } 17 | 18 | h1 { 19 | margin: 0.67em 0; 20 | font-size: 2em; 21 | } 22 | 23 | hr { 24 | overflow: visible; 25 | box-sizing: content-box; 26 | height: 0; 27 | } 28 | 29 | pre { 30 | font-family: monospace; 31 | font-size: 1em; 32 | } 33 | 34 | a { 35 | background-color: transparent; 36 | } 37 | 38 | abbr[title] { 39 | border-bottom: none; 40 | text-decoration: underline; 41 | text-decoration: underline dotted; 42 | } 43 | 44 | b, strong { 45 | font-weight: bolder; 46 | } 47 | 48 | code, kbd, samp { 49 | font-family: monospace; 50 | font-size: 1em; 51 | } 52 | 53 | small { 54 | font-size: 80%; 55 | } 56 | 57 | sub, sup { 58 | position: relative; 59 | font-size: 75%; 60 | line-height: 0; 61 | vertical-align: baseline; 62 | } 63 | 64 | sub { 65 | bottom: -0.25em; 66 | } 67 | 68 | sup { 69 | top: -0.5em; 70 | } 71 | 72 | img { 73 | border-style: none; 74 | } 75 | 76 | button, input, optgroup, select, textarea { 77 | margin: 0; 78 | font-family: inherit; 79 | font-size: 100%; 80 | line-height: 1.15; 81 | } 82 | 83 | button, input { 84 | overflow: visible; 85 | } 86 | 87 | button, select { 88 | text-transform: none; 89 | } 90 | 91 | [type="button"], [type="reset"], [type="submit"], button { 92 | -webkit-appearance: button; 93 | } 94 | 95 | [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner, button::-moz-focus-inner { 96 | padding: 0; 97 | border-style: none; 98 | } 99 | 100 | [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring, button:-moz-focusring { 101 | outline: 1px dotted ButtonText; 102 | } 103 | 104 | fieldset { 105 | padding: 0.35em 0.75em 0.625em; 106 | } 107 | 108 | legend { 109 | display: table; 110 | box-sizing: border-box; 111 | max-width: 100%; 112 | padding: 0; 113 | color: inherit; 114 | white-space: normal; 115 | } 116 | 117 | progress { 118 | vertical-align: baseline; 119 | } 120 | 121 | textarea { 122 | overflow: auto; 123 | } 124 | 125 | [type="checkbox"], [type="radio"] { 126 | box-sizing: border-box; 127 | padding: 0; 128 | } 129 | 130 | [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { 131 | height: auto; 132 | } 133 | 134 | [type="search"] { 135 | -webkit-appearance: textfield; 136 | outline-offset: -2px; 137 | } 138 | 139 | [type="search"]::-webkit-search-decoration { 140 | -webkit-appearance: none; 141 | } 142 | 143 | ::-webkit-file-upload-button { 144 | -webkit-appearance: button; 145 | font: inherit; 146 | } 147 | 148 | details { 149 | display: block; 150 | } 151 | 152 | summary { 153 | display: list-item; 154 | } 155 | 156 | template { 157 | display: none; 158 | } 159 | 160 | [hidden] { 161 | display: none; 162 | } 163 | -------------------------------------------------------------------------------- /assets/scss/main.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Primary screen stylesheet. 3 | /// 4 | /// This is the primary stylesheet. We don't actually write any styles here. 5 | /// Instead, we import all of our styles from partials within the sub-folders. 6 | /// This file is set up based on the Inverted Triangle CSS (ITCSS) system, 7 | /// which gets more specific as we drill down each layer. This keeps your 8 | /// style code lean and organized. 9 | /// 10 | /// @group Styles 11 | /// @author Lee Anthony 12 | /// @link http://sass-guidelin.es/#main-file 13 | //// 14 | 15 | @import "~bourbon"; 16 | @import "settings/_index"; 17 | @import "tools/_index"; 18 | @import "generic/_index"; 19 | @import "elements/_index"; 20 | @import "objects/_index"; 21 | @import "components/_index"; 22 | @import "plugins/_index"; 23 | @import "utilities/_index"; 24 | -------------------------------------------------------------------------------- /assets/scss/objects/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Object imports. 3 | /// 4 | /// The `objects/` folder contains everything that takes part in laying out 5 | /// the site or application. This folder could have stylesheets for the 6 | /// main parts of the site (header, footer, navigation, sidebar etc). 7 | /// 8 | /// @group Objects 9 | /// @author Lee Anthony 10 | /// @link https://seothemes.com/themes/genesis-starter-theme 11 | //// 12 | 13 | @import "site-container"; 14 | @import "site-header"; 15 | @import "site-inner"; 16 | @import "site-footer"; 17 | -------------------------------------------------------------------------------- /assets/scss/objects/_site-container.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Site container object. 3 | /// 4 | /// @group Objects 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .site-container { 10 | display: flex; 11 | flex-direction: column; 12 | flex-wrap: wrap; 13 | justify-content: flex-start; 14 | min-height: 100%; 15 | 16 | > * { 17 | width: 100%; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /assets/scss/objects/_site-footer.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Site footer object. 3 | /// 4 | /// @group Objects 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .site-footer { 10 | margin-top: auto; 11 | border-top: $base--border; 12 | } 13 | -------------------------------------------------------------------------------- /assets/scss/objects/_site-header.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Site header object. 3 | /// 4 | /// @group Objects 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .site-header { 10 | position: relative; 11 | z-index: 10; 12 | border-bottom: $base--border; 13 | background-color: $color--white; 14 | 15 | .wrap { 16 | display: flex; 17 | flex-wrap: wrap; 18 | align-items: center; 19 | justify-content: space-between; 20 | 21 | @include mq(m) { 22 | flex-wrap: nowrap; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/objects/_site-inner.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Site inner object. 3 | /// 4 | /// @group Objects 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .site-inner { 10 | 11 | @include mq(m) { 12 | display: flex; 13 | flex: 1; 14 | flex-direction: column; 15 | } 16 | 17 | .no-hero-section.transparent-header &, 18 | .no-hero-section.sticky-header & { 19 | margin-top: $spacing--xl * $perfect-fifth; 20 | 21 | @include mq(m) { 22 | margin-top: $spacing--xxl; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/scss/plugins/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Plugin imports. 3 | /// 4 | /// Loads all of the plugin styles. 5 | /// 6 | /// @group Plugins 7 | /// @author Lee Anthony 8 | /// @link https://seothemes.com/themes/genesis-starter-theme 9 | //// 10 | 11 | @import "gravity-forms/_index"; 12 | @import "atomic-blocks/_index"; 13 | -------------------------------------------------------------------------------- /assets/scss/plugins/atomic-blocks/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Atomic blocks. 3 | /// 4 | /// @group Plugins 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | @import "button"; 10 | @import "image"; 11 | -------------------------------------------------------------------------------- /assets/scss/plugins/atomic-blocks/_button.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Button. 3 | /// 4 | /// @group Atomic Blocks 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .ab-button { 10 | 11 | @include button(); 12 | } 13 | -------------------------------------------------------------------------------- /assets/scss/plugins/atomic-blocks/_image.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Image. 3 | /// 4 | /// @group Atomic Blocks 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .ab-container-image-wrap { 10 | 11 | .ab-container-image { 12 | margin: 0; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /assets/scss/plugins/gravity-forms/__index.scss: -------------------------------------------------------------------------------- 1 | /* ## Gravity Forms 2 | --------------------------------------------- */ 3 | 4 | .gform_heading, 5 | .gform_body, 6 | .gform_footer { 7 | clear: both; 8 | } 9 | 10 | .gform_heading { 11 | padding-bottom: 1em; 12 | } 13 | 14 | .gform_wrapper { 15 | 16 | .gform_fields { 17 | margin: 0 -0.5em; 18 | padding: 0; 19 | list-style: none; 20 | 21 | li { 22 | list-style-type: none; 23 | 24 | li { 25 | display: flex; 26 | align-items: center; 27 | margin: 0.5em 0; 28 | 29 | label { 30 | margin: 0; 31 | } 32 | } 33 | } 34 | } 35 | 36 | .gfield_checkbox, 37 | .gfield_radio { 38 | display: flex; 39 | flex-wrap: wrap; 40 | margin: 0; 41 | padding: 0; 42 | list-style: none; 43 | } 44 | } 45 | 46 | .ginput_container { 47 | 48 | span { 49 | margin-bottom: 0.5em; 50 | } 51 | 52 | input, 53 | select, 54 | textarea { 55 | width: 100%; 56 | } 57 | 58 | input, 59 | textarea { 60 | margin: 0; 61 | } 62 | 63 | [type="checkbox"] { 64 | width: auto; 65 | } 66 | } 67 | 68 | .gfield_label { 69 | display: inline-block; 70 | 71 | &:empty { 72 | display: none; 73 | } 74 | 75 | .left_label & { 76 | float: left; 77 | } 78 | 79 | .right_label & { 80 | float: right; 81 | } 82 | } 83 | 84 | .gfield_required { 85 | padding-left: 0.1em; 86 | } 87 | 88 | .gfield_checkbox, 89 | .gfield_radio { 90 | 91 | li { 92 | width: 100%; 93 | } 94 | 95 | input { 96 | float: left; 97 | width: auto; 98 | margin-right: 0.5em; 99 | } 100 | 101 | label { 102 | float: left; 103 | line-height: 1; 104 | } 105 | } 106 | 107 | .gsection { 108 | margin: 0.5em 0; 109 | 110 | h2 { 111 | padding-bottom: 0.5em; 112 | border-bottom: $base--border; 113 | } 114 | } 115 | 116 | .validation_error, 117 | .gf_progressbar_wrapper { 118 | padding-bottom: 1em; 119 | } 120 | 121 | .gf_progressbar { 122 | background: $color--border; 123 | } 124 | 125 | .gf_progressbar_percentage { 126 | padding: 0.5em 0.5em; 127 | background: $color--primary; 128 | text-align: right; 129 | } 130 | 131 | .ginput_container_time { 132 | display: flex; 133 | align-items: center; 134 | flex-direction: row-reverse; 135 | 136 | input, 137 | select { 138 | width: auto; 139 | margin: 0 0.5em; 140 | } 141 | 142 | i { 143 | display: none; 144 | } 145 | 146 | label { 147 | margin-bottom: 0; 148 | } 149 | } 150 | 151 | .gfield_time_hour, 152 | .gfield_time_minute { 153 | 154 | label { 155 | display: block; 156 | } 157 | } 158 | 159 | .gfield_time_ampm { 160 | vertical-align: top; 161 | } 162 | 163 | .gfield { 164 | clear: both; 165 | overflow: auto; 166 | width: 100%; 167 | margin: 0; 168 | padding: 0 0.5em 1em; 169 | list-style-type: none; 170 | 171 | .validation_message { 172 | margin-top: 0.5em; 173 | } 174 | 175 | li { 176 | list-style-type: none; 177 | } 178 | } 179 | 180 | .gform_validation_container { 181 | display: none; 182 | } 183 | 184 | .gform_footer { 185 | 186 | .gform_button { 187 | width: auto; 188 | } 189 | } 190 | 191 | .ginput_full, 192 | .ginput_left, 193 | .ginput_right { 194 | 195 | input, 196 | select, 197 | textarea { 198 | width: 100%; 199 | margin-bottom: 0.5em; 200 | } 201 | 202 | label { 203 | display: block; 204 | } 205 | } 206 | 207 | .ginput_full { 208 | display: block; 209 | } 210 | 211 | .ginput_left { 212 | float: left; 213 | padding-right: 0.5em; 214 | } 215 | 216 | .ginput_right { 217 | float: right; 218 | } 219 | 220 | .gf_left_half, 221 | .gf_left_third, 222 | .gf_middle_third, 223 | .gf_first_quarter, 224 | .gf_second_quarter { 225 | float: left; 226 | clear: none; 227 | padding-right: 0.5em; 228 | padding-bottom: 0.5em; 229 | } 230 | 231 | .gf_right_half, 232 | .gf_right_third, 233 | .gf_fourth_quarter { 234 | float: right; 235 | clear: none; 236 | padding-bottom: 0.5em; 237 | } 238 | 239 | .gf_third_quarter { 240 | float: left; 241 | clear: none; 242 | padding-bottom: 0.5em; 243 | } 244 | 245 | li { 246 | 247 | .gf_list_2col &, 248 | .gf_list_3col &, 249 | .gf_list_4col &, 250 | .gf_list_5col & { 251 | float: left; 252 | padding-bottom: 0.5em; 253 | } 254 | 255 | .gf_list_inline & { 256 | display: inline-block; 257 | padding-right: 0.5em; 258 | padding-bottom: 0.5em; 259 | } 260 | } 261 | 262 | .gfield_list_icons { 263 | display: flex; 264 | } 265 | 266 | .clear-multi { 267 | display: flex; 268 | } 269 | 270 | .ui-datepicker { 271 | padding: 0.5em; 272 | border: $base--border; 273 | border-radius: $base--border--radius; 274 | background-color: $color--white; 275 | 276 | &-header { 277 | display: flex; 278 | justify-content: space-between; 279 | flex-wrap: wrap; 280 | font-size: smaller; 281 | } 282 | 283 | &-title { 284 | display: flex; 285 | justify-content: space-between; 286 | width: 100%; 287 | margin-top: 0.5em; 288 | } 289 | 290 | select { 291 | width: calc(50% - 0.5em); 292 | height: 2em; 293 | } 294 | 295 | td, 296 | th { 297 | padding: 0.5em; 298 | font-size: smaller; 299 | text-align: center; 300 | } 301 | } 302 | 303 | @include mq(xs) { 304 | 305 | .ginput_container { 306 | 307 | input, 308 | select, 309 | textarea { 310 | 311 | &.large { 312 | width: 100%; 313 | } 314 | 315 | &.medium { 316 | width: 66%; 317 | } 318 | 319 | &.small { 320 | width: 33%; 321 | } 322 | } 323 | } 324 | 325 | .ginput_left, 326 | .ginput_right { 327 | width: 50%; 328 | } 329 | 330 | .has_first_name, 331 | .has_middle_name, 332 | .has_last_name { 333 | display: flex; 334 | 335 | span { 336 | margin-right: 0.5em; 337 | flex: 1; 338 | 339 | &:last-of-type { 340 | margin-right: 0; 341 | } 342 | } 343 | } 344 | 345 | label.gfield_label { 346 | 347 | .left_label &, 348 | .right_label & { 349 | width: 25%; 350 | } 351 | } 352 | 353 | li { 354 | 355 | &.gf_left_half, 356 | &.gf_right_half, 357 | .gf_list_2col & { 358 | width: 50%; 359 | } 360 | 361 | &.gf_left_third, 362 | &.gf_right_third, 363 | .gf_list_3col & { 364 | width: 33%; 365 | } 366 | 367 | &.gf_middle_third { 368 | width: 34%; 369 | } 370 | 371 | &.gf_first_quarter, 372 | &.gf_second_quarter, 373 | &.gf_third_quarter, 374 | &.gf_fourth_quarter, 375 | .gf_list_4col & { 376 | width: 25%; 377 | } 378 | 379 | .gf_list_5col & { 380 | width: 20%; 381 | } 382 | } 383 | } 384 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// WooCommerce specific styles. 3 | /// 4 | /// @group Vendor 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | // Abstracts 10 | @import "../../../../node_modules/bourbon/core/bourbon"; 11 | @import "../../settings/_index"; 12 | @import "../../tools/_index"; 13 | 14 | // WooCommerce 15 | @import "globals"; 16 | @import "shop-page"; 17 | @import "product"; 18 | @import "checkout"; 19 | @import "cart-page"; 20 | @import "account-page"; 21 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_account-page.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// My Account page. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .woocommerce-account { 10 | 11 | .woocommerce { 12 | 13 | @include mq(m) { 14 | display: flex; 15 | flex-wrap: wrap; 16 | align-items: flex-start; 17 | } 18 | } 19 | } 20 | 21 | .woocommerce-MyAccount-navigation { 22 | padding: $gap; 23 | border: $base--border; 24 | border-radius: $base--border--radius; 25 | background-color: $color--background; 26 | 27 | @include mq(m) { 28 | width: $one-fourth; 29 | margin-right: $gutter; 30 | } 31 | 32 | ul { 33 | margin: 0; 34 | list-style-type: none; 35 | } 36 | } 37 | 38 | .woocommerce-MyAccount-content { 39 | 40 | @include mq(m) { 41 | width: $three-fourths; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_cart-page.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Cart page. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .remove { 10 | display: flex; 11 | justify-content: center; 12 | align-items: center; 13 | align-content: center; 14 | border-radius: $base--border--radius; 15 | color: $color--white; 16 | background-color: $color--error; 17 | font-weight: $font-weight--heading; 18 | 19 | @include size($gap); 20 | 21 | @include hover-focus { 22 | color: $color--white; 23 | background-color: lighten($color--error, 10); 24 | text-decoration: none; 25 | } 26 | } 27 | 28 | .product-thumbnail { 29 | 30 | img { 31 | border-radius: $base--border--radius; 32 | 33 | @include size($spacing--xl); 34 | } 35 | } 36 | 37 | .quantity { 38 | 39 | .input-text { 40 | max-width: $spacing--xxxl; 41 | margin: 0 $spacing--m 0 0; 42 | } 43 | } 44 | 45 | .actions { 46 | padding: $spacing--l; 47 | 48 | > .button { 49 | 50 | @include mq(xs) { 51 | float: right; 52 | } 53 | } 54 | } 55 | 56 | .coupon { 57 | display: flex; 58 | align-items: center; 59 | width: $two-thirds; 60 | 61 | @include mq(xs) { 62 | float: left; 63 | } 64 | 65 | label { 66 | 67 | @include hide-visually(); 68 | } 69 | 70 | input { 71 | margin: 0; 72 | } 73 | 74 | .button { 75 | margin-left: 1em; 76 | white-space: nowrap; 77 | } 78 | } 79 | 80 | .cart-collaterals { 81 | margin: $gutter 0; 82 | 83 | @include mq(m) { 84 | display: flex; 85 | justify-content: flex-end; 86 | } 87 | } 88 | 89 | .cart_totals { 90 | 91 | @include mq(m) { 92 | width: $one-half; 93 | } 94 | } 95 | 96 | .checkout-button { 97 | width: 100%; 98 | } 99 | 100 | @include mq($until: xs) { 101 | 102 | .woocommerce-cart-form { 103 | 104 | table, 105 | thead, 106 | tbody, 107 | th, 108 | td, 109 | tr { 110 | display: block; 111 | } 112 | 113 | thead tr { 114 | position: absolute; 115 | top: -9999px; 116 | left: -9999px; 117 | } 118 | 119 | td { 120 | display: flex; 121 | align-items: center; 122 | align-content: center; 123 | position: relative; 124 | padding: 0; 125 | border: $base--border; 126 | border-bottom: 0; 127 | } 128 | 129 | .actions { 130 | display: block; 131 | padding: 1em; 132 | border-bottom: $base--border; 133 | 134 | .button { 135 | margin: 0; 136 | 137 | @include padding($spacing--m); 138 | } 139 | } 140 | 141 | .coupon { 142 | flex-wrap: wrap; 143 | width: 100%; 144 | margin-bottom: 1em; 145 | 146 | .input-text { 147 | width: 100%; 148 | margin-bottom: 1em; 149 | } 150 | } 151 | 152 | .cart_item { 153 | margin: $gap 0; 154 | border-bottom: $base--border; 155 | 156 | td:before { 157 | display: flex; 158 | align-items: center; 159 | align-self: stretch; 160 | width: 25%; 161 | margin-right: $spacing--m; 162 | padding: 1.5em 1em; 163 | border-right: $base--border; 164 | background-color: $color--background; 165 | font-size: smaller; 166 | font-weight: $font-weight--heading; 167 | white-space: nowrap; 168 | } 169 | } 170 | 171 | .product-remove:before { 172 | content: "Delete"; 173 | } 174 | 175 | .product-thumbnail:before { 176 | content: "Image"; 177 | } 178 | 179 | .product-name:before { 180 | content: "Product"; 181 | } 182 | 183 | .product-price:before { 184 | content: "Price"; 185 | } 186 | 187 | .product-quantity:before { 188 | content: "Quantity"; 189 | } 190 | 191 | .product-subtotal:before { 192 | content: "Subtotal"; 193 | } 194 | 195 | .product-total:before { 196 | content: "Total"; 197 | } 198 | } 199 | } 200 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_checkout.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Checkout page. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | form.checkout { 10 | 11 | @include mq(m) { 12 | columns: 2; 13 | column-gap: $gutter; 14 | 15 | > div { 16 | break-inside: avoid; 17 | } 18 | } 19 | } 20 | 21 | .woocommerce-form-coupon { 22 | display: flex; 23 | flex-wrap: wrap; 24 | align-items: center; 25 | margin-bottom: $gutter; 26 | 27 | @include box; 28 | 29 | p { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .woocommerce-checkout-payment { 35 | margin-top: $gutter; 36 | } 37 | 38 | .woocommerce-PaymentMethod, 39 | .wc_payment_method { 40 | display: flex; 41 | position: relative; 42 | flex-wrap: wrap; 43 | justify-content: space-between; 44 | align-items: center; 45 | 46 | > input { 47 | 48 | @include position(absolute, $gap null null $gap); 49 | 50 | &:checked + label { 51 | border-color: $color--primary; 52 | background-color: rgba($color--primary, 0.1); 53 | } 54 | } 55 | 56 | label[for*="payment_method"] { 57 | 58 | @include heading; 59 | @include box; 60 | 61 | display: inline-block; 62 | width: 100%; 63 | margin-bottom: $spacing--m; 64 | padding-left: $gutter + $gap; 65 | 66 | img { 67 | margin-top: $spacing--s; 68 | } 69 | } 70 | } 71 | 72 | .payment_method_paypal { 73 | 74 | label { 75 | 76 | img { 77 | display: block; 78 | max-width: $spacing--xxxl * $golden; 79 | margin-bottom: $spacing--m; 80 | } 81 | } 82 | } 83 | 84 | .payment_method_stripe { 85 | 86 | label { 87 | 88 | img { 89 | max-width: $spacing--l * $minor-third; 90 | margin-right: $spacing--xs; 91 | } 92 | } 93 | 94 | .woocommerce-validated { 95 | display: flex; 96 | align-items: baseline; 97 | } 98 | 99 | .form-row { 100 | 101 | > div { 102 | margin-bottom: $spacing--m; 103 | padding: $spacing--m; 104 | border: $base--border; 105 | border-radius: $base--border--radius; 106 | } 107 | 108 | &-first { 109 | float: left; 110 | width: $one-half; 111 | margin-right: $gutter; 112 | } 113 | 114 | &-last { 115 | float: right; 116 | width: $one-half; 117 | } 118 | } 119 | } 120 | 121 | 122 | .place-order { 123 | 124 | .button { 125 | width: 100%; 126 | } 127 | } 128 | 129 | .select2-container--default .select2-selection--single { 130 | 131 | &, 132 | .select2-selection__rendered, 133 | .select2-selection__arrow { 134 | height: calc((#{$base--font-size} / #{$major-second}) + #{$base--font-size} * 2); 135 | line-height: calc((#{$base--font-size} / #{$major-second}) + #{$base--font-size} * 2); 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_globals.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Globals. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .onsale { 10 | z-index: 1; 11 | padding: $spacing--xs $spacing--m; 12 | border-radius: $base--border--radius; 13 | color: $color--white; 14 | background: $color--primary; 15 | font-size: small; 16 | font-weight: $font-weight--heading; 17 | 18 | @include position(absolute, -0.5em auto auto -0.5em); 19 | } 20 | 21 | .woocommerce-info, 22 | .woocommerce-error, 23 | .woocommerce-message { 24 | display: flex; 25 | flex-wrap: wrap; 26 | align-items: center; 27 | margin-bottom: $gutter; 28 | font-size: smaller; 29 | 30 | @include box; 31 | 32 | .button { 33 | margin-left: $spacing--m; 34 | padding: $spacing--m $gap; 35 | order: 2; 36 | } 37 | 38 | li { 39 | list-style-type: none; 40 | } 41 | 42 | a { 43 | margin-left: 0.382em; 44 | } 45 | } 46 | 47 | .woocommerce-message { 48 | border-color: $color--success; 49 | background-color: rgba($color--success, 0.1); 50 | 51 | &--info { 52 | border-color: $color--primary; 53 | background-color: rgba($color--primary, 0.1); 54 | } 55 | } 56 | 57 | .woocommerce-error { 58 | border-color: $color--error; 59 | background-color: rgba($color--error, 0.1); 60 | } 61 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_product.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Product page. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .woocommerce-product-gallery { 10 | position: relative; 11 | 12 | @include mq(m) { 13 | width: $one-half; 14 | margin-right: $gutter; 15 | } 16 | 17 | &__trigger { 18 | display: flex; 19 | justify-content: center; 20 | align-items: center; 21 | z-index: 1; 22 | border-radius: $spacing--l; 23 | background-color: $color--white; 24 | 25 | @include size($spacing--l); 26 | @include position(absolute, 1em 1em null null); 27 | 28 | @include hover-focus { 29 | text-decoration: none; 30 | 31 | &:before { 32 | color: $color--primary; 33 | } 34 | } 35 | 36 | img { 37 | 38 | @include hide-visually(); 39 | } 40 | 41 | &:before { 42 | color: $color--heading; 43 | font-size: smaller; 44 | 45 | @include transition; 46 | @include icon("\f002", 700); 47 | } 48 | } 49 | } 50 | 51 | .flex-viewport { 52 | max-width: 90vw; 53 | } 54 | 55 | .flex-control-nav { 56 | display: flex; 57 | margin-top: $spacing--s; 58 | list-style-type: none; 59 | 60 | li { 61 | flex: 1; 62 | margin-right: $spacing--s; 63 | 64 | &:last-of-type { 65 | margin-right: 0; 66 | } 67 | } 68 | 69 | img { 70 | width: 100%; 71 | } 72 | } 73 | 74 | .summary { 75 | 76 | @include mq(m) { 77 | width: $one-half; 78 | } 79 | } 80 | 81 | form.cart { 82 | display: flex; 83 | align-items: center; 84 | } 85 | 86 | .product_meta { 87 | margin-top: $gap; 88 | } 89 | 90 | .woocommerce-tabs { 91 | width: 100%; 92 | margin: $gutter 0; 93 | } 94 | 95 | .wc-tabs { 96 | display: flex; 97 | width: 100%; 98 | margin-bottom: $gap; 99 | border-bottom: $base--border; 100 | 101 | li { 102 | margin-bottom: -1px; 103 | padding: $spacing--m $spacing--l; 104 | border: $base--border; 105 | border-right: 0; 106 | background-color: $color--background; 107 | list-style-type: none; 108 | 109 | &.active { 110 | border-bottom-color: $color--white; 111 | background-color: $color--white; 112 | } 113 | 114 | &:last-of-type { 115 | border-right: $base--border; 116 | } 117 | } 118 | } 119 | 120 | .comment-reply-title { 121 | font-size: $font-size--h3; 122 | 123 | @include heading(); 124 | } 125 | 126 | .comment-form-rating { 127 | margin-top: 1em; 128 | } 129 | 130 | .stars { 131 | 132 | a { 133 | display: inline-block; 134 | color: transparent; 135 | font-size: 0; 136 | 137 | &:before { 138 | display: block; 139 | color: $color--warning; 140 | font-family: "Font Awesome 5 Free", sans-serif; 141 | font-size: $spacing--m; 142 | 143 | @include icon(); 144 | } 145 | 146 | @include hover-focus { 147 | 148 | &:before { 149 | font-weight: 700; 150 | } 151 | } 152 | 153 | &.active { 154 | 155 | &:before { 156 | font-weight: 700; 157 | } 158 | } 159 | } 160 | 161 | &.selected { 162 | 163 | a:before { 164 | font-weight: 700; 165 | } 166 | 167 | .active ~ a { 168 | 169 | &:before { 170 | font-weight: 400; 171 | 172 | } 173 | 174 | @include hover-focus { 175 | 176 | &:before { 177 | font-weight: 700; 178 | } 179 | } 180 | } 181 | } 182 | } 183 | 184 | .review { 185 | display: block; 186 | margin-bottom: $gutter; 187 | list-style-type: none; 188 | } 189 | 190 | .meta { 191 | font-size: smaller; 192 | } 193 | 194 | .related { 195 | 196 | .entry { 197 | margin-bottom: $gutter; 198 | border: $base--border; 199 | border-radius: $base--border--radius; 200 | } 201 | 202 | .woocommerce-loop-product__title { 203 | font-size: $font-size--h5; 204 | } 205 | 206 | .button { 207 | 208 | @include padding($spacing--m $spacing--m * $minor-third); 209 | } 210 | } 211 | -------------------------------------------------------------------------------- /assets/scss/plugins/woocommerce/_shop-page.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Shop page. 3 | /// 4 | /// @group WooCommerce 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | .woocommerce-products-header { 10 | display: flex; 11 | flex-wrap: wrap; 12 | justify-content: space-between; 13 | align-items: center; 14 | width: 100%; 15 | margin-bottom: $gutter; 16 | 17 | > * { 18 | order: 2; 19 | } 20 | 21 | &__title { 22 | order: 1; 23 | width: 100%; 24 | } 25 | 26 | .woocommerce-result-count { 27 | margin-right: auto; 28 | margin-bottom: 0; 29 | 30 | &:before { 31 | content: "\00a0 - "; 32 | } 33 | } 34 | } 35 | 36 | .woocommerce-ordering { 37 | 38 | @include mq($until: xs) { 39 | margin-top: $gap; 40 | } 41 | } 42 | 43 | .products { 44 | display: flex; 45 | flex-wrap: wrap; 46 | width: 100%; 47 | 48 | .entry { 49 | width: 100%; 50 | margin-bottom: $gutter; 51 | 52 | &:last-of-type { 53 | 54 | @include mq($until: xs) { 55 | margin-bottom: 0; 56 | } 57 | } 58 | 59 | @include mq(xs) { 60 | width: $one-half; 61 | 62 | &:nth-of-type(odd) { 63 | margin-right: $gutter; 64 | } 65 | } 66 | 67 | @include mq(m) { 68 | 69 | margin-right: $gutter; 70 | } 71 | } 72 | 73 | .product { 74 | flex-direction: column; 75 | } 76 | } 77 | 78 | .product { 79 | display: flex; 80 | position: relative; 81 | flex-wrap: wrap; 82 | align-content: flex-start; 83 | list-style-type: none; 84 | 85 | &-inner { 86 | display: flex; 87 | flex-wrap: wrap; 88 | align-items: flex-start; 89 | width: 100%; 90 | padding: $gap; 91 | flex: 1; 92 | } 93 | 94 | .price, 95 | .star-rating { 96 | width: 100%; 97 | align-self: flex-start; 98 | } 99 | } 100 | 101 | .woocommerce-LoopProduct-link { 102 | width: 100%; 103 | 104 | img { 105 | width: 100%; 106 | } 107 | } 108 | 109 | .woocommerce-loop-product__title { 110 | margin-bottom: auto; 111 | font-size: $font-size--h6; 112 | } 113 | 114 | .add_to_cart_button { 115 | margin-top: auto; 116 | padding: $spacing--m $gap; 117 | transition: none; 118 | 119 | &:after { 120 | display: inline-flex; 121 | font-size: 0; 122 | 123 | @include icon("\f00c", 700); 124 | } 125 | } 126 | 127 | .added { 128 | padding: $spacing--m; 129 | font-size: 0; 130 | align-self: flex-start; 131 | 132 | &:after { 133 | font-size: $base--font-size / $major-second; 134 | } 135 | } 136 | 137 | .added_to_cart { 138 | 139 | @include button(); 140 | 141 | align-self: flex-end; 142 | margin-left: $spacing--s; 143 | padding: $spacing--m - 0.1rem; 144 | border: 1px solid $color--primary; 145 | color: $color--primary; 146 | background: transparent; 147 | 148 | @include hover-focus { 149 | color: $color--white; 150 | background: $color--primary; 151 | } 152 | } 153 | 154 | .star-rating { 155 | display: block; 156 | margin-bottom: $spacing--xxs; 157 | 158 | &:before { 159 | display: inline-block; 160 | color: $color--warning; 161 | font-family: "Font Awesome 5 Free", sans-serif; 162 | font-size: $spacing--m; 163 | font-weight: 700; 164 | letter-spacing: 0.2em; 165 | content: "\f005"; 166 | } 167 | 168 | &[aria-label*="Rated 1"] { 169 | 170 | &:before { 171 | content: "\f005"; 172 | } 173 | } 174 | 175 | &[aria-label*="Rated 2"] { 176 | 177 | &:before { 178 | content: "\f005 \f005"; 179 | } 180 | } 181 | 182 | &[aria-label*="Rated 3"] { 183 | 184 | &:before { 185 | content: "\f005 \f005 \f005"; 186 | } 187 | } 188 | 189 | &[aria-label*="Rated 4"] { 190 | 191 | &:before { 192 | content: "\f005 \f005 \f005 \f005"; 193 | } 194 | } 195 | 196 | &[aria-label*="Rated 5"] { 197 | 198 | &:before { 199 | content: "\f005 \f005 \f005 \f005 \f005"; 200 | } 201 | } 202 | 203 | span { 204 | display: none; 205 | } 206 | } 207 | 208 | .price { 209 | display: block; 210 | margin-bottom: $spacing--m; 211 | 212 | ins { 213 | text-decoration: none; 214 | } 215 | } 216 | 217 | @include mq(m) { 218 | 219 | .entry { 220 | 221 | .columns-1 & { 222 | width: 100%; 223 | margin-right: 0; 224 | } 225 | 226 | .columns-2 & { 227 | width: $one-half; 228 | 229 | &:nth-of-type(2n) { 230 | margin-right: 0; 231 | } 232 | } 233 | 234 | .columns-3 & { 235 | width: $one-third; 236 | 237 | &:nth-of-type(3n) { 238 | margin-right: 0; 239 | } 240 | } 241 | 242 | .columns-4 & { 243 | width: $one-fourth; 244 | 245 | &:nth-of-type(4n) { 246 | margin-right: 0; 247 | } 248 | } 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /assets/scss/settings/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Setting imports. 3 | /// 4 | /// Settings handle the configuration and don't output CSS. This is a good place 5 | /// to define things like variables. 6 | /// 7 | /// @group Settings 8 | /// @author Lee Anthony 9 | /// @link https://seothemes.com/themes/genesis-starter-theme 10 | //// 11 | 12 | @import "breakpoints"; 13 | @import "typography"; 14 | @import "colors"; 15 | @import "global"; 16 | @import "spacing"; 17 | @import "layout"; 18 | @import "grid"; 19 | -------------------------------------------------------------------------------- /assets/scss/settings/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; // Fixes an issue where Ruby locale is not set properly 2 | // See https://github.com/sass-mq/sass-mq/pull/10 3 | 4 | /// Based on 16:9 screen resolutions 5 | /// 6 | /// @link https://pacoup.com/2011/06/12/list-of-true-169-resolutions/ 7 | $mq-base: 896px; 8 | $mq-increment: 128px; 9 | 10 | $mq-xxxxs: $mq-base - ($mq-increment * 5); 11 | $mq-xxxs: $mq-base - ($mq-increment * 4); 12 | $mq-xxs: $mq-base - ($mq-increment * 3); 13 | $mq-xs: $mq-base - ($mq-increment * 2); 14 | $mq-s: $mq-base - $mq-increment; 15 | $mq-m: $mq-base; 16 | $mq-l: $mq-base + $mq-increment; 17 | $mq-xl: $mq-base + ($mq-increment * 2); 18 | $mq-xxl: $mq-base + ($mq-increment * 3); 19 | $mq-xxxl: $mq-base + ($mq-increment * 4); 20 | $mq-xxxxl: $mq-base + ($mq-increment * 5); 21 | 22 | //// 23 | /// Breakpoint list 24 | /// 25 | /// Name your breakpoints in a way that creates a ubiquitous language 26 | /// across team members. It will improve communication between 27 | /// stakeholders, designers, developers, and testers. 28 | /// 29 | /// @type Map 30 | //// 31 | $mq-breakpoints: ( 32 | xxxxs: $mq-xxxxs, 33 | xxxs: $mq-xxxs, 34 | xxs: $mq-xxs, 35 | xs: $mq-xs, 36 | s: $mq-s, 37 | m: $mq-m, 38 | l: $mq-l, 39 | xl: $mq-xl, 40 | xxl: $mq-xxl, 41 | xxxl: $mq-xxxl, 42 | xxxxl: $mq-xxxxl, 43 | ) !default; 44 | 45 | /// Customize the media type (e.g. `@media screen` or `@media print`) 46 | /// By default sass-mq uses an "all" media type (`@media all and …`) 47 | /// 48 | /// @type String 49 | /// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples 50 | $mq-media-type: all !default; 51 | -------------------------------------------------------------------------------- /assets/scss/settings/_colors.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Color settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | // Palette 10 | $color--blue: #007bff; 11 | $color--indigo: #6610f2; 12 | $color--purple: #6f42c1; 13 | $color--pink: #e83e8c; 14 | $color--red: #dc3545; 15 | $color--orange: #fd7e14; 16 | $color--yellow: #ffc107; 17 | $color--green: #28a745; 18 | $color--teal: #20c997; 19 | $color--cyan: #17a2b8; 20 | 21 | // Grayscale 22 | $color--white: #fff; 23 | $color--gray-100: #f8f9fa; 24 | $color--gray-200: #e9ecef; 25 | $color--gray-300: #dee2e6; 26 | $color--gray-400: #ced4da; 27 | $color--gray-500: #adb5bd; 28 | $color--gray-600: #6c757d; 29 | $color--gray-700: #495057; 30 | $color--gray-800: #343a40; 31 | $color--gray-900: #212529; 32 | $color--black: #000; 33 | 34 | // Theme 35 | $color--primary: $color--blue; 36 | $color--secondary: $color--gray-600; 37 | $color--success: $color--green; 38 | $color--info: $color--blue; 39 | $color--warning: $color--yellow; 40 | $color--error: $color--red; 41 | $color--light: $color--gray-100; 42 | $color--medium: $color--gray-500; 43 | $color--dark: $color--gray-800; 44 | $color--heading: $color--gray-800; 45 | $color--text: $color--gray-700; 46 | $color--border: $color--gray-200; 47 | $color--background: $color--gray-100; 48 | $color--muted: $color--gray-400; 49 | $color--overlay: rgba($color--gray-100, 0.9); 50 | 51 | // Social 52 | $color--dribbble: #ea4c89; 53 | $color--email: #049fb3; 54 | $color--facebook: #3b5998; 55 | $color--flickr: #ff0084; 56 | $color--github: #333; 57 | $color--gplus: #dd4b39; 58 | $color--linkedin: #007bb6; 59 | $color--pinterest: #bd081c; 60 | $color--rss: #f60; 61 | $color--stumbleupon: #eb4823; 62 | $color--tumblr: #32506d; 63 | $color--twitter: #1da1f2; 64 | $color--vimeo: #aad450; 65 | $color--youtube: #f00; 66 | $color--snapchat: #fffc00; 67 | $color--instagram: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); 68 | 69 | $colors: ( 70 | "primary": $color--primary, 71 | "secondary": $color--secondary, 72 | "success": $color--success, 73 | "info": $color--info, 74 | "warning": $color--warning, 75 | "error": $color--error, 76 | "light": $color--light, 77 | "medium": $color--medium, 78 | "dark": $color--dark, 79 | "heading": $color--heading, 80 | "text": $color--text, 81 | "border": $color--border, 82 | "background": $color--background, 83 | "muted": $color--muted, 84 | "overlay": $color--overlay, 85 | 86 | "blue": $color--blue, 87 | "indigo": $color--indigo, 88 | "purple": $color--purple, 89 | "pink": $color--pink, 90 | "red": $color--red, 91 | "orange": $color--orange, 92 | "yellow": $color--yellow, 93 | "green": $color--green, 94 | "teal": $color--teal, 95 | "cyan": $color--cyan, 96 | 97 | "white": $color--white, 98 | "gray-100": $color--gray-100, 99 | "gray-200": $color--gray-200, 100 | "gray-300": $color--gray-300, 101 | "gray-400": $color--gray-400, 102 | "gray-500": $color--gray-500, 103 | "gray-600": $color--gray-600, 104 | "gray-700": $color--gray-700, 105 | "gray-800": $color--gray-800, 106 | "gray-900": $color--gray-900, 107 | "black": $color--black, 108 | ); 109 | -------------------------------------------------------------------------------- /assets/scss/settings/_global.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Global base settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | // Borders 10 | $base--border--radius: 4px; 11 | $base--border--width: 1px; 12 | $base--border--style: solid; 13 | $base--border--color: $color--border; 14 | $base--border: $base--border--width $base--border--style $base--border--color; 15 | 16 | // Shadows 17 | $base--box-shadow--x: 0; 18 | $base--box-shadow--y: 0; 19 | $base--box-shadow--blur: $base--font-size; 20 | $base--box-shadow--spread: 0; 21 | $base--box-shadow--color: $color--black; 22 | $base--box-shadow--opacity: 0.1; 23 | $base--box-shadow: $base--box-shadow--x $base--box-shadow--y $base--box-shadow--blur $base--box-shadow--spread rgba($base--box-shadow--color, $base--box-shadow--opacity); 24 | 25 | // Transition 26 | $base--transition-property: all; 27 | $base--transition-duration: 0.2s; 28 | $base--transition-timing-function: ease; 29 | $base--transition-delay: 0; 30 | $base--transition: $base--transition-property $base--transition-duration $base--transition-timing-function $base--transition-delay; 31 | -------------------------------------------------------------------------------- /assets/scss/settings/_grid.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Grid settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | // Grid spacing. 10 | $gutter: $spacing--l; 11 | $gap: $spacing--m * $perfect-fifth; 12 | 13 | // Column fractions. 14 | $one-half: calc((100% - (#{$gutter} * 1)) / 2); 15 | $one-third: calc((100% - (#{$gutter} * 2)) / 3); 16 | $one-fourth: calc((100% - (#{$gutter} * 3)) / 4); 17 | $one-fifth: calc((100% - (#{$gutter} * 4)) / 5); 18 | $one-sixth: calc((100% - (#{$gutter} * 5)) / 6); 19 | $two-thirds: calc(#{$one-third} * 2 + #{$gutter}); 20 | $two-fourths: calc(#{$one-fourth} * 2 + #{$gutter}); 21 | $two-fifths: calc(#{$one-fifth} * 2 + #{$gutter}); 22 | $two-sixths: calc(#{$one-sixth} * 2 + #{$gutter}); 23 | $three-fourths: calc(#{$one-fourth} * 3 + (#{$gutter} * 2)); 24 | $three-fifths: calc(#{$one-fifth} * 3 + (#{$gutter} * 2)); 25 | $three-sixths: calc(#{$one-sixth} * 3 + (#{$gutter} * 2)); 26 | $four-fifths: calc(#{$one-fifth} * 4 + (#{$gutter} * 3)); 27 | $four-sixths: calc(#{$one-sixth} * 4 + (#{$gutter} * 3)); 28 | $five-sixths: calc(#{$one-sixth} * 5 + (#{$gutter} * 4)); 29 | 30 | /// 31 | /// Columns map 32 | /// 33 | $columns: ( 34 | one-half: $one-half, 35 | one-third: $one-third, 36 | one-fourth: $one-fourth, 37 | one-fifth: $one-fifth, 38 | one-sixth: $one-sixth, 39 | two-thirds: $two-thirds, 40 | two-fourths: $two-fourths, 41 | two-fifths: $two-fifths, 42 | two-sixths: $two-sixths, 43 | three-fourths: $three-fourths, 44 | three-fifths: $three-fifths, 45 | three-sixths: $three-sixths, 46 | four-fifths: $four-fifths, 47 | four-sixths: $four-sixths, 48 | five-sixths: $five-sixths, 49 | ); 50 | -------------------------------------------------------------------------------- /assets/scss/settings/_layout.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Layout and width settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | $layout--width: $mq-xl; 10 | $layout--width--sidebar: 30rem; 11 | $layout--width--content: calc(#{$layout--width} - (#{$layout--width--sidebar} + #{$spacing--xl})); 12 | $layout--max-width--content: calc(100% - (#{$layout--width--sidebar} + #{$spacing--xl})); 13 | 14 | -------------------------------------------------------------------------------- /assets/scss/settings/_spacing.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Spacing settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | $spacing--xxxs: $base--font-size / 8; 10 | $spacing--xxs: $base--font-size / 5; 11 | $spacing--xs: $base--font-size / 3; 12 | $spacing--s: $base--font-size / 2; 13 | $spacing--m: $base--font-size; 14 | $spacing--l: $base--font-size * 2; 15 | $spacing--xl: $base--font-size * 3; 16 | $spacing--xxl: $base--font-size * 5; 17 | $spacing--xxxl: $base--font-size * 8; 18 | 19 | $spacing: ( 20 | xxxs: $spacing--xxxs, 21 | xxs: $spacing--xxs, 22 | xs: $spacing--xs, 23 | s: $spacing--s, 24 | m: $spacing--m, 25 | l: $spacing--l, 26 | xl: $spacing--xl, 27 | xxl: $spacing--xxl, 28 | xxxl: $spacing--xxxl, 29 | ); 30 | -------------------------------------------------------------------------------- /assets/scss/settings/_typography.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Typography settings. 3 | /// 4 | /// @group Settings 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | // Font sizes 10 | $base--font-size: 1.6rem; 11 | 12 | $font-size--h1: 2.3em; 13 | $font-size--h2: 1.8em; 14 | $font-size--h3: 1.5em; 15 | $font-size--h4: 1.3em; 16 | $font-size--h5: 1.2em; 17 | $font-size--h6: 1.1em; 18 | 19 | $font-sizes: ( 20 | h1: $font-size--h1, 21 | h2: $font-size--h2, 22 | h3: $font-size--h3, 23 | h4: $font-size--h4, 24 | h5: $font-size--h5, 25 | h6: $font-size--h6, 26 | ); 27 | 28 | // Font families 29 | $base--font-family: $font-stack-system; 30 | 31 | $font-family--heading: $base--font-family; 32 | $font-family--code: $font-stack-consolas; 33 | 34 | // Font weights 35 | $font-weight--extralight: 200; 36 | $font-weight--light: 300; 37 | $font-weight--regular: 400; 38 | $font-weight--medium: 500; 39 | $font-weight--semibold: 600; 40 | $font-weight--bold: 700; 41 | 42 | $base--font-weight: $font-weight--regular; 43 | $font-weight--heading: $font-weight--semibold; 44 | 45 | // Line height 46 | $base--line-height: modular-scale(0, $golden); 47 | 48 | $line-height--heading: modular-scale(-1, $golden); 49 | -------------------------------------------------------------------------------- /assets/scss/tools/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Tool imports. 3 | /// 4 | /// These are used throughout the code but don't output CSS on their own. Things 5 | /// like functions, mixins, and extensions go here. 6 | /// 7 | /// @group Tools 8 | /// @author Lee Anthony 9 | /// @link https://seothemes.com/themes/genesis-starter-theme 10 | //// 11 | 12 | @import "variables"; 13 | @import "functions"; 14 | @import "mixins"; 15 | @import "extends"; 16 | -------------------------------------------------------------------------------- /assets/scss/tools/_extends.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Custom extends. 3 | /// 4 | /// @group Tools 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | -------------------------------------------------------------------------------- /assets/scss/tools/_functions.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Custom functions. 3 | /// 4 | /// @group Tools 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | /// Get a breakpoint's width 10 | /// 11 | /// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints 12 | /// 13 | /// @example scss 14 | /// $tablet-width: mq-get-breakpoint-width(tablet); 15 | /// @media (min-width: mq-get-breakpoint-width(desktop)) {} 16 | /// 17 | /// @requires {Variable} $mq-breakpoints 18 | /// 19 | /// @returns {Number} Value in pixels 20 | @function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) { 21 | 22 | @if map-has-key($breakpoints, $name) { 23 | 24 | @return map-get($breakpoints, $name); 25 | } @else { 26 | 27 | @warn "Breakpoint #{$name} wasn't found in $breakpoints."; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /assets/scss/tools/_variables.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Custom variables. 3 | /// 4 | /// @group Tools 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | //// 10 | /// Buttons map. 11 | /// 12 | /// Adds to Bourbon buttons list. 13 | /// 14 | /// @group Tools 15 | /// @author Lee Anthony 16 | /// @link https://github.com/seothemes/genesis-starter-theme 17 | //// 18 | 19 | $all-buttons: append($all-buttons, ".button"); 20 | $all-buttons: append($all-buttons, ".button.menu-item a"); 21 | 22 | //// 23 | /// Headings map 24 | /// 25 | /// @group Tools 26 | /// @author Lee Anthony 27 | /// @link https://github.com/seothemes/genesis-starter-theme 28 | //// 29 | 30 | $all-headings: ( 31 | h1, 32 | h2, 33 | h3, 34 | h4, 35 | h5, 36 | h6, 37 | ); 38 | -------------------------------------------------------------------------------- /assets/scss/utilities/__index.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Utility imports. 3 | /// 4 | /// Utilities are helper classes and overrides. This gets loaded last. If 5 | /// necessary, this is the only place where `!important` rules should go, but 6 | /// only if necessary. 7 | /// 8 | /// @group Utilities 9 | /// @author Lee Anthony 10 | /// @link https://seothemes.com/themes/genesis-starter-theme 11 | //// 12 | 13 | @import "accessibility"; 14 | @import "gutenberg"; 15 | @import "alignment"; 16 | @import "grid"; 17 | @import "spacing"; 18 | @import "misc"; 19 | @import "wordpress"; 20 | @import "print"; 21 | -------------------------------------------------------------------------------- /assets/scss/utilities/_accessibility.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Accessibility classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .screen-reader-shortcut, 10 | .screen-reader-text, 11 | .screen-reader-text span { 12 | 13 | @include hide-visually; 14 | 15 | &:active, 16 | &:focus { 17 | 18 | @include hide-visually(unhide); 19 | 20 | position: absolute; 21 | padding: $spacing--s; 22 | color: $color--white; 23 | background-color: $color--muted; 24 | text-decoration: none; 25 | } 26 | } 27 | 28 | .more-link { 29 | position: relative; 30 | } 31 | 32 | .genesis-skip-link { 33 | margin: 0; 34 | 35 | li { 36 | width: 0; 37 | height: 0; 38 | list-style: none; 39 | } 40 | } 41 | 42 | :focus { 43 | outline: $base--border; 44 | } 45 | -------------------------------------------------------------------------------- /assets/scss/utilities/_alignment.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Alignment classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .align { 10 | 11 | &left { 12 | float: left; 13 | margin: 0 $spacing--m 0 0; 14 | } 15 | 16 | &right { 17 | float: right; 18 | margin: 0 0 $spacing--m 0; 19 | } 20 | 21 | ¢er { 22 | margin: 0 auto; 23 | 24 | @include clearfix; 25 | } 26 | 27 | &wide, 28 | &full { 29 | overflow: hidden; 30 | position: relative; 31 | left: 50%; 32 | width: 100vw; 33 | 34 | .content-sidebar &, 35 | .sidebar-content & { 36 | left: auto; 37 | width: 100%; 38 | max-width: 100%; 39 | margin-left: 0; 40 | transform: none; 41 | } 42 | 43 | > img { 44 | display: inline-block; 45 | width: 100%; 46 | margin: $spacing--m auto; 47 | } 48 | } 49 | 50 | &wide { 51 | max-width: 120%; 52 | transform: translate(-50%); 53 | } 54 | 55 | &full { 56 | max-width: none; 57 | margin-left: -50vw; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /assets/scss/utilities/_grid.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Grid classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .full-width { 10 | width: 100%; 11 | } 12 | 13 | @include mq(m) { 14 | 15 | .one-half, 16 | .one-third, 17 | .one-fourth, 18 | .one-fifth, 19 | .one-sixth, 20 | .two-thirds, 21 | .two-fourths, 22 | .two-fifths, 23 | .two-sixths, 24 | .three-fourths, 25 | .three-fifths, 26 | .three-sixths, 27 | .four-fifths, 28 | .four-sixths, 29 | .five-sixths { 30 | float: left; 31 | margin-bottom: $gutter; 32 | margin-left: $gutter; 33 | } 34 | 35 | .one-half, 36 | .two-fourths, 37 | .three-sixths { 38 | width: $one-half; 39 | } 40 | 41 | .one-third, 42 | .two-sixths { 43 | width: $one-third; 44 | } 45 | 46 | .one-fourth { 47 | width: $one-fourth; 48 | } 49 | 50 | .one-fifth { 51 | width: $one-fifth; 52 | } 53 | 54 | .one-sixth { 55 | width: $one-sixth; 56 | } 57 | 58 | .two-thirds, 59 | .four-sixths { 60 | width: $two-thirds; 61 | } 62 | 63 | .two-fifths { 64 | width: $two-fifths; 65 | } 66 | 67 | .three-fourths { 68 | width: $three-fourths; 69 | } 70 | 71 | .three-fifths { 72 | width: $three-fifths; 73 | } 74 | 75 | .four-fifths { 76 | width: $four-fifths; 77 | } 78 | 79 | .five-sixths { 80 | width: $five-sixths; 81 | } 82 | 83 | .first { 84 | clear: both; 85 | margin-left: 0; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /assets/scss/utilities/_gutenberg.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Gutenberg classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | /// Loops through the theme colors and adds utility classes for them. Primarily, 10 | /// these are the `.has-{$color}-color` and `.has-{$color}-background-color` 11 | /// classes added via Gutenberg. However, they are useful elsewhere. 12 | 13 | @each $color-name, $color-value in $colors { 14 | 15 | .has-#{ $color-name }-color { 16 | color: #{ $color-value }; 17 | } 18 | 19 | .has-#{ $color-name }-background-color { 20 | background-color: #{ $color-value }; 21 | } 22 | } 23 | 24 | /// Loops through the editor font sizes and adds utility classes for them. This 25 | /// handles the `.has-{$size}-font-size` classes added via Gutenberg, which may 26 | /// be useful elsewhere. 27 | 28 | @each $font-size-name, $font-size-value in $font-sizes { 29 | 30 | .has-#{ $font-size-name }-font-size { 31 | font-size: #{ $font-size-value }; 32 | } 33 | } 34 | 35 | // Text alignment. 36 | 37 | .has-text-align-left { 38 | text-align: left; 39 | } 40 | 41 | .has-text-align-center { 42 | text-align: center; 43 | } 44 | 45 | .has-text-align-right { 46 | text-align: right; 47 | } 48 | -------------------------------------------------------------------------------- /assets/scss/utilities/_misc.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Miscellaneous classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | // Box 10 | .box { 11 | 12 | @include box; 13 | } 14 | 15 | // Notice 16 | .notice { 17 | 18 | @include notice(); 19 | 20 | &-success { 21 | 22 | @include notice("success"); 23 | } 24 | 25 | &-info { 26 | 27 | @include notice("info"); 28 | } 29 | 30 | &-warning { 31 | 32 | @include notice("warning"); 33 | } 34 | 35 | &-error { 36 | 37 | @include notice("error"); 38 | } 39 | 40 | } 41 | 42 | // Palette 43 | .palette { 44 | display: flex; 45 | flex-wrap: wrap; 46 | 47 | h5 { 48 | width: 100%; 49 | } 50 | 51 | > div { 52 | width: $one-half; 53 | margin: 0 $gutter $gutter 0; 54 | padding: $spacing--m 0; 55 | border-radius: $base--border--radius; 56 | color: $color--white; 57 | font-size: smaller; 58 | font-weight: $font-weight--heading; 59 | text-align: center; 60 | 61 | &:nth-of-type(even) { 62 | margin-right: 0; 63 | } 64 | 65 | @include mq(xs) { 66 | width: $one-fifth; 67 | padding: $gap 0; 68 | 69 | &:nth-of-type(even) { 70 | margin-right: $gutter; 71 | } 72 | 73 | &:nth-of-type(5n) { 74 | margin-right: 0; 75 | } 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /assets/scss/utilities/_print.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Print only styles. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | @media print { 10 | 11 | *, 12 | *:before, 13 | *:after { 14 | color: $color--dark !important; 15 | background: transparent !important; 16 | box-shadow: none !important; 17 | text-shadow: none !important; 18 | } 19 | 20 | a, 21 | a:visited { 22 | text-decoration: underline; 23 | } 24 | 25 | a[href]:after { 26 | content: " (" attr(href) ")"; 27 | } 28 | 29 | abbr[title]:after { 30 | content: " (" attr(title) ")"; 31 | } 32 | 33 | a[href^="javascript:"]:after, 34 | a[href^="#"]:after, 35 | .site-title > a:after { 36 | content: ""; 37 | } 38 | 39 | thead { 40 | display: table-header-group; 41 | } 42 | 43 | img, 44 | tr { 45 | page-break-inside: avoid; 46 | } 47 | 48 | img { 49 | max-width: 100% !important; 50 | } 51 | 52 | @page { 53 | margin: 2cm 0.5cm; 54 | } 55 | 56 | p, 57 | h2, 58 | h3 { 59 | orphans: 3; 60 | widows: 3; 61 | } 62 | 63 | blockquote, 64 | pre { 65 | border: $base--border; 66 | page-break-inside: avoid; 67 | } 68 | 69 | .content, 70 | .content-sidebar { 71 | width: 100%; 72 | } 73 | 74 | button, 75 | input, 76 | select, 77 | textarea, 78 | .breadcrumb, 79 | .comment-edit-link, 80 | .comment-form, 81 | .comment-list .reply a, 82 | .comment-reply-title, 83 | .edit-link, 84 | .entry-comments-link, 85 | .entry-footer, 86 | .genesis-box, 87 | .header-widget-area, 88 | .hidden-print, 89 | .home-top, 90 | .nav-primary, 91 | .nav-secondary, 92 | .post-edit-link, 93 | .sidebar { 94 | display: none !important; 95 | } 96 | 97 | .title-area { 98 | width: 100%; 99 | text-align: center; 100 | } 101 | 102 | .site-title > a { 103 | margin: 0; 104 | text-decoration: none; 105 | text-indent: 0; 106 | } 107 | 108 | .site-inner { 109 | position: relative; 110 | top: -#{$spacing--xl}; 111 | padding-top: 0; 112 | } 113 | 114 | .author-box { 115 | margin-bottom: 0; 116 | } 117 | 118 | h1, 119 | h2, 120 | h3, 121 | h4, 122 | h5, 123 | h6 { 124 | orphans: 3; 125 | page-break-after: avoid; 126 | page-break-inside: avoid; 127 | widows: 3; 128 | } 129 | 130 | img { 131 | page-break-after: avoid; 132 | page-break-inside: avoid; 133 | } 134 | 135 | blockquote, 136 | pre, 137 | table { 138 | page-break-inside: avoid; 139 | } 140 | 141 | dl, 142 | ol, 143 | ul { 144 | page-break-before: avoid; 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /assets/scss/utilities/_spacing.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Spacing classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://seothemes.com/themes/genesis-starter-theme 7 | //// 8 | 9 | @each $spacing-name, $spacing-value in $spacing { 10 | 11 | .spacing-top-#{ $spacing-name } { 12 | padding-top: #{ $spacing-value }; 13 | } 14 | 15 | .spacing-right-#{ $spacing-name } { 16 | padding-right: #{ $spacing-value }; 17 | } 18 | 19 | .spacing-bottom-#{ $spacing-name } { 20 | padding-bottom: #{ $spacing-value }; 21 | } 22 | 23 | .spacing-left-#{ $spacing-name } { 24 | padding-left: #{ $spacing-value }; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /assets/scss/utilities/_wordpress.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// WordPress classes. 3 | /// 4 | /// @group Utilities 5 | /// @author Lee Anthony 6 | /// @link https://github.com/seothemes/genesis-starter-theme 7 | //// 8 | 9 | .post-edit-link { 10 | display: none; 11 | } 12 | -------------------------------------------------------------------------------- /assets/svg/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/assets/svg/.gitkeep -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "seothemes/genesis-starter-theme", 3 | "type": "wordpress-theme", 4 | "description": "Genesis starter theme with a modern development workflow.", 5 | "keywords": [ 6 | "WordPress", 7 | "wordpress-theme-development", 8 | "genesis-framework" 9 | ], 10 | "license": "GPL-2.0-or-later", 11 | "authors": [ 12 | { 13 | "name": "Lee Anthony", 14 | "homepage": "https://seothemes.com", 15 | "role": "Developer" 16 | } 17 | ], 18 | "support": { 19 | "issues": "https://github.com/seothemes/genesis-starter-theme/issues", 20 | "source": "https://github.com/seothemes/genesis-starter-theme" 21 | }, 22 | "require": { 23 | "php": ">=5.6" 24 | }, 25 | "require-dev": { 26 | "php": "^5.6|^7", 27 | "brain/monkey": "^2.2", 28 | "dealerdirect/phpcodesniffer-composer-installer": "v0.5.0", 29 | "phpcompatibility/phpcompatibility-wp": "2.0.0", 30 | "phpunit/phpunit": "~5.7.9", 31 | "seothemes/genesis-config-exporter": "@dev", 32 | "squizlabs/php_codesniffer": "^3.4.2", 33 | "wp-coding-standards/wpcs": "2.1.0", 34 | "wp-phpunit/wp-phpunit": "^5.1" 35 | }, 36 | "autoload-dev": { 37 | "psr-4": { 38 | "SeoThemes\\GenesisStarterTheme\\Tests\\Unit\\": "tests/php/unit/", 39 | "SeoThemes\\GenesisStarterTheme\\Tests\\Integration\\": "tests/php/integration/" 40 | } 41 | }, 42 | "config": { 43 | "preferred-install": { 44 | "*": "dist" 45 | }, 46 | "sort-order": true 47 | }, 48 | "minimum-stability": "dev", 49 | "prefer-stable": true, 50 | "scripts": { 51 | "stylelint": [ 52 | "stylelint './assets/scss/**/*.scss' --fix" 53 | ], 54 | "install-codestandards": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run", 55 | "phpcs": "phpcs --standard=WordPress --extensions=php -p -s lib config templates tests functions.php", 56 | "phpcbf": "phpcbf --standard=WordPress --extensions=php -p lib config templates tests functions.php", 57 | "test-unit": "composer dump && \"vendor/bin/phpunit\" --testsuite unit --color=always", 58 | "test-integration": "composer dump && \"vendor/bin/phpunit\" --testsuite integration --configuration tests/phpunit/integration/phpunit.xml.dist --color=always" 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /config/genesis-settings.php: -------------------------------------------------------------------------------- 1 | 48, 16 | 'blog_cat_num' => 9, 17 | 'breadcrumb_home' => 0, 18 | 'breadcrumb_front_page' => 0, 19 | 'breadcrumb_posts_page' => 0, 20 | 'breadcrumb_single' => 0, 21 | 'breadcrumb_page' => 0, 22 | 'breadcrumb_archive' => 0, 23 | 'breadcrumb_404' => 0, 24 | 'breadcrumb_attachment' => 0, 25 | 'content_archive' => 'full', 26 | 'content_archive_limit' => 200, 27 | 'content_archive_thumbnail' => 1, 28 | 'image_size' => 'featured', 29 | 'image_alignment' => 'alignnone', 30 | 'posts_nav' => 'numeric', 31 | 'site_layout' => 'narrow-content', 32 | ]; 33 | -------------------------------------------------------------------------------- /config/google-fonts.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'featured' => [ 620, 380, true ], 17 | 'hero' => [ 1920, 1080, true ], 18 | ], 19 | 'remove' => [], 20 | ]; 21 | -------------------------------------------------------------------------------- /config/page-layouts.php: -------------------------------------------------------------------------------- 1 | [ 18 | [ 19 | 'id' => 'narrow-content', 20 | 'label' => __( 'Narrow Content', 'genesis-starter-theme' ), 21 | 'img' => get_theme_url() . 'assets/img/narrow-content.gif', 22 | ], 23 | ], 24 | 'remove' => [ 25 | 'content-sidebar-sidebar', 26 | 'sidebar-sidebar-content', 27 | 'sidebar-content-sidebar', 28 | ], 29 | ]; 30 | -------------------------------------------------------------------------------- /config/post-type-support.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'excerpt' => [ 'page' ], 17 | 'genesis-layouts' => [ 'product' ], 18 | 'genesis-seo' => [ 'product' ], 19 | 'genesis-singular-images' => [ 'page', 'post' ], 20 | 'genesis-title-toggle' => [ 'post', 'product' ], 21 | 'genesis-adjacent-entry-nav' => [ 'post', 'product' ], 22 | 'hero-section' => [ 'page', 'post' ], 23 | ], 24 | 'remove' => [], 25 | ]; 26 | -------------------------------------------------------------------------------- /config/responsive-menu.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'mainMenu' => sprintf( ' %s', __( 'Menu', 'genesis-starter-theme' ) ), 17 | 'menuIconClass' => null, 18 | 'subMenuIconClass' => null, 19 | 'menuClasses' => [ 20 | 'combine' => [ 21 | '.nav-primary', 22 | '.nav-secondary', 23 | ], 24 | ], 25 | 'menuAnimation' => [ 26 | 'effect' => 'fadeToggle', 27 | 'duration' => 'fast', 28 | 'easing' => 'swing', 29 | ], 30 | 'subMenuAnimation' => [ 31 | 'effect' => 'slideToggle', 32 | 'duration' => 'fast', 33 | 'easing' => 'swing', 34 | ], 35 | ], 36 | 'extras' => [ 37 | 'media_query_width' => '896px', 38 | ], 39 | ]; 40 | -------------------------------------------------------------------------------- /config/scripts-and-styles.php: -------------------------------------------------------------------------------- 1 | [ 21 | [ 22 | 'handle' => \genesis_get_theme_handle() . '-editor', 23 | 'src' => $asset_url . 'js/editor.js', 24 | 'deps' => [ 'wp-blocks' ], 25 | 'editor' => true, 26 | ], 27 | [ 28 | 'handle' => \genesis_get_theme_handle() . '-main', 29 | 'src' => $asset_url . 'js/min/main.js', 30 | 'condition' => function () { 31 | return ! \genesis_is_amp(); 32 | }, 33 | ], 34 | [ 35 | 'handle' => \genesis_get_theme_handle() . '-main', 36 | 'src' => $asset_url . 'css/main.css', 37 | ], 38 | [ 39 | 'handle' => \genesis_get_theme_handle() . '-woocommerce', 40 | 'src' => $asset_url . 'css/woocommerce.css', 41 | 'condition' => function () { 42 | return \class_exists( 'WooCommerce' ); 43 | }, 44 | ], 45 | [ 46 | 'handle' => \genesis_get_theme_handle() . '-google-fonts', 47 | 'src' => "//fonts.googleapis.com/css?family=$google_fonts&display=swap", 48 | 'editor' => 'both', 49 | ], 50 | ], 51 | 'remove' => [ 52 | 'superfish', 53 | ], 54 | ]; 55 | -------------------------------------------------------------------------------- /config/simple-social-icons.php: -------------------------------------------------------------------------------- 1 | 'alignleft', 16 | 'background_color' => '#f5f5f5', 17 | 'background_color_hover' => '#333333', 18 | 'border_radius' => 3, 19 | 'border_width' => 0, 20 | 'icon_color' => '#333333', 21 | 'icon_color_hover' => '#ffffff', 22 | 'size' => 40, 23 | ]; 24 | -------------------------------------------------------------------------------- /config/theme-support.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'align-wide', 19 | 'automatic-feed-links', 20 | 'custom-header' => [ 21 | 'header-selector' => '.hero-section', 22 | 'default_image' => get_theme_url() . 'assets/img/hero.jpg', 23 | 'header-text' => false, 24 | 'width' => 1280, 25 | 'height' => 720, 26 | 'flex-height' => true, 27 | 'flex-width' => true, 28 | 'uploads' => true, 29 | 'video' => true, 30 | 'wp-head-callback' => __NAMESPACE__ . '\Functions\header', 31 | ], 32 | 'editor-styles', 33 | 'front-page-widgets' => 5, 34 | 'genesis-accessibility' => [ 35 | '404-page', 36 | 'drop-down-menu', 37 | 'headings', 38 | 'rems', 39 | 'search-form', 40 | 'skip-links', 41 | ], 42 | 'genesis-after-entry-widget-area', 43 | 'genesis-custom-logo' => [ 44 | 'height' => 60, 45 | 'width' => 120, 46 | 'flex-height' => true, 47 | 'flex-width' => true, 48 | 'header-text' => [ 49 | '.site-title', 50 | '.site-description', 51 | ], 52 | ], 53 | 'genesis-footer-widgets' => 3, 54 | 'genesis-menus' => [ 55 | 'primary' => __( 'Header Menu', 'genesis-starter-theme' ), 56 | 'secondary' => __( 'After Header Menu', 'genesis-starter-theme' ), 57 | ], 58 | 'genesis-structural-wraps' => [ 59 | 'header', 60 | 'menu-secondary', 61 | 'hero-section', 62 | 'footer-widgets', 63 | 'front-page-widgets', 64 | ], 65 | 'gutenberg' => [ 66 | 'wide-images' => true, 67 | ], 68 | 'hero-section', 69 | 'html5' => [ 70 | 'caption', 71 | 'comment-form', 72 | 'comment-list', 73 | 'gallery', 74 | 'search-form', 75 | ], 76 | 'post-thumbnails', 77 | 'responsive-embeds', 78 | // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 79 | // 'sticky-header', 80 | // phpcs:ignore Squiz.PHP.CommentedOutCode.Found 81 | // 'transparent-header', 82 | 'woocommerce', 83 | 'wc-product-gallery-zoom', 84 | 'wc-product-gallery-lightbox', 85 | 'wc-product-gallery-slider', 86 | 'wp-block-styles', 87 | ], 88 | 'remove' => [], 89 | ]; 90 | -------------------------------------------------------------------------------- /config/widget-areas.php: -------------------------------------------------------------------------------- 1 | 'front-page-' . $i, 20 | 'name' => __( 'Front Page ', 'genesis-starter-theme' ) . $i, 21 | /* translators: The front page widget area number. */ 22 | 'description' => \sprintf( __( 'The Front Page %s widget area.', 'genesis-starter-theme' ), $i ), 23 | ]; 24 | } 25 | 26 | return [ 27 | 'add' => \array_merge_recursive( 28 | [ 29 | [ 30 | 'id' => 'before-header', 31 | 'name' => __( 'Before Header', 'genesis-starter-theme' ), 32 | 'description' => __( 'The Before Header widget area.', 'genesis-starter-theme' ), 33 | ], 34 | [ 35 | 'id' => 'before-footer', 36 | 'name' => __( 'Before Footer', 'genesis-starter-theme' ), 37 | 'description' => __( 'The Before Footer widget area.', 'genesis-starter-theme' ), 38 | ], 39 | ], 40 | $front_page_widgets 41 | ), 42 | 'remove' => [ 43 | 'sidebar-alt', 44 | ], 45 | ]; 46 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | print_name(); 24 | * ``` 25 | * 26 | * If you have added additional classes to the `lib/classes` directory, you will need 27 | * to run the `composer dump --no-dev` command from the terminal to regenerate the 28 | * Composer autoloader files so that your new classes are loaded automatically. 29 | * 30 | * @package SeoThemes\GenesisStarterTheme 31 | */ 32 | class Example { 33 | 34 | /** 35 | * Example property. 36 | * 37 | * @var string 38 | */ 39 | private $name; 40 | 41 | /** 42 | * Example constructor. 43 | * 44 | * @since 3.5.0 45 | * 46 | * @return void 47 | */ 48 | public function __construct() { 49 | $this->name = __CLASS__; 50 | } 51 | 52 | /** 53 | * Example method. 54 | * 55 | * @since 3.5.0 56 | * 57 | * @return void 58 | */ 59 | public function print_name() { 60 | print esc_html( $this->name ); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /lib/functions/defaults.php: -------------------------------------------------------------------------------- 1 | ID ) ? $id->ID : false; 33 | 34 | } elseif ( is_category() ) { 35 | 36 | // phpcs:ignore WordPress.VIP.RestrictedFunctions.get_page_by_title_get_page_by_title 37 | $id = \get_page_by_title( 'category-' . \get_query_var( 'category_name' ), OBJECT, 'attachment' ); 38 | 39 | } elseif ( is_tag() ) { 40 | 41 | // phpcs:ignore WordPress.VIP.RestrictedFunctions.get_page_by_title_get_page_by_title 42 | $id = \get_page_by_title( 'tag-' . \get_query_var( 'tag' ), OBJECT, 'attachment' ); 43 | 44 | } elseif ( is_tax() ) { 45 | 46 | // phpcs:ignore WordPress.VIP.RestrictedFunctions.get_page_by_title_get_page_by_title 47 | $id = \get_page_by_title( 'term-' . \get_query_var( 'term' ), OBJECT, 'attachment' ); 48 | 49 | } elseif ( is_front_page() ) { 50 | $id = \get_option( 'page_on_front' ); 51 | 52 | } elseif ( is_home() ) { 53 | $id = \get_option( 'page_for_posts' ); 54 | 55 | } elseif ( is_search() ) { 56 | 57 | // phpcs:ignore WordPress.VIP.RestrictedFunctions.get_page_by_path_get_page_by_path 58 | $id = \get_page_by_path( 'search' ); 59 | $id = $id ? $id->ID : false; 60 | 61 | } elseif ( \is_404() ) { 62 | 63 | // phpcs:ignore WordPress.VIP.RestrictedFunctions.get_page_by_path_get_page_by_path 64 | $id = \get_page_by_path( 'error' ); 65 | $id = $id ? $id->ID : false; 66 | 67 | } elseif ( \is_singular() ) { 68 | $id = \get_the_id(); 69 | } 70 | 71 | if ( \is_object( $id ) ) { 72 | $url = \wp_get_attachment_image_url( $id->ID, 'hero' ); 73 | 74 | } elseif ( $id ) { 75 | $url = \get_the_post_thumbnail_url( $id, 'hero' ); 76 | } 77 | 78 | if ( ! $url ) { 79 | $url = \get_header_image(); 80 | } 81 | 82 | if ( $url ) { 83 | $selector = \get_theme_support( 'custom-header', 'header-selector' ); 84 | 85 | /** @noinspection CssUnknownTarget */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort 86 | return \printf( '' . "\n", esc_url( $url ) ); 87 | 88 | } else { 89 | return ''; 90 | } 91 | } 92 | 93 | /** 94 | * Register default custom header image. 95 | * 96 | * @since 3.5.0 97 | * 98 | * @return void 99 | */ 100 | register_default_headers( 101 | [ 102 | 'child' => [ 103 | 'url' => '%2$s/assets/img/hero.jpg', 104 | 'thumbnail_url' => '%2$s/assets/img/hero.jpg', 105 | 'description' => __( 'Hero Image', 'genesis-starter-theme' ), 106 | ], 107 | ] 108 | ); 109 | -------------------------------------------------------------------------------- /lib/functions/helpers.php: -------------------------------------------------------------------------------- 1 | $post ) { 30 | if ( ! isset( $post['featured_image'] ) || ! $post['featured_image'] ) { 31 | continue; 32 | } 33 | 34 | include_once ABSPATH . '/wp-admin/includes/file.php'; 35 | \WP_Filesystem(); 36 | global $wp_filesystem; 37 | 38 | $image = $post['featured_image']; 39 | $base = basename( $image ); 40 | $temp = \get_stylesheet_directory() . '/assets/temp/'; 41 | 42 | if ( ! is_dir( $temp ) ) { 43 | \wp_mkdir_p( $temp ); 44 | } 45 | 46 | if ( ! file_exists( $temp . $base ) && file_exists( $image ) ) { 47 | \copy( $image, $temp . $base ); 48 | } 49 | } 50 | } 51 | 52 | \add_action( 'genesis_onboarding_after_import_content', __NAMESPACE__ . '\delete_image_backup', 98 ); 53 | /** 54 | * Workaround to delete the backup onboarding featured images. 55 | * 56 | * @since 3.5.3 57 | * 58 | * @todo Remove when issue #2505 is fixed. 59 | * 60 | * @link https://github.com/studiopress/genesis/issues/2505 61 | * 62 | * @return void 63 | */ 64 | function delete_image_backup() { 65 | $content = \genesis_onboarding_config()['content']; 66 | $temp = \get_stylesheet_directory() . '/assets/temp/'; 67 | 68 | include_once ABSPATH . '/wp-admin/includes/file.php'; 69 | \WP_Filesystem(); 70 | global $wp_filesystem; 71 | 72 | foreach ( $content as $slug => $post ) { 73 | if ( ! isset( $post['featured_image'] ) || ! $post['featured_image'] ) { 74 | continue; 75 | } 76 | 77 | $image = $post['featured_image']; 78 | $base = basename( $image ); 79 | 80 | if ( ! file_exists( $image ) && file_exists( $temp . $base ) ) { 81 | \copy( $temp . $base, $image ); 82 | } 83 | } 84 | 85 | $wp_filesystem_direct = new \WP_Filesystem_Direct( false ); 86 | 87 | if ( is_dir( $temp ) ) { 88 | $wp_filesystem_direct->rmdir( $temp, true ); 89 | } 90 | } 91 | 92 | \add_action( 'genesis_onboarding_after_import_content', __NAMESPACE__ . '\update_thumbnail_ids', 99 ); 93 | /** 94 | * Workaround to fix Genesis multiple featured images issue. 95 | * 96 | * @since 3.5.3 97 | * 98 | * @todo Remove when #2506 is fixed. 99 | * 100 | * @link https://github.com/studiopress/genesis/issues/2506 101 | * 102 | * @return void 103 | */ 104 | function update_thumbnail_ids() { 105 | $posts = \get_posts( 106 | [ 107 | 'numberposts' => -1, 108 | 'post_type' => 'any', 109 | ] 110 | ); 111 | 112 | foreach ( $posts as $post ) { 113 | $thumbnail_id = \get_post_thumbnail_id( $post->ID ); 114 | 115 | if ( $thumbnail_id ) { 116 | $attachment = \get_page_by_title( $thumbnail_id, OBJECT, 'attachment' ); 117 | 118 | if ( ! $attachment ) { 119 | $attachments = \get_posts( 120 | [ 121 | 'numberposts' => -1, 122 | 'post_type' => 'attachment', 123 | ] 124 | ); 125 | 126 | foreach ( $attachments as $attachment_object ) { 127 | if ( false !== strpos( $post->post_title, $thumbnail_id ) ) { 128 | $attachment = $attachment_object; 129 | } 130 | } 131 | } 132 | 133 | if ( $attachment && $attachment->ID ) { 134 | \update_post_meta( $post->ID, '_thumbnail_id', $attachment->ID ); 135 | } 136 | } 137 | } 138 | } 139 | 140 | add_action( 'genesis_onboarding_after_import_content', __NAMESPACE__ . '\set_permalink_structure', 100 ); 141 | /** 142 | * Set permalink structure and flush rules after importing content. 143 | * 144 | * @since 3.5.3 145 | * 146 | * @return void 147 | */ 148 | function set_permalink_structure() { 149 | global $wp_rewrite; 150 | 151 | $wp_rewrite->set_permalink_structure( '/%postname%/' ); 152 | $wp_rewrite->flush_rules(); 153 | } 154 | -------------------------------------------------------------------------------- /lib/functions/setup.php: -------------------------------------------------------------------------------- 1 | '; 40 | $defaults['after_title'] = "\n"; 41 | } 42 | 43 | return $defaults; 44 | } 45 | 46 | 47 | \add_filter( 'genesis_widget_area_defaults', __NAMESPACE__ . '\widget_area_defaults', 10, 3 ); 48 | /** 49 | * Set default values for widget area output. 50 | * 51 | * @since 3.5.0 52 | * 53 | * @param array $defaults Widget area defaults. 54 | * @param string $id Widget area ID. 55 | * 56 | * @return array 57 | */ 58 | function widget_area_defaults( $defaults, $id ) { 59 | $hero = 'front-page-1' === $id ? ' hero-section" role="banner' : ''; 60 | 61 | if ( false !== strpos( $id, 'front-page-' ) ) { 62 | $defaults['before'] = \genesis_markup( 63 | [ 64 | 'open' => '
', 65 | 'context' => 'widget-area-wrap', 66 | 'echo' => false, 67 | 'params' => [ 68 | 'id' => $id, 69 | ], 70 | ] 71 | ); 72 | $defaults['after'] = \genesis_markup( 73 | [ 74 | 'close' => '
', 75 | 'context' => 'widget-area-wrap', 76 | 'echo' => false, 77 | ] 78 | ); 79 | } 80 | 81 | return $defaults; 82 | } 83 | 84 | \add_filter( 'genesis_widget_column_classes', __NAMESPACE__ . '\extra_widget_columns' ); 85 | /** 86 | * Add additional column class to plugin. 87 | * 88 | * @since 3.5.0 89 | * 90 | * @param array $column_classes Array of column classes. 91 | * 92 | * @return array Modified column classes. 93 | */ 94 | function extra_widget_columns( $column_classes ) { 95 | $column_classes[] = 'one-fifth'; 96 | $column_classes[] = 'two-fifths'; 97 | $column_classes[] = 'three-fifths'; 98 | $column_classes[] = 'four-fifths'; 99 | $column_classes[] = 'full-width'; 100 | 101 | return $column_classes; 102 | } 103 | -------------------------------------------------------------------------------- /lib/init.php: -------------------------------------------------------------------------------- 1 | 'custom', 32 | ], 33 | $atts, 34 | 'widget_area' 35 | ); 36 | 37 | return \do_action( $atts['id'] ); 38 | } 39 | -------------------------------------------------------------------------------- /lib/shortcodes/search-form.php: -------------------------------------------------------------------------------- 1 | 'footer-credits', 32 | ], 33 | $atts, 34 | 'widget_area' 35 | ); 36 | 37 | \ob_start(); 38 | \genesis_widget_area( 39 | $atts['id'], 40 | [ 41 | 'before' => '
', 42 | 'after' => '
', 43 | ] 44 | ); 45 | 46 | return \ob_get_clean(); 47 | } 48 | -------------------------------------------------------------------------------- /lib/structure/archive.php: -------------------------------------------------------------------------------- 1 | current_post || 0 === $wp_query->current_post % $count ) { 55 | $classes[] = 'first'; 56 | } 57 | 58 | return $classes; 59 | } 60 | 61 | \add_filter( 'get_the_content_more_link', __NAMESPACE__ . '\read_more_link' ); 62 | \add_filter( 'the_content_more_link', __NAMESPACE__ . '\read_more_link' ); 63 | /** 64 | * Modify the content limit read more link 65 | * 66 | * @since 3.5.0 67 | * 68 | * @param string $more_link_text Default more link text. 69 | * 70 | * @return string 71 | */ 72 | function read_more_link( $more_link_text ) { 73 | return \str_replace( [ '[', ']', '...' ], '', $more_link_text ); 74 | } 75 | 76 | \add_filter( 'genesis_author_box_gravatar_size', __NAMESPACE__ . '\author_box_gravatar' ); 77 | /** 78 | * Modifies size of the Gravatar in the author box. 79 | * 80 | * @since 2.2.3 81 | * 82 | * @param int $size Original icon size. 83 | * 84 | * @return int Modified icon size. 85 | */ 86 | function author_box_gravatar( $size ) { 87 | return \genesis_get_config( 'genesis-settings' )['avatar_size']; 88 | } 89 | 90 | \add_action( 'genesis_entry_header', __NAMESPACE__ . '\entry_wrap_open', 4 ); 91 | /** 92 | * Outputs the opening entry wrap markup. 93 | * 94 | * @since 3.5.0 95 | * 96 | * @return void 97 | */ 98 | function entry_wrap_open() { 99 | if ( is_type_archive() ) { 100 | \genesis_markup( 101 | [ 102 | 'open' => '
', 103 | 'context' => 'entry-wrap', 104 | ] 105 | ); 106 | } 107 | } 108 | 109 | \add_action( 'genesis_entry_footer', __NAMESPACE__ . '\entry_wrap_close', 15 ); 110 | /** 111 | * Outputs the closing entry wrap markup. 112 | * 113 | * @since 3.5.0 114 | * 115 | * @return void 116 | */ 117 | function entry_wrap_close() { 118 | if ( is_type_archive() ) { 119 | \genesis_markup( 120 | [ 121 | 'close' => '
', 122 | 'context' => 'entry-wrap', 123 | ] 124 | ); 125 | } 126 | } 127 | 128 | \add_filter( 'genesis_markup_entry-header_open', __NAMESPACE__ . '\widget_entry_wrap_open', 10, 2 ); 129 | /** 130 | * Outputs the opening entry wrap markup in widgets. 131 | * 132 | * @since 3.5.0 133 | * 134 | * @param string $open Opening markup. 135 | * @param array $args Markup args. 136 | * 137 | * @return string 138 | */ 139 | function widget_entry_wrap_open( $open, $args ) { 140 | if ( isset( $args['params']['is_widget'] ) && $args['params']['is_widget'] ) { 141 | $markup = \genesis_markup( 142 | [ 143 | 'open' => '
', 144 | 'context' => 'entry-wrap', 145 | 'echo' => false, 146 | ] 147 | ); 148 | 149 | $open = $markup . $open; 150 | } 151 | 152 | return $open; 153 | } 154 | -------------------------------------------------------------------------------- /lib/structure/comments.php: -------------------------------------------------------------------------------- 1 | '', 28 | ] 29 | ); 30 | } 31 | 32 | // Repositions the footer widgets. 33 | \remove_action( 'genesis_before_footer', 'genesis_footer_widget_areas' ); 34 | \add_action( 'genesis_footer', 'genesis_footer_widget_areas', 6 ); 35 | 36 | // Remove default footer. 37 | \remove_action( 'genesis_footer', 'genesis_do_footer' ); 38 | 39 | \add_action( 'genesis_footer', __NAMESPACE__ . '\do_footer_credits' ); 40 | /** 41 | * Output custom footer credits. 42 | * 43 | * @since 1.0.0 44 | * 45 | * @return void 46 | */ 47 | function do_footer_credits() { 48 | \genesis_markup( 49 | [ 50 | 'open' => '', 61 | 'context' => 'footer-credits', 62 | ] 63 | ); 64 | } 65 | -------------------------------------------------------------------------------- /lib/structure/header.php: -------------------------------------------------------------------------------- 1 | '
', 47 | 'after' => '
', 48 | ] 49 | ); 50 | } 51 | 52 | \add_filter( 'get_custom_logo', __NAMESPACE__ . '\custom_logo_size' ); 53 | /** 54 | * Add max-width style to custom logo. 55 | * 56 | * @since 3.5.0 57 | * 58 | * @param string $html Custom logo HTML output. 59 | * 60 | * @return string 61 | */ 62 | function custom_logo_size( $html ) { 63 | $width = \get_theme_support( 'custom-logo' )[0]['width']; 64 | $height = \get_theme_support( 'custom-logo' )[0]['height']; 65 | 66 | return \str_replace( ' 2 | 3 | PHPCS Ruleset for a WordPress Theme 4 | 5 | . 6 | 7 | node_modules/* 8 | 9 | */app/autoload.php 10 | */app/composer/* 11 | */app/tgmpa/* 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | */app/* 28 | 29 | 30 | */app/* 31 | 32 | 33 | 34 | page_landing.php 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | ./tests/phpunit/unit/ 19 | ./tests/phpunit/unit/*/*/fixtures/ 20 | 21 | 22 | 23 | 24 | 25 | . 26 | ./tests/TestCase.php 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seothemes/genesis-starter-theme/39d32f89ca0e3b9dd5fe59eb2923e210e7a8fb90/screenshot.png -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Theme Name: Genesis Starter Theme 3 | * Theme URI: https://genesisstartertheme.com/ 4 | * Author: SEO Themes 5 | * Author URI: https://seothemes.com/ 6 | * Description: Genesis starter theme with a modern development workflow. 7 | * Version: 3.5.3 8 | * License: GPL-2.0-or-later 9 | * License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 | * Text Domain: genesis-starter-theme 11 | * Domain Path: /assets/lang 12 | * Template: genesis 13 | */ 14 | -------------------------------------------------------------------------------- /superfish-args.js: -------------------------------------------------------------------------------- 1 | ( function( document, $, undefined ) { 2 | 3 | 'use strict'; 4 | 5 | $( document ).ready( function() { 6 | 7 | $( '.js-superfish' ).superfish( { 8 | 'delay': 100, 9 | 'animation': { 10 | 'opacity': 'show', 11 | 'height': 'show' 12 | }, 13 | 'speed': 3000, 14 | 'dropShadows': false 15 | } ); 16 | } ); 17 | 18 | }( document, jQuery ) ); 19 | 20 | -------------------------------------------------------------------------------- /templates/blocks.php: -------------------------------------------------------------------------------- 1 | assertTrue( \function_exists( 'do_action' ) ); 30 | } 31 | 32 | /** 33 | * Description of expected behavior. 34 | * 35 | * @since 3.5.0 36 | * 37 | * @return void 38 | */ 39 | public function test_wp_phpunit_is_loaded_via_composer() { 40 | $this->assertContains( 41 | 'vendor', 42 | getenv( 'WP_PHPUNIT__DIR' ) 43 | ); 44 | } 45 | 46 | /** 47 | * Description of expected behavior. 48 | * 49 | * @since 3.5.0 50 | * 51 | * @return void 52 | */ 53 | public function test_true_is_true() { 54 | $this->assertTrue( true ); 55 | $this->assertFalse( false ); 56 | } 57 | 58 | /** 59 | * Description of expected behavior. 60 | * 61 | * @since 3.5.0 62 | * 63 | * @return void 64 | */ 65 | public function test_if_genesis_is_active() { 66 | $this->assertTrue( \function_exists( 'genesis' ) ); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /tests/phpunit/integration/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | . 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/phpunit/unit/bootstrap.php: -------------------------------------------------------------------------------- 1 | echoArg(); 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /tests/phpunit/unit/lib/functions/class-helpers.php: -------------------------------------------------------------------------------- 1 | justReturn( CHILD_THEME_ROOT_DIR ); 47 | 48 | $this->assertSame( get_theme_dir(), \get_stylesheet_directory() ); 49 | $this->assertStringEndsWith( DIRECTORY_SEPARATOR, get_theme_dir() ); 50 | } 51 | 52 | /** 53 | * Test get_theme_url function. 54 | * 55 | * @since 3.5.0 56 | * 57 | * @return void 58 | */ 59 | public function test_get_theme_url() { 60 | Functions\when( 'get_stylesheet_directory_uri' )->justReturn( 'https://example.com/wp-content/themes/genesis-starter-theme/' ); 61 | 62 | $this->assertSame( get_theme_url(), \get_stylesheet_directory_uri() ); 63 | $this->assertStringEndsWith( DIRECTORY_SEPARATOR, get_theme_url() ); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /themeclaim.json: -------------------------------------------------------------------------------- 1 | { 2 | "from": { 3 | "Name": "Genesis Starter Theme", 4 | "Description": "Genesis starter theme with a modern development workflow.", 5 | "Namespace": "SeoThemes\\GenesisStarterTheme", 6 | "Uri": "https://genesisstartertheme.com/", 7 | "Author": "SEO Themes", 8 | "AuthorUri": "https://seothemes.com/" 9 | } 10 | } 11 | --------------------------------------------------------------------------------