SlideShare a Scribd company logo
1 of 25
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

More Related Content

What's hot

Wireframing basics may 2012
Wireframing basics may 2012Wireframing basics may 2012
Wireframing basics may 2012Meaghan Barbin
 
Responsive Design and Drupal Theming
Responsive Design and Drupal ThemingResponsive Design and Drupal Theming
Responsive Design and Drupal ThemingSuzanne Dergacheva
 
CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & PostAnton Dosov
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...Jer Clarke
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Holger Bartel
 
Building Responsive Websites with Drupal
Building Responsive Websites with DrupalBuilding Responsive Websites with Drupal
Building Responsive Websites with DrupalSuzanne Dergacheva
 
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeCreating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeAcquia
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End DeveloperMike Wilcox
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupPut A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupJer Clarke
 
CSS Custom Properties (aka CSS Variable)
CSS Custom Properties (aka CSS Variable)CSS Custom Properties (aka CSS Variable)
CSS Custom Properties (aka CSS Variable)Geoffrey Croftє
 
Responsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNNResponsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNNgravityworksdd
 
Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Eric Sembrat
 
Themer's roundtable
Themer's roundtableThemer's roundtable
Themer's roundtablecanarymason
 
Drupaldelphia Shortcuts Cheats And Cheap Stunts
Drupaldelphia  Shortcuts Cheats And Cheap StuntsDrupaldelphia  Shortcuts Cheats And Cheap Stunts
Drupaldelphia Shortcuts Cheats And Cheap Stuntscanarymason
 
WordPress: A Designer's CMS
WordPress: A Designer's CMSWordPress: A Designer's CMS
WordPress: A Designer's CMSChelsea Otakan
 
What is Object Oriented CSS?
What is Object Oriented CSS?What is Object Oriented CSS?
What is Object Oriented CSS?Nicole Sullivan
 
Drupal Camp Manila 2014 - Theming with Zen
Drupal Camp Manila 2014 - Theming with ZenDrupal Camp Manila 2014 - Theming with Zen
Drupal Camp Manila 2014 - Theming with ZenJapo Domingo
 

What's hot (18)

Wireframing basics may 2012
Wireframing basics may 2012Wireframing basics may 2012
Wireframing basics may 2012
 
Responsive Design and Drupal Theming
Responsive Design and Drupal ThemingResponsive Design and Drupal Theming
Responsive Design and Drupal Theming
 
CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & Post
 
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
DRY CSS A don’t-repeat-yourself methodology for creating efficient, unified a...
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
 
Building Responsive Websites with Drupal
Building Responsive Websites with DrupalBuilding Responsive Websites with Drupal
Building Responsive Websites with Drupal
 
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeCreating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End Developer
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo MashupPut A Map On It! Enhanced geolocation in WordPress with Geo Mashup
Put A Map On It! Enhanced geolocation in WordPress with Geo Mashup
 
CSS Custom Properties (aka CSS Variable)
CSS Custom Properties (aka CSS Variable)CSS Custom Properties (aka CSS Variable)
CSS Custom Properties (aka CSS Variable)
 
Responsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNNResponsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNN
 
Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Sass - Getting Started with Sass!
Sass - Getting Started with Sass!
 
Themer's roundtable
Themer's roundtableThemer's roundtable
Themer's roundtable
 
Drupaldelphia Shortcuts Cheats And Cheap Stunts
Drupaldelphia  Shortcuts Cheats And Cheap StuntsDrupaldelphia  Shortcuts Cheats And Cheap Stunts
Drupaldelphia Shortcuts Cheats And Cheap Stunts
 
WordPress: A Designer's CMS
WordPress: A Designer's CMSWordPress: A Designer's CMS
WordPress: A Designer's CMS
 
What is Object Oriented CSS?
What is Object Oriented CSS?What is Object Oriented CSS?
What is Object Oriented CSS?
 
Drupal Camp Manila 2014 - Theming with Zen
Drupal Camp Manila 2014 - Theming with ZenDrupal Camp Manila 2014 - Theming with Zen
Drupal Camp Manila 2014 - Theming with Zen
 

Viewers also liked

Lessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS FrameworkLessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS Frameworksonniesedge
 
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
 
Media queries and frameworks
Media queries and frameworksMedia queries and frameworks
Media queries and frameworksNicole Ryan
 
Seven Steps to Creating a Framework
Seven Steps to Creating a FrameworkSeven Steps to Creating a Framework
Seven Steps to Creating a FrameworkRob Philibert
 
Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testingsonniesedge
 
Responsive Design & CSS Frameworks
Responsive Design & CSS FrameworksResponsive Design & CSS Frameworks
Responsive Design & CSS FrameworksG C
 
What is the best Healthcare Data Warehouse Model for Your Organization?
What is the best Healthcare Data Warehouse Model for Your Organization?What is the best Healthcare Data Warehouse Model for Your Organization?
What is the best Healthcare Data Warehouse Model for Your Organization?Health Catalyst
 

Viewers also liked (10)

Lessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS FrameworkLessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS Framework
 
Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors. Managing responsive websites with css preprocessors.
Managing responsive websites with css preprocessors.
 
Media queries and frameworks
Media queries and frameworksMedia queries and frameworks
Media queries and frameworks
 
Grid system introduction
Grid system introductionGrid system introduction
Grid system introduction
 
Seven Steps to Creating a Framework
Seven Steps to Creating a FrameworkSeven Steps to Creating a Framework
Seven Steps to Creating a Framework
 
Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testing
 
How Testing Changed My Life
How Testing Changed My LifeHow Testing Changed My Life
How Testing Changed My Life
 
Think Vitamin CSS
Think Vitamin CSSThink Vitamin CSS
Think Vitamin CSS
 
Responsive Design & CSS Frameworks
Responsive Design & CSS FrameworksResponsive Design & CSS Frameworks
Responsive Design & CSS Frameworks
 
What is the best Healthcare Data Warehouse Model for Your Organization?
What is the best Healthcare Data Warehouse Model for Your Organization?What is the best Healthcare Data Warehouse Model for Your Organization?
What is the best Healthcare Data Warehouse Model for Your Organization?
 

Similar to How to develop a CSS Framework

WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structurekeithdevon
 
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 4Erin 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.pdfRonDosh
 
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
 
Hardboiled Front End Development — Found.ation
Hardboiled Front End Development — Found.ationHardboiled Front End Development — Found.ation
Hardboiled Front End Development — Found.ationSpiros Martzoukos
 
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. ControlChristian Heilmann
 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockMarco 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 SPFxStefan 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 MavenOliver 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 ModernizrMichael Enslow
 
Create SASSY Web Parts - SPSMilan
Create SASSY Web Parts - SPSMilan Create SASSY Web Parts - SPSMilan
Create SASSY Web Parts - SPSMilan Stefan Bauer
 
Joes sass presentation
Joes sass presentationJoes sass presentation
Joes sass presentationJoeSeckelman
 

Similar to How to develop a CSS Framework (20)

WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structure
 
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
 
CSS3
CSS3CSS3
CSS3
 
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
 
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}}
 
Roadmap 01
Roadmap 01Roadmap 01
Roadmap 01
 
Hardboiled Front End Development — Found.ation
Hardboiled Front End Development — Found.ationHardboiled Front End Development — Found.ation
Hardboiled Front End Development — Found.ation
 
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?
 
Css
CssCss
Css
 
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....
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
 
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!
 
Create SASSy web parts in SPFx
Create SASSy web parts in SPFxCreate SASSy web parts in SPFx
Create SASSy web parts in SPFx
 
[Bauer] SASSy web parts with SPFX
[Bauer] SASSy web parts with SPFX[Bauer] SASSy web parts with SPFX
[Bauer] SASSy web parts with SPFX
 
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
 
slides-students-C04.pdf
slides-students-C04.pdfslides-students-C04.pdf
slides-students-C04.pdf
 
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
 
Create SASSY Web Parts - SPSMilan
Create SASSY Web Parts - SPSMilan Create SASSY Web Parts - SPSMilan
Create SASSY Web Parts - SPSMilan
 
Joes sass presentation
Joes sass presentationJoes sass presentation
Joes sass presentation
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

How to develop a 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