├── .gitignore ├── 404.php ├── Gruntfile.js ├── README.md ├── affiliatewp └── dashboard.php ├── archive-download.php ├── archive.php ├── assets ├── css │ ├── admin.css │ ├── affiliatewp.css │ ├── affiliatewp.min.css │ ├── customize-preview.css │ ├── edd-fes.css │ ├── edd-fes.min.css │ ├── edd-points-and-rewards.css │ ├── edd-points-and-rewards.min.css │ ├── edd-reviews.css │ └── edd-reviews.min.css ├── fonts │ ├── EDD-Icons.dev.svg │ ├── EDD-Icons.eot │ ├── EDD-Icons.json │ ├── EDD-Icons.svg │ ├── EDD-Icons.ttf │ ├── EDD-Icons.woff │ ├── Genericons.eot │ ├── Genericons.svg │ ├── Genericons.ttf │ ├── Genericons.woff │ ├── padlock.eot │ ├── padlock.svg │ ├── padlock.ttf │ └── padlock.woff ├── images │ ├── icons │ │ ├── amazon.gif │ │ ├── amazon.png │ │ ├── americanexpress.gif │ │ ├── americanexpress.png │ │ ├── discover.gif │ │ ├── discover.png │ │ ├── iphone.png │ │ ├── mastercard.gif │ │ ├── mastercard.png │ │ ├── paypal.gif │ │ ├── paypal.png │ │ ├── visa.gif │ │ └── visa.png │ ├── svg-defs.svg │ ├── tick.png │ └── xit.gif ├── js │ ├── customize-preview.js │ ├── src │ │ ├── modernizr.custom.min.js │ │ ├── navigation.js │ │ ├── svg4everybody.js │ │ └── themedd.js │ ├── themedd.js │ └── themedd.min.js └── less │ ├── accessibility.less │ ├── account.less │ ├── buttons.less │ ├── common-imports.less │ ├── compatibility │ ├── affiliatewp.less │ ├── edd-fes.less │ ├── edd-points-and-rewards.less │ ├── edd-reviews.less │ └── edd │ │ ├── add-to-cart.less │ │ ├── checkout.less │ │ ├── commissions.less │ │ ├── download-grid.less │ │ ├── misc.less │ │ ├── nav-cart.less │ │ ├── notices.less │ │ ├── purchase-confirmation.less │ │ ├── recurring-payments.less │ │ ├── shortcodes.less │ │ ├── single-download.less │ │ ├── software-licensing.less │ │ ├── stripe.less │ │ └── widgets.less │ ├── config.less │ ├── customizer.less │ ├── elements.less │ ├── fonts.less │ ├── footer.less │ ├── forms.less │ ├── gallery.less │ ├── grid.less │ ├── header.less │ ├── helpers.less │ ├── links.less │ ├── margin-and-padding.less │ ├── media-queries.less │ ├── navigation │ ├── dropdown-toggle.less │ ├── menu-toggle.less │ ├── mobile-menu.less │ ├── navigation.less │ ├── post-navigation.less │ └── secondary.less │ ├── normalize.less │ ├── posts-and-pages.less │ ├── search.less │ ├── structure.less │ ├── style.less │ ├── typography.less │ └── widgets.less ├── comments.php ├── edd_templates ├── checkout_recommendations.php ├── shortcode-content-price.php ├── shortcode-download.php ├── single_recommendations.php └── widget-cart-item.php ├── footer.php ├── functions.php ├── header.php ├── includes ├── actions.php ├── back-compat.php ├── class-search.php ├── class-themedd.php ├── compatibility.php ├── compatibility │ ├── class-affiliatewp.php │ ├── class-subtitles.php │ └── edd │ │ ├── actions.php │ │ ├── class-coming-soon.php │ │ ├── class-cross-sell-upsell.php │ │ ├── class-frontend-submissions.php │ │ ├── class-nav-cart.php │ │ ├── class-points-and-rewards.php │ │ ├── class-recommended-products.php │ │ ├── class-reviews.php │ │ ├── class-software-licensing.php │ │ ├── class-widget-download-author.php │ │ ├── class-widget-download-details.php │ │ ├── filters.php │ │ ├── functions-download-author.php │ │ ├── functions-download-details.php │ │ ├── functions-download-grid.php │ │ ├── functions-download-meta.php │ │ └── functions.php ├── customizer.php ├── filters.php ├── footer.php ├── functions.php ├── header.php ├── scripts.php ├── setup.php ├── template-tags.php └── updater │ ├── theme-updater-admin.php │ ├── theme-updater-class.php │ └── theme-updater.php ├── index.php ├── languages ├── de_DE.mo ├── de_DE.po └── themedd.pot ├── package-lock.json ├── package.json ├── page-templates ├── full-width.php └── slim.php ├── page.php ├── screenshot.png ├── search.php ├── searchform.php ├── sidebar-download.php ├── sidebar-single-vendor.php ├── sidebar.php ├── single-download.php ├── single-vendor.php ├── single.php ├── style.css ├── style.min.css ├── taxonomy-download_category.php ├── taxonomy-download_tag.php └── template-parts ├── biography.php ├── content-download.php ├── content-none.php ├── content-page.php ├── content-search.php ├── content-single.php ├── content.php └── download-grid.php /.gitignore: -------------------------------------------------------------------------------- 1 | *.codekit 2 | fonts/* 3 | /node_modules/ 4 | .DS_Store -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | __( 'Oops! That page can’t be found.', 'themedd' ) ) ); 8 | ?> 9 | 10 |
11 | 12 |
13 |
14 | 15 |
16 |
17 |

18 | 19 | 20 |
21 |
22 | 23 |
24 |
25 | 26 | 27 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Sell your digital products with [Themedd](https://themedd.com) 2 | 3 | Themedd is a free and extensible WordPress theme, providing a solid integration with [Easy Digital Downloads](https://easydigitaldownloads.com) and its extensions. 4 | 5 | Themedd was built by Andrew Munro and the Easy Digital Downloads Team. 6 | 7 | ## Installation 8 | 9 | For detailed setup instructions, visit the official [Documentation](http://docs.easydigitaldownloads.com/category/1902-themedd) page. 10 | 11 | 1. You can clone the GitHub repository: `https://github.com/easydigitaldownloads/themedd.git` 12 | 2. Or download it directly as a ZIP file: `https://github.com/easydigitaldownloads/themedd/archive/master.zip` 13 | 14 | This will download the latest developer copy of Themedd. 15 | 16 | ## Bugs 17 | If you find an issue, let us know [here](https://github.com/easydigitaldownloads/themedd/issues?state=open)! 18 | 19 | ## Support 20 | This is a developer's portal for Themedd and should _not_ be used for support. Please visit the [support page](https://easydigitaldownloads.com/support) if you need to submit a support request. 21 | 22 | ## Contributions 23 | Anyone is welcome to contribute to Themedd. 24 | 25 | There are various ways you can contribute: 26 | 27 | 1. Raise an [Issue](https://github.com/easydigitaldownloads/themedd/issues) on GitHub 28 | 2. Send us a Pull Request with your bug fixes and/or new features. Please open an issue beforehand if one does not currently exist. 29 | 3. Provide feedback and suggestions on [enhancements](https://github.com/easydigitaldownloads/themedd/issues?direction=desc&labels=Enhancement&page=1&sort=created&state=open) 30 | -------------------------------------------------------------------------------- /affiliatewp/dashboard.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |

8 | 9 | 10 | 11 |

12 | 13 | 14 | 15 |

16 | 17 | 18 | 19 | 20 | 21 | 33 | 34 | 35 | 36 |

37 | 38 | 39 | 40 | 52 | 53 |
54 | 92 | 93 | 115 |
116 | 117 | 118 | 119 |
-------------------------------------------------------------------------------- /archive-download.php: -------------------------------------------------------------------------------- 1 | $title ) ); 12 | } 13 | 14 | ?> 15 | 16 |
17 | 18 |
19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 35 | 36 |
37 | 38 | 39 |
40 | 41 |
42 | 43 | 8 | 9 |
10 | 11 |
12 |
13 | 35 |
36 |
37 | 38 | 39 | 40 |
41 | 42 | .fes-login-form+#fes_lost_password_link,.entry-content>.fes-login-form{width:62%;margin:0 auto 1rem auto}.entry-content>.fes-login-form+#fes_lost_password_link{display:block}.fes-el,.fes-login-form{margin-bottom:1rem}fieldset.fes-submit{margin-bottom:0}.fes-help{display:block;font-size:1rem;margin-bottom:.5rem;color:#838383}#fes-vendor-announcements{margin-bottom:1rem;line-height:1.62}#fes-vendor-store-link{margin-bottom:1rem;padding:1rem;background-color:#d9edf7;border-color:#cbe3ef;color:#31708f}#fes-vendor-store-link p{color:#31708f}.fes-vendor-comment-respond-form table:last-child{border:none;margin:0}.fes-vendor-comment-respond-form button{margin-top:1rem;margin-bottom:1rem}.fes-vendor-comment-respond-form .button{margin-right:1rem}.fes-purchase-badge{line-height:1.3;font-size:.875rem}.fes-purchase-badge.fes-purchase-badge-purchased{display:inline-block;color:#3c763d;background:#dff0d8;padding:.5rem 1rem}.fes-purchase-badge.fes-purchase-badge-not-purchased{display:inline-block;color:#a94442;background:#f2dede;padding:.5rem 1rem}.fes-comment-author-name{margin-bottom:.5rem;display:block}.fes-product-list-status-bar{margin-bottom:1rem}.edd-fes-action{display:block}#fes-product-list .edd_price{margin-bottom:0}.fes-required-indicator{color:#a94442;font-size:1.5rem;margin-left:.25rem}.fes-fields+.edd_errors{margin-top:1rem}#fes-product-list abbr{display:block}#fes-product-list .download-status{white-space:nowrap;padding:.25rem .75rem;color:#fff;font-weight:bold}#fes-product-list .draft,#fes-product-list .pending-review{background:#fca432}#fes-product-list .published{background:#5BCC5B}.fes-login-registration-notice{text-align:center}#fes-save-as-draft{margin-right:1rem}.fes-hide{display:none}.fes-url-choose-row{width:100px}.fes-avatar-image{display:block}.fes-fields .fes-avatar-image-upload,.fes-fields .fes-feat-image-upload{border:4px dashed #f5f5f5;margin-bottom:2rem;max-width:12rem;position:relative;padding:1.5rem;display:inline-block}.fes-fields .fes-avatar-image-upload .instruction-inside,.fes-fields .fes-feat-image-upload .instruction-inside{text-align:center}.fes-fields .fes-avatar-image-upload .button,.fes-fields .fes-feat-image-upload .button{font-size:.875rem;padding:.25rem .75rem;display:block}.fes-fields .fes-avatar-image-upload a.close,.fes-fields .fes-feat-image-upload a.close{background:#000;color:#a94442;display:none;font-size:4rem;height:100%;opacity:.7;position:absolute;left:0;top:0;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:100%;cursor:pointer}.fes-fields .fes-avatar-image-upload:hover a.close,.fes-fields .fes-feat-image-upload:hover a.close{display:-ms-flexbox;display:flex}.fes-fields .fes-feat-image-upload{max-width:100%;display:block}.fes-fields .fes-feat-image-upload .button{display:inline-block}@media only screen and (max-width:991px){.fes-vendor-menu ul{line-height:2;margin-bottom:2rem}}@media only screen and (min-width:768px){.fes-vendor-menu ul li{display:inline-block;margin-right:1rem}.fes-login-registration-combo{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.fes-login-registration-combo form{padding:2rem;border:2px solid #f4f4f4;background:#fcfcfc}.fes-login-registration-combo>div+div{-ms-flex-order:1;order:1;width:48%}.fes-login-registration-combo>div{-ms-flex-order:2;order:2;width:48%}}@media only screen and (min-width:992px){.edd-fes-edit-download .fes-vendor-products-tab,.edd-fes-edit-order .fes-vendor-orders-tab,.fes-vendor-menu-tab.active{background:#fff}.edd-fes-edit-download .fes-vendor-products-tab a,.edd-fes-edit-order .fes-vendor-orders-tab a,.fes-vendor-menu-tab.active a{color:#448FD5}.fes-vendor-dashboard-wrap{display:-ms-flexbox;display:flex;overflow:hidden}.fes-vendor-menu{-ms-flex-preferred-size:16.667%;flex-basis:16.667%;max-width:16.667%}.fes-vendor-dashboard{border:2px solid #f4f4f4;border-left:none;min-height:50rem;padding:2rem;-ms-flex-preferred-size:83.333%;flex-basis:83.333%;max-width:83.333%;overflow-x:auto}.fes-vendor-menu ul a{display:block;padding:1rem 2rem;margin:0}.fes-vendor-menu ul:last-child{border-bottom:2px solid #f4f4f4}.fes-vendor-menu ul li{background:#fcfcfc;border:2px solid #f4f4f4;border-right:none;border-bottom:none}.fes-vendor-menu ul li{display:block;margin-right:0}.edd-fes-edit-order .fes-vendor-orders-tab:before,.edd-fes-edit-order .fes-vendor-orders-tab:after,.edd-fes-edit-download .fes-vendor-products-tab:before,.edd-fes-edit-download .fes-vendor-products-tab:after,.fes-vendor-menu-tab.active:before,.fes-vendor-menu-tab.active:after{content:'';position:absolute;right:0;bottom:100%;width:2px;height:1000px;background:#f4f4f4}.edd-fes-edit-order .fes-vendor-orders-tab:after,.edd-fes-edit-download .fes-vendor-products-tab:after,.fes-vendor-menu-tab.active:after{top:100%;bottom:auto;height:40000px;z-index:1}}@media only screen and (min-width:1220px){.fes-login-registration-combo>div+div{width:65%}.fes-login-registration-combo>div{width:30%}} -------------------------------------------------------------------------------- /assets/css/edd-points-and-rewards.css: -------------------------------------------------------------------------------- 1 | .edd-points-product-message { 2 | margin-top: 1rem; 3 | margin-bottom: 1rem; 4 | } 5 | .edd-points-paging { 6 | text-align: center; 7 | } 8 | .edd-points-paging .pagination * { 9 | padding: 0.5rem; 10 | } 11 | .edd-points-paging .pagination .disabled { 12 | display: none; 13 | } 14 | .edd-points-paging .edd-points-tablenav-pages .current { 15 | font-weight: bold; 16 | } 17 | .edd-points-sales-loader { 18 | display: none; 19 | text-align: center; 20 | } 21 | .edd-points-checkout-message, 22 | .edd-points-redeem-points-wrap { 23 | background: #fcfcfc; 24 | border: 2px solid #f4f4f4; 25 | padding: 1rem 2rem; 26 | margin-bottom: 2rem; 27 | } 28 | .edd-points-redeem-message { 29 | vertical-align: middle; 30 | } 31 | -------------------------------------------------------------------------------- /assets/css/edd-points-and-rewards.min.css: -------------------------------------------------------------------------------- 1 | .edd-points-product-message{margin-top:1rem;margin-bottom:1rem}.edd-points-paging{text-align:center}.edd-points-paging .pagination *{padding:.5rem}.edd-points-paging .pagination .disabled{display:none}.edd-points-paging .edd-points-tablenav-pages .current{font-weight:bold}.edd-points-sales-loader{display:none;text-align:center}.edd-points-checkout-message,.edd-points-redeem-points-wrap{background:#fcfcfc;border:2px solid #f4f4f4;padding:1rem 2rem;margin-bottom:2rem}.edd-points-redeem-message{vertical-align:middle} -------------------------------------------------------------------------------- /assets/css/edd-reviews.css: -------------------------------------------------------------------------------- 1 | .edd-reviews-average-rating { 2 | margin-bottom: 1rem; 3 | } 4 | .edd_reviews_breakdown .edd-reviews-total-count { 5 | font-weight: bold; 6 | margin-bottom: 0.5rem; 7 | } 8 | .edd_reviews_breakdown .edd-counter-front { 9 | background: #f1c40f; 10 | padding: 0.75rem 0; 11 | display: block; 12 | } 13 | .edd-counter-container { 14 | display: -ms-flexbox; 15 | display: flex; 16 | -ms-flex-align: center; 17 | align-items: center; 18 | padding: 0.25rem 0; 19 | } 20 | .edd_reviews_breakdown .edd-counter-back { 21 | display: block; 22 | width: 100px; 23 | background: #f5f5f5; 24 | } 25 | .edd_reviews_breakdown .edd-review-count { 26 | margin-left: 1rem; 27 | } 28 | .edd_reviews_breakdown .edd-counter-label { 29 | display: inline-block; 30 | width: 70px; 31 | } 32 | .edd-reviews-breakdown-ratings { 33 | margin-bottom: 2rem; 34 | } 35 | .dashicons-star-filled, 36 | .dashicons-star-empty { 37 | color: #f1c40f; 38 | } 39 | .edd-reviews-star-rating { 40 | display: inline-block; 41 | cursor: pointer; 42 | } 43 | .edd-reviews-stars-filled { 44 | position: absolute; 45 | width: 0; 46 | overflow: hidden; 47 | height: 20px; 48 | } 49 | .edd-reviews-awaiting-moderation { 50 | font-weight: bold; 51 | } 52 | .edd_review { 53 | margin: 10px 0; 54 | position: relative; 55 | outline: none; 56 | list-style: none; 57 | padding: 20px 0; 58 | } 59 | .edd-review-meta-rating { 60 | vertical-align: middle; 61 | line-height: 1; 62 | display: inline-block; 63 | } 64 | .edd_review .avatar { 65 | float: left; 66 | margin-right: 1rem; 67 | position: relative; 68 | } 69 | .edd-review-author b { 70 | vertical-align: middle; 71 | color: #222; 72 | } 73 | .edd-review-metadata { 74 | color: #a2a2a2; 75 | font-size: 0.875rem; 76 | } 77 | .edd-review-metadata a { 78 | color: #a2a2a2; 79 | } 80 | .edd-review-metadata a:hover { 81 | color: #222; 82 | } 83 | .fes-vendor-dashboard .edd-reviews-vendor-feedback-item { 84 | border-bottom: 2px solid #f5f5f5; 85 | padding-bottom: 2rem; 86 | margin-bottom: 2rem; 87 | } 88 | .fes-vendor-dashboard .edd-reviews-vendor-feedback-item p:nth-child(4) strong, 89 | .fes-vendor-dashboard .edd-reviews-vendor-feedback-item p:nth-child(4) span { 90 | vertical-align: middle; 91 | } 92 | .edd-reviews-vendor-feedback-item > p { 93 | margin-bottom: 0; 94 | line-height: 2rem; 95 | } 96 | .edd-reviews-vendor-feedback-item .wp-post-image { 97 | margin-bottom: 2rem; 98 | } 99 | .edd-reviews-vendor-feedback-item h3 a { 100 | color: #696969; 101 | } 102 | .edd-reviews-form { 103 | padding: 2rem; 104 | border: 2px solid #f4f4f4; 105 | background: #fcfcfc; 106 | margin-top: 2rem; 107 | } 108 | .edd-reviews-form .edd-reviews-review-form-submit { 109 | margin-bottom: 0; 110 | } 111 | .edd-reviews-rating { 112 | font-size: 0.875rem; 113 | margin-bottom: 0.5rem; 114 | } 115 | .edd-reviews-rating span { 116 | vertical-align: middle; 117 | } 118 | .edd-review-review-helpful .edd-review-vote p { 119 | margin-bottom: 0; 120 | } 121 | .edd-review-review-helpful .edd-review-vote .edd-review-voting-feedback { 122 | font-size: 0.875rem; 123 | margin-bottom: 2rem; 124 | font-style: italic; 125 | } 126 | .edd-review-review-helpful .edd-review-voting-feedback + p, 127 | .edd-review-review-helpful p { 128 | font-weight: bold; 129 | font-size: 0.875rem; 130 | } 131 | .edd-review-review-helpful p + p { 132 | font-weight: normal; 133 | } 134 | .single-download .comments-area .no-comments { 135 | display: none; 136 | } 137 | -------------------------------------------------------------------------------- /assets/css/edd-reviews.min.css: -------------------------------------------------------------------------------- 1 | .edd-reviews-average-rating{margin-bottom:1rem}.edd_reviews_breakdown .edd-reviews-total-count{font-weight:bold;margin-bottom:.5rem}.edd_reviews_breakdown .edd-counter-front{background:#f1c40f;padding:.75rem 0;display:block}.edd-counter-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem 0}.edd_reviews_breakdown .edd-counter-back{display:block;width:100px;background:#f5f5f5}.edd_reviews_breakdown .edd-review-count{margin-left:1rem}.edd_reviews_breakdown .edd-counter-label{display:inline-block;width:70px}.edd-reviews-breakdown-ratings{margin-bottom:2rem}.dashicons-star-filled,.dashicons-star-empty{color:#f1c40f}.edd-reviews-star-rating{display:inline-block;cursor:pointer}.edd-reviews-stars-filled{position:absolute;width:0;overflow:hidden;height:20px}.edd-reviews-awaiting-moderation{font-weight:bold}.edd_review{margin:10px 0;position:relative;outline:none;list-style:none;padding:20px 0}.edd-review-meta-rating{vertical-align:middle;line-height:1;display:inline-block}.edd_review .avatar{float:left;margin-right:1rem;position:relative}.edd-review-author b{vertical-align:middle;color:#222}.edd-review-metadata{color:#a2a2a2;font-size:.875rem}.edd-review-metadata a{color:#a2a2a2}.edd-review-metadata a:hover{color:#222}.fes-vendor-dashboard .edd-reviews-vendor-feedback-item{border-bottom:2px solid #f5f5f5;padding-bottom:2rem;margin-bottom:2rem}.fes-vendor-dashboard .edd-reviews-vendor-feedback-item p:nth-child(4) strong,.fes-vendor-dashboard .edd-reviews-vendor-feedback-item p:nth-child(4) span{vertical-align:middle}.edd-reviews-vendor-feedback-item>p{margin-bottom:0;line-height:2rem}.edd-reviews-vendor-feedback-item .wp-post-image{margin-bottom:2rem}.edd-reviews-vendor-feedback-item h3 a{color:#696969}.edd-reviews-form{padding:2rem;border:2px solid #f4f4f4;background:#fcfcfc;margin-top:2rem}.edd-reviews-form .edd-reviews-review-form-submit{margin-bottom:0}.edd-reviews-rating{font-size:.875rem;margin-bottom:.5rem}.edd-reviews-rating span{vertical-align:middle}.edd-review-review-helpful .edd-review-vote p{margin-bottom:0}.edd-review-review-helpful .edd-review-vote .edd-review-voting-feedback{font-size:.875rem;margin-bottom:2rem;font-style:italic}.edd-review-review-helpful .edd-review-voting-feedback+p,.edd-review-review-helpful p{font-weight:bold;font-size:.875rem}.edd-review-review-helpful p+p{font-weight:normal}.single-download .comments-area .no-comments{display:none} -------------------------------------------------------------------------------- /assets/fonts/EDD-Icons.dev.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This is a custom SVG font generated by IcoMoon. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/fonts/EDD-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/EDD-Icons.eot -------------------------------------------------------------------------------- /assets/fonts/EDD-Icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This is a custom SVG font generated by IcoMoon. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/fonts/EDD-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/EDD-Icons.ttf -------------------------------------------------------------------------------- /assets/fonts/EDD-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/EDD-Icons.woff -------------------------------------------------------------------------------- /assets/fonts/Genericons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/Genericons.eot -------------------------------------------------------------------------------- /assets/fonts/Genericons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/Genericons.ttf -------------------------------------------------------------------------------- /assets/fonts/Genericons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/Genericons.woff -------------------------------------------------------------------------------- /assets/fonts/padlock.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/padlock.eot -------------------------------------------------------------------------------- /assets/fonts/padlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Created by FontForge 20100429 at Wed Feb 20 19:19:09 2013 6 | By root 7 | Copyright (C) 2012 by original authors @ fontello.com 8 | 9 | 10 | 11 | 24 | 26 | 28 | 30 | 32 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/fonts/padlock.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/padlock.ttf -------------------------------------------------------------------------------- /assets/fonts/padlock.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/fonts/padlock.woff -------------------------------------------------------------------------------- /assets/images/icons/amazon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/amazon.gif -------------------------------------------------------------------------------- /assets/images/icons/amazon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/amazon.png -------------------------------------------------------------------------------- /assets/images/icons/americanexpress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/americanexpress.gif -------------------------------------------------------------------------------- /assets/images/icons/americanexpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/americanexpress.png -------------------------------------------------------------------------------- /assets/images/icons/discover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/discover.gif -------------------------------------------------------------------------------- /assets/images/icons/discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/discover.png -------------------------------------------------------------------------------- /assets/images/icons/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/iphone.png -------------------------------------------------------------------------------- /assets/images/icons/mastercard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/mastercard.gif -------------------------------------------------------------------------------- /assets/images/icons/mastercard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/mastercard.png -------------------------------------------------------------------------------- /assets/images/icons/paypal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/paypal.gif -------------------------------------------------------------------------------- /assets/images/icons/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/paypal.png -------------------------------------------------------------------------------- /assets/images/icons/visa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/visa.gif -------------------------------------------------------------------------------- /assets/images/icons/visa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/icons/visa.png -------------------------------------------------------------------------------- /assets/images/svg-defs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/tick.png -------------------------------------------------------------------------------- /assets/images/xit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/assets/images/xit.gif -------------------------------------------------------------------------------- /assets/js/src/navigation.js: -------------------------------------------------------------------------------- 1 | /* global screenReaderText */ 2 | /** 3 | * Theme functions file. 4 | * 5 | * Contains handlers for navigation and widget area. 6 | */ 7 | 8 | ( function( $ ) { 9 | 10 | var $body, masthead, menuToggle, siteNavigation, siteHeaderMenu, mobileNavigation; 11 | 12 | function initMainNavigation( container ) { 13 | 14 | // Add dropdown toggle that display child menu items. 15 | container.find( '.menu-item-has-children > a' ).after( '' ); 16 | 17 | // Toggle buttons and submenu items with active children menu items. 18 | container.find( '.current-menu-ancestor > button' ).addClass( 'toggled-on' ); 19 | container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' ); 20 | 21 | // Add menu items with submenus to aria-haspopup="true". 22 | container.find( '.menu-item-has-children' ).attr( 'aria-haspopup', 'true' ); 23 | 24 | container.find( '.dropdown-toggle' ).click( function( e ) { 25 | var _this = $( this ); 26 | e.preventDefault(); 27 | _this.toggleClass( 'toggled-on' ); 28 | _this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' ); 29 | 30 | // jscs:disable 31 | _this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); 32 | // jscs:enable 33 | _this.html( _this.html() === screenReaderText.expand ? screenReaderText.collapse : screenReaderText.expand ); 34 | } ); 35 | } 36 | 37 | mobileNavigation = $( '.mobile-navigation' ); 38 | 39 | initMainNavigation( mobileNavigation ); 40 | 41 | masthead = $( '#masthead' ); 42 | menuToggle = $( '#menu-toggle' ); 43 | siteNavigation = $( '.main-navigation' ); 44 | siteHeaderMenu = $( '.site-header-menu' ); 45 | 46 | // Enable menuToggle. 47 | ( function() { 48 | 49 | // Return early if menuToggle is missing. 50 | if ( ! menuToggle ) { 51 | return; 52 | } 53 | 54 | // Add an initial values for the attribute. 55 | menuToggle.add( siteNavigation ).attr( 'aria-expanded', 'false' ); 56 | 57 | var defaultButtonText = menuToggle.text(); 58 | 59 | menuToggle.on( 'click.themedd', function() { 60 | 61 | $( this ).add( mobileNavigation ).toggleClass( 'toggled-on' ); 62 | $( this ).add( mobileNavigation ).attr( 'aria-expanded', $( this ).add( mobileNavigation ).attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' ); 63 | 64 | if ( $.trim( $(this).text() ) === 'Close Menu' ) { 65 | $(this).text( defaultButtonText ); 66 | } else { 67 | $(this).text( 'Close Menu' ); 68 | } 69 | 70 | } ); 71 | } )(); 72 | 73 | // Fix sub-menus for touch devices and better focus for hidden submenu items for accessibility. 74 | ( function() { 75 | if ( ! siteNavigation || ! siteNavigation.children().length ) { 76 | return; 77 | } 78 | 79 | if ( 'ontouchstart' in window ) { 80 | siteNavigation.find( '.menu-item-has-children > a' ).on( 'touchstart.themedd', function( e ) { 81 | var el = $( this ).parent( 'li' ); 82 | 83 | if ( ! el.hasClass( 'focus' ) ) { 84 | e.preventDefault(); 85 | el.toggleClass( 'focus' ); 86 | el.siblings( '.focus' ).removeClass( 'focus' ); 87 | } 88 | } ); 89 | } 90 | 91 | siteNavigation.find( 'a' ).on( 'focus.themedd blur.themedd', function() { 92 | $( this ).parents( '.menu-item' ).toggleClass( 'focus' ); 93 | } ); 94 | } )(); 95 | 96 | // Add the default ARIA attributes for the menu toggle and the navigations. 97 | function onResizeARIA() { 98 | if ( 910 > window.innerWidth ) { 99 | if ( menuToggle.hasClass( 'toggled-on' ) ) { 100 | menuToggle.attr( 'aria-expanded', 'true' ); 101 | } else { 102 | menuToggle.attr( 'aria-expanded', 'false' ); 103 | } 104 | 105 | if ( siteHeaderMenu.hasClass( 'toggled-on' ) ) { 106 | siteNavigation.attr( 'aria-expanded', 'true' ); 107 | } else { 108 | siteNavigation.attr( 'aria-expanded', 'false' ); 109 | } 110 | 111 | menuToggle.attr( 'aria-controls', 'site-navigation' ); 112 | } else { 113 | menuToggle.removeAttr( 'aria-expanded' ); 114 | siteNavigation.removeAttr( 'aria-expanded' ); 115 | menuToggle.removeAttr( 'aria-controls' ); 116 | } 117 | } 118 | 119 | $( document ).ready( function() { 120 | $body = $( document.body ); 121 | 122 | $( window ) 123 | .on( 'load.themedd', onResizeARIA ) 124 | .on( 'resize.themedd', function() { 125 | onResizeARIA(); 126 | } ); 127 | } ); 128 | } )( jQuery ); 129 | -------------------------------------------------------------------------------- /assets/js/src/svg4everybody.js: -------------------------------------------------------------------------------- 1 | (function (document, uses, requestAnimationFrame, CACHE, IE9TO11) { 2 | function embed(svg, g) { 3 | if (g) { 4 | var 5 | viewBox = g.getAttribute('viewBox'), 6 | fragment = document.createDocumentFragment(), 7 | clone = g.cloneNode(true); 8 | 9 | if (viewBox) { 10 | svg.setAttribute('viewBox', viewBox); 11 | } 12 | 13 | while (clone.childNodes.length) { 14 | fragment.appendChild(clone.childNodes[0]); 15 | } 16 | 17 | svg.appendChild(fragment); 18 | } 19 | } 20 | 21 | function onload() { 22 | var xhr = this, x = document.createElement('x'), s = xhr.s; 23 | 24 | x.innerHTML = xhr.responseText; 25 | 26 | xhr.onload = function () { 27 | s.splice(0).map(function (array) { 28 | embed(array[0], x.querySelector('#' + array[1].replace(/(\W)/g, '\\$1'))); 29 | }); 30 | }; 31 | 32 | xhr.onload(); 33 | } 34 | 35 | function onframe() { 36 | var use; 37 | 38 | while ((use = uses[0])) { 39 | var 40 | svg = use.parentNode, 41 | url = use.getAttribute('xlink:href').split('#'), 42 | url_root = url[0], 43 | url_hash = url[1]; 44 | 45 | svg.removeChild(use); 46 | 47 | if (url_root.length) { 48 | var xhr = CACHE[url_root] = CACHE[url_root] || new XMLHttpRequest(); 49 | 50 | if (!xhr.s) { 51 | xhr.s = []; 52 | 53 | xhr.open('GET', url_root); 54 | 55 | xhr.onload = onload; 56 | 57 | xhr.send(); 58 | } 59 | 60 | xhr.s.push([svg, url_hash]); 61 | 62 | if (xhr.readyState === 4) { 63 | xhr.onload(); 64 | } 65 | 66 | } else { 67 | embed(svg, document.getElementById(url_hash)); 68 | } 69 | } 70 | 71 | requestAnimationFrame(onframe); 72 | } 73 | 74 | if (IE9TO11) { 75 | onframe(); 76 | } 77 | })( 78 | document, 79 | document.getElementsByTagName('use'), 80 | window.requestAnimationFrame || window.setTimeout, 81 | {}, 82 | /Trident\/[567]\b/.test(navigator.userAgent) || (navigator.userAgent.match(/AppleWebKit\/(\d+)/) || [])[1] < 537 83 | ); 84 | -------------------------------------------------------------------------------- /assets/js/src/themedd.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($) { 2 | 3 | $('body').addClass('js'); 4 | 5 | /** 6 | * EDD cart information in the header 7 | */ 8 | var cartTotalAmount = $('.navCart-cartTotalAmount'); 9 | 10 | $('body').on('edd_cart_item_added', function( event, response ) { 11 | 12 | $( '.navCart' ).removeClass('empty'); 13 | 14 | if ( typeof cartQuantityText !== 'undefined' ) { 15 | var textSingular = cartQuantityText.singular, 16 | textPlural = cartQuantityText.plural, 17 | cartText = ' ' + textPlural; 18 | 19 | if ( response.cart_quantity === '1' ) { 20 | cartText = ' ' + textSingular; 21 | } 22 | 23 | $('.navCart-quantityText').html( cartText ); 24 | } 25 | 26 | cartTotalAmount.html( response.total ); 27 | 28 | }); 29 | 30 | $('body').on('edd_cart_item_removed', function( event, response ) { 31 | 32 | if ( typeof cartQuantityText !== 'undefined' ) { 33 | 34 | var textSingular = cartQuantityText.singular, 35 | textPlural = cartQuantityText.plural, 36 | cartText = ' ' + textPlural; 37 | 38 | if ( response.cart_quantity === '1' ) { 39 | cartText = ' ' + textSingular; 40 | } 41 | 42 | if ( response.cart_quantity === '' ) { 43 | cartText = '0 ' + textPlural; 44 | } 45 | 46 | $('.navCart-quantityText').html( cartText ); 47 | 48 | } 49 | 50 | cartTotalAmount.html( response.total ); 51 | 52 | }); 53 | 54 | }); -------------------------------------------------------------------------------- /assets/less/accessibility.less: -------------------------------------------------------------------------------- 1 | // Text meant only for screen readers 2 | .says, 3 | .screen-reader-text { 4 | clip: rect(1px, 1px, 1px, 1px); 5 | height: 1px; 6 | overflow: hidden; 7 | position: absolute !important; 8 | width: 1px; 9 | } 10 | 11 | // must have higher specificity than alternative color schemes inline styles 12 | .site .skip-link { 13 | background-color: #f1f1f1; 14 | box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2); 15 | color: #21759b; 16 | display: block; 17 | font-family: @font-stack; 18 | font-size: 14px; 19 | font-weight: 700; 20 | left: -9999em; 21 | outline: none; 22 | padding: 15px 23px 14px; 23 | text-decoration: none; 24 | text-transform: none; 25 | top: -9999em; 26 | } 27 | 28 | .logged-in .site .skip-link { 29 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2); 30 | font-family: @font-stack; 31 | } 32 | 33 | .site .skip-link:focus { 34 | clip: auto; 35 | height: auto; 36 | left: 6px; 37 | top: 7px; 38 | width: auto; 39 | z-index: 100000; 40 | } 41 | -------------------------------------------------------------------------------- /assets/less/account.less: -------------------------------------------------------------------------------- 1 | // Account styling 2 | // Also styles AffiliateWP 3 | 4 | section.account .wrapper { 5 | max-width: 1188px; 6 | } 7 | 8 | .account-nav { 9 | padding-left: 0; 10 | } 11 | 12 | .account-content { 13 | padding-right: 0; 14 | } 15 | 16 | .account-content table:last-child { 17 | margin-bottom: 0; 18 | } 19 | 20 | .account-nav ul { 21 | list-style-type: none; 22 | margin: 0; 23 | 24 | li { 25 | position: relative; 26 | display: block; 27 | margin-bottom: 0; 28 | } 29 | 30 | a { 31 | display: block; 32 | font-size: 1rem; 33 | color: @account-tab-link-color; 34 | } 35 | 36 | a:hover { 37 | color: @account-tab-link-hover-color; 38 | } 39 | 40 | .affwp-affiliate-dashboard-tab.active, 41 | .ui-tabs-active { 42 | background: #fff; 43 | } 44 | 45 | .affwp-affiliate-dashboard-tab.active a, 46 | .ui-tabs-active a { 47 | color: @account-tab-link-active-color; 48 | } 49 | 50 | } 51 | 52 | .container .account-content, 53 | .container .account-nav { 54 | padding-right: 0; 55 | padding-left: 0; 56 | } 57 | 58 | // Hide any borders. 59 | .account-nav { 60 | overflow: hidden; 61 | } 62 | 63 | .no-js #tabs ul { 64 | display: none; 65 | } 66 | 67 | .media-mixin(@break) when ( @break = @nav-sm-max ) { 68 | .account-nav ul { 69 | line-height: 2; 70 | margin-bottom: 2rem; 71 | } 72 | } 73 | 74 | .media-mixin(@break) when (@break = @screen-sm-min) { 75 | 76 | .account-nav ul li { 77 | display: inline-block; 78 | margin-right: 1rem; 79 | } 80 | 81 | } 82 | 83 | .media-mixin(@break) when (@break = @screen-md-min) { 84 | 85 | // tab content for account and affiliate area page 86 | .account-content > div { 87 | border: 2px solid @border-light-grey-alt; 88 | border-left: none; 89 | min-height: 50rem; 90 | padding: 2rem; 91 | } 92 | 93 | .account-nav { 94 | margin-bottom: 0; 95 | } 96 | 97 | .account-nav ul a { 98 | padding: 1rem 2rem; 99 | margin: 0; 100 | } 101 | 102 | .account-nav ul:last-child { 103 | border-bottom: 2px solid @border-light-grey-alt; 104 | } 105 | .account-nav ul li { 106 | background: @light-grey-alt; 107 | border: 2px solid @border-light-grey-alt; 108 | border-right: none; 109 | border-bottom: none; 110 | margin-right: 0; 111 | } 112 | 113 | .account-nav ul li { 114 | display: block; 115 | } 116 | 117 | .affwp-affiliate-dashboard-tab.active:before, 118 | .affwp-affiliate-dashboard-tab.active:after, 119 | .ui-tabs-active:before, 120 | .ui-tabs-active:after { 121 | content: ''; 122 | position: absolute; 123 | right: 0; 124 | bottom: 100%; 125 | width: 2px; 126 | height: 1000px; 127 | background: @border-light-grey-alt; 128 | } 129 | 130 | .affwp-affiliate-dashboard-tab.active:after, 131 | .ui-tabs-active:after { 132 | top: 100%; 133 | bottom: auto; 134 | height: 40000px; 135 | z-index: 1; 136 | } 137 | 138 | } 139 | -------------------------------------------------------------------------------- /assets/less/buttons.less: -------------------------------------------------------------------------------- 1 | input[type="submit"], 2 | button, 3 | #submit, 4 | .button, { 5 | background: @button-background-color; 6 | color: #fff; 7 | cursor: pointer; 8 | display: inline-block; 9 | font-weight: 500; // Reset font weight. 10 | text-align: center; 11 | vertical-align: middle; 12 | border-radius: 0; // Prevent rounded corners in iOS. 13 | border: @button-border; 14 | user-select: none; 15 | outline: none; 16 | line-height: 1.5rem; 17 | } 18 | 19 | input[type="submit"]:hover, 20 | button:hover, 21 | #submit:hover, 22 | .button:hover, { 23 | text-decoration: none; 24 | color: #fff; 25 | background: @button-background-hover-color; 26 | border: @button-border-hover; 27 | } 28 | 29 | input[type="submit"], 30 | #submit, 31 | button, 32 | .button { 33 | font-size: 1.1rem; 34 | padding: @button-padding; // 0.75rem 1.5rem; 35 | } 36 | 37 | // Small button. 38 | .button-small { 39 | font-size: 0.875rem; 40 | padding: 0.5rem 1rem; 41 | } 42 | 43 | // Large button. 44 | .button-large { 45 | font-size: 1.25rem; 46 | padding: 1.25rem 2.5rem; 47 | } 48 | 49 | // Full width button. 50 | .button-block { 51 | width: 100%; 52 | display: block; 53 | } -------------------------------------------------------------------------------- /assets/less/common-imports.less: -------------------------------------------------------------------------------- 1 | /* Normalize CSS */ 2 | @import 'normalize'; 3 | 4 | /* Helpers */ 5 | @import 'helpers'; 6 | 7 | /* Typography */ 8 | @import 'typography'; 9 | 10 | /* Customizer */ 11 | @import 'customizer'; 12 | 13 | /* Buttons */ 14 | @import 'buttons'; 15 | 16 | /* Fonts */ 17 | @import 'fonts'; 18 | 19 | /* Structure */ 20 | @import 'structure'; 21 | 22 | /* Header */ 23 | @import 'header'; 24 | 25 | /* Footer */ 26 | @import 'footer'; 27 | 28 | /* Links */ 29 | @import 'links'; 30 | 31 | /* Search */ 32 | @import 'search'; 33 | 34 | /* Accessibility */ 35 | @import 'accessibility'; 36 | 37 | /* Elements */ 38 | @import 'elements'; 39 | 40 | /* Posts and Pages */ 41 | @import 'posts-and-pages'; 42 | 43 | /* Widgets */ 44 | @import 'widgets'; 45 | 46 | /* Gallery */ 47 | @import 'gallery'; 48 | 49 | /* Forms */ 50 | @import 'forms'; 51 | 52 | /* Grid */ 53 | @import 'grid'; 54 | 55 | /* Margin and Padding */ 56 | @import 'margin-and-padding'; 57 | 58 | /* Account */ 59 | @import 'account'; 60 | 61 | /* Navigation */ 62 | @import 'navigation/navigation'; 63 | @import 'navigation/post-navigation'; 64 | @import 'navigation/menu-toggle'; 65 | @import 'navigation/mobile-menu'; 66 | @import 'navigation/dropdown-toggle'; 67 | @import 'navigation/secondary'; 68 | 69 | /* Easy Digital Downloads */ 70 | @import 'compatibility/edd/add-to-cart'; 71 | @import 'compatibility/edd/download-grid'; 72 | @import 'compatibility/edd/single-download'; 73 | @import 'compatibility/edd/checkout'; 74 | @import 'compatibility/edd/shortcodes'; 75 | @import 'compatibility/edd/purchase-confirmation'; 76 | @import 'compatibility/edd/nav-cart'; 77 | @import 'compatibility/edd/notices'; 78 | @import 'compatibility/edd/recurring-payments'; 79 | @import 'compatibility/edd/software-licensing'; 80 | @import 'compatibility/edd/commissions'; 81 | @import 'compatibility/edd/stripe'; 82 | @import 'compatibility/edd/widgets'; 83 | @import 'compatibility/edd/misc'; -------------------------------------------------------------------------------- /assets/less/compatibility/affiliatewp.less: -------------------------------------------------------------------------------- 1 | @import '../config'; 2 | 3 | #affwp-affiliate-dashboard-referral-counts, 4 | #affwp-affiliate-dashboard-earnings-stats { 5 | margin-bottom: 2rem; 6 | } 7 | 8 | .affwp-wrap { 9 | margin-bottom: 2rem; 10 | } 11 | 12 | #affwp-referral-url { 13 | margin-bottom: 0.5rem; 14 | } 15 | 16 | #affwp-graphs-filter { 17 | margin-bottom: 1rem; 18 | } 19 | 20 | #affwp-graphs-filter .button { 21 | padding: 0.5rem 1rem; 22 | width: auto; 23 | } 24 | 25 | .affwp-no-results { 26 | margin-bottom: 0; 27 | } 28 | 29 | .affwp-creative { 30 | margin-bottom: 2rem; 31 | padding-bottom: 1rem; 32 | border-bottom: 2px solid @light-grey; 33 | } 34 | 35 | .affwp-creative:last-of-type { 36 | border-bottom: none; 37 | padding-bottom: 0; 38 | } 39 | 40 | #affwp-affiliate-dashboard .affwp-graph table { 41 | width: auto; 42 | } 43 | 44 | .visit-converted i { 45 | display: inline-block; 46 | position: relative; 47 | top: 2px; 48 | left: 2px; 49 | } 50 | 51 | .visit-converted i:before { 52 | font-family: "dashicons"; 53 | font-style: normal; 54 | } 55 | 56 | .visit-converted.yes i:before { 57 | content: "\f147"; 58 | color: #5e95ef; 59 | } 60 | 61 | .visit-converted.no i:before { 62 | content: "\f158"; 63 | color: #ef6c5e; 64 | } 65 | 66 | .affwp-errors { 67 | padding: 1rem; 68 | background: @alert-error-background-color; 69 | margin: 0 0 1rem 0; 70 | } 71 | 72 | .affwp-notice { 73 | padding: 1rem; 74 | margin: 0 0 1rem 0; 75 | background: @alert-background-color; 76 | color: @alert-text-color; 77 | } 78 | 79 | p.affwp-error { 80 | margin: 0 0 0.25rem 0; 81 | color: @alert-error-text-color; 82 | } 83 | 84 | p.affwp-error:last-of-type { 85 | margin: 0; 86 | } 87 | 88 | // Graphs styles. 89 | 90 | // datepicker input field 91 | .affwp-datepicker { 92 | margin-bottom: 1rem; 93 | } 94 | 95 | // select 96 | #affwp-graphs-date-options { 97 | width: 100%; 98 | margin-bottom: 1rem; 99 | } 100 | 101 | #affwp-date-range-options { 102 | width: 100%; 103 | } 104 | 105 | .affwp-search-date span { 106 | display: block; 107 | } 108 | 109 | .affwp-affiliate-dashboard-visits { 110 | table-layout: fixed; 111 | 112 | .visit-url { 113 | width: 30%; 114 | } 115 | 116 | .referring-url { 117 | width: 30%; 118 | } 119 | 120 | .referral-status { 121 | width: 15%; 122 | } 123 | 124 | .visit-date { 125 | width: 25%; 126 | } 127 | 128 | } 129 | 130 | .media-mixin(@break) when (@break = @screen-sm-min) { 131 | 132 | #affwp-date-range-options { 133 | width: auto; 134 | } 135 | 136 | #affwp-graphs-date-options { 137 | width: auto; 138 | margin-right: 1rem; 139 | margin-bottom: 0; 140 | } 141 | 142 | .affwp-datepicker { 143 | width: auto; 144 | margin-right: 1rem; 145 | } 146 | 147 | .affwp-search-date span { 148 | display: inline-block; 149 | margin-right: 0.5rem; 150 | } 151 | 152 | } 153 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd-points-and-rewards.less: -------------------------------------------------------------------------------- 1 | // EDD - Points and Rewards 2 | 3 | @import '../config'; 4 | 5 | // Single download. 6 | .edd-points-product-message { 7 | margin-top: 1rem; 8 | margin-bottom: 1rem; 9 | } 10 | 11 | // Pagination. 12 | .edd-points-paging { 13 | text-align: center; 14 | 15 | .pagination * { 16 | padding: 0.5rem; 17 | } 18 | 19 | .pagination .disabled { 20 | display: none; 21 | } 22 | } 23 | 24 | .edd-points-paging .edd-points-tablenav-pages .current { 25 | font-weight: bold; 26 | } 27 | 28 | // Loading icon when viewing points as user (pagination) 29 | .edd-points-sales-loader { 30 | display: none; 31 | text-align: center; 32 | } 33 | 34 | .edd-points-checkout-message, 35 | .edd-points-redeem-points-wrap { 36 | background: @light-grey-alt; 37 | border: 2px solid @border-light-grey-alt; 38 | padding: 1rem 2rem; 39 | margin-bottom: 2rem; 40 | } 41 | 42 | .edd-points-redeem-message { 43 | vertical-align: middle; 44 | } 45 | 46 | .media-mixin(@break) when (@break = @screen-lg-min) { 47 | 48 | .edd-points-checkout-message, 49 | .edd-points-redeem-points-wrap { 50 | display: flex; 51 | justify-content: space-between; 52 | align-items: center; 53 | 54 | p { 55 | margin-bottom: 0; 56 | } 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd-reviews.less: -------------------------------------------------------------------------------- 1 | // EDD Reviews 2 | 3 | @import '../config'; 4 | 5 | @yellow: #f1c40f; 6 | 7 | // Reviews breakdown box. 8 | .edd-reviews-average-rating { 9 | margin-bottom: 1rem; 10 | } 11 | 12 | .edd_reviews_breakdown .edd-reviews-total-count { 13 | font-weight: bold; 14 | margin-bottom: 0.5rem; 15 | } 16 | 17 | .edd_reviews_breakdown .edd-counter-front { 18 | background: @yellow; 19 | padding: 0.75rem 0; 20 | display: block; 21 | } 22 | 23 | .edd-counter-container { 24 | display: flex; 25 | align-items: center; 26 | padding: 0.25rem 0; 27 | } 28 | 29 | .edd_reviews_breakdown .edd-counter-back { 30 | display: block; 31 | width: 100px; 32 | background: @light-grey; 33 | } 34 | 35 | .edd_reviews_breakdown .edd-review-count { 36 | margin-left: 1rem; 37 | } 38 | 39 | .edd_reviews_breakdown .edd-counter-label { 40 | display: inline-block; 41 | width: 70px; 42 | } 43 | 44 | .edd-reviews-breakdown-ratings { 45 | margin-bottom: 2rem; 46 | } 47 | // End Reviews breakdown box. 48 | 49 | .dashicons-star-filled, 50 | .dashicons-star-empty { 51 | color: @yellow; 52 | } 53 | 54 | .edd-reviews-star-rating { 55 | display: inline-block; 56 | cursor: pointer; 57 | } 58 | 59 | .edd-reviews-stars-filled { 60 | position: absolute; 61 | width: 0; 62 | overflow: hidden; 63 | height: 20px; 64 | } 65 | 66 | .edd-reviews-awaiting-moderation { 67 | font-weight: bold; 68 | } 69 | 70 | // Single review 71 | .edd_review { 72 | margin: 10px 0; 73 | position: relative; 74 | outline: none; 75 | list-style: none; 76 | padding: 20px 0; 77 | } 78 | 79 | .edd-review-meta-rating { 80 | vertical-align: middle; 81 | line-height: 1; 82 | display: inline-block; 83 | } 84 | 85 | .edd_review .avatar { 86 | float: left; 87 | margin-right: 1rem; 88 | position: relative; 89 | } 90 | 91 | .edd-review-author b { 92 | vertical-align: middle; 93 | color: @dark-grey; 94 | } 95 | 96 | // Metadata 97 | // By {name} on {date} at {time} Edit 98 | 99 | .edd-review-metadata { 100 | color: @medium-grey; 101 | font-size: 0.875rem; 102 | 103 | a { 104 | color: @medium-grey; 105 | 106 | &:hover { 107 | color: @dark-grey; 108 | } 109 | } 110 | 111 | } 112 | 113 | // End single review 114 | 115 | 116 | // Vendor feedback in vendor dashboard 117 | .fes-vendor-dashboard .edd-reviews-vendor-feedback-item { 118 | border-bottom: 2px solid @light-grey; 119 | padding-bottom: 2rem; 120 | margin-bottom: 2rem; 121 | 122 | // The rating paragraph tag. 123 | p:nth-child(4) { 124 | strong, span { 125 | vertical-align: middle; 126 | } 127 | } 128 | } 129 | // End vendor feedback 130 | 131 | // Paragraph tags shown on the "Vendor Feedback" dashboard tab as well as on the vendor feedback page. 132 | .edd-reviews-vendor-feedback-item > p { 133 | margin-bottom: 0; 134 | line-height: 2rem; 135 | } 136 | 137 | // Vendor feedback page 138 | .edd-reviews-vendor-feedback-item .wp-post-image { 139 | margin-bottom: 2rem; 140 | } 141 | 142 | .edd-reviews-vendor-feedback-item h3 a { 143 | color: @body-text-color; 144 | } 145 | 146 | .edd-reviews-form { 147 | padding: @box-padding; 148 | border: @box-border; 149 | background: @box-background-color; 150 | margin-top: 2rem; 151 | 152 | .edd-reviews-review-form-submit { 153 | margin-bottom: 0; 154 | } 155 | 156 | } 157 | // End vendor feedback page 158 | 159 | // Download grid rating 160 | .edd-reviews-rating { 161 | font-size: 0.875rem; 162 | margin-bottom: 0.5rem; 163 | 164 | span { 165 | vertical-align: middle; 166 | } 167 | } 168 | // End download grid rating 169 | 170 | // "Help other customers find the most helpful reviews" 171 | .edd-review-review-helpful { 172 | 173 | .edd-review-vote p { 174 | margin-bottom: 0; 175 | } 176 | 177 | .edd-review-vote .edd-review-voting-feedback { 178 | font-size: 0.875rem; 179 | margin-bottom: 2rem; 180 | font-style: italic; 181 | } 182 | 183 | .edd-review-voting-feedback + p, 184 | p { 185 | font-weight: bold; 186 | font-size: 0.875rem; 187 | } 188 | 189 | p + p { 190 | font-weight: normal; 191 | } 192 | 193 | } 194 | // End "help other customers find the most helpful reviews" 195 | 196 | .single-download .comments-area .no-comments { 197 | display: none; 198 | } 199 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/add-to-cart.less: -------------------------------------------------------------------------------- 1 | .edd-submit { 2 | width: auto; // Required for buttons on EDD's download grid. 3 | } 4 | 5 | // Kill the add to cart message. 6 | .edd-cart-ajax-alert { 7 | display: none; 8 | } 9 | 10 | // Ajax Add To Cart Button. 11 | .edd_purchase_submit_wrapper { 12 | position: relative; 13 | } 14 | 15 | .edd_purchase_submit_wrapper a.edd-add-to-cart { 16 | text-decoration: none; 17 | display: none; 18 | position: relative; 19 | overflow: hidden; 20 | } 21 | 22 | .edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js { 23 | display: inline-block; 24 | } 25 | 26 | .media-mixin(@break) when (@break = @screen-md-min) { 27 | 28 | // Make any buttons in the product details widget 100% wide on the single download page. 29 | // This includes: 30 | // 31 | // 1. The purchase button 32 | // 2. The go to checkout button 33 | // 3. The purchase button when JS is disabled 34 | // 4. Other buttons such as the voting button from EDD Coming Soon 35 | .single-download .widget_edd_product_details .button { 36 | width: 100%; 37 | } 38 | 39 | } 40 | 41 | .edd-add-to-cart .edd-add-to-cart-label { 42 | opacity: 1; 43 | } 44 | 45 | .edd-loading, 46 | .edd-loading:after { 47 | border-radius: 50%; 48 | display: block; 49 | width: 1.5rem; 50 | height: 1.5rem; 51 | } 52 | 53 | // General styles for the loading spinner. 54 | .edd-loading { 55 | animation: edd-spinning 1.1s infinite linear; 56 | border-top: 2px solid rgba(255, 255, 255, 0.2); 57 | border-right: 2px solid rgba(255, 255, 255, 0.2); 58 | border-bottom: 2px solid rgba(255, 255, 255, 0.2); 59 | border-left: 2px solid #fff; 60 | font-size: 1rem; 61 | opacity: 0; 62 | filter: alpha(opacity=0); 63 | -ms-transform: translateZ(0); 64 | transform: translateZ(0); 65 | } 66 | 67 | // The spinner shown on add to cart buttons. 68 | .edd-add-to-cart .edd-loading { 69 | position: absolute; 70 | left: 50%; 71 | top: 50%; 72 | margin: -0.75rem 0 0 -0.75rem; 73 | } 74 | 75 | 76 | .edd-discount-loader.edd-loading, 77 | .edd-loading-ajax.edd-loading { 78 | border-top-color: rgba(0, 0, 0, 0.2); 79 | border-right-color: rgba(0, 0, 0, 0.2); 80 | border-bottom-color: rgba(0, 0, 0, 0.2); 81 | border-left-color: #000; 82 | } 83 | 84 | // The loading icon for the purchase button at checkout. 85 | #edd-purchase-button-wrap .edd-loading-ajax.edd-loading { 86 | position: absolute; 87 | right: 1rem; 88 | top: 50%; 89 | margin-top: -0.75rem; 90 | } 91 | 92 | // White spinner. 93 | // Used by the checkout purchase button and the Stripe update card button. 94 | #edd-purchase-button-wrap .edd-loading-ajax.edd-loading, 95 | .edd-stripe-submit-update .edd-loading-ajax.edd-loading { 96 | border-top-color: rgba(255, 255, 255, 0.2); 97 | border-right-color: rgba(255, 255, 255, 0.2); 98 | border-bottom-color: rgba(255, 255, 255, 0.2); 99 | border-left-color: #fff; 100 | } 101 | 102 | .edd-loading-ajax.edd-loading { 103 | opacity: 1; 104 | } 105 | 106 | // Spinner keyframe animations 107 | @-webkit-keyframes edd-spinning { 108 | 0% { 109 | transform: rotate(0deg); 110 | } 111 | 100% { 112 | transform: rotate(360deg); 113 | } 114 | } 115 | 116 | @keyframes edd-spinning { 117 | 0% { 118 | transform: rotate(0deg); 119 | } 120 | 100% { 121 | transform: rotate(360deg); 122 | } 123 | } 124 | 125 | a.edd-add-to-cart .edd-add-to-cart-label, 126 | .edd-loading { 127 | transition: .1s opacity !important; 128 | } 129 | 130 | .edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label { 131 | opacity: 0; 132 | } 133 | 134 | .edd-add-to-cart[data-edd-loading] .edd-loading, 135 | .edd-discount-loader.edd-loading { 136 | opacity: 1; 137 | } 138 | 139 | .edd-cart-added-alert { 140 | color: @alert-success-text-color; 141 | } 142 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/commissions.less: -------------------------------------------------------------------------------- 1 | #edd_user_commissions_unpaid, 2 | #edd_user_commissions_paid, 3 | #edd_user_commissions_revoked { 4 | margin-bottom: 2rem; 5 | } 6 | 7 | #edd_user_commissions_unpaid_total, 8 | #edd_user_commissions_paid_total, 9 | #edd_user_commissions_revoked_total { 10 | font-weight: bold; 11 | } 12 | 13 | #edd_commissions_export select { 14 | vertical-align: middle; 15 | } 16 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/download-grid.less: -------------------------------------------------------------------------------- 1 | .edd_downloads_list { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | 6 | // download grid styles 7 | 8 | .edd_download_inner { 9 | // so we can position the child elements like the button to the bottom of the div 10 | display: flex; 11 | width: 100%; 12 | flex-direction: column; 13 | position: relative; 14 | } 15 | 16 | // style currency symbol for normal and variable prices 17 | .currency { 18 | vertical-align: top; 19 | } 20 | 21 | // the main download box 22 | .edd_download { 23 | display: flex; 24 | overflow: hidden; 25 | width: 100%; 26 | margin-bottom: 4rem; 27 | font-size: 1rem; 28 | } 29 | 30 | .media-mixin(@break) when (@break = @screen-sm-min) { 31 | .edd_download { 32 | margin-bottom: 0; 33 | } 34 | } 35 | 36 | // Margin for download titles 37 | h3.edd_download_title { 38 | margin-top: 0; 39 | margin-bottom: 1rem; 40 | } 41 | 42 | // Download footer 43 | // Always aligned to the bottom. 44 | // Optional: May contain .eddDownloadMeta 45 | .downloadFooter { 46 | margin: auto 0 0 0; 47 | } 48 | 49 | // Download meta, shown in the download grid. 50 | // Contains the price (optional) and download author (optional) 51 | .eddDownloadMeta { 52 | font-size: 0.875rem; 53 | display: flex; 54 | flex-wrap: wrap; 55 | align-items: center; 56 | justify-content: space-between; 57 | 58 | > * { 59 | display: flex; 60 | align-items: center; 61 | } 62 | 63 | a { 64 | color: @edd-download-meta-link-color; 65 | 66 | &:hover { 67 | color: @edd-download-meta-link-hover-color; 68 | } 69 | } 70 | } 71 | 72 | .eddDownloadMeta-authorAvatar { 73 | img { 74 | display: block; 75 | border-radius: 100%; 76 | } 77 | } 78 | 79 | .eddDownloadMeta-authorAvatar + .eddDownloadMeta-authorName { 80 | margin-left: 0.5rem; 81 | } 82 | 83 | // Download meta shown before or after the title. 84 | .eddDownloadMeta-beforeTitle .eddDownloadMeta, 85 | .eddDownloadMeta-afterTitle .eddDownloadMeta { 86 | margin-bottom: 1rem; 87 | } 88 | 89 | // Download meta shown at the very bottom of the download. 90 | .eddDownloadMeta-after .eddDownloadMeta { 91 | margin-top: 2rem; 92 | } 93 | 94 | // Adjust the bottom margin of the download title when the download meta is positioned after the title. 95 | .eddDownloadMeta-afterTitle .edd_download_title { 96 | margin-bottom: 0.5rem; 97 | } 98 | 99 | .edd_download_title a { 100 | color: @edd-download-title-color; 101 | font-size: @edd-download-title-font-size; 102 | display: block; 103 | 104 | &:hover { 105 | color: @edd-download-title-hover-color; 106 | } 107 | } 108 | 109 | // download image 110 | .edd_download_image { 111 | margin: 0 0 1.5rem 0; 112 | 113 | a, img { 114 | display: block; 115 | } 116 | } 117 | 118 | // price options 119 | .edd_price_options { 120 | 121 | ul { 122 | list-style-type: none; 123 | margin: 0 0 1rem 0; 124 | } 125 | 126 | li { 127 | padding: 0.25rem 0; 128 | line-height: 1.62; 129 | cursor: pointer; 130 | } 131 | 132 | li label { 133 | padding: 0; 134 | display: block; 135 | 136 | margin: 0; 137 | 138 | input { 139 | margin-right: 0.5rem; 140 | } 141 | } 142 | } 143 | 144 | .entry-content .edd_price_options li { 145 | margin-bottom: 0; 146 | } 147 | 148 | // always align buy now button to bottom 149 | .edd_download_buy_button { 150 | margin: auto 0 0 0; 151 | } 152 | 153 | .edd_download_purchase_form { 154 | margin-top: 1rem; 155 | } 156 | 157 | .edd_download_full_content, 158 | .edd_download_excerpt { 159 | margin-bottom: 1rem; 160 | } 161 | 162 | .edd_download_full_content p, 163 | .edd_download_excerpt p { 164 | margin-bottom: 0; 165 | font-size: 1rem; 166 | } 167 | 168 | // Downloads shown at checkout. 169 | // This relates to downloads shown from either the EDD Cross-sell/Upsell or Recommended Product extensions. 170 | #edd_checkout_wrap { 171 | 172 | .edd_download_columns_2 { 173 | width: 50%; 174 | } 175 | 176 | .edd_download_columns_3 { 177 | width: 75%; 178 | } 179 | 180 | .edd_download_columns_4 { 181 | width: auto; 182 | } 183 | 184 | } 185 | 186 | // Alter the download widths for the slim page template is in use. 187 | .slim #edd_checkout_wrap { 188 | 189 | .edd_download_columns_2 { 190 | width: auto; 191 | } 192 | 193 | .edd_download_columns_3 { 194 | width: auto; 195 | } 196 | 197 | } 198 | 199 | .media-mixin(@break) when (@break = @screen-sm-min) { 200 | 201 | .edd_downloads_list { 202 | margin-left: -1.5rem; 203 | margin-right: -1.5rem; 204 | margin-top: -1.5rem; 205 | } 206 | 207 | .edd_download_inner { 208 | padding: 1.5rem; 209 | } 210 | 211 | // the default 212 | .edd_download_columns_3 .edd_download { 213 | width: 33.333333333%; 214 | } 215 | 216 | .edd_download_columns_2 .edd_download, 217 | .edd_download_columns_4 .edd_download { 218 | width: 50%; 219 | } 220 | 221 | .edd_download_columns_5 .edd_download { 222 | width: 33.333333333%; 223 | } 224 | 225 | } 226 | 227 | .media-mixin(@break) when (@break = @screen-md-min) { 228 | 229 | .edd_download_columns_4 .edd_download { 230 | width: 25%; 231 | } 232 | 233 | // the default 234 | .edd_download_columns_3 .edd_download { 235 | width: 33.333333333%; 236 | } 237 | 238 | .edd_download_columns_2 .edd_download { 239 | width: 50%; 240 | } 241 | 242 | } 243 | 244 | .media-mixin(@break) when (@break = @screen-lg-min) { 245 | 246 | .edd_download_columns_5 .edd_download { 247 | width: 20%; 248 | } 249 | 250 | } 251 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/misc.less: -------------------------------------------------------------------------------- 1 | .edd_purchase_tax_rate { 2 | display: block; 3 | font-size: 0.9375rem; // 15px 4 | margin-top: 0.5rem; 5 | } 6 | 7 | .edd-item-quantity { 8 | width: 4rem; 9 | margin-bottom: 0.5rem; 10 | padding: 0.5rem; 11 | } 12 | 13 | .edd-select { 14 | vertical-align: middle; 15 | } 16 | 17 | // Reduce the size of any button after a select menu. 18 | .edd-select ~ .button { 19 | font-size: 0.875rem; 20 | padding: 0.25rem 0.75rem; 21 | } 22 | 23 | // EDD - Coming Soon 24 | .edd-cs-voted { 25 | margin-bottom: 0; 26 | } 27 | 28 | .edd-cs-voted, 29 | .edd-cs-vote-description { 30 | font-style: italic; 31 | font-size: 0.875rem; 32 | } 33 | 34 | .edd-cs-vote-description { 35 | margin-bottom: 1rem; 36 | } 37 | 38 | // EDD Wish Lists 39 | 40 | .edd-wl-wish-lists .edd-wish-list li::after { 41 | width: auto; 42 | } -------------------------------------------------------------------------------- /assets/less/compatibility/edd/nav-cart.less: -------------------------------------------------------------------------------- 1 | .navCart { 2 | display: flex; 3 | } 4 | 5 | // icon 6 | .navCart-icon { 7 | position: relative; 8 | display: inline-block; 9 | vertical-align: middle; 10 | display: inline-flex; 11 | align-items: center; 12 | fill: @cart-color; 13 | 14 | // If the item quantity or cart total is shown next to the cart icon, add some left margin. 15 | + * { 16 | margin-left: 0.5rem; 17 | } 18 | } 19 | 20 | .main-navigation .navCart { 21 | padding: 0.25rem 0; 22 | } 23 | 24 | .media-mixin(@break) when (@break = @desktop-nav) { 25 | .navCart { 26 | margin-left: 1rem; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/notices.less: -------------------------------------------------------------------------------- 1 | // Old error styles. 2 | .edd_errors:not(.edd-alert) { 3 | border: 1px solid #E6DB55; 4 | margin: 0 0 21px; 5 | background: #FFFFE0; 6 | color: #333; 7 | padding: 1rem; 8 | } 9 | 10 | p.edd_error { 11 | margin: 0 !important; 12 | } 13 | 14 | 15 | // Success Message styles 16 | .edd_success:not(.edd-alert) { 17 | margin-bottom: 2rem; 18 | background: @alert-success-background-color; 19 | color: @alert-success-text-color; 20 | padding: 1rem; 21 | } 22 | 23 | // Usage Is as Follows 24 | //
This is your error message
25 | // Replace edd-error with the class of your choice 26 | 27 | // Alert Styles 28 | .edd-alert { 29 | margin-bottom: 2rem; 30 | padding: 1rem; 31 | border: 2px solid transparent; 32 | 33 | p { 34 | padding: 0; 35 | } 36 | 37 | ul { 38 | margin-bottom: 0; 39 | } 40 | 41 | a { 42 | text-decoration: underline; 43 | } 44 | } 45 | 46 | .edd-alert p:last-child { 47 | margin-bottom: 0; 48 | } 49 | 50 | .edd-alert-error { 51 | background-color: @alert-error-background-color; 52 | border-color: @alert-error-border-color; 53 | 54 | p, a { 55 | color: @alert-error-text-color; 56 | } 57 | } 58 | 59 | .edd-alert-success { 60 | background-color: @alert-success-background-color; 61 | border-color: @alert-success-border-color; 62 | color: @alert-success-text-color; 63 | 64 | p, a { 65 | color: @alert-success-text-color; 66 | } 67 | 68 | } 69 | 70 | .edd-alert-info { 71 | background-color: @alert-info-background-color; 72 | border-color: @alert-info-border-color; 73 | 74 | p, a { 75 | color: @alert-info-text-color; 76 | } 77 | } 78 | 79 | .edd-alert-warn { 80 | background-color: @alert-warn-background-color; 81 | border-color: @alert-warn-border-color; 82 | 83 | p, a { 84 | color: @alert-warn-text-color; 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/purchase-confirmation.less: -------------------------------------------------------------------------------- 1 | #edd_purchase_receipt_products ul { 2 | margin-bottom: 0; 3 | font-size: 1rem; 4 | 5 | li { 6 | margin-bottom: 0; 7 | } 8 | } 9 | 10 | #edd_purchase_receipt, 11 | #edd_purchase_receipt_products { 12 | text-align: left; 13 | margin-bottom: 2rem; 14 | width: 100%; 15 | 16 | td, th { 17 | padding: 1rem; 18 | } 19 | 20 | tr { 21 | border-bottom: 2px solid @light-grey; 22 | } 23 | 24 | tr th:first-child, 25 | tr td:first-child { 26 | border-right: 2px solid @light-grey; 27 | } 28 | } 29 | 30 | .edd_purchase_receipt_product_name { 31 | font-weight: bold; 32 | margin-bottom: 1rem; 33 | } 34 | 35 | .edd_purchase_receipt_files li:last-child { 36 | margin-bottom: 0; 37 | } 38 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/recurring-payments.less: -------------------------------------------------------------------------------- 1 | // recurring payments 2 | #edds-confirm-update-default { 3 | margin-right: 0.5rem; 4 | } 5 | 6 | .edd_recurring_trial_total { 7 | font-weight: bold; 8 | } 9 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/shortcodes.less: -------------------------------------------------------------------------------- 1 | // login form 2 | 3 | #edd_login_form fieldset, 4 | #edd_register_form fieldset { 5 | border: 2px solid @border-light-grey-alt; 6 | background: @light-grey-alt; 7 | padding: 2rem; 8 | } 9 | 10 | #edd_login_form fieldset .row div, 11 | #edd_register_form fieldset .row div { 12 | padding: 0; 13 | } 14 | 15 | #edd_login_form legend, 16 | #edd_register_form legend { 17 | display: none; 18 | } 19 | 20 | .edd-lost-password { 21 | margin-bottom: 0; 22 | } 23 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/single-download.less: -------------------------------------------------------------------------------- 1 | // Price shown in sidebar. 2 | .widget_edd_product_details .edd_price { 3 | display: inline-block; 4 | font-size: 2rem; 5 | } 6 | 7 | // If the price is moved inside the button, give the purchase form some top padding. 8 | .widget_edd_product_details .edd_download_purchase_form:first-child { 9 | margin-top: 2rem; 10 | } 11 | 12 | // EDD meta in the download details widget 13 | .widget_edd_product_details .edd-meta { 14 | margin: 1rem 0 0 0; 15 | font-size: 0.875rem; 16 | } 17 | 18 | span.categories, 19 | span.tags { 20 | display: block; 21 | } 22 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/software-licensing.less: -------------------------------------------------------------------------------- 1 | #edd_sl_renewal_form { 2 | margin-bottom: 2rem; 3 | } 4 | 5 | #edd-add-license-renewal { 6 | cursor: pointer; 7 | margin-right: 1rem; 8 | width: auto; 9 | } 10 | 11 | #edd_sl_renewal_fields { 12 | background: @light-grey-alt; 13 | border: 2px solid @border-light-grey-alt; 14 | padding: 1rem; 15 | } 16 | 17 | .media-mixin(@break) when (@break = @screen-sm-min) { 18 | 19 | #edd_sl_renewal_fields { 20 | padding: 1rem 2rem; 21 | } 22 | 23 | } 24 | 25 | .media-mixin(@break) when (@break = @screen-xs-max) { 26 | #edd_sl_show_renewal_form { 27 | display: block; 28 | } 29 | } 30 | 31 | .edd-sl-renewal-actions, 32 | #edd_sl_show_renewal_form_wrap { 33 | margin-bottom: 0; 34 | } 35 | 36 | #edd-license-key-container-wrap { 37 | margin-bottom: 1rem; 38 | } 39 | 40 | #edd_sl_show_renewal_form_wrap + #edd-license-key-container-wrap { 41 | margin-top: 0.5rem; 42 | } 43 | 44 | #edd_sl_license_add_site_form { 45 | 46 | span { 47 | margin-bottom: 0.5rem; 48 | display: inline-block; 49 | } 50 | 51 | .edd-input { 52 | margin-bottom: 1rem; 53 | } 54 | } 55 | 56 | input[readonly] { 57 | background: @light-grey-alt; 58 | border-color: @border-light-grey-alt; 59 | } 60 | 61 | .edd-sl-active { 62 | color: @alert-success-text-color; 63 | } 64 | 65 | .edd-sl-inactive { 66 | color: gray; 67 | } 68 | 69 | .edd-sl-expired { 70 | color: @alert-error-text-color; 71 | } 72 | 73 | .edd_sl_license_row .view-key-wrapper { 74 | position: relative; 75 | } 76 | 77 | .edd_sl_license_row span .edd_sl_license_key { 78 | display: none; 79 | position: absolute; 80 | left: 0; 81 | top: 30px; 82 | z-index: 999; 83 | border: 2px solid @light-grey; 84 | background: #fff; 85 | padding: 1rem; 86 | width: 24rem; 87 | text-align: left; 88 | } 89 | 90 | .edd-sl-manage-license-key, 91 | .edd-sl-manage-license-product { 92 | display: block; 93 | } 94 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/stripe.less: -------------------------------------------------------------------------------- 1 | // Stripe Payment Gateway 2 | // https://easydigitaldownloads.com/downloads/stripe-gateway/ 3 | 4 | // edd_profile_editor] shortcode. Loading spinner when a card is updated etc. 5 | .edd-stripe-submit-update { 6 | justify-content: center; 7 | display: inline-flex; 8 | } 9 | 10 | .edd-stripe-submit-update .edd-loading-ajax.edd-loading { 11 | position: relative; 12 | } 13 | 14 | // [edd_profile_editor] shortcode. 15 | .edd-stripe-card-item { 16 | 17 | border-bottom: 2px solid @light-grey; 18 | padding-bottom: 1rem; 19 | margin-bottom: 1rem; 20 | 21 | // Hide the card update forms by default 22 | .card-update-form { 23 | display: none; 24 | } 25 | 26 | // "Visa Ending in 4242" 27 | .card-brand, 28 | .card-ending-label, 29 | .card-last-4 { 30 | font-weight: bold; 31 | } 32 | 33 | > span { 34 | display: block; 35 | } 36 | 37 | .card-meta > span { 38 | display: block; 39 | } 40 | 41 | .card-update-form input { 42 | margin-bottom: 1rem; 43 | } 44 | 45 | .address_country { 46 | margin-bottom: 1rem; 47 | } 48 | 49 | .address_country, 50 | .address_state { 51 | display: block; 52 | } 53 | 54 | } 55 | 56 | // Checkout + [edd_profile_editor] shortcode. 57 | .edd-card-selector-radio span.card-expired, 58 | a.delete { 59 | color: @alert-error-text-color; 60 | } 61 | 62 | // [edd_profile_editor] shortcode. Cancel links. 63 | #edd-stripe-add-new-cancel, 64 | .edd-stripe-cancel-update { 65 | margin-left: 1rem; 66 | } 67 | 68 | // Checkout + [edd_profile_editor] shortcode. Shows "— Default" next to a card option. 69 | .card-is-default { 70 | font-style: italic; 71 | } 72 | 73 | // Checkout. "Card Number" label. 74 | .edd-stripe-new-card label[for="card_number"] { 75 | margin-top: 1rem; 76 | } 77 | 78 | // Make the labels sit next to the radio buttons. 79 | // See: https://github.com/easydigitaldownloads/edd-stripe/issues/220. 80 | .edd-stripe-card-radio-item label { 81 | display: inline-block; 82 | } 83 | 84 | .edd-stripe-add-new-card > label, // [edd_profile_editor] shortcode. "Add New Card". 85 | .card-update-form > label // [edd_profile_editor] shortcode. "Update Billing Details". 86 | { 87 | margin-bottom: 1rem; 88 | font-size: 1.5rem; 89 | color: @dark-grey; 90 | } 91 | 92 | // [edd_profile_editor] shortcode. Affects the "Update Billing Details" label. 93 | .card-update-form > label { 94 | margin-top: 2rem; 95 | } 96 | -------------------------------------------------------------------------------- /assets/less/compatibility/edd/widgets.less: -------------------------------------------------------------------------------- 1 | // Cart widget. 2 | .edd-cart { 3 | 4 | list-style-type: none; 5 | margin-left: 0; 6 | 7 | .edd-cart-item { 8 | margin-bottom: 1.62rem; 9 | } 10 | 11 | .edd-cart-item-title { 12 | display: block; 13 | } 14 | 15 | .edd_total { 16 | font-weight: bold; 17 | } 18 | } 19 | 20 | // downloadDetails & downloadAuthor widgets. 21 | 22 | .downloadAuthor ul, 23 | .downloadDetails ul { 24 | margin-left: 0; 25 | 26 | li { 27 | display: flex; 28 | margin-bottom: 0; 29 | } 30 | } 31 | 32 | .downloadAuthor-name, 33 | .downloadDetails-name { 34 | width: 38%; 35 | } 36 | 37 | .downloadAuthor-value, 38 | .downloadDetails-value { 39 | width: 62%; 40 | } 41 | 42 | .downloadAuthor-avatar { 43 | margin-bottom: 1rem; 44 | 45 | img { 46 | display: block; 47 | border-radius: 100%; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /assets/less/customizer.less: -------------------------------------------------------------------------------- 1 | .custom-logo-link { 2 | display: inline-block; 3 | 4 | img { 5 | display: block; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /assets/less/elements.less: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100%; 3 | } 4 | 5 | body { 6 | background: @background-color; 7 | } 8 | 9 | dl { 10 | margin: 0 0 1.62rem; 11 | } 12 | 13 | dt { 14 | font-weight: 700; 15 | } 16 | 17 | dd { 18 | margin: 0 0 1.62rem; 19 | } 20 | 21 | 22 | ul, 23 | ol { 24 | list-style-type: none; 25 | padding: 0; 26 | 27 | li { 28 | 29 | img { 30 | margin-top: 1rem; 31 | } 32 | 33 | } 34 | } 35 | 36 | // ul and ol styles for lists within the entry content 37 | .entry-content { 38 | 39 | ul { 40 | list-style: disc; 41 | } 42 | 43 | ol { 44 | list-style: decimal; 45 | } 46 | 47 | ul, ol { 48 | margin: 0 0 1.62rem 2rem; 49 | line-height: 1.5; 50 | 51 | li { 52 | margin-bottom: 1rem; 53 | } 54 | } 55 | 56 | li > ul, 57 | li > ol { 58 | margin: 1rem 0 0 2rem; 59 | } 60 | 61 | li > ul { 62 | list-style: circle; 63 | 64 | ul { 65 | list-style: square; 66 | } 67 | } 68 | 69 | } 70 | 71 | table, 72 | th, 73 | td { 74 | border: 1px solid @border-light-grey-alt; 75 | } 76 | 77 | table { 78 | border-collapse: separate; 79 | border-spacing: 0; 80 | border-width: 2px 0 0 2px; 81 | margin: 0 0 1.62rem; 82 | width: 100%; 83 | font-size: 1rem; 84 | } 85 | 86 | caption, 87 | th, 88 | td { 89 | font-weight: normal; 90 | text-align: left; 91 | } 92 | 93 | th { 94 | border-width: 0 2px 2px 0; 95 | font-weight: 600; 96 | background: @light-grey-alt; 97 | } 98 | 99 | td { 100 | border-width: 0 2px 2px 0; 101 | } 102 | 103 | th, 104 | td { 105 | padding: 0.5rem; 106 | } 107 | 108 | .box, 109 | .comment-respond { 110 | padding: 1rem; 111 | border: @box-border; 112 | background: @box-background-color; 113 | } 114 | 115 | // remove any bottom margin from paragraph tags included inside boxes 116 | .box p:last-of-type:not(:first-child), 117 | .comment-respond p:last-of-type:not(:first-child) { 118 | margin-bottom: 0; 119 | } 120 | 121 | .media-mixin(@break) when (@break = @screen-sm-min) { 122 | .box, 123 | .comment-respond { 124 | padding: @box-padding; 125 | } 126 | } 127 | 128 | .media-mixin(@break) when (@break = @screen-lg-min) { 129 | 130 | th, 131 | td { 132 | padding: 0.5rem 1rem; 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /assets/less/footer.less: -------------------------------------------------------------------------------- 1 | // Site footer. 2 | .site-footer { 3 | background: @footer-background-color; 4 | 5 | ul { 6 | margin-left: 0; 7 | margin-top: 0; 8 | 9 | ul { 10 | margin-left: 1rem; 11 | } 12 | } 13 | 14 | li { 15 | list-style-type: none; 16 | margin-bottom: 0; 17 | } 18 | 19 | a { 20 | color: @nav-footer-link-color; 21 | display: inline-block; 22 | 23 | &:hover { 24 | color: @nav-footer-link-hover-color; 25 | } 26 | } 27 | 28 | } 29 | 30 | // Footer widgets. 31 | .footer-widgets .widget-column { 32 | padding: 1rem; 33 | } 34 | 35 | // Site info. 36 | .site-info { 37 | padding: 2rem; 38 | text-align: center; 39 | color: @site-info-color; 40 | 41 | p { 42 | margin-bottom: 0; 43 | } 44 | } 45 | 46 | .media-mixin(@break) when (@break = @screen-sm-min) { 47 | 48 | .footer-widgets .widget-column { 49 | padding: 2rem; 50 | } 51 | 52 | .footer-widgets .widget { 53 | margin-bottom: 4rem; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /assets/less/forms.less: -------------------------------------------------------------------------------- 1 | @label: darken( @light-grey, 40% ); 2 | 3 | input, 4 | textarea { 5 | padding: 0.8125rem; 6 | color: @body-text-color; 7 | background: #fff; 8 | border: 2px solid @light-grey; 9 | border-radius: 0; // Prevent rounded corners in iOS. 10 | } 11 | 12 | form input, 13 | textarea { 14 | width: 100%; 15 | } 16 | 17 | select { 18 | border: 2px solid @light-grey; 19 | } 20 | 21 | input { 22 | display: inline-block; 23 | } 24 | 25 | input:focus, 26 | textarea:focus { 27 | outline: 0; 28 | } 29 | 30 | // Remove inner shadow on iOS. 31 | input[type="text"], 32 | input[type="email"], 33 | input[type="tel"], 34 | input[type="search"], 35 | input[type="number"], 36 | input[type="url"], 37 | input[type="password"], 38 | textarea { 39 | -webkit-appearance: none; 40 | } 41 | 42 | input[type="checkbox"], 43 | input[type="radio"] { 44 | width: auto; 45 | cursor: pointer; 46 | vertical-align: middle; 47 | margin-top: -3px; 48 | } 49 | 50 | input[type="radio"] { 51 | margin-right: 0.5rem; 52 | } 53 | 54 | fieldset { 55 | border: none; 56 | margin: 0 0 2rem 0; 57 | padding: 0; 58 | position: relative; 59 | } 60 | 61 | #edd_purchase_form_wrap > fieldset { 62 | &:last-child, 63 | p:last-child { 64 | margin-bottom: 0 !important; // Sometimes you gotta be important. This makes sure it overrides the .edd_form rule (or others) 65 | } 66 | } 67 | 68 | legend { 69 | font-size: 1.5rem; 70 | float: left; 71 | margin-bottom: 1rem; 72 | color: @legend-color; 73 | width: 100%; 74 | } 75 | 76 | label { 77 | text-align: left; 78 | display: block; 79 | margin-bottom: 0.5rem; 80 | cursor: pointer; 81 | 82 | input[type="checkbox"] { 83 | margin-right: 0.25rem; 84 | } 85 | 86 | } 87 | 88 | input[type="radio"] + label, 89 | input[type="checkbox"] + label { 90 | display: inline-block; 91 | margin: 0; 92 | } 93 | 94 | // Styling for unordered lists within form tags 95 | form ul { 96 | list-style-type: none; 97 | margin-left: 0; 98 | } 99 | -------------------------------------------------------------------------------- /assets/less/gallery.less: -------------------------------------------------------------------------------- 1 | // WordPress galleries 2 | 3 | .gallery { 4 | margin-right: -1rem; 5 | margin-left: -1rem; 6 | 7 | figure { 8 | margin: 0; 9 | } 10 | } 11 | 12 | .gallery-item div { 13 | margin: 1rem; 14 | } 15 | 16 | .carousel-open { 17 | height: auto; 18 | } 19 | 20 | .gallery { 21 | display: flex; 22 | flex-wrap: wrap; 23 | } 24 | 25 | .entry-content .gallery { 26 | margin-bottom: 4rem; 27 | } 28 | 29 | .wp-caption-text { 30 | font-style: italic; 31 | } 32 | 33 | .gallery-item { 34 | width: 100%; 35 | 36 | img { 37 | margin: 0 auto; 38 | display: block; 39 | } 40 | 41 | .gallery-caption { 42 | margin: 0.5rem 0 2rem 0; 43 | text-align: center; 44 | } 45 | } 46 | 47 | .gallery-item a { 48 | display: block; 49 | } 50 | 51 | .media-mixin(@break) when (@break = @screen-sm-min) { 52 | 53 | .gallery .gallery-item { 54 | width: 33.333333333%; 55 | } 56 | 57 | .gallery.gallery-columns-2 .gallery-item { 58 | width: 50%; 59 | } 60 | 61 | .gallery.gallery-columns-3 .gallery-item { 62 | width: 33.333333333%; 63 | } 64 | 65 | .gallery.gallery-columns-4 .gallery-item { 66 | width: 25%; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /assets/less/header.less: -------------------------------------------------------------------------------- 1 | // masthead area 2 | 3 | #masthead { 4 | background-color: @masthead-color; 5 | } 6 | 7 | .site-header-main { 8 | margin: 0 auto; 9 | position: relative; 10 | } 11 | 12 | .site-header-wrap { 13 | align-items: center; 14 | margin: 0 auto; 15 | max-width: 1252px; 16 | } 17 | 18 | .header-image { 19 | text-align: center; 20 | 21 | a { 22 | display: block; 23 | } 24 | 25 | img { 26 | display: block; 27 | margin: 0 auto; 28 | } 29 | 30 | } 31 | 32 | // When the full-width layout is selected, make any header images full-width also. 33 | .layout-full-width .header-image img { 34 | width: 100%; 35 | } 36 | 37 | .media-mixin(@break) when (@break = @screen-sm-min) { 38 | 39 | .site-header-wrap { 40 | padding: @site-header-padding; 41 | max-width: @site-header-wrap-max-width; 42 | margin: 0 auto; 43 | display: flex; 44 | } 45 | 46 | } 47 | 48 | // Subtitles support 49 | // https://wordpress.org/plugins/subtitles/ 50 | .entry-title-primary { 51 | display: block; 52 | } 53 | 54 | .entry-title-primary + .subtitle { 55 | margin-top: 0.5rem; 56 | } 57 | 58 | #comments .comments-title span.subtitle { 59 | display: none; 60 | } 61 | 62 | .subtitle { 63 | font-size: @subtitle-font-size-xs; 64 | display: block; 65 | color: @body-text-color; 66 | font-weight: 300; 67 | 68 | p { 69 | margin-bottom: 0; 70 | } 71 | } 72 | 73 | .media-mixin(@break) when (@break = @screen-sm-min) { 74 | 75 | .subtitle { 76 | font-size: @subtitle-font-size; 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /assets/less/helpers.less: -------------------------------------------------------------------------------- 1 | figure { 2 | margin: 0; 3 | } 4 | 5 | img { 6 | max-width: 100%; // responsive images 7 | height: auto; // keeps the image proportionate 8 | border: none; // weird border bug in ie 9 | } 10 | 11 | // box model 12 | input[type="search"], 13 | *, 14 | *:before, 15 | *:after { 16 | box-sizing: border-box; 17 | } 18 | 19 | hr { 20 | margin: 2rem 0; 21 | border: 0; 22 | height: 0; 23 | border-bottom: 1px solid @light-grey; 24 | } 25 | 26 | // highlight a section 27 | .highlight { 28 | background: @highlight-color; 29 | } 30 | 31 | .aligncenter { 32 | clear: both; 33 | display: block; 34 | margin: 0 auto 2rem auto; 35 | } 36 | 37 | .alignleft { 38 | float: left; 39 | margin: 0 2rem 2rem 0; 40 | } 41 | 42 | .alignright { 43 | float: right; 44 | margin: 0 0 2rem 2rem; 45 | } 46 | 47 | .hide { 48 | display: none; 49 | } 50 | 51 | .text-center-xs { 52 | text-align: center; 53 | } 54 | 55 | .text-left-xs { 56 | text-align: left; 57 | } 58 | 59 | .media-mixin(@break) when (@break = @screen-sm-min) { 60 | 61 | .text-center-sm { 62 | text-align: center; 63 | } 64 | 65 | .text-left-sm { 66 | text-align: left; 67 | } 68 | 69 | } 70 | 71 | .media-mixin(@break) when (@break = @screen-md-min) { 72 | 73 | .text-center-md { 74 | text-align: center; 75 | } 76 | 77 | .text-left-md { 78 | text-align: left; 79 | } 80 | 81 | } 82 | 83 | .media-mixin(@break) when (@break = @screen-lg-min) { 84 | 85 | .text-center-lg { 86 | text-align: center; 87 | } 88 | 89 | .text-left-lg { 90 | text-align: left; 91 | } 92 | 93 | } 94 | 95 | @media (max-width: @screen-xs-max) { 96 | 97 | .hidden-xs { 98 | display: none !important; 99 | } 100 | 101 | } 102 | @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { 103 | 104 | .hidden-sm { 105 | display: none !important; 106 | } 107 | 108 | } 109 | @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { 110 | 111 | .hidden-md { 112 | display: none !important; 113 | } 114 | 115 | } 116 | @media (min-width: @screen-lg-min) { 117 | 118 | .hidden-lg { 119 | display: none !important; 120 | } 121 | 122 | } 123 | -------------------------------------------------------------------------------- /assets/less/links.less: -------------------------------------------------------------------------------- 1 | // links 2 | a { 3 | color: @link-color; 4 | text-decoration: none; 5 | outline: 0; 6 | 7 | &:hover, 8 | &:focus, 9 | &:active, 10 | &:visited { 11 | text-decoration: none; 12 | outline: 0; 13 | } 14 | 15 | &:hover { 16 | outline: 0; 17 | color: @link-hover-color; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /assets/less/media-queries.less: -------------------------------------------------------------------------------- 1 | @media only screen and ( max-width: @nav-sm-max ) { 2 | .media-mixin( @nav-sm-max ); 3 | } 4 | 5 | @media only screen and ( max-width: @screen-xs-max ) { 6 | .media-mixin( @screen-xs-max ); 7 | } 8 | 9 | @media only screen and ( min-width: @screen-sm-min ) { 10 | .media-mixin( @screen-sm-min ); 11 | } 12 | 13 | @media only screen and ( min-width: @screen-md-min ) { 14 | .media-mixin( @screen-md-min ); 15 | } 16 | 17 | @media only screen and ( min-width: @screen-lg-min ) { 18 | .media-mixin( @screen-lg-min ); 19 | } 20 | -------------------------------------------------------------------------------- /assets/less/navigation/dropdown-toggle.less: -------------------------------------------------------------------------------- 1 | // Dropdown toggles. 2 | // Expands the sub menu items at mobile sizes. 3 | .dropdown-toggle { 4 | background-color: transparent; 5 | border: 0; 6 | border-radius: 0; 7 | color: @dropdown-toggle-color; 8 | content: ""; 9 | width: 48px; 10 | height: 48px; 11 | padding: 0; 12 | position: absolute; 13 | text-transform: none; 14 | top: 0; 15 | right: 0; 16 | 17 | &:hover { 18 | background-color: transparent; 19 | border: none; 20 | color: @dropdown-toggle-color; 21 | } 22 | } 23 | 24 | // Adds the arrow to the dropdown toggle. 25 | .dropdown-toggle:after { 26 | content: "\f431"; 27 | font-size: 24px; 28 | position: relative; 29 | left: 1px; 30 | width: 48px; 31 | } 32 | 33 | .dropdown-toggle.toggled-on:after { 34 | content: "\f432"; 35 | } 36 | 37 | .media-mixin(@break) when (@break = @desktop-nav) { 38 | 39 | .dropdown-toggle { 40 | display: none; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /assets/less/navigation/menu-toggle.less: -------------------------------------------------------------------------------- 1 | // Menu button shown at mobile sizes 2 | 3 | #menu-toggle-wrap { 4 | display: flex; 5 | align-self: center; 6 | align-items: inherit; // prevent the button from taking up the full height 7 | } 8 | 9 | .menu-toggle { 10 | background-color: @menu-toggle-bg-color; 11 | border: @menu-toggle-border; 12 | border-radius: 0; 13 | font-size: 1rem; 14 | width: 100%; 15 | padding: 1rem 1.5rem; 16 | line-height: 1; 17 | } 18 | 19 | .menu-toggle:hover { 20 | background-color: @menu-toggle-bg-hover-color; 21 | color: @menu-toggle-hover-color; 22 | border: @menu-toggle-hover-border; 23 | } 24 | 25 | .no-js .menu-toggle { 26 | display: none; 27 | } 28 | 29 | // margin out all UL's 30 | .mobile-navigation ul { 31 | margin: 0; 32 | } 33 | 34 | .media-mixin(@break) when (@break = @desktop-nav) { 35 | 36 | .mobile-navigation, 37 | #menu-toggle-wrap { 38 | display: none; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /assets/less/navigation/mobile-menu.less: -------------------------------------------------------------------------------- 1 | #mobile-menu { 2 | overflow: hidden; 3 | max-height: 0; 4 | 5 | .sub-menu a { 6 | padding-left: 2rem; 7 | } 8 | 9 | ul { 10 | display: none; 11 | list-style-type: none; 12 | 13 | .sub-menu a { 14 | padding-left: 4rem; 15 | } 16 | } 17 | 18 | li { 19 | position: relative; 20 | margin-bottom: 0; 21 | } 22 | 23 | a { 24 | display: block; 25 | line-height: 1.5; 26 | font-size: @mobile-menu-font-size; 27 | padding: 0.75rem 1rem; 28 | color: @mobile-menu-link-color; 29 | } 30 | 31 | } 32 | 33 | .no-js #mobile-menu, 34 | .toggled-on #mobile-menu { 35 | max-height: 2000px; 36 | } 37 | 38 | #mobile-menu .current-menu-item > a, 39 | #mobile-menu .current_page_ancestor > a { 40 | color: @nav-active-color; 41 | } 42 | 43 | // leave right margin for the button 44 | #mobile-menu .menu-item-has-children > a { 45 | margin: 0; 46 | padding-right: 1rem; 47 | } 48 | 49 | .media-mixin(@break) when (@break = @nav-sm-max) { 50 | 51 | #mobile-menu ul.toggled-on { 52 | display: block; 53 | } 54 | 55 | } 56 | 57 | .media-mixin(@break) when (@break = @screen-xs-max) { 58 | 59 | .site-branding { 60 | padding: 2rem 1rem; 61 | } 62 | } 63 | 64 | .media-mixin(@break) when (@break = @desktop-nav) { 65 | 66 | #mobile-menu { 67 | display: none; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /assets/less/navigation/post-navigation.less: -------------------------------------------------------------------------------- 1 | // WordPress navigation 2 | 3 | // Shown when navigating pages of posts (E.g. /page/2) 4 | // Example: Older Posts Newer Posts 5 | // Also controls the previous and next posts 6 | .navigation.paging-navigation, 7 | .navigation.post-navigation { 8 | border-top: 2px solid @light-grey; 9 | padding: 1rem 0 0 0; 10 | } 11 | 12 | // Page links. E.g. Pages 1 2 3 13 | .page-links { 14 | margin-bottom: 1rem; 15 | 16 | a { 17 | display: inline-block; 18 | padding: 0.25rem; 19 | line-height: 1; 20 | } 21 | } 22 | 23 | // Post navigation. 24 | // Shows at the bottom of a single post. 25 | .post-navigation { 26 | 27 | .nav-links div { 28 | margin-bottom: 1rem; 29 | } 30 | 31 | a, span { 32 | display: block; 33 | } 34 | 35 | .meta-nav { 36 | color: @post-navigation-meta-nav-color; 37 | } 38 | 39 | } 40 | 41 | .media-mixin(@break) when (@break = @screen-sm-min) { 42 | 43 | // navigation pagination 44 | .navigation .nav-links { 45 | display: flex; 46 | } 47 | 48 | .nav-next { 49 | text-align: right; 50 | margin-left: auto; 51 | } 52 | 53 | .navigation.paging-navigation, 54 | .navigation.post-navigation { 55 | border-top: 2px solid @light-grey; 56 | padding: 1rem 0 0 0; 57 | 58 | .nav-links { 59 | justify-content: space-between; 60 | 61 | // Previous / Next links 62 | div { 63 | width: 50%; 64 | } 65 | } 66 | 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /assets/less/navigation/secondary.less: -------------------------------------------------------------------------------- 1 | // Secondary navigation styling 2 | .secondary-navigation a { 3 | display: block; 4 | line-height: 32px; 5 | padding: 0.5rem 1rem; 6 | } 7 | 8 | .secondary-navigation ul { 9 | display: flex; 10 | 11 | // This is for when the secondary navigation might wrap below the site title 12 | margin-left: -0.5rem; 13 | 14 | li { 15 | margin-bottom: 0; 16 | } 17 | 18 | } 19 | 20 | // show secondary navigation 21 | .media-mixin(@break) when (@break = @desktop-nav) { 22 | 23 | #site-header-secondary-menu { 24 | display: flex; 25 | font-size: @nav-secondary-font-size; 26 | align-items: center; 27 | 28 | a { 29 | color: @nav-secondary-color; 30 | } 31 | 32 | a:hover { 33 | color: @nav-secondary-hover-color; 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /assets/less/normalize.less: -------------------------------------------------------------------------------- 1 | // normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css 2 | html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} 3 | body{margin:0} 4 | article,aside,footer,header,nav,section{display:block} 5 | h1{font-size:2em;margin:.67em 0} 6 | figcaption,figure,main{display:block} 7 | figure{margin:1em 40px} 8 | hr{box-sizing:content-box;height:0;overflow:visible} 9 | pre{font-family:monospace,monospace;font-size:1em} 10 | a{background-color:transparent;-webkit-text-decoration-skip:objects} 11 | abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted} 12 | b,strong{font-weight:inherit;font-weight:bolder} 13 | code,kbd,samp{font-family:monospace,monospace;font-size:1em} 14 | dfn{font-style:italic} 15 | mark{background-color:#ff0;color:#000} 16 | small{font-size:80%} 17 | sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} 18 | sub{bottom:-.25em} 19 | sup{top:-.5em} 20 | audio,video{display:inline-block} 21 | audio:not([controls]){display:none;height:0} 22 | img{border-style:none} 23 | svg:not(:root){overflow:hidden} 24 | button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0} 25 | button,input{overflow:visible} 26 | button,select{text-transform:none} 27 | button,html [type="button"],/* 1 */ 28 | [type="reset"],[type="submit"]{-webkit-appearance:button} 29 | button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0} 30 | button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText} 31 | fieldset{padding:.35em .75em .625em} 32 | legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal} 33 | progress{display:inline-block;vertical-align:baseline} 34 | textarea{overflow:auto} 35 | [type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0} 36 | [type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto} 37 | [type="search"]{-webkit-appearance:textfield;outline-offset:-2px} 38 | [type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none} 39 | ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit} 40 | details,/* 1 */ 41 | menu{display:block} 42 | summary{display:list-item} 43 | canvas{display:inline-block} 44 | template{display:none} 45 | [hidden]{display:none} 46 | -------------------------------------------------------------------------------- /assets/less/posts-and-pages.less: -------------------------------------------------------------------------------- 1 | .sticky { 2 | // Placeholder for now. 3 | position: relative; 4 | } 5 | 6 | // Shown above the post title on single post pages and on archive pages 7 | .entry-meta, 8 | .entry-footer { 9 | font-size: 1rem; 10 | color: @entry-meta; 11 | 12 | a { 13 | color: @entry-meta; 14 | 15 | &:hover { 16 | color: @entry-meta-hover-color; 17 | } 18 | } 19 | } 20 | 21 | figure.wp-caption { 22 | max-width: 100%; 23 | 24 | &.alignnone { 25 | margin: 0 0 2rem 0; 26 | } 27 | } 28 | 29 | article[class^="post-"] + article[class^="post-"] { 30 | padding-top: 2rem; 31 | } 32 | 33 | .entry-title a { 34 | color: @heading-link-color; 35 | 36 | &:hover { 37 | color: @heading-link-hover-color; 38 | } 39 | } 40 | 41 | .site-main > article { 42 | margin-bottom: 2rem; 43 | } 44 | 45 | // Category and tags. 46 | // Shown below a single post. 47 | .cat-tags-links span { 48 | display: block; 49 | } 50 | 51 | .author-info { 52 | padding: 2rem 0; 53 | border-top: 2px solid @light-grey; 54 | border-bottom: 2px solid @light-grey; 55 | margin: 4rem 0 2rem 0; 56 | } 57 | 58 | .author-bio { 59 | font-size: 1rem; 60 | font-style: italic; 61 | margin-bottom: 0; 62 | } 63 | 64 | .author-avatar { 65 | margin: 0 0 1.5rem 0; 66 | 67 | img { 68 | display: block; 69 | border-radius: 100%; 70 | } 71 | } 72 | 73 | .post-thumbnail { 74 | margin: 0 0 2rem 0; 75 | display: block; 76 | } 77 | 78 | .post-thumbnail .wp-post-image { 79 | display: block; 80 | margin: 0 auto; 81 | } 82 | 83 | // comments 84 | 85 | #comments { 86 | padding-top: 2rem; 87 | } 88 | 89 | #comments ol { 90 | margin-left: 0; 91 | } 92 | 93 | .comment-metadata { 94 | margin-bottom: 2rem; 95 | } 96 | 97 | .comment-metadata, 98 | .pingback .edit-link { 99 | font-size: 1rem; 100 | } 101 | 102 | .comment a.url { 103 | color: @dark-grey; 104 | } 105 | 106 | .comment-author { 107 | margin-bottom: 0.5rem; 108 | } 109 | 110 | .comment-author .avatar { 111 | float: left; 112 | height: 28px; 113 | margin-right: 0.875rem; 114 | position: relative; 115 | width: 28px; 116 | } 117 | .comment-metadata, 118 | .pingback .edit-link { 119 | color: @body-text-color; 120 | font-size: 0.875rem; 121 | line-height: 1.62; 122 | } 123 | 124 | .comment-metadata { 125 | margin-bottom: 2rem; 126 | } 127 | 128 | 129 | .comment-list > .comment { 130 | padding-left: 0; 131 | } 132 | 133 | .comment-list li { 134 | list-style-type: none; 135 | } 136 | 137 | #respond { 138 | margin-top: 2rem; 139 | margin-bottom: 2rem; 140 | } 141 | 142 | .comment-reply-link, 143 | #cancel-comment-reply-link, 144 | .logged-in-as { 145 | font-size: 0.875rem; 146 | } 147 | 148 | .entry-footer .edit-link { 149 | margin-top: 1rem; 150 | display: inline-block; 151 | } 152 | 153 | .comment-metadata a, 154 | .pingback .comment-edit-link, 155 | #cancel-comment-reply-link, 156 | .logged-in-as a, 157 | .comment-reply-link { 158 | color: @medium-grey; 159 | 160 | &:hover { 161 | color: @dark-grey; 162 | } 163 | } 164 | 165 | #cancel-comment-reply-link { 166 | float: right; 167 | color: @medium-grey; 168 | font-weight: 500; 169 | } 170 | 171 | .comments-area .children { 172 | margin-top: 2rem; 173 | } 174 | 175 | // Hide updated date. 176 | .updated:not(.published) { 177 | display: none; 178 | } 179 | 180 | // Pagination. 181 | .edd_pagination, 182 | .edd-review-navigation, 183 | .edd-reviews-vendor-feedback-pagination, 184 | #edd_user_commissions .navigation, 185 | #edd_download_pagination, 186 | .fes-order-list-pagination-container, 187 | .fes-pagination, 188 | .fes-product-list-pagination-container, 189 | .affwp-pagination { 190 | width: 100%; 191 | display: flex; 192 | justify-content: center; 193 | margin-top: 2rem; 194 | margin-bottom: 2rem; 195 | color: @body-text-color; 196 | 197 | .current, 198 | a.page-numbers { 199 | color: @body-text-color; 200 | font-size: 0.875rem; 201 | border: 1px solid @light-grey; 202 | } 203 | 204 | .current, 205 | a.page-numbers, 206 | .dots { 207 | padding: 0.25rem 0.75rem; 208 | margin-right: 0.5rem; 209 | } 210 | 211 | .current, 212 | a.page-numbers:hover { 213 | background: @light-grey; 214 | border-color: @light-grey; 215 | color: @body-text-color; 216 | } 217 | 218 | } 219 | 220 | // Page header. 221 | 222 | .page-header { 223 | padding-left: 1rem; 224 | padding-right: 1rem; 225 | } 226 | 227 | .page-header h1 { 228 | margin-bottom: 0; 229 | } 230 | 231 | .media-mixin(@break) when (@break = @screen-sm-min) { 232 | 233 | .author-info { 234 | display: flex; 235 | } 236 | 237 | .author-avatar { 238 | margin: 0 1.5rem 0 0; 239 | } 240 | 241 | .author-description { 242 | flex: 1; 243 | } 244 | 245 | .page-header { 246 | padding-left: 2rem; 247 | padding-right: 2rem; 248 | } 249 | 250 | } 251 | 252 | .media-mixin(@break) when (@break = @screen-md-min) { 253 | 254 | .comment { 255 | padding: 2rem; 256 | margin-right: -2rem; 257 | } 258 | 259 | } 260 | -------------------------------------------------------------------------------- /assets/less/search.less: -------------------------------------------------------------------------------- 1 | #mobile-menu { 2 | .menu-item-search { 3 | display: block; // Fixes a display issue in Chrome on the
  • 4 | } 5 | 6 | .search-form { 7 | padding: 1rem; 8 | } 9 | 10 | } 11 | 12 | // Search icon color 13 | .search-submit svg * { 14 | stroke: @search-icon-color; 15 | } 16 | 17 | // Search form. 18 | .search-form { 19 | display: flex; 20 | 21 | label { 22 | margin-bottom: 0; 23 | width: 100%; 24 | } 25 | 26 | .search-field { 27 | border-right: none; 28 | font-size: 1rem; // 16px 29 | } 30 | 31 | .search-field, 32 | .search-submit { 33 | border: none; 34 | background: @light-grey; 35 | } 36 | 37 | .search-submit { 38 | padding: 0.8125rem; 39 | 40 | svg { 41 | vertical-align: inherit; 42 | } 43 | 44 | } 45 | 46 | } 47 | 48 | .site-header-menu { 49 | .search-form { 50 | 51 | .search-field, 52 | .search-submit { 53 | padding: 0.5rem; 54 | } 55 | 56 | } 57 | } 58 | 59 | .site-header-menu .primary-menu .search-form { 60 | align-items: center; 61 | } 62 | 63 | .media-mixin(@break) when (@break = @screen-sm-min) { 64 | 65 | // Search forms in a menu. 66 | .site-header-menu { 67 | 68 | .search-form { 69 | margin-left: 1rem; 70 | width: 11rem; 71 | } 72 | 73 | .search-field { 74 | font-size: 0.875rem; 75 | } 76 | 77 | } 78 | 79 | } -------------------------------------------------------------------------------- /assets/less/structure.less: -------------------------------------------------------------------------------- 1 | // Structure 2 | 3 | #main { 4 | padding: 1rem; 5 | } 6 | 7 | .media-mixin(@break) when (@break = @screen-sm-min) { 8 | #main { 9 | padding: 2rem; 10 | } 11 | 12 | } 13 | 14 | // site wrapper 15 | #page { 16 | max-width: @page-max-width; 17 | min-height: 100%; 18 | margin-left: auto; 19 | margin-right: auto; 20 | word-wrap: break-word; 21 | 22 | // flexbox sticky footer 23 | display: flex; 24 | flex-direction: column; 25 | } 26 | 27 | .layout-full-width #page { 28 | max-width: none; 29 | } 30 | 31 | // content area 32 | #content { 33 | background: @content-color; 34 | flex: 1 0 auto; 35 | } 36 | 37 | #primary, 38 | #secondary { 39 | padding: 0; 40 | } 41 | 42 | .no-sidebar #primary { 43 | width: 100%; 44 | } 45 | 46 | // houses the primary and secondary columns 47 | .content-wrapper { 48 | max-width: @width-standard; 49 | margin-left: auto; 50 | margin-right: auto; 51 | } 52 | 53 | // wrappers are always centered 54 | .wrapper { 55 | margin-left: auto; 56 | margin-right: auto; 57 | } 58 | 59 | body .wrapper { 60 | max-width: @width-standard; 61 | } 62 | 63 | .container > .wrapper { 64 | max-width: @width-standard - 64; // 4rem 65 | } 66 | 67 | .media-mixin(@break) when (@break = @screen-md-min) { 68 | 69 | .content-wrapper { 70 | display: flex; 71 | justify-content: space-between; 72 | } 73 | 74 | #main { 75 | flex: 1; 76 | } 77 | 78 | #secondary { 79 | padding: 0; 80 | } 81 | 82 | .wrapper .entry-content { 83 | margin: 0 auto; 84 | } 85 | 86 | // Slim template. 87 | .slim #primary { 88 | width: 66.667%; 89 | margin: 0 auto; 90 | } 91 | 92 | } 93 | -------------------------------------------------------------------------------- /assets/less/style.less: -------------------------------------------------------------------------------- 1 | // Common variables 2 | // These are separated so they can be overridden in a child theme if required. 3 | @import 'config'; 4 | 5 | // Common imports. 6 | @import 'common-imports'; 7 | 8 | // Media queries. 9 | @import 'media-queries'; 10 | -------------------------------------------------------------------------------- /assets/less/typography.less: -------------------------------------------------------------------------------- 1 | body { 2 | text-rendering: geometricPrecision; 3 | -webkit-font-smoothing: antialiased; 4 | -moz-osx-font-smoothing: grayscale; 5 | } 6 | 7 | body, 8 | button, 9 | input, 10 | select, 11 | textarea { 12 | color: @body-text-color; 13 | font-family: @font-stack; 14 | font-size: @body-text-size; 15 | line-height: 1.5rem; 16 | } 17 | 18 | // site-title 19 | .site-title { 20 | margin-bottom: 0; 21 | font-size: 2rem; 22 | font-weight: 600; // This is neccessary since the homepage will wrap the site title with

    , whereas another page will wrap it with

    23 | line-height: 1; 24 | color: @heading-color; 25 | font-family: @font-stack; 26 | } 27 | 28 | .site-title a, 29 | .site-title a:hover { color: @site-title-color; } 30 | 31 | // figcaption 32 | figcaption { 33 | color: @body-text-color; 34 | font-size: 0.875rem; 35 | } 36 | 37 | // site description 38 | .site-description { 39 | font-size: 1.2rem; 40 | margin-bottom: 0; 41 | color: @site-description-color; 42 | display: none; 43 | } 44 | 45 | // headings 46 | h1, h2, h3, h4, h5, h6 { 47 | font-family: @font-stack; 48 | color: @heading-color; 49 | line-height: 1.2; 50 | margin: 0 0 1.62rem 0; 51 | font-weight: 600; 52 | } 53 | 54 | h1 { font-size: @h1-font-size; } 55 | h2 { font-size: @h2-font-size; } 56 | h3 { font-size: @h3-font-size; } 57 | h4 { font-size: @h4-font-size; } 58 | h5 { font-size: @h5-font-size; } 59 | h6 { font-size: @h6-font-size; } 60 | 61 | // Add margin top for headings within entry content. 62 | .entry-content { 63 | h1 { margin-top: 3.24rem; } 64 | h2 { margin-top: 3.24rem; } 65 | h3 { margin-top: 3.24rem; } 66 | h4 { margin-top: 3.24rem; } 67 | h5 { margin-top: 3.24rem; } 68 | h6 { margin-top: 3.24rem; } 69 | } 70 | 71 | // remove margin on the first instance of headings. 72 | h1:first-child, 73 | h2:first-child, 74 | h3:first-child, 75 | h4:first-child, 76 | h5:first-child, 77 | h6:first-child, 78 | .post-title, 79 | .entry-title 80 | { 81 | margin-top: 0; 82 | } 83 | 84 | code { 85 | color: @code-color; 86 | word-wrap: break-word; 87 | } 88 | 89 | p, figcaption { 90 | line-height: 1.62; 91 | } 92 | 93 | p { 94 | margin: 0 0 1.62rem 0; 95 | } 96 | 97 | strong { 98 | font-weight: bold; 99 | } 100 | 101 | dfn, 102 | cite, 103 | em, 104 | i { 105 | font-style: italic; 106 | } 107 | 108 | blockquote { 109 | border-left: 4px solid @light-grey; 110 | padding-left: 1.62rem; 111 | margin: 0 0 1.62rem -1.62rem; 112 | font-style: italic; 113 | } 114 | 115 | blockquote, 116 | q { 117 | quotes: none; 118 | } 119 | 120 | blockquote:before, 121 | blockquote:after, 122 | q:before, 123 | q:after { 124 | content: ""; 125 | } 126 | 127 | blockquote p { 128 | margin-bottom: 1.62rem; 129 | } 130 | 131 | blockquote cite, 132 | blockquote small { 133 | color: #1a1a1a; 134 | display: block; 135 | font-size: 1rem; 136 | line-height: 1.75; 137 | } 138 | 139 | blockquote cite:before, 140 | blockquote small:before { 141 | content: "\2014\00a0"; 142 | } 143 | 144 | blockquote em, 145 | blockquote i, 146 | blockquote cite { 147 | font-style: normal; 148 | } 149 | 150 | blockquote > :last-child { 151 | margin-bottom: 0; 152 | } 153 | 154 | address { 155 | font-style: italic; 156 | margin: 0 0 1.62rem; 157 | } 158 | 159 | code, 160 | kbd, 161 | tt, 162 | var, 163 | samp, 164 | pre { 165 | font-family: Inconsolata, monospace; 166 | } 167 | 168 | pre { 169 | border: 1px solid @light-grey; 170 | font-size: 1rem; 171 | line-height: 1.3; 172 | margin: 0 0 1.62rem; 173 | max-width: 100%; 174 | overflow: auto; 175 | padding: 1.5rem; 176 | white-space: pre; 177 | white-space: pre-wrap; 178 | word-wrap: break-word; 179 | } 180 | 181 | code { 182 | padding: 0.125rem 0.25rem; 183 | } 184 | 185 | abbr, 186 | acronym { 187 | cursor: help; 188 | text-decoration: none; 189 | } 190 | 191 | mark, 192 | ins { 193 | background: @primary-color; 194 | color: #fff; 195 | padding: 0.125em 0.25em; 196 | text-decoration: none; 197 | } 198 | 199 | big { 200 | font-size: 125%; 201 | } 202 | 203 | .site-footer { 204 | font-size: @footer-font-size; 205 | } 206 | 207 | h2.widget-title { 208 | font-size: 1.2rem; 209 | } 210 | 211 | #primary-sidebar { 212 | font-size: 1rem; 213 | } 214 | 215 | .media-mixin(@break) when (@break = @screen-sm-min) { 216 | 217 | h1 { font-size: @h1-font-size-sm-min; } 218 | h2 { font-size: @h2-font-size-sm-min; } 219 | h3 { font-size: @h3-font-size-sm-min; } 220 | h4 { font-size: @h4-font-size-sm-min; } 221 | h5 { font-size: @h5-font-size-sm-min; } 222 | h6 { font-size: @h6-font-size-sm-min; } 223 | 224 | .site-description { display: block; } 225 | 226 | .page-header .wrapper { 227 | max-width: @width-standard - 64px; 228 | } 229 | 230 | } 231 | -------------------------------------------------------------------------------- /assets/less/widgets.less: -------------------------------------------------------------------------------- 1 | .widget { 2 | line-height: 1.62; 3 | 4 | li { 5 | margin-bottom: 0.5rem; 6 | } 7 | 8 | } 9 | 10 | aside li { 11 | font-size: 1rem; 12 | padding: 0; 13 | } 14 | 15 | #primary-sidebar .widget { 16 | padding: 1rem; 17 | 18 | > *:last-child { 19 | margin-bottom: 0; 20 | } 21 | } 22 | 23 | .media-mixin(@break) when (@break = @screen-sm-min) { 24 | 25 | #primary-sidebar .widget { 26 | padding: 2rem; 27 | } 28 | 29 | } 30 | 31 | // Calendar widget. 32 | 33 | #wp-calendar { 34 | 35 | td, th { 36 | padding: 0.5rem; 37 | } 38 | 39 | } 40 | 41 | #wp-calendar caption { 42 | margin-bottom: 0.5rem; 43 | } 44 | 45 | #wp-calendar th, 46 | #wp-calendar td:not( #prev ) { 47 | text-align: center; 48 | } 49 | 50 | #wp-calendar td#next { 51 | text-align: right; 52 | } 53 | 54 | // Recent posts. 55 | 56 | .widget_recent_entries .post-date { 57 | display: block; 58 | } -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 18 | 19 |

    20 | 21 | 22 |

    23 | 27 |

    28 | 29 | 30 | 31 |
      32 | 'ol', 35 | 'short_ping' => true, 36 | 'avatar_size' => 56, 37 | ) ); 38 | ?> 39 |
    40 | 41 | 42 | 43 | 44 | 45 | 49 |

    50 | 51 | 52 | 53 | 54 |
    55 | -------------------------------------------------------------------------------- /edd_templates/checkout_recommendations.php: -------------------------------------------------------------------------------- 1 | 7 | 8 | $suggestions, 'post_type' => 'download' ) ); 17 | 18 | if ( $suggested_downloads->have_posts() ) : 19 | 20 | $single = __( 'this item', 'themedd' ); 21 | $plural = __( 'these items', 'themedd' ); 22 | $cart_items_text = _n( $single, $plural, count( $post_ids ), 'themedd' ); 23 | ?> 24 |
    25 |
    26 |
    27 | have_posts() ) : ?> 28 | the_post(); ?> 29 |
    30 |
    31 | 32 | 33 | 34 | 35 |
    36 | 37 | 38 | 39 |
    40 | 41 | 42 | 43 | 44 |

    45 | 46 |

    47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
    57 | get_the_ID(), 60 | 'price' => false, 61 | 'direct' => false, 62 | ); 63 | $purchase_link_args = apply_filters( 'edd_rp_purchase_link_args', $purchase_link_args ); 64 | echo edd_get_purchase_link( $purchase_link_args ); 65 | ?> 66 |
    67 |
    68 | 69 |
    70 | 71 |
    72 |
    73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /edd_templates/shortcode-content-price.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /edd_templates/shortcode-download.php: -------------------------------------------------------------------------------- 1 | 17 | 18 |
    19 | 20 |
    21 | 22 | 61 |
    62 | 63 |
    64 | -------------------------------------------------------------------------------- /edd_templates/single_recommendations.php: -------------------------------------------------------------------------------- 1 | ID ); 4 | $count = (int) edd_get_option( 'edd_rp_suggestion_count', 3 ); 5 | 6 | if ( is_array( $suggestion_data ) && !empty( $suggestion_data ) ) : 7 | $suggestions = array_keys( $suggestion_data ); 8 | 9 | $suggested_downloads = new WP_Query( array( 'post__in' => $suggestions, 'post_type' => 'download' ) ); 10 | 11 | if ( $suggested_downloads->have_posts() ) : ?> 12 |
    13 |
    14 |
    15 | have_posts() ) : ?> 16 | the_post(); ?> 17 |
    18 |
    19 | 20 | 21 | 22 | 23 |
    24 | 25 | 26 | 27 |
    28 | 29 | 30 | 31 | 32 |

    33 | 34 |

    35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
    43 | get_the_ID(), 46 | 'price' => false, 47 | 'direct' => false, 48 | ); 49 | $purchase_link_args = apply_filters( 'edd_rp_purchase_link_args', $purchase_link_args ); 50 | echo edd_get_purchase_link( $purchase_link_args ); 51 | ?> 52 |
    53 | 54 | 55 |
    56 |
    57 | 58 |
    59 |
    60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /edd_templates/widget-cart-item.php: -------------------------------------------------------------------------------- 1 |
  • 2 | {item_title} 3 | {item_quantity} @ 4 | {item_amount} 5 | - 6 | 7 |
  • -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
    14 | 15 |
    16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | 6 | class="no-js"> 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | > 17 | 18 | 19 | 20 |
    21 | 22 | 23 | 24 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /includes/actions.php: -------------------------------------------------------------------------------- 1 |

    %s

    ', $message ); 41 | } 42 | 43 | /** 44 | * Prevents the Customizer from being loaded on WordPress versions prior to 4.7. 45 | * 46 | * @since Themedd 1.0 47 | * 48 | * @global string $wp_version WordPress version. 49 | */ 50 | function themedd_customize() { 51 | wp_die( sprintf( __( 'Themedd requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'themedd' ), $GLOBALS['wp_version'] ), '', array( 52 | 'back_link' => true, 53 | ) ); 54 | } 55 | add_action( 'load-customize.php', 'themedd_customize' ); 56 | 57 | /** 58 | * Prevents the Theme Preview from being loaded on WordPress versions prior to 4.7. 59 | * 60 | * @since Themedd 1.0 61 | * 62 | * @global string $wp_version WordPress version. 63 | */ 64 | function themedd_preview() { 65 | if ( isset( $_GET['preview'] ) ) { 66 | wp_die( sprintf( __( 'Themedd requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'themedd' ), $GLOBALS['wp_version'] ) ); 67 | } 68 | } 69 | add_action( 'template_redirect', 'themedd_preview' ); 70 | -------------------------------------------------------------------------------- /includes/class-themedd.php: -------------------------------------------------------------------------------- 1 | __( 'Sidebar', 'themedd' ), 29 | 'id' => 'sidebar-1', 30 | 'description' => __( 'Add widgets here to appear in your sidebar.', 'themedd' ) 31 | ); 32 | 33 | /** 34 | * The download sidebar when Easy Digital Downloads is active 35 | */ 36 | if ( themedd_is_edd_active() ) { 37 | $sidebar_args['sidebar_download'] = array( 38 | 'name' => __( 'Download Sidebar', 'themedd' ), 39 | 'id' => 'sidebar-download', 40 | 'description' => sprintf( __( 'Add widgets here to appear in your %s sidebar.', 'themedd' ), edd_get_label_singular() ) 41 | ); 42 | } 43 | 44 | /** 45 | * Sets the number of allowed widget areas 46 | */ 47 | $footer_widget_areas = apply_filters( 'themedd_footer_widget_areas', 4 ); 48 | 49 | for ( $i = 1; $i <= intval( $footer_widget_areas ); $i++ ) { 50 | 51 | $footer = sprintf( 'footer_%d', $i ); 52 | 53 | $sidebar_args[ $footer ] = array( 54 | 'name' => sprintf( __( 'Footer %d', 'themedd' ), $i ), 55 | 'id' => sprintf( 'footer-%d', $i ), 56 | 'description' => sprintf( __( 'Add widgets here to appear in footer %d.', 'themedd' ), $i ) 57 | ); 58 | 59 | } 60 | 61 | $sidebar_args = apply_filters( 'themedd_sidebar_args', $sidebar_args ); 62 | 63 | foreach ( $sidebar_args as $sidebar => $args ) { 64 | 65 | $widget_tags = array( 66 | 'before_widget' => '
    ', 67 | 'after_widget' => '
    ', 68 | 'before_title' => '

    ', 69 | 'after_title' => '

    ' 70 | ); 71 | 72 | /** 73 | * Dynamically generated filter hooks. Allow changing widget wrapper and title tags. See the list below. 74 | * 75 | * themedd_sidebar_widget_tags 76 | * themedd_sidebar_download_widget_tags 77 | * 78 | * themedd_footer_1_widget_tags 79 | * themedd_footer_2_widget_tags 80 | * themedd_footer_3_widget_tags 81 | * themedd_footer_4_widget_tags 82 | */ 83 | $filter_hook = sprintf( 'themedd_%s_widget_tags', $sidebar ); 84 | $widget_tags = apply_filters( $filter_hook, $widget_tags ); 85 | 86 | if ( is_array( $widget_tags ) ) { 87 | register_sidebar( $args + $widget_tags ); 88 | } 89 | 90 | } 91 | 92 | } 93 | 94 | } 95 | new Themedd(); 96 | -------------------------------------------------------------------------------- /includes/compatibility.php: -------------------------------------------------------------------------------- 1 | '; 75 | 76 | return $markup; 77 | } 78 | 79 | } 80 | new Themedd_Subtitles; 81 | -------------------------------------------------------------------------------- /includes/compatibility/edd/actions.php: -------------------------------------------------------------------------------- 1 | ' . __( 'Free', 'themedd' ) . ''; 27 | } elseif ( edd_has_variable_prices( $download_id ) ) { 28 | $price = '' . __( 'From', 'themedd' ) . ' ' . edd_currency_filter( edd_format_amount( edd_get_lowest_price_option( $download_id ) ) ) . ''; 29 | } else { 30 | $price = edd_price( $download_id, false ); 31 | } 32 | 33 | echo $price; 34 | 35 | } 36 | add_action( 'themedd_edd_download_info', 'themedd_edd_price', 10, 1 ); 37 | 38 | /** 39 | * Download purchase link 40 | * 41 | * @since 1.0.0 42 | */ 43 | function themedd_edd_purchase_link( $download_id ) { 44 | 45 | if ( get_post_meta( $download_id, '_edd_hide_purchase_link', true ) ) { 46 | return; // Do not show if auto output is disabled 47 | } 48 | 49 | echo edd_get_purchase_link(); 50 | 51 | } 52 | add_action( 'themedd_edd_download_info', 'themedd_edd_purchase_link', 10, 1 ); 53 | 54 | /** 55 | * Remove and deactivate all styling included with EDD 56 | * 57 | * @since 1.0.0 58 | */ 59 | remove_action( 'wp_enqueue_scripts', 'edd_register_styles' ); 60 | 61 | /** 62 | * Remove the purchase link at the bottom of the single download page. 63 | * 64 | * @since 1.0.0 65 | */ 66 | remove_action( 'edd_after_download_content', 'edd_append_purchase_link' ); 67 | 68 | /** 69 | * Alter EDD download loops. 70 | * 71 | * Affects: 72 | * 73 | * archive-download.php, 74 | * taxonomy-download-category.php 75 | * taxonomy-download-category.php 76 | * 77 | * @since 1.0.0 78 | * @since 1.0.3 Added support for all orderby options. 79 | * 80 | * @return void 81 | */ 82 | 83 | function themedd_edd_pre_get_posts( $query ) { 84 | 85 | // Get the download grid options. 86 | $download_grid_options = themedd_edd_download_grid_options(); 87 | 88 | // Defaults to 9 downloads like EDD's [downloads] shortcode. 89 | $downloads_per_page = $download_grid_options['number']; 90 | 91 | // Get the order 92 | $order = $download_grid_options['order']; 93 | 94 | // Get the orderby 95 | $orderby = $download_grid_options['orderby']; 96 | 97 | switch ( $orderby ) { 98 | 99 | case 'price': 100 | $orderby = 'meta_value_num'; 101 | break; 102 | 103 | case 'title': 104 | $orderby = 'title'; 105 | break; 106 | 107 | case 'id': 108 | $orderby = 'ID'; 109 | break; 110 | 111 | case 'random': 112 | $orderby = 'rand'; 113 | break; 114 | 115 | case 'post__in': 116 | $orderby = 'post__in'; 117 | break; 118 | 119 | default: 120 | $orderby = 'post_date'; 121 | break; 122 | 123 | } 124 | 125 | // Bail if in the admin or we're not working with the main WP query. 126 | if ( is_admin() || ! $query->is_main_query() ) { 127 | return; 128 | } 129 | 130 | // Set the number of downloads to show. 131 | if ( 132 | is_post_type_archive( 'download' ) || // archive-download.php page 133 | is_tax( 'download_category' ) || // taxonomy-download-category.php 134 | is_tax( 'download_tag' ) // taxonomy-download-category.php 135 | ) { 136 | 137 | // Set the number of downloads per page 138 | $query->set( 'posts_per_page', $downloads_per_page ); 139 | 140 | // Set the order. ASC | DESC 141 | $query->set( 'order', $order ); 142 | 143 | // Set meta_key query when ordering by price. 144 | if ( 'meta_value_num' === $orderby ) { 145 | $query->set( 'meta_key', 'edd_price' ); 146 | } 147 | 148 | // Set the orderby. 149 | $query->set( 'orderby', $orderby ); 150 | 151 | } 152 | 153 | } 154 | 155 | add_action( 'pre_get_posts', 'themedd_edd_pre_get_posts', 1 ); 156 | 157 | /** 158 | * Distraction Free Checkout 159 | * 160 | * @since 1.0.0 161 | * 162 | * @return void 163 | */ 164 | function themedd_edd_set_distraction_free_checkout() { 165 | 166 | /** 167 | * Distraction Free Checkout 168 | * Removes various distractions from the EDD checkout page to improve the customer's buying experience. 169 | */ 170 | if ( edd_is_checkout() && themedd_edd_distraction_free_checkout() && edd_get_cart_contents() ) { 171 | 172 | // Remove page header. 173 | add_filter( 'themedd_page_header', '__return_false' ); 174 | 175 | // Remove the primary navigation. 176 | remove_action( 'themedd_site_header_main', 'themedd_primary_menu' ); 177 | 178 | // Remove the primary navigation if moved to the themedd_site_header_wrap hook. 179 | remove_action( 'themedd_site_header_wrap', 'themedd_primary_menu' ); 180 | 181 | // Remove the mobile menu. 182 | remove_action( 'themedd_site_header_main', 'themedd_menu_toggle' ); 183 | 184 | // Remove the secondary menu. 185 | remove_action( 'themedd_site_header_wrap', 'themedd_secondary_menu' ); 186 | 187 | // Remove the footer. 188 | remove_action( 'themedd_footer', 'themedd_footer_widgets' ); 189 | 190 | // Remove the sidebar. 191 | add_filter( 'themedd_show_sidebar', '__return_false' ); 192 | 193 | // Remove the custom header (if set) 194 | remove_action( 'themedd_header', 'themedd_header_image' ); 195 | } 196 | 197 | } 198 | add_action( 'template_redirect', 'themedd_edd_set_distraction_free_checkout' ); 199 | -------------------------------------------------------------------------------- /includes/compatibility/edd/class-coming-soon.php: -------------------------------------------------------------------------------- 1 |
    68 | */ 69 | if ( edd_coming_soon_is_active( $download_id ) && ! edd_coming_soon_voting_enabled( $download_id ) ) { 70 | $options['buy_button'] = false; 71 | } 72 | 73 | return $options; 74 | } 75 | 76 | /** 77 | * Show the download footer so the coming soon text can show. 78 | * 79 | * @access public 80 | * @since 1.0.3 81 | */ 82 | public function show_download_footer( $show, $download_id ) { 83 | 84 | if ( edd_coming_soon_is_active( $download_id ) ) { 85 | $show = true; 86 | } 87 | 88 | return $show; 89 | } 90 | 91 | /** 92 | * Remove the price for a coming soon download on the single download page. 93 | * 94 | * @access public 95 | * @since 1.0.2 96 | */ 97 | public function remove_price() { 98 | 99 | // No need to go any further if price enhancements has been disabled. 100 | if ( false === themedd_edd_price_enhancements() ) { 101 | return; 102 | } 103 | 104 | if ( is_singular( 'download' ) && edd_coming_soon_is_active( get_the_ID() ) ) { 105 | remove_action( 'themedd_edd_download_info', 'themedd_edd_price', 10, 1 ); 106 | } 107 | 108 | } 109 | 110 | /** 111 | * Remove the price for a coming soon download on the single download page. 112 | * 113 | * @access public 114 | * @since 1.0.2 115 | */ 116 | public function add_coming_soon_notice() { 117 | echo edd_coming_soon()->get_custom_status_text(); 118 | } 119 | 120 | /** 121 | * Modify coming soon notice HTML 122 | * 123 | * @access public 124 | * @since 1.0.2 125 | */ 126 | public function coming_soon_notice_html( $html, $custom_text ) { 127 | 128 | if ( is_singular( 'download' ) ) { 129 | $html = '

    ' . $custom_text . '

    '; 130 | } else { 131 | $html = '' . $custom_text . ''; 132 | } 133 | 134 | return $html; 135 | } 136 | 137 | /** 138 | * Remove the icon HTML from inside the button 139 | * 140 | * @access public 141 | * @since 1.0.2 142 | */ 143 | public function remove_icon( $icon ) { 144 | return ''; 145 | } 146 | 147 | } 148 | new Themedd_EDD_Coming_Soon; 149 | -------------------------------------------------------------------------------- /includes/compatibility/edd/class-cross-sell-upsell.php: -------------------------------------------------------------------------------- 1 | 55 | 56 | 57 |

    58 | 59 | 60 |
    > 61 | have_posts() ) : $downloads->the_post(); ?> 64 | 65 |
    66 |
    67 | 68 | 96 | 97 |
    98 | get_the_ID(), 'text' => $text, 'price' => $price ) ); ?> 99 |
    100 | 101 | 102 | '. __( 'Added to cart', 'themedd' ) . '' ); 104 | } 105 | } else { 106 | $text = apply_filters( 'edd_csau_upsell_add_to_cart_text', __( 'Add to cart', 'themedd' ) ); 107 | $price = apply_filters( 'edd_csau_upsell_show_button_price', false ); 108 | $show_button = apply_filters( 'edd_csau_upsell_show_button', true ); 109 | 110 | if ( $show_button ) : 111 | ?> 112 |
    113 | get_the_ID(), 'text' => $text, 'price' => $price ) ); ?> 114 |
    115 | 116 | 121 |
    122 |
    123 | 124 | 125 |
    126 | 127 | is_single_vendor_page() ) { 29 | remove_filter( 'body_class', 'themedd_body_classes' ); 30 | } 31 | 32 | 33 | } 34 | 35 | /** 36 | * Filter the [downloads] shortcode for the single vendor page. 37 | * Sets the number of columns to 2. 38 | * 39 | * @since 1.0.0 40 | */ 41 | public function single_vendor_page_download_columns( $out, $pairs, $atts, $shortcode ) { 42 | 43 | if ( $this->is_single_vendor_page() ) { 44 | $out['columns'] = apply_filters( 'themedd_edd_fes_single_vendor_page_columns', 2 ); 45 | } 46 | 47 | return $out; 48 | 49 | } 50 | 51 | /** 52 | * Set the title of the vendor contact form 53 | * 54 | * @since 1.0.0 55 | */ 56 | public function contact_form_title( $title ) { 57 | return apply_filters( 'themedd_edd_fes_contact_form_title', __( 'Contact vendor', 'themedd' ) ); 58 | } 59 | 60 | /** 61 | * Enqueue custom styling. 62 | */ 63 | public function styles() { 64 | 65 | // Dequeue the styling so it doesn't matter if the admin option is enabled or not. 66 | wp_dequeue_style( 'fes-css' ); 67 | 68 | $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; 69 | 70 | // Get the file path of the CSS file. 71 | $file_path = '/assets/css/edd-fes' . $suffix . '.css'; 72 | 73 | // Register the styles. 74 | wp_register_style( 'themedd-edd-fes', get_theme_file_uri( $file_path ), array(), filemtime( get_theme_file_path( $file_path ) ), 'all' ); 75 | 76 | // Load styles. 77 | if ( 78 | fes_is_frontend() && 79 | ( is_page( EDD_FES()->helper->get_option( 'fes-vendor-dashboard-page', false ) ) || $this->is_vendor_page() ) 80 | ) { 81 | wp_enqueue_style( 'themedd-edd-fes' ); 82 | } 83 | 84 | } 85 | 86 | /** 87 | * Determine if the current page is the vendor page 88 | * 89 | * @since 1.0.0 90 | * 91 | * @return true if page is vendor page, false otherwise. 92 | */ 93 | public function is_vendor_page() { 94 | return is_page( EDD_FES()->helper->get_option( 'fes-vendor-page', false ) ); 95 | } 96 | 97 | /** 98 | * Determine if the current page is the single vendor page 99 | * 100 | * @since 1.0.0 101 | * 102 | * @return true if page is single vendor page, false otherwise. 103 | */ 104 | public function is_single_vendor_page() { 105 | return EDD_FES()->vendor_shop->get_queried_vendor(); 106 | } 107 | 108 | /** 109 | * Adds custom classes to the array of body classes. 110 | * 111 | * @access public 112 | * @since 1.0.0 113 | * 114 | * @return array $classes 115 | */ 116 | public function body_classes( $classes ) { 117 | 118 | global $post; 119 | 120 | // Single vendor page. 121 | if ( $this->is_single_vendor_page() ) { 122 | 123 | $classes[] = 'edd-fes-single-vendor-page'; 124 | 125 | /** 126 | * Remove any unneeded body classes from the single vendor page when a page template is assigned to the main vendor page (/vendor) 127 | */ 128 | foreach( $classes as $key => $class ) { 129 | if ( in_array( $class, array( 130 | 'page-template', 131 | 'page-template-page-templates', 132 | 'page-template-slim', 133 | 'page-template-page-templatesslim-php', 134 | 'page-template-full-width', 135 | 'page-template-page-templatesfull-width-php' 136 | ) ) ) { 137 | unset( $classes[$key] ); 138 | } 139 | } 140 | 141 | } 142 | 143 | if ( $this->is_vendor_page() && ! $this->is_single_vendor_page() ) { 144 | $classes[] = 'edd-fes-vendor-page'; 145 | } 146 | 147 | if ( isset( $_GET['task'] ) && 'edit-product' === $_GET['task'] ) { 148 | $classes[] = 'edd-fes-edit-download'; 149 | } 150 | 151 | if ( isset( $_GET['task'] ) && 'edit-order' === $_GET['task'] ) { 152 | $classes[] = 'edd-fes-edit-order'; 153 | } 154 | 155 | return $classes; 156 | 157 | } 158 | 159 | /** 160 | * Get the FES vendor URL 161 | * 162 | * @since 1.0.0 163 | */ 164 | public function author_url( $author = null ) { 165 | 166 | if ( ! $author ) { 167 | $author = wp_get_current_user(); 168 | } else { 169 | $author = new WP_User( $author ); 170 | } 171 | 172 | if ( ! class_exists( 'EDD_Front_End_Submissions' ) ) { 173 | return get_author_posts_url( $author->ID, $author->user_nicename ); 174 | } 175 | 176 | return EDD_FES()->vendors->get_vendor_store_url( $author->ID ); 177 | 178 | } 179 | 180 | /** 181 | * Set the template for the single vendor page. 182 | * 183 | * @since 1.0.0 184 | */ 185 | public function single_vendor_page_template( $template, $type, $templates ) { 186 | 187 | if ( $this->is_single_vendor_page() ) { 188 | $template = get_theme_file_path( '/single-vendor.php' ); 189 | } 190 | 191 | return $template; 192 | 193 | } 194 | 195 | } 196 | new Themedd_EDD_Frontend_Submissions; 197 | -------------------------------------------------------------------------------- /includes/compatibility/edd/class-recommended-products.php: -------------------------------------------------------------------------------- 1 | true, 13 | 'avatar_size' => 80, 14 | 'store_name' => true, 15 | 'name' => true, 16 | 'signup_date' => true, 17 | 'website' => true, 18 | 'title' => '' 19 | ) ); 20 | 21 | // Merge any args passed in from the widget with the defaults. 22 | $args = wp_parse_args( $args, $defaults ); 23 | 24 | // If Frontend Submissions is active, show the author details by default. 25 | if ( themedd_is_edd_fes_active() ) { 26 | $args['show'] = true; 27 | } 28 | 29 | /** 30 | * Return the final $args 31 | * Developers can use this filter hook to override options from widget settings or on a per-download basis. 32 | */ 33 | return apply_filters( 'themedd_edd_download_author_options', $args ); 34 | 35 | } 36 | 37 | /** 38 | * Determine if the author details can be shown 39 | */ 40 | function themedd_edd_show_download_author( $options = array() ) { 41 | 42 | // If no options are passed in, use the default options. 43 | if ( empty( $options ) ) { 44 | $options = themedd_edd_download_author_options(); 45 | } 46 | 47 | if ( isset( $options['show'] ) && true === $options['show'] && true === themedd_edd_has_download_author( $options ) ) { 48 | return true; 49 | } 50 | 51 | return false; 52 | 53 | } 54 | 55 | /** 56 | * Determine if the current download has any author details. 57 | * 58 | * @since 1.0.0 59 | */ 60 | function themedd_edd_has_download_author( $options = array() ) { 61 | 62 | // Remove "show" from the $options array since we don't want to check against it. 63 | unset( $options['show'] ); 64 | 65 | // If (bool) true exists anywhere in the $options array then there are author details that need to be shown. 66 | if ( in_array( (bool) true, $options, true ) ) { // Uses strict mode. 67 | return true; 68 | } 69 | 70 | return false; 71 | 72 | } 73 | -------------------------------------------------------------------------------- /includes/compatibility/edd/functions-download-details.php: -------------------------------------------------------------------------------- 1 | true, 19 | 'sale_count' => false, 20 | 'date_published' => false, 21 | 'categories' => true, 22 | 'tags' => true, 23 | 'version' => false, 24 | 'title' => '' 25 | ) ); 26 | 27 | // Set some defaults when Frontend Submissions is activated. 28 | if ( themedd_is_edd_fes_active() ) { 29 | $defaults['title'] = sprintf( __( '%s Details', 'themedd' ), edd_get_label_singular() ); 30 | $defaults['date_published'] = true; 31 | $defaults['sale_count'] = true; 32 | } 33 | 34 | // Set some defaults when Software Licensing is activated. 35 | if ( themedd_is_edd_sl_active() ) { 36 | $defaults['version'] = true; 37 | } 38 | 39 | // Merge any args passed in from the widget with the defaults. 40 | $args = wp_parse_args( $args, $defaults ); 41 | 42 | /** 43 | * Return the final $args 44 | * Developers can use this filter hook to override options from widget settings or on a per-download basis. 45 | */ 46 | return apply_filters( 'themedd_edd_download_details_options', $args ); 47 | 48 | } 49 | 50 | /** 51 | * Determine if the download details can be shown. 52 | * 53 | * @since 1.0.0 54 | */ 55 | function themedd_edd_show_download_details( $options = array() ) { 56 | 57 | // If no options are passed in, use the default options. 58 | if ( empty( $options ) ) { 59 | $options = themedd_edd_download_details_options(); 60 | } 61 | 62 | if ( isset( $options['show'] ) && true === $options['show'] && true === themedd_edd_has_download_details( $options ) ) { 63 | return true; 64 | } 65 | 66 | return false; 67 | 68 | } 69 | 70 | /** 71 | * Determine if the current download has any download details. 72 | * 73 | * @since 1.0.0 74 | */ 75 | function themedd_edd_has_download_details( $options = array() ) { 76 | 77 | $return = false; 78 | 79 | $download_id = get_the_ID(); 80 | 81 | if ( 82 | true === $options['categories'] && themedd_edd_download_categories( $download_id ) || // Download categories are enabled and exist. 83 | true === $options['tags'] && themedd_edd_download_tags( $download_id ) || // Download tags are enabled and exist. 84 | true === $options['sale_count'] || // Sale count has been enabled from the "Themedd: Download Details" widget. 85 | true === $options['date_published'] || // Date published as been enabled from the "Themedd: Download Details" widget. 86 | true === $options['version'] && themedd_edd_download_version( $download_id ) // Version number is allowed, and the download has a version number, the download details can be shown. 87 | ) { 88 | $return = true; 89 | } 90 | 91 | return apply_filters( 'themedd_edd_has_download_details', $return, $options ); 92 | 93 | } 94 | 95 | /** 96 | * Get the download categories of a download, given its ID 97 | * 98 | * @since 1.0.0 99 | */ 100 | function themedd_edd_download_categories( $download_id = 0, $before = '', $sep = ', ', $after = '' ) { 101 | 102 | if ( ! $download_id ) { 103 | return false; 104 | } 105 | 106 | $categories = get_the_term_list( $download_id, 'download_category', $before, $sep, $after ); 107 | 108 | if ( $categories ) { 109 | return $categories; 110 | } 111 | 112 | return false; 113 | 114 | } 115 | 116 | /** 117 | * Get the download tags of a download, given its ID. 118 | * 119 | * @since 1.0.0 120 | */ 121 | function themedd_edd_download_tags( $download_id = 0, $before = '', $sep = ', ', $after = '' ) { 122 | 123 | if ( ! $download_id ) { 124 | return false; 125 | } 126 | 127 | $tags = get_the_term_list( $download_id, 'download_tag', $before, $sep, $after ); 128 | 129 | if ( $tags ) { 130 | return $tags; 131 | } 132 | 133 | return false; 134 | 135 | } 136 | 137 | /** 138 | * Get the version number of a download, given its ID. 139 | * 140 | * @since 1.0.0 141 | */ 142 | function themedd_edd_download_version( $download_id = 0 ) { 143 | 144 | if ( ! $download_id ) { 145 | return false; 146 | } 147 | 148 | if ( themedd_is_edd_sl_active() && (new Themedd_EDD_Software_Licensing)->has_licensing_enabled() ) { 149 | // Get version number from EDD Software Licensing. 150 | return get_post_meta( $download_id, '_edd_sl_version', true ); 151 | } 152 | 153 | return false; 154 | 155 | } 156 | 157 | /** 158 | * Date published 159 | * 160 | * @since 1.0.0 161 | */ 162 | function themedd_edd_download_date_published() { 163 | 164 | $time_string = ''; 165 | $time_string = sprintf( $time_string, 166 | esc_attr( get_the_date( 'c' ) ), 167 | esc_html( get_the_date() ), 168 | esc_attr( get_the_modified_date( 'c' ) ), 169 | esc_html( get_the_modified_date() ) 170 | ); 171 | 172 | return $time_string; 173 | 174 | } 175 | -------------------------------------------------------------------------------- /includes/compatibility/edd/functions.php: -------------------------------------------------------------------------------- 1 | str_replace( $search_for, $replace_with, get_pagenum_link( $big ) ), 43 | 'format' => '?paged=%#%', 44 | 'current' => max( 1, get_query_var( 'paged' ) ), 45 | 'total' => $wp_query->max_num_pages 46 | ) ); 47 | ?> 48 | 49 | 50 | 53 | 54 | 55 | %2$s

    ', 76 | esc_url( get_permalink( get_the_ID() ) ), 77 | sprintf( __( 'Continue reading "%s"', 'themedd' ), get_the_title( get_the_ID() ) ) 78 | ); 79 | return ' … ' . $link; 80 | } 81 | add_filter( 'excerpt_more', 'themedd_excerpt_more' ); 82 | endif; 83 | -------------------------------------------------------------------------------- /includes/footer.php: -------------------------------------------------------------------------------- 1 | 0 ) : ?> 26 | 27 | 28 | 29 | 30 |
    31 |
    32 | 33 | 34 | 41 |
    42 | 43 |
    44 | 46 | 47 | 48 |
    49 |
    50 | 51 | 52 | 53 | 54 | 68 |
    69 | 70 |
    71 | ' . sprintf( __( 'Copyright © %s %s', 'themedd' ), date( 'Y' ), get_bloginfo( 'name' ) ) . '

    ' ); 83 | } 84 | add_action( 'themedd_site_info', 'themedd_copyright' ); 85 | 86 | /** 87 | * Footer widget column classes 88 | * 89 | * @since 1.0.0 90 | * @param int $widget_columns The number of widget columns in use 91 | * 92 | * @return string $classes The classes to be added 93 | */ 94 | function themedd_footer_widget_column_classes( $widget_columns ) { 95 | 96 | switch ( $widget_columns ) { 97 | 98 | case 4: 99 | $classes = 'col-xs-12 col-sm-6 col-lg-3'; 100 | break; 101 | 102 | case 3: 103 | $classes = 'col-xs-12 col-sm-6 col-lg-4'; 104 | break; 105 | 106 | case 2: 107 | case 1: 108 | $classes = 'col-xs-12 col-sm-6'; 109 | break; 110 | default: 111 | $classes = ''; 112 | 113 | } 114 | 115 | return apply_filters( 'themedd_footer_widget_column_classes', $classes, $widget_columns ); 116 | 117 | } 118 | -------------------------------------------------------------------------------- /includes/scripts.php: -------------------------------------------------------------------------------- 1 | '' . esc_html__( 'expand child menu', 'themedd' ) . '', 32 | 'collapse' => '' . esc_html__( 'collapse child menu', 'themedd' ) . '' 33 | ) ); 34 | 35 | // Load the nav cart. 36 | if ( class_exists( 'Themedd_EDD_Nav_Cart' ) ) { 37 | 38 | $cart_option = Themedd_EDD_Nav_Cart::cart_option(); 39 | 40 | if ( 'item_quantity' === $cart_option || 'all' === $cart_option ) { 41 | 42 | $cart_quantity_text = Themedd_EDD_Nav_Cart::cart_quantity_text(); 43 | 44 | // Cart text 45 | wp_localize_script( 'themedd-js', 'cartQuantityText', array( 46 | 'singular' => $cart_quantity_text['singular'], 47 | 'plural' => $cart_quantity_text['plural'] 48 | ) ); 49 | } 50 | 51 | } 52 | 53 | /** 54 | * Comments 55 | */ 56 | 57 | // We don't need the script on pages where there is no comment form and not on the homepage if it's a page. Neither do we need the script if comments are closed or not allowed. In other words, we only need it if "Enable threaded comments" is activated and a comment form is displayed. 58 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 59 | wp_enqueue_script( 'comment-reply' ); 60 | } 61 | 62 | } 63 | add_action( 'wp_enqueue_scripts', 'themedd_scripts' ); 64 | 65 | /** 66 | * Load the admin styles 67 | * 68 | * @since 1.0 69 | * @return void 70 | */ 71 | function themedd_admin_styles() { 72 | wp_enqueue_style( 'themedd-admin', get_theme_file_uri( '/assets/css/admin.css' ), array(), THEMEDD_VERSION ); 73 | } 74 | add_action( 'admin_enqueue_scripts', 'themedd_admin_styles' ); 75 | -------------------------------------------------------------------------------- /includes/setup.php: -------------------------------------------------------------------------------- 1 | tag in the document head, and expect WordPress to 33 | * provide it for us. 34 | */ 35 | add_theme_support( 'title-tag' ); 36 | 37 | // This theme styles the visual editor to resemble the theme style. 38 | add_editor_style( 'css/editor-style.css' ); 39 | 40 | /* 41 | * Enable support for Post Thumbnails on posts and pages. 42 | * 43 | * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails 44 | */ 45 | add_theme_support( 'post-thumbnails' ); 46 | add_theme_support( 'customize-selective-refresh-widgets' ); 47 | 48 | themedd_set_post_thumbnail_size(); 49 | 50 | // Register menus 51 | register_nav_menus( array( 52 | 'primary' => __( 'Primary Menu', 'themedd' ), 53 | 'secondary' => __( 'Secondary Menu', 'themedd' ), 54 | 'mobile' => __( 'Mobile Menu', 'themedd' ) 55 | ) ); 56 | 57 | /* 58 | * Switch default core markup for search form, comment form, and comments 59 | * to output valid HTML5. 60 | */ 61 | add_theme_support( 'html5', array( 62 | 'search-form', 63 | 'comment-form', 64 | 'comment-list', 65 | 'gallery', 66 | 'caption', 67 | ) ); 68 | 69 | /** 70 | * Enable support for custom logo 71 | * 72 | * @since 1.0.0 73 | */ 74 | add_theme_support( 'custom-logo', array( 75 | 'width' => 250, 76 | 'height' => 50, 77 | 'flex-height' => true, 78 | 'flex-width' => true 79 | ) ); 80 | 81 | // This theme uses its own gallery styles. 82 | add_filter( 'use_default_gallery_style', '__return_false' ); 83 | 84 | // Indicate widget sidebars can use selective refresh in the Customizer. 85 | add_theme_support( 'customize-selective-refresh-widgets' ); 86 | } 87 | endif; 88 | add_action( 'after_setup_theme', 'themedd_setup' ); 89 | 90 | /** 91 | * Set the post thumbnail size (aka featured image) 92 | * 93 | * @since 1.0.0 94 | */ 95 | if ( ! function_exists( 'themedd_set_post_thumbnail_size' ) ) : 96 | function themedd_set_post_thumbnail_size() { 97 | set_post_thumbnail_size( 991, 9999 ); 98 | } 99 | endif; 100 | 101 | /** 102 | * Set the content width in pixels, based on the theme's design and stylesheet. 103 | * 104 | * Priority 0 to make it available to lower priority callbacks. 105 | * 106 | * @global int $content_width 107 | */ 108 | function themedd_content_width() { 109 | $GLOBALS['content_width'] = apply_filters( 'themedd_content_width', 991 ); 110 | } 111 | add_action( 'after_setup_theme', 'themedd_content_width', 0 ); 112 | -------------------------------------------------------------------------------- /includes/updater/theme-updater.php: -------------------------------------------------------------------------------- 1 | 'https://easydigitaldownloads.com', 19 | 'item_name' => 'Themedd', 20 | 'theme_slug' => 'themedd', 21 | 'version' => THEMEDD_VERSION, 22 | 'author' => THEMEDD_AUTHOR, 23 | 'download_id' => '', // Optional, used for generating a license renewal link 24 | 'renew_url' => '' // Optional, allows for a custom license renewal link 25 | ), 26 | 27 | // Strings 28 | $strings = array( 29 | 'theme-license' => THEMEDD_NAME . _x( ' License', 'part of the WordPress dashboard Themedd menu title', 'themedd' ), 30 | 'enter-key' => __( 'Enter your theme license key.', 'themedd' ), 31 | 'license-key' => __( 'License Key', 'themedd' ), 32 | 'license-action' => __( 'License Action', 'themedd' ), 33 | 'deactivate-license' => __( 'Deactivate License', 'themedd' ), 34 | 'activate-license' => __( 'Activate License', 'themedd' ), 35 | 'status-unknown' => __( 'License status is unknown.', 'themedd' ), 36 | 'renew' => __( 'Renew?', 'themedd' ), 37 | 'unlimited' => __( 'unlimited', 'themedd' ), 38 | 'license-key-is-active' => __( 'License key is active.', 'themedd' ), 39 | 'expires%s' => __( 'Expires %s.', 'themedd' ), 40 | 'lifetime' => __( 'Lifetime License.', 'themedd' ), 41 | '%1$s/%2$-sites' => __( 'You have %1$s / %2$s sites activated.', 'themedd' ), 42 | 'license-key-expired-%s' => __( 'License key expired %s.', 'themedd' ), 43 | 'license-key-expired' => __( 'License key has expired.', 'themedd' ), 44 | 'license-keys-do-not-match' => __( 'License keys do not match.', 'themedd' ), 45 | 'license-is-inactive' => __( 'License is inactive.', 'themedd' ), 46 | 'license-key-is-disabled' => __( 'License key is disabled.', 'themedd' ), 47 | 'site-is-inactive' => __( 'Site is inactive.', 'themedd' ), 48 | 'license-status-unknown' => __( 'License status is unknown.', 'themedd' ), 49 | 'update-notice' => __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update.", 'themedd' ), 50 | 'update-available' => __( '%1$s %2$s is available. Check out what\'s new or update now.', 'themedd' ) 51 | ) 52 | ); 53 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
    9 | 10 |
    11 | 12 |
    13 | 14 | 36 | 37 |
    38 |
    39 | 40 | 41 | 42 |
    43 | 44 | 45 | 9 | 10 |
    11 |
    12 |
    13 | 14 | 32 | 33 |
    34 |
    35 |
    36 | 37 | 9 | 10 |
    11 |
    12 |
    13 | 14 | 32 | 33 |
    34 |
    35 |
    36 | 37 | 9 | 10 |
    11 |
    12 |
    13 | 14 | 33 |
    34 |
    35 | 36 | 37 | 38 |
    39 | 40 | 41 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomemotive/edd-themedd/11bf8e58c4686de0bb80679049d870dbf5f9f2ef/screenshot.png -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | $page_title, 'subtitle' => sprintf( __( 'You searched for "%s"', 'themedd' ), get_search_query() ) ) ); 15 | 16 | ?> 17 |
    18 | 19 |
    20 |
    21 | 22 | 23 | 24 | 25 | 26 |
    27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 40 | 41 |
    42 | 43 | 44 | 45 | 56 | 57 | 58 | 59 | 60 | 61 | 69 | 70 |
    71 |
    72 | 73 | 74 | 75 |
    76 | 77 | -------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /sidebar-single-vendor.php: -------------------------------------------------------------------------------- 1 | ID ); 8 | $user_data = get_userdata( $vendor_id ); 9 | $author_options = themedd_edd_download_author_options(); 10 | 11 | ?> 12 |
    13 | 14 | 80 | 81 |
    82 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 |
    11 | 20 |
    21 | 22 | -------------------------------------------------------------------------------- /single-download.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
    11 | 12 |
    13 | 14 |
    15 | 16 | 35 | 36 |
    37 | 38 | 39 | 40 |
    41 | 42 | 43 |
    44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /single-vendor.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
    11 | 12 |
    13 |
    14 | 15 | 25 | 26 |
    27 | 28 |
    29 | 30 | 36 | 37 |
    38 | 39 | 40 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 |
    13 |
    14 |
    15 | 16 | _x( 'Published in%title', 'Parent post link', 'themedd' ), 32 | ) ); 33 | } elseif ( is_singular( 'post' ) ) { 34 | // Previous/next post navigation. 35 | the_post_navigation( array( 36 | 'next_text' => ' ' . 37 | '' . __( 'Next post:', 'themedd' ) . ' ' . 38 | '%title', 39 | 'prev_text' => ' ' . 40 | '' . __( 'Previous post:', 'themedd' ) . ' ' . 41 | '%title', 42 | ) ); 43 | } 44 | 45 | // End of the loop. 46 | endwhile; 47 | ?> 48 | 49 |
    50 | 51 |
    52 | 53 | 54 | 55 |
    56 | 57 | 58 | -------------------------------------------------------------------------------- /taxonomy-download_category.php: -------------------------------------------------------------------------------- 1 | single_term_title( '', false ), 'subtitle' => term_description( '', 'download_category' ) ) ); 8 | ?> 9 | 10 |
    11 | 12 |
    13 | 14 | 15 | 16 |
    17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 |
    37 | 38 | single_term_title( '', false ), 'subtitle' => term_description( '', 'download_category' ) ) ); 8 | ?> 9 | 10 |
    11 | 12 |
    13 | 14 | 15 | 16 |
    17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 |
    37 | 38 | 6 | 7 |
    8 | 9 |
    10 | 22 |
    23 | 24 |
    25 | 26 |

    27 | 28 | 29 |

    30 | 31 | 32 | 33 |
    34 |
    35 | -------------------------------------------------------------------------------- /template-parts/content-download.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
    > 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
    23 |
    24 | -------------------------------------------------------------------------------- /template-parts/content-none.php: -------------------------------------------------------------------------------- 1 | 6 |
    7 |
    8 | 9 | 10 |

    Get started here.', 'themedd' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( admin_url( 'post-new.php' ) ) ); ?>

    11 | 12 | 13 | 14 |

    15 | 16 | 17 | 18 | 19 |

    20 | 21 | 22 | 23 |
    24 |
    25 | -------------------------------------------------------------------------------- /template-parts/content-page.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |
    > 8 | 9 | 10 | 11 |
    12 | 13 | 14 | 15 | 16 | 17 | '', 21 | ) ); 22 | ?> 23 | 24 | 25 | 26 |
    27 |
    28 | -------------------------------------------------------------------------------- /template-parts/content-search.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
    > 9 | 10 |
    11 | 12 | ', esc_url( get_permalink() ) ), '' ); ?> 13 |
    14 | 15 | 16 | 17 |
    18 | 19 |
    20 | 21 | 22 | 23 |
    24 | "', '"', false ) 30 | ), 31 | '', 32 | '' 33 | ); 34 | ?> 35 |
    36 | 37 | 38 | 39 | ', '', false ) 45 | ), 46 | '
    ', 47 | '
    ' 48 | ); 49 | ?> 50 | 51 | 52 |
    53 | -------------------------------------------------------------------------------- /template-parts/content-single.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |
    > 8 | 9 | 14 | 15 |
    16 | 17 | 18 | 19 | 20 | 21 | '', 25 | ) ); 26 | ?> 27 | 28 | 29 | 30 |
    31 | 32 |
    33 | -------------------------------------------------------------------------------- /template-parts/content.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |
    > 8 | 9 |
    10 | 11 | ', esc_url( get_permalink() ) ), '' ); ?> 12 |
    13 | 14 | 15 | 16 | 17 | 18 |
    19 | 20 |
    21 | 22 | 23 | 24 |
    25 | "', '"', false ) 30 | ) ); 31 | 32 | wp_link_pages( array( 33 | 'before' => '', 35 | 'link_before' => '', 36 | 'link_after' => '', 37 | 'pagelink' => '' . __( 'Page', 'themedd' ) . ' %', 38 | 'separator' => ', ', 39 | ) ); 40 | ?> 41 |
    42 | 43 | 44 | 45 |
    46 | -------------------------------------------------------------------------------- /template-parts/download-grid.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
    6 | 7 |
    8 | 9 | 39 | 40 |
    41 |
    42 | --------------------------------------------------------------------------------