SlideShare a Scribd company logo
OBJECT ORIENTED CSS
                        for high performance web applications and sites.




                                                                 Nicole Sullivan
Monday, February 16, 2009
Web Dev Philosophy

                    • Work out of respect for the design.
                    • Designers make our code as beautiful and
                            clever on the outside as it is on the inside.
                    • Respect the original design vision.
                            consistent design = clean code = fast site.



Monday, February 16, 2009
“JAVASCRIPT DOESN’T SUCK
                            You’re just doing it wrong.” -- Doug Crockford




Monday, February 16, 2009
“JAVASCRIPT DOESN’T SUCK
                            You’re just doing it wrong.” -- Doug Crockford




Monday, February 16, 2009

Recommended for you

Our Best Practices Are Killing Us
Our Best Practices Are Killing UsOur Best Practices Are Killing Us
Our Best Practices Are Killing Us

We keep thinking we can write better CSS if we just try harder, that the next site will be clean and stay that way. This presentation shows that in fact, messy CSS is the direct result of our worst best-practices. We need to reexamine those assumptions with an eye to practicality and scalability as well as accessibility, standards, and fabulous design.

web 20 expoweb designcss
Javascript Basic
Javascript BasicJavascript Basic
Javascript Basic

This document provides an introduction to JavaScript and jQuery. It covers basic JavaScript concepts like variables, functions, conditional statements, and user input/output. It also demonstrates how to select and manipulate HTML elements using jQuery, including hiding elements on clicks or after delays. The document recommends additional resources for learning more about JavaScript and jQuery.

javascripthandlinojavascript
Javascript basics
Javascript basicsJavascript basics
Javascript basics

This document provides an overview of JavaScript basics including variables, data types, operators, conditional statements, loops, functions, arrays, and error handling. It explains JavaScript syntax, how to include JavaScript code in HTML pages, and commonly used statements like if/else, switch case, while and for loops. It also covers JavaScript functions, returning values from functions, and printing pages. The document describes JavaScript strings and array objects, and their associated methods. Finally, it discusses different types of errors in JavaScript like syntax errors, runtime errors, and logical errors.

CSS
         “JAVASCRIPT DOESN’T SUCK
                            You’re just doing it wrong.” -- Doug Crockford




Monday, February 16, 2009
REQUIRE EXPERT ABILITY
              JUST TO GET STARTED.
                            this is not a sign of maturity.




Monday, February 16, 2009
FILE SIZE JUST KEEPS
                          GETTING BIGGER
                   As the site evolves we continuously modify the CSS.




Monday, February 16, 2009
CODE RE-USE IS ALMOST
              NONEXISTENT
                            people don’t trust other developers code.




Monday, February 16, 2009

Recommended for you

Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS

The document provides an agenda for a workshop on HTML, CSS, and putting them together. It covers HTML topics like semantic tags, comments, and best practices. It then discusses CSS topics such as IDs vs classes, floats, shorthand, and putting HTML and CSS together with project structure and layouts. The workshop aims to give an introduction to HTML, CSS, and how to structure websites using these languages.

layoutcsshtml5
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview

The document discusses various aspects of HTML5 including its history, new elements, offline storage capabilities, and responsive web design. It provides information on HTML, CSS, JavaScript and how they make up the three layers of web design. It also summarizes the roles of different standards organizations and differences between HTML5 and the HTML living standard.

html5csscss3
jQuery PPT
jQuery PPTjQuery PPT
jQuery PPT

jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.

CODE IS TOO FRAGILE.
       Even the cleanest code gets ruined by the first non-expert to
                                 touch it.




Monday, February 16, 2009
WHAT IS THE MOST
                IMPORTANT MISTAKE
               TALENTED CODERS ARE
                     MAKING?
                            Writing really clever modules.




Monday, February 16, 2009
THE SIZE OF THEIR CSS
                    WILL INCREASE
            in a 1:1 relationship with the number of blocks, pages, and
                               complexity of content.




Monday, February 16, 2009
BUT, WE WANT A LOT!
                              and sometimes those goals conflict.




Monday, February 16, 2009

Recommended for you

CSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive DesignCSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive Design

This document discusses responsive web design using CSS3 media queries. It begins with an introduction to media queries and their syntax for modifying CSS based on screen width. It then covers examples of adapting layouts, images, and other design elements for different screen sizes. Finally, it addresses techniques for supporting older browsers that do not support media queries, such as using conditional comments or JavaScript libraries.

web designmedia queriesresponsive web design
Html
HtmlHtml
Html

This document provides an overview of HTML including: - A brief history of HTML from its creation in 1989 to modern standards. - An explanation of basic HTML tags for formatting text, creating links, inserting images, and organizing content using lists, tables, and frames. - Descriptions of common HTML attributes for further customizing tags. - Recommendations for the essential tools and resources needed to get started with HTML.

html
React hooks
React hooksReact hooks
React hooks

The document discusses React patterns and hooks. It covers topics like inheritance, composition, mixins, render props, higher order components (HOCs), and React hooks. Some key points: - Inheritance and composition are approaches to code reuse in object-oriented programming. React uses composition over inheritance. - Mixins were introduced in 2015 for code reuse but are now deprecated due to issues. Render props and HOCs are preferred patterns. - Render props and HOCs allow code and state to be shared across components. Render props have fewer levels of nesting while HOCs are better for applying multiple concerns. - Hooks were introduced to overcome class component limitations and support functional components with local state and lif

react hooks usagereactreact hooks
and sometimes those goals conflict.




Monday, February 16, 2009
Monday, February 16, 2009
Modular - combinable ,
reusable, extensible. Light -
One to many relationship
between CSS and potential
layouts. Fast - Minimal HTTP
requests & minimal size.
Future-proof - maintainable,
semantic, standards oriented,
prepared for future-browsers,
redesign compatible. Visually
interesting and adaptable -
respectful of UED and
mar keting constraints.
Simplifies and speeds CSS
development. Accessible -
SEO, Screen readers, etc.
Monday, February 16, 2009
Modular - combinable ,
reusable, extensible. Light -
One to many relationship
between CSS and potential
layouts. Fast - Minimal HTTP
requests & minimal size.
Future-proof - maintainable,
semantic, standards oriented,
prepared for future-browsers,
redesign compatible. Visually
interesting and adaptable -
respectful of UED and
mar keting constraints.
Simplifies and speeds CSS
development. Accessible -
SEO, Screen readers, etc.
Monday, February 16, 2009

Recommended for you

SASS - CSS with Superpower
SASS - CSS with SuperpowerSASS - CSS with Superpower
SASS - CSS with Superpower

This document introduces Sass (Syntactically Awesome Style Sheets), a CSS preprocessor. Sass allows writing clean CSS in a programming construct rather than static rules, reducing repetition and creating more manageable stylesheets. It features variables, nesting, mixins, partials, and inheritance. Installing Sass involves downloading Ruby and using the gem install command. Key benefits of Sass include writing cleaner CSS, faster development time, and programmatic features like variables and nesting.

sass mixinruby and railscss
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS

This PPT is about my best friends, HTML, CSS and JS. Here I am just talk/show few features of them. all three combined make our web site more powerful in this WWW world.

cascading style sheetshtml5css3
Javascript
JavascriptJavascript
Javascript

This document provides an introduction to JavaScript and discusses its uses, places to insert code, variables, operators, and the Document Object Model (DOM). JavaScript is an object-based scripting language used mainly for client-side validation, dynamic drop-downs, displaying data and time, and pop-ups. Code can be inserted between HTML tags, in external JavaScript files, or between the <head> tags. The DOM represents the HTML document as a tree structure that can be modified.

#javascriptweb designcodes
SOLUTION
                            Object Oriented CSS




Monday, February 16, 2009
TWO MAIN PRINCIPLES
                               1. Separate Structure and Skin
                            2. Separate Container and Content




Monday, February 16, 2009
10 BEST PRACTICES
                    1. Create a component           6. Minimize selectors
                       library
                                                    7. Separate structure and skin
                    2. Use consistent semantic
                       styles                       8. Separate container and
                                                       content
                    3. Design modules to be
                       transparent on the inside.   9. Extend objects by applying
                                                       multiple classes to an
                    4. Be flexible.                     element

                    5. Learn to love grids.         10. Use reset and fonts from
                                                        YUI



Monday, February 16, 2009
9 PITFALLS
                    1. Location dependent styles.   5. Don’t sprite every image
                                                       together (unless your has
                                                       very few pages).
                    2. Avoid specifying what tag
                       a class applies.
                                                    6. Avoid height alignment
                    3. Avoid IDs to style inside
                       the main content areas.      7. Text as text, not as images.

                    4. Avoid drop shadows and       8. Redundancy
                       rounded corners over
                       irregular backgrounds.       9. Avoid premature
                                                       optimization.




Monday, February 16, 2009

Recommended for you

Javascript
JavascriptJavascript
Javascript

JavaScript is a scripting language that allows adding interactivity to HTML pages. It can be used for client-side form validation and integration with user plugins. JavaScript is case-sensitive and allows variables, functions, conditional statements, and objects. Common uses include pop-up boxes, event handling, and cookies.

wt
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)

코드의 품질 (Code Quality) 코드의 품질을 높이는 방법에 대해서 알아봅시다.

programming code
JAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptxJAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptx

Achievers IT React JS Certification Course in Bangalore. ... UI Development training in Marathahalli ; also benefits as UI training online and UI Developer

CREATE A COMPONENT
                     LIBRARY
                            of reusable “legos”




Monday, February 16, 2009
Components
              are like legos
        Mix and match to create diverse
             and interesting pages.




Monday, February 16, 2009
SEPARATE
                            CONTAINER AND
                              CONTENT
                  break the dependency between the container module
                           and the content objects it contains.




Monday, February 16, 2009
Monday, February 16, 2009

Recommended for you

React js
React jsReact js
React js

This document introduces React, describing it as a JavaScript library for building user interfaces by rendering components rather than mutating the DOM directly. It discusses how React uses a virtual DOM for fast re-rendering, building components instead of templates, and the use of JSX syntax to write HTML-like code. Components have state and props, and the whole app re-renders when state changes to guarantee updates.

A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js

This is the first half of a presentation I gave at Squares Conference 2015 where I provided a brief introduction to React JS, then did live coding for 20 minutes to show more of the specifics of usage. Your milage may vary as the live code part was where the bulk of the teaching happened!

reactreactjsjavascript
The Fast And The Fabulous
The Fast And The FabulousThe Fast And The Fabulous
The Fast And The Fabulous

You've got a sneaking suspicion that design impacts performance. What next? Your engineers know nothing about design and your designers know nothing about performance. How can you get everyone on the same page? Which design flaws must you absolutely avoid? How do engineers slow designs with poor CSS? This presentation covers the best practices in design and OO CSS for fast, maintainable sites. * Abstraction * Flexibility * Grids * Location dependent styles Velocity Conference, 2009

Contour blocks               Background blocks       Content Objects -
                                                    headings, paragraphs, lists, headers,
                                                          footers, buttons, etc.


                                                        Capital of the Canterbury region and the largest city
                                                        on the South Island (population just over 300,000)
                                                        exudes a palpable air of gentility and a connectedness
                                                        with the mother country.
                                                        Read more...




                            X                       X



                                        1:n
Monday, February 16, 2009
Build HTML from the
                             component library.
                 New pages should not generally require additional CSS




Monday, February 16, 2009
SITE-WIDE LEGOS
                • Headings

                • Lists  (e.g. action list, external link list, product list, or
                    feature list)

                • Module     headers and footers

                • Grids

                • Buttons




Monday, February 16, 2009
Heading Level 1
                                     Heading Level 2
             HEADINGS                Heading Level 3
     Getting the look and feel you
     want with the semantics you     Heading Level 4
                 need.
                                     Heading Level 5

                                     Heading Level 6




Monday, February 16, 2009

Recommended for you

Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012

Almost exactly the same slides as for BDConf and Mobilism 2012, but some might appreciate having the actual slides from this event.

responsive designweb design
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012

Almost exactly the same slides as for BDConf, but some might appreciate having the actual slides from this event.

responsive designweb designmobilism
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)

Slides from my presentation at Breaking Development 2012 in Orlando. This deck is not intended to be standalone, and probably made more sense in combination with my talk. At least, I hope so. I understand that video of the talk will be available in the near future on the Breaking Development website.

responsive designweb design and developmentweb
‣ Toggle List
                                          Default List
                                                         ‣ List Item 2
                                          List Item 2
                                                         ‣ List Item 3
                                          List Item 3


                            LISTS       ❖ Action List
                                        ❖ List Item 2
           Should be available to all   ❖ List Item 3
            modules on the page.




Monday, February 16, 2009
MEDIA
                            Extending objects, a simple
                                    example.


Monday, February 16, 2009

<div class=quot;media media_extquot;>
  <img class=quot;fixedMediaquot; src=quot;myImg.pngquot; />

 <div class=quot;textquot;>

 
 ...

 </div>
</div>




Monday, February 16, 2009
SEPARATE
                            STRUCTURE AND
                                 SKIN
                 abstract the structure of the block from the skin which
                                     is being applied.




Monday, February 16, 2009

Recommended for you

Drupal Themes: Past, present and future
Drupal Themes: Past, present and futureDrupal Themes: Past, present and future
Drupal Themes: Past, present and future

Themes have evolved from wrapping variables in HTML markup (Past) to allowing modification of module default templates (Present). Looking ahead (Future), possibilities include a core base semantic theme, usability enhancements through jQuery plugins, and template files for all elements like forms.

drupalthemes
Designing Special Feature Pages
Designing Special Feature PagesDesigning Special Feature Pages
Designing Special Feature Pages

Creating a full-page multimedia feature, from design concept to coded implementation. Presentation for the CoPress College Web Design Camp 2009, by Jackie Hai.

journalismwebdesign
Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008

Fusion-io Principal Solutions Architect Sumeet Bansal slides from presentation to the Silicon Valley User Group in October 2009. Fusion-io is a producer of enterprise-class SSDs (Solid State Drives, as opposed to HDDs – Hard Disk Drives). Their silicon-based storage architecture known as ioMemory applies flash memory to large-scale enterprise storage products like Storage Area Networks.

ginnebaughdbassd
block
                                          inner
                                                  hd



                       BLOCK
                                                  bd
         class can be extended by
        adding additional classes to
             the block element.                   ft




Monday, February 16, 2009
Reusing elements
                              makes them
                               performance “freebies”




Monday, February 16, 2009
Legos first
                      Design individual pages only once all the legos have
                                         been defined.




Monday, February 16, 2009
Pitfalls
                            What not to do.




Monday, February 16, 2009

Recommended for you

Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02

Sumeet Bansal presented on using solid state storage from Fusion-io to dramatically improve SQL Server performance. He discussed the limitations of traditional spinning disk storage and how solid state storage allows databases to achieve memory-like performance. Bansal highlighted Fusion-io's technology which addresses endurance issues in flash memory. He provided a case study of Wine.com which saw massive performance gains across its SQL Server databases after implementing Fusion-io storage. Bansal invited attendees to join the revolution and experiment with new database solutions using solid state storage.

catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web

This document is the winter/spring 2009 catalogue for Apress, a publisher of technology books. It introduces new titles focused on Mac OS X and iPhone development, including books on Objective-C, the iPhone SDK, and Cocoa programming. It also highlights additional titles planned for 2009 in areas like Snow Leopard development, Xcode, Cocoa Frameworks, and iPhone applications. The catalogue provides information on ordering books and downloading related code samples from Apress.

extjstutorial
catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web

This document is the winter/spring 2009 catalogue for Apress, a publisher of technology books. It highlights upcoming titles in areas such as .NET, databases, Java, web development, and more. It also discusses new initiatives for books on Mac OS X, the iPhone, eBooks, and companion PDFs for print books. The catalogue aims to help readers succeed in their work and learn new technologies.

extjstutorial
Avoid redundancy
Monday, February 16, 2009
Nearly identical
          modules
        Headings 3 and 5 are too similar.




Monday, February 16, 2009
Rule of thumb:
                    If two modules look too similar to include on
                    the same page, they are too similar to include
                    together in a site, choose one!




Monday, February 16, 2009
USE CONSISTENT
                            SEMANTIC STYLES




Monday, February 16, 2009

Recommended for you

Object Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And ApplicationsObject Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And Applications

The document discusses object-oriented CSS (OOCSS) as a way to improve performance, code reuse, and maintainability of CSS code for websites and applications. It outlines several principles of OOCSS including creating reusable CSS components, separating container and content rules, extending objects by applying multiple classes, avoiding location-dependent styles, and separating structure from skin. Examples are provided to illustrate these concepts. The goal of OOCSS is to write more modular, predictable and maintainable CSS code.

cssmysqlpercona
Web or SDK Development
Web or SDK DevelopmentWeb or SDK Development
Web or SDK Development

The document discusses the advantages and disadvantages of developing applications for the iPhone using web development versus using the iPhone SDK. Some key advantages of web development are simplicity, dynamism from being able to easily update functionality, and global reach from being part of the web. Some advantages of using the iPhone SDK include greater depth of functionality by having deeper access to device features and better performance from being native code. The document considers factors for each approach for different types of iPhone applications.

360idev
SharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common MistakesSharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common Mistakes

The document discusses common mistakes in SharePoint branding: 1. Jumping into code too soon without understanding SharePoint patterns and structures. 2. Ignoring non-visible parts of the SharePoint platform that can impact branding work. 3. Coding branding solutions for personal preferences rather than the needs of end users.

microsoft sharepointsharepoint 2010sharepoint
Heading should not become a
                            A                                      Heading


                                    in another part of the page.




Monday, February 16, 2009
Consistency
        Writing more rules to overwrite
         the crazy rules from before.

               e.g. Heading should behave
               predictably in any module.




Monday, February 16, 2009
How about an
                              example?
                             Yahoo! Personal Finance




Monday, February 16, 2009
2+ different tab
                            styles. Could they
                            use the same
                            images?




Monday, February 16, 2009

Recommended for you

Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web componentsBoston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components

Lightning Web Components (LWC) is a new programming model built on modern web standards that provides enhanced productivity, performance, and compatibility. LWC uses ES6+, Custom Elements, and Shadow DOM for a faster and more standards-based experience. It runs alongside existing Lightning components and can be used via clicks or code. LWC takes advantage of advances in web standards like the W3C and ECMAScript to provide a more performant and transferable skills framework compared to prior Lightning frameworks.

salesforcelightningsoftware development
JavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howJavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & how

JavaScript is a lightweight, interpreted programming language that is used for client-side web development. It was originally introduced in 1995 to make web pages more interactive and has since expanded to server-side applications through Node.js. Some best practices for JavaScript include using meaningful variable names, writing narrative code, avoiding polluting the global namespace, using strict mode, isolating DOM access, following common patterns like the module pattern, and progressively enhancing functionality while degrading gracefully without JavaScript.

javascriptjs
Understanding Dom
Understanding DomUnderstanding Dom
Understanding Dom

This document provides an introduction to understanding the Document Object Model (DOM). It discusses what the DOM is, how it represents XML documents as a tree structure of nodes, and how the DOM specifications have evolved over time to support additional XML features. The document also outlines what tools are needed to run the Java examples provided, and introduces the author and conventions used in the tutorial.

3 contour
                            components are
                            too similar. Chose
                            one.




Monday, February 16, 2009
Changes in module
                            width, background
                            color, or background
                            image are an excellent
                            example of module
                            reuse.
Monday, February 16, 2009
Mix and match
                            Container and content objects to achieve high
                                        performance design.




Monday, February 16, 2009
DESIGN MODULES TO
                     BE TRANSPARENT
                            on the inside.




Monday, February 16, 2009

Recommended for you

Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack

This document provides an overview of building an eCommerce site using the MEAN stack. It begins with an introduction to JavaScript and then discusses the key components of the MEAN stack including Node.js, AngularJS, and MongoDB. It provides details on each component, their history, features, and how they work together. It emphasizes how MongoDB is well-suited for eCommerce applications due to its flexible schema and ability to store different product types within the same collection.

express jsangular jsnode js
Design Fast Websites
Design Fast WebsitesDesign Fast Websites
Design Fast Websites

Nicole Sullivan gives a presentation on designing fast websites. She discusses why performance matters, how websites have grown more complex over time, and how poor performance can negatively impact businesses. She provides several best practices for optimizing websites, such as creating reusable components, using consistent styles, making modules transparent, optimizing images through sprites and compression, avoiding non-standard fonts and using columns instead of rows.

f2esummit08yahooyslow
Foundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTMLFoundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTML

My first presentation of the "Foundation of Web Application Development" series, which I used in in-house training. Hope it useful for the others.

xhtmlweb_application_development
Making it look
                 fab
        Requires careful choice of pixels.



               Bonus: Consider PNG8 for
                progressive enhancement



http://alistapart.com/articles/mountaintop/
Monday, February 16, 2009
Pitfalls
                            Variable or gradient
                               backgrounds.




Monday, February 16, 2009
NEVER SPECIFY
                               ELEMENT
                       Do:       .myClass {...}

                       Don’t:    div.myClass {...}



                      Exception: Extending a      Extend the error class to
                      class to work on several    apply to strong or div
                      elements.                   elements specify the
                                                  specific tag in the rule that
                      e.g..error{} which, by      declares only the values
                                                  that are different than the
                      default, applies to a P.
                                                  default value.

Monday, February 16, 2009
BE FLEXIBLE.
                            Extensible height and width.




Monday, February 16, 2009

Recommended for you

Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place

Have you hesitated using custom blocks because they're too hard? Let's debunk that rumor. In this session, learn how to leverage Genesis Custom Blocks to build your own blocks from scratch that look, and behave, exactly as you need.

wordpresswordpress developmentwordpress plugin
Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS

the API is an interface that needs to be designed. http://styleguide.pivotal.io/react_beta.html https://www.npmjs.com/search?q=pui

reactan event apartan event apart - san diego 2015
Why are you here?
Why are you here?Why are you here?
Why are you here?

A reflection on career and community. A call to follow your heart rather than some abstract notion of success.

cssconfcurationcssconf.eu
• Grids control width
                    • Content controls height



Monday, February 16, 2009
LEARN TO LOVE
                                GRIDS.




Monday, February 16, 2009
MARK-UP AND CSS
                                become predictable




Monday, February 16, 2009
UML TO DESCRIBE
                               both HTML and CSS



Monday, February 16, 2009

Recommended for you

Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance

Refactoring Trulia’s UI with SASS, OOCSS, and handlebars. My slides from jsconf 2013. Lot's of yummy details about the performance improvements we were able to make.

sassoocssstyle guides
Don't feed the trolls
Don't feed the trollsDon't feed the trolls
Don't feed the trolls

The JavaScript community is one of the most vibrant and fun groups I've ever been lucky enough to be a part of. Like any vibrant community, sometimes people don't play nicely. In this session, I will discuss what it has been like to be shy *and* be on twitter, mailing lists, and open source. I'll talk about my experiences consulting on massive CSS overhauls, and ways to defeat trolls -- including your own inner troll! I'll also share a timing attack for your brain that might just surprise you.

fluentconfjavascriptjsconf
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools

Let’s admit it, the tools for writing CSS aren’t very advanced. For the most part, the people who write tools don’t know about CSS and the people who know about CSS don’t write tools. Quite a conundrum! In this session, you’ll learn about good tools that can make development faster and maintenance easier. We’ll also talk a bit about where we can go from here. What tools do we need as sites are becoming more and more complex? We need to get beyond tools whose primary goal is to avoid hand-coding and realize that, as our techniques for writing CSS become more powerful, our tools can too! Session will include: * Validators * Preprocessors * Finding dead rules * Linting * CSS3 gradient tools * Performance measurement tools * Unit testing

image optimizationcompassblueprint
TEACHING OO CSS
                               To designers and engineers




Monday, February 16, 2009
A NATURAL PROGRESSION
                            from simple to more complex tasks.




Monday, February 16, 2009
CSS WISH LIST
                             So, maybe CSS isn’t perfect.




Monday, February 16, 2009
CSS WISH LIST
                            So, maybe CSS isn’t perfect.




    1. Extending objects - possible to make “sale module” inherit
       from “module”.
           .module{}
           .saleModule{extends: module;}




Monday, February 16, 2009

Recommended for you

5 Mistakes of Massive CSS
5 Mistakes of Massive CSS5 Mistakes of Massive CSS
5 Mistakes of Massive CSS

Nicole Sullivan and Stoyan Stefanov discuss their work optimizing CSS at Facebook and Yahoo!, As well as the state of CSS optimizations in the Alexa Top 1000 websites. What a mess! From Velocity Conference and Texas-Javascript.

css performance optimization facebook yahoo veloci
CSS Wish List @JSConf
CSS Wish List @JSConfCSS Wish List @JSConf
CSS Wish List @JSConf

From Nicole's talk at JSConf.eu where she presented her wish list for the future of CSS. She presents a brand-new expanded syntax which allows for prototypes, mixins, and variables and explains how a preprocessor can be used today to achieve a richer language in older browsers.

css specification prototype mixin variable oocss j
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...

The cascade is a poker game, but we've been playing our cards all wrong. Here Nicole suggests we stop trying to play to win to prevent code bloat, and simplify the cascade, using the order of the rulesets to allow overrides.

taetae09css
CSS WISH LIST
                            So, maybe CSS isn’t perfect.




    2. Or, class-order should impact the cascade.
           <div class=“module saleMod ducati”> ... </div>




Monday, February 16, 2009
CSS WISH LIST
                                So, maybe CSS isn’t perfect.

                            saleMod
                                                         Ducati Superbike 848

    3. Proximity should
                                                         The 848 is Ducati's most impressive
                                                         middleweight Superbike ever. Its exceptional
                                                         lightweight and legendary Ducati chassis set-up

       impact the cascade.                               combined with the smooth and thrilling torque
                                                         delivery of the L-Twin Desmo provide the ideal
                                                         way to enter the world of Ducati Superbikes.

       Nested modules, first
       one last in the CSS.                              Ducati Superbike 848
                                                         The 848 is Ducati's most impressive
                                                         middleweight Superbike ever. Its exceptional
                                                         lightweight and legendary Ducati chassis set-up
                                                         combined with the smooth and thrilling torque
                                                         delivery of the L-Twin Desmo.
           .protectiveGear{...}
           .saleMod{...}
                                                         Arai RX7 Corsair Full Face Helmet - Haga Fire
                                                         and Ice
                                                         The 848 is Ducati's most impressive
                                                         middleweight Superbike ever.

                   protectiveGear
Monday, February 16, 2009
PHOTO CREDITS

        “You Crack Me Up” by http://flickr.com/photos/nickwheeleroz/2474196275/in/photostream/
    •

        “red lego” by http://flickr.com/photos/niznoz/5753993/
    •

        “Pablo’s cubism period began at three” by http://flickr.com/photos/wwworks/2475349116/in/
    •
        set-72157608035966422/

        “Kuwait water tower” by http://flickr.com/photos/asam/327911794/
    •

        idigit_teddy: http://www.flickr.com/photos/design_inspiration/238542495/
    •

        lucianvenutian: http://www.flickr.com/photos/lucianvenutian/1142630637/
    •

        Gimli_36: http://www.flickr.com/photos/navillot/1878124531/
    •

        NathanFromDeVryEET: http://www.flickr.com/photos/thatguyfromcchs08/2300190277/
    •

        Stabilo Boss: http://flickr.com/photos/stabilo-boss/101793494/in/set-72057594060779001/
    •



Monday, February 16, 2009
Let’s keep talking...
                                       http://stubbornella.org
                                     nicole@stubbornella.org
                                   “stubbornella” on the web...
                             twitter, dopplr, slideshare, everywhere...




Monday, February 16, 2009

Recommended for you

Taming CSS Selectors
Taming CSS SelectorsTaming CSS Selectors
Taming CSS Selectors

From Nicole's presentation at the CSS Summit. This is brand new research regarding efficient CSS selector design. Practicing the rules outlined here will make your CSS lean, your site fast, and your maintenance minimal. A beautiful combination for people concerned with building performance into their sites.

selectorscssperformance
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?

Quantifier et améliorer la performance de tout produit Yahoo! mondial avec Éric Daspet pour ParisWeb 2008

smushitÉricdaspet"
7 Habits of Exceptional Performance
7 Habits of Exceptional Performance7 Habits of Exceptional Performance
7 Habits of Exceptional Performance

The 7 Habits of Exceptional Performance discusses techniques for optimizing website performance. It recommends flushing the buffer early, using GET requests for AJAX, preloading components, avoiding filters, measuring performance metrics, and balancing new features with performance improvements. High performance should be baked into the development process from the start. Key metrics to track include page weight, response time, and HTTP requests.

businessperformancebreakthroughs

More Related Content

What's hot

OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?
Michael Posso
 
CSS
CSSCSS
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
Mohammed Arif
 
Our Best Practices Are Killing Us
Our Best Practices Are Killing UsOur Best Practices Are Killing Us
Our Best Practices Are Killing Us
Nicole Sullivan
 
Javascript Basic
Javascript BasicJavascript Basic
Javascript Basic
Kang-min Liu
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
shreesenthil
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
Mario Hernandez
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
Jacob Nelson
 
jQuery PPT
jQuery PPTjQuery PPT
jQuery PPT
Dominic Arrojado
 
CSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive DesignCSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive Design
Zoe Gillenwater
 
Html
HtmlHtml
React hooks
React hooksReact hooks
React hooks
Ramy ElBasyouni
 
SASS - CSS with Superpower
SASS - CSS with SuperpowerSASS - CSS with Superpower
SASS - CSS with Superpower
Kanchha kaji Prajapati
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M
 
Javascript
JavascriptJavascript
Javascript
Mayank Bhatt
 
Javascript
JavascriptJavascript
Javascript
Nagarajan
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)
ChulHui Lee
 
JAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptxJAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptx
AchieversITAravind
 
React js
React jsReact js
React js
Jai Santhosh
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
Doug Neiner
 

What's hot (20)

OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?
 
CSS
CSSCSS
CSS
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
 
Our Best Practices Are Killing Us
Our Best Practices Are Killing UsOur Best Practices Are Killing Us
Our Best Practices Are Killing Us
 
Javascript Basic
Javascript BasicJavascript Basic
Javascript Basic
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
jQuery PPT
jQuery PPTjQuery PPT
jQuery PPT
 
CSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive DesignCSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive Design
 
Html
HtmlHtml
Html
 
React hooks
React hooksReact hooks
React hooks
 
SASS - CSS with Superpower
SASS - CSS with SuperpowerSASS - CSS with Superpower
SASS - CSS with Superpower
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)
 
JAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptxJAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptx
 
React js
React jsReact js
React js
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
 

Similar to Object Oriented CSS

The Fast And The Fabulous
The Fast And The FabulousThe Fast And The Fabulous
The Fast And The Fabulous
Nicole Sullivan
 
Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012
Stephen Hay
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012
Stephen Hay
 
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Stephen Hay
 
Drupal Themes: Past, present and future
Drupal Themes: Past, present and futureDrupal Themes: Past, present and future
Drupal Themes: Past, present and future
Nicolas Borda
 
Designing Special Feature Pages
Designing Special Feature PagesDesigning Special Feature Pages
Designing Special Feature Pages
Jackie Hai
 
Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008
Mark Ginnebaugh
 
Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02
eddiesauvao
 
catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web
tutorialsruby
 
catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web
tutorialsruby
 
Object Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And ApplicationsObject Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And Applications
PerconaPerformance
 
Web or SDK Development
Web or SDK DevelopmentWeb or SDK Development
Web or SDK Development
John Wilker
 
SharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common MistakesSharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common Mistakes
NicolePullin
 
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web componentsBoston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
BingWang77
 
JavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howJavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & how
Monty Dickerson
 
Understanding Dom
Understanding DomUnderstanding Dom
Understanding Dom
LiquidHub
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
divyapisces
 
Design Fast Websites
Design Fast WebsitesDesign Fast Websites
Design Fast Websites
Nicole Sullivan
 
Foundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTMLFoundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTML
Vashira Ravipanich
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place
WP Engine
 

Similar to Object Oriented CSS (20)

The Fast And The Fabulous
The Fast And The FabulousThe Fast And The Fabulous
The Fast And The Fabulous
 
Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012
 
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
 
Drupal Themes: Past, present and future
Drupal Themes: Past, present and futureDrupal Themes: Past, present and future
Drupal Themes: Past, present and future
 
Designing Special Feature Pages
Designing Special Feature PagesDesigning Special Feature Pages
Designing Special Feature Pages
 
Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008Fusion-io SSD and SQL Server 2008
Fusion-io SSD and SQL Server 2008
 
Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02Fusion Iossdandsqlserver2008 091022013943 Phpapp02
Fusion Iossdandsqlserver2008 091022013943 Phpapp02
 
catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web
 
catalog_09_web
catalog_09_webcatalog_09_web
catalog_09_web
 
Object Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And ApplicationsObject Oriented Css For High Performance Websites And Applications
Object Oriented Css For High Performance Websites And Applications
 
Web or SDK Development
Web or SDK DevelopmentWeb or SDK Development
Web or SDK Development
 
SharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common MistakesSharePoint Branding - 3 Most Common Mistakes
SharePoint Branding - 3 Most Common Mistakes
 
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web componentsBoston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
 
JavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howJavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & how
 
Understanding Dom
Understanding DomUnderstanding Dom
Understanding Dom
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
 
Design Fast Websites
Design Fast WebsitesDesign Fast Websites
Design Fast Websites
 
Foundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTMLFoundation of Web Application Developmnet - XHTML
Foundation of Web Application Developmnet - XHTML
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place
 

More from Nicole Sullivan

Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS
Nicole Sullivan
 
Why are you here?
Why are you here?Why are you here?
Why are you here?
Nicole Sullivan
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance
Nicole Sullivan
 
Don't feed the trolls
Don't feed the trollsDon't feed the trolls
Don't feed the trolls
Nicole Sullivan
 
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools
Nicole Sullivan
 
5 Mistakes of Massive CSS
5 Mistakes of Massive CSS5 Mistakes of Massive CSS
5 Mistakes of Massive CSS
Nicole Sullivan
 
CSS Wish List @JSConf
CSS Wish List @JSConfCSS Wish List @JSConf
CSS Wish List @JSConf
Nicole Sullivan
 
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Nicole Sullivan
 
Taming CSS Selectors
Taming CSS SelectorsTaming CSS Selectors
Taming CSS Selectors
Nicole Sullivan
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
Nicole Sullivan
 
7 Habits of Exceptional Performance
7 Habits of Exceptional Performance7 Habits of Exceptional Performance
7 Habits of Exceptional Performance
Nicole Sullivan
 
After YSlow "A"
After YSlow "A"After YSlow "A"
After YSlow "A"
Nicole Sullivan
 

More from Nicole Sullivan (12)

Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS
 
Why are you here?
Why are you here?Why are you here?
Why are you here?
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance
 
Don't feed the trolls
Don't feed the trollsDon't feed the trolls
Don't feed the trolls
 
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools
 
5 Mistakes of Massive CSS
5 Mistakes of Massive CSS5 Mistakes of Massive CSS
5 Mistakes of Massive CSS
 
CSS Wish List @JSConf
CSS Wish List @JSConfCSS Wish List @JSConf
CSS Wish List @JSConf
 
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
 
Taming CSS Selectors
Taming CSS SelectorsTaming CSS Selectors
Taming CSS Selectors
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
 
7 Habits of Exceptional Performance
7 Habits of Exceptional Performance7 Habits of Exceptional Performance
7 Habits of Exceptional Performance
 
After YSlow "A"
After YSlow "A"After YSlow "A"
After YSlow "A"
 

Recently uploaded

With Fear For Our Democracy I Dissent Shirt
With Fear For Our Democracy I Dissent ShirtWith Fear For Our Democracy I Dissent Shirt
With Fear For Our Democracy I Dissent Shirt
TeeFusion
 
2024_summer_my_dream_from_gnjpuser_20240708
2024_summer_my_dream_from_gnjpuser_202407082024_summer_my_dream_from_gnjpuser_20240708
2024_summer_my_dream_from_gnjpuser_20240708
kousato1
 
Arch.Bob _ 005 _ Architectural Portfolio
Arch.Bob _ 005 _ Architectural PortfolioArch.Bob _ 005 _ Architectural Portfolio
Arch.Bob _ 005 _ Architectural Portfolio
ssusere235001
 
Fall/winter Trend forcasting 2025 ppt .pdf
Fall/winter Trend forcasting 2025 ppt .pdfFall/winter Trend forcasting 2025 ppt .pdf
Fall/winter Trend forcasting 2025 ppt .pdf
Simran Choudhary
 
ITR Filing for the year of the 2023-24 .pdf
ITR Filing for the year of the 2023-24 .pdfITR Filing for the year of the 2023-24 .pdf
ITR Filing for the year of the 2023-24 .pdf
shyamraj39
 
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model SafeMahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
tarun sharma$A17
 
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
Aditi Sh.
 
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model SafeVaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
anany pandey$A17
 
Project on computer by saurabh very good 😊
Project on computer by saurabh very good 😊Project on computer by saurabh very good 😊
Project on computer by saurabh very good 😊
Saurabh computer
 
A Green City is an urban area that prioritizes sustainability
A Green City is an urban area that prioritizes sustainabilityA Green City is an urban area that prioritizes sustainability
A Green City is an urban area that prioritizes sustainability
Mostafa Abd Elrahman
 
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdhBalhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
NakulJain35
 
Professional Document Editing Services / Bank Statement Editing
Professional Document Editing Services / Bank Statement EditingProfessional Document Editing Services / Bank Statement Editing
Professional Document Editing Services / Bank Statement Editing
Edit Bank Statement
 
2024_summer_my_dream_gnjp_20240705_ks.pdf
2024_summer_my_dream_gnjp_20240705_ks.pdf2024_summer_my_dream_gnjp_20240705_ks.pdf
2024_summer_my_dream_gnjp_20240705_ks.pdf
kousato1
 
Fear and Faith (Slideshow by: Kal-el Go)
Fear and Faith (Slideshow by: Kal-el Go)Fear and Faith (Slideshow by: Kal-el Go)
Fear and Faith (Slideshow by: Kal-el Go)
Kal-el Shows
 
2024_summer_my_dream_from_users_gnjp_20240708
2024_summer_my_dream_from_users_gnjp_202407082024_summer_my_dream_from_users_gnjp_20240708
2024_summer_my_dream_from_users_gnjp_20240708
kousato1
 
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model SafeGhaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
pawankumar98845
 
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model SafeNehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
jiya khan$A17
 
Mastering Web Design: Essential Principles and Techniques for Modern Websites
Mastering Web Design: Essential Principles and Techniques for Modern WebsitesMastering Web Design: Essential Principles and Techniques for Modern Websites
Mastering Web Design: Essential Principles and Techniques for Modern Websites
webOdoctor Inc
 
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvjde-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
92nqjwr76x
 
Gender Equity in Architecture: Cultural Anthropology in Design Ideologies
Gender Equity in Architecture: Cultural Anthropology in Design IdeologiesGender Equity in Architecture: Cultural Anthropology in Design Ideologies
Gender Equity in Architecture: Cultural Anthropology in Design Ideologies
Aditi Sh.
 

Recently uploaded (20)

With Fear For Our Democracy I Dissent Shirt
With Fear For Our Democracy I Dissent ShirtWith Fear For Our Democracy I Dissent Shirt
With Fear For Our Democracy I Dissent Shirt
 
2024_summer_my_dream_from_gnjpuser_20240708
2024_summer_my_dream_from_gnjpuser_202407082024_summer_my_dream_from_gnjpuser_20240708
2024_summer_my_dream_from_gnjpuser_20240708
 
Arch.Bob _ 005 _ Architectural Portfolio
Arch.Bob _ 005 _ Architectural PortfolioArch.Bob _ 005 _ Architectural Portfolio
Arch.Bob _ 005 _ Architectural Portfolio
 
Fall/winter Trend forcasting 2025 ppt .pdf
Fall/winter Trend forcasting 2025 ppt .pdfFall/winter Trend forcasting 2025 ppt .pdf
Fall/winter Trend forcasting 2025 ppt .pdf
 
ITR Filing for the year of the 2023-24 .pdf
ITR Filing for the year of the 2023-24 .pdfITR Filing for the year of the 2023-24 .pdf
ITR Filing for the year of the 2023-24 .pdf
 
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model SafeMahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
Mahipalpur @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Arti Singh Top Model Safe
 
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...
 
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model SafeVaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
Vaishali @ℂall @Girls ꧁❤ 9873940964 ❤꧂VIP Akshra Ojha Top Model Safe
 
Project on computer by saurabh very good 😊
Project on computer by saurabh very good 😊Project on computer by saurabh very good 😊
Project on computer by saurabh very good 😊
 
A Green City is an urban area that prioritizes sustainability
A Green City is an urban area that prioritizes sustainabilityA Green City is an urban area that prioritizes sustainability
A Green City is an urban area that prioritizes sustainability
 
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdhBalhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
Balhani 1st yr (1).pdfhshhshshshshshshshdhdhdh
 
Professional Document Editing Services / Bank Statement Editing
Professional Document Editing Services / Bank Statement EditingProfessional Document Editing Services / Bank Statement Editing
Professional Document Editing Services / Bank Statement Editing
 
2024_summer_my_dream_gnjp_20240705_ks.pdf
2024_summer_my_dream_gnjp_20240705_ks.pdf2024_summer_my_dream_gnjp_20240705_ks.pdf
2024_summer_my_dream_gnjp_20240705_ks.pdf
 
Fear and Faith (Slideshow by: Kal-el Go)
Fear and Faith (Slideshow by: Kal-el Go)Fear and Faith (Slideshow by: Kal-el Go)
Fear and Faith (Slideshow by: Kal-el Go)
 
2024_summer_my_dream_from_users_gnjp_20240708
2024_summer_my_dream_from_users_gnjp_202407082024_summer_my_dream_from_users_gnjp_20240708
2024_summer_my_dream_from_users_gnjp_20240708
 
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model SafeGhaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
Ghaziabad @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Jya Khan Top Model Safe
 
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model SafeNehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
Nehru Place @ℂall @Girls ꧁❤ 9873777170 ❤꧂VIP Ruhi Singla Top Model Safe
 
Mastering Web Design: Essential Principles and Techniques for Modern Websites
Mastering Web Design: Essential Principles and Techniques for Modern WebsitesMastering Web Design: Essential Principles and Techniques for Modern Websites
Mastering Web Design: Essential Principles and Techniques for Modern Websites
 
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvjde-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
de-on-thi-vstep-bac-4.pdf vjknvjknvkjdnvjkdnvj
 
Gender Equity in Architecture: Cultural Anthropology in Design Ideologies
Gender Equity in Architecture: Cultural Anthropology in Design IdeologiesGender Equity in Architecture: Cultural Anthropology in Design Ideologies
Gender Equity in Architecture: Cultural Anthropology in Design Ideologies
 

Object Oriented CSS

  • 1. OBJECT ORIENTED CSS for high performance web applications and sites. Nicole Sullivan Monday, February 16, 2009
  • 2. Web Dev Philosophy • Work out of respect for the design. • Designers make our code as beautiful and clever on the outside as it is on the inside. • Respect the original design vision. consistent design = clean code = fast site. Monday, February 16, 2009
  • 3. “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  • 4. “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  • 5. CSS “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  • 6. REQUIRE EXPERT ABILITY JUST TO GET STARTED. this is not a sign of maturity. Monday, February 16, 2009
  • 7. FILE SIZE JUST KEEPS GETTING BIGGER As the site evolves we continuously modify the CSS. Monday, February 16, 2009
  • 8. CODE RE-USE IS ALMOST NONEXISTENT people don’t trust other developers code. Monday, February 16, 2009
  • 9. CODE IS TOO FRAGILE. Even the cleanest code gets ruined by the first non-expert to touch it. Monday, February 16, 2009
  • 10. WHAT IS THE MOST IMPORTANT MISTAKE TALENTED CODERS ARE MAKING? Writing really clever modules. Monday, February 16, 2009
  • 11. THE SIZE OF THEIR CSS WILL INCREASE in a 1:1 relationship with the number of blocks, pages, and complexity of content. Monday, February 16, 2009
  • 12. BUT, WE WANT A LOT! and sometimes those goals conflict. Monday, February 16, 2009
  • 13. and sometimes those goals conflict. Monday, February 16, 2009
  • 15. Modular - combinable , reusable, extensible. Light - One to many relationship between CSS and potential layouts. Fast - Minimal HTTP requests & minimal size. Future-proof - maintainable, semantic, standards oriented, prepared for future-browsers, redesign compatible. Visually interesting and adaptable - respectful of UED and mar keting constraints. Simplifies and speeds CSS development. Accessible - SEO, Screen readers, etc. Monday, February 16, 2009
  • 16. Modular - combinable , reusable, extensible. Light - One to many relationship between CSS and potential layouts. Fast - Minimal HTTP requests & minimal size. Future-proof - maintainable, semantic, standards oriented, prepared for future-browsers, redesign compatible. Visually interesting and adaptable - respectful of UED and mar keting constraints. Simplifies and speeds CSS development. Accessible - SEO, Screen readers, etc. Monday, February 16, 2009
  • 17. SOLUTION Object Oriented CSS Monday, February 16, 2009
  • 18. TWO MAIN PRINCIPLES 1. Separate Structure and Skin 2. Separate Container and Content Monday, February 16, 2009
  • 19. 10 BEST PRACTICES 1. Create a component 6. Minimize selectors library 7. Separate structure and skin 2. Use consistent semantic styles 8. Separate container and content 3. Design modules to be transparent on the inside. 9. Extend objects by applying multiple classes to an 4. Be flexible. element 5. Learn to love grids. 10. Use reset and fonts from YUI Monday, February 16, 2009
  • 20. 9 PITFALLS 1. Location dependent styles. 5. Don’t sprite every image together (unless your has very few pages). 2. Avoid specifying what tag a class applies. 6. Avoid height alignment 3. Avoid IDs to style inside the main content areas. 7. Text as text, not as images. 4. Avoid drop shadows and 8. Redundancy rounded corners over irregular backgrounds. 9. Avoid premature optimization. Monday, February 16, 2009
  • 21. CREATE A COMPONENT LIBRARY of reusable “legos” Monday, February 16, 2009
  • 22. Components are like legos Mix and match to create diverse and interesting pages. Monday, February 16, 2009
  • 23. SEPARATE CONTAINER AND CONTENT break the dependency between the container module and the content objects it contains. Monday, February 16, 2009
  • 25. Contour blocks Background blocks Content Objects - headings, paragraphs, lists, headers, footers, buttons, etc. Capital of the Canterbury region and the largest city on the South Island (population just over 300,000) exudes a palpable air of gentility and a connectedness with the mother country. Read more... X X 1:n Monday, February 16, 2009
  • 26. Build HTML from the component library. New pages should not generally require additional CSS Monday, February 16, 2009
  • 27. SITE-WIDE LEGOS • Headings • Lists (e.g. action list, external link list, product list, or feature list) • Module headers and footers • Grids • Buttons Monday, February 16, 2009
  • 28. Heading Level 1 Heading Level 2 HEADINGS Heading Level 3 Getting the look and feel you want with the semantics you Heading Level 4 need. Heading Level 5 Heading Level 6 Monday, February 16, 2009
  • 29. ‣ Toggle List Default List ‣ List Item 2 List Item 2 ‣ List Item 3 List Item 3 LISTS ❖ Action List ❖ List Item 2 Should be available to all ❖ List Item 3 modules on the page. Monday, February 16, 2009
  • 30. MEDIA Extending objects, a simple example. Monday, February 16, 2009
  • 31. <!-- media --> <div class=quot;media media_extquot;> <img class=quot;fixedMediaquot; src=quot;myImg.pngquot; /> <div class=quot;textquot;> ... </div> </div> Monday, February 16, 2009
  • 32. SEPARATE STRUCTURE AND SKIN abstract the structure of the block from the skin which is being applied. Monday, February 16, 2009
  • 33. block inner hd BLOCK bd class can be extended by adding additional classes to the block element. ft Monday, February 16, 2009
  • 34. Reusing elements makes them performance “freebies” Monday, February 16, 2009
  • 35. Legos first Design individual pages only once all the legos have been defined. Monday, February 16, 2009
  • 36. Pitfalls What not to do. Monday, February 16, 2009
  • 38. Nearly identical modules Headings 3 and 5 are too similar. Monday, February 16, 2009
  • 39. Rule of thumb: If two modules look too similar to include on the same page, they are too similar to include together in a site, choose one! Monday, February 16, 2009
  • 40. USE CONSISTENT SEMANTIC STYLES Monday, February 16, 2009
  • 41. Heading should not become a A Heading in another part of the page. Monday, February 16, 2009
  • 42. Consistency Writing more rules to overwrite the crazy rules from before. e.g. Heading should behave predictably in any module. Monday, February 16, 2009
  • 43. How about an example? Yahoo! Personal Finance Monday, February 16, 2009
  • 44. 2+ different tab styles. Could they use the same images? Monday, February 16, 2009
  • 45. 3 contour components are too similar. Chose one. Monday, February 16, 2009
  • 46. Changes in module width, background color, or background image are an excellent example of module reuse. Monday, February 16, 2009
  • 47. Mix and match Container and content objects to achieve high performance design. Monday, February 16, 2009
  • 48. DESIGN MODULES TO BE TRANSPARENT on the inside. Monday, February 16, 2009
  • 49. Making it look fab Requires careful choice of pixels. Bonus: Consider PNG8 for progressive enhancement http://alistapart.com/articles/mountaintop/ Monday, February 16, 2009
  • 50. Pitfalls Variable or gradient backgrounds. Monday, February 16, 2009
  • 51. NEVER SPECIFY ELEMENT Do: .myClass {...} Don’t: div.myClass {...} Exception: Extending a Extend the error class to class to work on several apply to strong or div elements. elements specify the specific tag in the rule that e.g..error{} which, by declares only the values that are different than the default, applies to a P. default value. Monday, February 16, 2009
  • 52. BE FLEXIBLE. Extensible height and width. Monday, February 16, 2009
  • 53. • Grids control width • Content controls height Monday, February 16, 2009
  • 54. LEARN TO LOVE GRIDS. Monday, February 16, 2009
  • 55. MARK-UP AND CSS become predictable Monday, February 16, 2009
  • 56. UML TO DESCRIBE both HTML and CSS Monday, February 16, 2009
  • 57. TEACHING OO CSS To designers and engineers Monday, February 16, 2009
  • 58. A NATURAL PROGRESSION from simple to more complex tasks. Monday, February 16, 2009
  • 59. CSS WISH LIST So, maybe CSS isn’t perfect. Monday, February 16, 2009
  • 60. CSS WISH LIST So, maybe CSS isn’t perfect. 1. Extending objects - possible to make “sale module” inherit from “module”. .module{} .saleModule{extends: module;} Monday, February 16, 2009
  • 61. CSS WISH LIST So, maybe CSS isn’t perfect. 2. Or, class-order should impact the cascade. <div class=“module saleMod ducati”> ... </div> Monday, February 16, 2009
  • 62. CSS WISH LIST So, maybe CSS isn’t perfect. saleMod Ducati Superbike 848 3. Proximity should The 848 is Ducati's most impressive middleweight Superbike ever. Its exceptional lightweight and legendary Ducati chassis set-up impact the cascade. combined with the smooth and thrilling torque delivery of the L-Twin Desmo provide the ideal way to enter the world of Ducati Superbikes. Nested modules, first one last in the CSS. Ducati Superbike 848 The 848 is Ducati's most impressive middleweight Superbike ever. Its exceptional lightweight and legendary Ducati chassis set-up combined with the smooth and thrilling torque delivery of the L-Twin Desmo. .protectiveGear{...} .saleMod{...} Arai RX7 Corsair Full Face Helmet - Haga Fire and Ice The 848 is Ducati's most impressive middleweight Superbike ever. protectiveGear Monday, February 16, 2009
  • 63. PHOTO CREDITS “You Crack Me Up” by http://flickr.com/photos/nickwheeleroz/2474196275/in/photostream/ • “red lego” by http://flickr.com/photos/niznoz/5753993/ • “Pablo’s cubism period began at three” by http://flickr.com/photos/wwworks/2475349116/in/ • set-72157608035966422/ “Kuwait water tower” by http://flickr.com/photos/asam/327911794/ • idigit_teddy: http://www.flickr.com/photos/design_inspiration/238542495/ • lucianvenutian: http://www.flickr.com/photos/lucianvenutian/1142630637/ • Gimli_36: http://www.flickr.com/photos/navillot/1878124531/ • NathanFromDeVryEET: http://www.flickr.com/photos/thatguyfromcchs08/2300190277/ • Stabilo Boss: http://flickr.com/photos/stabilo-boss/101793494/in/set-72057594060779001/ • Monday, February 16, 2009
  • 64. Let’s keep talking... http://stubbornella.org nicole@stubbornella.org “stubbornella” on the web... twitter, dopplr, slideshare, everywhere... Monday, February 16, 2009

Editor's Notes

  1. Introductions - Nicole Sullivan, worked at yahoo, specialist in scalable high performance websites.
  2. After which he said that &#x201C;CSS is broken&#x201D; Very common to say that CSS is broken when it is misunderstood. Emerging frameworks are a sign that CSS is broken. Java developers -- Math class TRANSITION On the other hand, I honestly do believe we are doing it wrong.
  3. couple years coding in the basement by yourself before you are remotely useful. Profession needs to accomodate entry level, mid level, and architect level developers. Frankly, I&#x2019;m tired of writing rounded corner boxes. I&#x2019;ve done it 1000 times already. What I want is a system that allows newbies to do that part so I can focus on the architect level challenges.
  4. New (different) html pages should be able to be built without modifying the CSS.
  5. And for good reason. Currently there is no consistency or predictability.
  6. Perfectly accessible or high performance website, and then the first newbie to touch it, ruins it. Our code should be robust enough that newbies can contribute while maintaining the standards we&#x2019;ve set.
  7. yoga, balance metaphor
  8. &#x201C;Once upon a time...&#x201D; pages to modules to objects
  9. If we build new HTML pages from a component library, new pages won&#x2019;t require new css. So what goes into a component library. First up, content objects.
  10. Anything else that should be consistent site-wide.
  11. media, media extended, wrap Open editable zone
  12. presentational elements
  13. function created to return area that occasionally returns the diameter instead.
  14. not because you can&#x2019;t do it everyone in this room could position something to the left and something else to the right. Also because, when working with beginners, they need not to figure out a brand new system with each module.
  15. If ducati and saleMod both specify border, and the rules are the same strength, ducati should &#x201C;win&#x201D; as it is the last class specified.
  16. Support for child element selectors would solve this, but would increase the length of the rules. E > F