Organised sass folders

This commit is contained in:
Mike Francis 2014-06-20 15:59:08 +01:00
parent d444e9aeb2
commit 631f3f6f27
17 changed files with 238 additions and 83 deletions

2
.gitignore vendored
View File

@ -1,6 +1,6 @@
npm-debug.log
.sass-cache
node_modules
css-test.html
css-test.php
css/bourbon
css/neat

View File

@ -1,14 +1,26 @@
module.exports = function(grunt) {
var paths = {
img: 'img/'
};
grunt.initConfig({
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'img/',
src: ['*.{png,jpg,gif}'],
dest: 'img/'
}]
compass: {
options: {
config: 'config.rb',
bundleExec: true
},
dev: {
options: {
specify: 'scss/style.scss',
}
},
prod: {}
},
imageoptim: {
src: [paths.img],
options: {
quitAfter: true
}
},
sass: {
@ -16,7 +28,7 @@ module.exports = function(grunt) {
options: {
style: 'compressed'
},
files: { 'style.css': 'css/style.scss' }
files: { 'style.css': 'scss/style.scss' }
}
},
svgmin: {
@ -28,9 +40,9 @@ module.exports = function(grunt) {
dist: {
files: [{
expand: true,
cwd: 'img/',
cwd: paths.img,
src: ['*.svg'],
dest: 'img/',
dest: paths.img,
ext: '.svg'
}],
}
@ -38,8 +50,8 @@ module.exports = function(grunt) {
svg2png: {
all: {
files: [{
src: ['img/*.svg'],
dest: 'img/'
src: [paths.img + '*.svg'],
dest: paths.img
}],
}
},
@ -53,7 +65,7 @@ module.exports = function(grunt) {
},
watch: {
css: {
files: ['css/*.scss'],
files: ['scss/**/*.scss'],
tasks: ['sass'],
options: {
livereload: true
@ -66,15 +78,15 @@ module.exports = function(grunt) {
}
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-imageoptim');
grunt.loadNpmTasks('grunt-svg2png');
grunt.loadNpmTasks('grunt-svgmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.registerTask('default', ['imagemin', 'sass', 'svgmin', 'svg2png', 'watch', 'uglify', 'jshint']);
grunt.registerTask('default', ['imageoptim', 'sass', 'svgmin', 'svg2png', 'watch', 'uglify', 'jshint']);
};

View File

@ -21,8 +21,6 @@ A lightweight and skeletal WordPress boilerplate theme for HTML5 and beyond. The
### Dependencies
* Bourbon gem
* Neat gem
* Node.js
* Grunt.js
@ -30,20 +28,9 @@ A lightweight and skeletal WordPress boilerplate theme for HTML5 and beyond. The
* [LiveReload Chrome plugin](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei)
Clone/download the barebones repositories into your WordPress /wp-content/themes/ directory, then open /barebones/ in a command line tool, such as Mac Terminal, then first install the bourbon/neat gems if you haven't already:
Clone/download the barebones repositories into your WordPress /wp-content/themes/ directory and run the following to install all of this project's Grunt dependencies:
$ gem install bourbon
$ gem install neat
Then install bourbon/neat to the theme's css folder
$ cd css
$ bourbon install
$ neat install
and run the following to install all of this project's Grunt dependencies:
$ npm install --save-dev
$ npm install
Then run `grunt`:
@ -62,4 +49,4 @@ Compatible with WordPress 3.2 and above, but always use the latest version.
## Roadmap
* Organisation of Sass folders
* -[Organisation of Sass folders]

173
css-tests.php Normal file
View File

@ -0,0 +1,173 @@
<?php
/* Template name: CSS Tests */
function wp_head_css_tests() {
?>
<!-- <link rel="stylesheet" href="http://basehold.it/24"> -->
<style>
body { padding: 48px 0; }
.section-title { font-size: 3em; line-height: 2em; border-bottom: solid 1px #000; }
.row { overflow: hidden; margin-bottom: 1.5em; }
.column { background-color: yellow; height: 1.5em; }
.column .column { background-color: green; }
</style>
<?php
}
add_action( 'wp_head', 'wp_head_css_tests' );
get_header();
?>
<div class="container">
<section>
<h2 class="section-title">Grids</h2>
<div class="row">
<div class="column column-span-12"></div>
</div>
<div class="row">
<div class="column column-span-6"></div>
<div class="column column-span-6"></div>
</div>
<div class="row">
<div class="column column-span-4"></div>
<div class="column column-span-4"></div>
<div class="column column-span-4"></div>
</div>
<div class="row">
<div class="column column-span-3"></div>
<div class="column column-span-3"></div>
<div class="column column-span-3"></div>
<div class="column column-span-3"></div>
</div>
<div class="row">
<div class="column column-span-2"></div>
<div class="column column-span-2"></div>
<div class="column column-span-2"></div>
<div class="column column-span-2"></div>
<div class="column column-span-2"></div>
<div class="column column-span-2"></div>
</div>
<div class="row">
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
<div class="column column-span-1"></div>
</div>
<div class="row">
<div class="column column-span-8">
<div class="column column-span-6"></div>
<div class="column column-span-6"></div>
</div>
<div class="column column-span-4"></div>
</div>
</section>
<section>
<h2 class="section-title">Typography</h2>
<h1>Heading 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi, quaerat magni omnis vero veritatis repellendus architecto ut et! Aliquam, eligendi, culpa neque natus consequuntur expedita facilis inventore nulla dolore incidunt.</p>
<h2>Heading 2</h2>
<p>Laudantium, eaque, est, quod commodi tenetur repellat iusto reiciendis dolore consequuntur voluptate magni ratione omnis minima quibusdam illo vitae officia iure sapiente impedit animi corrupti labore odit qui voluptates beatae.</p>
<h3>Heading 3</h3>
<p>Dolore, fugiat quia consequuntur fuga laboriosam tempore! Dicta, sequi, voluptates sint corporis aliquam eligendi repellat. Optio, in, dolore, modi, voluptas tenetur vel reprehenderit numquam fugit unde labore quos doloremque aperiam.</p>
<h4>Heading 4</h4>
<p>Numquam, similique, cupiditate, eaque quam est accusamus molestias consectetur earum ea voluptatem ratione necessitatibus? Est, dolorem debitis officiis aliquid deleniti exercitationem aspernatur quo eos eligendi similique sapiente laboriosam vero voluptas.</p>
<h5>Heading 5</h5>
<p>Praesentium, ipsa beatae veritatis quasi laborum adipisci facere vel est repudiandae ipsum deleniti consequuntur recusandae aspernatur officia cumque tempora porro officiis amet nemo at! Dolor explicabo recusandae eum esse harum.</p>
<h6>Heading 6</h6>
<p>Facilis, atque in vitae voluptas illum ducimus qui dolor provident doloremque quibusdam delectus quasi autem nobis deleniti at consectetur ullam! Voluptas, officia, recusandae impedit unde atque illum quis nemo dolore.</p>
<ul>
<li>Lorem ipsum dolor sit amet.</li>
<li>Sapiente, repellendus sunt sint suscipit.</li>
<li>Cumque sint debitis aspernatur accusantium!</li>
<li>Quisquam magni culpa molestiae ipsa!
<ul>
<li>Voluptatum neque a libero enim.</li>
<li>Quisquam exercitationem modi distinctio veritatis?</li>
<li>Adipisci aspernatur perferendis veniam illo.</li>
<li>Placeat dolorem maiores rerum error!</li>
</ul>
</li>
<li>Non hic quaerat corrupti quia.</li>
<li>Distinctio dolor harum accusantium error.</li>
</ul>
<ol>
<li>Lorem ipsum dolor sit amet.</li>
<li>Id dolor harum neque eius!</li>
<li>Quod soluta quam est temporibus.</li>
<li>Minima ab perspiciatis sed possimus!</li>
<li>Blanditiis, dicta mollitia quam modi.</li>
</ol>
</section>
<section>
<h2 class="section-title">Forms</h2>
<form>
<fieldset>
<div class="form__group">
<label for="first_name">First name</label>
<input type="text" id="first_name" name="first_name">
</div>
<div class="form__group">
<label for="first_name">Last name</label>
<input type="text" id="last_name" name="last_name">
</div>
<div class="form__group">
<label for="enquiry">Your enquiry</label>
<textarea id="enquiry" name="enquiry"></textarea>
</div>
<div class="form__group">
<label for="select_list">How did you hear about us?</label>
<select id="select_list" name="select_list">
<option>Search engine</option>
<option>TV/radio advertising</option>
<option>Magazine</option>
</select>
</div>
<div class="form__group">
<label>Which of these do you own?</label>
<div class="form__group__controls">
<label>
<input type="checkbox" name="own[]" value="xbox"> Xbox
</label>
<label>
<input type="checkbox" name="own[]" value="chair"> Chair
</label>
<label>
<input type="checkbox" name="own[]" value="pizza"> Pizza
</label>
</div>
</div>
<div class="form__group">
<label>Gender</label>
<div class="form__group__controls form__group__controls--inline">
<label>
<input type="radio" name="gender" value="male"> Male
</label>
<label>
<input type="radio" name="gender" value="female"> Female
</label>
<label>
<input type="radio" name="gender" value="other"> Other
</label>
</div>
</div>
<div class="form__group">
<button class="btn" type="submit">Submit</button>
<a class="btn" href="#">Cancel</a>
</div>
</fieldset>
</form>
</section>
</div>
<?php get_footer(); ?>

View File

@ -1,4 +0,0 @@
.container {
@include outer-container;
padding: 0 ($gutter * 1px);
}

View File

@ -1,34 +0,0 @@
/*
Theme Name: Bare Bones
Theme URI: http://github.com/mikefrancis/barebones
Author: Mike Francis
*/
// neat.bourbon.io grid system
@import 'bourbon/bourbon';
@import 'neat/neat';
// Variables, Mixins
@import 'vars';
@import 'mixins';
// Generic
@import 'reset';
@import 'normalise';
@import 'utilities';
// Layout, Scaffolding
@import 'layout';
// Form, Buttons
@import 'forms';
@import 'buttons';
// Nav abstraction, Navs
@import 'nav';

View File

@ -5,10 +5,11 @@
"grunt": "~0.4.2",
"grunt-contrib-sass": "~0.5.0",
"grunt-contrib-watch": "~0.5.3",
"grunt-contrib-imagemin": "~0.5.0",
"grunt-contrib-imageoptim": "~0.9.6",
"grunt-svg2png": "~0.2.0",
"grunt-svgmin": "~0.4.0",
"grunt-contrib-uglify": "~0.4.0",
"grunt-contrib-jshint": "~0.10.0"
"grunt-contrib-jshint": "~0.10.0",
"grunt-contrib-compass": "~0.8.0"
}
}

View File

@ -16,8 +16,6 @@ $breakpoint-large: 1200px;
// Scaffolding
$max-width: 1200px;
$grid-columns: 12;
$gutter: 20;
// Custom colours etc.

View File

@ -1,4 +1,10 @@
@mixin media($size) {
@mixin resp-min($size) {
@media screen and (min-width: $size) {
@content;
}
}
@mixin resp-max($size) {
@media screen and (max-width: $size) {
@content;
}

16
scss/style.scss Executable file
View File

@ -0,0 +1,16 @@
/*
Theme Name: Bare Bones
Theme URI: http://github.com/mikefrancis/barebones
Author: Mike Francis
*/
@import 'vars';
@import 'generic/reset';
@import 'generic/utilities';
@import 'generic/mixins';
@import 'base/normalise';
@import 'base/forms';
@import 'modules/nav';
@import 'modules/buttons';

View File

@ -1 +1 @@
*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{display:block}address,caption,cite,dfn,th,var{font-style:normal;font-weight:normal}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}th{font-weight:bold;text-align:left}html{background-color:#fff;color:#444;font:100%/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;min-height:100%}a{color:#444;text-decoration:none}h1,h2,h3,h4,h5,h6,p,hr,ul,ol{margin-bottom:24px}h1,h2,h3,h4,h5,h6{line-height:24px}h1{font-size:32px;font-size:2rem}h2{font-size:28px;font-size:1.75rem}h3{font-size:24px;font-size:1.5rem}h4{font-size:20px;font-size:1.25rem}h5,h6{font-size:16px;font-size:1rem}ul,ol{margin-left:24px}ul ul,ol ol{margin-bottom:0}img{display:block;height:auto;max-width:100%}blockquote{font-family:serif;padding-left:24px}em{font-style:italic}hr{background-color:#444;border:0;color:#444;height:1px}h1,h2,h3,h4,h5,h6,strong,th{font-weight:bold}table{width:100%}table th,table td{padding:6px;text-align:left}.alignleft{float:left}img.alignleft{margin-right:24px}.alignright{float:right}img.alignright{margin-left:24px}.aligncenter{display:block;margin-left:auto;margin-right:auto}img.aligncenter{margin-bottom:24px}.clearfix:before,.form__group .form__group__controls:before,.clearfix:after,.form__group .form__group__controls:after{content:'';display:table;line-height:0}.clearfix:after,.form__group .form__group__controls:after{clear:both}.container{*zoom:1;max-width:1200px;margin-left:auto;margin-right:auto;padding:0 20px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}input,select,textarea{background-color:#fff;border:solid 1px #444;color:#444;display:inline-block;font:inherit;line-height:24px;padding:6px;width:100%}input[type="checkbox"],input[type="radio"]{background:transparent;border:0;width:auto}label{display:block;font-weight:bold}select{height:36px}textarea{min-height:96px}.form__group{margin-bottom:24px}.form__group .form__group__controls label{font-weight:normal}.form__group .form__group__controls.form__group__controls--inline label{display:inline-block}.btn{background-color:#444;border:0;color:#fff;cursor:pointer;display:inline-block;font:inherit;font-weight:bold;height:36px;line-height:36px;padding:0 24px;text-align:center;width:auto}.nav{list-style:none;margin:0}.nav>li{display:inline-block}.nav>li>a{display:block}
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{display:block}address,caption,cite,dfn,th,var{font-style:normal;font-weight:normal}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}th{font-weight:bold;text-align:left}.alignleft{float:left}img.alignleft{margin-right:24px}.alignright{float:right}img.alignright{margin-left:24px}.aligncenter{display:block;margin-left:auto;margin-right:auto}img.aligncenter{margin-bottom:24px}.clearfix:before,.form__group .form__group__controls:before,.clearfix:after,.form__group .form__group__controls:after{content:'';display:table;line-height:0}.clearfix:after,.form__group .form__group__controls:after{clear:both}*{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;text-rendering:optimizeLegibility}html{background-color:#fff;color:#444;font:100%/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;min-height:100%}a{color:#444;text-decoration:none}h1,h2,h3,h4,h5,h6,p,hr,ul,ol{margin-bottom:24px}h1,h2,h3,h4,h5,h6{line-height:24px}h1{font-size:32px;font-size:2rem}h2{font-size:28px;font-size:1.75rem}h3{font-size:24px;font-size:1.5rem}h4{font-size:20px;font-size:1.25rem}h5,h6{font-size:16px;font-size:1rem}ul,ol{margin-left:24px}ul ul,ol ol{margin-bottom:0}img{display:block;height:auto;max-width:100%}blockquote{font-family:serif;padding-left:24px}em{font-style:italic}hr{background-color:#444;border:0;color:#444;height:1px}h1,h2,h3,h4,h5,h6,strong,th{font-weight:bold}table{width:100%}table th,table td{padding:6px;text-align:left}input,select,textarea{background-color:#fff;border:solid 1px #444;color:#444;display:inline-block;font:inherit;line-height:24px;padding:6px;width:100%}input[type="checkbox"],input[type="radio"]{background:transparent;border:0;width:auto}label{display:block;font-weight:bold}select{height:36px}textarea{min-height:96px}.form__group{margin-bottom:24px}.form__group .form__group__controls label{font-weight:normal}.form__group .form__group__controls.form__group__controls--inline label{display:inline-block}.nav{list-style:none;margin:0}.nav>li{display:inline-block}.nav>li>a{display:block}.btn{background-color:#444;border:0;color:#fff;cursor:pointer;display:inline-block;font:inherit;font-weight:bold;height:36px;line-height:36px;padding:0 24px;text-align:center;width:auto}