├── screenshot.png ├── .gitignore ├── languages ├── readme.txt └── _s.pot ├── layouts ├── content-sidebar.css └── sidebar-content.css ├── rtl.css ├── package.json ├── inc ├── jetpack.php ├── wpcom.php ├── customizer.php ├── extras.php ├── custom-header.php └── template-tags.php ├── js ├── skip-link-focus-fix.js ├── combined.min.js ├── navigation.js └── customizer.js ├── footer.php ├── single.php ├── content-page.php ├── sidebar.php ├── page.php ├── content-none.php ├── search.php ├── index.php ├── header.php ├── 404.php ├── CONTRIBUTING.md ├── content-single.php ├── Gruntfile.js ├── content.php ├── comments.php ├── README.md ├── archive.php ├── functions.php ├── .csscomb.json ├── scss └── style.scss └── style.css /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devinsays/underscores-grunt/HEAD/screenshot.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | .DS_Store 3 | Icon 4 | 5 | # Node.js / Grunt 6 | node_modules 7 | .sass-cache 8 | npm-debug.log -------------------------------------------------------------------------------- /languages/readme.txt: -------------------------------------------------------------------------------- 1 | Place your theme language files in this directory. 2 | 3 | Please visit the following links to learn more about translating WordPress themes: 4 | 5 | http://codex.wordpress.org/Translating_WordPress 6 | http://codex.wordpress.org/Function_Reference/load_theme_textdomain 7 | -------------------------------------------------------------------------------- /layouts/content-sidebar.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: _s 3 | Layout: Content-Sidebar 4 | */ 5 | 6 | .content-area { 7 | float: left; 8 | margin: 0 -25% 0 0; 9 | width: 100%; 10 | } 11 | .site-main { 12 | margin: 0 25% 0 0; 13 | } 14 | .site-content .widget-area { 15 | float: right; 16 | overflow: hidden; 17 | width: 25%; 18 | } 19 | .site-footer { 20 | clear: both; 21 | width: 100%; 22 | } -------------------------------------------------------------------------------- /layouts/sidebar-content.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: _s 3 | Layout: Sidebar-Content 4 | */ 5 | 6 | .content-area { 7 | float: right; 8 | margin: 0 0 0 -25%; 9 | width: 100%; 10 | } 11 | .site-main { 12 | margin: 0 0 0 25%; 13 | } 14 | .site-content .widget-area { 15 | float: left; 16 | overflow: hidden; 17 | width: 25%; 18 | } 19 | .site-footer { 20 | clear: both; 21 | width: 100%; 22 | } -------------------------------------------------------------------------------- /rtl.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: _s 3 | 4 | Adding support for language written in a Right To Left (RTL) direction is easy - 5 | it's just a matter of overwriting all the horizontal positioning attributes 6 | of your CSS stylesheet in a separate stylesheet file named rtl.css. 7 | 8 | http://codex.wordpress.org/Right_to_Left_Language_Support 9 | 10 | */ 11 | 12 | /* 13 | body { 14 | direction: rtl; 15 | unicode-bidi: embed; 16 | } 17 | */ -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "underscores-grunt", 3 | "version": "1.0.0", 4 | "devDependencies": { 5 | "grunt": "~0.4.5", 6 | "grunt-cli": "~0.1.9", 7 | "load-grunt-tasks": "~0.4.0", 8 | "grunt-contrib-watch": "~0.6.1", 9 | "grunt-contrib-sass": "~0.7.3", 10 | "grunt-autoprefixer": "~0.7.2", 11 | "grunt-csscomb" : "~2.0.1", 12 | "grunt-contrib-concat": "~0.3.0", 13 | "grunt-contrib-uglify": "~0.4.0", 14 | "grunt-wp-i18n": "~0.4.3" 15 | } 16 | } -------------------------------------------------------------------------------- /inc/jetpack.php: -------------------------------------------------------------------------------- 1 | 'main', 16 | 'footer' => 'page', 17 | ) ); 18 | } 19 | add_action( 'after_setup_theme', '_s_jetpack_setup' ); 20 | -------------------------------------------------------------------------------- /inc/wpcom.php: -------------------------------------------------------------------------------- 1 | '', 22 | 'border' => '', 23 | 'text' => '', 24 | 'link' => '', 25 | 'url' => '', 26 | ); 27 | } 28 | } 29 | add_action( 'after_setup_theme', '_s_wpcom_setup' ); 30 | -------------------------------------------------------------------------------- /js/skip-link-focus-fix.js: -------------------------------------------------------------------------------- 1 | ( function() { 2 | var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1, 3 | is_opera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1, 4 | is_ie = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1; 5 | 6 | if ( ( is_webkit || is_opera || is_ie ) && document.getElementById && window.addEventListener ) { 7 | window.addEventListener( 'hashchange', function() { 8 | var element = document.getElementById( location.hash.substring( 1 ) ); 9 | 10 | if ( element ) { 11 | if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) 12 | element.tabIndex = -1; 13 | 14 | element.focus(); 15 | } 16 | }, false ); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 25 | 26 | 27 | 28 |
29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /content-page.php: -------------------------------------------------------------------------------- 1 | 8 | 9 |
> 10 |
11 | ', '' ); ?> 12 |
13 | 14 |
15 | 16 | '', 20 | ) ); 21 | ?> 22 |
23 | 26 |
27 | -------------------------------------------------------------------------------- /js/combined.min.js: -------------------------------------------------------------------------------- 1 | !function(){var a=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,b=navigator.userAgent.toLowerCase().indexOf("opera")>-1,c=navigator.userAgent.toLowerCase().indexOf("msie")>-1;(a||b||c)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var a=document.getElementById(location.hash.substring(1));a&&(/^(?:a|select|input|button|textarea)$/i.test(a.tagName)||(a.tabIndex=-1),a.focus())},!1)}(),function(){var a,b,c;if(a=document.getElementById("site-navigation"),a&&(b=a.getElementsByTagName("button")[0],"undefined"!=typeof b)){if(c=a.getElementsByTagName("ul")[0],"undefined"==typeof c)return void(b.style.display="none");-1===c.className.indexOf("nav-menu")&&(c.className+=" nav-menu"),b.onclick=function(){-1!==a.className.indexOf("toggled")?a.className=a.className.replace(" toggled",""):a.className+=" toggled"}}}(); -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 8 | 33 | -------------------------------------------------------------------------------- /js/navigation.js: -------------------------------------------------------------------------------- 1 | /** 2 | * navigation.js 3 | * 4 | * Handles toggling the navigation menu for small screens. 5 | */ 6 | ( function() { 7 | var container, button, menu; 8 | 9 | container = document.getElementById( 'site-navigation' ); 10 | if ( ! container ) 11 | return; 12 | 13 | button = container.getElementsByTagName( 'button' )[0]; 14 | if ( 'undefined' === typeof button ) 15 | return; 16 | 17 | menu = container.getElementsByTagName( 'ul' )[0]; 18 | 19 | // Hide menu toggle button if menu is empty and return early. 20 | if ( 'undefined' === typeof menu ) { 21 | button.style.display = 'none'; 22 | return; 23 | } 24 | 25 | if ( -1 === menu.className.indexOf( 'nav-menu' ) ) 26 | menu.className += ' nav-menu'; 27 | 28 | button.onclick = function() { 29 | if ( -1 !== container.className.indexOf( 'toggled' ) ) 30 | container.className = container.className.replace( ' toggled', '' ); 31 | else 32 | container.className += ' toggled'; 33 | }; 34 | } )(); 35 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 14 | 15 |
16 |
17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 |
32 |
33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /inc/customizer.php: -------------------------------------------------------------------------------- 1 | get_setting( 'blogname' )->transport = 'postMessage'; 15 | $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; 16 | $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; 17 | } 18 | add_action( 'customize_register', '_s_customize_register' ); 19 | 20 | /** 21 | * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. 22 | */ 23 | function _s_customize_preview_js() { 24 | wp_enqueue_script( '_s_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '20130508', true ); 25 | } 26 | add_action( 'customize_preview_init', '_s_customize_preview_js' ); 27 | -------------------------------------------------------------------------------- /js/customizer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Theme Customizer enhancements for a better user experience. 3 | * 4 | * Contains handlers to make Theme Customizer preview reload changes asynchronously. 5 | */ 6 | 7 | ( function( $ ) { 8 | // Site title and description. 9 | wp.customize( 'blogname', function( value ) { 10 | value.bind( function( to ) { 11 | $( '.site-title a' ).text( to ); 12 | } ); 13 | } ); 14 | wp.customize( 'blogdescription', function( value ) { 15 | value.bind( function( to ) { 16 | $( '.site-description' ).text( to ); 17 | } ); 18 | } ); 19 | // Header text color. 20 | wp.customize( 'header_textcolor', function( value ) { 21 | value.bind( function( to ) { 22 | if ( 'blank' === to ) { 23 | $( '.site-title, .site-description' ).css( { 24 | 'clip': 'rect(1px, 1px, 1px, 1px)', 25 | 'position': 'absolute' 26 | } ); 27 | } else { 28 | $( '.site-title, .site-description' ).css( { 29 | 'clip': 'auto', 30 | 'color': to, 31 | 'position': 'relative' 32 | } ); 33 | } 34 | } ); 35 | } ); 36 | } )( jQuery ); 37 | -------------------------------------------------------------------------------- /content-none.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
12 | 15 | 16 |
17 | 18 | 19 |

Get started here.', '_s' ), esc_url( admin_url( 'post-new.php' ) ) ); ?>

20 | 21 | 22 | 23 |

24 | 25 | 26 | 27 | 28 |

29 | 30 | 31 | 32 |
33 |
34 | -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
11 |
12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
43 |
44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | section and everything up till
6 | * 7 | * @package _s 8 | */ 9 | ?> 10 | > 11 | 12 | 13 | 14 | <?php wp_title( '|', true, 'right' ); ?> 15 | 16 | 17 | 18 | 19 | 20 | 21 | > 22 |
23 | 24 | 25 | 36 | 37 |
38 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
11 |
12 | 13 |
14 | 17 | 18 |
19 |

20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 |

28 |
    29 | 'count', 32 | 'order' => 'DESC', 33 | 'show_count' => 1, 34 | 'title_li' => '', 35 | 'number' => 10, 36 | ) ); 37 | ?> 38 |
39 |
40 | 41 | 42 | ' . sprintf( __( 'Try looking in the monthly archives. %1$s', '_s' ), convert_smilies( ':)' ) ) . '

'; 45 | the_widget( 'WP_Widget_Archives', 'dropdown=1', "after_title=$archive_content" ); 46 | ?> 47 | 48 | 49 | 50 |
51 |
52 | 53 |
54 |
55 | 56 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Thanks for contributing to `_s` (Underscores) — you rock! 2 | 3 | ## _s 4 | Before getting started, make sure your issue has not been discussed earlier. You can search for existing tickets [here](https://github.com/Automattic/_s/search). 5 | 6 | Here are some tips to consider and to help you write a great report: 7 | 8 | * `_s` supports Internet Explorer 9 and greater, as well as the latest two versions of all other major browsers. 9 | * `_s` is backwards compatible with the two versions prior to the current stable version of WordPress. 10 | * `_s` uses HTML5 markup. In HTML5, it is common to use multiple `

` elements. 11 | * We decided to not include translations [[#50](https://github.com/Automattic/_s/pull/50)] beyond the exisiting `_s.pot` file, a RTL stylesheet [[#263](https://github.com/Automattic/_s/pull/263)], or editor styles [[#225](https://github.com/Automattic/_s/pull/225)], as they are likely to change during development of an `_s`-based theme. 12 | 13 | By contributing code to `_s`, you grant its use under the [GNU General Public License v2 (or later)](http://www.gnu.org/licenses/gpl-2.0.html). 14 | 15 | ## Underscores.me 16 | If your issue is specific to the [Underscores.me](http://underscores.me) website, the [Underscores.me GitHub repo](https://github.com/Automattic/underscores.me) is the right place for you. 17 | 18 | The preferred method of generating a new theme based on `_s` is the [Underscores.me](http://underscores.me) website. If you have an alternative method, such as a shell script, write a blog post about it or host it in a separate repo -- and make sure to mention [@underscoresme](https://twitter.com/underscoresme) in your tweets! 19 | 20 | Want to have your avatar listed as one of the `_s` contributors [here](http://underscores.me/#contribute)? Just make sure you have an email address added to both GitHub and your local Git installation. 21 | -------------------------------------------------------------------------------- /content-single.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |
> 8 |
9 | ', '

' ); ?> 10 | 11 | 14 | 15 | 16 |
17 | 18 | '', 22 | ) ); 23 | ?> 24 |
25 | 26 |
27 | permalink.', '_s' ); 38 | } else { 39 | $meta_text = __( 'Bookmark the permalink.', '_s' ); 40 | } 41 | 42 | } else { 43 | // But this blog has loads of categories so we should probably display them here 44 | if ( '' != $tag_list ) { 45 | $meta_text = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the permalink.', '_s' ); 46 | } else { 47 | $meta_text = __( 'This entry was posted in %1$s. Bookmark the permalink.', '_s' ); 48 | } 49 | 50 | } // end check for categories on this blog 51 | 52 | printf( 53 | $meta_text, 54 | $category_list, 55 | $tag_list, 56 | get_permalink() 57 | ); 58 | ?> 59 | 60 | ', '' ); ?> 61 |
62 | 63 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = function(grunt) { 3 | 4 | // load all tasks 5 | require('load-grunt-tasks')(grunt, {scope: 'devDependencies'}); 6 | 7 | grunt.initConfig({ 8 | pkg: grunt.file.readJSON('package.json'), 9 | watch: { 10 | files: ['scss/*.scss'], 11 | tasks: 'sass:dev', 12 | options: { 13 | livereload: true, 14 | }, 15 | }, 16 | sass: { 17 | dev: { 18 | options : { 19 | style : 'expanded' 20 | }, 21 | files: { 22 | 'style.css':'scss/style.scss', 23 | } 24 | }, 25 | release: { 26 | options : { 27 | style : 'expanded' 28 | }, 29 | files: { 30 | 'style.css':'scss/style.scss', 31 | } 32 | }, 33 | }, 34 | autoprefixer: { 35 | options: { 36 | browsers: ['> 1%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1', 'ie 9'] 37 | }, 38 | single_file: { 39 | src: 'style.css', 40 | dest: 'style.css' 41 | } 42 | }, 43 | csscomb: { 44 | options: { 45 | config: '.csscomb.json' 46 | }, 47 | files: { 48 | 'style.css': ['style.css'], 49 | } 50 | }, 51 | concat: { 52 | release: { 53 | src: [ 54 | 'js/skip-link-focus-fix.js', 55 | 'js/navigation.js', 56 | ], 57 | dest: 'js/combined.min.js', 58 | } 59 | }, 60 | uglify: { 61 | release: { 62 | src: 'js/combined.min.js', 63 | dest: 'js/combined.min.js' 64 | } 65 | }, 66 | // https://www.npmjs.org/package/grunt-wp-i18n 67 | makepot: { 68 | target: { 69 | options: { 70 | domainPath: '/languages/', // Where to save the POT file. 71 | potFilename: '_s.pot', // Name of the POT file. 72 | type: 'wp-theme' // Type of project (wp-plugin or wp-theme). 73 | } 74 | } 75 | } 76 | 77 | }); 78 | 79 | grunt.registerTask( 'default', [ 80 | 'sass:dev' 81 | ]); 82 | grunt.registerTask( 'release', [ 83 | 'sass:release', 84 | 'autoprefixer', 85 | 'csscomb', 86 | 'concat:release', 87 | 'uglify:release', 88 | 'makepot' 89 | ]); 90 | 91 | }; -------------------------------------------------------------------------------- /content.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |
> 8 |
9 | ', esc_url( get_permalink() ) ), '' ); ?> 10 | 11 | 12 | 15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | →', '_s' ) ); ?> 25 | '', 29 | ) ); 30 | ?> 31 |
32 | 33 | 34 |
35 | 36 | 41 | 42 | 43 | 44 | 45 | 46 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | ', '' ); ?> 62 |
63 |
64 | -------------------------------------------------------------------------------- /inc/extras.php: -------------------------------------------------------------------------------- 1 | tag based on what is being viewed. 40 | * 41 | * @param string $title Default title text for current view. 42 | * @param string $sep Optional separator. 43 | * @return string The filtered title. 44 | */ 45 | function _s_wp_title( $title, $sep ) { 46 | if ( is_feed() ) { 47 | return $title; 48 | } 49 | 50 | global $page, $paged; 51 | 52 | // Add the blog name 53 | $title .= get_bloginfo( 'name', 'display' ); 54 | 55 | // Add the blog description for the home/front page. 56 | $site_description = get_bloginfo( 'description', 'display' ); 57 | if ( $site_description && ( is_home() || is_front_page() ) ) { 58 | $title .= " $sep $site_description"; 59 | } 60 | 61 | // Add a page number if necessary: 62 | if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) { 63 | $title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) ); 64 | } 65 | 66 | return $title; 67 | } 68 | add_filter( 'wp_title', '_s_wp_title', 10, 2 ); 69 | 70 | /** 71 | * Sets the authordata global when viewing an author archive. 72 | * 73 | * This provides backwards compatibility with 74 | * http://core.trac.wordpress.org/changeset/25574 75 | * 76 | * It removes the need to call the_post() and rewind_posts() in an author 77 | * template to print information about the author. 78 | * 79 | * @global WP_Query $wp_query WordPress Query object. 80 | * @return void 81 | */ 82 | function _s_setup_author() { 83 | global $wp_query; 84 | 85 | if ( $wp_query->is_author() && isset( $wp_query->post ) ) { 86 | $GLOBALS['authordata'] = get_userdata( $wp_query->post->post_author ); 87 | } 88 | } 89 | add_action( 'wp', '_s_setup_author' ); 90 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 20 | 21 |
22 | 23 | 24 | 25 | 26 |

27 | ' . get_the_title() . '' ); 30 | ?> 31 |

32 | 33 | 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> 34 | 39 | 40 | 41 |
    42 | 'ol', 45 | 'short_ping' => true, 46 | ) ); 47 | ?> 48 |
49 | 50 | 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> 51 | 56 | 57 | 58 | 59 | 60 | 64 |

65 | 66 | 67 | 68 | 69 |
70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | _s 2 | === 3 | 4 | Hi. I'm a starter theme called `_s`, or `underscores`, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for. 5 | 6 | My ultra-minimal CSS might make me look like theme tartare but that means less stuff to get in your way when you're designing your awesome theme. Here are some of the other more interesting things you'll find here: 7 | 8 | * A just right amount of lean, well-commented, modern, HTML5 templates. 9 | * A helpful 404 template. 10 | * A sample custom header implementation in `inc/custom-header.php` that can be activated by uncommenting one line in functions.php and adding the code snippet found in the comments of `inc/custom-header.php` to your `header.php` template. 11 | * Custom template tags in `inc/template-tags.php` that keep your templates clean and neat and prevent code duplication. 12 | * Some small tweaks in `inc/extras.php` that can improve your theming experience. 13 | * A script at `js/navigation.js` that makes your menu a toggled dropdown on small screens (like your phone), ready for CSS artistry. It's enqueued in `functions.php`. 14 | * 2 sample CSS layouts in `layouts` for a sidebar on either side of your content. 15 | * Smartly organized starter CSS in `style.css` that will help you to quickly get your design off the ground. 16 | * Licensed under GPLv2 or later. :) Use it to make something cool. 17 | 18 | Getting Started 19 | --------------- 20 | 21 | If you want to keep it simple, head over to http://underscores.me and generate your `_s` based theme from there. You just input the name of the theme you want to create, click the "Generate" button, and you get your ready-to-awesomize starter theme. 22 | 23 | If you want to set things up manually, download `_s` from github. The first thing you want to do is copy the `_s` directory and change the name to something else - Like, say, `megatherium` - then you'll need to do a five-step find and replace on the name in all the templates. 24 | 25 | 1. Search for `'_s'` (inside single quotations) to capture the text domain. 26 | 2. Search for `_s_` to capture all the function names. 27 | 3. Search for `Text Domain: _s` in style.css. 28 | 4. Search for  _s (with a space before it) to capture DocBlocks. 29 | 5. Search for `_s-` to capture prefixed handles. 30 | 31 | OR 32 | 33 | * Search for: `'_s'` and replace with: `'megatherium'` 34 | * Search for: `_s_` and replace with: `megatherium_` 35 | * Search for: `Text Domain: _s` and replace with: `Text Domain: megatherium` in style.css. 36 | * Search for:  _s and replace with:  Megatherium 37 | * Search for: `_s-` and replace with: `megatherium-` 38 | 39 | Then, update the stylesheet header in style.css and the links in footer.php with your own information. Next, update or delete this readme. 40 | 41 | Now you're ready to go! The next step is easy to say, but harder to do: make an awesome WordPress theme. :) 42 | 43 | Good luck! 44 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
13 |
14 | 15 | 16 | 17 |
', $term_description ); 76 | endif; 77 | ?> 78 | 79 | 80 | 81 | 82 | 83 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /inc/custom-header.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | * 15 | * @package _s 16 | */ 17 | 18 | /** 19 | * Setup the WordPress core custom header feature. 20 | * 21 | * @uses _s_header_style() 22 | * @uses _s_admin_header_style() 23 | * @uses _s_admin_header_image() 24 | */ 25 | function _s_custom_header_setup() { 26 | add_theme_support( 'custom-header', apply_filters( '_s_custom_header_args', array( 27 | 'default-image' => '', 28 | 'default-text-color' => '000000', 29 | 'width' => 1000, 30 | 'height' => 250, 31 | 'flex-height' => true, 32 | 'wp-head-callback' => '_s_header_style', 33 | 'admin-head-callback' => '_s_admin_header_style', 34 | 'admin-preview-callback' => '_s_admin_header_image', 35 | ) ) ); 36 | } 37 | add_action( 'after_setup_theme', '_s_custom_header_setup' ); 38 | 39 | if ( ! function_exists( '_s_header_style' ) ) : 40 | /** 41 | * Styles the header image and text displayed on the blog 42 | * 43 | * @see _s_custom_header_setup(). 44 | */ 45 | function _s_header_style() { 46 | $header_text_color = get_header_textcolor(); 47 | 48 | // If no custom options for text are set, let's bail 49 | // get_header_textcolor() options: HEADER_TEXTCOLOR is default, hide text (returns 'blank') or any hex value 50 | if ( HEADER_TEXTCOLOR == $header_text_color ) { 51 | return; 52 | } 53 | 54 | // If we get this far, we have custom styles. Let's do this. 55 | ?> 56 | 76 | Header admin panel. 83 | * 84 | * @see _s_custom_header_setup(). 85 | */ 86 | function _s_admin_header_style() { 87 | ?> 88 | 104 | Header admin panel. 111 | * 112 | * @see _s_custom_header_setup(). 113 | */ 114 | function _s_admin_header_image() { 115 | $style = sprintf( ' style="color:#%s;"', get_header_textcolor() ); 116 | ?> 117 |
118 |

onclick="return false;" href="">

119 |
>
120 | 121 | 122 | 123 |
124 | __( 'Primary Menu', '_s' ), 46 | ) ); 47 | 48 | // Enable support for Post Formats. 49 | add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) ); 50 | 51 | // Setup the WordPress core custom background feature. 52 | add_theme_support( 'custom-background', apply_filters( '_s_custom_background_args', array( 53 | 'default-color' => 'ffffff', 54 | 'default-image' => '', 55 | ) ) ); 56 | 57 | // Enable support for HTML5 markup. 58 | add_theme_support( 'html5', array( 59 | 'comment-list', 60 | 'search-form', 61 | 'comment-form', 62 | 'gallery', 63 | 'caption', 64 | ) ); 65 | } 66 | endif; // _s_setup 67 | add_action( 'after_setup_theme', '_s_setup' ); 68 | 69 | /** 70 | * Register widget area. 71 | * 72 | * @link http://codex.wordpress.org/Function_Reference/register_sidebar 73 | */ 74 | function _s_widgets_init() { 75 | register_sidebar( array( 76 | 'name' => __( 'Sidebar', '_s' ), 77 | 'id' => 'sidebar-1', 78 | 'description' => '', 79 | 'before_widget' => '', 81 | 'before_title' => '

', 82 | 'after_title' => '

', 83 | ) ); 84 | } 85 | add_action( 'widgets_init', '_s_widgets_init' ); 86 | 87 | /** 88 | * Enqueue scripts and styles. 89 | */ 90 | function _s_scripts() { 91 | wp_enqueue_style( '_s-style', get_stylesheet_uri() ); 92 | 93 | if ( WP_DEBUG || SCRIPT_DEBUG ) { 94 | 95 | wp_enqueue_script( '_s-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true ); 96 | 97 | wp_enqueue_script( '_s-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true ); 98 | 99 | } else { 100 | 101 | wp_enqueue_script( '_s-combined', get_template_directory_uri() . '/js/combined.min.js', array(), '20130115', true ); 102 | 103 | } 104 | 105 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 106 | wp_enqueue_script( 'comment-reply' ); 107 | } 108 | } 109 | add_action( 'wp_enqueue_scripts', '_s_scripts' ); 110 | 111 | /** 112 | * Implement the Custom Header feature. 113 | */ 114 | //require get_template_directory() . '/inc/custom-header.php'; 115 | 116 | /** 117 | * Custom template tags for this theme. 118 | */ 119 | require get_template_directory() . '/inc/template-tags.php'; 120 | 121 | /** 122 | * Custom functions that act independently of the theme templates. 123 | */ 124 | require get_template_directory() . '/inc/extras.php'; 125 | 126 | /** 127 | * Customizer additions. 128 | */ 129 | require get_template_directory() . '/inc/customizer.php'; 130 | 131 | /** 132 | * Load Jetpack compatibility file. 133 | */ 134 | require get_template_directory() . '/inc/jetpack.php'; 135 | -------------------------------------------------------------------------------- /inc/template-tags.php: -------------------------------------------------------------------------------- 1 | max_num_pages < 2 ) { 17 | return; 18 | } 19 | ?> 20 | 34 | post_parent ) : get_adjacent_post( false, '', true ); 45 | $next = get_adjacent_post( false, '', false ); 46 | 47 | if ( ! $next && ! $previous ) { 48 | return; 49 | } 50 | ?> 51 |
59 | 60 | %2$s'; 70 | if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { 71 | $time_string .= ''; 72 | } 73 | 74 | $time_string = sprintf( $time_string, 75 | esc_attr( get_the_date( 'c' ) ), 76 | esc_html( get_the_date() ), 77 | esc_attr( get_the_modified_date( 'c' ) ), 78 | esc_html( get_the_modified_date() ) 79 | ); 80 | 81 | printf( __( 'Posted on %1$s by %2$s', '_s' ), 82 | sprintf( '%2$s', 83 | esc_url( get_permalink() ), 84 | $time_string 85 | ), 86 | sprintf( '%2$s', 87 | esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), 88 | esc_html( get_the_author() ) 89 | ) 90 | ); 91 | } 92 | endif; 93 | 94 | /** 95 | * Returns true if a blog has more than 1 category. 96 | * 97 | * @return bool 98 | */ 99 | function _s_categorized_blog() { 100 | if ( false === ( $all_the_cool_cats = get_transient( '_s_categories' ) ) ) { 101 | // Create an array of all the categories that are attached to posts. 102 | $all_the_cool_cats = get_categories( array( 103 | 'fields' => 'ids', 104 | 'hide_empty' => 1, 105 | 106 | // We only need to know if there is more than one category. 107 | 'number' => 2, 108 | ) ); 109 | 110 | // Count the number of categories that are attached to the posts. 111 | $all_the_cool_cats = count( $all_the_cool_cats ); 112 | 113 | set_transient( '_s_categories', $all_the_cool_cats ); 114 | } 115 | 116 | if ( $all_the_cool_cats > 1 ) { 117 | // This blog has more than 1 category so _s_categorized_blog should return true. 118 | return true; 119 | } else { 120 | // This blog has only 1 category so _s_categorized_blog should return false. 121 | return false; 122 | } 123 | } 124 | 125 | /** 126 | * Flush out the transients used in _s_categorized_blog. 127 | */ 128 | function _s_category_transient_flusher() { 129 | // Like, beat it. Dig? 130 | delete_transient( '_s_categories' ); 131 | } 132 | add_action( 'edit_category', '_s_category_transient_flusher' ); 133 | add_action( 'save_post', '_s_category_transient_flusher' ); 134 | -------------------------------------------------------------------------------- /languages/_s.pot: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2014 Automattic 2 | # This file is distributed under the GNU General Public License v2 or later. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Underscores Grunt 1.0-wpcom\n" 6 | "Report-Msgid-Bugs-To: http://wordpress.org/support/theme/style\n" 7 | "POT-Creation-Date: 2014-05-19 21:07:13+00:00\n" 8 | "MIME-Version: 1.0\n" 9 | "Content-Type: text/plain; charset=utf-8\n" 10 | "Content-Transfer-Encoding: 8bit\n" 11 | "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: LANGUAGE \n" 14 | 15 | #: 404.php:15 16 | msgid "Oops! That page can’t be found." 17 | msgstr "" 18 | 19 | #: 404.php:19 20 | msgid "" 21 | "It looks like nothing was found at this location. Maybe try one of the " 22 | "links below or a search?" 23 | msgstr "" 24 | 25 | #: 404.php:27 26 | msgid "Most Used Categories" 27 | msgstr "" 28 | 29 | #: 404.php:44 30 | #. translators: %1$s: smiley 31 | msgid "Try looking in the monthly archives. %1$s" 32 | msgstr "" 33 | 34 | #: archive.php:27 35 | msgid "Author: %s" 36 | msgstr "" 37 | 38 | #: archive.php:30 39 | msgid "Day: %s" 40 | msgstr "" 41 | 42 | #: archive.php:33 43 | msgid "Month: %s" 44 | msgstr "" 45 | 46 | #: archive.php:36 47 | msgid "Year: %s" 48 | msgstr "" 49 | 50 | #: archive.php:39 51 | msgid "Asides" 52 | msgstr "" 53 | 54 | #: archive.php:42 55 | msgid "Galleries" 56 | msgstr "" 57 | 58 | #: archive.php:45 59 | msgid "Images" 60 | msgstr "" 61 | 62 | #: archive.php:48 63 | msgid "Videos" 64 | msgstr "" 65 | 66 | #: archive.php:51 67 | msgid "Quotes" 68 | msgstr "" 69 | 70 | #: archive.php:54 71 | msgid "Links" 72 | msgstr "" 73 | 74 | #: archive.php:57 75 | msgid "Statuses" 76 | msgstr "" 77 | 78 | #: archive.php:60 79 | msgid "Audios" 80 | msgstr "" 81 | 82 | #: archive.php:63 83 | msgid "Chats" 84 | msgstr "" 85 | 86 | #: archive.php:66 sidebar.php:16 87 | msgid "Archives" 88 | msgstr "" 89 | 90 | #: comments.php:35 comments.php:52 91 | msgid "Comment navigation" 92 | msgstr "" 93 | 94 | #: comments.php:36 comments.php:53 95 | msgid "← Older Comments" 96 | msgstr "" 97 | 98 | #: comments.php:37 comments.php:54 99 | msgid "Newer Comments →" 100 | msgstr "" 101 | 102 | #: comments.php:64 103 | msgid "Comments are closed." 104 | msgstr "" 105 | 106 | #: content-none.php:13 107 | msgid "Nothing Found" 108 | msgstr "" 109 | 110 | #: content-none.php:19 111 | msgid "Ready to publish your first post? Get started here." 112 | msgstr "" 113 | 114 | #: content-none.php:23 115 | msgid "" 116 | "Sorry, but nothing matched your search terms. Please try again with some " 117 | "different keywords." 118 | msgstr "" 119 | 120 | #: content-none.php:28 121 | msgid "" 122 | "It seems we can’t find what you’re looking for. Perhaps " 123 | "searching can help." 124 | msgstr "" 125 | 126 | #: content-page.php:18 content-single.php:20 content.php:27 127 | msgid "Pages:" 128 | msgstr "" 129 | 130 | #: content-page.php:24 content-single.php:60 content.php:61 131 | msgid "Edit" 132 | msgstr "" 133 | 134 | #: content-single.php:29 content-single.php:32 content.php:38 content.php:48 135 | #. translators: used between list items, there is a space after the comma 136 | msgid ", " 137 | msgstr "" 138 | 139 | #: content-single.php:37 140 | msgid "" 141 | "This entry was tagged %2$s. Bookmark the permalink." 143 | msgstr "" 144 | 145 | #: content-single.php:39 146 | msgid "Bookmark the permalink." 147 | msgstr "" 148 | 149 | #: content-single.php:45 150 | msgid "" 151 | "This entry was posted in %1$s and tagged %2$s. Bookmark the permalink." 153 | msgstr "" 154 | 155 | #: content-single.php:47 156 | msgid "" 157 | "This entry was posted in %1$s. Bookmark the permalink." 159 | msgstr "" 160 | 161 | #: content.php:24 162 | msgid "Continue reading " 163 | msgstr "" 164 | 165 | #: content.php:42 166 | msgid "Posted in %1$s" 167 | msgstr "" 168 | 169 | #: content.php:52 170 | msgid "Tagged %1$s" 171 | msgstr "" 172 | 173 | #: content.php:58 174 | msgid "Leave a comment" 175 | msgstr "" 176 | 177 | #: content.php:58 178 | msgid "1 Comment" 179 | msgstr "" 180 | 181 | #: content.php:58 182 | msgid "% Comments" 183 | msgstr "" 184 | 185 | #: footer.php:15 186 | msgid "http://wordpress.org/" 187 | msgstr "" 188 | 189 | #: footer.php:15 190 | msgid "Proudly powered by %s" 191 | msgstr "" 192 | 193 | #: footer.php:17 194 | msgid "Theme: %1$s by %2$s." 195 | msgstr "" 196 | 197 | #: functions.php:45 header.php:32 198 | msgid "Primary Menu" 199 | msgstr "" 200 | 201 | #: functions.php:76 202 | msgid "Sidebar" 203 | msgstr "" 204 | 205 | #: header.php:23 206 | msgid "Skip to content" 207 | msgstr "" 208 | 209 | #: inc/extras.php:63 210 | msgid "Page %s" 211 | msgstr "" 212 | 213 | #: inc/template-tags.php:21 214 | msgid "Posts navigation" 215 | msgstr "" 216 | 217 | #: inc/template-tags.php:25 218 | msgid " Older posts" 219 | msgstr "" 220 | 221 | #: inc/template-tags.php:29 222 | msgid "Newer posts " 223 | msgstr "" 224 | 225 | #: inc/template-tags.php:52 226 | msgid "Post navigation" 227 | msgstr "" 228 | 229 | #: inc/template-tags.php:81 230 | msgid "" 231 | "Posted on %1$s by " 232 | "%2$s" 233 | msgstr "" 234 | 235 | #: search.php:16 236 | msgid "Search Results for: %s" 237 | msgstr "" 238 | 239 | #: sidebar.php:23 240 | msgid "Meta" 241 | msgstr "" 242 | 243 | #. Theme Name of the plugin/theme 244 | msgid "Underscores Grunt" 245 | msgstr "" 246 | 247 | #. Theme URI of the plugin/theme 248 | msgid "http://underscores.me/" 249 | msgstr "" 250 | 251 | #. Description of the plugin/theme 252 | msgid "" 253 | "Hi. I'm a starter theme called _s, or underscores, if " 254 | "you like. I'm a theme meant for hacking so don't use me as a Parent " 255 | "Theme. Instead try turning me into the next, most awesome, WordPress " 256 | "theme out there. That's what I'm here for." 257 | msgstr "" 258 | 259 | #. Author of the plugin/theme 260 | msgid "Automattic" 261 | msgstr "" 262 | 263 | #. Author URI of the plugin/theme 264 | msgid "http://automattic.com/" 265 | msgstr "" 266 | 267 | #: archive.php:33 268 | msgctxt "monthly archives date format" 269 | msgid "F Y" 270 | msgstr "" 271 | 272 | #: archive.php:36 273 | msgctxt "yearly archives date format" 274 | msgid "Y" 275 | msgstr "" 276 | 277 | #: comments.php:28 278 | msgctxt "comments title" 279 | msgid "One thought on “%2$s”" 280 | msgid_plural "%1$s thoughts on “%2$s”" 281 | msgstr[0] "" 282 | msgstr[1] "" 283 | 284 | #: inc/template-tags.php:55 285 | msgctxt "Previous post link" 286 | msgid " %title" 287 | msgstr "" 288 | 289 | #: inc/template-tags.php:56 290 | msgctxt "Next post link" 291 | msgid "%title " 292 | msgstr "" -------------------------------------------------------------------------------- /.csscomb.json: -------------------------------------------------------------------------------- 1 | { 2 | "verbose": true, 3 | "always-semicolon": true, 4 | "block-indent": "\t", 5 | "colon-space": [0, 1], 6 | "color-case": "lower", 7 | "color-shorthand": true, 8 | "combinator-space": [1, 1], 9 | "element-case": "lower", 10 | "eof-newline": true, 11 | "leading-zero": true, 12 | "quotes": "double", 13 | "remove-empty-rulesets": true, 14 | "rule-indent": "\t", 15 | "stick-brace": 1, 16 | "strip-spaces": true, 17 | "unitless-zero": true, 18 | "vendor-prefix-align": false, 19 | "sort-order": [ 20 | "$variable", 21 | "$include", 22 | 23 | "display", 24 | "visibility", 25 | "float", 26 | "clear", 27 | "overflow", 28 | "overflow-x", 29 | "overflow-y", 30 | "-ms-overflow-x", 31 | "-ms-overflow-y", 32 | "clip", 33 | "zoom", 34 | "flex-direction", 35 | "flex-order", 36 | "flex-pack", 37 | "flex-align", 38 | 39 | "position", 40 | "z-index", 41 | "top", 42 | "right", 43 | "bottom", 44 | "left", 45 | 46 | "-webkit-box-sizing", 47 | "-moz-box-sizing", 48 | "box-sizing", 49 | "width", 50 | "min-width", 51 | "max-width", 52 | "height", 53 | "min-height", 54 | "max-height", 55 | "margin", 56 | "margin-top", 57 | "margin-right", 58 | "margin-bottom", 59 | "margin-left", 60 | "padding", 61 | "padding-top", 62 | "padding-right", 63 | "padding-bottom", 64 | "padding-left", 65 | "border", 66 | "border-width", 67 | "border-style", 68 | "border-color", 69 | "border-top", 70 | "border-top-width", 71 | "border-top-style", 72 | "border-top-color", 73 | "border-right", 74 | "border-right-width", 75 | "border-right-style", 76 | "border-right-color", 77 | "border-bottom", 78 | "border-bottom-width", 79 | "border-bottom-style", 80 | "border-bottom-color", 81 | "border-left", 82 | "border-left-width", 83 | "border-left-style", 84 | "border-left-color", 85 | "-webkit-border-radius", 86 | "-moz-border-radius", 87 | "border-radius", 88 | "-webkit-border-top-left-radius", 89 | "-moz-border-radius-topleft", 90 | "border-top-left-radius", 91 | "-webkit-border-top-right-radius", 92 | "-moz-border-radius-topright", 93 | "border-top-right-radius", 94 | "-webkit-border-bottom-right-radius", 95 | "-moz-border-radius-bottomright", 96 | "border-bottom-right-radius", 97 | "-webkit-border-bottom-left-radius", 98 | "-moz-border-radius-bottomleft", 99 | "border-bottom-left-radius", 100 | "-webkit-border-image", 101 | "-moz-border-image", 102 | "-o-border-image", 103 | "border-image", 104 | "-webkit-border-image-source", 105 | "-moz-border-image-source", 106 | "-o-border-image-source", 107 | "border-image-source", 108 | "-webkit-border-image-slice", 109 | "-moz-border-image-slice", 110 | "-o-border-image-slice", 111 | "border-image-slice", 112 | "-webkit-border-image-width", 113 | "-moz-border-image-width", 114 | "-o-border-image-width", 115 | "border-image-width", 116 | "-webkit-border-image-outset", 117 | "-moz-border-image-outset", 118 | "-o-border-image-outset", 119 | "border-image-outset", 120 | "-webkit-border-image-repeat", 121 | "-moz-border-image-repeat", 122 | "-o-border-image-repeat", 123 | "border-image-repeat", 124 | "table-layout", 125 | "empty-cells", 126 | "caption-side", 127 | "border-spacing", 128 | "border-collapse", 129 | 130 | "outline", 131 | "outline-width", 132 | "outline-style", 133 | "outline-color", 134 | "outline-offset", 135 | "opacity", 136 | "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", 137 | "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", 138 | "-ms-interpolation-mode", 139 | "color", 140 | "background", 141 | "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", 142 | "background-color", 143 | "background-image", 144 | "background-repeat", 145 | "background-attachment", 146 | "background-position", 147 | "background-position-x", 148 | "-ms-background-position-x", 149 | "background-position-y", 150 | "-ms-background-position-y", 151 | "-webkit-background-clip", 152 | "-moz-background-clip", 153 | "background-clip", 154 | "background-origin", 155 | "-webkit-background-size", 156 | "-moz-background-size", 157 | "-o-background-size", 158 | "background-size", 159 | "box-decoration-break", 160 | "-webkit-box-shadow", 161 | "-moz-box-shadow", 162 | "box-shadow", 163 | "filter:progid:DXImageTransform.Microsoft.gradient", 164 | "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", 165 | "text-shadow", 166 | "font", 167 | "font-family", 168 | "font-size", 169 | "font-weight", 170 | "font-style", 171 | "font-variant", 172 | "font-size-adjust", 173 | "font-stretch", 174 | "font-effect", 175 | "font-emphasize", 176 | "font-emphasize-position", 177 | "font-emphasize-style", 178 | "font-smooth", 179 | "line-height", 180 | "text-align", 181 | "-webkit-text-align-last", 182 | "-moz-text-align-last", 183 | "-ms-text-align-last", 184 | "text-align-last", 185 | "vertical-align", 186 | "white-space", 187 | "text-decoration", 188 | "text-emphasis", 189 | "text-emphasis-color", 190 | "text-emphasis-style", 191 | "text-emphasis-position", 192 | "text-indent", 193 | "-ms-text-justify", 194 | "text-justify", 195 | "letter-spacing", 196 | "word-spacing", 197 | "-ms-writing-mode", 198 | "text-outline", 199 | "text-transform", 200 | "text-wrap", 201 | "text-overflow", 202 | "-ms-text-overflow", 203 | "text-overflow-ellipsis", 204 | "text-overflow-mode", 205 | "-ms-word-wrap", 206 | "word-wrap", 207 | "word-break", 208 | "-ms-word-break", 209 | "-moz-tab-size", 210 | "-o-tab-size", 211 | "tab-size", 212 | "-webkit-hyphens", 213 | "-moz-hyphens", 214 | "hyphens", 215 | 216 | "list-style", 217 | "list-style-position", 218 | "list-style-type", 219 | "list-style-image", 220 | "content", 221 | "quotes", 222 | "counter-reset", 223 | "counter-increment", 224 | "resize", 225 | "cursor", 226 | "-webkit-user-select", 227 | "-moz-user-select", 228 | "-ms-user-select", 229 | "user-select", 230 | "nav-index", 231 | "nav-up", 232 | "nav-right", 233 | "nav-down", 234 | "nav-left", 235 | "-webkit-transition", 236 | "-moz-transition", 237 | "-ms-transition", 238 | "-o-transition", 239 | "transition", 240 | "-webkit-transition-delay", 241 | "-moz-transition-delay", 242 | "-ms-transition-delay", 243 | "-o-transition-delay", 244 | "transition-delay", 245 | "-webkit-transition-timing-function", 246 | "-moz-transition-timing-function", 247 | "-ms-transition-timing-function", 248 | "-o-transition-timing-function", 249 | "transition-timing-function", 250 | "-webkit-transition-duration", 251 | "-moz-transition-duration", 252 | "-ms-transition-duration", 253 | "-o-transition-duration", 254 | "transition-duration", 255 | "-webkit-transition-property", 256 | "-moz-transition-property", 257 | "-ms-transition-property", 258 | "-o-transition-property", 259 | "transition-property", 260 | "-webkit-transform", 261 | "-moz-transform", 262 | "-ms-transform", 263 | "-o-transform", 264 | "transform", 265 | "-webkit-transform-origin", 266 | "-moz-transform-origin", 267 | "-ms-transform-origin", 268 | "-o-transform-origin", 269 | "transform-origin", 270 | "-webkit-animation", 271 | "-moz-animation", 272 | "-ms-animation", 273 | "-o-animation", 274 | "animation", 275 | "-webkit-animation-name", 276 | "-moz-animation-name", 277 | "-ms-animation-name", 278 | "-o-animation-name", 279 | "animation-name", 280 | "-webkit-animation-duration", 281 | "-moz-animation-duration", 282 | "-ms-animation-duration", 283 | "-o-animation-duration", 284 | "animation-duration", 285 | "-webkit-animation-play-state", 286 | "-moz-animation-play-state", 287 | "-ms-animation-play-state", 288 | "-o-animation-play-state", 289 | "animation-play-state", 290 | "-webkit-animation-timing-function", 291 | "-moz-animation-timing-function", 292 | "-ms-animation-timing-function", 293 | "-o-animation-timing-function", 294 | "animation-timing-function", 295 | "-webkit-animation-delay", 296 | "-moz-animation-delay", 297 | "-ms-animation-delay", 298 | "-o-animation-delay", 299 | "animation-delay", 300 | "-webkit-animation-iteration-count", 301 | "-moz-animation-iteration-count", 302 | "-ms-animation-iteration-count", 303 | "-o-animation-iteration-count", 304 | "animation-iteration-count", 305 | "-webkit-animation-direction", 306 | "-moz-animation-direction", 307 | "-ms-animation-direction", 308 | "-o-animation-direction", 309 | "animation-direction", 310 | "pointer-events" 311 | ] 312 | } -------------------------------------------------------------------------------- /scss/style.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Underscores Grunt 3 | Theme URI: http://underscores.me/ 4 | Author: Automattic 5 | Author URI: http://automattic.com/ 6 | Description: Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for. 7 | Version: 1.0-wpcom 8 | License: GNU General Public License v2 or later 9 | License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 | Text Domain: _s 11 | Domain Path: /languages/ 12 | Tags: 13 | 14 | This theme, like WordPress, is licensed under the GPL. 15 | Use it to make something cool, have fun, and share what you've learned with others. 16 | 17 | _s is based on Underscores http://underscores.me/, (C) 2012-2014 Automattic, Inc. 18 | 19 | Resetting and rebuilding styles have been helped along thanks to the fine work of 20 | Eric Meyer http://meyerweb.com/eric/tools/css/reset/index.html 21 | along with Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/ 22 | and Blueprint http://www.blueprintcss.org/ 23 | */ 24 | 25 | /*-------------------------------------------------------------- 26 | >>> TABLE OF CONTENTS: 27 | ---------------------------------------------------------------- 28 | 1.0 - Reset 29 | 2.0 - Typography 30 | 3.0 - Elements 31 | 4.0 - Forms 32 | 5.0 - Navigation 33 | 5.1 - Links 34 | 5.2 - Menus 35 | 6.0 - Accessibility 36 | 7.0 - Alignments 37 | 8.0 - Clearings 38 | 9.0 - Widgets 39 | 10.0 - Content 40 | 10.1 - Posts and pages 41 | 10.2 - Asides 42 | 10.3 - Comments 43 | 11.0 - Infinite scroll 44 | 12.0 - Media 45 | 12.1 - Captions 46 | 12.2 - Galleries 47 | --------------------------------------------------------------*/ 48 | 49 | /*-------------------------------------------------------------- 50 | 1.0 - Reset 51 | --------------------------------------------------------------*/ 52 | html, body, div, span, applet, object, iframe, 53 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 54 | a, abbr, acronym, address, big, cite, code, 55 | del, dfn, em, font, ins, kbd, q, s, samp, 56 | small, strike, strong, sub, sup, tt, var, 57 | dl, dt, dd, ol, ul, li, 58 | fieldset, form, label, legend, 59 | table, caption, tbody, tfoot, thead, tr, th, td { 60 | border: 0; 61 | font-family: inherit; 62 | font-size: 100%; 63 | font-style: inherit; 64 | font-weight: inherit; 65 | margin: 0; 66 | outline: 0; 67 | padding: 0; 68 | vertical-align: baseline; 69 | } 70 | html { 71 | font-size: 62.5%; /* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */ 72 | overflow-y: scroll; /* Keeps page centered in all browsers regardless of content height */ 73 | -webkit-text-size-adjust: 100%; /* Prevents iOS text size adjust after orientation change, without disabling user zoom */ 74 | -ms-text-size-adjust: 100%; /* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ 75 | } 76 | *, 77 | *:before, 78 | *:after { /* apply a natural box layout model to all elements; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */ 79 | -webkit-box-sizing: border-box; /* Not needed for modern webkit but still used by Blackberry Browser 7.0; see http://caniuse.com/#search=box-sizing */ 80 | -moz-box-sizing: border-box; /* Still needed for Firefox 28; see http://caniuse.com/#search=box-sizing */ 81 | box-sizing: border-box; 82 | } 83 | body { 84 | background: #fff; 85 | } 86 | article, 87 | aside, 88 | details, 89 | figcaption, 90 | figure, 91 | footer, 92 | header, 93 | main, 94 | nav, 95 | section { 96 | display: block; 97 | } 98 | ol, ul { 99 | list-style: none; 100 | } 101 | table { /* tables still need 'cellspacing="0"' in the markup */ 102 | border-collapse: separate; 103 | border-spacing: 0; 104 | } 105 | caption, th, td { 106 | font-weight: normal; 107 | text-align: left; 108 | } 109 | blockquote:before, blockquote:after, 110 | q:before, q:after { 111 | content: ""; 112 | } 113 | blockquote, q { 114 | quotes: "" ""; 115 | } 116 | a:focus { 117 | outline: thin dotted; 118 | } 119 | a:hover, 120 | a:active { 121 | outline: 0; 122 | } 123 | a img { 124 | border: 0; 125 | } 126 | 127 | /*-------------------------------------------------------------- 128 | 2.0 Typography 129 | --------------------------------------------------------------*/ 130 | body, 131 | button, 132 | input, 133 | select, 134 | textarea { 135 | color: #404040; 136 | font-family: sans-serif; 137 | font-size: 16px; 138 | font-size: 1.6rem; 139 | line-height: 1.5; 140 | } 141 | h1, h2, h3, h4, h5, h6 { 142 | clear: both; 143 | } 144 | p { 145 | margin-bottom: 1.5em; 146 | } 147 | b, strong { 148 | font-weight: bold; 149 | } 150 | dfn, cite, em, i { 151 | font-style: italic; 152 | } 153 | blockquote { 154 | margin: 0 1.5em; 155 | } 156 | address { 157 | margin: 0 0 1.5em; 158 | } 159 | pre { 160 | background: #eee; 161 | font-family: "Courier 10 Pitch", Courier, monospace; 162 | font-size: 15px; 163 | font-size: 1.5rem; 164 | line-height: 1.6; 165 | margin-bottom: 1.6em; 166 | max-width: 100%; 167 | overflow: auto; 168 | padding: 1.6em; 169 | } 170 | code, kbd, tt, var { 171 | font: 15px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; 172 | } 173 | abbr, acronym { 174 | border-bottom: 1px dotted #666; 175 | cursor: help; 176 | } 177 | mark, ins { 178 | background: #fff9c0; 179 | text-decoration: none; 180 | } 181 | sup, 182 | sub { 183 | font-size: 75%; 184 | height: 0; 185 | line-height: 0; 186 | position: relative; 187 | vertical-align: baseline; 188 | } 189 | sup { 190 | bottom: 1ex; 191 | } 192 | sub { 193 | top: .5ex; 194 | } 195 | small { 196 | font-size: 75%; 197 | } 198 | big { 199 | font-size: 125%; 200 | } 201 | 202 | /*-------------------------------------------------------------- 203 | 3.0 Elements 204 | --------------------------------------------------------------*/ 205 | hr { 206 | background-color: #ccc; 207 | border: 0; 208 | height: 1px; 209 | margin-bottom: 1.5em; 210 | } 211 | ul, ol { 212 | margin: 0 0 1.5em 3em; 213 | } 214 | ul { 215 | list-style: disc; 216 | } 217 | ol { 218 | list-style: decimal; 219 | } 220 | li > ul, 221 | li > ol { 222 | margin-bottom: 0; 223 | margin-left: 1.5em; 224 | } 225 | dt { 226 | font-weight: bold; 227 | } 228 | dd { 229 | margin: 0 1.5em 1.5em; 230 | } 231 | img { 232 | height: auto; /* Make sure images are scaled correctly. */ 233 | max-width: 100%; /* Adhere to container width. */ 234 | } 235 | figure { 236 | margin: 0; 237 | } 238 | table { 239 | margin: 0 0 1.5em; 240 | width: 100%; 241 | } 242 | th { 243 | font-weight: bold; 244 | } 245 | 246 | /*-------------------------------------------------------------- 247 | 4.0 Forms 248 | --------------------------------------------------------------*/ 249 | button, 250 | input, 251 | select, 252 | textarea { 253 | font-size: 100%; /* Corrects font size not being inherited in all browsers */ 254 | margin: 0; /* Addresses margins set differently in IE6/7, F3/4, S5, Chrome */ 255 | vertical-align: baseline; /* Improves appearance and consistency in all browsers */ 256 | } 257 | button, 258 | input[type="button"], 259 | input[type="reset"], 260 | input[type="submit"] { 261 | border: 1px solid #ccc; 262 | border-color: #ccc #ccc #bbb #ccc; 263 | border-radius: 3px; 264 | background: #e6e6e6; 265 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 15px 17px rgba(255, 255, 255, 0.5), inset 0 -5px 12px rgba(0, 0, 0, 0.05); 266 | color: rgba(0, 0, 0, .8); 267 | cursor: pointer; /* Improves usability and consistency of cursor style between image-type 'input' and others */ 268 | -webkit-appearance: button; /* Corrects inability to style clickable 'input' types in iOS */ 269 | font-size: 12px; 270 | font-size: 1.2rem; 271 | line-height: 1; 272 | padding: .6em 1em .4em; 273 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); 274 | } 275 | button:hover, 276 | input[type="button"]:hover, 277 | input[type="reset"]:hover, 278 | input[type="submit"]:hover { 279 | border-color: #ccc #bbb #aaa #bbb; 280 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 15px 17px rgba(255, 255, 255, 0.8), inset 0 -5px 12px rgba(0, 0, 0, 0.02); 281 | } 282 | button:focus, 283 | input[type="button"]:focus, 284 | input[type="reset"]:focus, 285 | input[type="submit"]:focus, 286 | button:active, 287 | input[type="button"]:active, 288 | input[type="reset"]:active, 289 | input[type="submit"]:active { 290 | border-color: #aaa #bbb #bbb #bbb; 291 | box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 2px 5px rgba(0, 0, 0, 0.15); 292 | } 293 | input[type="checkbox"], 294 | input[type="radio"] { 295 | padding: 0; /* Addresses excess padding in IE8/9 */ 296 | } 297 | input[type="search"] { 298 | -webkit-appearance: textfield; /* Addresses appearance set to searchfield in S5, Chrome */ 299 | -webkit-box-sizing: content-box; /* Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof) */ 300 | -moz-box-sizing: content-box; 301 | box-sizing: content-box; 302 | } 303 | input[type="search"]::-webkit-search-decoration { /* Corrects inner padding displayed oddly in S5, Chrome on OSX */ 304 | -webkit-appearance: none; 305 | } 306 | button::-moz-focus-inner, 307 | input::-moz-focus-inner { /* Corrects inner padding and border displayed oddly in FF3/4 www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */ 308 | border: 0; 309 | padding: 0; 310 | } 311 | input[type="text"], 312 | input[type="email"], 313 | input[type="url"], 314 | input[type="password"], 315 | input[type="search"], 316 | textarea { 317 | color: #666; 318 | border: 1px solid #ccc; 319 | border-radius: 3px; 320 | } 321 | input[type="text"]:focus, 322 | input[type="email"]:focus, 323 | input[type="url"]:focus, 324 | input[type="password"]:focus, 325 | input[type="search"]:focus, 326 | textarea:focus { 327 | color: #111; 328 | } 329 | input[type="text"], 330 | input[type="email"], 331 | input[type="url"], 332 | input[type="password"], 333 | input[type="search"] { 334 | padding: 3px; 335 | } 336 | textarea { 337 | overflow: auto; /* Removes default vertical scrollbar in IE6/7/8/9 */ 338 | padding-left: 3px; 339 | vertical-align: top; /* Improves readability and alignment in all browsers */ 340 | width: 98%; 341 | } 342 | 343 | /*-------------------------------------------------------------- 344 | 5.0 Navigation 345 | --------------------------------------------------------------*/ 346 | /*-------------------------------------------------------------- 347 | 5.1 Links 348 | --------------------------------------------------------------*/ 349 | a { 350 | color: royalblue; 351 | } 352 | a:visited { 353 | color: purple; 354 | } 355 | a:hover, 356 | a:focus, 357 | a:active { 358 | color: midnightblue; 359 | } 360 | 361 | /*-------------------------------------------------------------- 362 | 5.2 Menus 363 | --------------------------------------------------------------*/ 364 | .main-navigation { 365 | clear: both; 366 | display: block; 367 | float: left; 368 | width: 100%; 369 | } 370 | .main-navigation ul { 371 | list-style: none; 372 | margin: 0; 373 | padding-left: 0; 374 | } 375 | .main-navigation li { 376 | float: left; 377 | position: relative; 378 | } 379 | .main-navigation a { 380 | display: block; 381 | text-decoration: none; 382 | } 383 | .main-navigation ul ul { 384 | box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 385 | display: none; 386 | float: left; 387 | left: 0; 388 | position: absolute; 389 | top: 1.5em; 390 | z-index: 99999; 391 | } 392 | .main-navigation ul ul ul { 393 | left: 100%; 394 | top: 0; 395 | } 396 | .main-navigation ul ul a { 397 | width: 200px; 398 | } 399 | .main-navigation ul ul li { 400 | } 401 | .main-navigation li:hover > a { 402 | } 403 | .main-navigation ul ul :hover > a { 404 | } 405 | .main-navigation ul ul a:hover { 406 | } 407 | .main-navigation ul li:hover > ul { 408 | display: block; 409 | } 410 | .main-navigation .current_page_item a, 411 | .main-navigation .current-menu-item a { 412 | } 413 | /* Small menu */ 414 | .menu-toggle { 415 | display: none; 416 | } 417 | @media screen and (max-width: 600px) { 418 | .menu-toggle, 419 | .main-navigation.toggled .nav-menu { 420 | display: block; 421 | } 422 | 423 | .main-navigation ul { 424 | display: none; 425 | } 426 | } 427 | .site-main .comment-navigation, 428 | .site-main .paging-navigation, 429 | .site-main .post-navigation { 430 | margin: 0 0 1.5em; 431 | overflow: hidden; 432 | } 433 | .comment-navigation .nav-previous, 434 | .paging-navigation .nav-previous, 435 | .post-navigation .nav-previous { 436 | float: left; 437 | width: 50%; 438 | } 439 | .comment-navigation .nav-next, 440 | .paging-navigation .nav-next, 441 | .post-navigation .nav-next { 442 | float: right; 443 | text-align: right; 444 | width: 50%; 445 | } 446 | 447 | /*-------------------------------------------------------------- 448 | 6.0 Accessibility 449 | --------------------------------------------------------------*/ 450 | /* Text meant only for screen readers */ 451 | .screen-reader-text { 452 | clip: rect(1px, 1px, 1px, 1px); 453 | position: absolute !important; 454 | height: 1px; 455 | width: 1px; 456 | overflow: hidden; 457 | } 458 | 459 | .screen-reader-text:hover, 460 | .screen-reader-text:active, 461 | .screen-reader-text:focus { 462 | background-color: #f1f1f1; 463 | border-radius: 3px; 464 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 465 | clip: auto !important; 466 | color: #21759b; 467 | display: block; 468 | font-size: 14px; 469 | font-weight: bold; 470 | height: auto; 471 | left: 5px; 472 | line-height: normal; 473 | padding: 15px 23px 14px; 474 | text-decoration: none; 475 | top: 5px; 476 | width: auto; 477 | z-index: 100000; /* Above WP toolbar */ 478 | } 479 | 480 | /*-------------------------------------------------------------- 481 | 7.0 Alignments 482 | --------------------------------------------------------------*/ 483 | .alignleft { 484 | display: inline; 485 | float: left; 486 | margin-right: 1.5em; 487 | } 488 | .alignright { 489 | display: inline; 490 | float: right; 491 | margin-left: 1.5em; 492 | } 493 | .aligncenter { 494 | clear: both; 495 | display: block; 496 | margin: 0 auto; 497 | } 498 | 499 | /*-------------------------------------------------------------- 500 | 8.0 Clearings 501 | --------------------------------------------------------------*/ 502 | .clear:before, 503 | .clear:after, 504 | .entry-content:before, 505 | .entry-content:after, 506 | .comment-content:before, 507 | .comment-content:after, 508 | .site-header:before, 509 | .site-header:after, 510 | .site-content:before, 511 | .site-content:after, 512 | .site-footer:before, 513 | .site-footer:after { 514 | content: ''; 515 | display: table; 516 | } 517 | 518 | .clear:after, 519 | .entry-content:after, 520 | .comment-content:after, 521 | .site-header:after, 522 | .site-content:after, 523 | .site-footer:after { 524 | clear: both; 525 | } 526 | 527 | /*-------------------------------------------------------------- 528 | 9.0 Widgets 529 | --------------------------------------------------------------*/ 530 | .widget { 531 | margin: 0 0 1.5em; 532 | } 533 | 534 | /* Make sure select elements fit in widgets */ 535 | .widget select { 536 | max-width: 100%; 537 | } 538 | 539 | /* Search widget */ 540 | .widget_search .search-submit { 541 | display: none; 542 | } 543 | 544 | /*-------------------------------------------------------------- 545 | 10.0 Content 546 | --------------------------------------------------------------*/ 547 | /*-------------------------------------------------------------- 548 | 10.1 Posts and pages 549 | --------------------------------------------------------------*/ 550 | .sticky { 551 | } 552 | .hentry { 553 | margin: 0 0 1.5em; 554 | } 555 | .byline, 556 | .updated { 557 | display: none; 558 | } 559 | .single .byline, 560 | .group-blog .byline { 561 | display: inline; 562 | } 563 | .page-content, 564 | .entry-content, 565 | .entry-summary { 566 | margin: 1.5em 0 0; 567 | } 568 | .page-links { 569 | clear: both; 570 | margin: 0 0 1.5em; 571 | } 572 | 573 | /*-------------------------------------------------------------- 574 | 10.2 Asides 575 | --------------------------------------------------------------*/ 576 | .blog .format-aside .entry-title, 577 | .archive .format-aside .entry-title { 578 | display: none; 579 | } 580 | 581 | /*-------------------------------------------------------------- 582 | 10.3 Comments 583 | --------------------------------------------------------------*/ 584 | .comment-content a { 585 | word-wrap: break-word; 586 | } 587 | .bypostauthor { 588 | } 589 | 590 | /*-------------------------------------------------------------- 591 | 11.0 Infinite scroll 592 | --------------------------------------------------------------*/ 593 | /* Globally hidden elements when Infinite Scroll is supported and in use. */ 594 | .infinite-scroll .paging-navigation, /* Older / Newer Posts Navigation (always hidden) */ 595 | .infinite-scroll.neverending .site-footer { /* Theme Footer (when set to scrolling) */ 596 | display: none; 597 | } 598 | /* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before */ 599 | .infinity-end.neverending .site-footer { 600 | display: block; 601 | } 602 | 603 | /*-------------------------------------------------------------- 604 | 12.0 Media 605 | --------------------------------------------------------------*/ 606 | .page-content img.wp-smiley, 607 | .entry-content img.wp-smiley, 608 | .comment-content img.wp-smiley { 609 | border: none; 610 | margin-bottom: 0; 611 | margin-top: 0; 612 | padding: 0; 613 | } 614 | /* Make sure embeds and iframes fit their containers */ 615 | embed, 616 | iframe, 617 | object { 618 | max-width: 100%; 619 | } 620 | 621 | /*-------------------------------------------------------------- 622 | 12.1 Captions 623 | --------------------------------------------------------------*/ 624 | .wp-caption { 625 | margin-bottom: 1.5em; 626 | max-width: 100%; 627 | } 628 | .wp-caption img[class*="wp-image-"] { 629 | display: block; 630 | margin: 0 auto; 631 | } 632 | .wp-caption-text { 633 | text-align: center; 634 | } 635 | .wp-caption .wp-caption-text { 636 | margin: 0.8075em 0; 637 | } 638 | 639 | /*-------------------------------------------------------------- 640 | 12.2 Galleries 641 | --------------------------------------------------------------*/ 642 | .gallery { 643 | margin-bottom: 1.5em; 644 | } 645 | .gallery-item { 646 | display: inline-block; 647 | text-align: center; 648 | vertical-align: top; 649 | width: 100%; 650 | } 651 | .gallery-columns-2 .gallery-item { 652 | max-width: 50%; 653 | } 654 | .gallery-columns-3 .gallery-item { 655 | max-width: 33.33%; 656 | } 657 | .gallery-columns-4 .gallery-item { 658 | max-width: 25%; 659 | } 660 | .gallery-columns-5 .gallery-item { 661 | max-width: 20%; 662 | } 663 | .gallery-columns-6 .gallery-item { 664 | max-width: 16.66%; 665 | } 666 | .gallery-columns-7 .gallery-item { 667 | max-width: 14.28%; 668 | } 669 | .gallery-columns-8 .gallery-item { 670 | max-width: 12.5%; 671 | } 672 | .gallery-columns-9 .gallery-item { 673 | max-width: 11.11%; 674 | } 675 | .gallery-caption {} 676 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Underscores Grunt 3 | Theme URI: http://underscores.me/ 4 | Author: Automattic 5 | Author URI: http://automattic.com/ 6 | Description: Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for. 7 | Version: 1.0-wpcom 8 | License: GNU General Public License v2 or later 9 | License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 | Text Domain: _s 11 | Domain Path: /languages/ 12 | Tags: 13 | 14 | This theme, like WordPress, is licensed under the GPL. 15 | Use it to make something cool, have fun, and share what you've learned with others. 16 | 17 | _s is based on Underscores http://underscores.me/, (C) 2012-2014 Automattic, Inc. 18 | 19 | Resetting and rebuilding styles have been helped along thanks to the fine work of 20 | Eric Meyer http://meyerweb.com/eric/tools/css/reset/index.html 21 | along with Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/ 22 | and Blueprint http://www.blueprintcss.org/ 23 | */ 24 | /*-------------------------------------------------------------- 25 | >>> TABLE OF CONTENTS: 26 | ---------------------------------------------------------------- 27 | 1.0 - Reset 28 | 2.0 - Typography 29 | 3.0 - Elements 30 | 4.0 - Forms 31 | 5.0 - Navigation 32 | 5.1 - Links 33 | 5.2 - Menus 34 | 6.0 - Accessibility 35 | 7.0 - Alignments 36 | 8.0 - Clearings 37 | 9.0 - Widgets 38 | 10.0 - Content 39 | 10.1 - Posts and pages 40 | 10.2 - Asides 41 | 10.3 - Comments 42 | 11.0 - Infinite scroll 43 | 12.0 - Media 44 | 12.1 - Captions 45 | 12.2 - Galleries 46 | --------------------------------------------------------------*/ 47 | /*-------------------------------------------------------------- 48 | 1.0 - Reset 49 | --------------------------------------------------------------*/ 50 | html, body, div, span, applet, object, iframe, 51 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 52 | a, abbr, acronym, address, big, cite, code, 53 | del, dfn, em, font, ins, kbd, q, s, samp, 54 | small, strike, strong, sub, sup, tt, var, 55 | dl, dt, dd, ol, ul, li, 56 | fieldset, form, label, legend, 57 | table, caption, tbody, tfoot, thead, tr, th, td { 58 | border: 0; 59 | font-family: inherit; 60 | font-size: 100%; 61 | font-style: inherit; 62 | font-weight: inherit; 63 | margin: 0; 64 | outline: 0; 65 | padding: 0; 66 | vertical-align: baseline; 67 | } 68 | 69 | html { 70 | font-size: 62.5%; 71 | /* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */ 72 | overflow-y: scroll; 73 | /* Keeps page centered in all browsers regardless of content height */ 74 | -webkit-text-size-adjust: 100%; 75 | /* Prevents iOS text size adjust after orientation change, without disabling user zoom */ 76 | -ms-text-size-adjust: 100%; 77 | /* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ 78 | } 79 | 80 | *, 81 | *:before, 82 | *:after { 83 | /* apply a natural box layout model to all elements; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */ 84 | -webkit-box-sizing: border-box; 85 | /* Not needed for modern webkit but still used by Blackberry Browser 7.0; see http://caniuse.com/#search=box-sizing */ 86 | -moz-box-sizing: border-box; 87 | /* Still needed for Firefox 28; see http://caniuse.com/#search=box-sizing */ 88 | box-sizing: border-box; 89 | } 90 | 91 | body { 92 | background: #fff; 93 | } 94 | 95 | article, 96 | aside, 97 | details, 98 | figcaption, 99 | figure, 100 | footer, 101 | header, 102 | main, 103 | nav, 104 | section { 105 | display: block; 106 | } 107 | 108 | ol, ul { 109 | list-style: none; 110 | } 111 | 112 | table { 113 | /* tables still need 'cellspacing="0"' in the markup */ 114 | border-collapse: separate; 115 | border-spacing: 0; 116 | } 117 | 118 | caption, th, td { 119 | font-weight: normal; 120 | text-align: left; 121 | } 122 | 123 | blockquote:before, blockquote:after, 124 | q:before, q:after { 125 | content: ""; 126 | } 127 | 128 | blockquote, q { 129 | quotes: "" ""; 130 | } 131 | 132 | a:focus { 133 | outline: thin dotted; 134 | } 135 | 136 | a:hover, 137 | a:active { 138 | outline: 0; 139 | } 140 | 141 | a img { 142 | border: 0; 143 | } 144 | 145 | /*-------------------------------------------------------------- 146 | 2.0 Typography 147 | --------------------------------------------------------------*/ 148 | body, 149 | button, 150 | input, 151 | select, 152 | textarea { 153 | color: #404040; 154 | font-family: sans-serif; 155 | font-size: 16px; 156 | font-size: 1.6rem; 157 | line-height: 1.5; 158 | } 159 | 160 | h1, h2, h3, h4, h5, h6 { 161 | clear: both; 162 | } 163 | 164 | p { 165 | margin-bottom: 1.5em; 166 | } 167 | 168 | b, strong { 169 | font-weight: bold; 170 | } 171 | 172 | dfn, cite, em, i { 173 | font-style: italic; 174 | } 175 | 176 | blockquote { 177 | margin: 0 1.5em; 178 | } 179 | 180 | address { 181 | margin: 0 0 1.5em; 182 | } 183 | 184 | pre { 185 | background: #eee; 186 | font-family: "Courier 10 Pitch", Courier, monospace; 187 | font-size: 15px; 188 | font-size: 1.5rem; 189 | line-height: 1.6; 190 | margin-bottom: 1.6em; 191 | max-width: 100%; 192 | overflow: auto; 193 | padding: 1.6em; 194 | } 195 | 196 | code, kbd, tt, var { 197 | font: 15px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; 198 | } 199 | 200 | abbr, acronym { 201 | border-bottom: 1px dotted #666; 202 | cursor: help; 203 | } 204 | 205 | mark, ins { 206 | background: #fff9c0; 207 | text-decoration: none; 208 | } 209 | 210 | sup, 211 | sub { 212 | font-size: 75%; 213 | height: 0; 214 | line-height: 0; 215 | position: relative; 216 | vertical-align: baseline; 217 | } 218 | 219 | sup { 220 | bottom: 1ex; 221 | } 222 | 223 | sub { 224 | top: .5ex; 225 | } 226 | 227 | small { 228 | font-size: 75%; 229 | } 230 | 231 | big { 232 | font-size: 125%; 233 | } 234 | 235 | /*-------------------------------------------------------------- 236 | 3.0 Elements 237 | --------------------------------------------------------------*/ 238 | hr { 239 | background-color: #ccc; 240 | border: 0; 241 | height: 1px; 242 | margin-bottom: 1.5em; 243 | } 244 | 245 | ul, ol { 246 | margin: 0 0 1.5em 3em; 247 | } 248 | 249 | ul { 250 | list-style: disc; 251 | } 252 | 253 | ol { 254 | list-style: decimal; 255 | } 256 | 257 | li > ul, 258 | li > ol { 259 | margin-bottom: 0; 260 | margin-left: 1.5em; 261 | } 262 | 263 | dt { 264 | font-weight: bold; 265 | } 266 | 267 | dd { 268 | margin: 0 1.5em 1.5em; 269 | } 270 | 271 | img { 272 | height: auto; 273 | /* Make sure images are scaled correctly. */ 274 | max-width: 100%; 275 | /* Adhere to container width. */ 276 | } 277 | 278 | figure { 279 | margin: 0; 280 | } 281 | 282 | table { 283 | margin: 0 0 1.5em; 284 | width: 100%; 285 | } 286 | 287 | th { 288 | font-weight: bold; 289 | } 290 | 291 | /*-------------------------------------------------------------- 292 | 4.0 Forms 293 | --------------------------------------------------------------*/ 294 | button, 295 | input, 296 | select, 297 | textarea { 298 | font-size: 100%; 299 | /* Corrects font size not being inherited in all browsers */ 300 | margin: 0; 301 | /* Addresses margins set differently in IE6/7, F3/4, S5, Chrome */ 302 | vertical-align: baseline; 303 | /* Improves appearance and consistency in all browsers */ 304 | } 305 | 306 | button, 307 | input[type="button"], 308 | input[type="reset"], 309 | input[type="submit"] { 310 | border: 1px solid #ccc; 311 | border-color: #ccc #ccc #bbb #ccc; 312 | border-radius: 3px; 313 | background: #e6e6e6; 314 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 15px 17px rgba(255, 255, 255, 0.5), inset 0 -5px 12px rgba(0, 0, 0, 0.05); 315 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 15px 17px rgba(255, 255, 255, 0.5), inset 0 -5px 12px rgba(0, 0, 0, 0.05); 316 | color: rgba(0, 0, 0, 0.8); 317 | cursor: pointer; 318 | /* Improves usability and consistency of cursor style between image-type 'input' and others */ 319 | -webkit-appearance: button; 320 | /* Corrects inability to style clickable 'input' types in iOS */ 321 | font-size: 12px; 322 | font-size: 1.2rem; 323 | line-height: 1; 324 | padding: .6em 1em .4em; 325 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); 326 | } 327 | 328 | button:hover, 329 | input[type="button"]:hover, 330 | input[type="reset"]:hover, 331 | input[type="submit"]:hover { 332 | border-color: #ccc #bbb #aaa #bbb; 333 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 15px 17px rgba(255, 255, 255, 0.8), inset 0 -5px 12px rgba(0, 0, 0, 0.02); 334 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 15px 17px rgba(255, 255, 255, 0.8), inset 0 -5px 12px rgba(0, 0, 0, 0.02); 335 | } 336 | 337 | button:focus, 338 | input[type="button"]:focus, 339 | input[type="reset"]:focus, 340 | input[type="submit"]:focus, 341 | button:active, 342 | input[type="button"]:active, 343 | input[type="reset"]:active, 344 | input[type="submit"]:active { 345 | border-color: #aaa #bbb #bbb #bbb; 346 | -webkit-box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 2px 5px rgba(0, 0, 0, 0.15); 347 | box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 2px 5px rgba(0, 0, 0, 0.15); 348 | } 349 | 350 | input[type="checkbox"], 351 | input[type="radio"] { 352 | padding: 0; 353 | /* Addresses excess padding in IE8/9 */ 354 | } 355 | 356 | input[type="search"] { 357 | -webkit-appearance: textfield; 358 | /* Addresses appearance set to searchfield in S5, Chrome */ 359 | -webkit-box-sizing: content-box; 360 | /* Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof) */ 361 | -moz-box-sizing: content-box; 362 | box-sizing: content-box; 363 | } 364 | 365 | input[type="search"]::-webkit-search-decoration { 366 | /* Corrects inner padding displayed oddly in S5, Chrome on OSX */ 367 | -webkit-appearance: none; 368 | } 369 | 370 | button::-moz-focus-inner, 371 | input::-moz-focus-inner { 372 | /* Corrects inner padding and border displayed oddly in FF3/4 www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */ 373 | border: 0; 374 | padding: 0; 375 | } 376 | 377 | input[type="text"], 378 | input[type="email"], 379 | input[type="url"], 380 | input[type="password"], 381 | input[type="search"], 382 | textarea { 383 | color: #666; 384 | border: 1px solid #ccc; 385 | border-radius: 3px; 386 | } 387 | 388 | input[type="text"]:focus, 389 | input[type="email"]:focus, 390 | input[type="url"]:focus, 391 | input[type="password"]:focus, 392 | input[type="search"]:focus, 393 | textarea:focus { 394 | color: #111; 395 | } 396 | 397 | input[type="text"], 398 | input[type="email"], 399 | input[type="url"], 400 | input[type="password"], 401 | input[type="search"] { 402 | padding: 3px; 403 | } 404 | 405 | textarea { 406 | overflow: auto; 407 | /* Removes default vertical scrollbar in IE6/7/8/9 */ 408 | padding-left: 3px; 409 | vertical-align: top; 410 | /* Improves readability and alignment in all browsers */ 411 | width: 98%; 412 | } 413 | 414 | /*-------------------------------------------------------------- 415 | 5.0 Navigation 416 | --------------------------------------------------------------*/ 417 | /*-------------------------------------------------------------- 418 | 5.1 Links 419 | --------------------------------------------------------------*/ 420 | a { 421 | color: royalblue; 422 | } 423 | 424 | a:visited { 425 | color: purple; 426 | } 427 | 428 | a:hover, 429 | a:focus, 430 | a:active { 431 | color: midnightblue; 432 | } 433 | 434 | /*-------------------------------------------------------------- 435 | 5.2 Menus 436 | --------------------------------------------------------------*/ 437 | .main-navigation { 438 | clear: both; 439 | display: block; 440 | float: left; 441 | width: 100%; 442 | } 443 | 444 | .main-navigation ul { 445 | list-style: none; 446 | margin: 0; 447 | padding-left: 0; 448 | } 449 | 450 | .main-navigation li { 451 | float: left; 452 | position: relative; 453 | } 454 | 455 | .main-navigation a { 456 | display: block; 457 | text-decoration: none; 458 | } 459 | 460 | .main-navigation ul ul { 461 | -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 462 | box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 463 | display: none; 464 | float: left; 465 | left: 0; 466 | position: absolute; 467 | top: 1.5em; 468 | z-index: 99999; 469 | } 470 | 471 | .main-navigation ul ul ul { 472 | left: 100%; 473 | top: 0; 474 | } 475 | 476 | .main-navigation ul ul a { 477 | width: 200px; 478 | } 479 | 480 | .main-navigation ul li:hover > ul { 481 | display: block; 482 | } 483 | 484 | /* Small menu */ 485 | .menu-toggle { 486 | display: none; 487 | } 488 | 489 | @media screen and (max-width: 600px) { 490 | .menu-toggle, 491 | .main-navigation.toggled .nav-menu { 492 | display: block; 493 | } 494 | 495 | .main-navigation ul { 496 | display: none; 497 | } 498 | } 499 | .site-main .comment-navigation, 500 | .site-main .paging-navigation, 501 | .site-main .post-navigation { 502 | margin: 0 0 1.5em; 503 | overflow: hidden; 504 | } 505 | 506 | .comment-navigation .nav-previous, 507 | .paging-navigation .nav-previous, 508 | .post-navigation .nav-previous { 509 | float: left; 510 | width: 50%; 511 | } 512 | 513 | .comment-navigation .nav-next, 514 | .paging-navigation .nav-next, 515 | .post-navigation .nav-next { 516 | float: right; 517 | text-align: right; 518 | width: 50%; 519 | } 520 | 521 | /*-------------------------------------------------------------- 522 | 6.0 Accessibility 523 | --------------------------------------------------------------*/ 524 | /* Text meant only for screen readers */ 525 | .screen-reader-text { 526 | clip: rect(1px, 1px, 1px, 1px); 527 | position: absolute !important; 528 | height: 1px; 529 | width: 1px; 530 | overflow: hidden; 531 | } 532 | 533 | .screen-reader-text:hover, 534 | .screen-reader-text:active, 535 | .screen-reader-text:focus { 536 | background-color: #f1f1f1; 537 | border-radius: 3px; 538 | -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 539 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 540 | clip: auto !important; 541 | color: #21759b; 542 | display: block; 543 | font-size: 14px; 544 | font-weight: bold; 545 | height: auto; 546 | left: 5px; 547 | line-height: normal; 548 | padding: 15px 23px 14px; 549 | text-decoration: none; 550 | top: 5px; 551 | width: auto; 552 | z-index: 100000; 553 | /* Above WP toolbar */ 554 | } 555 | 556 | /*-------------------------------------------------------------- 557 | 7.0 Alignments 558 | --------------------------------------------------------------*/ 559 | .alignleft { 560 | display: inline; 561 | float: left; 562 | margin-right: 1.5em; 563 | } 564 | 565 | .alignright { 566 | display: inline; 567 | float: right; 568 | margin-left: 1.5em; 569 | } 570 | 571 | .aligncenter { 572 | clear: both; 573 | display: block; 574 | margin: 0 auto; 575 | } 576 | 577 | /*-------------------------------------------------------------- 578 | 8.0 Clearings 579 | --------------------------------------------------------------*/ 580 | .clear:before, 581 | .clear:after, 582 | .entry-content:before, 583 | .entry-content:after, 584 | .comment-content:before, 585 | .comment-content:after, 586 | .site-header:before, 587 | .site-header:after, 588 | .site-content:before, 589 | .site-content:after, 590 | .site-footer:before, 591 | .site-footer:after { 592 | content: ''; 593 | display: table; 594 | } 595 | 596 | .clear:after, 597 | .entry-content:after, 598 | .comment-content:after, 599 | .site-header:after, 600 | .site-content:after, 601 | .site-footer:after { 602 | clear: both; 603 | } 604 | 605 | /*-------------------------------------------------------------- 606 | 9.0 Widgets 607 | --------------------------------------------------------------*/ 608 | .widget { 609 | margin: 0 0 1.5em; 610 | } 611 | 612 | /* Make sure select elements fit in widgets */ 613 | .widget select { 614 | max-width: 100%; 615 | } 616 | 617 | /* Search widget */ 618 | .widget_search .search-submit { 619 | display: none; 620 | } 621 | 622 | /*-------------------------------------------------------------- 623 | 10.0 Content 624 | --------------------------------------------------------------*/ 625 | /*-------------------------------------------------------------- 626 | 10.1 Posts and pages 627 | --------------------------------------------------------------*/ 628 | .hentry { 629 | margin: 0 0 1.5em; 630 | } 631 | 632 | .byline, 633 | .updated { 634 | display: none; 635 | } 636 | 637 | .single .byline, 638 | .group-blog .byline { 639 | display: inline; 640 | } 641 | 642 | .page-content, 643 | .entry-content, 644 | .entry-summary { 645 | margin: 1.5em 0 0; 646 | } 647 | 648 | .page-links { 649 | clear: both; 650 | margin: 0 0 1.5em; 651 | } 652 | 653 | /*-------------------------------------------------------------- 654 | 10.2 Asides 655 | --------------------------------------------------------------*/ 656 | .blog .format-aside .entry-title, 657 | .archive .format-aside .entry-title { 658 | display: none; 659 | } 660 | 661 | /*-------------------------------------------------------------- 662 | 10.3 Comments 663 | --------------------------------------------------------------*/ 664 | .comment-content a { 665 | word-wrap: break-word; 666 | } 667 | 668 | /*-------------------------------------------------------------- 669 | 11.0 Infinite scroll 670 | --------------------------------------------------------------*/ 671 | /* Globally hidden elements when Infinite Scroll is supported and in use. */ 672 | .infinite-scroll .paging-navigation, 673 | .infinite-scroll.neverending .site-footer { 674 | /* Theme Footer (when set to scrolling) */ 675 | display: none; 676 | } 677 | 678 | /* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before */ 679 | .infinity-end.neverending .site-footer { 680 | display: block; 681 | } 682 | 683 | /*-------------------------------------------------------------- 684 | 12.0 Media 685 | --------------------------------------------------------------*/ 686 | .page-content img.wp-smiley, 687 | .entry-content img.wp-smiley, 688 | .comment-content img.wp-smiley { 689 | border: none; 690 | margin-bottom: 0; 691 | margin-top: 0; 692 | padding: 0; 693 | } 694 | 695 | /* Make sure embeds and iframes fit their containers */ 696 | embed, 697 | iframe, 698 | object { 699 | max-width: 100%; 700 | } 701 | 702 | /*-------------------------------------------------------------- 703 | 12.1 Captions 704 | --------------------------------------------------------------*/ 705 | .wp-caption { 706 | margin-bottom: 1.5em; 707 | max-width: 100%; 708 | } 709 | 710 | .wp-caption img[class*="wp-image-"] { 711 | display: block; 712 | margin: 0 auto; 713 | } 714 | 715 | .wp-caption-text { 716 | text-align: center; 717 | } 718 | 719 | .wp-caption .wp-caption-text { 720 | margin: 0.8075em 0; 721 | } 722 | 723 | /*-------------------------------------------------------------- 724 | 12.2 Galleries 725 | --------------------------------------------------------------*/ 726 | .gallery { 727 | margin-bottom: 1.5em; 728 | } 729 | 730 | .gallery-item { 731 | display: inline-block; 732 | text-align: center; 733 | vertical-align: top; 734 | width: 100%; 735 | } 736 | 737 | .gallery-columns-2 .gallery-item { 738 | max-width: 50%; 739 | } 740 | 741 | .gallery-columns-3 .gallery-item { 742 | max-width: 33.33%; 743 | } 744 | 745 | .gallery-columns-4 .gallery-item { 746 | max-width: 25%; 747 | } 748 | 749 | .gallery-columns-5 .gallery-item { 750 | max-width: 20%; 751 | } 752 | 753 | .gallery-columns-6 .gallery-item { 754 | max-width: 16.66%; 755 | } 756 | 757 | .gallery-columns-7 .gallery-item { 758 | max-width: 14.28%; 759 | } 760 | 761 | .gallery-columns-8 .gallery-item { 762 | max-width: 12.5%; 763 | } 764 | 765 | .gallery-columns-9 .gallery-item { 766 | max-width: 11.11%; 767 | } 768 | --------------------------------------------------------------------------------