My fork of eddiemachado's Bones for Genesis. Built for Genesis 2.1+ and WordPress 3.9+.
A starting point for new Genesis projects. This is a starter child theme, not a dependency. Clone it. Fork it. Hack it for your own projects. Build cool things on the web.
Issues and pull requests are welcome and will be addressed.
Note: As of v2.2.0, BFG uses Grunt instead of Codekit and Bower instead of Git submodules. Apologies for the extra dependencies, but I believe this is a step toward fewer compile errors and less painful project management.
You'll need Node.js, Grunt, and Bower.
git clone https://github.com/cdukes/bones-for-genesis-2-0.git genesis-bfg
cd genesis-bfg
npm update --save-dev && bower update --save
grunt
All functions are prefixed with bfg
. Do a find-and-replace to align the these function names to your project's prefix.'
- Display database query info in your footer
- Put the site in maintenance mode for non-admins
- Grunt:
- Automatic JS concatenation
- Automatic JS minification (Uglify)
- Automatic image optimization (JPEG, PNG, GIF)
- SASS & Compass support
- Autoprefixer and CSS minification support
- Watches for file changes, and notifies on error
- Enable Genesis 2.0 HTML5 support
- Enable Genesis 2.0 responsive viewport support (disabled by default)
- Unregister default Genesis layouts (template, disabled by default)
- Unregister default Genesis widgets (template, disabled by default)
- Remove Genesis 'Layout Settings' meta boxes (template, disabled by default)
- Various other hooks to tweak Genesis's setup, such as footer widget count, menu names, post format support, etc.
- 'no-js'
<body>
class for easy JS detection - Preloaded libraries: FitVids.js, iOS-Orientationchange-Fix, Superfish, SVGeezy, and jQuery placeholder.
- Submodule for normalize.scss
- Includes Genesis 2.0 clearfix
%clearfix
and%image-replacement
SASS@extend
's- Unstyled, nested selections following Genesis 2.0's style.css as a template
- A skeleton of helpful attribute resets and suggestions
- Remove
<head>
RSD and rel links (updated for Genesis 2.0) - X-UA-Compatible tag
- Template for serving better favicons to iOS and modern browsers
- Enqueue custom stylesheets
- Supports an IE-only stylesheet
- Support the IE6 Universal Stylesheet
- Supports enqueuing Google Fonts (template, disabled by default)
- Enqueue jQuery from Google's CDN, with fallback to a local copy.
- Enqueue custom scripts
- Specify custom favicon location (template, disabled by default)
- Add a 'no-js' class to
<body>
- Remove
<p>
tags from around images - Remove
[gallery]
short code injected styles - Customize the post info and meta text (templates, disabled by default)
- Customize the post navigation link text (templates, disabled by default)
- Remove the (edit) link
- Show the archive title and description, even if the Genesis fields for these aren't set (disabled by default)
- Templates to remove comments, comment forms, pings, and/or all of these (disabled by default)
- Edit search input box and button text (template, disabled by default)
- Redirect straight to the search result when there is only one result (disabled by default)
- Limit searching to only posts (disabled by default)
- Allow shortcodes in text widgets (disabled by default)
- Remove 'Recent Comments' widget injected styles
- Customize the footer 'creds' text (template, disabled by default)
- Disable pointer events on scroll (template, disabled by default)
- IE8 icon font fix (template, disabled by default)
- Force layout option for template (template, disabled by default)
- Prevent the child theme from being overwritten by a WP.org theme of the same name
- Disable self-pings
- Add new image sizes, and add them to the media size select menu (templates, disabled by default)
- Force the Link Manager to be shown/hidden (disabled by default)
- Change the /wp-login.php logo URL and title to your blog's homepage and name
- Replace the login logo (template, disabled by default)
- Make WordPress-generated emails appear 'from' your WordPress site name, instead of from 'WordPress'
- Make WordPress-generated emails appear 'from' your WordPress admin email address (disabled by default)
- Remove the 'WP' icon from the admin bar
- Change the admin panel footer text (template, disabled by default)
- Only show the admin bar to users who can at least use Posts
- Disable some or all of the default admin dashboard widgets (template, some disabled by default)
- Disable some or all of the default widgets (template, some disabled by default)
- Change the default hidden meta boxes for pages and posts (template, some hidden by default)
- Add a stylesheet for TinyMCE (disabled by default)
- Show the TinyMCE kitchen sink by default
- Change the available formats in TinyMCE (removes
h1
,h5
,h6
,address
, andpre
by default) - Add/remove contact methods from user profiles (removes AIM, YahooIM, and Jabber by default)
- Remove dashboard menus (template, disabled by default)
- Prevent the failed login notice from specifying whether the username or the password is incorrect
- Hide the top-right help pull-down button
- Disable some or all of the default Genesis theme option meta boxes (template, some disabled by default)
- Add admin-options.php support for setting Genesis default options
- Add admin-options.php Genesis theme options framework
- Better SASS organization into partials, modules, etc.
- Conditional jQuery 2.0 enqueueing
- (Ongoing) More standard developer comments & better function formatting
- Use Colors for better default color variables
- Don't check
is_admin()
inwp_enqueue_scripts
, since that hook is only called on the frontend - Better universal box-sizing
- Use CSSO for CSS magnification
- Set all package versions in
package.json
to*
, so that NPM will download the latest versions, then update the file with that info, onnpm update --save-dev
- Set Bower to always pull the latest versions of its dependencies
- Removed
grunt-svgmin
, sincegrunt-contrib-imagemin
now supports SVGs - Added
grunt-newer
, so that only changed images will be optimized when Grunt is watching for changes - No longer create a
style.prefixed.css
file. Replacestyle.css
with the prefixed version - Added
grunt-colorguard
, which outputs warnings about similar CSS colors
- Version bump for Genesis 2.1.0
- Added
<meta http-equiv="cleartype" content="on">
for better font rendering on mobile IE - Added better
show_admin_bar
filtering, as the old version was triggering errors in BuddyPress and bbPress. - Better use of semver. Bower will now update its dependencies to the latest minor release of the indicated major version. (ex. It'll update to Normalize v3.0.2 and v3.1.0, but not to v4.0.0.)
- Added code to disable XML-RPC entirely (code is disabled by default)
- Fixed some code formatting issues
- Enabled
bfg_remove_xmlrpc_pingback_ping
by default - Removed
bfg_remove_ptags_on_images
, since it no longer works. As an alternative, I've suggested makingwpautop()
's block elements list filterable - Set
appearance: none;
oninput
elements by default
- jQuery version update
- Added CSS to hide the spinner on
input[type="number"]
(disabled by default) - Use
genesis_footer_output
instead ofgenesis_footer_creds_text
to filter footer HTML
- Added Picturefill
- Added a clear transients button to the admin menu
- Add a plugins link to the appearance admin bar menu
- Better
add_theme_support( 'html5' );
, include WP 3.9's HTML5 galleries - Added template for changing image crop positions (disabled by default)
- Added template to deregister Genesis parent theme page templates (disabled by default)
- Update TinyMCE filters for WP 3.9, which uses TinyMCE 4
- Fixed removal of
no-js
class
- Refactored the starter CSS
- Added template to allow pages to have excerpts (disabled by default)
- Use IE indicator classes in the
<html>
tag, instead of a separate IE stylesheet - Remove manifest link
- Added function to disable pingbacks (disabled by default)
- Grunt will now watch SASS, JS, and image subfolders
- Added option to remove feed links (disabled by default)
- More consistent code spacing
- Place SASS first in Grunt process order
- Added hook to remove breadcrumbs (disabled by default)
- Better list style defaults
- Added SVG optimization, via Grunt
- Prevent direct access to PHP files
- Grunt integration
- Remove Compass @includes and sass-flex-mixin, instead use Autoprefixer
- Update jQuery to 1.11.0
- Document to use
--save
option when updating Bower - Require PHP files instead of including them, as in StudioPress's example Genesis child theme
- Removed iFrame border by default
- Updated normalize.scss repo reference
- Migrated submodules to Bower
- Added jQuery Placeholder plugin
- Fixed jQuery version reference in
includes/header.php
- Removed
bfg_prevent_child_theme_update
, since Genesis 2.0.2 now does this.
- Added
$rss
social color variable - Caption container
width
should beauto
- Split
.entry-pagination
and.archive-pagination
styles - Removed
overflow: hidden
on.entry-content
, as it causesoutline
no child elements to sometimes be partially hidden
- Hide edit links by default
- Added
X-UA-Compatible
<meta>
tag - Added jQuery fallback, if Google CDN fails
- Added script to disable hover events on scroll (disabled by default)
- Prevent authors and contributors from seeing media that isn't theirs (hidden by default)
- WP 3.8 login logo styles
- Show archive term title if no Genesis title is set (disabled by default)
- Force monospace font for
input[type="password"]
. This resolves an issue with some @font-face fonts in IE8. - Limit form field widths to width of container
- Added a
.one-fifth
grid option - Added
%unstyled-list
SASS extend - Added retina breakpoint
- Added a template to deregister the default Genesis menus, and add your own (deactivated by default)
- Added flexbox mixins, pending proper Compass support
- Added a template to limit searches to just posts (deactivated by default)
- Added hooks to hide the author box on single posts and/or archive pages (deactivated by default)
- Use fixed site width on old IE fallback.
- Use
@extend %clearfix
where practical - Don't bold or hide outline on input:focus by default
- Better old IE icon font redraw script
- iOS7 Favicon support
- Better list style skeleton in
_content.scss
- Added a
visuallyhidden
@extend - Added a template for removing pings, or the entire comments area (deactivated by default)
- Added hooks to remove the post_info and post_meta areas (deactivated by default)
- Added granular excerpt text filtering (deactivated by default)
- Added Superfish for IE8 compatibility with drop-down navigation
- Added template for additional TinyMCE buttons
- Added SVGeezy as a submodule
- Added a filter to change JPEG quality (disabled by default)
- Force the IE-only stylesheet to load after the main stylesheet
- Added code to remove the comments reply form. Disabled this code and the
genesis_do_comments
removal code by default. - Deactivated the IE-only stylesheet by default
- Moved jQuery to the footer
- Added a footer script to redraw
@font-face
fonts on IE8. (Enabled by default - if you're using BFG, I hope you're using icon fonts, as well.) - Submodules update
- Removed duplicate
box-sizing: border-box;
oninput[type="search"]
- Added a
hide-print
class - Removed
genesis_older_link_text
andgenesis_newer_link_text
link filter templates, since they're not used in G2.0 - Added
bfg_remove_scripts_meta_boxes
to remove the scripts metaboxes from posts and/or pages in G2.0
editor-style.scss
now imports some basic styling (type, grid, objects/images) and is toggled 'on' by default- Better fixed-width site support (commented out by default)
- Hide widget overflows
- More concise
_header.scss
.button
is now styled withbutton
- Added
genesis-style-selector
template (off by default) - Added option to change the media manager default view to 'upload', instead of 'library' (off by default)
- Remote scripts and styles are now registered protocol-agnostically
A quick update for Genesis 2.0 launch day compatibility
- Updated
.navigation
selector to.archive-pagination
and.entry-pagination
- Updated to new Genesis
clearfix
- Updated to
add_theme_support( 'html5' );
, instead ofadd_theme_support( 'genesis-html5' );
- Added better incorrect login credentials error text
- Added theme support options for a custom header and post formats (disabled by default)
- Added snippets for removing the header, site title, site description, nav menus, post title, and post edit link (all disabled by default)
- Removed
table
clearfix, as it was causing<thead>
s to collapse - Added
%inline-block
helper SASS bfg_load_scripts
doesn't need to be called with priority999
- Removed measurements from
_headings.scss
- Added a custom body class function for page templates
- Cleaner
bfg_remove_dashboard_menus
- Removed (non-functional) option to disable the link manager
- Added better defaults to
bfg_remove_theme_settings_metaboxes
- Moved
comment-reply
enqueuing frombfg_load_stylesheets
tobfg_load_scripts
- Better word break and text overflow handling
input[type="search"]
needs to be explicitly givenbox-sizing
. Weird.- 'Better Helvetica' starter sans-serif font stack
- Buttons should have base
line-height: 1
- Added WooCommerce theme support declaration (disabled by default)
- jQuery version bump
- For
comment-reply
script loading, changedis_singular()
tois_single() || is_page() || is_attachment()
inbfg_load_stylesheets()
for better granularity - Added function in
search.php
to redirect directly to the result on searches with only one result (disabled by default) - Title links should typically inherit their
.entry-title
color, not show the default link color - Added filters in
post.php
to customize the older/newer post navigation text (disabled by default) Readme.md
updates
- Removed
genesis_footer_backtotop_text
filter, since it's deprecated in Genesis 2.0 with HTML5 - Added support for better favicon display
g_ent
is deprecated in Genesis 2.0. Switched tohtml_entity_decode
, with better characters for post prev/next navigation- Styled
pre
likeblockquote
in_print.scss
- Added a button click effect extend in
_toolkit.scss
- IE image height correction
- Better input skeleton styles
- Added a starter breakpoint mixin
- Normalize.scss submodule update
- Removed page-templates folder. Templates should be in the child theme root, to properly overwrite the Genesis parent templates.
- Gave
input[type="search"]
explicit box-sizing. - Moved
@import "shame"
to the bottom ofstyle.css
- Removed
rem
font sizing skeleton - Removed
margin-bottom: -4px
from image links - Added
.hide-no-js
helper class - Added
add_theme_support( 'custom-background' )
- Initialize Genesis's
init.php
file directly now, instead of using thegenesis_setup
hook - Added child theme definitions (
CHILD_THEME_NAME
,CHILD_THEME_URL
,CHILD_THEME_VERSION
) - Commented out
text-shadow: none;
from::selection
, since this prevents all selection styling unlessbackground-color
is also specified - Removed
_grid.scss
responsive styling, since it was causing awkward breakpoint issues on non-responsive sites. - Commented out
body { text-rendering: optimizeLegibility; }
, since this can cause display issues on poorly generated fonts. - Removed default floats in
_layout.scss
- Added skeleton selectors for more HTML5 input types
- Better
_print.scss
- Assume SVG login logo
- Toggle link manager on/off
- Added genesis-footer-widgets option
- More consistent SASS formatting
- Commented out
width: auto
on images - Added
_shame.scss
file
- Initial release of Genesis 2.0 BFG fork