├── .browserslistrc ├── .gitignore ├── .travis.yml ├── 404.php ├── CONTRIBUTING.md ├── Gruntfile.js ├── LICENSE.md ├── README.md ├── archive.php ├── comments.php ├── default_header.jpg ├── docker-compose.yml ├── footer.php ├── functions.php ├── header.php ├── index.php ├── languages ├── fr_FR.mo ├── fr_FR.po ├── simple-bootstrap.mo └── simple-bootstrap.po ├── package-lock.json ├── package.json ├── page-no-sidebar.php ├── page.php ├── readme.txt ├── screenshot.png ├── scss ├── bootstrap_variables.scss ├── customization.scss ├── style.scss ├── theme_customization.scss └── wp.scss ├── search.php ├── searchform.php ├── sidebar-left.php ├── sidebar-right.php └── single.php /.browserslistrc: -------------------------------------------------------------------------------- 1 | >= 1% 2 | last 1 major version 3 | not dead 4 | Chrome >= 45 5 | Firefox >= 38 6 | Edge >= 12 7 | Explorer >= 10 8 | iOS >= 9 9 | Safari >= 9 10 | Android >= 4.4 11 | Opera >= 30 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX specific stuff 2 | .DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | Icon 6 | # Thumbnails 7 | ._* 8 | # Files that might appear on external disk 9 | .Spotlight-V100 10 | .Trashes 11 | 12 | 13 | # WINDOWS specific stuff 14 | # Windows image file caches 15 | Thumbs.db 16 | ehthumbs.db 17 | # Folder config file 18 | Desktop.ini 19 | # Recycle Bin used on file shares 20 | $RECYCLE.BIN/ 21 | 22 | app.min.js 23 | codekit-config.json 24 | node_modules 25 | style.css 26 | style.css.map 27 | fonts 28 | simple-bootstrap.zip 29 | js 30 | .sass-cache 31 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | 2 | 3 | language: node_js 4 | node_js: 5 | - node 6 | before_script: 7 | - npm run build 8 | before_deploy: 9 | - npm run dist 10 | - mv simple-bootstrap.zip simple-bootstrap-$TRAVIS_TAG.zip 11 | deploy: 12 | provider: releases 13 | api_key: "$GITHUB_TOKEN" 14 | file: "simple-bootstrap-$TRAVIS_TAG.zip" 15 | skip_cleanup: true 16 | on: 17 | tags: true -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 |
8 | 9 |
10 | 11 |

12 | 13 |

14 |

15 | 16 |

17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 | 26 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to this project 2 | 3 | * [Contributors Agreement](#user-content-contributors-agreement) 4 | * [Introduction](#Introduction) 5 | * [I don't want to read this whole thing I just have a question!!!](#user-content-i-dont-want-to-read-this-whole-thing-i-just-have-a-question) 6 | * [How Can I Contribute?](#user-content-how-can-i-contribute) 7 | * [Reporting Bugs](#user-content-reporting-bugs) 8 | * [Suggesting Enhancements](#user-content-suggesting-enhancements) 9 | * [Creating Pull Requests](#user-content-creating-pull-requests) 10 | 11 | ## Contributors Agreement 12 | 13 | By submitting patches to this project you agree to allow them to be redistributed under the project's license, according to the normal forms and usages of the open-source community. 14 | 15 | ## Introduction 16 | 17 | First off, thank you for considering contributing to this project. It's people like you that make it such a great tool. 18 | 19 | Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. 20 | 21 | This is an open source project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the main project itself. 22 | 23 | ### I don't want to read this whole thing I just have a question!!! 24 | 25 | We currently allow our users to use the issue tracker for support questions. But please be wary that maintaining an open source project can take a lot of time from the maintainers. If asking for a support question, state it clearly and take the time to explain your problem properly. Also, if your problem is not strictly related to this project we recommend you to use Stack Overlow instead. 26 | 27 | ## How Can I Contribute? 28 | 29 | ### Reporting Bugs 30 | 31 | Before creating bug reports, please check the existing bug reports as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. 32 | 33 | #### How Do I Submit A (Good) Bug Report? 34 | 35 | Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information. 36 | 37 | Explain the problem and include additional details to help maintainers reproduce the problem: 38 | 39 | * **Use a clear and descriptive title** for the issue to identify the problem. 40 | * **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you used the project. When listing steps, **don't just say what you did, but explain how you did it**. 41 | * **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). 42 | * **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. 43 | * **Explain which behavior you expected to see instead and why.** 44 | * **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. 45 | 46 | Provide more context by answering these questions: 47 | 48 | * **Did the problem start happening recently** (e.g. after updating to a new version) or was this always a problem? 49 | * If the problem started happening recently, **can you reproduce the problem in an older version?** What's the most recent version in which the problem doesn't happen? 50 | * **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. 51 | 52 | Include details about your configuration and environment: 53 | 54 | * **Which version of the project are you using?** 55 | * **What's the name and version of the OS you're using**? 56 | * **Any other information that could be useful about you environment** 57 | 58 | ### Suggesting Enhancements 59 | 60 | This section guides you through submitting an enhancement suggestion for this project, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. 61 | 62 | Before creating enhancement suggestions, please check the list of enhancements suggestions in the issue tracker as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible. 63 | 64 | #### How Do I Submit A (Good) Enhancement Suggestion? 65 | 66 | Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project's repository and provide the following information: 67 | 68 | * **Use a clear and descriptive title** for the issue to identify the suggestion. 69 | * **Provide a step-by-step description of the suggested enhancement** in as many details as possible. 70 | * **Provide specific examples to demonstrate the steps**. It's always better to get more information. You can include links to files or GitHub projects, copy/pasteable snippets or even print screens or animated GIFS. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). 71 | * **Describe the current behavior** and **explain which behavior you expected to see instead** and why. 72 | * **List some other similar projects where this enhancement exists.** 73 | * **Specify which version of the project you're using.** 74 | * **Specify the current environment you're using.** if this is a useful information. 75 | 76 | ### Creating Pull Requests 77 | 78 | #### How Do I Submit A (Good) Pull Request? 79 | 80 | * **Be warned that the contributors agreement displayed on top of this document is applicable as soon as you create a pull request**. 81 | * **Use a clear and descriptive title** for the pull request to state the improvement you made to the code or the bug you solved. 82 | * **Provide a link to the related issue** if the pull request is a follow up of an existing bug report or enhancement suggestion. 83 | * **Comment why this pull request represents an enhancement** and give a rationale explaining why you did it that way and not another way. 84 | * **Use the same coding style than the one used in this project**. 85 | * **Welcome suggestions from the maintainers to improve your pull request**. 86 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | module.exports = function(grunt) { 4 | 5 | var jsFiles = [ 6 | "node_modules/bootstrap/dist/js/bootstrap.bundle.js", 7 | ]; 8 | 9 | grunt.initConfig({ 10 | copy: { 11 | js: { 12 | files: [ 13 | {expand: true, flatten: true, src: jsFiles, dest: 'js/'}, 14 | ], 15 | }, 16 | }, 17 | compress: { 18 | main: { 19 | options: { 20 | archive: 'simple-bootstrap.zip' 21 | }, 22 | files: [ 23 | { 24 | src: ['**'], 25 | dest: '/', 26 | filter: function(path) { 27 | if (/^simple-bootstrap.zip$/.test(path) || 28 | /^node_modules\b\/?/.test(path) || 29 | /^.sass-cache\/?/.test(path) 30 | ) { 31 | return false; 32 | } 33 | return true; 34 | } 35 | }, 36 | ] 37 | } 38 | } 39 | 40 | }); 41 | 42 | grunt.loadNpmTasks('grunt-contrib-copy'); 43 | grunt.loadNpmTasks('grunt-contrib-compress'); 44 | 45 | grunt.registerTask('dist', ['copy:js', 'compress']); 46 | 47 | 48 | }; 49 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2015 Nicolas Vanhoren 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Wordress Simple Bootstrap 2 | 3 | [![Build Status](https://travis-ci.org/nicolas-van/wordpress-simple-bootstrap.svg?branch=master)](https://travis-ci.org/nicolas-van/wordpress-simple-bootstrap) [![WordPress Theme Downloads](https://img.shields.io/wordpress/theme/dt/simple-bootstrap)](https://wordpress.org/themes/simple-bootstrap/) [![WordPress Theme Active Installs](https://img.shields.io/wordpress/theme/installs/simple-bootstrap)](https://wordpress.org/themes/simple-bootstrap/) 4 | 5 | Simple Bootstrap is clean base theme to use Twitter Boostrap 4 with Wordpress, aimed at being a starting point for developers to build their own themes using Bootstrap. 6 | 7 |

8 | 9 |

10 | 11 | * Very clean default graphical aspect. 12 | * Clean code designed to be modified by theme creators. 13 | * All base features of Wordpress themes (sidebars, menus, footer, header image, background, etc...) 14 | * All the features of Bootstrap 4, perfectly integrated with Wordpress. 15 | * Fully responsive. 16 | * Designed to use SCSS. 17 | * Integrates Font-Awesome for the icons. 18 | 19 | ## Links 20 | 21 | * [Theme page on Wordpress.org](https://wordpress.org/themes/simple-bootstrap/) 22 | * [Test this theme](https://wp-themes.com/simple-bootstrap/) 23 | 24 | ## Extension guide 25 | 26 | Let's state it clearly once and for all: trying to put some CSS above a pre-compiled Bootstrap is a very bad practice. The proper way to extend Bootstrap is to alter its behavior using [SCSS](https://sass-lang.com/) and to re-compile it. Here is how to do so. 27 | 28 | ### Requirements 29 | 30 | * [node.js](https://nodejs.org/en/) 31 | 32 | ### Install dependencies 33 | 34 | ```bash 35 | npm install 36 | ``` 37 | 38 | ### Modify SCSS files 39 | 40 | They are located in the `scss` folder. 41 | 42 | ### Compile SCSS files 43 | 44 | ``` 45 | npm run build 46 | ``` 47 | 48 | ## Report issues and contribute 49 | 50 | [See the contribution guide](./CONTRIBUTING.md). 51 | 52 | ## License 53 | 54 | [See the license file](./LICENSE.md). 55 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 |
8 |

9 | 10 |

11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |

27 |
28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | 36 |
37 | 38 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 4 |
5 | 6 |
7 | 11 | 12 | 13 | 14 |
15 | 16 | 17 |

18 | 19 |
    20 | 'ol', 22 | 'short_ping' => true, 23 | 'avatar_size'=> 34, 24 | ) ); ?> 25 |
26 | 27 | 1 && get_option( 'page_comments' ) ) : ?> 28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /default_header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicolas-van/wordpress-simple-bootstrap/aa1da7c055546e548f08e1836e7f9a83e78cae77/default_header.jpg -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.1' 2 | 3 | services: 4 | wordpress: 5 | image: wordpress:5.2 6 | depends_on: 7 | - db 8 | ports: 9 | - 8080:80 10 | volumes: 11 | - wordpress:/var/www/html 12 | - ./:/var/www/html/wp-content/themes/simple-bootstrap 13 | 14 | db: 15 | image: mariadb:10 16 | environment: 17 | MYSQL_RANDOM_ROOT_PASSWORD: "yes" 18 | MYSQL_DATABASE: wordpress 19 | MYSQL_USER: username 20 | MYSQL_PASSWORD: password 21 | volumes: 22 | - datastore:/var/lib/mysql 23 | 24 | volumes: 25 | wordpress: 26 | datastore: -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | '#f0f0f0', 17 | 'default-repeat' => 'no-repeat', 18 | 'default-position-x' => 'center', 19 | 'default-attachment' => 'fixed', 20 | )); 21 | add_theme_support('custom-header', [ 22 | 'flex-width' => true, 23 | 'width' => 1366, 24 | 'flex-height' => true, 25 | 'height' => 350, 26 | 'header-text' => true, 27 | 'default-text-color' => 'ffffff', 28 | 'default-image' => get_template_directory_uri() . '/default_header.jpg', 29 | ]); 30 | add_theme_support( 'title-tag' ); 31 | register_nav_menus( // wp3+ menus 32 | array( 33 | 'main_nav' => __('Main Menu', 'simple-bootstrap'), // main nav in header 34 | ) 35 | ); 36 | add_image_size( 'simple_boostrap_featured', 1140, 1140 * (9 / 21), true); 37 | load_theme_textdomain( 'simple-bootstrap', get_template_directory() . '/languages' ); 38 | 39 | add_theme_support( 'wp-block-styles' ); 40 | add_theme_support( 'align-wide' ); 41 | add_theme_support( 'responsive-embeds' ); 42 | } 43 | add_action('after_setup_theme','simple_boostrap_theme_support'); 44 | 45 | function simple_bootstrap_theme_scripts() { 46 | // For child themes 47 | wp_register_style( 'wpbs-style', get_stylesheet_directory_uri() . '/style.css', array(), null, 'all' ); 48 | wp_enqueue_style( 'wpbs-style' ); 49 | wp_register_script( 'bower-libs', 50 | get_template_directory_uri() . '/app.min.js', 51 | array('jquery'), 52 | null ); 53 | wp_enqueue_script('bower-libs'); 54 | 55 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 56 | wp_enqueue_script( 'comment-reply' ); 57 | } 58 | } 59 | add_action( 'wp_enqueue_scripts', 'simple_bootstrap_theme_scripts' ); 60 | 61 | function simple_bootstrap_load_fonts() { 62 | wp_register_style('simple_bootstrap_googleFonts', '//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700'); 63 | wp_enqueue_style('simple_bootstrap_googleFonts'); 64 | } 65 | 66 | add_action('wp_print_styles', 'simple_bootstrap_load_fonts'); 67 | 68 | // Set content width 69 | if ( ! isset( $content_width ) ) 70 | $content_width = 750; 71 | 72 | // Sidebar and Footer declaration 73 | function simple_boostrap_register_sidebars() { 74 | register_sidebar(array( 75 | 'id' => 'sidebar-right', 76 | 'name' => __('Right Sidebar', 'simple-bootstrap'), 77 | 'description' => __('Used on every page.', 'simple-bootstrap'), 78 | 'before_widget' => '
', 79 | 'after_widget' => '
', 80 | 'before_title' => '

', 81 | 'after_title' => '

', 82 | )); 83 | register_sidebar(array( 84 | 'id' => 'sidebar-left', 85 | 'name' => __('Left Sidebar', 'simple-bootstrap'), 86 | 'description' => __('Used on every page.', 'simple-bootstrap'), 87 | 'before_widget' => '
', 88 | 'after_widget' => '
', 89 | 'before_title' => '

', 90 | 'after_title' => '

', 91 | )); 92 | 93 | register_sidebar(array( 94 | 'id' => 'footer1', 95 | 'name' => __('Footer', 'simple-bootstrap'), 96 | 'before_widget' => '
', 97 | 'after_widget' => '
', 98 | 'before_title' => '

', 99 | 'after_title' => '

', 100 | )); 101 | 102 | } 103 | add_action( 'widgets_init', 'simple_boostrap_register_sidebars' ); 104 | 105 | // Menu output mods 106 | class simple_bootstrap_Bootstrap_walker extends Walker_Nav_Menu { 107 | 108 | function start_el(&$output, $object, $depth = 0, $args = Array(), $current_object_id = 0) { 109 | 110 | global $wp_query; 111 | $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; 112 | 113 | $dropdown = $args->has_children && $depth == 0; 114 | 115 | $class_names = 'nav-item '; 116 | 117 | // If the item has children, add the dropdown class for bootstrap 118 | if ( $dropdown ) { 119 | $class_names .= "dropdown "; 120 | } 121 | 122 | $classes = empty( $object->classes ) ? array() : (array) $object->classes; 123 | 124 | $class_names .= join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $object ) ); 125 | 126 | if ($depth == 0) { 127 | $output .= $indent . '\n"; 160 | } 161 | } 162 | 163 | function start_lvl(&$output, $depth = 0, $args = Array()) { 164 | $output .= "\n"; 169 | } 170 | 171 | function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ){ 172 | $id_field = $this->db_fields['id']; 173 | if ( is_object( $args[0] ) ) { 174 | $args[0]->has_children = ! empty( $children_elements[$element->$id_field] ); 175 | } 176 | return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output ); 177 | } 178 | } 179 | 180 | // Add Twitter Bootstrap's standard 'active' class name to the active nav link item 181 | function simple_bootstrap_add_active_class($classes, $item) { 182 | if( in_array('current-menu-item', $classes) ) { 183 | $classes[] = "active"; 184 | } 185 | 186 | return $classes; 187 | } 188 | add_filter('nav_menu_css_class', 'simple_bootstrap_add_active_class', 10, 2 ); 189 | 190 | // display the main menu bootstrap-style 191 | // this menu is limited to 2 levels (that's a bootstrap limitation) 192 | function simple_bootstrap_display_main_menu() { 193 | wp_nav_menu( 194 | array( 195 | 'theme_location' => 'main_nav', /* where in the theme it's assigned */ 196 | 'menu_class' => 'navbar-nav mr-auto', 197 | 'container' => false, /* container class */ 198 | 'depth' => 2, 199 | 'walker' => new simple_bootstrap_Bootstrap_walker(), 200 | ) 201 | ); 202 | } 203 | 204 | /* 205 | A function used in multiple places to generate the metadata of a post. 206 | */ 207 | function simple_bootstrap_display_post_meta($short=true) { 208 | ?> 209 | 210 | 255 | 256 | 263 | 264 | 265 | 271 | 272 | 273 | 277 | 278 |
role="article"> 279 | 280 |
281 | 282 | 283 |
284 |

285 |
286 | 287 |
288 |

289 |
290 | 291 | 292 | 293 | 300 | 301 | 302 | 303 | 304 |
305 | 306 |
307 | 315 |
316 | 317 |
318 | 319 | 2 | 3 | > 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | > 13 | 14 | 15 | 16 | 19 | 20 |
21 | 22 |
23 | 46 |
47 | 48 | 49 |
50 |
51 |
52 | 53 |
54 |
55 | 56 |
57 |
58 |
59 | 60 | 61 |
62 |
63 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |

21 |
22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
31 | 32 | -------------------------------------------------------------------------------- /languages/fr_FR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicolas-van/wordpress-simple-bootstrap/aa1da7c055546e548f08e1836e7f9a83e78cae77/languages/fr_FR.mo -------------------------------------------------------------------------------- /languages/fr_FR.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: simple-bootstrap\n" 4 | "POT-Creation-Date: 2015-10-20 09:56+0100\n" 5 | "PO-Revision-Date: 2015-10-20 09:57+0100\n" 6 | "Last-Translator: \n" 7 | "Language-Team: \n" 8 | "Language: en\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Generator: Poedit 1.5.4\n" 13 | "X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx\n" 14 | "X-Poedit-Basepath: ../\n" 15 | "X-Poedit-SearchPath-0: .\n" 16 | 17 | #: page.php:18 page-full-width.php:24 18 | msgid "No pages found." 19 | msgstr "Aucune page trouvée." 20 | 21 | #: searchform.php:4 searchform.php:6 22 | msgid "Search" 23 | msgstr "Recherche" 24 | 25 | #: functions.php:21 26 | msgid "Main Menu" 27 | msgstr "Menu principal" 28 | 29 | #: functions.php:60 30 | msgid "Right Sidebar" 31 | msgstr "Sidebar de droite" 32 | 33 | #: functions.php:61 functions.php:70 34 | msgid "Used on every page." 35 | msgstr "Utilisé sur toutes les pages." 36 | 37 | #: functions.php:69 38 | msgid "Left Sidebar" 39 | msgstr "Sidebar de gauche" 40 | 41 | #: functions.php:79 42 | msgid "Footer" 43 | msgstr "Footer" 44 | 45 | #: functions.php:200 46 | msgid "Leave a comment" 47 | msgstr "Laissez un commentaire" 48 | 49 | #: functions.php:200 50 | msgid "1 Comment" 51 | msgstr "1 commentaire" 52 | 53 | #: functions.php:200 54 | msgid "% Comments" 55 | msgstr "% commentaires" 56 | 57 | #: functions.php:204 58 | msgid "Edit" 59 | msgstr "Modifier" 60 | 61 | #: functions.php:218 62 | msgid "Older posts" 63 | msgstr "Articles plus anciens" 64 | 65 | #: functions.php:219 66 | msgid "Newer posts" 67 | msgstr "Articles plus récents" 68 | 69 | #: image.php:52 70 | msgid "« Previous" 71 | msgstr "« Précédent" 72 | 73 | #: image.php:53 74 | msgid "Next »" 75 | msgstr "Suivant »" 76 | 77 | #: image.php:66 archive.php:26 search.php:26 attachment.php:18 78 | msgid "No items found." 79 | msgstr "Aucun élément trouvé." 80 | 81 | #: index.php:20 single.php:27 82 | msgid "No posts found." 83 | msgstr "Aucun article trouvé." 84 | 85 | #: comments.php:5 86 | msgid "This post is password protected. Enter the password to view comments." 87 | msgstr "" 88 | "Cet article est protégé par un mot de passe. Entrez le mot de passe pour " 89 | "voir les commentaires." 90 | 91 | #: comments.php:17 92 | msgid "Comments" 93 | msgstr "Commentaires" 94 | 95 | #: comments.php:30 96 | msgid "« Older Comments" 97 | msgstr "« Commentaires plus anciens" 98 | 99 | #: comments.php:31 100 | msgid "Newer Comments »" 101 | msgstr "Commentaires plus récents »" 102 | 103 | #: single.php:16 104 | msgid "Previous Post" 105 | msgstr "Article précédent" 106 | 107 | #: single.php:17 108 | msgid "Next Post" 109 | msgstr "Article suivant" 110 | 111 | #: 404.php:12 112 | msgid "Page not found" 113 | msgstr "Page non trouvée" 114 | 115 | #: search.php:8 116 | msgid "Search for:" 117 | msgstr "Rechercher:" 118 | 119 | #: footer.php:12 120 | msgid "Design by @nicolas-van" 121 | msgstr "Design par @nicolas-van" 122 | 123 | #: footer.php:13 124 | msgid "Powered by WordPress" 125 | msgstr "Propulsé par Wordpress" 126 | 127 | #: header.php:23 128 | msgid "Navigation" 129 | msgstr "Navigation" 130 | -------------------------------------------------------------------------------- /languages/simple-bootstrap.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicolas-van/wordpress-simple-bootstrap/aa1da7c055546e548f08e1836e7f9a83e78cae77/languages/simple-bootstrap.mo -------------------------------------------------------------------------------- /languages/simple-bootstrap.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: simple-bootstrap\n" 4 | "POT-Creation-Date: 2015-10-20 09:56+0100\n" 5 | "PO-Revision-Date: 2015-10-20 09:56+0100\n" 6 | "Last-Translator: \n" 7 | "Language-Team: \n" 8 | "Language: en\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Generator: Poedit 1.5.4\n" 13 | "X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx\n" 14 | "X-Poedit-Basepath: ../\n" 15 | "X-Poedit-SearchPath-0: .\n" 16 | 17 | #: page.php:18 page-full-width.php:24 18 | msgid "No pages found." 19 | msgstr "" 20 | 21 | #: searchform.php:4 searchform.php:6 22 | msgid "Search" 23 | msgstr "" 24 | 25 | #: functions.php:21 26 | msgid "Main Menu" 27 | msgstr "" 28 | 29 | #: functions.php:60 30 | msgid "Right Sidebar" 31 | msgstr "" 32 | 33 | #: functions.php:61 functions.php:70 34 | msgid "Used on every page." 35 | msgstr "" 36 | 37 | #: functions.php:69 38 | msgid "Left Sidebar" 39 | msgstr "" 40 | 41 | #: functions.php:79 42 | msgid "Footer" 43 | msgstr "" 44 | 45 | #: functions.php:200 46 | msgid "Leave a comment" 47 | msgstr "" 48 | 49 | #: functions.php:200 50 | msgid "1 Comment" 51 | msgstr "" 52 | 53 | #: functions.php:200 54 | msgid "% Comments" 55 | msgstr "" 56 | 57 | #: functions.php:204 58 | msgid "Edit" 59 | msgstr "" 60 | 61 | #: functions.php:218 62 | msgid "Older posts" 63 | msgstr "" 64 | 65 | #: functions.php:219 66 | msgid "Newer posts" 67 | msgstr "" 68 | 69 | #: image.php:52 70 | msgid "« Previous" 71 | msgstr "" 72 | 73 | #: image.php:53 74 | msgid "Next »" 75 | msgstr "" 76 | 77 | #: image.php:66 archive.php:26 search.php:26 attachment.php:18 78 | msgid "No items found." 79 | msgstr "" 80 | 81 | #: index.php:20 single.php:27 82 | msgid "No posts found." 83 | msgstr "" 84 | 85 | #: comments.php:5 86 | msgid "This post is password protected. Enter the password to view comments." 87 | msgstr "" 88 | 89 | #: comments.php:17 90 | msgid "Comments" 91 | msgstr "" 92 | 93 | #: comments.php:30 94 | msgid "« Older Comments" 95 | msgstr "" 96 | 97 | #: comments.php:31 98 | msgid "Newer Comments »" 99 | msgstr "" 100 | 101 | #: single.php:16 102 | msgid "Previous Post" 103 | msgstr "" 104 | 105 | #: single.php:17 106 | msgid "Next Post" 107 | msgstr "" 108 | 109 | #: 404.php:12 110 | msgid "Page not found" 111 | msgstr "" 112 | 113 | #: search.php:8 114 | msgid "Search for:" 115 | msgstr "" 116 | 117 | #: footer.php:12 118 | msgid "Design by @nicolas-van" 119 | msgstr "" 120 | 121 | #: footer.php:13 122 | msgid "Powered by WordPress" 123 | msgstr "" 124 | 125 | #: header.php:23 126 | msgid "Navigation" 127 | msgstr "" 128 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple-bootstrap", 3 | "version": "2.0.6", 4 | "description": "Basic Wordpress theme using Boostrap. Built to be very clean.", 5 | "main": "Gruntfile.js", 6 | "dependencies": { 7 | "@fortawesome/fontawesome-free": "^5.10.1", 8 | "bootstrap": "^4.3.1" 9 | }, 10 | "devDependencies": { 11 | "autoprefixer": "^9.6.1", 12 | "grunt": "^1.0.4", 13 | "grunt-cli": "^1.3.2", 14 | "grunt-contrib-compress": "^1.5.0", 15 | "grunt-contrib-copy": "^1.0.0", 16 | "postcss-cli": "^6.1.3", 17 | "sass": "^1.22.9", 18 | "uglify-js": "^3.6.0" 19 | }, 20 | "scripts": { 21 | "build": "npm run copy-fonts && npm run build-js && npm run build-sass", 22 | "copy-fonts": "rm -rf ./fonts && cp -r node_modules/@fortawesome/fontawesome-free/webfonts ./fonts", 23 | "build-sass": "sass scss/style.scss style.css -I . && postcss style.css --use autoprefixer -r -m", 24 | "build-js": "uglifyjs node_modules/bootstrap/dist/js/bootstrap.bundle.js -o app.min.js", 25 | "dist": "npm run build && grunt dist", 26 | "test": "echo \"no test specified\" && exit 0" 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "git://github.com/nicolas-van/wordpress-simple-boostrap.git" 31 | }, 32 | "author": "", 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/nicolas-van/wordpress-simple-boostrap/issues" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /page-no-sidebar.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 |
10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

25 |
26 | 27 | 28 | 29 |
30 | 31 |
32 | 33 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |

19 |
20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 |
29 | 30 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Simple Bootstrap === 2 | 3 | Contributors: nicolas-vanhoren 4 | Stable tag: 2.0.6 5 | Requires at least: 5.0 6 | Tested up to: 5.2 7 | Requires PHP: 5.6 8 | License: MIT 9 | License URI: http://opensource.org/licenses/MIT 10 | 11 | A clean base theme to use Twitter Boostrap 4 with Wordpress. 12 | 13 | == Description == 14 | 15 | Simple Bootstrap is clean base theme to use Twitter Boostrap 4 with Wordpress, aimed at being a 16 | starting point for developers to build their own themes using Bootstrap. 17 | 18 | See here for documentation: [http://nicolas-van.github.io/wordpress-simple-bootstrap/](http://nicolas-van.github.io/wordpress-simple-bootstrap/) 19 | 20 | == Copyright == 21 | 22 | Copyright 2015 Nicolas Vanhoren 23 | 24 | Released under the terms of the MIT license. 25 | 26 | == Frequently Asked Questions == 27 | 28 | == Changelog == 29 | 30 | = 2.0.3 = 31 | 32 | * Added Categories because they were forgotten and changed details in meta display 33 | 34 | = 2.0.2 = 35 | 36 | * Fixed issue with columns when using sidebars 37 | 38 | = 2.0.0 = 39 | 40 | * Ported to Bootstrap 4 41 | 42 | == Resources == 43 | * Bootstrap - Copyright 2015 Twitter, MIT license 44 | * Font Awesome Icons — CC BY 4.0 License (see https://fontawesome.com/license/free) 45 | * Font Awesome Fonts — SIL OFL 1.1 License (see https://fontawesome.com/license/free) 46 | * Font Awesome Code — MIT License (see https://fontawesome.com/license/free) 47 | * Unnamed image by Felipe Rizo (CC0 - https://unsplash.com/photos/qY5_Ws1DwK8) 48 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nicolas-van/wordpress-simple-bootstrap/aa1da7c055546e548f08e1836e7f9a83e78cae77/screenshot.png -------------------------------------------------------------------------------- /scss/bootstrap_variables.scss: -------------------------------------------------------------------------------- 1 | /* 2 | This file only contains customization of bootstrap's variables to 3 | define a new look for base elements. 4 | 5 | You can safely replace all it's content by any _variables.scss that 6 | can be found on https://bootswatch.com . 7 | */ 8 | // Lumen 4.3.1 9 | // Bootswatch 10 | 11 | // 12 | // Color system 13 | // 14 | 15 | $white: #fff !default; 16 | $gray-100: #f6f6f6 !default; 17 | $gray-200: #f0f0f0 !default; 18 | $gray-300: #dee2e6 !default; 19 | $gray-400: #ced4da !default; 20 | $gray-500: #adb5bd !default; 21 | $gray-600: #999 !default; 22 | $gray-700: #555 !default; 23 | $gray-800: #333 !default; 24 | $gray-900: #222 !default; 25 | $black: #000 !default; 26 | 27 | $blue: #158CBA !default; 28 | $indigo: #6610f2 !default; 29 | $purple: #6f42c1 !default; 30 | $pink: #e83e8c !default; 31 | $red: #FF4136 !default; 32 | $orange: #fd7e14 !default; 33 | $yellow: #FF851B !default; 34 | $green: #28B62C !default; 35 | $teal: #20c997 !default; 36 | $cyan: #75CAEB !default; 37 | 38 | $primary: $blue !default; 39 | $secondary: $gray-200 !default; 40 | $success: $green !default; 41 | $info: $cyan !default; 42 | $warning: $yellow !default; 43 | $danger: $red !default; 44 | $light: $gray-100 !default; 45 | $dark: $gray-700 !default; 46 | 47 | $yiq-contrasted-threshold: 200 !default; 48 | 49 | $body-bg: $gray-200; 50 | 51 | // Fonts 52 | 53 | $font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; 54 | 55 | $font-size-base: 0.875rem !default; 56 | 57 | // Buttons 58 | 59 | $btn-font-size: 0.75rem !default; 60 | 61 | $btn-font-size-sm: 0.625rem !default; 62 | 63 | $btn-font-weight: bold !default; 64 | 65 | // Dropdowns 66 | 67 | $dropdown-link-color: rgba(0,0,0,.5) !default; 68 | 69 | // Navs 70 | 71 | $nav-tabs-border-color: $gray-200 !default; 72 | $nav-tabs-link-hover-border-color: $nav-tabs-border-color !default; 73 | $nav-tabs-link-active-color: $gray-900 !default; 74 | $nav-tabs-link-active-border-color: $nav-tabs-border-color !default; 75 | 76 | // Pagination 77 | 78 | $pagination-color: $gray-700 !default; 79 | $pagination-bg: $gray-200 !default; 80 | 81 | $pagination-hover-color: $pagination-color !default; 82 | $pagination-hover-bg: $pagination-bg !default; 83 | 84 | $pagination-active-border-color: darken($primary, 5%) !default; 85 | 86 | $pagination-disabled-color: $gray-600 !default; 87 | $pagination-disabled-bg: $pagination-bg !default; 88 | 89 | // Jumbotron 90 | 91 | $jumbotron-bg: #fafafa !default; 92 | 93 | // Modals 94 | 95 | $modal-content-border-color: rgba($black,.1) !default; 96 | 97 | // Close 98 | 99 | $close-color: $white !default; -------------------------------------------------------------------------------- /scss/customization.scss: -------------------------------------------------------------------------------- 1 | 2 | $block-bg: #fff; 3 | $block-border-radius: $border-radius; 4 | $block-padding: 1.5rem; 5 | $block-shadow: 2px 2px 5px rgba(0, 0, 0, .5); 6 | 7 | $footer-bg: #f8f8f8; 8 | $footer-border: darken($footer-bg, 6.5%); 9 | $footer-padding: 1.5rem; -------------------------------------------------------------------------------- /scss/style.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Simple Bootstrap 3 | Theme URI: http://nicolas-van.github.io/wordpress-simple-bootstrap/ 4 | Description: A clean base theme to use Twitter Boostrap 4 with Wordpress. 5 | Author: Nicolas Vanhoren 6 | Author URI: https://github.com/nicolas-van 7 | Version: 2.0.6 8 | Text Domain: simple-bootstrap 9 | License: MIT 10 | License URI: http://opensource.org/licenses/MIT 11 | Tags: one-column, two-columns, three-columns, left-sidebar, right-sidebar, custom-colors, custom-background, featured-images, translation-ready, custom-header, flexible-header, custom-menu, footer-widgets, blog, wide-blocks 12 | . 13 | Licensed under the MIT license. 14 | . 15 | */ 16 | @import "bootstrap_variables"; 17 | @import "node_modules/bootstrap/scss/bootstrap"; 18 | $fa-font-path: "./fonts"; 19 | @import "node_modules/@fortawesome/fontawesome-free/scss/fontawesome"; 20 | @import "node_modules/@fortawesome/fontawesome-free/scss/regular"; 21 | @import "node_modules/@fortawesome/fontawesome-free/scss/solid"; 22 | @import "node_modules/@fortawesome/fontawesome-free/scss/brands"; 23 | 24 | @import "customization"; 25 | @import "theme_customization"; 26 | @import "wp"; -------------------------------------------------------------------------------- /scss/theme_customization.scss: -------------------------------------------------------------------------------- 1 | /* 2 | This file only contains customization of bootstrap's according to a pre-existing theme. 3 | 4 | You can safely replace all it's content by any _bootswatch.scss that 5 | can be found on https://bootswatch.com . 6 | */ 7 | // Lumen 4.3.1 8 | // Bootswatch 9 | 10 | 11 | // Variables =================================================================== 12 | 13 | $web-font-path: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic" !default; 14 | @import url($web-font-path); 15 | 16 | @mixin shadow($width: 4px){ 17 | border-style: solid; 18 | border-width: 0 1px $width 1px; 19 | } 20 | 21 | // Navbar ====================================================================== 22 | 23 | .navbar { 24 | @include shadow(); 25 | } 26 | 27 | .bg-primary { 28 | border-color: darken($primary, 5%); 29 | } 30 | 31 | .bg-dark { 32 | border-color: darken($dark, 5%); 33 | } 34 | 35 | .bg-light { 36 | background-color: #fff !important; 37 | border-color: darken(#fff, 5%); 38 | } 39 | 40 | // Buttons ===================================================================== 41 | 42 | .btn { 43 | @include shadow(); 44 | text-transform: uppercase; 45 | 46 | &:not(.disabled):hover { 47 | margin-top: 1px; 48 | border-bottom-width: 3px; 49 | } 50 | 51 | &:not(.disabled):active { 52 | margin-top: 2px; 53 | border-bottom-width: 2px; 54 | @include box-shadow(none); 55 | } 56 | } 57 | 58 | [class*="btn-outline"] { 59 | border-top-width: 1px; 60 | } 61 | 62 | .btn { 63 | &-primary { 64 | border-color: darken($primary, 5%); 65 | } 66 | 67 | &-secondary { 68 | border-color: darken($secondary, 5%); 69 | } 70 | 71 | &-success { 72 | border-color: darken($success, 5%); 73 | } 74 | 75 | &-info { 76 | border-color: darken($info, 5%); 77 | } 78 | 79 | &-danger { 80 | border-color: darken($danger, 5%); 81 | } 82 | 83 | &-warning { 84 | border-color: darken($warning, 5%); 85 | } 86 | 87 | &-light { 88 | border-color: darken($light, 5%); 89 | } 90 | 91 | &-dark { 92 | border-color: darken($dark, 5%); 93 | } 94 | } 95 | 96 | .btn-group-vertical { 97 | .btn + .btn { 98 | &:hover { 99 | margin-top: -1px; 100 | border-top-width: 1px; 101 | } 102 | 103 | &:active { 104 | margin-top: -1px; 105 | border-top-width: 2px; 106 | } 107 | } 108 | } 109 | 110 | // Typography ================================================================== 111 | 112 | .text-secondary { 113 | color: $gray-700 !important; 114 | } 115 | 116 | .blockquote-footer { 117 | color: $gray-600; 118 | } 119 | 120 | // Tables ====================================================================== 121 | 122 | .table { 123 | 124 | &-primary, 125 | &-success, 126 | &-info, 127 | &-warning, 128 | &-danger { 129 | color: #fff; 130 | } 131 | 132 | &-primary { 133 | &, > th, > td { 134 | background-color: $primary; 135 | } 136 | } 137 | 138 | &-secondary { 139 | &, > th, > td { 140 | background-color: $secondary; 141 | } 142 | } 143 | 144 | &-light { 145 | &, > th, > td { 146 | background-color: $light; 147 | } 148 | } 149 | 150 | &-dark { 151 | &, > th, > td { 152 | background-color: $dark; 153 | } 154 | } 155 | 156 | &-success { 157 | &, > th, > td { 158 | background-color: $success; 159 | } 160 | } 161 | 162 | &-info { 163 | &, > th, > td { 164 | background-color: $info; 165 | } 166 | } 167 | 168 | &-danger { 169 | &, > th, > td { 170 | background-color: $danger; 171 | } 172 | } 173 | 174 | &-warning { 175 | &, > th, > td { 176 | background-color: $warning; 177 | } 178 | } 179 | 180 | &-active { 181 | &, > th, > td { 182 | background-color: $table-active-bg; 183 | } 184 | } 185 | 186 | &-hover { 187 | 188 | .table-primary:hover { 189 | &, > th, > td { 190 | background-color: darken($primary, 5%); 191 | } 192 | } 193 | 194 | .table-secondary:hover { 195 | &, > th, > td { 196 | background-color: darken($secondary, 5%); 197 | } 198 | } 199 | 200 | .table-light:hover { 201 | &, > th, > td { 202 | background-color: darken($light, 5%); 203 | } 204 | } 205 | 206 | .table-dark:hover { 207 | &, > th, > td { 208 | background-color: darken($dark, 5%); 209 | } 210 | } 211 | 212 | .table-success:hover { 213 | &, > th, > td { 214 | background-color: darken($success, 5%); 215 | } 216 | } 217 | 218 | .table-info:hover { 219 | &, > th, > td { 220 | background-color: darken($info, 5%); 221 | } 222 | } 223 | 224 | .table-danger:hover { 225 | &, > th, > td { 226 | background-color: darken($danger, 5%); 227 | } 228 | } 229 | 230 | .table-warning:hover { 231 | &, > th, > td { 232 | background-color: darken($warning, 5%); 233 | } 234 | } 235 | 236 | .table-active:hover { 237 | &, > th, > td { 238 | background-color: $table-active-bg; 239 | } 240 | } 241 | 242 | } 243 | } 244 | 245 | // Forms ======================================================================= 246 | 247 | .form-control { 248 | box-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.075); 249 | } 250 | 251 | .input-group-sm { 252 | > .input-group-prepend, 253 | > .input-group-append { 254 | .btn { 255 | font-size: $btn-font-size-sm; 256 | } 257 | } 258 | } 259 | 260 | // Navs ======================================================================== 261 | 262 | .nav { 263 | .open > a, 264 | .open > a:hover, 265 | .open > a:focus { 266 | border-color: transparent; 267 | } 268 | } 269 | 270 | .nav-tabs { 271 | 272 | .nav-link { 273 | color: $body-color; 274 | 275 | &, 276 | &.disabled, 277 | &.disabled:hover, 278 | &.disabled:focus { 279 | margin-top: 6px; 280 | border-color: $nav-tabs-border-color; 281 | transition: all 0.2s ease-in-out; 282 | } 283 | 284 | &:not(.disabled):hover, 285 | &:not(.disabled):focus, 286 | &.active { 287 | padding-bottom: calc(0.5em + 6px); 288 | border-bottom-color: transparent; 289 | margin-top: 0; 290 | } 291 | } 292 | 293 | &.nav-justified > li { 294 | vertical-align: bottom; 295 | } 296 | } 297 | 298 | .dropdown-menu { 299 | margin-top: 0; 300 | @include shadow(); 301 | border-top-width: 1px; 302 | @include box-shadow(none); 303 | } 304 | 305 | .breadcrumb { 306 | border-color: darken($breadcrumb-bg, 5%); 307 | @include shadow(); 308 | } 309 | 310 | .pagination { 311 | 312 | > li > a, 313 | > li > span { 314 | position: relative; 315 | top: 0; 316 | @include shadow(); 317 | color: $pagination-color; 318 | font-size: 12px; 319 | font-weight: bold; 320 | text-transform: uppercase; 321 | 322 | &:hover, 323 | &:focus { 324 | top: 1px; 325 | border-bottom-width: 3px; 326 | text-decoration: none; 327 | } 328 | 329 | &:active { 330 | top: 2px; 331 | border-bottom-width: 2px; 332 | } 333 | } 334 | 335 | > .disabled > a, 336 | > .disabled > span { 337 | 338 | &:hover { 339 | top: 0; 340 | @include shadow(); 341 | } 342 | 343 | &:active { 344 | top: 0; 345 | @include shadow(); 346 | } 347 | } 348 | } 349 | 350 | .pager { 351 | 352 | > li > a, 353 | > li > span, 354 | > .disabled > a, 355 | > .disabled > span { 356 | 357 | &, 358 | &:hover, 359 | &:active { 360 | border-left-width: 2px; 361 | border-right-width: 2px; 362 | } 363 | } 364 | } 365 | 366 | // Indicators ================================================================== 367 | 368 | .close { 369 | text-decoration: none; 370 | opacity: 0.4; 371 | 372 | &:hover, 373 | &:focus { 374 | opacity: 1; 375 | } 376 | } 377 | 378 | .alert { 379 | color: $white; 380 | @include shadow(); 381 | 382 | &-primary { 383 | background-color: $primary; 384 | border-color: darken($primary, 5%); 385 | } 386 | 387 | &-secondary { 388 | background-color: $secondary; 389 | border-color: darken($secondary, 5%); 390 | } 391 | 392 | &-success { 393 | background-color: $success; 394 | border-color: darken($success, 5%); 395 | } 396 | 397 | &-info { 398 | background-color: $info; 399 | border-color: darken($info, 5%); 400 | } 401 | 402 | &-danger { 403 | background-color: $danger; 404 | border-color: darken($danger, 5%); 405 | } 406 | 407 | &-warning { 408 | background-color: $warning; 409 | border-color: darken($warning, 5%); 410 | } 411 | 412 | &-dark { 413 | background-color: $dark; 414 | border-color: darken($dark, 5%); 415 | } 416 | 417 | &-light { 418 | background-color: $light; 419 | border-color: darken($light, 5%); 420 | } 421 | 422 | .alert-link { 423 | font-weight: normal; 424 | color: #fff; 425 | text-decoration: underline; 426 | } 427 | 428 | &-secondary, 429 | &-light { 430 | &, 431 | & a, 432 | & .alert-link { 433 | color: $body-color; 434 | } 435 | } 436 | } 437 | 438 | .badge { 439 | &-warning, 440 | &-info { 441 | color: $white; 442 | } 443 | } 444 | 445 | // Progress bars =============================================================== 446 | 447 | // Containers ================================================================== 448 | 449 | a.list-group-item { 450 | 451 | &-success { 452 | &.active { 453 | background-color: $success; 454 | } 455 | 456 | &.active:hover, 457 | &.active:focus { 458 | background-color: darken($success, 5%); 459 | } 460 | } 461 | 462 | &-warning { 463 | &.active { 464 | background-color: $warning; 465 | } 466 | 467 | &.active:hover, 468 | &.active:focus { 469 | background-color: darken($warning, 5%); 470 | } 471 | } 472 | 473 | &-danger { 474 | &.active { 475 | background-color: $danger; 476 | } 477 | 478 | &.active:hover, 479 | &.active:focus { 480 | background-color: darken($danger, 5%); 481 | } 482 | } 483 | } 484 | 485 | .jumbotron { 486 | border: 1px solid $gray-200; 487 | box-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.05); 488 | } 489 | 490 | .modal { 491 | 492 | .close { 493 | color: $black; 494 | 495 | &:not(:disabled):not(.disabled):hover, 496 | &:not(:disabled):not(.disabled):focus { 497 | color: $black; 498 | } 499 | } 500 | } -------------------------------------------------------------------------------- /scss/wp.scss: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines a lot of style necessary to make Wordpress work 3 | correctly. 4 | 5 | It is not recommended to edit it unless you know exactly what you 6 | are doing. 7 | */ 8 | 9 | @mixin link-without-style(){ 10 | a { 11 | color: inherit; 12 | text-decoration: none; 13 | &:hover, &:focus { 14 | text-decoration: none; 15 | color: $link-hover-color; 16 | } 17 | } 18 | } 19 | 20 | .block { 21 | background-color: $block-bg; 22 | border-radius: $block-border-radius; 23 | padding: $block-padding $block-padding ($block-padding - $spacer) $block-padding; 24 | margin-top: 15px; 25 | margin-bottom: 15px; 26 | box-shadow: $block-shadow; 27 | 28 | overflow-wrap: break-word; 29 | word-wrap: break-word; 30 | word-break: break-word; 31 | overflow-x: hidden; 32 | 33 | &.block-title { 34 | padding-bottom: $block-padding - 1rem; 35 | } 36 | } 37 | 38 | /* Global image styling */ 39 | 40 | img { 41 | max-width: 100%; 42 | height: auto; 43 | } 44 | 45 | /* post styling */ 46 | 47 | #main>article { 48 | 49 | header { 50 | @include link-without-style(); 51 | 52 | .meta { 53 | @include link-without-style(); 54 | margin-bottom: 20px; 55 | } 56 | } 57 | 58 | section { 59 | @include clearfix(); 60 | 61 | /* For retro-compatibility with non-Gutenberg users */ 62 | 63 | img.alignleft { 64 | float: left; 65 | margin-right: 10px; 66 | } 67 | 68 | img.alignright { 69 | float: right; 70 | margin-left: 10px; 71 | } 72 | 73 | img.aligncenter { 74 | display: block; 75 | margin-right: auto; 76 | margin-left: auto; 77 | } 78 | 79 | /* To support align-wide */ 80 | 81 | .alignwide, .alignfull { 82 | margin-left: (-$block-padding); 83 | margin-right: (-$block-padding); 84 | max-width: inherit; 85 | 86 | &.wp-block-cover { 87 | width: inherit; 88 | } 89 | } 90 | } 91 | } 92 | 93 | /* comments */ 94 | 95 | #comments { 96 | @extend .block; 97 | } 98 | 99 | .commentlist { 100 | @include list-unstyled(); 101 | 102 | .children { 103 | @include list-unstyled(); 104 | margin-left: 20px; 105 | } 106 | 107 | .comment-body { 108 | padding: 30px 0; 109 | border-bottom: 1px solid $hr-border-color; 110 | 111 | .edit-link a { 112 | @extend .fa-pencil-alt; 113 | &::before { 114 | @extend .fas; 115 | padding-right: 3px; 116 | } 117 | /*@extend .text-muted; 118 | text-decoration: none; 119 | &:hover, &:focus { 120 | text-decoration: none; 121 | color: $link-hover-color; 122 | }*/ 123 | } 124 | } 125 | 126 | .comment .comment-body { 127 | &>* { 128 | padding-left: 50px; 129 | position: relative; 130 | .avatar { 131 | border: 1px solid rgba(0, 0, 0, 0.1); 132 | padding: 2px; 133 | position: absolute; 134 | left: 0; 135 | height: 34px; 136 | top: 2px; 137 | width: 34px; 138 | } 139 | } 140 | .comment-author { 141 | margin-bottom: 5px; 142 | @include link-without-style(); 143 | .fn { 144 | font-weight: bold; 145 | } 146 | } 147 | .comment-metadata { 148 | margin-bottom: 5px; 149 | @include link-without-style(); 150 | @extend .text-muted; 151 | 152 | &>a { 153 | @extend .fa-clock; 154 | &::before { 155 | @extend .fas; 156 | padding-right: 3px; 157 | } 158 | } 159 | } 160 | .reply a { 161 | @extend .fa-reply; 162 | &::before { 163 | @extend .fas; 164 | padding-right: 3px; 165 | } 166 | } 167 | } 168 | } 169 | 170 | .comment-navigation { 171 | @extend .list-inline; 172 | &>li { 173 | @extend .list-inline-item; 174 | padding: 0px; 175 | &>a { 176 | padding: 0px 5px; 177 | } 178 | } 179 | } 180 | 181 | .comment-form { 182 | .comment-form-author, 183 | .comment-form-email, 184 | .comment-form-url, 185 | .comment-form-comment{ 186 | @extend .form-group; 187 | 188 | input, 189 | textarea{ 190 | @extend .form-control; 191 | } 192 | 193 | textarea{ 194 | height: auto; 195 | } 196 | } 197 | .form-allowed-tags{ 198 | code{ 199 | white-space: normal; 200 | color: $body-color; 201 | background-color: transparent; 202 | } 203 | } 204 | input[type='submit']{ 205 | @extend .btn; 206 | @extend .btn-primary; 207 | } 208 | } 209 | 210 | 211 | 212 | /* widget styles */ 213 | 214 | .widget { 215 | margin-bottom: 38px; 216 | &:last-of-type { 217 | margin-bottom: 18px; 218 | } 219 | } 220 | 221 | .widgettitle { 222 | margin-bottom: 9px; 223 | } 224 | 225 | .tagcloud { 226 | a { 227 | @extend .badge; 228 | @extend .badge-secondary; 229 | } 230 | } 231 | 232 | /* calendar widget */ 233 | 234 | .widget_calendar { 235 | >div { 236 | @extend .table-responsive; 237 | } 238 | table { 239 | @extend .table; 240 | caption { 241 | font-weight: bold; 242 | } 243 | } 244 | } 245 | 246 | /* widgets */ 247 | 248 | .vertical-nav { 249 | .widget ul { 250 | @include list-unstyled(); 251 | li { 252 | @include link-without-style(); 253 | padding: 5px 0; 254 | border-bottom: 1px solid $hr-border-color; 255 | &:last-of-type { 256 | border-bottom: 0px; 257 | } 258 | ul { 259 | margin-left: 15px; 260 | } 261 | } 262 | } 263 | } 264 | 265 | /* footer */ 266 | 267 | html { 268 | height: 100%; 269 | } 270 | 271 | body { 272 | background-size: cover; 273 | height: 100%; 274 | } 275 | 276 | #content-wrapper { 277 | display: flex; 278 | flex-direction: column; 279 | min-height: 100%; 280 | width: 100%; 281 | } 282 | 283 | #page-content { 284 | flex-grow: 1; 285 | } 286 | 287 | #inner-footer { 288 | background-color: $footer-bg; 289 | padding-top: $footer-padding; 290 | padding-bottom: ($footer-padding - $spacer); 291 | } 292 | 293 | /* featured image */ 294 | 295 | .featured-image { 296 | margin: 0 (-$block-padding) $spacer (-$block-padding); 297 | img { 298 | width: 100%; 299 | height: auto; 300 | } 301 | } 302 | 303 | /* gallery */ 304 | 305 | .gallery { 306 | @include make-row(); 307 | .gallery-item { 308 | @include make-col-ready(); 309 | @include media-breakpoint-up(xs) { 310 | @include make-col(6); 311 | } 312 | @include media-breakpoint-up(sm) { 313 | @include make-col(4); 314 | } 315 | @include media-breakpoint-up(md) { 316 | @include make-col(3); 317 | } 318 | padding-bottom: 15px; 319 | } 320 | } 321 | 322 | /* a style used for all headers */ 323 | 324 | .article-header { 325 | padding-bottom: (($spacer / 2) - 1); 326 | margin-bottom: $spacer; 327 | border-bottom: 1px solid $hr-border-color; 328 | .has-post-thumbnail & { 329 | border-bottom: none; 330 | } 331 | } 332 | 333 | /* Port of Bootstrap 3's pager */ 334 | 335 | 336 | .pager { 337 | list-style: none; 338 | padding-left: 0; 339 | 340 | @extend .clearfix; 341 | 342 | li { 343 | display: inline; 344 | > a, 345 | > span { 346 | @extend .btn; 347 | @extend .btn-secondary; 348 | } 349 | } 350 | 351 | .next { 352 | > a, 353 | > span { 354 | float: right; 355 | } 356 | } 357 | 358 | .previous { 359 | > a, 360 | > span { 361 | float: left; 362 | } 363 | } 364 | } 365 | 366 | /* empty styles to please wordpress theme checker */ 367 | 368 | .wp-caption {/**/} 369 | .wp-caption-text {/**/} 370 | .sticky {/**/} 371 | .gallery-caption {/**/} 372 | .bypostauthor {/**/} 373 | 374 | .screen-reader-text { 375 | @extend .sr-only; 376 | } 377 | 378 | .header-image { 379 | background-position: top center; 380 | background-size: cover; 381 | min-height: 350px; 382 | text-align: center; 383 | box-shadow: $block-shadow; 384 | 385 | @media (max-width: map-get($grid-breakpoints, 'lg') - 1px) { 386 | min-height: 300px; 387 | } 388 | 389 | @media (max-width: map-get($grid-breakpoints, 'md') - 1px) { 390 | min-height: 250px; 391 | } 392 | 393 | @media (max-width: map-get($grid-breakpoints, 'sm') - 1px) { 394 | min-height: 200px; 395 | } 396 | } 397 | 398 | .site-title { 399 | @extend .h1; 400 | font-weight: bold; 401 | } 402 | 403 | .site-description { 404 | @extend .h3; 405 | font-weight: bold; 406 | } 407 | 408 | .skip-link { 409 | background-color: #f1f1f1; 410 | border-radius: 3px; 411 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 412 | color: #21759b; 413 | right: 5px; 414 | font-size: 14px; 415 | font-size: 0.875rem; 416 | font-weight: bold; 417 | top: 5px; 418 | position: absolute !important; 419 | z-index: 1000; 420 | padding: 3px; 421 | } 422 | -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 |
8 |

9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |

27 |
28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | 36 |
37 | 38 | -------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | " value="" class="form-control" /> 5 |
6 | 7 |
8 |
9 |
10 |
-------------------------------------------------------------------------------- /sidebar-left.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /sidebar-right.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 |

28 |
29 | 30 | 31 | 32 |
33 | 34 | 35 | 36 | 37 |
38 | 39 | --------------------------------------------------------------------------------