Bermon Painter, Charlotte NC @bermonpainter
- Why's of rapid prototyping
- Using preprocessors (Slim, Sass)
- (Afternoon) Pair up and do some rapid prototyping
- discover -> design -> develop -> deploy
- waterfall
- wireframes (rarely useful)
- not suited for dynamic interactions
- open to interpretations
- creates silos ("lob it over the fence")
- not suited for dynamic interactions
- mockups (also rarely useful)
- may or may not be possible to build
- time-consuming
- same drawbacks as wireframes
- sets unrealistic aesthetic expectations for stakeholders
- (design, dev, discovery together) -> iterate, test -> deploy
- living styleguide in HTML
- rapid prototype and dev backend can proceed concurrently, then merge the two together as they proceed
- many rapid prototyping toolchains available
- we'll be using Middleman today
- built in Sinatra
- Uses Sass/Compass by default
- we'll be using Middleman today
- code reuse
- generate docs and comments and style guides
- efficiency over hand-coded samples
- working with web tools & browsers
- cross-discipline collaboration
- rapid prototyping is a good time to pair!
Creation is a shared activity.
- Create a consistent framework to use for your rapid prototypes
- Using middleman today with Sass/Compass and Slim
- Or use HAML or Less or some other preprocessor
- Using node.js? Check out Yeoman/jasmine/stylus
- http://github.com/bpainter/sass-workshop
- Follow Codepen URL in the README
- Went through each chunk showing the basics of Sass
- Create templates in ~/.middleman/NAME_OF_TEMPLATE
- http://github.com/bpainter/middleman-boilerplate
- Good defaults, partway to Bermon's preferred setup
- http://github.com/bpainter/middleman-frankenstein
- Berman's preferred setup.
- Incorporates parts of Frankenstein and HTML Boilerplate
- Make your own and post to GitHub!
- assets/stylesheets/
- base/
- _normalize: make consistent browser defaults
- _emphasis, _tables, _paragraphs, etc: placeholders for different base styles
- _variables: Single place to place variables used in other stylesheets
- _functions: Single place to place functions used in other stylesheets
- scaffold/
- Layout stuff
- "major selectors", one per page
- _header
- _footer
- so on
- modules/
- structural styling
- "minor selectors", reusable
- SMACCS-style modules. One file per module.
- _navigation
- _badgest
- _progress-bar
- _tabs
- so on
- themes/
- Pure decoration
- base/
- Try not to be overly specific with selectors
- 3 levels of nested selector is a good max
- "Why
ul.class
when you could instead.class
?
- Use classes for state
.is-hidden
,.is-active
- Add and remove these states with JS, rather than applying local styles with jQuery.
- Easier to test, can be more complex and reusable
- Include a "style guide" page that includes every piece of markup so you can quickly tweak styles and be happy with them.