Merge branch 'master' into patch-1

This commit is contained in:
Ismail El Korchi 2020-04-10 22:39:01 +01:00 committed by GitHub
commit 5420e2d3f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 892 additions and 738 deletions

8
.eslintrc Normal file
View File

@ -0,0 +1,8 @@
{
"extends": [
"plugin:@wordpress/eslint-plugin/es5"
],
"env": {
"browser": true
}
}

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/node_modules
/vendor
package-lock.json
composer.lock

View File

@ -1,7 +0,0 @@
{
"preset": "wordpress",
"fileExtensions": [ ".js" ],
"excludeFiles": [
"js/**.min.js"
]
}

View File

@ -1 +0,0 @@
js/**.min.js

15
.stylelintrc.json Normal file
View File

@ -0,0 +1,15 @@
{
"extends": [
"stylelint-config-wordpress/scss"
],
"ignoreFiles": [
"sass/_normalize.scss"
],
"rules": {
"font-family-no-missing-generic-family-keyword": null,
"no-descending-specificity": null,
"block-no-empty": null,
"no-duplicate-selectors": null,
"font-family-no-duplicate-names": null
}
}

View File

@ -4,92 +4,67 @@
# For use with the Underscores WordPress theme. # For use with the Underscores WordPress theme.
# @link https://github.com/Automattic/_s # @link https://github.com/Automattic/_s
# Ditch sudo and use containers. # Tell Travis CI which distro to use.
# @link https://docs.travis-ci.com/user/migrating-from-legacy/#Why-migrate-to-container-based-infrastructure%3F
# @link https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure
sudo: false
dist: trusty dist: trusty
# Declare project language. # Cache directories between builds.
# @link https://about.travis-ci.org/docs/user/languages/php/ # @link https://docs.travis-ci.com/user/caching/#arbitrary-directories
language: php cache:
directories:
# Cache directory for npm.
- $HOME/.npm
# Cache directory for older Composer versions.
- $HOME/.composer/cache/files
# Cache directory for more recent Composer versions.
- $HOME/.cache/composer/files
# Declare project language.
# @link https://docs.travis-ci.com/user/languages/php/
language:
- php
php:
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
# Declare versions of PHP to use. Use one decimal max.
# @link https://docs.travis-ci.com/user/build-configuration/
matrix: matrix:
fast_finish: true fast_finish: true
include: include:
# Current $required_php_version for WordPress: 5.2.4 - php: 7.4
# aliased to 5.2.17
- php: '5.2'
dist: precise
# aliased to a recent 5.6.x version
- php: '5.6'
env: SNIFF=1 env: SNIFF=1
# aliased to a recent 7.0.x version
- php: '7.0'
# aliased to a recent 7.2.x version
- php: '7.2'
# bleeding edge PHP
- php: 'nightly'
allow_failures: before_install:
- php: 'nightly'
# Use this to prepare the system to install prerequisites or dependencies.
# e.g. sudo apt-get update.
# Failures in this section will result in build status 'errored'.
# before_install:
# Use this to prepare your build for testing.
# e.g. copy database configurations, environment variables, etc.
# Failures in this section will result in build status 'errored'.
before_script:
# Speed up build time by disabling Xdebug. # Speed up build time by disabling Xdebug.
- phpenv config-rm xdebug.ini || echo 'No xdebug config.' - phpenv config-rm xdebug.ini || echo 'No xdebug config.'
# Set up temporary paths. # Download and install the latest long-term support release of node.
- export PHPCS_DIR=/tmp/phpcs - nvm install --lts
- export WPCS_DIR=/tmp/wpcs # Install Composer dependencies.
- export PHPCOMPAT_DIR=/tmp/phpcompatibility - composer install
# Install CodeSniffer for WordPress Coding Standards checks. # Install NPM dependencies.
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/squizlabs/PHP_CodeSniffer.git $PHPCS_DIR; fi - npm install
# Install WordPress Coding Standards.
- if [[ "$SNIFF" == "1" ]]; then git clone -b 0.14.1 --depth 1 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git $WPCS_DIR; fi
# Install PHP Compatibility sniffs.
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/wimg/PHPCompatibility.git $PHPCOMPAT_DIR; fi
# Set install path for PHPCS sniffs.
# @link https://github.com/squizlabs/PHP_CodeSniffer/blob/4237c2fc98cc838730b76ee9cee316f99286a2a7/CodeSniffer.php#L1941
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs --config-set installed_paths $WPCS_DIR,$PHPCOMPAT_DIR; fi
# After CodeSniffer install you should refresh your path.
- if [[ "$SNIFF" == "1" ]]; then phpenv rehash; fi
# Install JSCS: JavaScript Code Style checker.
# @link http://jscs.info/
- if [[ "$SNIFF" == "1" ]]; then npm install -g jscs; fi
# Install JSHint, a JavaScript Code Quality Tool.
# @link http://jshint.com/docs/
- if [[ "$SNIFF" == "1" ]]; then npm install -g jshint; fi
# Pull in the WP Core jshint rules.
- if [[ "$SNIFF" == "1" ]]; then wget https://develop.svn.wordpress.org/trunk/.jshintrc; fi
# Run test script commands.
# Default is specific to project language.
# All commands must exit with code 0 on success. Anything else is considered failure.
script: script:
# Search for PHP syntax errors. # Validate the composer.json file.
- find -L . -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l # @link https://getcomposer.org/doc/03-cli.md#validate
# Run the theme through JSHint. - composer validate --no-check-all --strict
- if [[ "$SNIFF" == "1" ]]; then jshint .; fi
# Run the theme through JavaScript Code Style checker. # Search for PHP syntax errors using PHP Parallel Lint.
- if [[ "$SNIFF" == "1" ]]; then jscs .; fi # @link https://github.com/php-parallel-lint/PHP-Parallel-Lint
# WordPress Coding Standards. - composer lint:php
# @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
# @link https://pear.php.net/package/PHP_CodeSniffer/ # Check the PHP files with the coding standards documented in the phpcs.xml.dist file.
# Uses a custom ruleset based on WordPress. This ruleset is automatically - if [[ "$SNIFF" == 1 ]]; then composer lint:wpcs; fi
# picked up by PHPCS as it's named `phpcs.xml(.dist)`.
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs --runtime-set ignore_warnings_on_exit 1; fi # Check the JS files with the lint-js script defined in the @wordpress/scripts package.
- if [[ "$SNIFF" == 1 ]]; then npm run lint:js; fi
# Check the SCSS files with the lint-style script defined in the @wordpress/scripts package.
- if [[ "$SNIFF" == 1 ]]; then npm run lint:scss; fi
# Receive notifications for build results. # Receive notifications for build results.
# @link https://docs.travis-ci.com/user/notifications/#Email-notifications # @link https://docs.travis-ci.com/user/notifications/#configuring-email-notifications
notifications: notifications:
email: false email: false

View File

@ -31,13 +31,15 @@ get_header();
<h2 class="widget-title"><?php esc_html_e( 'Most Used Categories', '_s' ); ?></h2> <h2 class="widget-title"><?php esc_html_e( 'Most Used Categories', '_s' ); ?></h2>
<ul> <ul>
<?php <?php
wp_list_categories( array( wp_list_categories(
array(
'orderby' => 'count', 'orderby' => 'count',
'order' => 'DESC', 'order' => 'DESC',
'show_count' => 1, 'show_count' => 1,
'title_li' => '', 'title_li' => '',
'number' => 10, 'number' => 10,
) ); )
);
?> ?>
</ul> </ul>
</div><!-- .widget --> </div><!-- .widget -->

View File

@ -31,14 +31,16 @@ If you want to set things up manually, download `_s` from GitHub. The first thin
3. Search for `Text Domain: _s` in `style.css`. 3. Search for `Text Domain: _s` in `style.css`.
4. Search for <code>&nbsp;_s</code> (with a space before it) to capture DocBlocks. 4. Search for <code>&nbsp;_s</code> (with a space before it) to capture DocBlocks.
5. Search for `_s-` to capture prefixed handles. 5. Search for `_s-` to capture prefixed handles.
6. Search for `_S_` (in uppercase) to capture constants.
OR OR
1. Search for: `'_s'` and replace with: `'megatherium-is-awesome'` 1. Search for: `'_s'` and replace with: `'megatherium-is-awesome'`.
2. Search for: `_s_` and replace with: `megatherium_is_awesome_` 2. Search for: `_s_` and replace with: `megatherium_is_awesome_`.
3. Search for: `Text Domain: _s` and replace with: `Text Domain: megatherium-is-awesome` in `style.css`. 3. Search for: `Text Domain: _s` and replace with: `Text Domain: megatherium-is-awesome` in `style.css`.
4. Search for: <code>&nbsp;_s</code> and replace with: <code>&nbsp;Megatherium_is_Awesome</code> 4. Search for: <code>&nbsp;_s</code> and replace with: <code>&nbsp;Megatherium_is_Awesome</code>.
5. Search for: `_s-` and replace with: `megatherium-is-awesome-` 5. Search for: `_s-` and replace with: `megatherium-is-awesome-`.
6. Search for: `_S_` and replace with: `MEGATHERIUM_IS_AWESOME_`.
Then, update the stylesheet header in `style.css`, the links in `footer.php` with your own information and rename `_s.pot` from `languages` folder to use the theme's slug. Next, update or delete this readme. Then, update the stylesheet header in `style.css`, the links in `footer.php` with your own information and rename `_s.pot` from `languages` folder to use the theme's slug. Next, update or delete this readme.

View File

@ -33,14 +33,14 @@ if ( post_password_required() ) {
printf( printf(
/* translators: 1: title. */ /* translators: 1: title. */
esc_html__( 'One thought on &ldquo;%1$s&rdquo;', '_s' ), esc_html__( 'One thought on &ldquo;%1$s&rdquo;', '_s' ),
'<span>' . get_the_title() . '</span>' '<span>' . wp_kses_post( get_the_title() ) . '</span>'
); );
} else { } else {
printf( // WPCS: XSS OK. printf(
/* translators: 1: comment count number, 2: title. */ /* translators: 1: comment count number, 2: title. */
esc_html( _nx( '%1$s thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', $_s_comment_count, 'comments title', '_s' ) ), esc_html( _nx( '%1$s thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', $_s_comment_count, 'comments title', '_s' ) ),
number_format_i18n( $_s_comment_count ), number_format_i18n( $_s_comment_count ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'<span>' . get_the_title() . '</span>' '<span>' . wp_kses_post( get_the_title() ) . '</span>'
); );
} }
?> ?>
@ -50,10 +50,12 @@ if ( post_password_required() ) {
<ol class="comment-list"> <ol class="comment-list">
<?php <?php
wp_list_comments( array( wp_list_comments(
array(
'style' => 'ol', 'style' => 'ol',
'short_ping' => true, 'short_ping' => true,
) ); )
);
?> ?>
</ol><!-- .comment-list --> </ol><!-- .comment-list -->

35
composer.json Normal file
View File

@ -0,0 +1,35 @@
{
"name": "automattic/underscores",
"type": "wordpress-theme",
"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.",
"keywords": [
"WordPress",
"Themes"
],
"homepage": "https://github.com/Automattic/_s",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "Contributors",
"homepage": "https://github.com/Automattic/_s/graphs/contributors"
}
],
"require": {
"php": ">=5.6"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2",
"wptrt/wpthemereview": "^0.2.1",
"php-parallel-lint/php-parallel-lint": "^1.2.0",
"wp-cli/i18n-command": "^2.2"
},
"scripts": {
"lint:wpcs": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs",
"lint:php": "@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor .",
"make-pot": "wp i18n make-pot . languages/_s.pot"
},
"support": {
"issues": "https://github.com/Automattic/_s/issues",
"source": "https://github.com/Automattic/_s"
}
}

View File

@ -7,6 +7,11 @@
* @package _s * @package _s
*/ */
if ( ! defined( '_S_VERSION' ) ) {
// Replace the version number of the theme on each release.
define( '_S_VERSION', '1.0.0' );
}
if ( ! function_exists( '_s_setup' ) ) : if ( ! function_exists( '_s_setup' ) ) :
/** /**
* Sets up theme defaults and registers support for various WordPress features. * Sets up theme defaults and registers support for various WordPress features.
@ -43,27 +48,38 @@ if ( ! function_exists( '_s_setup' ) ) :
add_theme_support( 'post-thumbnails' ); add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu() in one location. // This theme uses wp_nav_menu() in one location.
register_nav_menus( array( register_nav_menus(
array(
'menu-1' => esc_html__( 'Primary', '_s' ), 'menu-1' => esc_html__( 'Primary', '_s' ),
) ); )
);
/* /*
* Switch default core markup for search form, comment form, and comments * Switch default core markup for search form, comment form, and comments
* to output valid HTML5. * to output valid HTML5.
*/ */
add_theme_support( 'html5', array( add_theme_support(
'html5',
array(
'search-form', 'search-form',
'comment-form', 'comment-form',
'comment-list', 'comment-list',
'gallery', 'gallery',
'caption', 'caption',
) ); )
);
// Set up the WordPress core custom background feature. // Set up the WordPress core custom background feature.
add_theme_support( 'custom-background', apply_filters( '_s_custom_background_args', array( add_theme_support(
'custom-background',
apply_filters(
'_s_custom_background_args',
array(
'default-color' => 'ffffff', 'default-color' => 'ffffff',
'default-image' => '', 'default-image' => '',
) ) ); )
)
);
// Add theme support for selective refresh for widgets. // Add theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' ); add_theme_support( 'customize-selective-refresh-widgets' );
@ -73,12 +89,15 @@ if ( ! function_exists( '_s_setup' ) ) :
* *
* @link https://codex.wordpress.org/Theme_Logo * @link https://codex.wordpress.org/Theme_Logo
*/ */
add_theme_support( 'custom-logo', array( add_theme_support(
'custom-logo',
array(
'height' => 250, 'height' => 250,
'width' => 250, 'width' => 250,
'flex-width' => true, 'flex-width' => true,
'flex-height' => true, 'flex-height' => true,
) ); )
);
} }
endif; endif;
add_action( 'after_setup_theme', '_s_setup' ); add_action( 'after_setup_theme', '_s_setup' );
@ -104,7 +123,8 @@ add_action( 'after_setup_theme', '_s_content_width', 0 );
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/ */
function _s_widgets_init() { function _s_widgets_init() {
register_sidebar( array( register_sidebar(
array(
'name' => esc_html__( 'Sidebar', '_s' ), 'name' => esc_html__( 'Sidebar', '_s' ),
'id' => 'sidebar-1', 'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here.', '_s' ), 'description' => esc_html__( 'Add widgets here.', '_s' ),
@ -112,7 +132,8 @@ function _s_widgets_init() {
'after_widget' => '</section>', 'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">', 'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>', 'after_title' => '</h2>',
) ); )
);
} }
add_action( 'widgets_init', '_s_widgets_init' ); add_action( 'widgets_init', '_s_widgets_init' );
@ -120,11 +141,11 @@ add_action( 'widgets_init', '_s_widgets_init' );
* Enqueue scripts and styles. * Enqueue scripts and styles.
*/ */
function _s_scripts() { function _s_scripts() {
wp_enqueue_style( '_s-style', get_stylesheet_uri() ); wp_enqueue_style( '_s-style', get_stylesheet_uri(), array(), _S_VERSION );
wp_enqueue_script( '_s-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20151215', true ); wp_enqueue_script( '_s-navigation', get_template_directory_uri() . '/js/navigation.js', array(), _S_VERSION, true );
wp_enqueue_script( '_s-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20151215', true ); wp_enqueue_script( '_s-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), _S_VERSION, true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' ); wp_enqueue_script( 'comment-reply' );

View File

@ -21,6 +21,7 @@
</head> </head>
<body <?php body_class(); ?>> <body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<div id="page" class="site"> <div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', '_s' ); ?></a> <a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', '_s' ); ?></a>
@ -40,17 +41,19 @@
$_s_description = get_bloginfo( 'description', 'display' ); $_s_description = get_bloginfo( 'description', 'display' );
if ( $_s_description || is_customize_preview() ) : if ( $_s_description || is_customize_preview() ) :
?> ?>
<p class="site-description"><?php echo $_s_description; /* WPCS: xss ok. */ ?></p> <p class="site-description"><?php echo $_s_description; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
<?php endif; ?> <?php endif; ?>
</div><!-- .site-branding --> </div><!-- .site-branding -->
<nav id="site-navigation" class="main-navigation"> <nav id="site-navigation" class="main-navigation">
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><?php esc_html_e( 'Primary Menu', '_s' ); ?></button> <button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><?php esc_html_e( 'Primary Menu', '_s' ); ?></button>
<?php <?php
wp_nav_menu( array( wp_nav_menu(
array(
'theme_location' => 'menu-1', 'theme_location' => 'menu-1',
'menu_id' => 'primary-menu', 'menu_id' => 'primary-menu',
) ); )
);
?> ?>
</nav><!-- #site-navigation --> </nav><!-- #site-navigation -->
</header><!-- #masthead --> </header><!-- #masthead -->

View File

@ -17,14 +17,20 @@
* @uses _s_header_style() * @uses _s_header_style()
*/ */
function _s_custom_header_setup() { function _s_custom_header_setup() {
add_theme_support( 'custom-header', apply_filters( '_s_custom_header_args', array( add_theme_support(
'custom-header',
apply_filters(
'_s_custom_header_args',
array(
'default-image' => '', 'default-image' => '',
'default-text-color' => '000000', 'default-text-color' => '000000',
'width' => 1000, 'width' => 1000,
'height' => 250, 'height' => 250,
'flex-height' => true, 'flex-height' => true,
'wp-head-callback' => '_s_header_style', 'wp-head-callback' => '_s_header_style',
) ) ); )
)
);
} }
add_action( 'after_setup_theme', '_s_custom_header_setup' ); add_action( 'after_setup_theme', '_s_custom_header_setup' );

View File

@ -16,14 +16,20 @@ function _s_customize_register( $wp_customize ) {
$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
if ( isset( $wp_customize->selective_refresh ) ) { if ( isset( $wp_customize->selective_refresh ) ) {
$wp_customize->selective_refresh->add_partial( 'blogname', array( $wp_customize->selective_refresh->add_partial(
'blogname',
array(
'selector' => '.site-title a', 'selector' => '.site-title a',
'render_callback' => '_s_customize_partial_blogname', 'render_callback' => '_s_customize_partial_blogname',
) ); )
$wp_customize->selective_refresh->add_partial( 'blogdescription', array( );
$wp_customize->selective_refresh->add_partial(
'blogdescription',
array(
'selector' => '.site-description', 'selector' => '.site-description',
'render_callback' => '_s_customize_partial_blogdescription', 'render_callback' => '_s_customize_partial_blogdescription',
) ); )
);
} }
} }
add_action( 'customize_register', '_s_customize_register' ); add_action( 'customize_register', '_s_customize_register' );

View File

@ -16,17 +16,22 @@
*/ */
function _s_jetpack_setup() { function _s_jetpack_setup() {
// Add theme support for Infinite Scroll. // Add theme support for Infinite Scroll.
add_theme_support( 'infinite-scroll', array( add_theme_support(
'infinite-scroll',
array(
'container' => 'main', 'container' => 'main',
'render' => '_s_infinite_scroll_render', 'render' => '_s_infinite_scroll_render',
'footer' => 'page', 'footer' => 'page',
) ); )
);
// Add theme support for Responsive Videos. // Add theme support for Responsive Videos.
add_theme_support( 'jetpack-responsive-videos' ); add_theme_support( 'jetpack-responsive-videos' );
// Add theme support for Content Options. // Add theme support for Content Options.
add_theme_support( 'jetpack-content-options', array( add_theme_support(
'jetpack-content-options',
array(
'post-details' => array( 'post-details' => array(
'stylesheet' => '_s-style', 'stylesheet' => '_s-style',
'date' => '.posted-on', 'date' => '.posted-on',
@ -40,7 +45,8 @@ function _s_jetpack_setup() {
'post' => true, 'post' => true,
'page' => true, 'page' => true,
), ),
) ); )
);
} }
add_action( 'after_setup_theme', '_s_jetpack_setup' ); add_action( 'after_setup_theme', '_s_jetpack_setup' );

View File

@ -17,7 +17,8 @@ if ( ! function_exists( '_s_posted_on' ) ) :
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>'; $time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
} }
$time_string = sprintf( $time_string, $time_string = sprintf(
$time_string,
esc_attr( get_the_date( DATE_W3C ) ), esc_attr( get_the_date( DATE_W3C ) ),
esc_html( get_the_date() ), esc_html( get_the_date() ),
esc_attr( get_the_modified_date( DATE_W3C ) ), esc_attr( get_the_modified_date( DATE_W3C ) ),
@ -30,7 +31,7 @@ if ( ! function_exists( '_s_posted_on' ) ) :
'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>' '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
); );
echo '<span class="posted-on">' . $posted_on . '</span>'; // WPCS: XSS OK. echo '<span class="posted-on">' . $posted_on . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} }
endif; endif;
@ -46,7 +47,7 @@ if ( ! function_exists( '_s_posted_by' ) ) :
'<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>' '<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>'
); );
echo '<span class="byline"> ' . $byline . '</span>'; // WPCS: XSS OK. echo '<span class="byline"> ' . $byline . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} }
endif; endif;
@ -62,14 +63,14 @@ if ( ! function_exists( '_s_entry_footer' ) ) :
$categories_list = get_the_category_list( esc_html__( ', ', '_s' ) ); $categories_list = get_the_category_list( esc_html__( ', ', '_s' ) );
if ( $categories_list ) { if ( $categories_list ) {
/* translators: 1: list of categories. */ /* translators: 1: list of categories. */
printf( '<span class="cat-links">' . esc_html__( 'Posted in %1$s', '_s' ) . '</span>', $categories_list ); // WPCS: XSS OK. printf( '<span class="cat-links">' . esc_html__( 'Posted in %1$s', '_s' ) . '</span>', $categories_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} }
/* translators: used between list items, there is a space after the comma */ /* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list( '', esc_html_x( ', ', 'list item separator', '_s' ) ); $tags_list = get_the_tag_list( '', esc_html_x( ', ', 'list item separator', '_s' ) );
if ( $tags_list ) { if ( $tags_list ) {
/* translators: 1: list of tags. */ /* translators: 1: list of tags. */
printf( '<span class="tags-links">' . esc_html__( 'Tagged %1$s', '_s' ) . '</span>', $tags_list ); // WPCS: XSS OK. printf( '<span class="tags-links">' . esc_html__( 'Tagged %1$s', '_s' ) . '</span>', $tags_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} }
} }
@ -86,7 +87,7 @@ if ( ! function_exists( '_s_entry_footer' ) ) :
), ),
) )
), ),
get_the_title() wp_kses_post( get_the_title() )
) )
); );
echo '</span>'; echo '</span>';
@ -103,7 +104,7 @@ if ( ! function_exists( '_s_entry_footer' ) ) :
), ),
) )
), ),
get_the_title() wp_kses_post( get_the_title() )
), ),
'<span class="edit-link">', '<span class="edit-link">',
'</span>' '</span>'
@ -134,11 +135,16 @@ if ( ! function_exists( '_s_post_thumbnail' ) ) :
<a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true" tabindex="-1"> <a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true" tabindex="-1">
<?php <?php
the_post_thumbnail( 'post-thumbnail', array( the_post_thumbnail(
'alt' => the_title_attribute( array( 'post-thumbnail',
array(
'alt' => the_title_attribute(
array(
'echo' => false, 'echo' => false,
) ), )
) ); ),
)
);
?> ?>
</a> </a>
@ -146,3 +152,14 @@ if ( ! function_exists( '_s_post_thumbnail' ) ) :
endif; // End is_singular(). endif; // End is_singular().
} }
endif; endif;
if ( ! function_exists( 'wp_body_open' ) ) :
/**
* Shim for sites older than 5.2.
*
* @link https://core.trac.wordpress.org/ticket/12563
*/
function wp_body_open() {
do_action( 'wp_body_open' );
}
endif;

View File

@ -11,12 +11,26 @@
* WooCommerce setup function. * WooCommerce setup function.
* *
* @link https://docs.woocommerce.com/document/third-party-custom-theme-compatibility/ * @link https://docs.woocommerce.com/document/third-party-custom-theme-compatibility/
* @link https://github.com/woocommerce/woocommerce/wiki/Enabling-product-gallery-features-(zoom,-swipe,-lightbox)-in-3.0.0 * @link https://github.com/woocommerce/woocommerce/wiki/Enabling-product-gallery-features-(zoom,-swipe,-lightbox)
* @link https://github.com/woocommerce/woocommerce/wiki/Declaring-WooCommerce-support-in-themes
* *
* @return void * @return void
*/ */
function _s_woocommerce_setup() { function _s_woocommerce_setup() {
add_theme_support( 'woocommerce' ); add_theme_support(
'woocommerce',
array(
'thumbnail_image_width' => 150,
'single_image_width' => 300,
'product_grid' => array(
'default_rows' => 3,
'min_rows' => 1,
'default_columns' => 4,
'min_columns' => 1,
'max_columns' => 6,
),
)
);
add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-zoom' );
add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-lightbox' );
add_theme_support( 'wc-product-gallery-slider' ); add_theme_support( 'wc-product-gallery-slider' );
@ -29,7 +43,7 @@ add_action( 'after_setup_theme', '_s_woocommerce_setup' );
* @return void * @return void
*/ */
function _s_woocommerce_scripts() { function _s_woocommerce_scripts() {
wp_enqueue_style( '_s-woocommerce-style', get_template_directory_uri() . '/woocommerce.css' ); wp_enqueue_style( '_s-woocommerce-style', get_template_directory_uri() . '/woocommerce.css', array(), _S_VERSION );
$font_path = WC()->plugin_url() . '/assets/fonts/'; $font_path = WC()->plugin_url() . '/assets/fonts/';
$inline_font = '@font-face { $inline_font = '@font-face {
@ -70,36 +84,6 @@ function _s_woocommerce_active_body_class( $classes ) {
} }
add_filter( 'body_class', '_s_woocommerce_active_body_class' ); add_filter( 'body_class', '_s_woocommerce_active_body_class' );
/**
* Products per page.
*
* @return integer number of products.
*/
function _s_woocommerce_products_per_page() {
return 12;
}
add_filter( 'loop_shop_per_page', '_s_woocommerce_products_per_page' );
/**
* Product gallery thumnbail columns.
*
* @return integer number of columns.
*/
function _s_woocommerce_thumbnail_columns() {
return 4;
}
add_filter( 'woocommerce_product_thumbnails_columns', '_s_woocommerce_thumbnail_columns' );
/**
* Default loop columns on product archives.
*
* @return integer products per row.
*/
function _s_woocommerce_loop_columns() {
return 3;
}
add_filter( 'loop_shop_columns', '_s_woocommerce_loop_columns' );
/** /**
* Related Products Args. * Related Products Args.
* *
@ -118,31 +102,6 @@ function _s_woocommerce_related_products_args( $args ) {
} }
add_filter( 'woocommerce_output_related_products_args', '_s_woocommerce_related_products_args' ); add_filter( 'woocommerce_output_related_products_args', '_s_woocommerce_related_products_args' );
if ( ! function_exists( '_s_woocommerce_product_columns_wrapper' ) ) {
/**
* Product columns wrapper.
*
* @return void
*/
function _s_woocommerce_product_columns_wrapper() {
$columns = _s_woocommerce_loop_columns();
echo '<div class="columns-' . absint( $columns ) . '">';
}
}
add_action( 'woocommerce_before_shop_loop', '_s_woocommerce_product_columns_wrapper', 40 );
if ( ! function_exists( '_s_woocommerce_product_columns_wrapper_close' ) ) {
/**
* Product columns wrapper close.
*
* @return void
*/
function _s_woocommerce_product_columns_wrapper_close() {
echo '</div>';
}
}
add_action( 'woocommerce_after_shop_loop', '_s_woocommerce_product_columns_wrapper_close', 40 );
/** /**
* Remove default WooCommerce wrapper. * Remove default WooCommerce wrapper.
*/ */

View File

@ -1,3 +1,4 @@
/* global wp, jQuery */
/** /**
* File customizer.js. * File customizer.js.
* *
@ -7,7 +8,6 @@
*/ */
( function( $ ) { ( function( $ ) {
// Site title and description. // Site title and description.
wp.customize( 'blogname', function( value ) { wp.customize( 'blogname', function( value ) {
value.bind( function( to ) { value.bind( function( to ) {
@ -25,18 +25,18 @@
value.bind( function( to ) { value.bind( function( to ) {
if ( 'blank' === to ) { if ( 'blank' === to ) {
$( '.site-title, .site-description' ).css( { $( '.site-title, .site-description' ).css( {
'clip': 'rect(1px, 1px, 1px, 1px)', clip: 'rect(1px, 1px, 1px, 1px)',
'position': 'absolute' position: 'absolute',
} ); } );
} else { } else {
$( '.site-title, .site-description' ).css( { $( '.site-title, .site-description' ).css( {
'clip': 'auto', clip: 'auto',
'position': 'relative' position: 'relative',
} ); } );
$( '.site-title a, .site-description' ).css( { $( '.site-title a, .site-description' ).css( {
'color': to color: to,
} ); } );
} }
} ); } );
} ); } );
} )( jQuery ); }( jQuery ) );

View File

@ -42,6 +42,17 @@
} }
}; };
// Close small menu when user clicks outside
document.addEventListener( 'click', function( event ) {
var isClickInside = container.contains( event.target );
if ( ! isClickInside ) {
container.className = container.className.replace( ' toggled', '' );
button.setAttribute( 'aria-expanded', 'false' );
menu.setAttribute( 'aria-expanded', 'false' );
}
} );
// Get all the link elements within the menu. // Get all the link elements within the menu.
links = menu.getElementsByTagName( 'a' ); links = menu.getElementsByTagName( 'a' );
@ -59,7 +70,6 @@
// Move up through the ancestors of the current link until we hit .nav-menu. // Move up through the ancestors of the current link until we hit .nav-menu.
while ( -1 === self.className.indexOf( 'nav-menu' ) ) { while ( -1 === self.className.indexOf( 'nav-menu' ) ) {
// On li elements toggle the class .focus. // On li elements toggle the class .focus.
if ( 'li' === self.tagName.toLowerCase() ) { if ( 'li' === self.tagName.toLowerCase() ) {
if ( -1 !== self.className.indexOf( 'focus' ) ) { if ( -1 !== self.className.indexOf( 'focus' ) ) {
@ -76,13 +86,13 @@
/** /**
* Toggles `focus` class to allow submenu access on tablets. * Toggles `focus` class to allow submenu access on tablets.
*/ */
( function( container ) { ( function() {
var touchStartFn, i, var touchStartFn,
parentLink = container.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' ); parentLink = container.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' );
if ( 'ontouchstart' in window ) { if ( 'ontouchstart' in window ) {
touchStartFn = function( e ) { touchStartFn = function( e ) {
var menuItem = this.parentNode, i; var menuItem = this.parentNode;
if ( ! menuItem.classList.contains( 'focus' ) ) { if ( ! menuItem.classList.contains( 'focus' ) ) {
e.preventDefault(); e.preventDefault();
@ -103,4 +113,4 @@
} }
} }
}( container ) ); }( container ) );
} )(); }() );

View File

@ -28,4 +28,4 @@
} }
}, false ); }, false );
} }
} )(); }() );

View File

@ -1,43 +1,70 @@
# Copyright (C) 2017 Automattic # Copyright (C) 2020 Automattic
# This file is distributed under the GNU General Public License v2 or later. # This file is distributed under the GNU General Public License v2 or later.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: _s 1.0.0\n" "Project-Id-Version: _s 1.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/tags/_s\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/theme/_s\n"
"POT-Creation-Date: 2016-12-23 16:00+0100\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" "POT-Creation-Date: 2020-04-10T15:22:10+00:00\n"
"Last-Translator:\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "X-Generator: WP-CLI 2.4.0\n"
"X-Generator: grunt-wp-i18n 0.5.4\n" "X-Domain: _s\n"
#: 404.php:17 #. Theme Name of the theme
msgid "_s"
msgstr ""
#. Theme URI of the theme
msgid "https://underscores.me/"
msgstr ""
#. Description of the theme
msgid "Hi. I'm a starter theme called <code>_s</code>, or <em>underscores</em>, if you like. I'm a theme meant for hacking so don't use me as a <em>Parent Theme</em>. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for."
msgstr ""
#. Author of the theme
msgid "Automattic"
msgstr ""
#. Author URI of the theme
msgid "https://automattic.com/"
msgstr ""
#: 404.php:18
msgid "Oops! That page can&rsquo;t be found." msgid "Oops! That page can&rsquo;t be found."
msgstr "" msgstr ""
#: 404.php:21 #: 404.php:22
msgid "" msgid "It looks like nothing was found at this location. Maybe try one of the links below or a search?"
"It looks like nothing was found at this location. Maybe try one of the "
"links below or a search?"
msgstr "" msgstr ""
#: 404.php:30 #: 404.php:31
msgid "Most Used Categories" msgid "Most Used Categories"
msgstr "" msgstr ""
#: 404.php:47
#. translators: %1$s: smiley #. translators: %1$s: smiley
#: 404.php:49
msgid "Try looking in the monthly archives. %1$s" msgid "Try looking in the monthly archives. %1$s"
msgstr "" msgstr ""
#: comments.php:34
#. translators: 1: title. #. translators: 1: title.
#: comments.php:35
msgid "One thought on &ldquo;%1$s&rdquo;" msgid "One thought on &ldquo;%1$s&rdquo;"
msgstr "" msgstr ""
#: comments.php:67 #. translators: 1: comment count number, 2: title.
#: comments.php:41
msgctxt "comments title"
msgid "%1$s thought on &ldquo;%2$s&rdquo;"
msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
msgstr[0] ""
msgstr[1] ""
#: comments.php:68
msgid "Comments are closed." msgid "Comments are closed."
msgstr "" msgstr ""
@ -45,63 +72,93 @@ msgstr ""
msgid "https://wordpress.org/" msgid "https://wordpress.org/"
msgstr "" msgstr ""
#: footer.php:20
#. translators: %s: CMS name, i.e. WordPress. #. translators: %s: CMS name, i.e. WordPress.
#: footer.php:21
msgid "Proudly powered by %s" msgid "Proudly powered by %s"
msgstr "" msgstr ""
#: footer.php:25
#. translators: 1: Theme name, 2: Theme author. #. translators: 1: Theme name, 2: Theme author.
#: footer.php:27
msgid "Theme: %1$s by %2$s." msgid "Theme: %1$s by %2$s."
msgstr "" msgstr ""
#: functions.php:47 #: functions.php:53
msgid "Primary" msgid "Primary"
msgstr "" msgstr ""
#: functions.php:105 #: functions.php:128
msgid "Sidebar" msgid "Sidebar"
msgstr "" msgstr ""
#: functions.php:107 #: functions.php:130
msgid "Add widgets here." msgid "Add widgets here."
msgstr "" msgstr ""
#: header.php:24 #: header.php:26
msgid "Skip to content" msgid "Skip to content"
msgstr "" msgstr ""
#: header.php:45 #: header.php:49
msgid "Primary Menu" msgid "Primary Menu"
msgstr "" msgstr ""
#: inc/template-tags.php:52 #. translators: %s: post date.
#: inc/template-tags.php:30
msgctxt "post date"
msgid "Posted on %s"
msgstr ""
#. translators: %s: post author.
#: inc/template-tags.php:46
msgctxt "post author"
msgid "by %s"
msgstr ""
#. translators: used between list items, there is a space after the comma #. translators: used between list items, there is a space after the comma
#: inc/template-tags.php:63
msgid ", " msgid ", "
msgstr "" msgstr ""
#: inc/template-tags.php:55
#. translators: 1: list of categories. #. translators: 1: list of categories.
#: inc/template-tags.php:66
msgid "Posted in %1$s" msgid "Posted in %1$s"
msgstr "" msgstr ""
#: inc/template-tags.php:62 #. translators: used between list items, there is a space after the comma
#: inc/template-tags.php:70
msgctxt "list item separator"
msgid ", "
msgstr ""
#. translators: 1: list of tags. #. translators: 1: list of tags.
#: inc/template-tags.php:73
msgid "Tagged %1$s" msgid "Tagged %1$s"
msgstr "" msgstr ""
#: inc/template-tags.php:72
#. translators: %s: post title #. translators: %s: post title
#: inc/template-tags.php:83
msgid "Leave a Comment<span class=\"screen-reader-text\"> on %s</span>" msgid "Leave a Comment<span class=\"screen-reader-text\"> on %s</span>"
msgstr "" msgstr ""
#: inc/template-tags.php:89 template-parts/content-page.php:35
#. translators: %s: Name of current post. Only visible to screen readers #. translators: %s: Name of current post. Only visible to screen readers
#: inc/template-tags.php:100
#: template-parts/content-page.php:39
msgid "Edit <span class=\"screen-reader-text\">%s</span>" msgid "Edit <span class=\"screen-reader-text\">%s</span>"
msgstr "" msgstr ""
#: search.php:21 #: inc/woocommerce.php:227
msgid "View your shopping cart"
msgstr ""
#. translators: number of items in the mini cart.
#: inc/woocommerce.php:231
msgid "%d item"
msgid_plural "%d items"
msgstr[0] ""
msgstr[1] ""
#. translators: %s: search query. #. translators: %s: search query.
#: search.php:22
msgid "Search Results for: %s" msgid "Search Results for: %s"
msgstr "" msgstr ""
@ -109,78 +166,25 @@ msgstr ""
msgid "Nothing Found" msgid "Nothing Found"
msgstr "" msgstr ""
#: template-parts/content-none.php:25
#. translators: 1: link to WP admin new post page. #. translators: 1: link to WP admin new post page.
#: template-parts/content-none.php:24
msgid "Ready to publish your first post? <a href=\"%1$s\">Get started here</a>." msgid "Ready to publish your first post? <a href=\"%1$s\">Get started here</a>."
msgstr "" msgstr ""
#: template-parts/content-none.php:38 #: template-parts/content-none.php:37
msgid "" msgid "Sorry, but nothing matched your search terms. Please try again with some different keywords."
"Sorry, but nothing matched your search terms. Please try again with some "
"different keywords."
msgstr "" msgstr ""
#: template-parts/content-none.php:44 #: template-parts/content-none.php:44
msgid "" msgid "It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps searching can help."
"It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps "
"searching can help."
msgstr "" msgstr ""
#: template-parts/content-page.php:22 template-parts/content.php:45 #: template-parts/content-page.php:25
#: template-parts/content.php:53
msgid "Pages:" msgid "Pages:"
msgstr "" msgstr ""
#: template-parts/content.php:34
#. translators: %s: Name of current post. Only visible to screen readers #. translators: %s: Name of current post. Only visible to screen readers
#: template-parts/content.php:40
msgid "Continue reading<span class=\"screen-reader-text\"> \"%s\"</span>" msgid "Continue reading<span class=\"screen-reader-text\"> \"%s\"</span>"
msgstr "" msgstr ""
#. Theme Name of the plugin/theme
msgid "_s"
msgstr ""
#. Theme URI of the plugin/theme
msgid "https://underscores.me/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Hi. I'm a starter theme called <code>_s</code>, or <em>underscores</em>, if "
"you like. I'm a theme meant for hacking so don't use me as a <em>Parent "
"Theme</em>. Instead try turning me into the next, most awesome, WordPress "
"theme out there. That's what I'm here for."
msgstr ""
#. Author of the plugin/theme
msgid "Automattic"
msgstr ""
#. Author URI of the plugin/theme
msgid "https://automattic.com/"
msgstr ""
#: comments.php:40
#. translators: 1: comment count number, 2: title.
msgctxt "comments title"
msgid "%1$s thought on &ldquo;%2$s&rdquo;"
msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
msgstr[0] ""
msgstr[1] ""
#: inc/template-tags.php:29
#. translators: %s: post date.
msgctxt "post date"
msgid "Posted on %s"
msgstr ""
#: inc/template-tags.php:35
#. translators: %s: post author.
msgctxt "post author"
msgid "by %s"
msgstr ""
#: inc/template-tags.php:59
#. translators: used between list items, there is a space after the comma
msgctxt "list item separator"
msgid ", "
msgstr ""

28
package.json Normal file
View File

@ -0,0 +1,28 @@
{
"name": "underscores",
"version": "1.0.0",
"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.",
"author": "Automattic Theme Team",
"license": "GPL-2.0-or-later",
"keywords": [
"WordPress",
"Theme"
],
"homepage": "https://github.com/Automattic/_s#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/Automattic/_s.git"
},
"bugs": {
"url": "https://github.com/Automattic/_s/issues"
},
"devDependencies": {
"node-sass": "^4.13.1",
"@wordpress/scripts": "^7.2.0"
},
"scripts": {
"compile:css": "node-sass sass/style.scss style.css && node-sass sass/woocommerce.scss woocommerce.css && stylelint '*.css' --fix || true && stylelint '*.css' --fix",
"lint:scss": "wp-scripts lint-style 'sass/**/*.scss'",
"lint:js": "wp-scripts lint-js 'js/*.js'"
}
}

View File

@ -1,9 +1,9 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<ruleset name="WordPress Theme Coding Standards"> <ruleset name="WordPress Theme Coding Standards">
<!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml --> <!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<!-- See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards --> <!-- See https://github.com/WordPress/WordPress-Coding-Standards -->
<!-- See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki --> <!-- See https://github.com/WPTRT/WPThemeReview -->
<!-- See https://github.com/wimg/PHPCompatibility --> <!-- See https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<!-- Set a description for this ruleset. --> <!-- Set a description for this ruleset. -->
<description>A custom set of code standard rules to check for WordPress themes.</description> <description>A custom set of code standard rules to check for WordPress themes.</description>
@ -28,21 +28,28 @@
<!-- Check up to 8 files simultanously. --> <!-- Check up to 8 files simultanously. -->
<arg name="parallel" value="8"/> <arg name="parallel" value="8"/>
<!-- Only check the PHP, CSS and SCSS files. JS files are checked separately with JSCS and JSHint. --> <!-- Only check the PHP files. JS, and CSS files are checked separately with @wordpress/scripts package. -->
<arg name="extensions" value="php,css,scss/css"/> <arg name="extensions" value="php"/>
<!-- Check all files in this directory and the directories below it. --> <!-- Check all files in this directory and the directories below it. -->
<file>.</file> <file>.</file>
<!-- Exclude patterns. -->
<exclude-pattern>/vendor/*</exclude-pattern>
<exclude-pattern>/node_modules/*</exclude-pattern>
<!-- <!--
############################################################################# #############################################################################
USE THE WordPress RULESET USE THE WordPress AND THE Theme Review RULESET
############################################################################# #############################################################################
--> -->
<rule ref="WordPress"/> <rule ref="WordPress">
<!-- This rule does not apply here since the _s prefix should be changed by the theme author. -->
<exclude name="WordPress.NamingConventions.PrefixAllGlobals.ShortPrefixPassed"/>
</rule>
<rule ref="WPThemeReview"/>
<!-- <!--
############################################################################# #############################################################################
@ -97,36 +104,7 @@
############################################################################# #############################################################################
--> -->
<config name="testVersion" value="5.6-"/>
<config name="testVersion" value="5.2-99.0"/> <rule ref="PHPCompatibilityWP"/>
<rule ref="PHPCompatibility">
<!-- Whitelist PHP native classes, interfaces, functions and constants which
are back-filled by WP.
Based on:
* /wp-includes/compat.php
* /wp-includes/random_compat/random.php
-->
<exclude name="PHPCompatibility.PHP.NewClasses.errorFound"/>
<exclude name="PHPCompatibility.PHP.NewClasses.typeerrorFound"/>
<exclude name="PHPCompatibility.PHP.NewConstants.json_pretty_printFound"/>
<exclude name="PHPCompatibility.PHP.NewConstants.php_version_idFound"/>
<exclude name="PHPCompatibility.PHP.NewFunctions.hash_equalsFound"/>
<exclude name="PHPCompatibility.PHP.NewFunctions.json_last_error_msgFound"/>
<exclude name="PHPCompatibility.PHP.NewFunctions.random_intFound"/>
<exclude name="PHPCompatibility.PHP.NewFunctions.random_bytesFound"/>
<exclude name="PHPCompatibility.PHP.NewFunctions.array_replace_recursiveFound"/>
<exclude name="PHPCompatibility.PHP.NewInterfaces.jsonserializableFound"/>
</rule>
<!-- Whitelist the WP Core mysql_to_rfc3339() function. -->
<rule ref="PHPCompatibility.PHP.RemovedExtensions">
<properties>
<property name="functionWhitelist" type="array" value="mysql_to_rfc3339"/>
</properties>
</rule>
</ruleset> </ruleset>

View File

@ -34,5 +34,5 @@ _s includes support for Infinite Scroll in Jetpack.
== Credits == == Credits ==
* Based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc., [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html) * Based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc., [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
* normalize.css https://necolas.github.io/normalize.css/, (C) 2012-2016 Nicolas Gallagher and Jonathan Neal, [MIT](https://opensource.org/licenses/MIT) * normalize.css https://necolas.github.io/normalize.css/, (C) 2012-2018 Nicolas Gallagher and Jonathan Neal, [MIT](https://opensource.org/licenses/MIT)

View File

@ -1,8 +1,8 @@
/* /*
Theme Name: _s Theme Name: _s
Adding support for languages written in a Right To Left (RTL) direction is easy - Adding support for languages written in a Right To Left (RTL) direction is easy.
it's just a matter of overwriting all the horizontal positioning attributes It's just a matter of overwriting all the horizontal positioning attributes
of your CSS stylesheet in a separate stylesheet file named rtl.css. of your CSS stylesheet in a separate stylesheet file named rtl.css.
https://codex.wordpress.org/Right-to-Left_Language_Support https://codex.wordpress.org/Right-to-Left_Language_Support

View File

@ -9,8 +9,8 @@
*/ */
html { html {
line-height: 1.15; /* 1 */ line-height: 1.15;
-webkit-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%;
} }
/* Sections /* Sections
@ -43,9 +43,9 @@ h1 {
*/ */
hr { hr {
box-sizing: content-box; /* 1 */ box-sizing: content-box;
height: 0; /* 1 */ height: 0;
overflow: visible; /* 2 */ overflow: visible;
} }
/** /**
@ -54,8 +54,8 @@ hr {
*/ */
pre { pre {
font-family: monospace, monospace; /* 1 */ font-family: monospace, monospace;
font-size: 1em; /* 2 */ font-size: 1em;
} }
/* Text-level semantics /* Text-level semantics
@ -75,9 +75,9 @@ a {
*/ */
abbr[title] { abbr[title] {
border-bottom: none; /* 1 */ border-bottom: none;
text-decoration: underline; /* 2 */ text-decoration: underline;
text-decoration: underline dotted; /* 2 */ text-decoration: underline dotted;
} }
/** /**
@ -97,8 +97,8 @@ strong {
code, code,
kbd, kbd,
samp { samp {
font-family: monospace, monospace; /* 1 */ font-family: monospace, monospace;
font-size: 1em; /* 2 */ font-size: 1em;
} }
/** /**
@ -154,10 +154,10 @@ input,
optgroup, optgroup,
select, select,
textarea { textarea {
font-family: inherit; /* 1 */ font-family: inherit;
font-size: 100%; /* 1 */ font-size: 100%;
line-height: 1.15; /* 1 */ line-height: 1.15;
margin: 0; /* 2 */ margin: 0;
} }
/** /**
@ -166,7 +166,7 @@ textarea {
*/ */
button, button,
input { /* 1 */ input {
overflow: visible; overflow: visible;
} }
@ -176,7 +176,7 @@ input { /* 1 */
*/ */
button, button,
select { /* 1 */ select {
text-transform: none; text-transform: none;
} }
@ -230,12 +230,12 @@ fieldset {
*/ */
legend { legend {
box-sizing: border-box; /* 1 */ box-sizing: border-box;
color: inherit; /* 2 */ color: inherit;
display: table; /* 1 */ display: table;
max-width: 100%; /* 1 */ max-width: 100%;
padding: 0; /* 3 */ padding: 0;
white-space: normal; /* 1 */ white-space: normal;
} }
/** /**
@ -261,8 +261,8 @@ textarea {
[type="checkbox"], [type="checkbox"],
[type="radio"] { [type="radio"] {
box-sizing: border-box; /* 1 */ box-sizing: border-box;
padding: 0; /* 2 */ padding: 0;
} }
/** /**
@ -280,8 +280,8 @@ textarea {
*/ */
[type="search"] { [type="search"] {
-webkit-appearance: textfield; /* 1 */ -webkit-appearance: textfield;
outline-offset: -2px; /* 2 */ outline-offset: -2px;
} }
/** /**
@ -298,8 +298,8 @@ textarea {
*/ */
::-webkit-file-upload-button { ::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */ -webkit-appearance: button;
font: inherit; /* 2 */ font: inherit;
} }
/* Interactive /* Interactive

View File

@ -1,15 +1,17 @@
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
box-sizing: inherit;
}
html { html {
box-sizing: border-box; box-sizing: border-box;
} }
*,
*:before,
*:after { /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
box-sizing: inherit;
}
body { body {
background: $color__background-body; /* Fallback for when there is no custom background color defined. */ background: $color__background-body; // Fallback for when there is no custom background color defined.
} }
hr { hr {
@ -22,12 +24,12 @@ hr {
@import "lists"; @import "lists";
img { img {
height: auto; /* Make sure images are scaled correctly. */ height: auto; // Make sure images are scaled correctly.
max-width: 100%; /* Adhere to container width. */ max-width: 100%; // Adhere to container width.
} }
figure { figure {
margin: 1em 0; /* Extra wide images within figure tags don't overflow the content area. */ margin: 1em 0; // Extra wide images within figure tags don't overflow the content area.
} }
@import "tables"; @import "tables";

View File

@ -1,4 +1,5 @@
ul, ol { ul,
ol {
margin: 0 0 1.5em 3em; margin: 0 0 1.5em 3em;
} }
@ -17,7 +18,7 @@ li > ol {
} }
dt { dt {
font-weight: bold; font-weight: 700;
} }
dd { dd {

View File

@ -6,10 +6,12 @@ input[type="submit"] {
border-color: $color__border-button; border-color: $color__border-button;
border-radius: 3px; border-radius: 3px;
background: $color__background-button; background: $color__background-button;
color: rgba(0, 0, 0, .8); color: rgba(0, 0, 0, 0.8);
@include font-size(0.75); @include font-size(0.75);
line-height: 1; line-height: 1;
padding: .6em 1em .4em; padding: 0.6em 1em 0.4em;
&:hover { &:hover {
border-color: $color__border-button-hover; border-color: $color__border-button-hover;

View File

@ -1,3 +1,2 @@
@import "buttons"; @import "buttons";
@import "fields"; @import "fields";

View File

@ -1,4 +1,5 @@
.no-sidebar { .no-sidebar {
.content-area { .content-area {
float: none; float: none;
margin-left: auto; margin-left: auto;

View File

@ -3,6 +3,7 @@
max-width: 100%; max-width: 100%;
img[class*="wp-image-"] { img[class*="wp-image-"] {
@include center-block; @include center-block;
} }

View File

@ -10,8 +10,9 @@
// Loops to enumerate the classes for gallery columns. // Loops to enumerate the classes for gallery columns.
@for $i from 2 through 9 { @for $i from 2 through 9 {
.gallery-columns-#{$i} & { .gallery-columns-#{$i} & {
max-width: map-get( $columns, $i ); max-width: map-get($columns, $i);
} }
} }
} }

View File

@ -25,5 +25,5 @@
// Column width with margin // Column width with margin
@mixin column-width($numberColumns: 3) { @mixin column-width($numberColumns: 3) {
width: map-get( $columns, $numberColumns ) - ( ( $columns__margin * ( $numberColumns - 1 ) ) / $numberColumns ); width: map-get($columns, $numberColumns) - ( ( $columns__margin * ( $numberColumns - 1 ) ) / $numberColumns );
} }

View File

@ -9,7 +9,7 @@
padding: 0; padding: 0;
position: absolute !important; position: absolute !important;
width: 1px; width: 1px;
word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */ word-wrap: normal !important; // Many screen reader and browser combinations announce broken words as they would appear visually.
&:focus { &:focus {
background-color: $color__background-screen; background-color: $color__background-screen;
@ -19,8 +19,10 @@
clip-path: none; clip-path: none;
color: $color__text-screen; color: $color__text-screen;
display: block; display: block;
@include font-size(0.875); @include font-size(0.875);
font-weight: bold;
font-weight: 700;
height: auto; height: auto;
left: 5px; left: 5px;
line-height: normal; line-height: normal;
@ -28,7 +30,7 @@
text-decoration: none; text-decoration: none;
top: 5px; top: 5px;
width: auto; width: auto;
z-index: 100000; /* Above WP toolbar. */ z-index: 100000; // Above WP toolbar.
} }
} }

View File

@ -2,15 +2,20 @@
display: inline; display: inline;
float: left; float: left;
margin-right: 1.5em; margin-right: 1.5em;
margin-bottom: 1.5em;
} }
.alignright { .alignright {
display: inline; display: inline;
float: right; float: right;
margin-left: 1.5em; margin-left: 1.5em;
margin-bottom: 1.5em;
} }
.aligncenter { .aligncenter {
clear: both; clear: both;
@include center-block; @include center-block;
margin-bottom: 1.5em;
} }

View File

@ -4,12 +4,15 @@
.site-header, .site-header,
.site-content, .site-content,
.site-footer { .site-footer {
&::before, &::before,
&::after { &::after {
@include clearfix; @include clearfix;
} }
&::after { &::after {
@include clearfix-after; @include clearfix-after;
} }
} }

View File

@ -1,10 +1,10 @@
/* Globally hidden elements when Infinite Scroll is supported and in use. */ /* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation, /* Older / Newer Posts Navigation (always hidden) */ .infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer { /* Theme Footer (when set to scrolling) */ .infinite-scroll.neverending .site-footer {
display: none; display: none;
} }
/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */ /* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer { .infinity-end.neverending .site-footer {
display: block; display: block;
} }

View File

@ -4,14 +4,17 @@ a {
&:visited { &:visited {
color: $color__link-visited; color: $color__link-visited;
} }
&:hover, &:hover,
&:focus, &:focus,
&:active { &:active {
color: $color__link-hover; color: $color__link-hover;
} }
&:focus { &:focus {
outline: thin dotted; outline: thin dotted;
} }
&:hover, &:hover,
&:active { &:active {
outline: 0; outline: 0;

View File

@ -24,6 +24,7 @@
} }
li { li {
&:hover > ul, &:hover > ul,
&.focus > ul { &.focus > ul {
left: 100%; left: 100%;
@ -77,9 +78,11 @@
} }
@media screen and (min-width: 37.5em) { @media screen and (min-width: 37.5em) {
.menu-toggle { .menu-toggle {
display: none; display: none;
} }
.main-navigation ul { .main-navigation ul {
display: block; display: block;
} }

View File

@ -1,8 +1,7 @@
/**
* Checkout
*/
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
.col2-set { .col2-set {
.form-row-first { .form-row-first {
float: left; float: left;
margin-right: $columns__margin; margin-right: $columns__margin;
@ -15,6 +14,7 @@
.form-row-first, .form-row-first,
.form-row-last { .form-row-last {
@include column-width(2); @include column-width(2);
} }
} }

View File

@ -5,6 +5,7 @@
position: relative; position: relative;
margin: 0; margin: 0;
padding: 0; padding: 0;
@include clearfix; @include clearfix;
.cart-contents { .cart-contents {
@ -31,12 +32,12 @@
line-height: 1.618; line-height: 1.618;
font-size: 1em; font-size: 1em;
width: 5.3em; width: 5.3em;
font-family: 'star'; font-family: star;
font-weight: 400; font-weight: 400;
&:before { &::before {
content: "\53\53\53\53\53"; content: "\53\53\53\53\53";
opacity: .25; opacity: 0.25;
float: left; float: left;
top: 0; top: 0;
left: 0; left: 0;
@ -52,7 +53,7 @@
padding-top: 1.5em; padding-top: 1.5em;
} }
span:before { span::before {
content: "\53\53\53\53\53"; content: "\53\53\53\53\53";
top: 0; top: 0;
position: absolute; position: absolute;
@ -62,6 +63,7 @@
} }
p.stars { p.stars {
a { a {
position: relative; position: relative;
height: 1em; height: 1em;
@ -72,7 +74,8 @@ p.stars {
margin-right: 1px; margin-right: 1px;
font-weight: 400; font-weight: 400;
&:before { &::before {
display: block; display: block;
position: absolute; position: absolute;
top: 0; top: 0;
@ -80,25 +83,28 @@ p.stars {
width: 1em; width: 1em;
height: 1em; height: 1em;
line-height: 1; line-height: 1;
font-family: "star"; font-family: star;
content: "\53"; content: "\53";
color: $color__text-main; color: $color__text-main;
text-indent: 0; text-indent: 0;
opacity: .25; opacity: 0.25;
} }
&:hover { &:hover {
~ a:before {
~ a::before {
content: "\53"; content: "\53";
color: $color__text-main; color: $color__text-main;
opacity: .25; opacity: 0.25;
} }
} }
} }
&:hover { &:hover {
a { a {
&:before {
&::before {
content: "\53"; content: "\53";
color: $color__link; color: $color__link;
opacity: 1; opacity: 1;
@ -107,22 +113,25 @@ p.stars {
} }
&.selected { &.selected {
a.active { a.active {
&:before {
&::before {
content: "\53"; content: "\53";
color: $color__link; color: $color__link;
opacity: 1; opacity: 1;
} }
~ a:before { ~ a::before {
content: "\53"; content: "\53";
color: $color__text-main; color: $color__text-main;
opacity: .25; opacity: 0.25;
} }
} }
a:not(.active) { a:not(.active) {
&:before {
&::before {
content: "\53"; content: "\53";
color: $color__link; color: $color__link;
opacity: 1; opacity: 1;
@ -135,6 +144,7 @@ p.stars {
* Tabs * Tabs
*/ */
.woocommerce-tabs { .woocommerce-tabs {
ul.tabs { ul.tabs {
list-style: none; list-style: none;
margin: 0; margin: 0;
@ -154,6 +164,7 @@ p.stars {
} }
.panel { .panel {
h2:first-of-type { h2:first-of-type {
margin-bottom: 1em; margin-bottom: 1em;
} }
@ -187,13 +198,16 @@ p.stars {
* Forms * Forms
*/ */
.form-row { .form-row {
&.woocommerce-validated { &.woocommerce-validated {
input.input-text { input.input-text {
box-shadow: inset 2px 0 0 $woocommerce__color-success; box-shadow: inset 2px 0 0 $woocommerce__color-success;
} }
} }
&.woocommerce-invalid { &.woocommerce-invalid {
input.input-text { input.input-text {
box-shadow: inset 2px 0 0 $woocommerce__color-error; box-shadow: inset 2px 0 0 $woocommerce__color-error;
} }
@ -201,7 +215,7 @@ p.stars {
} }
.required { .required {
color: red; color: #f00;
} }
/** /**
@ -212,6 +226,7 @@ p.stars {
.woocommerce-error, .woocommerce-error,
.woocommerce-noreviews, .woocommerce-noreviews,
p.no-comments { p.no-comments {
@include clearfix; @include clearfix;
background-color: $woocommerce__color-success; background-color: $woocommerce__color-success;
clear: both; clear: both;
@ -239,10 +254,12 @@ p.no-comments {
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
/** /**
* Header cart * Header cart
*/ */
.site-header-cart { .site-header-cart {
.widget_shopping_cart { .widget_shopping_cart {
position: absolute; position: absolute;
top: 100%; top: 100%;
@ -255,6 +272,7 @@ p.no-comments {
&:hover, &:hover,
&.focus { &.focus {
.widget_shopping_cart { .widget_shopping_cart {
left: 0; left: 0;
display: block; display: block;

View File

@ -1,7 +1,5 @@
/**
* Products
*/
ul.products { ul.products {
@include clearfix; @include clearfix;
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -26,8 +24,11 @@ ul.products {
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
ul.products { ul.products {
li.product { li.product {
@include column-width(3); @include column-width(3);
float: left; float: left;
margin-right: $columns__margin; margin-right: $columns__margin;
@ -42,22 +43,24 @@ ul.products {
} }
} }
.columns-1 { ul.products.columns-1 {
ul.products {
li.product { li.product {
float: none; float: none;
width: 100%; width: 100%;
} }
}
} }
@for $i from 2 through 6 { @for $i from 2 through 6 {
.columns-#{$i} {
ul.products { ul.products.columns-#{$i} {
li.product { li.product {
@include column-width( $i ); @include column-width( $i );
} }
}
} }
} }
} }

View File

@ -1,8 +1,7 @@
/**
* Single Product
*/
.single-product { .single-product {
div.product { div.product {
@include clearfix; @include clearfix;
position: relative; position: relative;
@ -22,6 +21,7 @@
} }
.flex-control-thumbs { .flex-control-thumbs {
@include clearfix; @include clearfix;
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -32,7 +32,7 @@
float: left; float: left;
img { img {
opacity: .5; opacity: 0.5;
&.flex-active { &.flex-active {
opacity: 1; opacity: 1;
@ -40,6 +40,7 @@
} }
&:hover { &:hover {
img { img {
opacity: 1; opacity: 1;
} }
@ -48,9 +49,13 @@
} }
@for $i from 2 through 5 { @for $i from 2 through 5 {
&.woocommerce-product-gallery--columns-#{$i} { &.woocommerce-product-gallery--columns-#{$i} {
.flex-control-thumbs { .flex-control-thumbs {
li { li {
@include column-width($i); @include column-width($i);
&:nth-child(#{$i}n) { &:nth-child(#{$i}n) {
@ -69,7 +74,8 @@
} }
.stock { .stock {
&:empty:before {
&:empty::before {
display: none; display: none;
} }

View File

@ -1,46 +1,49 @@
/**
* Shop tables
*/
table.shop_table_responsive { table.shop_table_responsive {
thead { thead {
display: none; display: none;
} }
tbody { tbody {
th { th {
display: none; display: none;
} }
} }
tr { tr {
td { td {
display: block; display: block;
text-align: right; text-align: right;
clear: both; clear: both;
&:before { &::before {
content: attr(data-title) ': '; content: attr(data-title) ": ";
float: left; float: left;
} }
&.product-remove { &.product-remove {
a { a {
text-align: left; text-align: left;
} }
&:before { &::before {
display: none; display: none;
} }
} }
&.actions, &.actions,
&.download-actions { &.download-actions {
&:before {
&::before {
display: none; display: none;
} }
} }
&.download-actions { &.download-actions {
.button { .button {
display: block; display: block;
text-align: center; text-align: center;
@ -51,26 +54,31 @@ table.shop_table_responsive {
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
table.shop_table_responsive { table.shop_table_responsive {
thead { thead {
display: table-header-group; display: table-header-group;
} }
tbody { tbody {
th { th {
display: table-cell; display: table-cell;
} }
} }
tr { tr {
th, td {
th,
td {
text-align: left; text-align: left;
} }
td { td {
display: table-cell; display: table-cell;
&:before { &::before {
display: none; display: none;
} }
} }

View File

@ -2,13 +2,14 @@
* WooCommerce Price Filter * WooCommerce Price Filter
*/ */
.widget_price_filter { .widget_price_filter {
.price_slider { .price_slider {
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
.price_slider_amount { .price_slider_amount {
text-align: right; text-align: right;
line-height: 2.4em; line-height: 2.4;
.button { .button {
float: left; float: left;
@ -29,7 +30,7 @@
outline: none; outline: none;
background: $color__link; background: $color__link;
box-sizing: border-box; box-sizing: border-box;
margin-top: -.25em; margin-top: -0.25em;
opacity: 1; opacity: 1;
&:last-child { &:last-child {
@ -38,7 +39,7 @@
&:hover, &:hover,
&.ui-state-active { &.ui-state-active {
box-shadow: 0 0 0 .25em rgba(#000, 0.1); box-shadow: 0 0 0 0.25em rgba(#000, 0.1);
} }
} }
@ -51,11 +52,11 @@
} }
.price_slider_wrapper .ui-widget-content { .price_slider_wrapper .ui-widget-content {
background: rgba(0,0,0,0.1); background: rgba(0, 0, 0, 0.1);
} }
.ui-slider-horizontal { .ui-slider-horizontal {
height: .5em; height: 0.5em;
} }
.ui-slider-horizontal .ui-slider-range { .ui-slider-horizontal .ui-slider-range {

View File

@ -1,6 +1,7 @@
.comment-content a { .comment-content a {
word-wrap: break-word; word-wrap: break-word;
} }
.bypostauthor { .bypostauthor {
display: block; display: block;
} }

View File

@ -1,7 +1,7 @@
.widget { .widget {
margin: 0 0 1.5em; margin: 0 0 1.5em;
/* Make sure select elements fit in widgets. */ // Make sure select elements fit in widgets.
select { select {
max-width: 100%; max-width: 100%;
} }

View File

@ -11,9 +11,9 @@ Text Domain: _s
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
This theme, like WordPress, is licensed under the GPL. This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others. Use it to make something cool, have fun, and share what you've learned.
_s is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc. _s is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later. Underscores is distributed under the terms of the GNU GPL v2 or later.
Normalizing styles have been helped along thanks to the fine work of Normalizing styles have been helped along thanks to the fine work of

View File

@ -2,7 +2,10 @@ p {
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
dfn, cite, em, i { dfn,
cite,
em,
i {
font-style: italic; font-style: italic;
} }
@ -17,6 +20,7 @@ address {
pre { pre {
background: $color__background-pre; background: $color__background-pre;
font-family: $font__pre; font-family: $font__pre;
@include font-size(0.9375); @include font-size(0.9375);
line-height: $font__line-height-pre; line-height: $font__line-height-pre;
margin-bottom: 1.6em; margin-bottom: 1.6em;
@ -25,17 +29,23 @@ pre {
padding: 1.6em; padding: 1.6em;
} }
code, kbd, tt, var { code,
kbd,
tt,
var {
font-family: $font__code; font-family: $font__code;
@include font-size(0.9375); @include font-size(0.9375);
} }
abbr, acronym { abbr,
acronym {
border-bottom: 1px dotted $color__border-abbr; border-bottom: 1px dotted $color__border-abbr;
cursor: help; cursor: help;
} }
mark, ins { mark,
ins {
background: $color__background-ins; background: $color__background-ins;
text-decoration: none; text-decoration: none;
} }

View File

@ -1,3 +1,8 @@
h1, h2, h3, h4, h5, h6 { h1,
h2,
h3,
h4,
h5,
h6 {
clear: both; clear: both;
} }

View File

@ -6,10 +6,10 @@ optgroup,
textarea { textarea {
color: $color__text-main; color: $color__text-main;
font-family: $font__main; font-family: $font__main;
@include font-size(1); @include font-size(1);
line-height: $font__line-height-body; line-height: $font__line-height-body;
} }
@import "headings"; @import "headings";
@import "copy"; @import "copy";

View File

@ -8,9 +8,9 @@ $color__background-ins: #fff9c0;
$color__text-screen: #21759b; $color__text-screen: #21759b;
$color__text-input: #666; $color__text-input: #666;
$color__text-input-focus: #111; $color__text-input-focus: #111;
$color__link: royalblue; $color__link: #4169e1; //royalblue
$color__link-visited: purple; $color__link-visited: #800080; //purple
$color__link-hover: midnightblue; $color__link-hover: #191970; //midnightblue
$color__text-main: #404040; $color__text-main: #404040;
$color__border-button: #ccc #ccc #bbb; $color__border-button: #ccc #ccc #bbb;

View File

@ -1,5 +1,5 @@
$font__main: sans-serif; $font__main: sans-serif;
$font__code: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; $font__code: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
$font__pre: "Courier 10 Pitch", Courier, monospace; $font__pre: "Courier 10 Pitch", courier, monospace;
$font__line-height-body: 1.5; $font__line-height-body: 1.5;
$font__line-height-pre: 1.6; $font__line-height-pre: 1.6;

View File

@ -4,16 +4,12 @@ Theme Name: _s
WooCommerce styles override WooCommerce styles override
*/ */
/** // WooCommerce color variables
* WooCommerce color variables
*/
$woocommerce__color-error: #e2401c; $woocommerce__color-error: #e2401c;
$woocommerce__color-success: #0f834d; $woocommerce__color-success: #0f834d;
$woocommerce__color-info: #3D9CD2; $woocommerce__color-info: #3d9cd2;
/** // Imports
* Imports
*/
@import "variables-site/variables-site"; @import "variables-site/variables-site";
@import "mixins/mixins-master"; @import "mixins/mixins-master";

232
style.css
View File

@ -11,14 +11,15 @@ Text Domain: _s
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
This theme, like WordPress, is licensed under the GPL. This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others. Use it to make something cool, have fun, and share what you've learned.
_s is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc. _s is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later. Underscores is distributed under the terms of the GNU GPL v2 or later.
Normalizing styles have been helped along thanks to the fine work of Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/ Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/ */
/*-------------------------------------------------------------- /*--------------------------------------------------------------
>>> TABLE OF CONTENTS: >>> TABLE OF CONTENTS:
---------------------------------------------------------------- ----------------------------------------------------------------
@ -41,10 +42,12 @@ Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
## Captions ## Captions
## Galleries ## Galleries
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Normalize # Normalize
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/* normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document /* Document
========================================================================== */ ========================================================================== */
@ -53,10 +56,9 @@ Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
* 1. Correct the line height in all browsers. * 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS. * 2. Prevent adjustments of font size after orientation changes in iOS.
*/ */
html { html {
line-height: 1.15; /* 1 */ line-height: 1.15;
-webkit-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%;
} }
/* Sections /* Sections
@ -65,7 +67,6 @@ html {
/** /**
* Remove the margin in all browsers. * Remove the margin in all browsers.
*/ */
body { body {
margin: 0; margin: 0;
} }
@ -74,7 +75,6 @@ body {
* Correct the font size and margin on `h1` elements within `section` and * Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari. * `article` contexts in Chrome, Firefox, and Safari.
*/ */
h1 { h1 {
font-size: 2em; font-size: 2em;
margin: 0.67em 0; margin: 0.67em 0;
@ -87,21 +87,19 @@ h1 {
* 1. Add the correct box sizing in Firefox. * 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE. * 2. Show the overflow in Edge and IE.
*/ */
hr { hr {
box-sizing: content-box; /* 1 */ box-sizing: content-box;
height: 0; /* 1 */ height: 0;
overflow: visible; /* 2 */ overflow: visible;
} }
/** /**
* 1. Correct the inheritance and scaling of font size in all browsers. * 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers. * 2. Correct the odd `em` font sizing in all browsers.
*/ */
pre { pre {
font-family: monospace, monospace; /* 1 */ font-family: monospace, monospace;
font-size: 1em; /* 2 */ font-size: 1em;
} }
/* Text-level semantics /* Text-level semantics
@ -110,7 +108,6 @@ pre {
/** /**
* Remove the gray background on active links in IE 10. * Remove the gray background on active links in IE 10.
*/ */
a { a {
background-color: transparent; background-color: transparent;
} }
@ -119,17 +116,15 @@ a {
* 1. Remove the bottom border in Chrome 57- * 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/ */
abbr[title] { abbr[title] {
border-bottom: none; /* 1 */ border-bottom: none;
text-decoration: underline; /* 2 */ text-decoration: underline;
text-decoration: underline dotted; /* 2 */ text-decoration: underline dotted;
} }
/** /**
* Add the correct font weight in Chrome, Edge, and Safari. * Add the correct font weight in Chrome, Edge, and Safari.
*/ */
b, b,
strong { strong {
font-weight: bolder; font-weight: bolder;
@ -139,18 +134,16 @@ strong {
* 1. Correct the inheritance and scaling of font size in all browsers. * 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers. * 2. Correct the odd `em` font sizing in all browsers.
*/ */
code, code,
kbd, kbd,
samp { samp {
font-family: monospace, monospace; /* 1 */ font-family: monospace, monospace;
font-size: 1em; /* 2 */ font-size: 1em;
} }
/** /**
* Add the correct font size in all browsers. * Add the correct font size in all browsers.
*/ */
small { small {
font-size: 80%; font-size: 80%;
} }
@ -159,7 +152,6 @@ small {
* Prevent `sub` and `sup` elements from affecting the line height in * Prevent `sub` and `sup` elements from affecting the line height in
* all browsers. * all browsers.
*/ */
sub, sub,
sup { sup {
font-size: 75%; font-size: 75%;
@ -182,7 +174,6 @@ sup {
/** /**
* Remove the border on images inside links in IE 10. * Remove the border on images inside links in IE 10.
*/ */
img { img {
border-style: none; border-style: none;
} }
@ -194,25 +185,23 @@ img {
* 1. Change the font styles in all browsers. * 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari. * 2. Remove the margin in Firefox and Safari.
*/ */
button, button,
input, input,
optgroup, optgroup,
select, select,
textarea { textarea {
font-family: inherit; /* 1 */ font-family: inherit;
font-size: 100%; /* 1 */ font-size: 100%;
line-height: 1.15; /* 1 */ line-height: 1.15;
margin: 0; /* 2 */ margin: 0;
} }
/** /**
* Show the overflow in IE. * Show the overflow in IE.
* 1. Show the overflow in Edge. * 1. Show the overflow in Edge.
*/ */
button, button,
input { /* 1 */ input {
overflow: visible; overflow: visible;
} }
@ -220,16 +209,14 @@ input { /* 1 */
* Remove the inheritance of text transform in Edge, Firefox, and IE. * Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox. * 1. Remove the inheritance of text transform in Firefox.
*/ */
button, button,
select { /* 1 */ select {
text-transform: none; text-transform: none;
} }
/** /**
* Correct the inability to style clickable types in iOS and Safari. * Correct the inability to style clickable types in iOS and Safari.
*/ */
button, button,
[type="button"], [type="button"],
[type="reset"], [type="reset"],
@ -240,7 +227,6 @@ button,
/** /**
* Remove the inner border and padding in Firefox. * Remove the inner border and padding in Firefox.
*/ */
button::-moz-focus-inner, button::-moz-focus-inner,
[type="button"]::-moz-focus-inner, [type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner,
@ -252,7 +238,6 @@ button::-moz-focus-inner,
/** /**
* Restore the focus styles unset by the previous rule. * Restore the focus styles unset by the previous rule.
*/ */
button:-moz-focusring, button:-moz-focusring,
[type="button"]:-moz-focusring, [type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring, [type="reset"]:-moz-focusring,
@ -263,7 +248,6 @@ button:-moz-focusring,
/** /**
* Correct the padding in Firefox. * Correct the padding in Firefox.
*/ */
fieldset { fieldset {
padding: 0.35em 0.75em 0.625em; padding: 0.35em 0.75em 0.625em;
} }
@ -274,20 +258,18 @@ fieldset {
* 3. Remove the padding so developers are not caught out when they zero out * 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers. * `fieldset` elements in all browsers.
*/ */
legend { legend {
box-sizing: border-box; /* 1 */ box-sizing: border-box;
color: inherit; /* 2 */ color: inherit;
display: table; /* 1 */ display: table;
max-width: 100%; /* 1 */ max-width: 100%;
padding: 0; /* 3 */ padding: 0;
white-space: normal; /* 1 */ white-space: normal;
} }
/** /**
* Add the correct vertical alignment in Chrome, Firefox, and Opera. * Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/ */
progress { progress {
vertical-align: baseline; vertical-align: baseline;
} }
@ -295,7 +277,6 @@ progress {
/** /**
* Remove the default vertical scrollbar in IE 10+. * Remove the default vertical scrollbar in IE 10+.
*/ */
textarea { textarea {
overflow: auto; overflow: auto;
} }
@ -304,17 +285,15 @@ textarea {
* 1. Add the correct box sizing in IE 10. * 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10. * 2. Remove the padding in IE 10.
*/ */
[type="checkbox"], [type="checkbox"],
[type="radio"] { [type="radio"] {
box-sizing: border-box; /* 1 */ box-sizing: border-box;
padding: 0; /* 2 */ padding: 0;
} }
/** /**
* Correct the cursor style of increment and decrement buttons in Chrome. * Correct the cursor style of increment and decrement buttons in Chrome.
*/ */
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button { [type="number"]::-webkit-outer-spin-button {
height: auto; height: auto;
@ -324,16 +303,14 @@ textarea {
* 1. Correct the odd appearance in Chrome and Safari. * 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari. * 2. Correct the outline style in Safari.
*/ */
[type="search"] { [type="search"] {
-webkit-appearance: textfield; /* 1 */ -webkit-appearance: textfield;
outline-offset: -2px; /* 2 */ outline-offset: -2px;
} }
/** /**
* Remove the inner padding in Chrome and Safari on macOS. * Remove the inner padding in Chrome and Safari on macOS.
*/ */
[type="search"]::-webkit-search-decoration { [type="search"]::-webkit-search-decoration {
-webkit-appearance: none; -webkit-appearance: none;
} }
@ -342,10 +319,9 @@ textarea {
* 1. Correct the inability to style clickable types in iOS and Safari. * 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari. * 2. Change font properties to `inherit` in Safari.
*/ */
::-webkit-file-upload-button { ::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */ -webkit-appearance: button;
font: inherit; /* 2 */ font: inherit;
} }
/* Interactive /* Interactive
@ -354,7 +330,6 @@ textarea {
/* /*
* Add the correct display in Edge, IE 10+, and Firefox. * Add the correct display in Edge, IE 10+, and Firefox.
*/ */
details { details {
display: block; display: block;
} }
@ -362,7 +337,6 @@ details {
/* /*
* Add the correct display in all browsers. * Add the correct display in all browsers.
*/ */
summary { summary {
display: list-item; display: list-item;
} }
@ -373,7 +347,6 @@ summary {
/** /**
* Add the correct display in IE 10+. * Add the correct display in IE 10+.
*/ */
template { template {
display: none; display: none;
} }
@ -381,7 +354,6 @@ template {
/** /**
* Add the correct display in IE 10. * Add the correct display in IE 10.
*/ */
[hidden] { [hidden] {
display: none; display: none;
} }
@ -402,7 +374,12 @@ textarea {
line-height: 1.5; line-height: 1.5;
} }
h1, h2, h3, h4, h5, h6 { h1,
h2,
h3,
h4,
h5,
h6 {
clear: both; clear: both;
} }
@ -410,7 +387,10 @@ p {
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
dfn, cite, em, i { dfn,
cite,
em,
i {
font-style: italic; font-style: italic;
} }
@ -424,7 +404,7 @@ address {
pre { pre {
background: #eee; background: #eee;
font-family: "Courier 10 Pitch", Courier, monospace; font-family: "Courier 10 Pitch", courier, monospace;
font-size: 15px; font-size: 15px;
font-size: 0.9375rem; font-size: 0.9375rem;
line-height: 1.6; line-height: 1.6;
@ -434,18 +414,23 @@ pre {
padding: 1.6em; padding: 1.6em;
} }
code, kbd, tt, var { code,
font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; kbd,
tt,
var {
font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
font-size: 15px; font-size: 15px;
font-size: 0.9375rem; font-size: 0.9375rem;
} }
abbr, acronym { abbr,
acronym {
border-bottom: 1px dotted #666; border-bottom: 1px dotted #666;
cursor: help; cursor: help;
} }
mark, ins { mark,
ins {
background: #fff9c0; background: #fff9c0;
text-decoration: none; text-decoration: none;
} }
@ -457,20 +442,21 @@ big {
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Elements # Elements
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
box-sizing: inherit;
}
html { html {
box-sizing: border-box; box-sizing: border-box;
} }
*,
*:before,
*:after {
/* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
box-sizing: inherit;
}
body { body {
background: #fff; background: #fff;
/* Fallback for when there is no custom background color defined. */
} }
hr { hr {
@ -480,7 +466,8 @@ hr {
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
ul, ol { ul,
ol {
margin: 0 0 1.5em 3em; margin: 0 0 1.5em 3em;
} }
@ -499,7 +486,7 @@ li > ol {
} }
dt { dt {
font-weight: bold; font-weight: 700;
} }
dd { dd {
@ -508,14 +495,11 @@ dd {
img { img {
height: auto; height: auto;
/* Make sure images are scaled correctly. */
max-width: 100%; max-width: 100%;
/* Adhere to container width. */
} }
figure { figure {
margin: 1em 0; margin: 1em 0;
/* Extra wide images within figure tags don't overflow the content area. */
} }
table { table {
@ -538,7 +522,7 @@ input[type="submit"] {
font-size: 12px; font-size: 12px;
font-size: 0.75rem; font-size: 0.75rem;
line-height: 1; line-height: 1;
padding: .6em 1em .4em; padding: 0.6em 1em 0.4em;
} }
button:hover, button:hover,
@ -548,7 +532,8 @@ input[type="submit"]:hover {
border-color: #ccc #bbb #aaa; border-color: #ccc #bbb #aaa;
} }
button:active, button:focus, button:active,
button:focus,
input[type="button"]:active, input[type="button"]:active,
input[type="button"]:focus, input[type="button"]:focus,
input[type="reset"]:active, input[type="reset"]:active,
@ -610,26 +595,30 @@ textarea {
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Navigation # Navigation
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/*-------------------------------------------------------------- /*--------------------------------------------------------------
## Links ## Links
--------------------------------------------------------------*/ --------------------------------------------------------------*/
a { a {
color: royalblue; color: #4169e1;
} }
a:visited { a:visited {
color: purple; color: #800080;
} }
a:hover, a:focus, a:active { a:hover,
color: midnightblue; a:focus,
a:active {
color: #191970;
} }
a:focus { a:focus {
outline: thin dotted; outline: thin dotted;
} }
a:hover, a:active { a:hover,
a:active {
outline: 0; outline: 0;
} }
@ -695,16 +684,20 @@ a:hover, a:active {
} }
@media screen and (min-width: 37.5em) { @media screen and (min-width: 37.5em) {
.menu-toggle { .menu-toggle {
display: none; display: none;
} }
.main-navigation ul { .main-navigation ul {
display: block; display: block;
} }
} }
.site-main .comment-navigation, .site-main .site-main .comment-navigation,
.posts-navigation, .site-main .site-main
.posts-navigation,
.site-main
.post-navigation { .post-navigation {
margin: 0 0 1.5em; margin: 0 0 1.5em;
overflow: hidden; overflow: hidden;
@ -728,6 +721,7 @@ a:hover, a:active {
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Accessibility # Accessibility
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/* Text meant only for screen readers. */ /* Text meant only for screen readers. */
.screen-reader-text { .screen-reader-text {
border: 0; border: 0;
@ -739,7 +733,7 @@ a:hover, a:active {
padding: 0; padding: 0;
position: absolute !important; position: absolute !important;
width: 1px; width: 1px;
word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */ word-wrap: normal !important;
} }
.screen-reader-text:focus { .screen-reader-text:focus {
@ -752,7 +746,7 @@ a:hover, a:active {
display: block; display: block;
font-size: 14px; font-size: 14px;
font-size: 0.875rem; font-size: 0.875rem;
font-weight: bold; font-weight: 700;
height: auto; height: auto;
left: 5px; left: 5px;
line-height: normal; line-height: normal;
@ -761,7 +755,6 @@ a:hover, a:active {
top: 5px; top: 5px;
width: auto; width: auto;
z-index: 100000; z-index: 100000;
/* Above WP toolbar. */
} }
/* Do not show the outline on the skip link target. */ /* Do not show the outline on the skip link target. */
@ -776,12 +769,14 @@ a:hover, a:active {
display: inline; display: inline;
float: left; float: left;
margin-right: 1.5em; margin-right: 1.5em;
margin-bottom: 1.5em;
} }
.alignright { .alignright {
display: inline; display: inline;
float: right; float: right;
margin-left: 1.5em; margin-left: 1.5em;
margin-bottom: 1.5em;
} }
.aligncenter { .aligncenter {
@ -789,34 +784,35 @@ a:hover, a:active {
display: block; display: block;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
margin-bottom: 1.5em;
} }
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Clearings # Clearings
--------------------------------------------------------------*/ --------------------------------------------------------------*/
.clear:before, .clear::before,
.clear:after, .clear::after,
.entry-content:before, .entry-content::before,
.entry-content:after, .entry-content::after,
.comment-content:before, .comment-content::before,
.comment-content:after, .comment-content::after,
.site-header:before, .site-header::before,
.site-header:after, .site-header::after,
.site-content:before, .site-content::before,
.site-content:after, .site-content::after,
.site-footer:before, .site-footer::before,
.site-footer:after { .site-footer::after {
content: ""; content: "";
display: table; display: table;
table-layout: fixed; table-layout: fixed;
} }
.clear:after, .clear::after,
.entry-content:after, .entry-content::after,
.comment-content:after, .comment-content::after,
.site-header:after, .site-header::after,
.site-content:after, .site-content::after,
.site-footer:after { .site-footer::after {
clear: both; clear: both;
} }
@ -825,7 +821,6 @@ a:hover, a:active {
--------------------------------------------------------------*/ --------------------------------------------------------------*/
.widget { .widget {
margin: 0 0 1.5em; margin: 0 0 1.5em;
/* Make sure select elements fit in widgets. */
} }
.widget select { .widget select {
@ -835,6 +830,7 @@ a:hover, a:active {
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Content # Content
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/*-------------------------------------------------------------- /*--------------------------------------------------------------
## Posts and pages ## Posts and pages
--------------------------------------------------------------*/ --------------------------------------------------------------*/
@ -876,14 +872,14 @@ a:hover, a:active {
/*-------------------------------------------------------------- /*--------------------------------------------------------------
# Infinite scroll # Infinite scroll
--------------------------------------------------------------*/ --------------------------------------------------------------*/
/* Globally hidden elements when Infinite Scroll is supported and in use. */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation, .infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer { .infinite-scroll.neverending .site-footer {
/* Theme Footer (when set to scrolling) */
display: none; display: none;
} }
/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */ /* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer { .infinity-end.neverending .site-footer {
display: block; display: block;
} }

View File

@ -20,10 +20,12 @@
<?php <?php
the_content(); the_content();
wp_link_pages( array( wp_link_pages(
array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', '_s' ), 'before' => '<div class="page-links">' . esc_html__( 'Pages:', '_s' ),
'after' => '</div>', 'after' => '</div>',
) ); )
);
?> ?>
</div><!-- .entry-content --> </div><!-- .entry-content -->
@ -41,7 +43,7 @@
), ),
) )
), ),
get_the_title() wp_kses_post( get_the_title() )
), ),
'<span class="edit-link">', '<span class="edit-link">',
'</span>' '</span>'

View File

@ -33,7 +33,8 @@
<div class="entry-content"> <div class="entry-content">
<?php <?php
the_content( sprintf( the_content(
sprintf(
wp_kses( wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */ /* translators: %s: Name of current post. Only visible to screen readers */
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', '_s' ), __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', '_s' ),
@ -43,13 +44,16 @@
), ),
) )
), ),
get_the_title() wp_kses_post( get_the_title() )
) ); )
);
wp_link_pages( array( wp_link_pages(
array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', '_s' ), 'before' => '<div class="page-links">' . esc_html__( 'Pages:', '_s' ),
'after' => '</div>', 'after' => '</div>',
) ); )
);
?> ?>
</div><!-- .entry-content --> </div><!-- .entry-content -->

View File

@ -3,15 +3,7 @@ Theme Name: _s
WooCommerce styles override WooCommerce styles override
*/ */
/**
* WooCommerce color variables
*/
/**
* Imports
*/
/**
* Shop tables
*/
/** /**
* Shop tables * Shop tables
*/ */
@ -29,7 +21,7 @@ table.shop_table_responsive tr td {
clear: both; clear: both;
} }
table.shop_table_responsive tr td:before { table.shop_table_responsive tr td::before {
content: attr(data-title) ": "; content: attr(data-title) ": ";
float: left; float: left;
} }
@ -38,11 +30,12 @@ table.shop_table_responsive tr td.product-remove a {
text-align: left; text-align: left;
} }
table.shop_table_responsive tr td.product-remove:before { table.shop_table_responsive tr td.product-remove::before {
display: none; display: none;
} }
table.shop_table_responsive tr td.actions:before, table.shop_table_responsive tr td.download-actions:before { table.shop_table_responsive tr td.actions::before,
table.shop_table_responsive tr td.download-actions::before {
display: none; display: none;
} }
@ -52,26 +45,29 @@ table.shop_table_responsive tr td.download-actions .button {
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
table.shop_table_responsive thead { table.shop_table_responsive thead {
display: table-header-group; display: table-header-group;
} }
table.shop_table_responsive tbody th { table.shop_table_responsive tbody th {
display: table-cell; display: table-cell;
} }
table.shop_table_responsive tr th, table.shop_table_responsive tr td {
table.shop_table_responsive tr th,
table.shop_table_responsive tr td {
text-align: left; text-align: left;
} }
table.shop_table_responsive tr td { table.shop_table_responsive tr td {
display: table-cell; display: table-cell;
} }
table.shop_table_responsive tr td:before {
table.shop_table_responsive tr td::before {
display: none; display: none;
} }
} }
/**
* Products
*/
/** /**
* Products * Products
*/ */
@ -102,44 +98,50 @@ ul.products li.product .button {
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
ul.products li.product { ul.products li.product {
width: 30.7966666667%; width: 30.79667%;
float: left; float: left;
margin-right: 3.8%; margin-right: 3.8%;
} }
ul.products li.product.first { ul.products li.product.first {
clear: both; clear: both;
} }
ul.products li.product.last { ul.products li.product.last {
margin-right: 0; margin-right: 0;
} }
.columns-1 ul.products li.product {
ul.products.columns-1 li.product {
float: none; float: none;
width: 100%; width: 100%;
} }
.columns-2 ul.products li.product {
ul.products.columns-2 li.product {
width: 48.1%; width: 48.1%;
} }
.columns-3 ul.products li.product {
width: 30.7966666667%; ul.products.columns-3 li.product {
width: 30.79667%;
} }
.columns-4 ul.products li.product {
ul.products.columns-4 li.product {
width: 22.15%; width: 22.15%;
} }
.columns-5 ul.products li.product {
ul.products.columns-5 li.product {
width: 16.96%; width: 16.96%;
} }
.columns-6 ul.products li.product {
width: 13.4933333333%; ul.products.columns-6 li.product {
width: 13.49333%;
} }
} }
/** /**
* Single product * Single product
*/ */
/**
* Single Product
*/
.single-product div.product { .single-product div.product {
content: ""; content: "";
display: table; display: table;
@ -178,7 +180,7 @@ ul.products li.product .button {
} }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img { .single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
opacity: .5; opacity: 0.5;
} }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active { .single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
@ -202,7 +204,7 @@ ul.products li.product .button {
} }
.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li { .single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li {
width: 30.7966666667%; width: 30.79667%;
} }
.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n) { .single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n) {
@ -237,7 +239,7 @@ ul.products li.product .button {
clear: both; clear: both;
} }
.stock:empty:before { .stock:empty::before {
display: none; display: none;
} }
@ -249,21 +251,21 @@ ul.products li.product .button {
color: #e2401c; color: #e2401c;
} }
/**
* Checkout
*/
/** /**
* Checkout * Checkout
*/ */
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
.col2-set .form-row-first { .col2-set .form-row-first {
float: left; float: left;
margin-right: 3.8%; margin-right: 3.8%;
} }
.col2-set .form-row-last { .col2-set .form-row-last {
float: right; float: right;
margin-right: 0; margin-right: 0;
} }
.col2-set .form-row-first, .col2-set .form-row-first,
.col2-set .form-row-last { .col2-set .form-row-last {
width: 48.1%; width: 48.1%;
@ -273,6 +275,7 @@ ul.products li.product .button {
/** /**
* General WooCommerce components * General WooCommerce components
*/ */
/** /**
* Header cart * Header cart
*/ */
@ -308,13 +311,13 @@ ul.products li.product .button {
line-height: 1.618; line-height: 1.618;
font-size: 1em; font-size: 1em;
width: 5.3em; width: 5.3em;
font-family: 'star'; font-family: star;
font-weight: 400; font-weight: 400;
} }
.star-rating:before { .star-rating::before {
content: "\53\53\53\53\53"; content: "\53\53\53\53\53";
opacity: .25; opacity: 0.25;
float: left; float: left;
top: 0; top: 0;
left: 0; left: 0;
@ -330,12 +333,12 @@ ul.products li.product .button {
padding-top: 1.5em; padding-top: 1.5em;
} }
.star-rating span:before { .star-rating span::before {
content: "\53\53\53\53\53"; content: "\53\53\53\53\53";
top: 0; top: 0;
position: absolute; position: absolute;
left: 0; left: 0;
color: royalblue; color: #4169e1;
} }
p.stars a { p.stars a {
@ -349,7 +352,7 @@ p.stars a {
font-weight: 400; font-weight: 400;
} }
p.stars a:before { p.stars a::before {
display: block; display: block;
position: absolute; position: absolute;
top: 0; top: 0;
@ -357,40 +360,40 @@ p.stars a:before {
width: 1em; width: 1em;
height: 1em; height: 1em;
line-height: 1; line-height: 1;
font-family: "star"; font-family: star;
content: "\53"; content: "\53";
color: #404040; color: #404040;
text-indent: 0; text-indent: 0;
opacity: .25; opacity: 0.25;
} }
p.stars a:hover ~ a:before { p.stars a:hover ~ a::before {
content: "\53"; content: "\53";
color: #404040; color: #404040;
opacity: .25; opacity: 0.25;
} }
p.stars:hover a:before { p.stars:hover a::before {
content: "\53"; content: "\53";
color: royalblue; color: #4169e1;
opacity: 1; opacity: 1;
} }
p.stars.selected a.active:before { p.stars.selected a.active::before {
content: "\53"; content: "\53";
color: royalblue; color: #4169e1;
opacity: 1; opacity: 1;
} }
p.stars.selected a.active ~ a:before { p.stars.selected a.active ~ a::before {
content: "\53"; content: "\53";
color: #404040; color: #404040;
opacity: .25; opacity: 0.25;
} }
p.stars.selected a:not(.active):before { p.stars.selected a:not(.active)::before {
content: "\53"; content: "\53";
color: royalblue; color: #4169e1;
opacity: 1; opacity: 1;
} }
@ -439,7 +442,7 @@ p.stars.selected a:not(.active):before {
} }
.woocommerce-password-strength.good { .woocommerce-password-strength.good {
color: #3D9CD2; color: #3d9cd2;
} }
/** /**
@ -454,7 +457,7 @@ p.stars.selected a:not(.active):before {
} }
.required { .required {
color: red; color: #f00;
} }
/** /**
@ -475,7 +478,7 @@ p.no-comments {
.woocommerce-info, .woocommerce-info,
.woocommerce-noreviews, .woocommerce-noreviews,
p.no-comments { p.no-comments {
background-color: #3D9CD2; background-color: #3d9cd2;
} }
.woocommerce-error { .woocommerce-error {
@ -489,11 +492,12 @@ p.no-comments {
right: 0; right: 0;
margin: 0; margin: 0;
padding: 1em; padding: 1em;
background-color: #3D9CD2; background-color: #3d9cd2;
z-index: 9999; z-index: 9999;
} }
@media screen and (min-width: 48em) { @media screen and (min-width: 48em) {
/** /**
* Header cart * Header cart
*/ */
@ -506,7 +510,9 @@ p.no-comments {
display: block; display: block;
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
} }
.site-header-cart:hover .widget_shopping_cart, .site-header-cart.focus .widget_shopping_cart {
.site-header-cart:hover .widget_shopping_cart,
.site-header-cart.focus .widget_shopping_cart {
left: 0; left: 0;
display: block; display: block;
} }
@ -515,6 +521,7 @@ p.no-comments {
/** /**
* WooCommerce widgets * WooCommerce widgets
*/ */
/** /**
* WooCommerce Price Filter * WooCommerce Price Filter
*/ */
@ -524,7 +531,7 @@ p.no-comments {
.widget_price_filter .price_slider_amount { .widget_price_filter .price_slider_amount {
text-align: right; text-align: right;
line-height: 2.4em; line-height: 2.4;
} }
.widget_price_filter .price_slider_amount .button { .widget_price_filter .price_slider_amount .button {
@ -543,9 +550,9 @@ p.no-comments {
height: 1em; height: 1em;
cursor: ew-resize; cursor: ew-resize;
outline: none; outline: none;
background: royalblue; background: #4169e1;
box-sizing: border-box; box-sizing: border-box;
margin-top: -.25em; margin-top: -0.25em;
opacity: 1; opacity: 1;
} }
@ -553,7 +560,8 @@ p.no-comments {
margin-left: -1em; margin-left: -1em;
} }
.widget_price_filter .ui-slider .ui-slider-handle:hover, .widget_price_filter .ui-slider .ui-slider-handle.ui-state-active { .widget_price_filter .ui-slider .ui-slider-handle:hover,
.widget_price_filter .ui-slider .ui-slider-handle.ui-state-active {
box-shadow: 0 0 0 0.25em rgba(0, 0, 0, 0.1); box-shadow: 0 0 0 0.25em rgba(0, 0, 0, 0.1);
} }
@ -562,7 +570,7 @@ p.no-comments {
z-index: 1; z-index: 1;
display: block; display: block;
border: 0; border: 0;
background: royalblue; background: #4169e1;
} }
.widget_price_filter .price_slider_wrapper .ui-widget-content { .widget_price_filter .price_slider_wrapper .ui-widget-content {
@ -570,7 +578,7 @@ p.no-comments {
} }
.widget_price_filter .ui-slider-horizontal { .widget_price_filter .ui-slider-horizontal {
height: .5em; height: 0.5em;
} }
.widget_price_filter .ui-slider-horizontal .ui-slider-range { .widget_price_filter .ui-slider-horizontal .ui-slider-range {