digisavvy / some-like-it-neat

A WordPress Theme Using _s, Bourbon + Neat and Theme Hook Alliance
GNU General Public License v2.0
276 stars 61 forks source link

Some Like it Neat

A WordPress Theme Using _s, Bourbon + Neat and Theme Hook Alliance

Description

Some Like it Neat is a Minimal Starter theme that is Responsive out of the box. It uses Sass along with Bourbon Neat for help with Responsive grids. It's based on _s and is pretty rad.

Donate (or submit a pull request)

Click here to lend your support to: Some Like it Neat, a WordPress Starter Theme and make a donation at pledgie.com !

What's Inside?

Bourbon provides a lightweight Sass library (similar to Compass).

Neat extends bourbon and provides a nice and lightweight grid framework as a base for this project. This theme now uses CSS Grid to manage layouts. I recommend that you use CSS Grid to build your layouts going forward. Support is pretty darn good for CSS Grid. Neat has been left here and it's used primarily for breakpoint variables. If you still wish to use Neat (and it is a great framework) you may do so. But we'll be looking to remove Neat here eventually (now I have to come up with a new name for this theme).

Bitters is baked-in, too! You get some basic nifty styles out of the gate.

Getting Started

There's a lot to this theme, but don't be intimidated, even if you're not an "advanced-level" developer, you got this! I'll be honest with you, I don't know how half the stuff here works, it just sorta does. =)

Bourbon and Neat are used for providing simple Sass mixins and leverages a simple grid system that let's you markup your theme how you want, while you use their math, unlike Bootstrap and Foundation, presently.

There are things you need to install before you hack away at things. There are three package managers to install: Node (which installs the NPM package manager). Each of these have dependencies that also need to be installed. Fortunately, this is all "fairly easy".

Each task such as 'js', 'images' or 'browser-sync' may be started individually. Although, the only one of them you'd do that with is the 'images' task since that's not auto-optimizing at the moment.

Theme Hook Alliance


What is Theme Hook Alliance? It's a pretty rad project - https://github.com/zamoose/themehookalliance. I'm a big fan of hooks, personally. They provide a means to keep things within the theme cleaner and easier to maintain.

"The Theme Hook Alliance is a community-driven effort to agree on a set of third-party action hooks that THA themes pledge to implement in order to give that desired consistency."

Infinite Scroll and Jetpack


Infinite Scroll is now supported. Requires that you have Jetpack installed and have configured the plugin to use Infinite Scroll. Additionally, you'll need to go into the Customizer to add theme support. Why? While redundant, didn't really want code running that wasn't in use... Aaand seemed like a nice use of the Customizer. If you hate it, open an issue. =)

Bourbon and Neat


Why use these in this project? It's a philosophical thing. I've used Foundation and Bootstrap before. I like them; they're both great, great projects run by smarter people than myself. So what's the philosophical bit? To achieve the responsiveness required of various projects, I would have to tear up my HTML, input my own selector classes and what have you, in addition to changing my css. I didn't like it. I heard about Neat (http://neat.bourbon.io) and really liked their approach to a grid framework. You keep your HTML structure the way you like and all of the styling in your Sass files

Use as a Parent Theme?


I don't see why not. I haven't done it yet. ( I'm using a child theme on http://alexhasnicehair.com ) But with the addition of Theme Hook Alliance, I'd say 'Some Like it Neat' would make for a good Parent Theme for your project and certainly more ideal if you're going to make significant edits (and why wouldn't you? By default it looks like pooh!).

What I recommend is that you generate your child theme, setup your child theme folder, style.css file. Additionally, I think it's just easier to copy the 'library' folder from the parent and place it into the child theme. I'm gonna recommend you [have a look at this issue here] (https://github.com/digisavvy/some-like-it-neat/issues/58) for details on how to go about this.

Folder Structure


I haven't listed out every single file here; but I have listed out the files that you'll most likely work with during a project.

Theme Root
    │    ├── assets
    │    │   ├── css
    │    │   |    ├── layouts
    |    |   |    |   ├── navigation-offcanvas.css
    │    │   |    └── vendor
    |    |   |    |   ├── flexnav.css
    |    |   |    ├── style-min.css
    |    |   |    └── style.css
    │    |   └──  js
    │    │   |    ├── app
    │    │   |    └── vendor
    │    |   |    |   ├── flexnav
    │    |   |    |   ├── hoverintent
    │    |   |    |   ├── modernizr
    │    |   |    |   └── selectivizr
    │    │   |    ├── custom-offcanvas.js
    │    │   |    ├── production-min.js
    │    │   |    └── development.js
    │    |   └── maps
    │    │   ├── sass
    │    │   |   └── abstracts
    │    |   |    |   ├── __abstracts.scss
    │    |   |    |   ├── _accessibility.scss
    │    |   |    |   ├── _typography.scss
    │    |   |    |   ├── _variables.scss
    │    │   |    └── base
    │    |   |    |   ├── __base_dir.scss
    │    |   |    |   ├── _normalize.scss
    │    │   |    └── components
    │    |   |    |   ├── __components-dir.scss
    │    |   |    |   ├── _buttons.scss
    │    |   |    |   ├── _infinite-scroll.scss
    │    |   |    |   ├── _media.scss
    │    │   |    └── layouts
    │    |   |    |   ├── __layouts-dir.scss
    │    |   |    |   ├── _content.scss
    │    |   |    |   ├── _footer.scss
    │    |   |    |   ├── _header.scss
    │    |   |    |   ├── _navigation.scss
    │    |   |    |   ├── _sidebar.scss
    │    |   |    |   ├── _structure.scss
    │    |   |    |   └── navigation-offcanvas.scss
    │    │   |    └── templates
    │    |   |    |   ├── __templates-dir.scss
    │    |   |    |   ├── _template-2col-l-sidebar.scss
    │    |   |    |   ├── _template-2col-r-sidebar.scss
    │    |   |    |   ├── _template-full-width.scss
    │    |   |    |   ├── _template-landing-page.scss
    │    │   |    └── vendor
    │    |   |    |   ├── __vendor-dir.scss
    │    |   |    |   ├── _base.scss
    │    |   |    |   ├── _buttons.scss
    │    |   |    |   ├── _dashicons.scss
    │    |   |    |   ├── _grid-settings.scss
    │    |   |    |   ├── _layout.scss
    │    |   |    |   ├── _lists.scss
    │    |   |    |   └── _media.scss
    │    |   |    |   └── _tables.scss
    │    |   |    |   └── _typography.scss
    │    |   |    |   └── _variables.scss
    │    |   |    |   └── flexnav.scss
    │    |   ├── _app.scss
    │    |   ├── _grid-settings.scss
    │    |   └── style.scss
    ├── library
    │   └── languages
    │   │   ├── some_like_it_neat.pot
    │   └── vendors
    │   │   ├── cmb2
    │   │   ├── customizer
    │   │   ├── tgm-plugin-activation
    │   │   ├── theme-hook-alliance
    │   │   └── custom-header.php
    │   │   └── extras.php
    │   │   └── jetpack.php
    │   │   └── meta.php
    │   │   └── template-tags.php
    │   ├── assets.php
    │   ├── customizer-frontend-settings.php
    │   ├── extras.php
    │   ├── theme-setup.php
    │   ├── vendor.php
    │   ├── widgets.php
    ├── page-templates
    │     └── template-parts
    |     |   ├── content-aside.php
    |     |   ├── content-audio.php
    |     |   ├── content-chat.php
    |     |   ├── content-gallery.php
    |     |   ├── content-image.php
    |     |   ├── content-link.php
    |     |   ├── content-none.php
    |     |   ├── content-page.php
    |     |   ├── content-quote.php
    |     |   ├── content-single.php
    |     |   ├── content-status.php
    |     |   ├── content-video.php
    |     |   └── content.php
    |     ├── template-full-width.php
    |     ├── template-left-col.php
    |     └── template-right-col.php
    |     └── template-landing-page.php
    ├── 404.php
    ├── archive.php
    ├── comments.php
    ├── footer.php
    ├── functions.php
    ├── gulpfile.js
    ├── header.php
    ├── index.php
    ├── license.txt
    ├── package.json
    ├── page.php
    ├── README.md
    ├── rtl.css
    ├── search.png
    ├── searchform.php
    ├── sidebar.php
    ├── single.php
    └── style.css

How to Contribute to This Project

Your generous pull requests are welcome! Have a look at our contribution guide for details: Contribution Guide

Road Map

General Credits and Thanks


A special thanks to all the folks who inspire me on a daily basis to "do more" with what I know and what I can contribute.

License

This theme is based on Underscores, (C) 2012-2013 Automattic, Inc.

CMB2

Flexnav, Copyright 2014 Jason Weaver.

TGM Plugin Activation, Copyright 2014 Thomas Griffin Media, Inc.

Theme Hook Alliance

Bourbon

Neat

Gulpjs

Hover Intent