SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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?
 

Similaire à 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
 

Similaire à 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
 

Dernier

[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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Dernier (20)

[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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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...
 
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...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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