refresh-okc-110419035057-phpapp02
TRANSCRIPT
-
8/4/2019 refresh-okc-110419035057-phpapp02
1/102
Refresh OKC April 19th 2011
http://refreshokc.org http://960.gs
http://refreshokc.org/http://960.gs/http://960.gs/http://960.gs/http://refreshokc.org/http://refreshokc.org/ -
8/4/2019 refresh-okc-110419035057-phpapp02
2/102
Nathan Smith = UX developer @ HP Cloud Services
http://sonspring.com http://hp.com
http://sonspring.com/http://hp.com/http://hp.com/http://hp.com/http://sonspring.com/http://sonspring.com/ -
8/4/2019 refresh-okc-110419035057-phpapp02
3/102
Relax. Please dont try to take notes feverishly.
Email http://sonspring.com/contact
Twitter http://twitter.com/nathansmith
Slides http://slideshare.net/nathansmith/refresh-okc
http://slideshare.net/nathansmith/refresh-okchttp://slideshare.net/nathansmith/refresh-okchttp://twitter.com/nathansmithhttp://twitter.com/nathansmithhttp://sonspring.com/contacthttp://sonspring.com/contact -
8/4/2019 refresh-okc-110419035057-phpapp02
4/102
An important discipline when using any
framework is striving to understand theunderlying language. In other words,
use it as a tool Not a black box.
Before we get started, lets agree: Code is not magic
-
8/4/2019 refresh-okc-110419035057-phpapp02
5/102
http://imdb.com/title/tt1046173
http://imdb.com/title/tt1046173/http://imdb.com/title/tt1046173/http://imdb.com/title/tt1046173/ -
8/4/2019 refresh-okc-110419035057-phpapp02
6/102
Our craft is becoming acommodity and the people in
charge dont care about the
quality of the markup, CSSor how short our JavaScript
is. What matters is how fast
you can get it to market, howmany people it reaches and
how cheaply it can be built.
Christian Heilmann developer evangelist at Mozilla
http://thinkvitamin.com/code/web-development-is-moving-on-are-you
http://thinkvitamin.com/code/web-development-is-moving-on-are-youhttp://thinkvitamin.com/code/web-development-is-moving-on-are-youhttp://thinkvitamin.com/code/web-development-is-moving-on-are-you -
8/4/2019 refresh-okc-110419035057-phpapp02
7/102
Point being, chooseyour battles wisely. In
the time you could
argue the relevance of
naming conventions
like these I just builta 16-column layout.
Matthew Anderson designer at OneHub.com
http://onehub.com/past/2009/5/13/why-we-chose-960gs-css-framework
http://onehub.com/past/2009/5/13/why-we-chose-960gs-css-frameworkhttp://onehub.com/past/2009/5/13/why-we-chose-960gs-css-frameworkhttp://onehub.com/past/2009/5/13/why-we-chose-960gs-css-framework -
8/4/2019 refresh-okc-110419035057-phpapp02
8/102
Truth be told, I dont really care if youuse the 960 Grid System or not.
I tell people who get all emotional over
semantics (ID & classes have none)
that it takes less energy to not use
something than to argue about it.
It also takes considerably more energy to do
research. Being ignorant is blissful and easy!
Allow me to clear up a (potential) misconception...
-
8/4/2019 refresh-okc-110419035057-phpapp02
9/102
Semantics can reside in microformats class names,
because parsers are built to look for them specifically
http://microformats.org
http://microformats.org/http://microformats.org/http://microformats.org/ -
8/4/2019 refresh-okc-110419035057-phpapp02
10/102
The W3Cs Semantic Web doesnt involve CSS
http://www.w3.org/DesignIssues/Semantic.html
http://www.w3.org/DesignIssues/Semantic.htmlhttp://www.w3.org/DesignIssues/Semantic.htmlhttp://www.w3.org/DesignIssues/Semantic.html -
8/4/2019 refresh-okc-110419035057-phpapp02
11/102
CSS gets no at the Semantic Web party
http://www.w3.org/standards/semanticweb
http://www.w3.org/DesignIssues/Semantic.htmlhttp://www.w3.org/DesignIssues/Semantic.htmlhttp://www.w3.org/DesignIssues/Semantic.html -
8/4/2019 refresh-okc-110419035057-phpapp02
12/102
So lets get this straight...
... Exceptin the case of microformats.
-
8/4/2019 refresh-okc-110419035057-phpapp02
13/102
Jeff Crofts Frameworks for Designers article
http://www.alistapart.com/articles/frameworksfordesigners
http://www.alistapart.com/articles/frameworksfordesignershttp://www.alistapart.com/articles/frameworksfordesignershttp://www.alistapart.com/articles/frameworksfordesigners -
8/4/2019 refresh-okc-110419035057-phpapp02
14/102
Jeff Croft was never one to mince words...
http://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks
http://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworkshttp://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworkshttp://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks -
8/4/2019 refresh-okc-110419035057-phpapp02
15/102
Dont be a Luddite (Note: I was with Sass/SCSS)
http://en.wikipedia.org/wiki/Luddite
The Luddites were a social
movement of British textile
artisans in the nineteenth
century who protested
often by destroyingmechanized looms against
the changes produced by
the Industrial Revolution,
which they felt were leaving
them without work and
changing their way of life.
http://en.wikipedia.org/wiki/Ludditehttp://en.wikipedia.org/wiki/Ludditehttp://en.wikipedia.org/wiki/Luddite -
8/4/2019 refresh-okc-110419035057-phpapp02
16/102
Added semantics via role="..." & HTML5 tags
...
...
...
...
http://adactio.com/journal/4267 http://dev.w3.org/html5/html4-differences/#new-elements
http://adactio.com/journal/4267/http://dev.w3.org/html5/html4-differences/#new-elementshttp://dev.w3.org/html5/html4-differences/#new-elementshttp://dev.w3.org/html5/html4-differences/#new-elementshttp://adactio.com/journal/4267/http://adactio.com/journal/4267/ -
8/4/2019 refresh-okc-110419035057-phpapp02
17/102
Added semantics via role="..." & HTML5 tags
...
...
...
...
http://adactio.com/journal/4267 http://dev.w3.org/html5/html4-differences/#new-elements
http://adactio.com/journal/4267/http://dev.w3.org/html5/html4-differences/#new-elementshttp://dev.w3.org/html5/html4-differences/#new-elementshttp://dev.w3.org/html5/html4-differences/#new-elementshttp://adactio.com/journal/4267/http://adactio.com/journal/4267/ -
8/4/2019 refresh-okc-110419035057-phpapp02
18/102
Um, okay, but
why grids?My design skillz are so awesome,
Ive never needed to use grids.
#anyways #whatevs #whocares #sobored
-
8/4/2019 refresh-okc-110419035057-phpapp02
19/102
For design thats really, really, ridiculously good looking
http://en.wikipedia.org/wiki/Zoolander
Also, to do other
things good too.
http://en.wikipedia.org/wiki/Zoolanderhttp://en.wikipedia.org/wiki/Zoolanderhttp://en.wikipedia.org/wiki/Zoolander -
8/4/2019 refresh-okc-110419035057-phpapp02
20/102
The reason I create and use CSS
frameworks is because I hate doing
mundane tasks repeatedly (yawn).
Id rather be working in JavaScript.
FYI: I dont especiallylove CSS.
-
8/4/2019 refresh-okc-110419035057-phpapp02
21/102
Co-author
Tech editor Tech editor
jQueryEnlightenment.com
oreilly.com/catalog/9780596159788
JavaScriptEnlightenment.com
JavaScript books Ive worked on...
All involving Cody Lindley, who has been a JavaScript mentor to me: http://codylindley.com
http://codylindley.com/http://codylindley.com/http://codylindley.com/http://jqueryenlightenment.com/http://jqueryenlightenment.com/http://oreilly.com/catalog/9780596159788http://oreilly.com/catalog/9780596159788http://jqueryenlightenment.com/http://jqueryenlightenment.com/ -
8/4/2019 refresh-okc-110419035057-phpapp02
22/102
There are many dragons
sharing the same public
facade in web development:
ColdFusion, Java, .NET,
Perl, PHP, Ruby, Python...
To render in a browser, it all
has to pass through HTML.
So, I think that front-end
is a good place to be! :)
Front-end is the opposite of a mythological hydra
http://en.wikipedia.org/wiki/Lernaean_Hydra
http://www.flickr.com/photos/meckert75/3732780382/http://www.flickr.com/photos/meckert75/3732780382/http://www.flickr.com/photos/meckert75/3732780382/ -
8/4/2019 refresh-okc-110419035057-phpapp02
23/102
But I digress.Ill forever be known as the 960 guy.But I guess thats not so bad... Right?
#anyways #whatevs #whocares #sobored
-
8/4/2019 refresh-okc-110419035057-phpapp02
24/102
The premise of the system is ideally suited to rapid
prototyping, but it would work equally well when
integrated into a production environment. There
are printable sketch sheets, design templates, and
CSS files that have identical measurements.
Whats this whole 960.gs thing all about?
-
8/4/2019 refresh-okc-110419035057-phpapp02
25/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
26/102
The 960 Grid System is an effort to streamline
web development by providing commonly used
dimensions, based on a width of 960 pixels.
There are two variants: 12 and 16 columns,
which can be used separately or in tandem.
If you like, theres also a 24-column version.
Dogfooding = When you use your own product
NOM, NOM, NOM I use 960 regularly! :)
-
8/4/2019 refresh-okc-110419035057-phpapp02
27/102
The 12-column grid is divided into portions thatare 60 pixels wide. The 16-column grid consists
of 40 pixel increments. Each column has 10
pixels of margin on the left and right, which
create 20 pixel wide gutters between columns.
The 24-column grid is also included. It consists
of columns 30 pixels wide, with 10 pixel gutters,and a 5 pixel buffer on each side of the container.
12, 16, and 24 columns available by default
-
8/4/2019 refresh-okc-110419035057-phpapp02
28/102
Show me
teh codez!
#anyways #whatevs #whocares #sobored
-
8/4/2019 refresh-okc-110419035057-phpapp02
29/102
Typical use case for a 12-column grid
I am 1/3 wide.
I am 1/3 wide.
Me too!
I am 1/2 wide.
I am 1/2 wide.
-
8/4/2019 refresh-okc-110419035057-phpapp02
30/102
Typical use case for a 12-column grid
I am 1/3 wide.
I am 1/3 wide.
Me too!
I am 1/2 wide.
I am 1/2 wide.
N d id & C l
-
8/4/2019 refresh-okc-110419035057-phpapp02
31/102
Nested grids & Column rearrangement
First nested grid.
Middle. No special class.
Last nested grid.
Last in markup, first visually.
N d id l h fi l ( )
-
8/4/2019 refresh-okc-110419035057-phpapp02
32/102
Nested grids: alpha = first, omega = last (per row)
First nested grid.
Middle. No special class.
Last nested grid.
Last in markup, first visually.
C l t (SEO b )
-
8/4/2019 refresh-okc-110419035057-phpapp02
33/102
Column rearrangement (SEOmaybe)
First nested grid.
Middle. No special class.
Last nested grid.
Last in markup, first visually.
-
8/4/2019 refresh-okc-110419035057-phpapp02
34/102
http://960.gs/demo.html
http://960.gs/demo.htmlhttp://960.gs/demo.htmlhttp://960.gs/demo.html -
8/4/2019 refresh-okc-110419035057-phpapp02
35/102
http://960.gs/demo.html
H fi d idth id b t i ?
http://960.gs/demo.htmlhttp://960.gs/demo.htmlhttp://960.gs/demo.html -
8/4/2019 refresh-okc-110419035057-phpapp02
36/102
Have fixed-width grids become too pervasive?
http://twitter.com/jcroft/status/49880667374354433
H fi d idth id b t i ?
http://twitter.com/jcroft/status/49880667374354433http://twitter.com/jcroft/status/49880667374354433http://twitter.com/jcroft/status/49880667374354433 -
8/4/2019 refresh-okc-110419035057-phpapp02
37/102
Have fixed-width grids become too pervasive?
http://twitter.com/nathansmith/status/49882179379015680
Man more possibilities ia grid generators
http://twitter.com/nathansmith/status/49882179379015680http://twitter.com/nathansmith/status/49882179379015680http://twitter.com/nathansmith/status/49882179379015680 -
8/4/2019 refresh-okc-110419035057-phpapp02
38/102
http://grids.heroku.com
Many more possibilities via grid generators
Templates available for your weapon of choice
http://grids.heroku.com/http://grids.heroku.com/http://grids.heroku.com/ -
8/4/2019 refresh-okc-110419035057-phpapp02
39/102
Templates available for your weapon of choice...
Acorn Fireworks Flash
InDesign GIMP Inkscape
Illustrator OmniGraffle Photoshop
QuarkXPress VisioExpression
Design
Adobe Fireworks 960 gs extension (Photoshop too)
http://www.microsoft.com/expression/http://www.microsoft.com/expression/http://www.microsoft.com/expression/http://www.microsoft.com/expression/http://office.microsoft.com/en-us/visio/http://office.microsoft.com/en-us/visio/http://www.quark.com/http://www.quark.com/http://www.adobe.com/products/photoshop.htmlhttp://www.adobe.com/products/photoshop.htmlhttp://www.omnigroup.com/products/omnigraffle/http://www.omnigroup.com/products/omnigraffle/http://www.adobe.com/products/illustrator.htmlhttp://www.adobe.com/products/illustrator.htmlhttp://inkscape.org/http://inkscape.org/http://www.gimp.org/http://www.gimp.org/http://www.adobe.com/products/indesign.htmlhttp://www.adobe.com/products/indesign.htmlhttp://www.adobe.com/products/flash.htmlhttp://www.adobe.com/products/flash.htmlhttp://www.adobe.com/products/fireworks.htmlhttp://www.adobe.com/products/fireworks.htmlhttp://flyingmeat.com/acorn/http://flyingmeat.com/acorn/ -
8/4/2019 refresh-okc-110419035057-phpapp02
40/102
Adobe Fireworks 960.gs extension (Photoshop too)
Grids can accelerate progress while maintaining order
-
8/4/2019 refresh-okc-110419035057-phpapp02
41/102
Grids can accelerate progress while maintaining order
http://www.flickr.com/photos/meckert75/3732780382
Michael Phelps following a painted line at the bottom
http://www.flickr.com/photos/meckert75/3732780382http://www.flickr.com/photos/meckert75/3732780382http://www.flickr.com/photos/meckert75/3732780382 -
8/4/2019 refresh-okc-110419035057-phpapp02
42/102
Michael Phelps following a painted line at the bottom
of a pool doesnt make him a less talented swimmer.
http://livinggallery.oneindia.in/main.php?g2_itemId=32903
http://livinggallery.oneindia.in/main.php?g2_itemId=32903http://livinggallery.oneindia.in/main.php?g2_itemId=32903http://livinggallery.oneindia.in/main.php?g2_itemId=32903 -
8/4/2019 refresh-okc-110419035057-phpapp02
43/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
44/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
45/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
46/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
47/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
48/102
Our best practices are killing us Nicole Sullivan
-
8/4/2019 refresh-okc-110419035057-phpapp02
49/102
Our best practices are killing us Nicole Sullivan
http://www.slideshare.net/stubbornella/our-best-practices-are-killing-us
Three best practice myths...
1. Dont add any extra elements2. Dont add classes
3. Use descendent selectors exclusively
Our best practices are killing us Nicole Sullivan
http://www.slideshare.net/stubbornella/our-best-practices-are-killing-ushttp://www.slideshare.net/stubbornella/our-best-practices-are-killing-ushttp://www.slideshare.net/stubbornella/our-best-practices-are-killing-us -
8/4/2019 refresh-okc-110419035057-phpapp02
50/102
Our best practices are killing us Nicole Sullivan
http://www.slideshare.net/stubbornella/our-best-practices-are-killing-us
Three best practice myths...
1. Dont add any extra elements2. Dont add classes
3. Use descendent selectors exclusively
Take all rules in development with a grain of salt
http://www.slideshare.net/stubbornella/our-best-practices-are-killing-ushttp://www.slideshare.net/stubbornella/our-best-practices-are-killing-ushttp://www.slideshare.net/stubbornella/our-best-practices-are-killing-us -
8/4/2019 refresh-okc-110419035057-phpapp02
51/102
Take all rules in development with a grain of salt
Sensibly revised...
1. Add extra elements sparingly2. Add classes thoughtfully
3. Avoid descendent selector kludge...
How would you style these links?
-
8/4/2019 refresh-okc-110419035057-phpapp02
52/102
How would you style these links?
Home
About
Use only the selectors that are necessary.
-
8/4/2019 refresh-okc-110419035057-phpapp02
53/102
Use onlythe selectors that are necessary.
.menu a {/* Terse = Get er done! */
}
ul.menu li a {
/* Too heavy = Overkill. */
}
Still true: Smart CSS aint always sexy CSS
-
8/4/2019 refresh-okc-110419035057-phpapp02
54/102
http://www.digital-web.com/articles/smart_CSS_aint_always_sexy_CSS
Still true: Smart CSS ain t always sexy CSS
Inspiration: Khoi Vinn
http://www.digital-web.com/articles/smart_CSS_aint_always_sexy_CSShttp://www.digital-web.com/articles/smart_CSS_aint_always_sexy_CSShttp://www.digital-web.com/articles/smart_CSS_aint_always_sexy_CSS -
8/4/2019 refresh-okc-110419035057-phpapp02
55/102
Inspiration: Khoi Vinn
http://www.subtraction.com/2004/12/31/grid-computi
Inspiration: Cameron Moll
http://www.subtraction.com/2004/12/31/grid-computihttp://www.subtraction.com/2004/12/31/grid-computihttp://www.subtraction.com/2004/12/31/grid-computi -
8/4/2019 refresh-okc-110419035057-phpapp02
56/102
http://www.cameronmoll.com/archives/2006/12/gridding_the_960
Inspiration: Cameron Moll
Inspiration: Cameron Moll
http://www.cameronmoll.com/archives/2006/12/gridding_the_960http://www.cameronmoll.com/archives/2006/12/gridding_the_960http://www.cameronmoll.com/archives/2006/12/gridding_the_960 -
8/4/2019 refresh-okc-110419035057-phpapp02
57/102
http://www.cameronmoll.com/archives/2006/12/gridding_the_960
Inspiration: Cameron Moll
Inspiration: Olav Bjrky
http://www.cameronmoll.com/archives/2006/12/gridding_the_960http://www.cameronmoll.com/archives/2006/12/gridding_the_960http://www.cameronmoll.com/archives/2006/12/gridding_the_960 -
8/4/2019 refresh-okc-110419035057-phpapp02
58/102
p j y
http://bjorkoy.com/2007/08/launch-blueprint-a-css-framework
Inspiration: Brandon Schauer
http://bjorkoy.com/2007/08/launch-blueprint-a-css-frameworkhttp://bjorkoy.com/2007/08/launch-blueprint-a-css-frameworkhttp://bjorkoy.com/2007/08/launch-blueprint-a-css-framework -
8/4/2019 refresh-okc-110419035057-phpapp02
59/102
http://www.adaptivepath.com/ideas/e000863
p
http://www.adaptivepath.com/ideas/e000863http://www.adaptivepath.com/ideas/e000863http://www.adaptivepath.com/ideas/e000863 -
8/4/2019 refresh-okc-110419035057-phpapp02
60/102
http://www.adaptivepath.com/ideas/e000863
Inspiration: Mark Boulton
http://www.adaptivepath.com/ideas/e000863http://www.adaptivepath.com/ideas/e000863http://www.adaptivepath.com/ideas/e000863 -
8/4/2019 refresh-okc-110419035057-phpapp02
61/102
http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-part-1
p
Frameworks are kind of like sheet music. They are
http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-part-1http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-part-1http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-part-1 -
8/4/2019 refresh-okc-110419035057-phpapp02
62/102
y
organized, and can keep teams on the same page.
http://www.flickr.com/photos/avlxyz/3280803912
http://www.flickr.com/photos/avlxyz/3280803912http://www.flickr.com/photos/avlxyz/3280803912http://www.flickr.com/photos/avlxyz/3280803912 -
8/4/2019 refresh-okc-110419035057-phpapp02
63/102
Like jazz, responsive design is contextual.
No two approaches are exactlythe same.
Responsive Web Design - using @media queries
-
8/4/2019 refresh-okc-110419035057-phpapp02
64/102
p g g q
http://www.alistapart.com/articles/responsive-web-design
Hicksdesign.co.uk = Beautiful responsive web design
http://www.alistapart.com/articles/responsive-web-design/http://www.alistapart.com/articles/responsive-web-design/http://www.alistapart.com/articles/responsive-web-design/ -
8/4/2019 refresh-okc-110419035057-phpapp02
65/102
http://hicksdesign.co.uk
Media queries for mobile arent a magic bullet
http://hicksdesign.co.uk/http://hicksdesign.co.uk/http://hicksdesign.co.uk/ -
8/4/2019 refresh-okc-110419035057-phpapp02
66/102
http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold
LifeChurch.tv - Separate site for mobile & desktop
http://www.cloudfour.com/css-media-query-for-mobile-is-fools-goldhttp://www.cloudfour.com/css-media-query-for-mobile-is-fools-goldhttp://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold -
8/4/2019 refresh-okc-110419035057-phpapp02
67/102
http://m.lifechurch.tv http://www.lifechurch.tv
Percentage-based grid, screenshot in Firefox 4.0
http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/http://www.lifechurch.tv/http://www.lifechurch.tv/http://www.lifechurch.tv/http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ -
8/4/2019 refresh-okc-110419035057-phpapp02
68/102
310px
150px
http://host.sonspring.com/yui3_grid
Percentage-based grid, screenshot in Chrome 10.0
http://host.sonspring.com/yui3_gridhttp://host.sonspring.com/yui3_grid -
8/4/2019 refresh-okc-110419035057-phpapp02
69/102
309px
149px
http://host.sonspring.com/yui3_grid
960s 24 column grid = Exact multiples of 10
http://host.sonspring.com/yui3_gridhttp://host.sonspring.com/yui3_grid -
8/4/2019 refresh-okc-110419035057-phpapp02
70/102
http://960.gs/demo_24_col.html
Whither: Grid framework or Responsive design?
http://960.gs/demo_24_col.htmlhttp://960.gs/demo_24_col.htmlhttp://960.gs/demo_24_col.html -
8/4/2019 refresh-okc-110419035057-phpapp02
71/102
Doing a fixed-width design using a grid framework is
relatively easy. Whereas, doing a responsive designthat looks solid at every resolution is multivariate and
there is not (yet) an automated, foolproof solution.
Pet peeve: Use tomorrows technology, today!
-
8/4/2019 refresh-okc-110419035057-phpapp02
72/102
The mere fact were even able to use ittodaymakes it todays technology.
As designers and developers, its easy toget so caught up in wanting to use the
latest and greatest (to a fault) that we
forget to try and tackle present-day
problems with proven technologies.
Where media queries fall short, JavaScript shines
-
8/4/2019 refresh-okc-110419035057-phpapp02
73/102
http://twitter.com/igorskee/status/52152273178079232
Smart JS hackers = Context-aware image sizing
http://twitter.com/igorskee/status/52152273178079232http://twitter.com/igorskee/status/52152273178079232http://twitter.com/igorskee/status/52152273178079232 -
8/4/2019 refresh-okc-110419035057-phpapp02
74/102
http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing
Symphony + Jazz = Crazy ~ Like playing jazz flute
http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizinghttp://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizinghttp://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing -
8/4/2019 refresh-okc-110419035057-phpapp02
75/102
http://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundy
Adapt.js - Serve 960s (or any) CSS dynamically
http://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundyhttp://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundyhttp://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundy -
8/4/2019 refresh-okc-110419035057-phpapp02
76/102
http://adapt.960.gs
Note: Not an endorsement, just a Twitter link...
http://adapt.960.gs/http://adapt.960.gs/http://adapt.960.gs/ -
8/4/2019 refresh-okc-110419035057-phpapp02
77/102
http://twitter.com/zeldman/status/59432011693166592
For what its worth, alotof people linked to it...
http://twitter.com/zeldman/status/59432011693166592http://twitter.com/zeldman/status/59432011693166592http://twitter.com/zeldman/status/59432011693166592 -
8/4/2019 refresh-okc-110419035057-phpapp02
78/102
How to use Adapt.js = A human-readable config
-
8/4/2019 refresh-okc-110419035057-phpapp02
79/102
// Edit to suit your needs.
var ADAPT_CONFIG = {
// Where is your CSS?
path: 'assets/css/',
// false = Only run once, when page first loads.
// true = Change on window resize and page tilt.
dynamic: true,
// Optional callback... myCallback(i, width)
callback: myCallback,
// First range entry is the minimum.
// Last range entry is the maximum.
// Separate ranges by "to" keyword.
range: [
'0px to 760px = mobile.css',
'760px to 980px = 720.css',
'980px to 1280px = 960.css','1280px to 1600px = 1200.css',
'1600px to 1920px = 1560.css',
'1920px = fluid.css'
]
};
How to use Adapt.js = A human-readable config
-
8/4/2019 refresh-okc-110419035057-phpapp02
80/102
// Edit to suit your needs.
var ADAPT_CONFIG = {
// Where is your CSS?
path:'assets/css/',
// false = Only run once, when page first loads.
// true = Change on window resize and page tilt.
dynamic:true,
// Optional callback... myCallback(i, width)
callback:myCallback,
// First range entry is the minimum.
// Last range entry is the maximum.
// Separate ranges by "to" keyword.
range: [
'0px to 760px = mobile.css',
'760px to 980px = 720.css',
'980px to 1280px = 960.css', '1280px to 1600px = 1200.css',
'1600px to 1920px = 1560.css',
'1920px = fluid.css'
]
};
What about adding JavaScript page-weight?
-
8/4/2019 refresh-okc-110419035057-phpapp02
81/102
845 bytesMinified, Adapt.js is less than 1 KB.
(Allow me to put into perspective)
60 40 pixel JPG @ 70% quality = 908 bytes
-
8/4/2019 refresh-okc-110419035057-phpapp02
82/102
My son, figuring out that the wind can spin pinwheels
908 bytes
http://www.flickr.com/photos/nathansmith/5625332824
Or, as my dad used to tell me as a kid...
http://www.flickr.com/photos/nathansmith/5625332824http://www.flickr.com/photos/nathansmith/5625332824http://www.flickr.com/photos/nathansmith/5625332824http://www.flickr.com/photos/nathansmith/5625332824 -
8/4/2019 refresh-okc-110419035057-phpapp02
83/102
Dont worry about problems
smaller than a gnats backside.
Note: If the extra HTTP request for JS is a
concern, the file size is small enough to just
include inline in the documents .
Not to go all Ron Burgundy on you, but...
-
8/4/2019 refresh-okc-110419035057-phpapp02
84/102
Kind of a [small] deal
I didnt set out to write a
terse snippet of JavaScript.
Thats just how easy theproblem was to solve.
Seriously though, consider
what will be best for yourproject. Nothing is a magic
bullet. Code is just code.
http://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundy
To reiterate: I dont care if you use 960.gs or Adapt.js
http://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundyhttp://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundyhttp://en.wikipedia.org/wiki/Anchorman:_The_Legend_of_Ron_Burgundy -
8/4/2019 refresh-okc-110419035057-phpapp02
85/102
In fact, heres a slew of alternativesyou might like better. You should
explore every option, and choose
one that makes sense to you.
Or, if nothing seems like a good fit,
Id encourage you to create one!
Sencha Touch
-
8/4/2019 refresh-okc-110419035057-phpapp02
86/102
http://sencha.com/touch
Dojo Mobile
http://sencha.com/touchhttp://sencha.com/touchhttp://sencha.com/touch -
8/4/2019 refresh-okc-110419035057-phpapp02
87/102
http://dojotoolkit.org/features/mobile
jQuery Mobile
http://dojotoolkit.org/features/mobilehttp://dojotoolkit.org/features/mobilehttp://dojotoolkit.org/features/mobile -
8/4/2019 refresh-okc-110419035057-phpapp02
88/102
http://jquerymobile.com
http://jeromeetienne.github.com/jquery-mobile-960
http://jquerymobile.com/http://jquerymobile.com/http://jquerymobile.com/http://jeromeetienne.github.com/jquery-mobile-960/http://jeromeetienne.github.com/jquery-mobile-960/ -
8/4/2019 refresh-okc-110419035057-phpapp02
89/102
-
8/4/2019 refresh-okc-110419035057-phpapp02
90/102
HTML5 Boilerplate - Mobile
-
8/4/2019 refresh-okc-110419035057-phpapp02
91/102
http://html5boilerplate.com/mobile
Less Framework 4
http://html5boilerplate.com/mobilehttp://html5boilerplate.com/mobilehttp://html5boilerplate.com/mobile -
8/4/2019 refresh-okc-110419035057-phpapp02
92/102
http://lessframework.com
1140 CSS Grid
http://lessframework.com/http://lessframework.com/http://lessframework.com/ -
8/4/2019 refresh-okc-110419035057-phpapp02
93/102
http://cssgrid.net
The Square Grid
http://cssgrid.net/http://cssgrid.net/http://cssgrid.net/ -
8/4/2019 refresh-okc-110419035057-phpapp02
94/102
http://thesquaregrid.com
Respond.js - Parses CSS3 @media queries
http://thesquaregrid.com/http://thesquaregrid.com/http://thesquaregrid.com/ -
8/4/2019 refresh-okc-110419035057-phpapp02
95/102
https://github.com/scottjehl/Respond
https://github.com/scottjehl/Respondhttps://github.com/scottjehl/Respondhttps://github.com/scottjehl/Respond -
8/4/2019 refresh-okc-110419035057-phpapp02
96/102
And the list
goes on...But you get the point. There are plenty
of options out there to choose from.
(I just want to mention two more things)
Forms = Quite possibly, the worst part of web design
-
8/4/2019 refresh-okc-110419035057-phpapp02
97/102
To prevent developers from
wasting countless hours on
styling dumb form elements
Note: I wasted countless hours styling dumb form elements, so you dont have to!
Its been awhile in the making...
-
8/4/2019 refresh-okc-110419035057-phpapp02
98/102
Future plans include a tutorial on howto use jQuery to add styling hooks to
form elements, since I know from
experience that is no cup of tea.
Source = Me when announcing 960.gsin 2008!
Excuse = New HTML5 elements set me back :)
http://sonspring.com/journal/960-grid-system
I finally distilled my approach to forms
http://sonspring.com/journal/960-grid-systemhttp://sonspring.com/journal/960-grid-systemhttp://sonspring.com/journal/960-grid-systemhttp://960.gs/http://960.gs/http://sonspring.com/journal/960-grid-systemhttp://sonspring.com/journal/960-grid-system -
8/4/2019 refresh-okc-110419035057-phpapp02
99/102
http://formalize.me
http://formalize.me/http://formalize.me/http://formalize.me/ -
8/4/2019 refresh-okc-110419035057-phpapp02
100/102
Our team at HP uses Sass to expedite writing CSS
-
8/4/2019 refresh-okc-110419035057-phpapp02
101/102
http://sass-lang.org
I didnt think I would like Sass, but I do. Oh, and
if youre going to use Sass, use Sass, not SCSS.
Questions? Comments? Hate mail? :)
http://sass-lang.org/http://sass-lang.org/http://sass-lang.org/ -
8/4/2019 refresh-okc-110419035057-phpapp02
102/102
Email http://sonspring.com/contact
Twitter http://twitter.com/nathansmith
Slides http://slideshare.net/nathansmith/refresh-okc
http://slideshare.net/nathansmith/refresh-okchttp://slideshare.net/nathansmith/refresh-okchttp://twitter.com/nathansmithhttp://twitter.com/nathansmithhttp://sonspring.com/contacthttp://sonspring.com/contact