SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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?
 

Semelhante a 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
 

Semelhante a 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
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

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