SlideShare a Scribd company logo
HOW TO DEVELOP A CSS FRAMEWORK
                                             By Olivier Besson




HOW TO DEVELOP
A CSS FRAMEWORK
By Olivier Besson - 2011
HOW TO DEVELOP A CSS FRAMEWORK
                                                            By Olivier Besson




OUTLINE

The goal here is to present step by step how to develop easily
your own CSS framework. I deliver here my own experience
witch is to reduce time to integrate a web design in an
environment already providing is own CSS like Wordpress,
Tapestry,…

Our objectives
 • Easily reusable
 • Short source code
 • Increase productivity
 • Decrease bugs
HOW TO DEVELOP A CSS FRAMEWORK
                                                               By Olivier Besson




RULES

Your CSS must be non intrusive
 • Use class instead of id’s ( #id  .class)
 • Reserved a very few number of Id’s and exclusivly for layout


Stay with a generic template and layout
 • No complete cascading style (.Table .Line .Cell .Link)
 • Think about version upgrades conflicts
 • Let your CSS framework be able to integrate new components
 • Use a comprehensive semantic
HOW TO DEVELOP A CSS FRAMEWORK
                                                         By Olivier Besson




FRAMEWORK FILES
@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");

@import url("ui_components.css");

@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                    By Olivier Besson



FRAMEWORK FILES
1. Layout

The first step is to think about your principal layout. This file will be
the only one with id’s in. Web 3.0 semantic can help you (header,
footer,…).

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                By Olivier Besson



FRAMEWORK FILES
1. Layout

Try to describe your principal layout : columns, sidebars, …
HOW TO DEVELOP A CSS FRAMEWORK
                  By Olivier Besson
HOW TO DEVELOP A CSS FRAMEWORK
                                                                By Olivier Besson



FRAMEWORK FILES
1. Layout

Discuss with product owner if your web application will have specific
functionalities. Here I used 14 id’s, for main containers and
functionalities already identifyed.
  •   #container
        • #header
         • #user
         • #sections
        • #navigation
         • #nav-context
         • #nav-menu
        • #content
         • #breadcrumbs
         • #content-title
         • #context
         • #filter
         • #synthesis
         • #content-main
HOW TO DEVELOP A CSS FRAMEWORK
                                                                              By Olivier Besson



FRAMEWORK FILES
1. Layout

You can also use zoning and eye tracking research to identify how to
place your layout.

Percentage of user wich have seen the zone one time   Eyetracking on our layout




 Study by Ipsos Media with 3000 users on
 100 differents websites
HOW TO DEVELOP A CSS FRAMEWORK
                                                                 By Olivier Besson



FRAMEWORK FILES
2. Grid & Unit

The second step is to define your grid unit system. This will help you
to realize your prototypes. With the grid you think in proportion and
with the unit you think in pixels.

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                   By Olivier Besson



FRAMEWORK FILES
2. Grid & Unit

Unit are fixed by the result of your resolution users statistics.




According to those statistics we will use a 960*600 grid system.
HOW TO DEVELOP A CSS FRAMEWORK
                            By Olivier Besson




UNIT-GRID : full layout
HOW TO DEVELOP A CSS FRAMEWORK
                           By Olivier Besson




UNIT-GRID : #content
HOW TO DEVELOP A CSS FRAMEWORK
                                                                By Olivier Besson




FRAMEWORK FILES
2. Grid & Unit

With your units you can precise min-width or fixed contents.
HOW TO DEVELOP A CSS FRAMEWORK
                                                                        By Olivier Besson




FRAMEWORK FILES
2. Grid & Unit

For the Grid I used the Yahoo Grid system wich provide all
proportions I need for my content.
http://yuilibrary.com/yui/docs/cssgrids/
 .yui3-u-1                .yui3-u-1-6      .yui3-u-1-24
 .yui3-u-1-2              .yui3-u-5-6      .yui3-u-5-24
 .yui3-u-1-3              .yui3-u-1-8      .yui3-u-7-24
 .yui3-u-2-3              .yui3-u-3-8      .yui3-u-11-24
 .yui3-u-1-4              .yui3-u-5-8      .yui3-u-13-24
 .yui3-u-3-4              .yui3-u-7-8      .yui3-u-17-24
 .yui3-u-1-5              .yui3-u-1-12     .yui3-u-19-24
 .yui3-u-2-5              .yui3-u-5-12     .yui3-u-23-24
 .yui3-u-3-5              .yui3-u-7-12
 .yui3-u-4-5              .yui3-u-11-12
HOW TO DEVELOP A CSS FRAMEWORK
                                                                          By Olivier Besson




http://yuilibrary.com/yui/docs/cssgrids/cssgrids-units-example.html
HOW TO DEVELOP A CSS FRAMEWORK
                                                                       By Olivier Besson



FRAMEWORK FILES
3. Reset

The third step is to prevent your design of navigators differents. The
best solution is to reset all pre-design associated to html tags.
I used this one:
http://meyerweb.com/eric/tools/css/reset/reset.css


@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                 By Olivier Besson



FRAMEWORK FILES
4. Typography

The fourth step is to describe basic colors and size of content html
tags sucha as H1, P, Legend,…

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                By Olivier Besson



FRAMEWORK FILES
5. Forms & Tables

The fifth step is to define html tags specific for forms and tables.
Remember, be generic, you will be more specific if a component use
a form and do not match really with your generic CSS.

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                   By Olivier Besson



FRAMEWORK FILES
6. Generic classes

In this file you create all basic design tips you will need. This file is
generally increased during the project when a css line become used
by many elements

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                                    By Olivier Besson




Ui_generic.css
.centered {              .content {
   margin-right: auto;     margin-left: 10px;
   margin-left: auto;      margin-right: 10px;
}                        }
.alright{                .content-height {
   text-align:right;       margin-top: 10px;
}                          margin-bottom: 10px;
.alleft{                 }
   text-align:left;      .content-right {
}                          margin-left: 10px;
.hidden {                }
   height: 1px;          .content-left {
   left: -9999px;          margin-right: 10px;
   overflow: hidden;     }
   position: absolute;   .content-text {
   top: 0;                 padding:6px;
   width: 1px;           }
}                        .content-last {
                           margin-right: 0;
                         }
                         .content-top {
                           margin-bottom: 6px;
                         }
HOW TO DEVELOP A CSS FRAMEWORK
                                                                 By Olivier Besson



FRAMEWORK FILES
7. Components

This is the last important step, this css file describe basic component
of web interfaces, such as buttons, warnings…
You can also describe Html5 components.

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                   By Olivier Besson




Ui_component.css

Navigator components :
•Buttons
                 Button    Box                 Layer
•Box
•Layers

Web framework component:

•Error

•Flash message
HOW TO DEVELOP A CSS FRAMEWORK
                                                                By Olivier Besson



FRAMEWORK FILES
8. Default theme

The final step is to define default backgrounds and images of your
elements. It’s like to add a skin on a 3D model.
Then you concentrate in this file all colors and images.

@import url("ui_reset.css");
@import url("ui_typo.css");
@import url("ui_grid.css");
@import url("ui_unit.css");
@import url("ui_layout.css");
@import url("ui_form.css");
@import url("ui_table.css");
@import url("ui_generic.css");
@import url("ui_components.css");
@import url("ui_theme_default.css");
HOW TO DEVELOP A CSS FRAMEWORK
                                                    By Olivier Besson




                 Thank you


        A full exemple is accessible here :
http://www.motsdimages.com/framework/layout.html
Ad

More Related Content

What's hot (14)

Be nice to your designers
Be nice to your designersBe nice to your designers
Be nice to your designers
Pai-Cheng Tao
 
Modular HTML & CSS Workshop
Modular HTML & CSS WorkshopModular HTML & CSS Workshop
Modular HTML & CSS Workshop
Shay Howe
 
Modular HTML & CSS Turbo Workshop
Modular HTML & CSS Turbo WorkshopModular HTML & CSS Turbo Workshop
Modular HTML & CSS Turbo Workshop
Shay Howe
 
Css3
Css3Css3
Css3
Bronson Quick
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and Tricks
Gautam Krishnan
 
WordCamp Raleigh 2018 - Beginner's Guide to Wordpress
WordCamp Raleigh 2018 - Beginner's Guide to WordpressWordCamp Raleigh 2018 - Beginner's Guide to Wordpress
WordCamp Raleigh 2018 - Beginner's Guide to Wordpress
Convinsys
 
実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニック実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニック
Youji Sakai
 
Lightning fast sass
Lightning fast sassLightning fast sass
Lightning fast sass
chriseppstein
 
[heweb11] HTML5 Makeover
[heweb11] HTML5 Makeover[heweb11] HTML5 Makeover
[heweb11] HTML5 Makeover
Christopher Schmitt
 
Making Your Own CSS Framework
Making Your Own CSS FrameworkMaking Your Own CSS Framework
Making Your Own CSS Framework
Dan Sagisser
 
[edUi] HTML5 Workshop
[edUi] HTML5 Workshop[edUi] HTML5 Workshop
[edUi] HTML5 Workshop
Christopher Schmitt
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
Vitaly Friedman
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
Zoe Gillenwater
 
Be nice to your designers
Be nice to your designersBe nice to your designers
Be nice to your designers
Pai-Cheng Tao
 
Modular HTML & CSS Workshop
Modular HTML & CSS WorkshopModular HTML & CSS Workshop
Modular HTML & CSS Workshop
Shay Howe
 
Modular HTML & CSS Turbo Workshop
Modular HTML & CSS Turbo WorkshopModular HTML & CSS Turbo Workshop
Modular HTML & CSS Turbo Workshop
Shay Howe
 
Responsive Web Design: Tips and Tricks
Responsive Web Design: Tips and TricksResponsive Web Design: Tips and Tricks
Responsive Web Design: Tips and Tricks
Gautam Krishnan
 
WordCamp Raleigh 2018 - Beginner's Guide to Wordpress
WordCamp Raleigh 2018 - Beginner's Guide to WordpressWordCamp Raleigh 2018 - Beginner's Guide to Wordpress
WordCamp Raleigh 2018 - Beginner's Guide to Wordpress
Convinsys
 
実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニック実践!CSSデザインの「型」でみる視覚表現テクニック
実践!CSSデザインの「型」でみる視覚表現テクニック
Youji Sakai
 
Making Your Own CSS Framework
Making Your Own CSS FrameworkMaking Your Own CSS Framework
Making Your Own CSS Framework
Dan Sagisser
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
Vitaly Friedman
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
Zoe Gillenwater
 

Viewers also liked (18)

Fundraiser
FundraiserFundraiser
Fundraiser
yeseniamenendez
 
Css framework
Css frameworkCss framework
Css framework
Olivier Besson
 
21 hepatopatia-alcoholica
21 hepatopatia-alcoholica21 hepatopatia-alcoholica
21 hepatopatia-alcoholica
Tania Ramirez
 
TC Capstone Portfolio
TC Capstone PortfolioTC Capstone Portfolio
TC Capstone Portfolio
AnneBerryman
 
Social commerce 거울의 단면
Social commerce 거울의 단면Social commerce 거울의 단면
Social commerce 거울의 단면
Kyeongtae Kyeongtae
 
Mediate Africa Dispute Resolution Services (Pty) Ltd
Mediate Africa Dispute Resolution Services (Pty) LtdMediate Africa Dispute Resolution Services (Pty) Ltd
Mediate Africa Dispute Resolution Services (Pty) Ltd
Antoinette Sienna Raw
 
Don quijote de la mancha 2016
Don quijote de la mancha 2016Don quijote de la mancha 2016
Don quijote de la mancha 2016
Ivannia Campos
 
Grade 9 week without walls
Grade 9 week without wallsGrade 9 week without walls
Grade 9 week without walls
Keckerle
 
Why SEO? For the non expert.
Why SEO? For the non expert.Why SEO? For the non expert.
Why SEO? For the non expert.
xsdesigns
 
TC Capstone
TC CapstoneTC Capstone
TC Capstone
AnneBerryman
 
creatividad y biografía
creatividad y biografíacreatividad y biografía
creatividad y biografía
TukanPRO
 
Employee wellbeing risk management programme
Employee wellbeing risk management programmeEmployee wellbeing risk management programme
Employee wellbeing risk management programme
Antoinette Sienna Raw
 
Treball c.medi (Rius)
Treball c.medi (Rius)Treball c.medi (Rius)
Treball c.medi (Rius)
JENNI987
 
Culture on kvarner festivals and manifestations
Culture on kvarner   festivals and manifestationsCulture on kvarner   festivals and manifestations
Culture on kvarner festivals and manifestations
melita23
 
Oldest croatian picture postcards
Oldest croatian picture postcardsOldest croatian picture postcards
Oldest croatian picture postcards
melita23
 
The miracle of snowflakes
The miracle of snowflakesThe miracle of snowflakes
The miracle of snowflakes
melita23
 
Our school is an eco school croatia2
Our school is an eco school croatia2Our school is an eco school croatia2
Our school is an eco school croatia2
melita23
 
đề Thi học sinh giỏi toán lop 6
đề Thi học sinh giỏi toán lop 6đề Thi học sinh giỏi toán lop 6
đề Thi học sinh giỏi toán lop 6
Nguyễn Hưng
 
21 hepatopatia-alcoholica
21 hepatopatia-alcoholica21 hepatopatia-alcoholica
21 hepatopatia-alcoholica
Tania Ramirez
 
TC Capstone Portfolio
TC Capstone PortfolioTC Capstone Portfolio
TC Capstone Portfolio
AnneBerryman
 
Social commerce 거울의 단면
Social commerce 거울의 단면Social commerce 거울의 단면
Social commerce 거울의 단면
Kyeongtae Kyeongtae
 
Mediate Africa Dispute Resolution Services (Pty) Ltd
Mediate Africa Dispute Resolution Services (Pty) LtdMediate Africa Dispute Resolution Services (Pty) Ltd
Mediate Africa Dispute Resolution Services (Pty) Ltd
Antoinette Sienna Raw
 
Don quijote de la mancha 2016
Don quijote de la mancha 2016Don quijote de la mancha 2016
Don quijote de la mancha 2016
Ivannia Campos
 
Grade 9 week without walls
Grade 9 week without wallsGrade 9 week without walls
Grade 9 week without walls
Keckerle
 
Why SEO? For the non expert.
Why SEO? For the non expert.Why SEO? For the non expert.
Why SEO? For the non expert.
xsdesigns
 
creatividad y biografía
creatividad y biografíacreatividad y biografía
creatividad y biografía
TukanPRO
 
Employee wellbeing risk management programme
Employee wellbeing risk management programmeEmployee wellbeing risk management programme
Employee wellbeing risk management programme
Antoinette Sienna Raw
 
Treball c.medi (Rius)
Treball c.medi (Rius)Treball c.medi (Rius)
Treball c.medi (Rius)
JENNI987
 
Culture on kvarner festivals and manifestations
Culture on kvarner   festivals and manifestationsCulture on kvarner   festivals and manifestations
Culture on kvarner festivals and manifestations
melita23
 
Oldest croatian picture postcards
Oldest croatian picture postcardsOldest croatian picture postcards
Oldest croatian picture postcards
melita23
 
The miracle of snowflakes
The miracle of snowflakesThe miracle of snowflakes
The miracle of snowflakes
melita23
 
Our school is an eco school croatia2
Our school is an eco school croatia2Our school is an eco school croatia2
Our school is an eco school croatia2
melita23
 
đề Thi học sinh giỏi toán lop 6
đề Thi học sinh giỏi toán lop 6đề Thi học sinh giỏi toán lop 6
đề Thi học sinh giỏi toán lop 6
Nguyễn Hưng
 
Ad

Similar to Css framework (20)

CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & Post
Anton Dosov
 
Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen Grids
Suzanne Dergacheva
 
WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structure
keithdevon
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Erin M. Kidwell
 
CSS3
CSS3CSS3
CSS3
Chathuranga Jayanath
 
Get Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdfGet Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdf
RonDosh
 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
Eric Carlisle
 
Roadmap 01
Roadmap 01Roadmap 01
Roadmap 01
quangnv17071980
 
WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?
Alexandr Skachkov
 
Css
CssCss
Css
Sumit Gupta
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
Aidan Foster
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
Marco Pinheiro
 
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
Stefan Bauer
 
[Bauer] SASSy web parts with SPFX
[Bauer] SASSy web parts with SPFX[Bauer] SASSy web parts with SPFX
[Bauer] SASSy web parts with SPFX
European Collaboration Summit
 
Create SASSy web parts in SPFx
Create SASSy web parts in SPFxCreate SASSy web parts in SPFx
Create SASSy web parts in SPFx
Stefan Bauer
 
Building Performance - ein Frontend-Build-Prozess für Java mit Maven
Building Performance - ein Frontend-Build-Prozess für Java mit MavenBuilding Performance - ein Frontend-Build-Prozess für Java mit Maven
Building Performance - ein Frontend-Build-Prozess für Java mit Maven
Oliver Ochs
 
slides-students-C04.pdf
slides-students-C04.pdfslides-students-C04.pdf
slides-students-C04.pdf
MonkeyDLuffy708724
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
Michael Enslow
 
Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors. Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors.
The University of Akron
 
CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & Post
Anton Dosov
 
Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen Grids
Suzanne Dergacheva
 
WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structure
keithdevon
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Erin M. Kidwell
 
Get Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdfGet Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdf
RonDosh
 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
Eric Carlisle
 
WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?WebAssembly in Houdini CSS, is it possible?
WebAssembly in Houdini CSS, is it possible?
Alexandr Skachkov
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
Aidan Foster
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
Marco Pinheiro
 
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
SPS Oslo - Stop your SharePoint CSS becoming a di-sass-ter today!
Stefan Bauer
 
Create SASSy web parts in SPFx
Create SASSy web parts in SPFxCreate SASSy web parts in SPFx
Create SASSy web parts in SPFx
Stefan Bauer
 
Building Performance - ein Frontend-Build-Prozess für Java mit Maven
Building Performance - ein Frontend-Build-Prozess für Java mit MavenBuilding Performance - ein Frontend-Build-Prozess für Java mit Maven
Building Performance - ein Frontend-Build-Prozess für Java mit Maven
Oliver Ochs
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
Michael Enslow
 
Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors. Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors.
The University of Akron
 
Ad

Recently uploaded (20)

PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptxPPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
rachmatunnisa29
 
DOC-20250121-WA0008._20250121_105938_0000.pptx
DOC-20250121-WA0008._20250121_105938_0000.pptxDOC-20250121-WA0008._20250121_105938_0000.pptx
DOC-20250121-WA0008._20250121_105938_0000.pptx
laugolac31
 
Naan mudalvan assignment for students_064143.pptx
Naan mudalvan assignment for  students_064143.pptxNaan mudalvan assignment for  students_064143.pptx
Naan mudalvan assignment for students_064143.pptx
NaziaFarheen13
 
STOCK ANALYSYS.pptx manajemen keuangan s
STOCK ANALYSYS.pptx manajemen keuangan sSTOCK ANALYSYS.pptx manajemen keuangan s
STOCK ANALYSYS.pptx manajemen keuangan s
kfdpontianak2012
 
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptx
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptxHalstead’s_Software_Science_&_Putnam’s_Model[1].pptx
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptx
prachiikumarii1
 
325295919-AAC-Blocks-Seminar-Presentation.pdf
325295919-AAC-Blocks-Seminar-Presentation.pdf325295919-AAC-Blocks-Seminar-Presentation.pdf
325295919-AAC-Blocks-Seminar-Presentation.pdf
shivsin165
 
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdfMOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
asfianoor1
 
Internet Download Manager Crack Patch Latest IDM Free Download
Internet Download Manager Crack Patch Latest IDM Free DownloadInternet Download Manager Crack Patch Latest IDM Free Download
Internet Download Manager Crack Patch Latest IDM Free Download
Designer
 
COTTER and KNUCKleeeeeeeeeeeeeeeeeee.pptx
COTTER and  KNUCKleeeeeeeeeeeeeeeeeee.pptxCOTTER and  KNUCKleeeeeeeeeeeeeeeeeee.pptx
COTTER and KNUCKleeeeeeeeeeeeeeeeeee.pptx
ayushjadon04
 
interpolacrcrdcrdrcrdctctfct frfctfction.ppt
interpolacrcrdcrdrcrdctctfct frfctfction.pptinterpolacrcrdcrdrcrdctctfct frfctfction.ppt
interpolacrcrdcrdrcrdctctfct frfctfction.ppt
pawan070201
 
Lori Vanzant Portfolio. Take a look! ty.
Lori Vanzant Portfolio. Take a look! ty.Lori Vanzant Portfolio. Take a look! ty.
Lori Vanzant Portfolio. Take a look! ty.
vanzan01
 
Wondershare Filmora Crack Free Download 2025
Wondershare Filmora Crack Free Download 2025Wondershare Filmora Crack Free Download 2025
Wondershare Filmora Crack Free Download 2025
Designer
 
Emily's slide design 101 - training module
Emily's slide design 101 - training moduleEmily's slide design 101 - training module
Emily's slide design 101 - training module
yourmisswright
 
4K Video Downloader Crack (2025) + License Key Free
4K Video Downloader Crack (2025) + License Key Free4K Video Downloader Crack (2025) + License Key Free
4K Video Downloader Crack (2025) + License Key Free
Designer
 
An updated content measurement model - Elle Geraghty Content Strategy.pdf
An updated content measurement model - Elle Geraghty Content Strategy.pdfAn updated content measurement model - Elle Geraghty Content Strategy.pdf
An updated content measurement model - Elle Geraghty Content Strategy.pdf
Elle Geraghty
 
Lori Vanzant's portfolio. Please take a look!
Lori Vanzant's portfolio. Please take a look!Lori Vanzant's portfolio. Please take a look!
Lori Vanzant's portfolio. Please take a look!
vanzan01
 
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdfOLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
DimejiFakorede
 
mid-term all revisions g11 s1.pmdzs,zxptx
mid-term all revisions g11 s1.pmdzs,zxptxmid-term all revisions g11 s1.pmdzs,zxptx
mid-term all revisions g11 s1.pmdzs,zxptx
omar164646
 
Are you Transitioning or Refining Now..?
Are you Transitioning or Refining Now..?Are you Transitioning or Refining Now..?
Are you Transitioning or Refining Now..?
Gregory Vigneaux
 
dFdDVWeb_Design_Basics_Presentation.pptx
dFdDVWeb_Design_Basics_Presentation.pptxdFdDVWeb_Design_Basics_Presentation.pptx
dFdDVWeb_Design_Basics_Presentation.pptx
AKSHAYKAMBLE806728
 
PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptxPPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
PPT UNTUK ISU STRATEGIS (1).pptx PPT UNTUK ISU STRATEGIS (1).pptx
rachmatunnisa29
 
DOC-20250121-WA0008._20250121_105938_0000.pptx
DOC-20250121-WA0008._20250121_105938_0000.pptxDOC-20250121-WA0008._20250121_105938_0000.pptx
DOC-20250121-WA0008._20250121_105938_0000.pptx
laugolac31
 
Naan mudalvan assignment for students_064143.pptx
Naan mudalvan assignment for  students_064143.pptxNaan mudalvan assignment for  students_064143.pptx
Naan mudalvan assignment for students_064143.pptx
NaziaFarheen13
 
STOCK ANALYSYS.pptx manajemen keuangan s
STOCK ANALYSYS.pptx manajemen keuangan sSTOCK ANALYSYS.pptx manajemen keuangan s
STOCK ANALYSYS.pptx manajemen keuangan s
kfdpontianak2012
 
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptx
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptxHalstead’s_Software_Science_&_Putnam’s_Model[1].pptx
Halstead’s_Software_Science_&_Putnam’s_Model[1].pptx
prachiikumarii1
 
325295919-AAC-Blocks-Seminar-Presentation.pdf
325295919-AAC-Blocks-Seminar-Presentation.pdf325295919-AAC-Blocks-Seminar-Presentation.pdf
325295919-AAC-Blocks-Seminar-Presentation.pdf
shivsin165
 
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdfMOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
MOCCAE SUSTAINABLE TROPHY 2025 Presentation.pdf
asfianoor1
 
Internet Download Manager Crack Patch Latest IDM Free Download
Internet Download Manager Crack Patch Latest IDM Free DownloadInternet Download Manager Crack Patch Latest IDM Free Download
Internet Download Manager Crack Patch Latest IDM Free Download
Designer
 
COTTER and KNUCKleeeeeeeeeeeeeeeeeee.pptx
COTTER and  KNUCKleeeeeeeeeeeeeeeeeee.pptxCOTTER and  KNUCKleeeeeeeeeeeeeeeeeee.pptx
COTTER and KNUCKleeeeeeeeeeeeeeeeeee.pptx
ayushjadon04
 
interpolacrcrdcrdrcrdctctfct frfctfction.ppt
interpolacrcrdcrdrcrdctctfct frfctfction.pptinterpolacrcrdcrdrcrdctctfct frfctfction.ppt
interpolacrcrdcrdrcrdctctfct frfctfction.ppt
pawan070201
 
Lori Vanzant Portfolio. Take a look! ty.
Lori Vanzant Portfolio. Take a look! ty.Lori Vanzant Portfolio. Take a look! ty.
Lori Vanzant Portfolio. Take a look! ty.
vanzan01
 
Wondershare Filmora Crack Free Download 2025
Wondershare Filmora Crack Free Download 2025Wondershare Filmora Crack Free Download 2025
Wondershare Filmora Crack Free Download 2025
Designer
 
Emily's slide design 101 - training module
Emily's slide design 101 - training moduleEmily's slide design 101 - training module
Emily's slide design 101 - training module
yourmisswright
 
4K Video Downloader Crack (2025) + License Key Free
4K Video Downloader Crack (2025) + License Key Free4K Video Downloader Crack (2025) + License Key Free
4K Video Downloader Crack (2025) + License Key Free
Designer
 
An updated content measurement model - Elle Geraghty Content Strategy.pdf
An updated content measurement model - Elle Geraghty Content Strategy.pdfAn updated content measurement model - Elle Geraghty Content Strategy.pdf
An updated content measurement model - Elle Geraghty Content Strategy.pdf
Elle Geraghty
 
Lori Vanzant's portfolio. Please take a look!
Lori Vanzant's portfolio. Please take a look!Lori Vanzant's portfolio. Please take a look!
Lori Vanzant's portfolio. Please take a look!
vanzan01
 
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdfOLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
OLADIMEJI FAKOREDE ARCT 1073 BUILDING DESIGN PORTFOLIO_compressed.pdf
DimejiFakorede
 
mid-term all revisions g11 s1.pmdzs,zxptx
mid-term all revisions g11 s1.pmdzs,zxptxmid-term all revisions g11 s1.pmdzs,zxptx
mid-term all revisions g11 s1.pmdzs,zxptx
omar164646
 
Are you Transitioning or Refining Now..?
Are you Transitioning or Refining Now..?Are you Transitioning or Refining Now..?
Are you Transitioning or Refining Now..?
Gregory Vigneaux
 
dFdDVWeb_Design_Basics_Presentation.pptx
dFdDVWeb_Design_Basics_Presentation.pptxdFdDVWeb_Design_Basics_Presentation.pptx
dFdDVWeb_Design_Basics_Presentation.pptx
AKSHAYKAMBLE806728
 

Css framework

  • 1. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson - 2011
  • 2. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson OUTLINE The goal here is to present step by step how to develop easily your own CSS framework. I deliver here my own experience witch is to reduce time to integrate a web design in an environment already providing is own CSS like Wordpress, Tapestry,… Our objectives • Easily reusable • Short source code • Increase productivity • Decrease bugs
  • 3. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson RULES Your CSS must be non intrusive • Use class instead of id’s ( #id  .class) • Reserved a very few number of Id’s and exclusivly for layout Stay with a generic template and layout • No complete cascading style (.Table .Line .Cell .Link) • Think about version upgrades conflicts • Let your CSS framework be able to integrate new components • Use a comprehensive semantic
  • 4. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 5. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 1. Layout The first step is to think about your principal layout. This file will be the only one with id’s in. Web 3.0 semantic can help you (header, footer,…). @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 6. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 1. Layout Try to describe your principal layout : columns, sidebars, …
  • 7. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson
  • 8. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 1. Layout Discuss with product owner if your web application will have specific functionalities. Here I used 14 id’s, for main containers and functionalities already identifyed. • #container • #header • #user • #sections • #navigation • #nav-context • #nav-menu • #content • #breadcrumbs • #content-title • #context • #filter • #synthesis • #content-main
  • 9. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 1. Layout You can also use zoning and eye tracking research to identify how to place your layout. Percentage of user wich have seen the zone one time Eyetracking on our layout Study by Ipsos Media with 3000 users on 100 differents websites
  • 10. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 2. Grid & Unit The second step is to define your grid unit system. This will help you to realize your prototypes. With the grid you think in proportion and with the unit you think in pixels. @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 11. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 2. Grid & Unit Unit are fixed by the result of your resolution users statistics. According to those statistics we will use a 960*600 grid system.
  • 12. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson UNIT-GRID : full layout
  • 13. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson UNIT-GRID : #content
  • 14. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 2. Grid & Unit With your units you can precise min-width or fixed contents.
  • 15. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 2. Grid & Unit For the Grid I used the Yahoo Grid system wich provide all proportions I need for my content. http://yuilibrary.com/yui/docs/cssgrids/ .yui3-u-1 .yui3-u-1-6 .yui3-u-1-24 .yui3-u-1-2 .yui3-u-5-6 .yui3-u-5-24 .yui3-u-1-3 .yui3-u-1-8 .yui3-u-7-24 .yui3-u-2-3 .yui3-u-3-8 .yui3-u-11-24 .yui3-u-1-4 .yui3-u-5-8 .yui3-u-13-24 .yui3-u-3-4 .yui3-u-7-8 .yui3-u-17-24 .yui3-u-1-5 .yui3-u-1-12 .yui3-u-19-24 .yui3-u-2-5 .yui3-u-5-12 .yui3-u-23-24 .yui3-u-3-5 .yui3-u-7-12 .yui3-u-4-5 .yui3-u-11-12
  • 16. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson http://yuilibrary.com/yui/docs/cssgrids/cssgrids-units-example.html
  • 17. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 3. Reset The third step is to prevent your design of navigators differents. The best solution is to reset all pre-design associated to html tags. I used this one: http://meyerweb.com/eric/tools/css/reset/reset.css @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 18. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 4. Typography The fourth step is to describe basic colors and size of content html tags sucha as H1, P, Legend,… @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 19. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 5. Forms & Tables The fifth step is to define html tags specific for forms and tables. Remember, be generic, you will be more specific if a component use a form and do not match really with your generic CSS. @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 20. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 6. Generic classes In this file you create all basic design tips you will need. This file is generally increased during the project when a css line become used by many elements @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 21. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson Ui_generic.css .centered { .content { margin-right: auto; margin-left: 10px; margin-left: auto; margin-right: 10px; } } .alright{ .content-height { text-align:right; margin-top: 10px; } margin-bottom: 10px; .alleft{ } text-align:left; .content-right { } margin-left: 10px; .hidden { } height: 1px; .content-left { left: -9999px; margin-right: 10px; overflow: hidden; } position: absolute; .content-text { top: 0; padding:6px; width: 1px; } } .content-last { margin-right: 0; } .content-top { margin-bottom: 6px; }
  • 22. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 7. Components This is the last important step, this css file describe basic component of web interfaces, such as buttons, warnings… You can also describe Html5 components. @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 23. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson Ui_component.css Navigator components : •Buttons Button Box Layer •Box •Layers Web framework component: •Error •Flash message
  • 24. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson FRAMEWORK FILES 8. Default theme The final step is to define default backgrounds and images of your elements. It’s like to add a skin on a 3D model. Then you concentrate in this file all colors and images. @import url("ui_reset.css"); @import url("ui_typo.css"); @import url("ui_grid.css"); @import url("ui_unit.css"); @import url("ui_layout.css"); @import url("ui_form.css"); @import url("ui_table.css"); @import url("ui_generic.css"); @import url("ui_components.css"); @import url("ui_theme_default.css");
  • 25. HOW TO DEVELOP A CSS FRAMEWORK By Olivier Besson Thank you A full exemple is accessible here : http://www.motsdimages.com/framework/layout.html