Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .bowerrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"directory": "src/bower_components"
}
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# editorconfig.org
root = true

[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
45 changes: 45 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
*.orig

# Sublime Text#
###############
*.sublime-*

# Miscellaneous #
#################
.allow-devtools-edit
.sass-cache/

# Project #
###########
.tmp
/.ignored/
/node_modules/
/src/bower_components/
/build
Binary file added .project/images/compass-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .project/images/grunt-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
'use strict';

// # Globbing
// for performance reasons we're only matching one level down:
// 'test/spec/{,*/}*.js'
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'

module.exports = function (grunt) {

var path = require('path');

// Display task times
require('time-grunt')(grunt);
// Load tasks as needed for performance
require('jit-grunt')(grunt);

// Split grunt file into 'tasks' and 'task options' for easier maintenance
// Source: http://www.thomasboyt.com/2013/09/01/maintainable-grunt.html
require('load-grunt-config')(grunt, {
configPath: path.join(process.cwd(), 'tasks/options'), // path to task.js files, defaults to grunt dir
init: true, // auto grunt.initConfig
config: { // additional config vars
pkg: grunt.file.readJSON('package.json'),
projname: '<%= pkg.name %>', // change here or in package.json
src: 'src',
build: 'build',
temp: '.tmp',
LIVERELOAD_PORT: 35028,
port: 9002,
hostname: '0.0.0.0' // enter 'your-host-ip-address:port-number-from-above' into browser address bar for remote livereload
}
});

// load tasks in /tasks directory
grunt.loadTasks('tasks');
// need this to get rid of the "No tasks were registered or unregistered" warning
grunt.registerTask('dummy', []);

};
120 changes: 117 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,118 @@
ux-prototype
============
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)

A collection of tools to help you design and build more products and less documentation
# UX Prototype
v0.0.1

Go from sketch to wireframe to prototype with this front-end development and design kit by generating static HTML pages from dynamic templates and partials, and modular CSS structure using SASS, allowing you to keep everything organised the way you need it to be.


> We’re not designing pages, we’re designing systems of components
>
> — <cite>[Stephen Hay](http://www.the-haystack.com/)</cite>


## Project Goal

Enable the *building* and *demonstration* of **tangible products** and reduce *describing* and *documenting* them, by facilitating "in-browser design" ("[deciding](https://the-pastry-box-project.net/dan-mall/2012-september-12) in the browser") using:

- A modular/atomic system of reusable components/patterns
- Flexible tools – opt-in over opt-out


## Features

All features are optional, if you don't want to use one just comment it out in the appropriate ``tasks/task-name.js`` file. Everything is highly configurable and automated with [Grunt](http://gruntjs.com/).

- Modular templating and partial/includes system ([Handlebars](http://handlebarsjs.com/)) – [Asemble](http://assemble.io)
- CSS pre-processing – [SASS](http://sass-lang.com/)
- [Livereload](https://github.com/intesso/connect-livereload) your designs instantly after saving **on multiple devices** (without a browser plugin)
- SVG conversion to PNG and Base64 encoded CSS for fallback - [Grunticon](http://www.grumpicon.com/)
- Package/asset management (jQuery, modernizr, etc.) - [Bower](http://bower.io/)
- Minification of JS and CSS
- Image optimisation
- Rule based linting of [JS](https://github.com/gruntjs/grunt-contrib-jshint), [CSS](https://github.com/stubbornella/csslint), [HTML](https://github.com/yaniswang/HTMLHint) and [Accessibility](https://github.com/globant-ui/arialinter)
- Reordering/formatting of CSS according to rules you set – [CSSComb](https://github.com/csscomb/csscomb.js)
- HTML beautification according to rules you set – [Prettify](https://github.com/jonschlinkert/grunt-prettify)
- Growl notifications

The Sass/CSS adheres somewhat closely to the following guidelines (needs cleanup):

- [Idiomatic CSS](https://github.com/necolas/idiomatic-css)
- [CSS Wizardry CSS guidleines](https://github.com/csswizardry/CSS-Guidelines)
- [Sass Style Guide](http://css-tricks.com/sass-style-guide/)


## Install

*NOTE: This will eventually all be handled by a script (optional).*


If you are unfamiliar with terms like homebrew, npm, and ruby, or are having difficulty with the instructions below, read the [full install instructions](docs/Install.md).

If you already have node installed, read on.

#### SASS and Compass

```
gem install sass compass
```

#### Grunt & Bower

```
npm install -g grunt grunt-cli bower
```

#### Dependencies

```
npm install && bower install
```

#### Growl

[growlnotify](http://growl.info/downloads#generaldownloads)


## How to use

*NOTE: Need to elaborate on this*

A lot of the variables are defined in `Gruntfile.js` and also in `package.json`.

Source files are in the ``src`` directory and the static/flat output is output to the ``build`` directory.

#### Working on source files

Start a server with livereload and edit your HTML (.hbs), SASS or js files from the `src` and have the changes update in the browser without refreshing.

```
grunt server
```

#### Building static output

After you have changed any of the source files, generate new files in the build directory by running the following command:

```
grunt build
```

### HTML (.hbs) pages

[Assemble docs](http://assemble.io/docs/)

Most page and directory relatred settings are in `tasks/options/assemble.js`.


## Author

### Michael Sheedy

- [https://twitter.com/msheedy](https://twitter.com/msheedy)
- [http://www.michaelsheedy.com/](http://www.michaelsheedy.com/)
- [http://www.myplanet.io/](http://www.myplanet.io/)

## Credit

Matt Bailey's [bones generator](https://github.com/matt-bailey/generator-bones) and his [blog posts on using Grunt](http://www.gpmd.co.uk/blog/front-end-process-flat-builds-and-automation-part-1-introduction/) – the seed that started this project.
11 changes: 11 additions & 0 deletions bower.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "ux-prototype",
"version": "0.0.1",
"dependencies": {
"modernizr": "~2.6.2",
"jquery": "~1.9.0",
"jquery-color": "~2.1.2",
"animate.css": "~2.1.1"
},
"devDependencies": {}
}
Loading