How do you scale CSS for millions of visitors or thousands of pages? The slides from Nicole's presentation at Web Directions North in Denver will show you how to use Object Oriented CSS to write fast, maintainable, standards-based front end code. Adds much needed predictability to CSS so that even beginners can participate in writing beautiful, standards-compliant, fast websites.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
Achievers IT React JS Certification Course in Bangalore. ... UI Development training in Marathahalli ; also benefits as UI training online and UI Developer
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.
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!
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
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.
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.
Creating a full-page multimedia feature, from design concept to coded implementation.
Presentation for the CoPress College Web Design Camp 2009, by Jackie Hai.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
JavaScript can dynamically manipulate the content, structure, and styling of an HTML document through the Document Object Model (DOM). The DOM represents an HTML document as nodes that can be accessed and modified with JavaScript. Common tasks include dynamically creating and adding elements, handling user events like clicks, and updating content by accessing DOM elements by their id or other attributes.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
Achievers IT React JS Certification Course in Bangalore. ... UI Development training in Marathahalli ; also benefits as UI training online and UI Developer
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.
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!
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
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Stephen Hay
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.
Drupal Themes: Past, present and futureNicolas Borda
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.
Creating a full-page multimedia feature, from design concept to coded implementation.
Presentation for the CoPress College Web Design Camp 2009, by Jackie Hai.
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.
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.
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.
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.
Object Oriented Css For High Performance Websites And ApplicationsPerconaPerformance
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.
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.
SharePoint Branding - 3 Most Common MistakesNicolePullin
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.
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web componentsBingWang77
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.
JavaScript: the who, what, when, where, why, & howMonty Dickerson
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.
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.
Building an E-commerce website in MEAN stackdivyapisces
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.
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.
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.
Creating Living Style Guides to Improve PerformanceNicole Sullivan
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.
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.
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
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.
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.
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...Nicole Sullivan
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.
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.
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.
The document discusses 20 additional best practices for improving web performance beyond the original 14 recommendations from YSlow. It covers techniques like flushing the buffer early, splitting components for post-loading, preloading necessary assets, reducing unnecessary DOM elements, optimizing images through techniques like converting to smaller file formats and using CSS sprites, and designing for mobile performance. The document provides examples and case studies to illustrate the recommendations and cites additional resources on web performance.
With Fear For Our Democracy I Dissent ShirtTeeFusion
In these times of increasing political polarization, many people feel a deep concern for the health of American democracy. If you're one of them, then the "With Fear For Our Democracy, I Dissent" shirt might be the perfect way to express your convictions.
https://dribbble.com/shots/24472856-With-Fear-For-Our-Democracy-I-Dissent-Shirt
An Introduction to Housing: Core Concepts and Historical Evolution from Prehi...Aditi Sh.
This comprehensive PDF explores the definition and fundamental core of housing neighborhoods, tracing the evolution of housing from prehistoric times 2.5 million years ago to the early 19th century Industrial Revolution. It delves into the various stages of housing development, highlighting key innovations, cultural influences, and technological advancements that shaped the way humans have built and inhabited homes throughout history. This document serves as an essential resource for understanding the dynamic history of human habitation and the ongoing transformation of housing neighborhoods.
Professional Document Editing Services / Bank Statement EditingEdit Bank Statement
Need to modify any document? Look no further! I offer expert editing services for all types of documents, ensuring accuracy and confidentiality. Whether you need adjustments for bank statements, certificates, bills, pay stubs, or any other documents, I can help. Contact me now for prompt and reliable editing services!
Services Offered:
• PDF Editing: Professional edits for all types of PDF documents.
• Bank Statement Editing: Accurate and detailed edits for any bank statement.
• Document Editing: Comprehensive edits for all kinds of documents.
• Certificate Correction: Correct and improve certificates for clarity and accuracy.
• Bill Editing: Modify and correct any bill details as needed.
• Pay Stub Editing: Accurate editing of pay stubs for personal or professional use.
• Anything You Want to Edit: Custom editing services tailored to your needs.
#EditBankStatement #BankStatementEditing #Bank #StatementEdit #BankStatementEdit #BankStatementEditing #EditPaystubs #FinancialServices #Paystubs #CheckStubs #CheckStubService #BankServices #USA #Canada #Texas #California #America #UK #London #EditPDF #BankFiles #BankFinance #Statements #BankStatement #BankStatements #BankStatementLoan #EditBankStatementPhotoshop #EditBankStatementsFree #ExplorePage #Top #ForYou #FYP #Instagram #Documents #Edits #Photoshop #GraphicDesign #Illustrator #Illustration #Creative #Design #Designer #EditDrivingLicense #EditPaystubs #EditBankStatement #EditAnyDocument #Editing #Paystubs #PaystubServices #PaystubsNeeded #PaystubService #PaystubService #EditPDFOnlineFree #PDFToWord #PDFEditorFree #PDFEditorOnline #HowToEditABankStatement #FakeBankStatement #HowToEditBankStatementPDF #PDFEditor
Mastering Web Design: Essential Principles and Techniques for Modern WebsiteswebOdoctor Inc
Dive into the dynamic world of web design with our comprehensive guide that covers everything from foundational principles to advanced techniques. Whether you're a beginner looking to understand the basics or a seasoned designer aiming to refine your skills, this article offers invaluable insights. Explore topics such as responsive design, user experience (UX) optimization, color theory, typography essentials, and the latest trends shaping the digital landscape. Gain practical knowledge and actionable tips to create visually appealing, functional, and user-friendly websites that stand out in today's competitive online environment. Perfect for designers, developers, and anyone passionate about crafting compelling web experiences, this guide equips you with the tools needed to elevate your web design proficiency to new heights.
Gender Equity in Architecture: Cultural Anthropology in Design IdeologiesAditi Sh.
This PowerPoint presentation offers a comparative analysis between a female and a male architect, focusing on their ideologies, approaches, concepts, and interpretations for a mixed-use building project. This study prompts a reconsideration of architectural inspiration and priorities, advocating for gender equity and cultural anthropology in architectural design.
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
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
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
Introductions - Nicole Sullivan, worked at yahoo, specialist in scalable high performance websites.
After which he said that “CSS is broken”
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.
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’m tired of writing rounded corner boxes. I’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.
New (different) html pages should be able to be built without modifying the CSS.
And for good reason. Currently there is no consistency or predictability.
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’ve set.
yoga, balance metaphor
“Once upon a time...” pages to modules to objects
If we build new HTML pages from a component library, new pages won’t require new css.
So what goes into a component library. First up, content objects.
Anything else that should be consistent site-wide.
media, media extended, wrap
Open editable zone
presentational elements
function created to return area that occasionally returns the diameter instead.
not because you can’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.
If ducati and saleMod both specify border, and the rules are the same strength, ducati should “win” as it is the last class specified.
Support for child element selectors would solve this, but would increase the length of the rules. E > F