├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug.md │ └── feature.md └── workflows │ ├── ci.yml │ └── pm.yml ├── .gitignore ├── .travis.yml ├── 404.php ├── Gruntfile.js ├── archive.php ├── assets ├── css │ ├── admin │ │ ├── block-editor.css │ │ ├── editor-style.css │ │ ├── editor-typography.css │ │ ├── meta-box.css │ │ └── style.css │ ├── all.css │ ├── all.min.css │ ├── components │ │ ├── comments.css │ │ ├── comments.min.css │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ ├── font-icons.css │ │ ├── font-icons.min.css │ │ ├── widget-areas.css │ │ └── widget-areas.min.css │ ├── main-rtl.css │ ├── main-rtl.min.css │ ├── main.css │ ├── main.min.css │ ├── mobile.css │ ├── mobile.min.css │ ├── style-rtl.css │ ├── style-rtl.min.css │ ├── style.css │ ├── style.min.css │ ├── unsemantic-grid.css │ └── unsemantic-grid.min.css ├── dist │ ├── block-editor.asset.php │ ├── block-editor.js │ ├── customizer.asset.php │ ├── customizer.js │ ├── dashboard.asset.php │ ├── dashboard.js │ ├── modal.asset.php │ ├── modal.js │ ├── style-customizer.css │ └── style-dashboard.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── generatepress.eot │ ├── generatepress.svg │ ├── generatepress.ttf │ ├── generatepress.woff │ └── generatepress.woff2 └── js │ ├── a11y.js │ ├── back-to-top.js │ ├── back-to-top.min.js │ ├── classList.js │ ├── classList.min.js │ ├── dropdown-click.js │ ├── dropdown-click.min.js │ ├── menu.js │ ├── menu.min.js │ ├── navigation-search.js │ └── navigation-search.min.js ├── comments.php ├── composer.json ├── content-404.php ├── content-link.php ├── content-page.php ├── content-single.php ├── content.php ├── footer-min.php ├── footer.php ├── functions.php ├── header-min.php ├── header.php ├── inc ├── block-editor.php ├── class-css.php ├── class-dashboard.php ├── class-html-attributes.php ├── class-rest.php ├── class-theme-update.php ├── class-typography-migration.php ├── class-typography.php ├── css-output.php ├── customizer.php ├── customizer │ ├── class-customize-field.php │ ├── controls │ │ ├── class-color-control.php │ │ ├── class-deprecated.php │ │ ├── class-range-control.php │ │ ├── class-react-control.php │ │ ├── class-typography-control.php │ │ ├── class-upsell-control.php │ │ ├── class-upsell-section.php │ │ ├── class-wrapper-control.php │ │ ├── css │ │ │ ├── selectWoo.min.css │ │ │ ├── slider-customizer.css │ │ │ ├── typography-customizer.css │ │ │ └── upsell-customizer.css │ │ └── js │ │ │ ├── customizer-controls.js │ │ │ ├── customizer-live-preview.js │ │ │ ├── postMessage.js │ │ │ ├── selectWoo.min.js │ │ │ ├── slider-control.js │ │ │ ├── typography-customizer.js │ │ │ └── upsell-control.js │ ├── customizer-helpers.php │ ├── deprecated.php │ ├── fields │ │ ├── back-to-top.php │ │ ├── body.php │ │ ├── buttons.php │ │ ├── content.php │ │ ├── footer-bar.php │ │ ├── footer-widgets.php │ │ ├── forms.php │ │ ├── header.php │ │ ├── primary-navigation.php │ │ ├── search-modal.php │ │ ├── sidebar-widgets.php │ │ └── top-bar.php │ └── helpers.php ├── dashboard.php ├── defaults.php ├── deprecated.php ├── general.php ├── markup.php ├── meta-box.php ├── plugin-compat.php ├── structure │ ├── archives.php │ ├── comments.php │ ├── featured-images.php │ ├── footer.php │ ├── header.php │ ├── navigation.php │ ├── post-meta.php │ ├── search-modal.php │ └── sidebars.php ├── theme-functions.php └── typography.php ├── index.php ├── no-results.php ├── package-lock.json ├── package.json ├── page.php ├── phpcs.xml.dist ├── phpunit.xml ├── readme.txt ├── sass ├── abstracts │ └── _variables.scss ├── admin │ └── header.scss ├── all.scss ├── base │ ├── _a11y.scss │ ├── _elements.scss │ ├── _reset-flex.scss │ └── _reset-float.scss ├── comments.scss ├── components │ ├── _font-icons.scss │ ├── _forms-flex.scss │ ├── _forms-float.scss │ ├── _icons.scss │ └── _links.scss ├── editor-typography.scss ├── font-icons.scss ├── layout │ ├── content │ │ ├── _alignments.scss │ │ ├── _comments.scss │ │ ├── _content-flex.scss │ │ ├── _content-layout-float.scss │ │ ├── _content-layout.scss │ │ ├── _featured-images-flex.scss │ │ ├── _featured-images-float.scss │ │ ├── _post-content.scss │ │ ├── _sidebars-flex.scss │ │ ├── _unsemantic-grid.scss │ │ ├── _widgets-flex.scss │ │ ├── _widgets-float.scss │ │ └── _widgets.scss │ ├── footer │ │ ├── _footer-flex.scss │ │ ├── _footer-float.scss │ │ └── _footer.scss │ ├── general │ │ ├── _clearings.scss │ │ ├── _compatibility-float.scss │ │ ├── _compatibility.scss │ │ └── _widget-areas-flex.scss │ ├── header │ │ ├── _header-flex.scss │ │ ├── _header-float.scss │ │ ├── _header.scss │ │ └── _top-bar-float.scss │ ├── mobile │ │ ├── _mobile-flex.scss │ │ └── _mobile-float.scss │ ├── navigation │ │ ├── _navigation-dropdowns.scss │ │ ├── _navigation-flex.scss │ │ ├── _navigation-float.scss │ │ ├── _navigation.scss │ │ ├── _post-navigation.scss │ │ └── _sidebar-navigation.scss │ └── rtl │ │ ├── rtl-flex.scss │ │ └── rtl-float.scss ├── main-rtl.scss ├── main.scss ├── mobile.scss ├── style-rtl.scss ├── style.scss └── widget-areas.scss ├── screenshot.png ├── search.php ├── searchform.php ├── sidebar-left.php ├── sidebar.php ├── single.php ├── src ├── block-editor.js ├── components │ ├── GeneratePressControl.js │ ├── advanced-select │ │ ├── index.js │ │ └── style.scss │ ├── color-picker │ │ ├── GlobalColorPicker.js │ │ ├── components │ │ │ ├── ColorButton.js │ │ │ ├── ColorInput.js │ │ │ ├── ColorPalette.js │ │ │ ├── PanelColorPicker.js │ │ │ └── VariableNameInput.js │ │ ├── index.js │ │ └── style.scss │ ├── dnd │ │ ├── DndItem.js │ │ ├── DndList.js │ │ └── index.js │ ├── range-control │ │ ├── index.js │ │ └── style.scss │ ├── unit-control │ │ ├── index.js │ │ ├── style.scss │ │ ├── unit-dropdown.js │ │ └── unit-list.js │ ├── unit-picker │ │ ├── index.js │ │ └── style.scss │ └── utility-label │ │ ├── index.js │ │ └── style.scss ├── customizer-controls │ ├── color-manager │ │ ├── GeneratePressColorManagerControlForm.js │ │ ├── components │ │ │ ├── ColorPlaceholder.js │ │ │ ├── ColorsList.js │ │ │ └── buttons.js │ │ ├── hooks │ │ │ └── useColors.js │ │ ├── index.js │ │ └── style.scss │ ├── color-picker │ │ ├── GeneratePressColorControlForm.js │ │ ├── index.js │ │ └── style.scss │ ├── font-manager │ │ ├── GeneratePressFontManagerControlForm.js │ │ ├── GeneratePressTypographyControlForm.js │ │ ├── TypographyList.js │ │ ├── TypographyList │ │ │ ├── Typography.js │ │ │ ├── Typography │ │ │ │ ├── DeleteButton.js │ │ │ │ ├── Label.js │ │ │ │ └── SettingsButton.js │ │ │ ├── TypographySettings.js │ │ │ └── TypographySettings │ │ │ │ ├── CustomSelector.js │ │ │ │ ├── DeviceInputGroup.js │ │ │ │ ├── FontFamily.js │ │ │ │ ├── FontSize.js │ │ │ │ ├── FontStyle.js │ │ │ │ ├── FontWeight.js │ │ │ │ ├── LetterSpacing.js │ │ │ │ ├── LineHeight.js │ │ │ │ ├── MarginBottom.js │ │ │ │ ├── TargetElement.js │ │ │ │ ├── TextTransform.js │ │ │ │ └── textDecoration.js │ │ ├── google-fonts.json │ │ ├── index.js │ │ ├── placeholders.js │ │ ├── style.scss │ │ └── utils.js │ └── title │ │ ├── GeneratePressTitleControl.js │ │ ├── GeneratePressTitleControlForm.js │ │ ├── index.js │ │ └── style.scss ├── customizer.js ├── dashboard.js ├── dashboard │ ├── go-pro │ │ ├── index.js │ │ ├── pro-items.js │ │ └── style.scss │ ├── index.js │ ├── reset │ │ ├── index.js │ │ └── style.scss │ ├── start-customizing │ │ ├── customize-items.js │ │ ├── index.js │ │ └── style.scss │ └── style.scss ├── extend │ ├── content-width │ │ └── index.js │ └── is-dark-theme │ │ └── index.js ├── modal.js ├── modal │ └── index.js ├── style.scss ├── tests │ └── getMigratedUnits.test.js └── utils │ ├── get-font-weights │ └── index.js │ ├── get-icon │ └── index.js │ ├── has-numeric-value │ └── index.js │ ├── react-render │ └── index.js │ └── reorder.js ├── style.css └── tests ├── GPTestCase.php ├── Unit ├── DynamicCSSTest.php └── TypographyCSSTest.php └── bootstrap.php /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | # WordPress Coding Standards 5 | # https://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 | 16 | [*.yml] 17 | indent_style = space 18 | indent_size = 2 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.min.js 2 | **/*.build.js 3 | **/node_modules/** 4 | **/vendor/** 5 | build 6 | coverage 7 | cypress 8 | node_modules 9 | vendor 10 | Gruntfile.js 11 | wp-color-picker-alpha.js 12 | wp-color-picker-alpha.min.js 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | *.js text eol=lf 4 | *.php text eol=lf 5 | *.txt text eol=lf 6 | *.css text eol=lf 7 | *.scss text eol=lf 8 | *.xml text eol=lf 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug reports 3 | about: Use for bugs, and weird behaviors. 4 | title: '' 5 | labels: 'bug' 6 | --- 7 | 8 | ### Description 9 | Describe the bug the best you can. 10 | 11 | ### Steps to reproduce 12 | 1. ... 13 | 14 | #### Actual behavior 15 | ... 16 | 17 | #### Expected behavior 18 | ... 19 | 20 | --- 21 | 22 | #### References 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature requests 3 | about: Use for features, enhancements, improvements. 4 | title: '' 5 | labels: 'feature' 6 | --- 7 | 8 | ### Description 9 | Describe your feature request. 10 | 11 | --- 12 | 13 | #### References 14 | -------------------------------------------------------------------------------- /.github/workflows/pm.yml: -------------------------------------------------------------------------------- 1 | name: Product management automations 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | 10 | add-label: 11 | name: Add triage label 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | - uses: actions-ecosystem/action-add-labels@v1 16 | with: 17 | labels: triage 18 | 19 | add-to-project: 20 | name: Add project 21 | runs-on: ubuntu-latest 22 | steps: 23 | - uses: actions/add-to-project@main 24 | with: 25 | project-url: ${{ secrets.PROJECT_URL }} 26 | github-token: ${{ secrets.TOKEN }} 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .sass-cache 3 | generatepress.zip 4 | generatepress 5 | *.zip 6 | vendor 7 | cghooks.lock 8 | composer.lock 9 | .DS_Store 10 | .phpunit.result.cache 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Travis CI (MIT License) configuration file for the GeneratePress WordPress theme. 2 | # @link https://travis-ci.org/ 3 | 4 | # For use with the GeneratePress WordPress theme. 5 | # @link https://github.com/tomusborne/generatepress 6 | 7 | # Tell Travis CI which OS and which distro to use. 8 | os: linux 9 | dist: xenial 10 | 11 | # Cache directories between builds. 12 | # @link https://docs.travis-ci.com/user/caching/#arbitrary-directories 13 | cache: 14 | directories: 15 | # Cache directory for npm. 16 | - $HOME/.npm 17 | # Cache directory for older Composer versions. 18 | - $HOME/.composer/cache/files 19 | # Cache directory for more recent Composer versions. 20 | - $HOME/.cache/composer/files 21 | 22 | # Declare project language. 23 | # @link https://docs.travis-ci.com/user/languages/php/ 24 | language: 25 | - php 26 | 27 | php: 28 | - 5.6 29 | - 7.0 30 | - 7.1 31 | - 7.2 32 | - 7.3 33 | 34 | jobs: 35 | fast_finish: true 36 | include: 37 | - php: 7.4 38 | env: SNIFF=1 39 | 40 | before_install: 41 | # Speed up build time by disabling Xdebug. 42 | - phpenv config-rm xdebug.ini || echo 'No xdebug config.' 43 | # Download and install the latest long-term support release of node. 44 | - if [[ "$SNIFF" == 1 ]]; then nvm install --lts; fi 45 | # Install Composer dependencies. 46 | - composer install 47 | # Install NPM dependencies. 48 | - if [[ "$SNIFF" == 1 ]]; then npm install; fi 49 | 50 | script: 51 | # Validate the composer.json file. 52 | # @link https://getcomposer.org/doc/03-cli.md#validate 53 | - composer validate --no-check-all --strict 54 | 55 | # Search for PHP syntax errors using PHP Parallel Lint. 56 | # @link https://github.com/php-parallel-lint/PHP-Parallel-Lint 57 | - composer lint:php 58 | 59 | # Check the PHP files with the coding standards documented in the phpcs.xml.dist file. 60 | - if [[ "$SNIFF" == 1 ]]; then composer lint:wpcs; fi 61 | 62 | # Receive notifications for build results. 63 | # @link https://docs.travis-ci.com/user/notifications/#configuring-email-notifications 64 | notifications: 65 | email: false 66 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 13 | 14 |
> 15 |
> 16 | 33 |
34 |
35 | 36 | 13 | 14 |
> 15 |
> 16 | 72 |
73 |
74 | 75 | div { 2 | padding: 12px; 3 | } 4 | #generate_layout_options_meta_box .inside { 5 | padding: 0; 6 | margin:0; 7 | } 8 | #generate-meta-box-container .generate-meta-box-menu { 9 | position: relative; 10 | float: left; 11 | list-style: none; 12 | width: 180px; 13 | line-height: 1em; 14 | margin: 0 0 -1px 0; 15 | padding: 0; 16 | background-color: #fafafa; 17 | border-right: 1px solid #eee; 18 | box-sizing: border-box; 19 | } 20 | 21 | #generate-meta-box-container .generate-meta-box-menu li { 22 | display: block; 23 | position: relative; 24 | margin: 0; 25 | padding: 0; 26 | line-height: 20px; 27 | } 28 | 29 | #generate-meta-box-container .generate-meta-box-menu li a { 30 | display: block; 31 | margin: 0; 32 | padding: 10px; 33 | line-height: 20px !important; 34 | text-decoration: none; 35 | border-bottom: 1px solid #eee; 36 | box-shadow: none; 37 | } 38 | 39 | #generate-meta-box-container .generate-meta-box-content { 40 | float: left; 41 | width: calc( 100% - 180px ); 42 | margin-left: -1px; 43 | border-left: 1px solid #eee; 44 | background-color: #fff; 45 | } 46 | 47 | #generate-meta-box-container { 48 | overflow: hidden; 49 | background: #fff; 50 | background: linear-gradient( 90deg, #fafafa 0%, #fafafa 180px, #fff 180px, #fff 100% ); 51 | } 52 | 53 | #generate-meta-box-container .current { 54 | position: relative; 55 | font-weight: bold; 56 | background-color: #e0e0e0; 57 | } 58 | 59 | #generate-meta-box-container .current a { 60 | color: #555; 61 | } 62 | 63 | #generate-meta-box-container label { 64 | font-weight: 400; 65 | display: inline-block; 66 | margin-bottom: 3px; 67 | } 68 | 69 | 70 | .generate-meta-box-menu li { 71 | display: inline-block; 72 | } 73 | 74 | #side-sortables #generate-meta-box-container .generate-meta-box-menu, 75 | #side-sortables #generate-meta-box-container .generate-meta-box-content { 76 | float: none; 77 | width: 100%; 78 | margin: 0; 79 | border: 0; 80 | } 81 | 82 | .edit-post-meta-boxes-area.is-side .generate-meta-box-content > div { 83 | display: block !important; 84 | } 85 | 86 | .edit-post-meta-boxes-area.is-side .generate-meta-box-menu { 87 | display: none; 88 | } 89 | 90 | #generate-meta-box-container label { 91 | display: none; 92 | } 93 | 94 | .edit-post-meta-boxes-area.is-side #generate-meta-box-container label.generate-layout-metabox-section-title { 95 | display: block; 96 | font-weight: 500; 97 | margin-bottom: 5px; 98 | } 99 | -------------------------------------------------------------------------------- /assets/css/components/comments.css: -------------------------------------------------------------------------------- 1 | .comment-content a { 2 | word-wrap: break-word; 3 | } 4 | 5 | .bypostauthor { 6 | display: block; 7 | } 8 | 9 | .comment, 10 | .comment-list { 11 | list-style-type: none; 12 | padding: 0; 13 | margin: 0; 14 | } 15 | 16 | .comment-author-info { 17 | display: inline-block; 18 | vertical-align: middle; 19 | } 20 | 21 | .comment-meta .avatar { 22 | float: left; 23 | margin-right: 10px; 24 | border-radius: 50%; 25 | } 26 | 27 | .comment-author cite { 28 | font-style: normal; 29 | font-weight: bold; 30 | } 31 | 32 | .entry-meta.comment-metadata { 33 | margin-top: 0; 34 | } 35 | 36 | .comment-content { 37 | margin-top: 1.5em; 38 | } 39 | 40 | .comment-respond { 41 | margin-top: 0; 42 | } 43 | 44 | .comment-form > .form-submit { 45 | margin-bottom: 0; 46 | } 47 | 48 | .comment-form input, 49 | .comment-form-comment { 50 | margin-bottom: 10px; 51 | } 52 | 53 | .comment-form-comment textarea { 54 | resize: vertical; 55 | } 56 | 57 | .comment-form #author, 58 | .comment-form #email, 59 | .comment-form #url { 60 | display: block; 61 | } 62 | 63 | .comment-metadata .edit-link:before { 64 | display: none; 65 | } 66 | 67 | .comment-body { 68 | padding: 30px 0; 69 | } 70 | 71 | .comment-content { 72 | padding: 30px; 73 | border: 1px solid rgba(0, 0, 0, 0.05); 74 | } 75 | 76 | .depth-1.parent > .children { 77 | border-bottom: 1px solid rgba(0, 0, 0, 0.05); 78 | } 79 | 80 | .comment .children { 81 | padding-left: 30px; 82 | margin-top: -30px; 83 | border-left: 1px solid rgba(0, 0, 0, 0.05); 84 | } 85 | 86 | .pingback .comment-body, 87 | .trackback .comment-body { 88 | border-bottom: 1px solid rgba(0, 0, 0, 0.05); 89 | } 90 | 91 | .pingback .edit-link { 92 | font-size: 13px; 93 | } 94 | 95 | .comment-content p:last-child { 96 | margin-bottom: 0; 97 | } 98 | 99 | .comment-list > .comment:first-child { 100 | padding-top: 0; 101 | margin-top: 0; 102 | border-top: 0; 103 | } 104 | 105 | ol.comment-list { 106 | margin-bottom: 1.5em; 107 | } 108 | 109 | .comment-form-cookies-consent { 110 | display: flex; 111 | align-items: center; 112 | } 113 | 114 | .comment-form-cookies-consent input { 115 | margin-right: 0.5em; 116 | margin-bottom: 0; 117 | } 118 | 119 | .one-container .comments-area { 120 | margin-top: 1.5em; 121 | } 122 | 123 | .comment-content .reply { 124 | font-size: 85%; 125 | } 126 | 127 | #cancel-comment-reply-link { 128 | padding-left: 10px; 129 | } 130 | -------------------------------------------------------------------------------- /assets/css/components/comments.min.css: -------------------------------------------------------------------------------- 1 | .comment-content a{word-wrap:break-word}.bypostauthor{display:block}.comment,.comment-list{list-style-type:none;padding:0;margin:0}.comment-author-info{display:inline-block;vertical-align:middle}.comment-meta .avatar{float:left;margin-right:10px;border-radius:50%}.comment-author cite{font-style:normal;font-weight:700}.entry-meta.comment-metadata{margin-top:0}.comment-content{margin-top:1.5em}.comment-respond{margin-top:0}.comment-form>.form-submit{margin-bottom:0}.comment-form input,.comment-form-comment{margin-bottom:10px}.comment-form-comment textarea{resize:vertical}.comment-form #author,.comment-form #email,.comment-form #url{display:block}.comment-metadata .edit-link:before{display:none}.comment-body{padding:30px 0}.comment-content{padding:30px;border:1px solid rgba(0,0,0,.05)}.depth-1.parent>.children{border-bottom:1px solid rgba(0,0,0,.05)}.comment .children{padding-left:30px;margin-top:-30px;border-left:1px solid rgba(0,0,0,.05)}.pingback .comment-body,.trackback .comment-body{border-bottom:1px solid rgba(0,0,0,.05)}.pingback .edit-link{font-size:13px}.comment-content p:last-child{margin-bottom:0}.comment-list>.comment:first-child{padding-top:0;margin-top:0;border-top:0}ol.comment-list{margin-bottom:1.5em}.comment-form-cookies-consent{display:flex;align-items:center}.comment-form-cookies-consent input{margin-right:.5em;margin-bottom:0}.one-container .comments-area{margin-top:1.5em}.comment-content .reply{font-size:85%}#cancel-comment-reply-link{padding-left:10px} -------------------------------------------------------------------------------- /assets/css/components/font-icons.min.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:GeneratePress;src:url("../../fonts/generatepress.eot");src:url("../../fonts/generatepress.eot#iefix") format("embedded-opentype"),url("../../fonts/generatepress.woff2") format("woff2"),url("../../fonts/generatepress.woff") format("woff"),url("../../fonts/generatepress.ttf") format("truetype"),url("../../fonts/generatepress.svg#GeneratePress") format("svg");font-weight:400;font-style:normal}.cat-links:before,.comments-link:before,.dropdown-menu-toggle:before,.generate-back-to-top:before,.menu-toggle:before,.nav-next .next:before,.nav-previous .prev:before,.search-form .search-submit:before,.search-item a:before,.tags-links:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.cat-links:before,.comments-link:before,.nav-next .next:before,.nav-previous .prev:before,.tags-links:before{opacity:.7}.menu-toggle:before{content:"\f0c9";font-family:GeneratePress;width:1.28571429em;text-align:center;display:inline-block}.toggled .menu-toggle:before{content:"\f00d"}.main-navigation.toggled .sfHover>a .dropdown-menu-toggle:before{content:"\f106"}.search-item a:before{content:"\f002";font-family:GeneratePress;width:1.28571429em;text-align:center;display:inline-block}.search-item.close-search a:before{content:"\f00d"}.widget .search-form button:before{content:"\f002";font-family:GeneratePress}.dropdown-menu-toggle:before{content:"\f107";font-family:GeneratePress;display:inline-block;width:.8em;text-align:left}nav:not(.toggled) ul ul .dropdown-menu-toggle:before{text-align:right}.dropdown-hover .sub-menu-left:not(.toggled) ul ul .dropdown-menu-toggle:before{transform:rotate(180deg)}.dropdown-click .menu-item-has-children.sfHover>a .dropdown-menu-toggle:before{content:"\f106"}.dropdown-hover nav:not(.toggled) ul ul .dropdown-menu-toggle:before{content:"\f105"}.entry-header .cat-links:before,.entry-header .comments-link:before,.entry-header .tags-links:before{display:none}.cat-links:before,.comments-link:before,.nav-next .next:before,.nav-previous .prev:before,.tags-links:before{font-family:GeneratePress;text-decoration:inherit;position:relative;margin-right:.6em;width:13px;text-align:center;display:inline-block}.cat-links:before{content:"\f07b"}.tags-links:before{content:"\f02c"}.comments-link:before{content:"\f086"}.nav-previous .prev:before{content:"\f104"}.nav-next .next:before{content:"\f105"}.dropdown-hover .inside-right-sidebar .dropdown-menu-toggle:before,.dropdown-hover.both-right .inside-left-sidebar .dropdown-menu-toggle:before{content:"\f104"}.dropdown-hover .inside-left-sidebar .dropdown-menu-toggle:before,.dropdown-hover.both-left .inside-right-sidebar .dropdown-menu-toggle:before{content:"\f105"}.generate-back-to-top:before{content:"\f106";font-family:GeneratePress}.search-form .search-submit:before{content:"\f002";font-family:GeneratePress;width:1.28571429em;text-align:center;display:inline-block} -------------------------------------------------------------------------------- /assets/css/main-rtl.min.css: -------------------------------------------------------------------------------- 1 | caption,td,th{text-align:right}.header-aligned-right:not([class*=nav-float-]) .inside-header{justify-content:flex-start}.header-aligned-left:not([class*=nav-float-]) .inside-header{justify-content:flex-end}.header-aligned-right:not([class*=nav-float-]) .header-widget{order:10}.header-aligned-left:not([class*=nav-float-]) .header-widget{order:-10}.site-logo+.site-branding{order:-1}.nav-float-right #site-navigation{order:-5}.nav-float-right #site-navigation.has-active-search,.nav-float-right #site-navigation.toggled{order:10}.nav-float-right .header-widget{order:-10}.nav-float-left #site-navigation{order:5}.nav-float-left .header-widget,.nav-float-left .mobile-menu-control-wrapper{order:10}.mobile-menu-control-wrapper{margin-right:auto;margin-left:0}.nav-align-right .inside-navigation{justify-content:flex-start}.nav-align-left .inside-navigation{justify-content:flex-end}.menu-item-has-children .dropdown-menu-toggle{float:left!important}.main-navigation ul ul{text-align:right}.sidebar .menu-item-has-children .dropdown-menu-toggle,nav ul ul .menu-item-has-children .dropdown-menu-toggle{float:left}.comment-meta .avatar{float:right;margin-left:10px}.page-header .avatar{float:right;margin-left:1.5em}.slideout-navigation .menu-item-has-children .dropdown-menu-toggle{float:left}.dropdown-click #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child,.slideout-desktop.dropdown-hover #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child{padding-left:0}.comment .children{padding-right:30px;border-right:1px solid rgba(0,0,0,.05)}.main-navigation .main-nav ul li.menu-item-has-children>a,.secondary-navigation .main-nav ul li.menu-item-has-children>a{padding-left:0}nav:not(.toggled) ul ul .menu-item-has-children .dropdown-menu-toggle{padding-left:15px}nav:not(.toggled) .menu-item-has-children .dropdown-menu-toggle{padding-right:10px}.main-navigation{padding-right:0}ol,ul{margin:0 3em 1.5em 0}li>ol,li>ul{margin-right:1.5em}.menu-toggle .mobile-menu{margin-right:5px;margin-left:0}.widget_categories .children{margin-right:1.5em}.widget_nav_menu ul ul,.widget_pages ul ul{margin-right:1em}.cat-links:before,.comments-link:before,.nav-next .next:before,.nav-previous .prev:before,.tags-links:before{margin-left:.6em;margin-right:0}.entry-meta .gp-icon{margin-right:0;margin-left:.6em}.menu-toggle,.nav-search-enabled .main-navigation .menu-toggle{text-align:right}.rtl .navigation-search{left:auto;right:-99999px}.rtl .navigation-search.nav-search-active{right:0}.main-navigation.toggled .main-nav li{text-align:right}.both-left #left-sidebar,.both-sidebars #left-sidebar,.left-sidebar .sidebar{order:10}.both-left #right-sidebar{order:5}.both-right #left-sidebar{order:-5}.both-right #right-sidebar,.both-sidebars #right-sidebar,.right-sidebar #right-sidebar{order:-10}@media (max-width:768px){.site-content .content-area{order:-20}} -------------------------------------------------------------------------------- /assets/css/style-rtl.min.css: -------------------------------------------------------------------------------- 1 | caption,td,th{text-align:right}.menu-item-has-children .dropdown-menu-toggle{float:left!important}.main-navigation li{float:right;text-align:right}.main-navigation li.search-item,.nav-aligned-right.nav-below-header .main-navigation .menu>li.search-item{float:left}.nav-left-sidebar .main-navigation li.search-item.current-menu-item,.nav-right-sidebar .main-navigation li.search-item.current-menu-item{float:left}.rtl.nav-aligned-left .main-navigation .menu>li{float:none;display:inline-block}.rtl.nav-aligned-left .main-navigation ul{letter-spacing:-.31em;font-size:1em}.rtl.nav-aligned-left .main-navigation ul li{letter-spacing:normal}.rtl.nav-aligned-left .main-navigation{text-align:left}.sidebar .menu-item-has-children .dropdown-menu-toggle,nav ul ul .menu-item-has-children .dropdown-menu-toggle{float:left}.comment-meta .avatar{float:right;margin-left:10px}.page-header .avatar{float:right;margin-left:1.5em}.header-widget{float:left}.sf-menu>li.menu-item-float-right{float:left!important}.slideout-navigation .menu-item-has-children .dropdown-menu-toggle{float:left}.dropdown-click #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child,.slideout-desktop.dropdown-hover #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child{padding-left:0}.comment .children{padding-right:30px;border-right:1px solid rgba(0,0,0,.05)}.main-navigation .main-nav ul li.menu-item-has-children>a,.secondary-navigation .main-nav ul li.menu-item-has-children>a{padding-left:0}nav:not(.toggled) ul ul .menu-item-has-children .dropdown-menu-toggle{padding-left:15px}nav:not(.toggled) .menu-item-has-children .dropdown-menu-toggle{padding-right:10px}.main-navigation ul,.menu-toggle li.search-item{padding-right:0}ol,ul{margin:0 3em 1.5em 0}li>ol,li>ul{margin-right:1.5em}.menu-toggle .mobile-menu{margin-right:5px;margin-left:0}.widget_categories .children{margin-right:1.5em}.widget_nav_menu ul ul,.widget_pages ul ul{margin-right:1em}.cat-links:before,.comments-link:before,.nav-next .next:before,.nav-previous .prev:before,.tags-links:before{margin-left:.6em;margin-right:0}.menu-toggle,.nav-search-enabled .main-navigation .menu-toggle{text-align:right}.main-navigation .mobile-bar-items{float:left;left:0;right:auto}.rtl .navigation-search{left:auto;right:-999999px}.rtl .navigation-search.nav-search-active{right:0}.rtl .footer-bar .widget_nav_menu li{direction:rtl;float:right}.main-navigation.toggled .main-nav li{text-align:right!important}.entry-meta .gp-icon{margin-right:0;margin-left:.6em}@media (max-width:768px){.rtl .mobile-bar-items{position:absolute;left:0;top:0}}@media (min-width:768px){.inside-footer-widgets>div{float:right}} -------------------------------------------------------------------------------- /assets/dist/block-editor.asset.php: -------------------------------------------------------------------------------- 1 | array('wp-data', 'wp-dom-ready', 'wp-editor', 'wp-element', 'wp-plugins'), 'version' => '24bb9110ccf231b1e49f'); 2 | -------------------------------------------------------------------------------- /assets/dist/customizer.asset.php: -------------------------------------------------------------------------------- 1 | array('lodash', 'react', 'react-dom', 'wp-components', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => '79795830803e662a540e'); 2 | -------------------------------------------------------------------------------- /assets/dist/dashboard.asset.php: -------------------------------------------------------------------------------- 1 | array('react', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => '4fb4e80889b2568d409a'); 2 | -------------------------------------------------------------------------------- /assets/dist/modal.asset.php: -------------------------------------------------------------------------------- 1 | array(), 'version' => 'b9041bb3f75d06782df7'); 2 | -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/generatepress.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/generatepress.eot -------------------------------------------------------------------------------- /assets/fonts/generatepress.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/generatepress.ttf -------------------------------------------------------------------------------- /assets/fonts/generatepress.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/generatepress.woff -------------------------------------------------------------------------------- /assets/fonts/generatepress.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/assets/fonts/generatepress.woff2 -------------------------------------------------------------------------------- /assets/js/a11y.js: -------------------------------------------------------------------------------- 1 | ( function() { 2 | 'use strict'; 3 | 4 | // Check if the browser supports querySelector and addEventListener 5 | if ( 'querySelector' in document && 'addEventListener' in window ) { 6 | // Get the body element 7 | var body = document.body; 8 | 9 | // Add event listener for pointer interactions with passive option 10 | body.addEventListener( 'pointerdown', function() { 11 | body.classList.add( 'using-mouse' ); 12 | }, { passive: true } ); 13 | 14 | // Add event listener for keyboard interactions 15 | body.addEventListener( 'keydown', function() { 16 | body.classList.remove( 'using-mouse' ); 17 | }, { passive: true } ); 18 | } 19 | }() ); 20 | -------------------------------------------------------------------------------- /assets/js/back-to-top.js: -------------------------------------------------------------------------------- 1 | ( function() { 2 | 'use strict'; 3 | 4 | // Feature Test 5 | if ( 'querySelector' in document && 'addEventListener' in window ) { 6 | var goTopBtn = document.querySelector( '.generate-back-to-top' ); 7 | 8 | var trackScroll = function() { 9 | var scrolled = window.pageYOffset; 10 | var coords = goTopBtn.getAttribute( 'data-start-scroll' ); 11 | 12 | if ( scrolled > coords ) { 13 | goTopBtn.classList.add( 'generate-back-to-top__show' ); 14 | } 15 | 16 | if ( scrolled < coords ) { 17 | goTopBtn.classList.remove( 'generate-back-to-top__show' ); 18 | } 19 | }; 20 | 21 | // Function to animate the scroll 22 | var smoothScroll = function( anchor, duration ) { 23 | // Calculate how far and how fast to scroll 24 | var startLocation = window.pageYOffset; 25 | var endLocation = document.body.offsetTop; 26 | var distance = endLocation - startLocation; 27 | var increments = distance / ( duration / 16 ); 28 | var stopAnimation; 29 | 30 | // Scroll the page by an increment, and check if it's time to stop 31 | var animateScroll = function() { 32 | window.scrollBy( 0, increments ); 33 | stopAnimation(); 34 | }; 35 | 36 | // Stop animation when you reach the anchor OR the top of the page 37 | stopAnimation = function() { 38 | var travelled = window.pageYOffset; 39 | if ( travelled <= ( endLocation || 0 ) ) { 40 | clearInterval( runAnimation ); 41 | document.activeElement.blur(); 42 | } 43 | }; 44 | 45 | // Loop the animation function 46 | var runAnimation = setInterval( animateScroll, 16 ); 47 | }; 48 | 49 | if ( goTopBtn ) { 50 | // Show the button when scrolling down. 51 | window.addEventListener( 'scroll', trackScroll ); 52 | 53 | // Scroll back to top when clicked. 54 | goTopBtn.addEventListener( 'click', function( e ) { 55 | e.preventDefault(); 56 | 57 | if ( generatepressBackToTop.smooth ) { 58 | smoothScroll( document.body, goTopBtn.getAttribute( 'data-scroll-speed' ) || 400 ); 59 | } else { 60 | window.scrollTo( 0, 0 ); 61 | } 62 | }, false ); 63 | } 64 | } 65 | }() ); 66 | -------------------------------------------------------------------------------- /assets/js/back-to-top.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var c;"querySelector"in document&&"addEventListener"in window&&(c=document.querySelector(".generate-back-to-top"),c)&&(window.addEventListener("scroll",function(){var e=window.pageYOffset,t=c.getAttribute("data-start-scroll");te;e++)if(e in this&&this[e]===t)return e;return-1},a=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},c=function(t,e){if(""===e)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return o.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],i=0,s=n.length;s>i;i++)this.push(n[i]);this._updateClassName=function(){t.setAttribute("class",""+this)}},u=l[n]=[],h=function(){return new l(this)};if(a[n]=Error[n],u.item=function(t){return this[t]||null},u.contains=function(t){return t+="",-1!==c(this,t)},u.add=function(){var t,e=arguments,n=0,i=e.length,s=!1;do t=e[n]+"",-1===c(this,t)&&(this.push(t),s=!0);while(++nn;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}()); 3 | -------------------------------------------------------------------------------- /assets/js/dropdown-click.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var a=document.body,t=function(e,t){e.preventDefault(),e.stopPropagation();var e=(t=t||this).closest("li"),n=t.closest("nav").querySelectorAll("ul.toggled-on");if(n&&!t.closest("ul").classList.contains("toggled-on")&&!t.closest("li").classList.contains("sfHover"))for(var r=0;r a");if(a.classList.contains("dropdown-click-menu-item"))for(r=0;r a .dropdown-menu-toggle"),r=0;r a.menu-item-dropdown-click");for(r=0;r a");for(r=0;r=5.6" 19 | }, 20 | "require-dev": { 21 | "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", 22 | "wptrt/wpthemereview": "^0.2.1", 23 | "php-parallel-lint/php-parallel-lint": "^1.2.0", 24 | "phpcompatibility/phpcompatibility-wp": "^2.1.0", 25 | "wp-cli/i18n-command": "^2.2.5", 26 | "phpunit/phpunit": "^8.0", 27 | "brain/monkey": "^2.6" 28 | }, 29 | "scripts": { 30 | "php": [ 31 | "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --standard=phpcs.xml.dist --runtime-set testVersion 5.6-", 32 | "@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor ." 33 | ], 34 | "lint:wpcs": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs", 35 | "lint:php": "@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor .", 36 | "make-pot": "wp i18n make-pot . languages/_s.pot", 37 | "test": "phpunit" 38 | }, 39 | "support": { 40 | "issues": "https://github.com/tomusborne/generatepress/issues", 41 | "source": "https://github.com/tomusborne/generatepress" 42 | }, 43 | "config": { 44 | "allow-plugins": { 45 | "dealerdirect/phpcodesniffer-composer-installer": true 46 | } 47 | }, 48 | "autoload": { 49 | "classmap": [ 50 | "inc/" 51 | ] 52 | }, 53 | "autoload-dev": { 54 | "psr-4": { 55 | "GeneratePress\\Tests\\": "tests/" 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /content-404.php: -------------------------------------------------------------------------------- 1 | 12 |
13 | 14 | 24 | 25 |
> 26 | 27 |

28 |
29 | 30 | 46 | 47 |
> 48 | %s

', 51 | apply_filters( 'generate_404_text', __( 'It looks like nothing was found at this location. Maybe try searching?', 'generatepress' ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- HTML is allowed in filter here. 52 | ); 53 | 54 | get_search_form(); 55 | ?> 56 |
57 | 58 | 66 | 67 |
68 | -------------------------------------------------------------------------------- /content-link.php: -------------------------------------------------------------------------------- 1 | 12 |
> 13 |
14 | 26 |
> 27 | 50 |
51 | 71 | 72 |
> 73 | 74 |
75 | 76 | 77 | 78 |
> 79 | '', 86 | ) 87 | ); 88 | ?> 89 |
90 | 91 | 110 |
111 |
112 | -------------------------------------------------------------------------------- /content-page.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
> 14 |
15 | 27 | 28 |
> 29 | 50 |
51 | 52 | 70 | 71 |
> 72 | '', 79 | ) 80 | ); 81 | ?> 82 |
83 | 84 | 92 |
93 |
94 | -------------------------------------------------------------------------------- /content-single.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
> 14 |
15 | 27 |
> 28 | 51 |
52 | 70 | 71 |
> 72 | '', 79 | ) 80 | ); 81 | ?> 82 |
83 | 84 | 101 |
102 |
103 | -------------------------------------------------------------------------------- /content.php: -------------------------------------------------------------------------------- 1 | 12 |
> 13 |
14 | 26 |
> 27 | 50 |
51 | 71 | 72 |
> 73 | 74 |
75 | 76 | 77 | 78 |
> 79 | '', 86 | ) 87 | ); 88 | ?> 89 |
90 | 91 | 110 |
111 |
112 | -------------------------------------------------------------------------------- /footer-min.php: -------------------------------------------------------------------------------- 1 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 24 | 25 |
> 26 | 51 |
52 | 53 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /header-min.php: -------------------------------------------------------------------------------- 1 | 13 | > 14 | 15 | 16 | 17 | 18 | 19 | > 20 | 13 | > 14 | 15 | 16 | 17 | 18 | 19 | > 20 | 57 | 58 |
> 59 | 67 |
> 68 | json['choices'] = $this->choices; 34 | } 35 | 36 | /** 37 | * Empty JS template. 38 | * 39 | * @access public 40 | * @since 1.0.0 41 | * @return void 42 | */ 43 | public function content_template() {} 44 | } 45 | -------------------------------------------------------------------------------- /inc/customizer/controls/class-react-control.php: -------------------------------------------------------------------------------- 1 | json['choices'] = $this->choices; 34 | } 35 | 36 | /** 37 | * Empty JS template. 38 | * 39 | * @access public 40 | * @since 1.0.0 41 | * @return void 42 | */ 43 | public function content_template() {} 44 | 45 | /** 46 | * Empty PHP template. 47 | * 48 | * @access public 49 | * @since 1.0.0 50 | * @return void 51 | */ 52 | public function render_content() {} 53 | } 54 | -------------------------------------------------------------------------------- /inc/customizer/controls/class-upsell-control.php: -------------------------------------------------------------------------------- 1 | json['url'] = esc_url( $this->url ); 66 | } 67 | 68 | /** 69 | * Render content. 70 | */ 71 | public function content_template() { 72 | ?> 73 |

{{{ data.description }}}

74 | 75 | {{ data.label }} 76 | 77 | pro_text; 54 | $json['pro_url'] = esc_url( $this->pro_url ); 55 | $json['id'] = $this->id; 56 | return $json; 57 | } 58 | 59 | /** 60 | * Render content. 61 | */ 62 | protected function render_template() { 63 | ?> 64 |
  • 65 |

    {{ data.pro_text }}

    66 |
  • 67 | json['choices'] = $this->choices; 32 | } 33 | 34 | /** 35 | * Empty JS template. 36 | * 37 | * @access public 38 | * @since 1.0.0 39 | * @return void 40 | */ 41 | public function content_template() {} 42 | 43 | /** 44 | * Empty PHP template. 45 | * 46 | * @access public 47 | * @since 1.0.0 48 | * @return void 49 | */ 50 | public function render_content() { 51 | $html_attributes = array( 52 | 'class' => 'generate-customize-control-wrapper', 53 | 'id' => $this->id, 54 | 'data-wrapper-type' => $this->choices['type'], 55 | ); 56 | 57 | if ( ! empty( $this->choices['class'] ) ) { 58 | $html_attributes['class'] .= ' ' . $this->choices['class']; 59 | } 60 | 61 | $attributes_string = ''; 62 | 63 | foreach ( $html_attributes as $attribute => $value ) { 64 | $attributes_string .= $attribute . '="' . esc_attr( $value ) . '" '; 65 | } 66 | 67 | $this->toggleIdScript(); 68 | ?> 69 |
    > 70 | choices['items'] as $wrapper ) { 72 | ?> 73 |
    74 | 77 |
    78 | choices['toggleId'] ) ) : 86 | ?> 87 | 94 | 'generate_colors_section', 16 | 'title' => __( 'Search Modal', 'generatepress' ), 17 | 'choices' => array( 18 | 'toggleId' => 'search-modal-colors', 19 | ), 20 | 'active_callback' => function() { 21 | if ( generate_get_option( 'nav_search_modal' ) ) { 22 | return true; 23 | } 24 | 25 | return false; 26 | }, 27 | ) 28 | ); 29 | 30 | GeneratePress_Customize_Field::add_field( 31 | 'generate_settings[search_modal_bg_color]', 32 | 'GeneratePress_Customize_Color_Control', 33 | array( 34 | 'default' => $color_defaults['search_modal_bg_color'], 35 | 'sanitize_callback' => 'generate_sanitize_rgba_color', 36 | 'transport' => 'postMessage', 37 | ), 38 | array( 39 | 'label' => __( 'Field Background', 'generatepress' ), 40 | 'section' => 'generate_colors_section', 41 | 'choices' => array( 42 | 'toggleId' => 'search-modal-colors', 43 | ), 44 | 'output' => array( 45 | array( 46 | 'element' => ':root', 47 | 'property' => '--gp-search-modal-bg-color', 48 | ), 49 | ), 50 | ) 51 | ); 52 | 53 | GeneratePress_Customize_Field::add_field( 54 | 'generate_settings[search_modal_text_color]', 55 | 'GeneratePress_Customize_Color_Control', 56 | array( 57 | 'default' => $color_defaults['search_modal_text_color'], 58 | 'sanitize_callback' => 'generate_sanitize_rgba_color', 59 | 'transport' => 'postMessage', 60 | ), 61 | array( 62 | 'label' => __( 'Field Text', 'generatepress' ), 63 | 'section' => 'generate_colors_section', 64 | 'choices' => array( 65 | 'toggleId' => 'search-modal-colors', 66 | ), 67 | 'output' => array( 68 | array( 69 | 'element' => ':root', 70 | 'property' => '--gp-search-modal-text-color', 71 | ), 72 | ), 73 | ) 74 | ); 75 | 76 | GeneratePress_Customize_Field::add_field( 77 | 'generate_settings[search_modal_overlay_bg_color]', 78 | 'GeneratePress_Customize_Color_Control', 79 | array( 80 | 'default' => $color_defaults['search_modal_overlay_bg_color'], 81 | 'sanitize_callback' => 'generate_sanitize_rgba_color', 82 | 'transport' => 'postMessage', 83 | ), 84 | array( 85 | 'label' => __( 'Overlay Background', 'generatepress' ), 86 | 'section' => 'generate_colors_section', 87 | 'choices' => array( 88 | 'toggleId' => 'search-modal-colors', 89 | ), 90 | 'output' => array( 91 | array( 92 | 'element' => ':root', 93 | 'property' => '--gp-search-modal-overlay-bg-color', 94 | ), 95 | ), 96 | ) 97 | ); 98 | -------------------------------------------------------------------------------- /inc/structure/sidebars.php: -------------------------------------------------------------------------------- 1 | 72 | 75 | 76 | 82 | 19 | 20 |
    > 21 |
    > 22 | 69 |
    70 |
    71 | 72 | 12 | 13 |
    14 |
    15 | 25 | 26 |
    > 27 |

    28 |
    29 | 30 | 40 | 41 |
    42 | 43 | 44 | 45 |

    46 | Get started here.', 'generatepress' ), 50 | esc_url( admin_url( 'post-new.php' ) ) 51 | ); 52 | ?> 53 |

    54 | 55 | 56 | 57 |

    58 | 59 | 60 | 61 | 62 |

    63 | 64 | 65 | 66 | 67 |
    68 | 69 | 77 |
    78 |
    79 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generatepress", 3 | "version": "3.6.0", 4 | "description": "A super lightweight WordPress theme.", 5 | "main": "Gruntfile.js", 6 | "scripts": { 7 | "build": "wp-scripts build src/customizer.js src/block-editor.js src/dashboard.js src/modal.js --output-path=assets/dist", 8 | "start": "wp-scripts start src/customizer.js src/block-editor.js src/dashboard.js src/modal.js --output-path=assets/dist", 9 | "grunt:style": "grunt style", 10 | "grunt:build": "grunt build", 11 | "grunt:watch": "grunt watch", 12 | "package": "grunt package", 13 | "googleFonts": "grunt download-google-fonts", 14 | "lint:php": "composer php", 15 | "lint:js": "wp-scripts lint-js ./src", 16 | "clean": "git checkout -- assets/dist && git clean -fd assets/dist", 17 | "action-package": "grunt action-package", 18 | "test:unit": "wp-scripts test-unit-js" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/tomusborne/generatepress.git" 23 | }, 24 | "author": "Tom Usborne", 25 | "license": "GNU General Public License v2 or later", 26 | "bugs": { 27 | "url": "https://github.com/tomusborne/generatepress/issues" 28 | }, 29 | "homepage": "https://github.com/tomusborne/generatepress#readme", 30 | "devDependencies": { 31 | "@wordpress/api-fetch": "6.33.0", 32 | "@wordpress/components": "25.1.0", 33 | "@wordpress/data": "9.5.0", 34 | "@wordpress/dom-ready": "3.36.0", 35 | "@wordpress/element": "5.13.0", 36 | "@wordpress/eslint-plugin": "13.0.0", 37 | "@wordpress/hooks": "3.36.0", 38 | "@wordpress/i18n": "4.36.0", 39 | "@wordpress/plugins": "6.3.0", 40 | "@wordpress/scripts": "26.6.0", 41 | "autoprefixer": "9.8.7", 42 | "grunt": "1.6.1", 43 | "grunt-concat-css": "0.3.2", 44 | "grunt-contrib-clean": "2.0.1", 45 | "grunt-contrib-compress": "2.0.0", 46 | "grunt-contrib-concat": "2.1.0", 47 | "grunt-contrib-copy": "1.0.0", 48 | "grunt-contrib-cssmin": "5.0.0", 49 | "grunt-contrib-jshint": "3.2.0", 50 | "grunt-contrib-sass": "2.0.0", 51 | "grunt-contrib-uglify": "5.2.2", 52 | "grunt-contrib-watch": "1.1.0", 53 | "grunt-postcss": "0.9.0", 54 | "grunt-sass": "3.1.0", 55 | "lodash": "4.17.21", 56 | "node-sass": "9.0.0", 57 | "postcss": "^8.4.24", 58 | "react-select": "5.7.3", 59 | "tinycolor2": "1.6.0", 60 | "use-debounce": "9.0.4" 61 | }, 62 | "dependencies": { 63 | "classnames": "2.3.2", 64 | "colord": "2.9.3", 65 | "grunt-cli": "1.4.3", 66 | "react-colorful": "5.6.1", 67 | "react-dnd": "16.0.1", 68 | "react-dnd-html5-backend": "16.0.1" 69 | }, 70 | "browserslist": [ 71 | "> 1%", 72 | "last 3 Chrome major versions", 73 | "last 2 Firefox major versions", 74 | "last 2 Safari major versions", 75 | "last 2 Edge major versions", 76 | "last 1 IE major versions" 77 | ] 78 | } 79 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 18 | 19 |
    > 20 |
    > 21 | 46 |
    47 |
    48 | 49 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | tests/unit 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /sass/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | $separating-space: 20px; 2 | $element-padding: 40px; 3 | $container-width: 1200px; 4 | $site-title-font-size: 25px; 5 | $site-description-font-size: 15px; 6 | -------------------------------------------------------------------------------- /sass/admin/header.scss: -------------------------------------------------------------------------------- 1 | .gpress-dashboard-header { 2 | background: #fff; 3 | border-bottom: 1px solid #e2e4e7; 4 | padding: 0 20px; 5 | text-align: center; 6 | display: flex; 7 | justify-content: space-between; 8 | align-items: center; 9 | 10 | h1 { 11 | font-size: 17px; 12 | font-weight: 600; 13 | padding-bottom: 0; 14 | display: flex; 15 | align-items: center; 16 | 17 | svg { 18 | width: 1em; 19 | height: 1em; 20 | padding-right: 10px; 21 | fill: #006eb7; 22 | } 23 | } 24 | } 25 | 26 | .gpress-dashboard-navigation { 27 | background: #fff; 28 | display: flex; 29 | 30 | a { 31 | padding: 1rem; 32 | display: flex; 33 | align-items: center; 34 | color: inherit; 35 | text-decoration: none; 36 | 37 | &.active { 38 | font-weight: 600; 39 | box-shadow: inset 0 -3px #007cba; 40 | } 41 | } 42 | } 43 | 44 | .generate-dashboard-page { 45 | #wpcontent { 46 | padding-left: 0; 47 | } 48 | 49 | .update-nag { 50 | margin-bottom: 20px; 51 | margin-left: 22px; 52 | } 53 | 54 | &.edit-php #wpbody-content .wrap { 55 | padding: 0 20px; 56 | margin: 0; 57 | } 58 | } 59 | 60 | .site-library-header { 61 | display: none; 62 | } 63 | 64 | .generatepress-site-library { 65 | margin-top: 40px; 66 | } 67 | -------------------------------------------------------------------------------- /sass/all.scss: -------------------------------------------------------------------------------- 1 | @import "layout/content/unsemantic-grid"; 2 | @import "style"; 3 | @import "mobile"; 4 | -------------------------------------------------------------------------------- /sass/base/_a11y.scss: -------------------------------------------------------------------------------- 1 | .screen-reader-text { 2 | border: 0; 3 | clip: rect(1px, 1px, 1px, 1px); 4 | clip-path: inset(50%); 5 | height: 1px; 6 | margin: -1px; 7 | overflow: hidden; 8 | padding: 0; 9 | position: absolute !important; 10 | width: 1px; 11 | word-wrap: normal !important; 12 | } 13 | 14 | .screen-reader-text:focus { 15 | background-color: #f1f1f1; 16 | border-radius: 3px; 17 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 18 | clip: auto !important; 19 | clip-path: none; 20 | color: #21759b; 21 | display: block; 22 | font-size: 0.875rem; 23 | font-weight: 700; 24 | height: auto; 25 | left: 5px; 26 | line-height: normal; 27 | padding: 15px 23px 14px; 28 | text-decoration: none; 29 | top: 5px; 30 | width: auto; 31 | z-index: 100000; 32 | } 33 | 34 | /* Do not show the outline on the skip link target. */ 35 | #primary[tabindex="-1"]:focus { 36 | outline: 0; 37 | } 38 | -------------------------------------------------------------------------------- /sass/base/_reset-flex.scss: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | p, 4 | ol, 5 | ul, 6 | li, 7 | dl, 8 | dt, 9 | dd, 10 | blockquote, 11 | figure, 12 | fieldset, 13 | legend, 14 | textarea, 15 | pre, 16 | iframe, 17 | hr, 18 | h1, 19 | h2, 20 | h3, 21 | h4, 22 | h5, 23 | h6 { 24 | margin: 0; 25 | padding: 0; 26 | border: 0; 27 | } 28 | 29 | html { 30 | font-family: sans-serif; 31 | -webkit-text-size-adjust: 100%; 32 | -ms-text-size-adjust: 100%; 33 | -webkit-font-smoothing: antialiased; 34 | -moz-osx-font-smoothing: grayscale; 35 | } 36 | 37 | /** 38 | * Render the `main` element consistently in IE. 39 | */ 40 | 41 | main { 42 | display: block; 43 | } 44 | 45 | /** 46 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 47 | */ 48 | 49 | progress { 50 | vertical-align: baseline; 51 | } 52 | 53 | /* Inherit box-sizing to more easily change it's value on a component level. 54 | @link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ 55 | 56 | html { 57 | box-sizing: border-box; 58 | } 59 | 60 | *, 61 | *::before, 62 | *::after { 63 | box-sizing: inherit; 64 | } 65 | 66 | /** 67 | * 1. Change the font styles in all browsers. 68 | * 2. Remove the margin in Firefox and Safari. 69 | */ 70 | 71 | button, 72 | input, 73 | optgroup, 74 | select, 75 | textarea { 76 | font-family: inherit; 77 | font-size: 100%; 78 | margin: 0; 79 | } 80 | 81 | /** 82 | * 1. Correct the odd appearance in Chrome and Safari. 83 | * 2. Correct the outline style in Safari. 84 | */ 85 | [type="search"] { 86 | -webkit-appearance: textfield; 87 | outline-offset: -2px; 88 | } 89 | 90 | /** 91 | * Remove the inner padding in Chrome and Safari on macOS. 92 | */ 93 | [type="search"]::-webkit-search-decoration { 94 | -webkit-appearance: none; 95 | } 96 | 97 | /** 98 | * Remove the inner border and padding in Firefox. 99 | */ 100 | ::-moz-focus-inner { 101 | border-style: none; 102 | padding: 0; 103 | } 104 | 105 | /** 106 | * Restore the focus styles unset by the previous rule. 107 | */ 108 | :-moz-focusring { 109 | outline: 1px dotted ButtonText; 110 | } 111 | -------------------------------------------------------------------------------- /sass/base/_reset-float.scss: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | div, 4 | span, 5 | applet, 6 | object, 7 | iframe, 8 | h1, 9 | h2, 10 | h3, 11 | h4, 12 | h5, 13 | h6, 14 | p, 15 | blockquote, 16 | pre, 17 | a, 18 | abbr, 19 | acronym, 20 | address, 21 | big, 22 | cite, 23 | code, 24 | del, 25 | dfn, 26 | em, 27 | font, 28 | ins, 29 | kbd, 30 | q, 31 | s, 32 | samp, 33 | small, 34 | strike, 35 | strong, 36 | sub, 37 | sup, 38 | tt, 39 | var, 40 | dl, 41 | dt, 42 | dd, 43 | ol, 44 | ul, 45 | li, 46 | fieldset, 47 | form, 48 | label, 49 | legend, 50 | table, 51 | caption, 52 | tbody, 53 | tfoot, 54 | thead, 55 | tr, 56 | th, 57 | td { 58 | border: 0; 59 | margin: 0; 60 | padding: 0; 61 | } 62 | 63 | html { 64 | font-family: sans-serif; 65 | -webkit-text-size-adjust: 100%; 66 | -ms-text-size-adjust: 100%; 67 | } 68 | 69 | article, 70 | aside, 71 | details, 72 | figcaption, 73 | figure, 74 | footer, 75 | header, 76 | main, 77 | nav, 78 | section { 79 | display: block; 80 | } 81 | 82 | audio, 83 | canvas, 84 | progress, 85 | video { 86 | display: inline-block; 87 | vertical-align: baseline; 88 | } 89 | 90 | audio:not([controls]) { 91 | display: none; 92 | height: 0; 93 | } 94 | 95 | [hidden], 96 | template { 97 | display: none; 98 | } 99 | 100 | ol, 101 | ul { 102 | list-style: none; 103 | } 104 | 105 | table { /* tables still need 'cellspacing="0"' in the markup */ 106 | border-collapse: separate; 107 | border-spacing: 0; 108 | } 109 | 110 | caption, 111 | th, 112 | td { 113 | font-weight: normal; 114 | text-align: left; 115 | padding: 5px; 116 | } 117 | 118 | blockquote:before, 119 | blockquote:after, 120 | q:before, 121 | q:after { 122 | content: ""; 123 | } 124 | 125 | a { 126 | background-color: transparent; 127 | } 128 | 129 | a img { 130 | border: 0; 131 | } 132 | -------------------------------------------------------------------------------- /sass/comments.scss: -------------------------------------------------------------------------------- 1 | @import "layout/content/comments"; 2 | -------------------------------------------------------------------------------- /sass/components/_forms-flex.scss: -------------------------------------------------------------------------------- 1 | button, 2 | input[type="button"], 3 | input[type="reset"], 4 | input[type="submit"] { 5 | background: #55555e; 6 | color: #fff; 7 | border: 1px solid transparent; 8 | cursor: pointer; 9 | -webkit-appearance: button; /* Corrects inability to style clickable 'input' types in iOS */ 10 | padding: 10px 20px; 11 | } 12 | 13 | input[type="text"], 14 | input[type="email"], 15 | input[type="url"], 16 | input[type="password"], 17 | input[type="search"], 18 | input[type="tel"], 19 | input[type="number"], 20 | textarea, 21 | select { 22 | border: 1px solid; 23 | border-radius: 0; 24 | padding: 10px 15px; 25 | max-width: 100%; 26 | } 27 | 28 | textarea { 29 | width: 100%; 30 | } 31 | -------------------------------------------------------------------------------- /sass/components/_forms-float.scss: -------------------------------------------------------------------------------- 1 | button, 2 | input, 3 | select, 4 | textarea { 5 | font-size: 100%; /* Corrects font size not being inherited in all browsers */ 6 | margin: 0; /* Addresses margins set differently in IE6/7, F3/4, S5, Chrome */ 7 | vertical-align: baseline; /* Improves appearance and consistency in all browsers */ 8 | *vertical-align: middle; /* Improves appearance and consistency in all browsers */ 9 | } 10 | 11 | button, 12 | html input[type="button"], 13 | input[type="reset"], 14 | input[type="submit"] { 15 | border: 1px solid transparent; 16 | background: #55555e; 17 | cursor: pointer; /* Improves usability and consistency of cursor style between image-type 'input' and others */ 18 | -webkit-appearance: button; /* Corrects inability to style clickable 'input' types in iOS */ 19 | padding: 10px 20px; 20 | color: #FFF; 21 | } 22 | 23 | input[type="checkbox"], 24 | input[type="radio"] { 25 | box-sizing: border-box; /* Addresses box sizing set to content-box in IE8/9 */ 26 | padding: 0; /* Addresses excess padding in IE8/9 */ 27 | } 28 | 29 | input[type="search"] { 30 | -webkit-appearance: textfield; /* Addresses appearance set to searchfield in S5, Chrome */ 31 | box-sizing: content-box; 32 | } 33 | 34 | input[type="search"]::-webkit-search-decoration { /* Corrects inner padding displayed oddly in S5, Chrome on OSX */ 35 | -webkit-appearance: none; 36 | } 37 | 38 | button::-moz-focus-inner, 39 | input::-moz-focus-inner { /* Corrects inner padding and border displayed oddly in FF3/4 www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */ 40 | border: 0; 41 | padding: 0; 42 | } 43 | 44 | input[type="text"], 45 | input[type="email"], 46 | input[type="url"], 47 | input[type="password"], 48 | input[type="search"], 49 | input[type="tel"], 50 | input[type="number"], 51 | textarea, 52 | select { 53 | background: #FAFAFA; 54 | color: #666; 55 | border: 1px solid #ccc; 56 | border-radius: 0px; 57 | padding: 10px 15px; 58 | box-sizing: border-box; 59 | max-width: 100%; 60 | } 61 | 62 | textarea { 63 | overflow: auto; /* Removes default vertical scrollbar in IE6/7/8/9 */ 64 | vertical-align: top; /* Improves readability and alignment in all browsers */ 65 | width: 100%; 66 | } 67 | 68 | input[type="file"] { 69 | max-width: 100%; 70 | box-sizing: border-box; 71 | } 72 | -------------------------------------------------------------------------------- /sass/components/_icons.scss: -------------------------------------------------------------------------------- 1 | .gp-icon { 2 | display: inline-flex; 3 | align-self: center; 4 | 5 | svg { 6 | height: 1em; 7 | width: 1em; 8 | top: .125em; 9 | position: relative; 10 | fill: currentColor; 11 | } 12 | } 13 | 14 | .icon-menu-bars svg:nth-child(2), 15 | .toggled .icon-menu-bars svg:nth-child(1), 16 | .icon-search svg:nth-child(2), 17 | .close-search .icon-search svg:nth-child(1) { 18 | display: none; 19 | } 20 | 21 | .toggled .icon-menu-bars svg:nth-child(2), 22 | .close-search .icon-search svg:nth-child(2) { 23 | display: block; 24 | } 25 | 26 | .entry-meta .gp-icon { 27 | margin-right: 0.6em; 28 | opacity: 0.7; 29 | } 30 | 31 | nav.toggled { 32 | .icon-arrow-left svg { 33 | transform: rotate(-90deg); 34 | } 35 | 36 | .icon-arrow-right svg { 37 | transform: rotate(90deg); 38 | } 39 | 40 | .sfHover > a > .dropdown-menu-toggle { 41 | .gp-icon { 42 | svg { 43 | transform: rotate(180deg); 44 | } 45 | 46 | &.icon-arrow-left svg { 47 | transform: rotate(-270deg); 48 | } 49 | 50 | &.icon-arrow-right svg { 51 | transform: rotate(270deg); 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /sass/components/_links.scss: -------------------------------------------------------------------------------- 1 | a, 2 | button, 3 | input { 4 | transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out; 5 | } 6 | 7 | a { 8 | text-decoration: none; 9 | } 10 | 11 | .button, 12 | .wp-block-button .wp-block-button__link { 13 | padding: 10px 20px; 14 | display: inline-block; 15 | } 16 | 17 | .wp-block-button .wp-block-button__link { 18 | font-size: inherit; 19 | line-height: inherit; 20 | } 21 | 22 | .using-mouse { 23 | :focus { 24 | outline: 0; 25 | } 26 | 27 | ::-moz-focus-inner { 28 | border: 0; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /sass/editor-typography.scss: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 3 | font-weight: normal; 4 | text-transform: none; 5 | font-size: 17px; 6 | line-height: 1.5; 7 | } 8 | 9 | p { 10 | line-height: inherit; 11 | font-size: inherit; 12 | margin-top: 0; 13 | margin-bottom: 1.5em; 14 | } 15 | 16 | h1, h2, h3, h4, h5, h6 { 17 | font-family: inherit; 18 | font-size: 100%; 19 | font-style: inherit; 20 | font-weight: inherit; 21 | } 22 | 23 | h1 { 24 | font-family: inherit; 25 | font-size: 42px; 26 | margin-bottom: 20px; 27 | margin-top: 0; 28 | line-height: 1.2em; 29 | font-weight: normal; 30 | text-transform: none; 31 | } 32 | 33 | h2 { 34 | font-family: inherit; 35 | font-size: 35px; 36 | margin-bottom: 20px; 37 | margin-top: 0; 38 | line-height: 1.2em; 39 | font-weight: normal; 40 | text-transform: none; 41 | } 42 | 43 | h3 { 44 | font-family: inherit; 45 | font-size: 29px; 46 | margin-bottom: 20px; 47 | margin-top: 0; 48 | line-height: 1.2em; 49 | font-weight: normal; 50 | text-transform: none; 51 | } 52 | 53 | h4 { 54 | font-size: 24px; 55 | } 56 | 57 | h5 { 58 | font-size: 20px; 59 | } 60 | 61 | h4, 62 | h5, 63 | h6 { 64 | font-family: inherit; 65 | margin-bottom: 20px; 66 | margin-top: 0; 67 | } 68 | -------------------------------------------------------------------------------- /sass/font-icons.scss: -------------------------------------------------------------------------------- 1 | @import "components/font-icons"; 2 | -------------------------------------------------------------------------------- /sass/layout/content/_alignments.scss: -------------------------------------------------------------------------------- 1 | .alignleft { 2 | float: left; 3 | margin-right: 1.5em; 4 | } 5 | 6 | .alignright { 7 | float: right; 8 | margin-left: 1.5em; 9 | } 10 | 11 | .aligncenter { 12 | clear: both; 13 | display: block; 14 | margin: 0 auto; 15 | } 16 | 17 | .size-auto, 18 | .size-full, 19 | .size-large, 20 | .size-medium, 21 | .size-thumbnail { 22 | max-width: 100%; 23 | height: auto; 24 | } 25 | 26 | .no-sidebar .entry-content .alignfull { 27 | margin-left: calc( -100vw / 2 + 100% / 2 ); 28 | margin-right: calc( -100vw / 2 + 100% / 2 ); 29 | max-width: 100vw; 30 | width: auto; 31 | } 32 | -------------------------------------------------------------------------------- /sass/layout/content/_comments.scss: -------------------------------------------------------------------------------- 1 | .comment-content a { 2 | word-wrap: break-word; 3 | } 4 | 5 | .bypostauthor { 6 | display: block; 7 | } 8 | 9 | .comment, 10 | .comment-list { 11 | list-style-type: none; 12 | padding: 0; 13 | margin: 0; 14 | } 15 | 16 | .comment-author-info { 17 | display: inline-block; 18 | vertical-align: middle; 19 | } 20 | 21 | .comment-meta .avatar { 22 | float: left; 23 | margin-right: 10px; 24 | -moz-border-radius: 50%; 25 | -webkit-border-radius: 50%; 26 | border-radius: 50%; 27 | } 28 | 29 | .comment-author cite { 30 | font-style: normal; 31 | font-weight: bold; 32 | } 33 | 34 | .entry-meta.comment-metadata { 35 | margin-top: 0; 36 | } 37 | 38 | .comment-content { 39 | margin-top: 1.5em; 40 | } 41 | 42 | .comment-respond { 43 | margin-top: 0; 44 | } 45 | 46 | .comment-form > .form-submit { 47 | margin-bottom: 0; 48 | } 49 | 50 | .comment-form input, 51 | .comment-form-comment { 52 | margin-bottom: 10px; 53 | } 54 | 55 | .comment-form-comment textarea { 56 | resize: vertical; 57 | } 58 | 59 | .comment-form #author, 60 | .comment-form #email, 61 | .comment-form #url { 62 | display: block; 63 | } 64 | 65 | .comment-metadata .edit-link:before { 66 | display: none; 67 | } 68 | 69 | .comment-body { 70 | padding: 30px 0; 71 | } 72 | 73 | .comment-content { 74 | padding: 30px; 75 | border: 1px solid rgba(0, 0, 0, 0.05); 76 | } 77 | 78 | .depth-1.parent > .children { 79 | border-bottom: 1px solid rgba(0, 0, 0, 0.05); 80 | } 81 | 82 | .comment .children { 83 | padding-left: 30px; 84 | margin-top: -30px; 85 | border-left: 1px solid rgba(0, 0, 0, 0.05); 86 | } 87 | 88 | .pingback .comment-body, 89 | .trackback .comment-body { 90 | border-bottom: 1px solid rgba(0, 0, 0, 0.05); 91 | } 92 | 93 | .pingback .edit-link { 94 | font-size: 13px; 95 | } 96 | 97 | .comment-content p:last-child { 98 | margin-bottom: 0; 99 | } 100 | 101 | .comment-list > .comment:first-child { 102 | padding-top: 0; 103 | margin-top: 0; 104 | border-top: 0; 105 | } 106 | 107 | ol.comment-list { 108 | margin-bottom: 1.5em; 109 | } 110 | 111 | .comment-form-cookies-consent { 112 | display: flex; 113 | align-items: center; 114 | 115 | input { 116 | margin-right: 0.5em; 117 | margin-bottom: 0; 118 | } 119 | } 120 | 121 | .one-container .comments-area { 122 | margin-top: 1.5em; 123 | } 124 | 125 | .comment-content .reply { 126 | font-size: 85%; 127 | } 128 | 129 | #cancel-comment-reply-link { 130 | padding-left: 10px; 131 | } 132 | -------------------------------------------------------------------------------- /sass/layout/content/_content-flex.scss: -------------------------------------------------------------------------------- 1 | .site-content { 2 | display: flex; 3 | } 4 | 5 | .grid-container { 6 | margin-left: auto; 7 | margin-right: auto; 8 | max-width: $container-width; 9 | } 10 | 11 | .sidebar .widget, 12 | .page-header, 13 | .site-main > * { 14 | margin-bottom: $separating-space; 15 | } 16 | 17 | .both-right .inside-left-sidebar, 18 | .both-left .inside-left-sidebar { 19 | margin-right: $separating-space / 2; 20 | } 21 | 22 | .both-right .inside-right-sidebar, 23 | .both-left .inside-right-sidebar { 24 | margin-left: $separating-space / 2; 25 | } 26 | 27 | /*-------------------------------------------------------------- 28 | ## One Container 29 | --------------------------------------------------------------*/ 30 | 31 | .one-container { 32 | &.right-sidebar .site-main, 33 | &.both-right .site-main { 34 | margin-right: $element-padding; 35 | } 36 | 37 | &.left-sidebar .site-main, 38 | &.both-left .site-main { 39 | margin-left: $element-padding; 40 | } 41 | 42 | &.both-sidebars .site-main { 43 | margin: 0px $element-padding 0px $element-padding; 44 | } 45 | 46 | &.archive .post:not(:last-child):not(.is-loop-template-item), 47 | &.blog .post:not(:last-child):not(.is-loop-template-item) { 48 | padding-bottom: $element-padding; 49 | } 50 | 51 | .site-content { 52 | padding: $element-padding; 53 | } 54 | } 55 | 56 | /*-------------------------------------------------------------- 57 | ## Separate Containers 58 | --------------------------------------------------------------*/ 59 | 60 | .separate-containers { 61 | .inside-article, 62 | .comments-area, 63 | .page-header, 64 | .paging-navigation { 65 | padding: $element-padding; 66 | } 67 | 68 | .site-main { 69 | margin: $separating-space; 70 | } 71 | 72 | &.no-sidebar .site-main { 73 | margin-left: 0; 74 | margin-right: 0; 75 | } 76 | 77 | &.right-sidebar .site-main, 78 | &.both-right .site-main { 79 | margin-left: 0; 80 | } 81 | 82 | &.left-sidebar .site-main, 83 | &.both-left .site-main { 84 | margin-right: 0; 85 | } 86 | 87 | .inside-right-sidebar, 88 | .inside-left-sidebar { 89 | margin-top: $separating-space; 90 | margin-bottom: $separating-space; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /sass/layout/content/_content-layout-float.scss: -------------------------------------------------------------------------------- 1 | .post { 2 | margin: 0 0 2em; 3 | } 4 | 5 | .page-header { 6 | margin-bottom: 30px; 7 | } 8 | 9 | /*-------------------------------------------------------------- 10 | ## One Container 11 | --------------------------------------------------------------*/ 12 | 13 | .one-container { 14 | &.both-left .inside-left-sidebar, 15 | &.both-right .inside-left-sidebar { 16 | margin-right: $element-padding / 2; 17 | } 18 | 19 | &.both-left .inside-right-sidebar, 20 | &.both-right .inside-right-sidebar { 21 | margin-left: $element-padding / 2; 22 | } 23 | 24 | &:not(.page) .inside-article { 25 | padding: 0 0 30px 0; 26 | } 27 | 28 | &.right-sidebar .site-main, 29 | &.both-right .site-main { 30 | margin-right: $element-padding; 31 | } 32 | 33 | &.left-sidebar .site-main, 34 | &.both-left .site-main { 35 | margin-left: $element-padding; 36 | } 37 | 38 | &.both-sidebars .site-main { 39 | margin: 0px $element-padding 0px $element-padding; 40 | } 41 | 42 | .site-content { 43 | padding: $element-padding; 44 | } 45 | } 46 | 47 | /*-------------------------------------------------------------- 48 | ## Separate Containers 49 | --------------------------------------------------------------*/ 50 | 51 | .separate-containers { 52 | .inside-article, 53 | .comments-area, 54 | .page-header, 55 | .paging-navigation { 56 | padding: $element-padding; 57 | } 58 | 59 | .widget, 60 | .site-main > *, 61 | .page-header { 62 | margin-bottom: $separating-space; 63 | } 64 | 65 | .site-main { 66 | margin: $separating-space; 67 | } 68 | 69 | &.no-sidebar .site-main { 70 | margin-left: 0; 71 | margin-right: 0; 72 | } 73 | 74 | &.right-sidebar .site-main, 75 | &.both-right .site-main { 76 | margin-left: 0; 77 | } 78 | 79 | &.left-sidebar .site-main, 80 | &.both-left .site-main { 81 | margin-right: 0; 82 | } 83 | 84 | &.both-right .inside-left-sidebar, 85 | &.both-left .inside-left-sidebar { 86 | margin-right: $separating-space / 2; 87 | } 88 | 89 | &.both-right .inside-right-sidebar, 90 | &.both-left .inside-right-sidebar { 91 | margin-left: $separating-space / 2; 92 | } 93 | 94 | .inside-right-sidebar, 95 | .inside-left-sidebar { 96 | margin-top: $separating-space; 97 | margin-bottom: $separating-space; 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /sass/layout/content/_content-layout.scss: -------------------------------------------------------------------------------- 1 | .inside-page-header { 2 | padding: $element-padding; 3 | } 4 | 5 | .widget-area .main-navigation { 6 | margin-bottom: $separating-space; 7 | } 8 | 9 | .separate-containers .site-main > *:last-child, 10 | .one-container .site-main > *:last-child { 11 | margin-bottom: 0; 12 | } 13 | 14 | /*-------------------------------------------------------------- 15 | ## Full Width Content 16 | --------------------------------------------------------------*/ 17 | 18 | .full-width-content { 19 | .container.grid-container { 20 | max-width: 100%; 21 | } 22 | 23 | &.no-sidebar.separate-containers .site-main { 24 | margin: 0; 25 | } 26 | 27 | &.separate-containers .inside-article, 28 | &.one-container .site-content { 29 | padding: 0; 30 | } 31 | 32 | .entry-content .alignwide { 33 | margin-left: 0; 34 | width: auto; 35 | max-width: unset; 36 | } 37 | } 38 | 39 | /*-------------------------------------------------------------- 40 | ## Contained Content 41 | --------------------------------------------------------------*/ 42 | 43 | .contained-content { 44 | &.separate-containers .inside-article, 45 | &.one-container .site-content { 46 | padding: 0; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /sass/layout/content/_featured-images-flex.scss: -------------------------------------------------------------------------------- 1 | .post-image:not(:first-child) { 2 | margin-top: 2em; 3 | } 4 | 5 | .featured-image { 6 | line-height: 0; /* no more weird spacing */ 7 | } 8 | 9 | .separate-containers { 10 | .featured-image { 11 | margin-top: $separating-space; 12 | } 13 | 14 | .inside-article > .featured-image { 15 | margin-top: 0; 16 | margin-bottom: 2em; 17 | } 18 | } 19 | 20 | .one-container .inside-article > .featured-image { 21 | margin-top: 0; 22 | margin-bottom: 2em; 23 | } 24 | -------------------------------------------------------------------------------- /sass/layout/content/_featured-images-float.scss: -------------------------------------------------------------------------------- 1 | .post-image:not(:first-child) { 2 | margin-top: 2em; 3 | } 4 | 5 | .page-header-image, 6 | .page-header-image-single { 7 | line-height: 0; /* no more weird spacing */ 8 | } 9 | 10 | .separate-containers .inside-article > [class*="page-header-"], 11 | .one-container .inside-article > [class*="page-header-"] { 12 | margin-bottom: 2em; 13 | margin-top: 0; 14 | } 15 | 16 | .inside-article .page-header-image-single.page-header-below-title { 17 | margin-top: 2em; 18 | } 19 | 20 | .separate-containers { 21 | .page-header-image, 22 | .page-header-contained, 23 | .page-header-content, 24 | .page-header-image-single, 25 | .page-header-content-single { 26 | margin-top: $separating-space; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /sass/layout/content/_sidebars-flex.scss: -------------------------------------------------------------------------------- 1 | .sidebar .grid-container { 2 | max-width: 100%; 3 | width: 100%; 4 | } 5 | 6 | .left-sidebar .sidebar, 7 | .both-left .is-left-sidebar, 8 | .both-sidebars .is-left-sidebar { 9 | order: -10; 10 | } 11 | 12 | .both-left .is-right-sidebar { 13 | order: -5; 14 | } 15 | 16 | .both-right .is-left-sidebar { 17 | order: 5; 18 | } 19 | 20 | .both-right .is-right-sidebar, 21 | .both-sidebars .is-right-sidebar { 22 | order: 10; 23 | } 24 | -------------------------------------------------------------------------------- /sass/layout/content/_widgets-flex.scss: -------------------------------------------------------------------------------- 1 | .widget .search-form { 2 | display: flex; 3 | 4 | button.search-submit { 5 | font-size: 15px; 6 | } 7 | } 8 | 9 | .footer-widgets .widget { 10 | margin-bottom: 30px; 11 | } 12 | 13 | .sidebar .widget:last-child, 14 | .footer-widgets .widget:last-child { 15 | margin-bottom: 0; 16 | } 17 | 18 | .widget ul li { 19 | list-style-type: none; 20 | position: relative; 21 | margin-bottom: 0.5em; 22 | } 23 | 24 | .widget ul li ul { 25 | margin-left: 1em; 26 | margin-top: 0.5em; 27 | } 28 | 29 | .wp-calendar-table { 30 | table-layout: fixed; 31 | } 32 | -------------------------------------------------------------------------------- /sass/layout/content/_widgets-float.scss: -------------------------------------------------------------------------------- 1 | .widget_search .search-submit { 2 | display: none; 3 | } 4 | 5 | .widget { 6 | margin: 0 0 30px; 7 | box-sizing: border-box; 8 | } 9 | 10 | .widget:last-child, 11 | .separate-containers .widget:last-child { 12 | margin-bottom: 0; 13 | } 14 | 15 | .sidebar .widget, 16 | .footer-widgets .widget { 17 | font-size: 17px; 18 | } 19 | 20 | .widget ul li { 21 | list-style-type: none; 22 | position: relative; 23 | padding-bottom: 5px; 24 | } 25 | 26 | .widget_categories .children { 27 | margin-left: 1.5em; 28 | padding-top: 5px; 29 | } 30 | 31 | .widget_categories .children li:last-child { 32 | padding-bottom: 0; 33 | } 34 | 35 | .widget_nav_menu ul ul, 36 | .widget_pages ul ul { 37 | margin-left: 1em; 38 | margin-top: 5px; 39 | } 40 | 41 | .widget ul li.menu-item-has-children, 42 | .widget ul li.page_item_has_children { 43 | padding-bottom: 0; 44 | } 45 | 46 | #wp-calendar { 47 | table-layout: fixed; 48 | font-size: 80%; 49 | } 50 | 51 | #wp-calendar #prev, 52 | #wp-calendar #prev + .pad { 53 | border-right: 0; 54 | } 55 | 56 | .sidebar .grid-container { 57 | max-width: 100%; 58 | width: 100%; 59 | } 60 | -------------------------------------------------------------------------------- /sass/layout/content/_widgets.scss: -------------------------------------------------------------------------------- 1 | .widget-area .widget { 2 | padding: $element-padding; 3 | } 4 | 5 | .widget select { 6 | max-width: 100%; 7 | } 8 | 9 | .sidebar .widget *:last-child, 10 | .footer-widgets .widget *:last-child { 11 | margin-bottom: 0; 12 | } 13 | 14 | .widget-title { 15 | margin-bottom: 30px; 16 | font-size: 20px; 17 | line-height: 1.5; 18 | font-weight: normal; 19 | text-transform: none; 20 | } 21 | 22 | .widget ul, 23 | .widget ol { 24 | margin: 0; 25 | } 26 | 27 | .widget .search-field { 28 | width: 100%; 29 | } 30 | -------------------------------------------------------------------------------- /sass/layout/footer/_footer-flex.scss: -------------------------------------------------------------------------------- 1 | .inside-site-info { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | padding: 20px 40px; 6 | } 7 | -------------------------------------------------------------------------------- /sass/layout/footer/_footer-float.scss: -------------------------------------------------------------------------------- 1 | .site-info { 2 | padding: 20px 40px; 3 | } 4 | 5 | .footer-widgets { 6 | padding: 40px; 7 | } 8 | 9 | .site-footer .footer-widgets-container { 10 | .inner-padding { 11 | padding: 0px 0px 0px 40px; 12 | } 13 | 14 | .inside-footer-widgets { 15 | margin-left: -40px; 16 | } 17 | } 18 | 19 | /*-------------------------------------------------------------- 20 | ## Footer Bar 21 | --------------------------------------------------------------*/ 22 | 23 | .footer-bar-active .footer-bar .widget { 24 | padding: 0; 25 | } 26 | 27 | .footer-bar { 28 | .widget_nav_menu { 29 | & > div > ul { 30 | display: inline-block; 31 | vertical-align: top; 32 | } 33 | 34 | li { 35 | margin: 0 10px; 36 | float: left; 37 | padding: 0; 38 | 39 | &:first-child { 40 | margin-left: 0; 41 | } 42 | 43 | &:last-child { 44 | margin-right: 0; 45 | } 46 | 47 | ul { 48 | display: none; 49 | } 50 | } 51 | } 52 | 53 | .textwidget p:last-child { 54 | margin: 0; 55 | } 56 | 57 | .widget-title { 58 | display: none; 59 | } 60 | } 61 | 62 | .footer-bar-align-right { 63 | .copyright-bar { 64 | float: left; 65 | } 66 | 67 | .footer-bar { 68 | float: right; 69 | text-align: right; 70 | } 71 | } 72 | 73 | .footer-bar-align-left { 74 | .copyright-bar { 75 | float: right; 76 | text-align: right; 77 | } 78 | 79 | .footer-bar { 80 | float: left; 81 | text-align: left; 82 | } 83 | } 84 | 85 | .footer-bar-align-center { 86 | .copyright-bar { 87 | float: none; 88 | text-align: center; 89 | } 90 | 91 | .footer-bar { 92 | float: none; 93 | text-align: center; 94 | margin-bottom: 10px; 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /sass/layout/footer/_footer.scss: -------------------------------------------------------------------------------- 1 | .site-info { 2 | text-align: center; 3 | font-size: 15px; 4 | } 5 | -------------------------------------------------------------------------------- /sass/layout/general/_clearings.scss: -------------------------------------------------------------------------------- 1 | .clear:after, 2 | .entry-content:after, 3 | .comment-content:after, 4 | .site-header:after, 5 | .site-content:after, 6 | .paging-navigation:after, 7 | .site-footer:after, 8 | .site-info:after, 9 | .page-header-content-container:after, /* Temporary clearing until GPP 1.6.3 */ 10 | .inside-navigation:not(.grid-container):after, 11 | .inside-header:not(.grid-container):after, 12 | .inside-top-bar:not(.grid-container):after, 13 | .inside-footer-widgets:not(.grid-container):after { 14 | content: ""; 15 | display: table; 16 | clear: both; 17 | } 18 | -------------------------------------------------------------------------------- /sass/layout/general/_compatibility-float.scss: -------------------------------------------------------------------------------- 1 | /* Globally hidden elements when Infinite Scroll is supported and in use. */ 2 | .infinite-scroll .paging-navigation, /* Older / Newer Posts Navigation (always hidden) */ 3 | .infinite-scroll.neverending .site-footer { /* Theme Footer (when set to scrolling) */ 4 | display: none; 5 | } 6 | 7 | /* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before */ 8 | .infinity-end.neverending .site-footer { 9 | display: block; 10 | } 11 | 12 | /* SiteOrigin Page Builder */ 13 | .so-panel.widget { 14 | padding: 0; 15 | } 16 | 17 | /* MailChimp CSS */ 18 | #mc_embed_signup .clear { 19 | display: block; 20 | height: auto; 21 | visibility: visible; 22 | width: auto; 23 | } 24 | -------------------------------------------------------------------------------- /sass/layout/general/_compatibility.scss: -------------------------------------------------------------------------------- 1 | /* Bootstrap fix */ 2 | .container.grid-container { 3 | width: auto; 4 | } 5 | -------------------------------------------------------------------------------- /sass/layout/header/_header-flex.scss: -------------------------------------------------------------------------------- 1 | .inside-header { 2 | display: flex; 3 | align-items: center; 4 | } 5 | 6 | .header-widget { 7 | margin-left: auto; 8 | 9 | p:last-child { 10 | margin-bottom: 0; 11 | } 12 | } 13 | 14 | .nav-float-right { 15 | .header-widget { 16 | margin-left: 20px; 17 | } 18 | 19 | #site-navigation { 20 | margin-left: auto; 21 | } 22 | } 23 | 24 | .nav-float-left { 25 | #site-navigation { 26 | margin-right: auto; 27 | order: -10; 28 | } 29 | 30 | .header-widget { 31 | margin-left: 0; 32 | margin-right: 20px; 33 | order: -15; 34 | } 35 | } 36 | 37 | .header-aligned-center:not([class*="nav-float-"]) { 38 | .inside-header { 39 | justify-content: center; 40 | flex-direction: column; 41 | text-align: center; 42 | } 43 | 44 | .header-widget { 45 | margin-left: auto; 46 | margin-right: auto; 47 | } 48 | 49 | .inside-header > *:not(:first-child) { 50 | margin-top: 1em; 51 | } 52 | } 53 | 54 | .header-aligned-right { 55 | &:not([class*="nav-float-"]) .inside-header { 56 | justify-content: flex-end; 57 | } 58 | 59 | &:not([class*="nav-float-"]) .header-widget { 60 | margin-right: auto; 61 | margin-left: 0; 62 | order: -10; 63 | } 64 | } 65 | 66 | .site-branding-container { 67 | display: inline-flex; 68 | align-items: center; 69 | text-align: left; 70 | flex-shrink: 0; 71 | 72 | .site-logo { 73 | margin-right: 1em; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /sass/layout/header/_header-float.scss: -------------------------------------------------------------------------------- 1 | .header-widget { 2 | float: right; 3 | overflow: hidden; 4 | max-width: 50%; 5 | 6 | .widget { 7 | padding: 0 0 20px; 8 | margin-bottom: 0; 9 | 10 | &:last-child { 11 | padding-bottom: 0; 12 | } 13 | } 14 | 15 | .widget-title { 16 | margin-bottom: 15px; 17 | } 18 | } 19 | 20 | .nav-float-right .header-widget { 21 | position: relative; 22 | top: -10px; 23 | 24 | .widget { 25 | padding: 0 0 10px; 26 | } 27 | } 28 | 29 | .nav-float-left .inside-header { 30 | .site-branding, 31 | .site-logo { 32 | float: right; 33 | clear: right; 34 | } 35 | 36 | &:after { 37 | clear: both; 38 | content: ''; 39 | display: table; 40 | } 41 | } 42 | 43 | .nav-float-right .inside-header .site-branding { 44 | display: inline-block; 45 | } 46 | 47 | .site-branding-container { 48 | display: -webkit-inline-box; 49 | display: -ms-inline-flexbox; 50 | display: inline-flex; 51 | -webkit-box-align: center; 52 | -ms-flex-align: center; 53 | align-items: center; 54 | text-align: left; 55 | 56 | .site-logo { 57 | margin-right: 1.5em; 58 | } 59 | } 60 | 61 | .header-aligned-center .site-header { 62 | text-align: center; 63 | } 64 | 65 | .header-aligned-right { 66 | .site-header { 67 | text-align: right; 68 | } 69 | 70 | .site-branding-container { 71 | text-align: right; 72 | } 73 | 74 | .site-branding-container .site-logo { 75 | -webkit-box-ordinal-group: 11; 76 | -ms-flex-order: 10; 77 | order: 10; 78 | margin-right: 0; 79 | margin-left: 1.5em; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /sass/layout/header/_header.scss: -------------------------------------------------------------------------------- 1 | .site-header { 2 | position: relative; 3 | } 4 | 5 | .inside-header { 6 | padding: 20px $element-padding; 7 | } 8 | 9 | .main-title { 10 | margin: 0; 11 | font-size: $site-title-font-size; 12 | line-height: 1.2em; 13 | word-wrap: break-word; 14 | font-weight: bold; 15 | text-transform: none; 16 | } 17 | 18 | .site-description { 19 | margin: 0; 20 | line-height: 1.5; 21 | font-weight: normal; 22 | text-transform: none; 23 | font-size: $site-description-font-size; 24 | } 25 | 26 | .site-logo { 27 | display: inline-block; 28 | max-width: 100%; 29 | } 30 | 31 | .site-header .header-image { 32 | vertical-align: middle; 33 | } 34 | -------------------------------------------------------------------------------- /sass/layout/header/_top-bar-float.scss: -------------------------------------------------------------------------------- 1 | .top-bar { 2 | font-weight: normal; 3 | text-transform: none; 4 | font-size: 13px; 5 | 6 | .inside-top-bar { 7 | .widget { 8 | padding: 0; 9 | display: inline-block; 10 | margin: 0; 11 | } 12 | 13 | .textwidget p:last-child { 14 | margin: 0; 15 | } 16 | } 17 | 18 | .widget-title { 19 | display: none; 20 | } 21 | 22 | .widget_nav_menu { 23 | li { 24 | margin: 0 10px; 25 | float: left; 26 | padding: 0; 27 | 28 | &:first-child { 29 | margin-left: 0; 30 | } 31 | 32 | &:last-child { 33 | margin-right: 0; 34 | } 35 | 36 | ul { 37 | display: none; 38 | } 39 | } 40 | 41 | & > div > ul { 42 | display: inline-block; 43 | vertical-align: top; 44 | } 45 | } 46 | } 47 | 48 | .inside-top-bar { 49 | padding: 10px 40px; 50 | } 51 | 52 | .top-bar-align-center { 53 | text-align: center; 54 | 55 | .inside-top-bar { 56 | .widget:not(:first-child) { 57 | margin-left: 10px; 58 | } 59 | 60 | .widget:first-child:last-child { 61 | display: block 62 | } 63 | } 64 | } 65 | 66 | .top-bar-align-right { 67 | text-align: right; 68 | 69 | .inside-top-bar { 70 | & >.widget:nth-child(even) { 71 | float: left; 72 | margin-right: 10px; 73 | } 74 | 75 | & >.widget:nth-child(odd) { 76 | margin-left: 10px; 77 | } 78 | } 79 | } 80 | 81 | .top-bar-align-left { 82 | .inside-top-bar { 83 | & > .widget:nth-child(odd) { 84 | float: left; 85 | margin-right: 10px; 86 | } 87 | 88 | & >.widget:nth-child(even) { 89 | margin-left: 10px; 90 | float: right; 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /sass/layout/navigation/_navigation-dropdowns.scss: -------------------------------------------------------------------------------- 1 | .main-navigation { 2 | ul ul { 3 | display: block; 4 | box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1); 5 | float: left; 6 | position: absolute; 7 | left: -99999px; 8 | opacity: 0; 9 | z-index: 99999; 10 | width: 200px; 11 | text-align: left; 12 | top: auto; 13 | transition: opacity 80ms linear; 14 | transition-delay: 0s; 15 | pointer-events: none; 16 | height: 0; 17 | overflow: hidden; 18 | 19 | a { 20 | display: block; 21 | } 22 | 23 | li { 24 | width: 100%; 25 | } 26 | } 27 | 28 | .main-nav { 29 | ul ul li a { 30 | line-height: normal; 31 | padding: 10px 20px; 32 | font-size: 14px; 33 | } 34 | 35 | ul li.menu-item-has-children > a { 36 | padding-right: 0; 37 | position: relative; 38 | } 39 | } 40 | 41 | &.sub-menu-left { 42 | ul ul { 43 | box-shadow: -1px 1px 0 rgba(0, 0, 0, 0.1); 44 | } 45 | 46 | .sub-menu { 47 | right: 0; 48 | } 49 | } 50 | } 51 | 52 | .main-navigation { 53 | &:not(.toggled) { 54 | ul li:hover > ul, 55 | ul li.sfHover > ul { 56 | left: auto; 57 | opacity: 1; 58 | transition-delay: 150ms; 59 | pointer-events: auto; 60 | height: auto; 61 | overflow: visible; 62 | } 63 | 64 | ul ul li:hover > ul, 65 | ul ul li.sfHover > ul { 66 | left: 100%; 67 | top: 0; 68 | } 69 | } 70 | 71 | &.sub-menu-left:not(.toggled) ul ul li:hover > ul, 72 | &.sub-menu-left:not(.toggled) ul ul li.sfHover > ul { 73 | right: 100%; 74 | left: auto; 75 | } 76 | } 77 | 78 | .nav-float-right .main-navigation ul ul ul { 79 | top: 0 80 | } 81 | 82 | .menu-item-has-children { 83 | .dropdown-menu-toggle { 84 | display: inline-block; 85 | height: 100%; 86 | clear: both; 87 | padding-right: 20px; 88 | padding-left: 10px; 89 | } 90 | 91 | ul .dropdown-menu-toggle { 92 | padding-top: 10px; 93 | padding-bottom: 10px; 94 | margin-top: -10px; 95 | } 96 | } 97 | 98 | nav ul ul .menu-item-has-children .dropdown-menu-toggle, 99 | .sidebar .menu-item-has-children .dropdown-menu-toggle { 100 | float: right; 101 | } 102 | -------------------------------------------------------------------------------- /sass/layout/navigation/_navigation-flex.scss: -------------------------------------------------------------------------------- 1 | .main-navigation { 2 | .inside-navigation { 3 | display: flex; 4 | align-items: center; 5 | flex-wrap: wrap; 6 | justify-content: space-between; 7 | } 8 | 9 | .main-nav > ul { 10 | display: flex; 11 | flex-wrap: wrap; 12 | align-items: center; 13 | } 14 | 15 | li { 16 | position: relative; 17 | } 18 | 19 | .menu-bar-items { 20 | display: flex; 21 | align-items: center; 22 | font-size: 15px; 23 | 24 | a { 25 | color: inherit; 26 | } 27 | } 28 | 29 | .menu-bar-item { 30 | position: relative; 31 | 32 | &.search-item { 33 | z-index: 20; 34 | } 35 | 36 | & > a { 37 | padding-left: 20px; 38 | padding-right: 20px; 39 | line-height: 60px; 40 | } 41 | } 42 | } 43 | 44 | .sidebar { 45 | .main-navigation { 46 | .main-nav { 47 | flex-basis: 100%; 48 | } 49 | 50 | .main-nav > ul { 51 | flex-direction: column; 52 | } 53 | 54 | .menu-bar-items { 55 | margin: 0 auto; 56 | 57 | .search-item { 58 | order: 10; 59 | } 60 | } 61 | } 62 | } 63 | 64 | .nav-align-center { 65 | .inside-navigation { 66 | justify-content: center; 67 | } 68 | 69 | .main-nav > ul { 70 | justify-content: center; 71 | } 72 | } 73 | 74 | .nav-align-right .inside-navigation { 75 | justify-content: flex-end; 76 | } 77 | -------------------------------------------------------------------------------- /sass/layout/navigation/_navigation-float.scss: -------------------------------------------------------------------------------- 1 | .main-navigation li { 2 | float: left; 3 | position: relative; 4 | } 5 | 6 | .sf-menu > li.menu-item-float-right { 7 | float: right !important; 8 | } 9 | 10 | .nav-float-right .inside-header .main-navigation { 11 | float: right; 12 | clear: right; 13 | } 14 | 15 | .nav-float-left .inside-header .main-navigation { 16 | float: left; 17 | clear: left; 18 | } 19 | 20 | .nav-aligned-right .main-navigation:not(.toggled) .menu > li, 21 | .nav-aligned-center .main-navigation:not(.toggled) .menu > li { 22 | float: none; 23 | display: inline-block; 24 | } 25 | 26 | .nav-aligned-right .main-navigation:not(.toggled) ul, 27 | .nav-aligned-center .main-navigation:not(.toggled) ul { 28 | letter-spacing: -0.31em; 29 | font-size: 1em; 30 | } 31 | 32 | .nav-aligned-right .main-navigation:not(.toggled) ul li, 33 | .nav-aligned-center .main-navigation:not(.toggled) ul li { 34 | letter-spacing: normal; 35 | } 36 | 37 | .nav-aligned-center .main-navigation { 38 | text-align: center; 39 | } 40 | 41 | .nav-aligned-right .main-navigation { 42 | text-align: right; 43 | } 44 | 45 | .main-navigation li.search-item { 46 | float: right; 47 | } 48 | 49 | .main-navigation .mobile-bar-items a { 50 | padding-left: 20px; 51 | padding-right: 20px; 52 | line-height: 60px; 53 | } 54 | -------------------------------------------------------------------------------- /sass/layout/navigation/_navigation.scss: -------------------------------------------------------------------------------- 1 | .main-navigation { 2 | z-index: 100; 3 | padding: 0; 4 | clear: both; 5 | display: block; 6 | 7 | a { 8 | display: block; 9 | text-decoration: none; 10 | font-weight: normal; 11 | text-transform: none; 12 | font-size: 15px; 13 | } 14 | 15 | ul { 16 | list-style: none; 17 | margin: 0; 18 | padding-left: 0; 19 | } 20 | 21 | .main-nav ul li a { 22 | padding-left: 20px; 23 | padding-right: 20px; 24 | line-height: 60px; 25 | } 26 | } 27 | 28 | .inside-navigation { 29 | position: relative; 30 | } 31 | -------------------------------------------------------------------------------- /sass/layout/navigation/_post-navigation.scss: -------------------------------------------------------------------------------- 1 | .site-main { 2 | .comment-navigation, 3 | .posts-navigation, 4 | .post-navigation { 5 | margin: 0 0 2em; 6 | overflow: hidden; 7 | } 8 | 9 | .post-navigation { 10 | margin-bottom: 0; 11 | } 12 | } 13 | 14 | .paging-navigation { 15 | .nav-previous, 16 | .nav-next { 17 | display: none; 18 | } 19 | 20 | .nav-links { 21 | & > * { 22 | padding: 0 5px; 23 | } 24 | 25 | .current { 26 | font-weight: bold; 27 | } 28 | } 29 | } 30 | 31 | /* Less specific so we don't overwrite existing customizations. */ 32 | .nav-links > *:first-child { 33 | padding-left: 0; 34 | } 35 | -------------------------------------------------------------------------------- /sass/layout/navigation/_sidebar-navigation.scss: -------------------------------------------------------------------------------- 1 | .widget-area .main-navigation li { 2 | float: none; 3 | display: block; 4 | width: 100%; 5 | padding: 0; 6 | margin: 0; 7 | } 8 | 9 | .sidebar .main-navigation.sub-menu-right ul li:hover ul, 10 | .sidebar .main-navigation.sub-menu-right ul li.sfHover ul { 11 | top: 0; 12 | left: 100%; 13 | } 14 | 15 | .sidebar .main-navigation.sub-menu-left ul li:hover ul, 16 | .sidebar .main-navigation.sub-menu-left ul li.sfHover ul { 17 | top: 0; 18 | right: 100%; 19 | } 20 | -------------------------------------------------------------------------------- /sass/main-rtl.scss: -------------------------------------------------------------------------------- 1 | @import "layout/rtl/rtl-flex"; 2 | -------------------------------------------------------------------------------- /sass/mobile.scss: -------------------------------------------------------------------------------- 1 | @import "layout/mobile/mobile-float"; 2 | -------------------------------------------------------------------------------- /sass/style-rtl.scss: -------------------------------------------------------------------------------- 1 | @import "layout/rtl/rtl-float"; 2 | -------------------------------------------------------------------------------- /sass/widget-areas.scss: -------------------------------------------------------------------------------- 1 | @import "abstracts/variables"; 2 | @import "layout/general/widget-areas-flex"; 3 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomusborne/generatepress/e0de8debd876b1aea3136c815dc01ad1c95d778f/screenshot.png -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 13 | 14 |
    > 15 |
    > 16 | 62 |
    63 |
    64 | 65 | 12 |
    13 | 17 | %2$s', 21 | esc_attr( apply_filters( 'generate_search_button', _x( 'Search', 'submit button', 'generatepress' ) ) ), 22 | generate_get_svg_icon( 'search' ) // phpcs:ignore -- Escaping not necessary here. 23 | ); 24 | } else { 25 | printf( 26 | '', 27 | apply_filters( 'generate_search_button', _x( 'Search', 'submit button', 'generatepress' ) ) // phpcs:ignore -- Escaping not necessary here. 28 | ); 29 | } 30 | ?> 31 |
    32 | -------------------------------------------------------------------------------- /sidebar-left.php: -------------------------------------------------------------------------------- 1 | 12 |
    > 13 |
    14 | 33 |
    34 |
    35 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 12 |
    > 13 |
    14 | 33 |
    34 |
    35 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 13 | 14 |
    > 15 |
    > 16 | 41 |
    42 |
    43 | 44 | { 5 | const customStyles = { 6 | indicatorSeparator: () => ( { 7 | display: 'none', 8 | } ), 9 | 10 | indicatorsContainer: ( provided ) => ( { 11 | ...provided, 12 | maxHeight: '30px', 13 | } ), 14 | 15 | menu: ( base ) => ( { 16 | ...base, 17 | zIndex: 999999, 18 | } ), 19 | }; 20 | 21 | const customTheme = ( provided ) => ( { 22 | borderRadius: 2, 23 | colors: { 24 | ...provided.colors, 25 | primary: 'var(--wp-admin-theme-color)', 26 | neutral20: '#757575', 27 | neutral30: '#757575', 28 | }, 29 | spacing: { 30 | controlHeight: 30, 31 | baseUnit: 3, 32 | menuGutter: 3, 33 | }, 34 | } ); 35 | 36 | const defaultProps = { 37 | className: 'generate-advanced-select', 38 | classNamePrefix: 'generate-advanced-select', 39 | isSearchable: true, 40 | styles: customStyles, 41 | instanceId: 'input-field', 42 | maxMenuHeight: 250, 43 | theme: customTheme, 44 | menuPlacement: 'auto', 45 | }; 46 | 47 | const props = Object.assign( {}, defaultProps, componentProps ); 48 | 49 | // Get our label/value object based on the current value. 50 | Object.keys( props.options ).forEach( ( key ) => { 51 | const groupedOptions = props.options[ key ].options; 52 | 53 | if ( groupedOptions ) { 54 | groupedOptions.forEach( ( optionKey ) => { 55 | if ( optionKey.value === props.currentValue ) { 56 | props.value = { label: optionKey.label, value: props.currentValue }; 57 | } 58 | } ); 59 | } else if ( props.options[ key ].value === props.currentValue ) { 60 | props.value = { label: props.options[ key ].label, value: props.currentValue }; 61 | } 62 | } ); 63 | 64 | return (