Automate Grunt load tasks

Handy plugin load-grunt-tasks reduces... // Load Grunt plugins. grunt.loadNpmTasks('grunt-browser-sync'); grunt.loadNpmTasks('grunt-contrib-compass'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-postcss'); to // Load Grunt plugins. require('load-grunt-tasks')(grunt); More on supercharging Grunt here.…

Remaining accessible with hidden elements

When hiding an element with display: none, it becomes inaccessible to screen readers and will not be read to the user. Sometimes that’s fine, but in other cases this will make the site hard to use for people with screen readers. Using the Sass placeholder selector to reduce repetitive…

Custom CSS input focus outline

input:focus, select:focus, textarea:focus { outline: none; box-shadow: 0 0 0 2px rgba(232, 106, 129, 1); border: 1px solid rgba(232, 106, 129, 1); transition: all 0.3s ease; } Note: Using box-shadow to replicate border: 2px is preferable to prevent jumping of input fields up and down 1px…

Adding 'Tags' Nav to ghost with 'beta' API access

Ghost 0.7.2 added a first ‘beta’ version of API access. This gives access to the new {{get}} helper and the embeddable ghost.url.api() helper for making ajax requests. These must be enabled via a checkbox on the labs page in your Ghost admin panel. Editing partials/navigation.…