Pink() Notes - Breakpoint
Breakpoint
2012-08-02 by Les James (Meetup)
Pain Points
- Fluid Layouts
 - Floats
 - Media Queries
 - Internet Explorer
 - something else was mentioned here...
 - Additional Markup
 - Grid Complexity
 - Many Different Resolutions
 - Teams
 
Breakpoint Philosophies
- fluid and fixed
- fluid at low resolutions
 - snaps into one or more fixed layouts at higher resolutions
 
 - columns
- once you go fixed, columns remain the same size
 - frameless grid - more screen equals more columns, but columns stay the same width
 
 - mobile first
- start designing for low resolution devices first, then work up
 
 - uses inline-block to work magic
- griddle
 - everything works nicer (than using float)
 
 - classes
- non-semantic class names suck (.col-6 et cetera)
 - only three class names for grids (wrapper, grid, grid-cell)
 
 - stays out of your way
- doesn't limit design, tries to get out of the way
 - tries to not make every site built with it look the same
 
 - internet explorer
- non-javascript fallback
 
 - media query management
- breakpoint calculates and writes all media queries for you
 
 - play nice with javascript
- hooks for javascript to tell javascript which layout is active for responsive images
 
 
Class Names
.wrapper- snaps into fixed width layouts
 - centers itself on page
 
.grid- 100% fluid inside .wrapper
 - uses negative letter-spacing to remove extra space between 
.grid-cell 
.grid-cell- must be only child of .grid (to compensate for negative letter-spacing)
 
.responsive-image%img.responsive-image{:src => 'data-uri for 1x1 transparent gif', :data-mobile => '', :data-desktop => ''}- use 
%noscriptfor non-javascript fallback - use 1x1 transparent gif as initial source; data-uri may work to prevent additional requests
 
Example
// _setup.sass
// internet explorer gets the nine column layout
//$ie-support: 9
// _structure.sass
@include breakpoint(6)
  .content
  .sub-content
// $label sets font-family on %head (used for responsive image feature)
@include breakpoint(9, $label: desktop)
  .content
    // percentage based width
    width: fluid(6)
    // em based width
    //width: fixed(6)
  .sub-content
    width: fluid(3)
  .feature
    width: fluid(3)