1. The document discusses the CSS Flexible Box Layout Module (flexbox) and how to implement it.
2. Flexbox allows items to be laid out flexibly on a page and makes it easier to create responsive page layouts without needing many media queries.
3. The document demonstrates how to use various flexbox properties like flex-direction, flex-wrap, justify-content, and order to create common layouts like navigation bars, forms, and grids.
The Flexbox (or Flexible Box) Layout Model is a set of CSS attributes allowing for the efficient creation of robust, multi-screen application layouts. Flexbox uses a dual-axis container/item layout model allowing for powerful approaches to element space distribution, alignment, and sizing. This can be a tremendous boon for web projects with dynamic data and design flux. It may also tremendously simplify responsive layouts that are dependent on commonly complicated grid models.
This presentation will introduce the mechanics of the Flexible Box Model and demonstrate its capability for simplifying markup and styling.
Putting Flexbox into Practice presentation for Fronteers conference, October 10, 2013. Slightly updated version of slides posted in September. Get links to the demo page and related resources at http://www.zomigi.com/blog/flexbox-presentation.
Flexbox: One Giant Leap for Web Layout (GenerateConf 2013)Stephen Hay
This document provides an introduction to using Flexbox for web layout. It discusses key Flexbox terminology like flex containers, flex items, main axis and cross axis. It explains how to set the flex direction and wrap behavior. The document covers how to use flex properties to control flex grow, shrink and basis behaviors. It also discusses alignment of flex items along the main and cross axes using properties like justify-content and align-items. The document provides examples of common use cases for Flexbox like centering, wrapping items, and form layouts. It encourages leaving behind old layout methods and exploring the capabilities of Flexbox.
Intro to Flexbox - A Magical CSS PropertyAdam Soucie
This document introduces flexbox, a CSS property for laying out items in rows or columns. It discusses what flexbox is, the container and item properties that control flexbox layout, browser support for flexbox, and examples of how flexbox could be used in WordPress themes. The presenter is a freelance web developer and WordPress organizer who gives talks on flexbox and WordPress.
This document provides an overview of CSS Flexbox including:
1) An introduction to Flexbox and its advantages over other layout methods like floats and grids.
2) Examples of how to use Flexbox properties to control layout including flex-direction, flex-wrap, justify-content, align-items and more.
3) Real world use cases demonstrating how Flexbox can be used for tasks like vertical alignment, equal height columns, and responsive layouts.
This document provides an overview of flexbox layout including:
- A brief history of layout techniques prior to flexbox such as floats and inline-block.
- An introduction to flexbox including the flex container, flex items, main axis and cross axis.
- Explanations of common flexbox properties like flex-direction, justify-content, align-items and examples of how they work.
- Notes on browser support for flexbox and resources for learning more.
Flexbox is a modern layout method in CSS that allows for flexible and responsive page layouts. It addresses shortcomings of older methods like floats, tables, and inline blocks by allowing for full control over alignment, order, and distribution of space between items. Flexbox makes it easy to create complex responsive layouts that were previously difficult to achieve without hacks. While not a silver bullet, flexbox excels at component-based and content-driven page layouts. Tools like autoprefixer and fallbacks help provide support for older browsers.
The Flexbox (or Flexible Box) Layout Model is a set of CSS attributes allowing for the efficient creation of robust, multi-screen application layouts. Flexbox uses a dual-axis container/item layout model allowing for powerful approaches to element space distribution, alignment, and sizing. This can be a tremendous boon for web projects with dynamic data and design flux. It may also tremendously simplify responsive layouts that are dependent on commonly complicated grid models.
This presentation will introduce the mechanics of the Flexible Box Model and demonstrate its capability for simplifying markup and styling.
Putting Flexbox into Practice presentation for Fronteers conference, October 10, 2013. Slightly updated version of slides posted in September. Get links to the demo page and related resources at http://www.zomigi.com/blog/flexbox-presentation.
Flexbox: One Giant Leap for Web Layout (GenerateConf 2013)Stephen Hay
This document provides an introduction to using Flexbox for web layout. It discusses key Flexbox terminology like flex containers, flex items, main axis and cross axis. It explains how to set the flex direction and wrap behavior. The document covers how to use flex properties to control flex grow, shrink and basis behaviors. It also discusses alignment of flex items along the main and cross axes using properties like justify-content and align-items. The document provides examples of common use cases for Flexbox like centering, wrapping items, and form layouts. It encourages leaving behind old layout methods and exploring the capabilities of Flexbox.
Intro to Flexbox - A Magical CSS PropertyAdam Soucie
This document introduces flexbox, a CSS property for laying out items in rows or columns. It discusses what flexbox is, the container and item properties that control flexbox layout, browser support for flexbox, and examples of how flexbox could be used in WordPress themes. The presenter is a freelance web developer and WordPress organizer who gives talks on flexbox and WordPress.
This document provides an overview of CSS Flexbox including:
1) An introduction to Flexbox and its advantages over other layout methods like floats and grids.
2) Examples of how to use Flexbox properties to control layout including flex-direction, flex-wrap, justify-content, align-items and more.
3) Real world use cases demonstrating how Flexbox can be used for tasks like vertical alignment, equal height columns, and responsive layouts.
This document provides an overview of flexbox layout including:
- A brief history of layout techniques prior to flexbox such as floats and inline-block.
- An introduction to flexbox including the flex container, flex items, main axis and cross axis.
- Explanations of common flexbox properties like flex-direction, justify-content, align-items and examples of how they work.
- Notes on browser support for flexbox and resources for learning more.
Flexbox is a modern layout method in CSS that allows for flexible and responsive page layouts. It addresses shortcomings of older methods like floats, tables, and inline blocks by allowing for full control over alignment, order, and distribution of space between items. Flexbox makes it easy to create complex responsive layouts that were previously difficult to achieve without hacks. While not a silver bullet, flexbox excels at component-based and content-driven page layouts. Tools like autoprefixer and fallbacks help provide support for older browsers.
The document discusses HTML layout techniques before and with Flexbox. Before Flexbox, common layout properties included display, position, float, and clear. Flexbox introduces the flex container and flex items. The flex container controls the flow using properties like flex-direction, flex-wrap, justify-content, and align-items. Flex items can be reordered or resized using properties like order, flex-grow, and flex-shrink. The document also discusses solutions for older browsers like IE9 that do not support Flexbox natively.
Flexbox provides a new way to lay out items in rows or columns and allows developers to easily align and distribute space among items within the parent flex container. It solves common layout problems like equal height columns more semantically and responsively than previous techniques like floats or tables. While flexbox is not a silver bullet and is designed primarily for content-driven layouts rather than grids, it handles responsive design, vertical alignment, and ordering of items better than previous methods. Polyfills exist to support older browsers, and tools like Flexbox Grid and Bootstrap's alpha grid system provide frameworks to help build layouts with flexbox.
Flexbox is a CSS layout mode that allows elements to be arranged and aligned in an intelligent and space efficient way. It lets items flex and expand to fill additional space, shrink to fit into smaller spaces, and rearrange themselves depending on screen size and device orientation. Some key aspects of flexbox include the flex container, flex items, main and cross axes, flex direction, justify and align content, flex wrap, and flex grow/shrink properties.
Il talk ha come scopo raccontare come sia stato dapprima l'introduzione di strumenti di preprocessori come sass/less/stylus e in un secondo momento il passaggio a strumento di postproduzione del css come appunto postcss
The document discusses various properties related to CSS Flexbox layout. It introduces flex-container and flex-item properties such as flex-direction, flex-wrap, flex-flow, justify-content, align-items, and align-content. Flex-direction controls the main axis orientation, flex-wrap allows items to wrap onto multiple lines, and justify-content and align-items control item alignment on the main and cross axes respectively. The document provides examples and visuals to illustrate how each property affects flex item layout.
The document provides an agenda and overview for a class on untangling the web that covers Javascript topics like JSON, server-side and client-side JS, routes in Node.js, setting up Bluemix applications, using Bluemix services, and working on a project. It discusses moving a cars example from using local WebSQL to a remote SQL database in Bluemix, including connecting a MySQL database, creating tables and fields, querying and inserting data using Node.js and callbacks, and getting data from the database to render on the client-side. Homework involves taking the Bluemix implementation shown and rendering the cloud data as the previous cars example using JSON parsing.
With solidified syntax and great browser support, flexbox, the CSS layout module that can make your layouts more flexible and responsive with ease, is finally ready to be used in your real-world work. We’ll talk about the when, what, and how of using flexbox today: when it’s a great choice use flexbox (and when not to), what UI and UX problems it can help you solve, and how to add it to your layouts in a robust way that doesn’t harm non-supporting browsers or accessibility. You’ll learn a step-by-step process for deciding on and deploying flexbox, with lots of examples along the way of flexbox in the wild.
Enhancing Responsiveness With Flexbox (Smashing Conference)Zoe Gillenwater
View the demos and get links to related files at http://zomigi.com/blog/rwd-flexbox. In this presentation, I talked about how to actually put flexbox to use in the real world—today. I demonstrated a bunch of practical ideas for how to use flexbox as progressive enhancement to improve sizing, spacing, and order in responsive web design, while still ensuring non-supporting browsers get an acceptable fallback experience.
When VCU switched to Blue course evaluation system, we had a short four week deadline to customize, test, pilot and implement it full scale or wait another semester. On the way we encountered quite a few technical, logistical and bureaucratic challenges. We were able to finish it on time including full automation of the projects and a custom skin with VCU colors. After migration, we successfully conducted over 100,000 evaluations for 23,000 students across 3800 courses using 60 different survey instruments. In this session we will look at some of the challenges we faced and lessons we learnt.
Design on a scalable, state-based, front-end application architecture to manage business logic and control flow. We'll synthesize a number of programming patterns to help you decouple not only views and data, but also navigation paradigms and transitions between states to keep your product agile and moving forward without having to refactor.
Talk at FullStack 2016: Automating documentation on JavaScript projectsMarcos Iglesias
Documenting code is an important task that few teams get right. Docs get easily outdated, everybody hates writing them and sometimes developers don’t even use them at all.
In this talk, you will learn about an approach to documentation writing based on adding comments directly to the source code. I will also show you its benefits applied to three different types of codebases.
You will also learn how to generate documentation from those same comments in two different flavors as well as when each of them work best.
Slides for my tutorial from Velocity 2014 on some of the more advanced features in WebPagetest.
Video is available on Youtube:
Part 1: http://youtu.be/6UeRMMI_IzI
Part 2: http://youtu.be/euVYHee1f1M
1) Isomorphic JavaScript allows code to run on both the client and server by being environment-agnostic or shimmed for different environments.
2) It improves performance by enabling faster initial page loads and improves SEO by allowing search engines to crawl single page apps.
3) Popular libraries like Underscore, Backbone, Handlebars, and React can be used isomorphically, and isomorphic applications exist on a spectrum from sharing small parts of code to entire applications.
The document discusses best practices for handling JavaScript errors. It recommends 7 rules: 1) assume code will fail, 2) log errors to servers, 3) handle errors in code not browsers, 4) identify where errors may occur, 5) throw your own errors, 6) distinguish fatal from non-fatal errors, and 7) provide a debug mode. The document covers different types of errors and strategies for logging, catching, and displaying errors to users.
An update to the Scalable JavaScript presentation of 2009. Describes how to piece together a JavaScript application framework designed for maintainability.
Danielle MacInnis is an experienced facilitator who runs teaming workshops. She draws on her experience in various roles to keep discussions focused on team goals and address unproductive behaviors. Common reasons teams fail include personal agendas taking priority over team effort and a lack of shared vision. Her workshops explore the five dysfunctions of a team according to Patrick Lencioni: lack of trust, fear of conflict, lack of commitment, avoidance of accountability, and inattention to results. Activities are used to build trust and address each dysfunction.
Fpt's human resource strategies in 2009 (a look back)Vu Hung Nguyen
FYI a good slide about HR strategy by Mr. Dat, Head of HR in FPT since 2007. Some points:
- FPT has HR management systems (such as PeopleSoft)
- FPT has short, middle and long term plan about HR (< 1 year, 1-2 years, 2-5 years)
- They define, design and execute HR functions
- Some functional groups: recruiment, learning/training/dev. and staff managements
- They have basic design and principles per se
- 5 strategies, 9 action programmes defined at group level
ref. http://www.slideshare.net/johnfkenedy/hr-strategy-fpt
From a monolithic Ruby on Rails app to the JVMPhil Calçado
This document summarizes a presentation about moving a large Ruby on Rails application to the Java Virtual Machine (JVM). It discusses some of the challenges of scaling Rails, including lack of concurrency and proper garbage collection. It then explores options for using JVM languages like non-Rails Ruby, Scala, and Clojure. The presentation advocates trying a microservices approach using these languages to help enable experimentation and ease deployment challenges. In summary, it outlines SoundCloud's journey in extracting parts of its monolithic Rails app and rewriting them on the JVM using different languages like Clojure and Scala.
Leadership Tools for Better Teams - Personal History Exercise - 20150615Joel Wenger
The document provides guidance for teams to build trust through a personal history exercise where each member gives a brief presentation about their background, including hometown, education, work experience, and one unique thing about themselves. The goal is to help team members relate to one another, avoid inaccurate assumptions, and encourage empathy. Examples of presentation formats are also included to illustrate the type of casual, fun sharing of personal information that is encouraged.
I gave a talk at WordCamp mumbai 2014, where i presented the idea that we can create more realistic prototypes on WordPress without writing single line of code. I believe that is the future of Prototyping
The document discusses the CSS box model which defines how elements are laid out using properties like margins, borders, padding, height and width. It describes how different browsers like Internet Explorer previously calculated box dimensions differently than other browsers, sometimes causing broken layouts. It provides workarounds like box model hacks to avoid these issues and suggests best practices like cross-browser testing.
The document discusses HTML layout techniques before and with Flexbox. Before Flexbox, common layout properties included display, position, float, and clear. Flexbox introduces the flex container and flex items. The flex container controls the flow using properties like flex-direction, flex-wrap, justify-content, and align-items. Flex items can be reordered or resized using properties like order, flex-grow, and flex-shrink. The document also discusses solutions for older browsers like IE9 that do not support Flexbox natively.
Flexbox provides a new way to lay out items in rows or columns and allows developers to easily align and distribute space among items within the parent flex container. It solves common layout problems like equal height columns more semantically and responsively than previous techniques like floats or tables. While flexbox is not a silver bullet and is designed primarily for content-driven layouts rather than grids, it handles responsive design, vertical alignment, and ordering of items better than previous methods. Polyfills exist to support older browsers, and tools like Flexbox Grid and Bootstrap's alpha grid system provide frameworks to help build layouts with flexbox.
Flexbox is a CSS layout mode that allows elements to be arranged and aligned in an intelligent and space efficient way. It lets items flex and expand to fill additional space, shrink to fit into smaller spaces, and rearrange themselves depending on screen size and device orientation. Some key aspects of flexbox include the flex container, flex items, main and cross axes, flex direction, justify and align content, flex wrap, and flex grow/shrink properties.
Il talk ha come scopo raccontare come sia stato dapprima l'introduzione di strumenti di preprocessori come sass/less/stylus e in un secondo momento il passaggio a strumento di postproduzione del css come appunto postcss
The document discusses various properties related to CSS Flexbox layout. It introduces flex-container and flex-item properties such as flex-direction, flex-wrap, flex-flow, justify-content, align-items, and align-content. Flex-direction controls the main axis orientation, flex-wrap allows items to wrap onto multiple lines, and justify-content and align-items control item alignment on the main and cross axes respectively. The document provides examples and visuals to illustrate how each property affects flex item layout.
The document provides an agenda and overview for a class on untangling the web that covers Javascript topics like JSON, server-side and client-side JS, routes in Node.js, setting up Bluemix applications, using Bluemix services, and working on a project. It discusses moving a cars example from using local WebSQL to a remote SQL database in Bluemix, including connecting a MySQL database, creating tables and fields, querying and inserting data using Node.js and callbacks, and getting data from the database to render on the client-side. Homework involves taking the Bluemix implementation shown and rendering the cloud data as the previous cars example using JSON parsing.
With solidified syntax and great browser support, flexbox, the CSS layout module that can make your layouts more flexible and responsive with ease, is finally ready to be used in your real-world work. We’ll talk about the when, what, and how of using flexbox today: when it’s a great choice use flexbox (and when not to), what UI and UX problems it can help you solve, and how to add it to your layouts in a robust way that doesn’t harm non-supporting browsers or accessibility. You’ll learn a step-by-step process for deciding on and deploying flexbox, with lots of examples along the way of flexbox in the wild.
Enhancing Responsiveness With Flexbox (Smashing Conference)Zoe Gillenwater
View the demos and get links to related files at http://zomigi.com/blog/rwd-flexbox. In this presentation, I talked about how to actually put flexbox to use in the real world—today. I demonstrated a bunch of practical ideas for how to use flexbox as progressive enhancement to improve sizing, spacing, and order in responsive web design, while still ensuring non-supporting browsers get an acceptable fallback experience.
When VCU switched to Blue course evaluation system, we had a short four week deadline to customize, test, pilot and implement it full scale or wait another semester. On the way we encountered quite a few technical, logistical and bureaucratic challenges. We were able to finish it on time including full automation of the projects and a custom skin with VCU colors. After migration, we successfully conducted over 100,000 evaluations for 23,000 students across 3800 courses using 60 different survey instruments. In this session we will look at some of the challenges we faced and lessons we learnt.
Design on a scalable, state-based, front-end application architecture to manage business logic and control flow. We'll synthesize a number of programming patterns to help you decouple not only views and data, but also navigation paradigms and transitions between states to keep your product agile and moving forward without having to refactor.
Talk at FullStack 2016: Automating documentation on JavaScript projectsMarcos Iglesias
Documenting code is an important task that few teams get right. Docs get easily outdated, everybody hates writing them and sometimes developers don’t even use them at all.
In this talk, you will learn about an approach to documentation writing based on adding comments directly to the source code. I will also show you its benefits applied to three different types of codebases.
You will also learn how to generate documentation from those same comments in two different flavors as well as when each of them work best.
Slides for my tutorial from Velocity 2014 on some of the more advanced features in WebPagetest.
Video is available on Youtube:
Part 1: http://youtu.be/6UeRMMI_IzI
Part 2: http://youtu.be/euVYHee1f1M
1) Isomorphic JavaScript allows code to run on both the client and server by being environment-agnostic or shimmed for different environments.
2) It improves performance by enabling faster initial page loads and improves SEO by allowing search engines to crawl single page apps.
3) Popular libraries like Underscore, Backbone, Handlebars, and React can be used isomorphically, and isomorphic applications exist on a spectrum from sharing small parts of code to entire applications.
The document discusses best practices for handling JavaScript errors. It recommends 7 rules: 1) assume code will fail, 2) log errors to servers, 3) handle errors in code not browsers, 4) identify where errors may occur, 5) throw your own errors, 6) distinguish fatal from non-fatal errors, and 7) provide a debug mode. The document covers different types of errors and strategies for logging, catching, and displaying errors to users.
An update to the Scalable JavaScript presentation of 2009. Describes how to piece together a JavaScript application framework designed for maintainability.
Danielle MacInnis is an experienced facilitator who runs teaming workshops. She draws on her experience in various roles to keep discussions focused on team goals and address unproductive behaviors. Common reasons teams fail include personal agendas taking priority over team effort and a lack of shared vision. Her workshops explore the five dysfunctions of a team according to Patrick Lencioni: lack of trust, fear of conflict, lack of commitment, avoidance of accountability, and inattention to results. Activities are used to build trust and address each dysfunction.
Fpt's human resource strategies in 2009 (a look back)Vu Hung Nguyen
FYI a good slide about HR strategy by Mr. Dat, Head of HR in FPT since 2007. Some points:
- FPT has HR management systems (such as PeopleSoft)
- FPT has short, middle and long term plan about HR (< 1 year, 1-2 years, 2-5 years)
- They define, design and execute HR functions
- Some functional groups: recruiment, learning/training/dev. and staff managements
- They have basic design and principles per se
- 5 strategies, 9 action programmes defined at group level
ref. http://www.slideshare.net/johnfkenedy/hr-strategy-fpt
From a monolithic Ruby on Rails app to the JVMPhil Calçado
This document summarizes a presentation about moving a large Ruby on Rails application to the Java Virtual Machine (JVM). It discusses some of the challenges of scaling Rails, including lack of concurrency and proper garbage collection. It then explores options for using JVM languages like non-Rails Ruby, Scala, and Clojure. The presentation advocates trying a microservices approach using these languages to help enable experimentation and ease deployment challenges. In summary, it outlines SoundCloud's journey in extracting parts of its monolithic Rails app and rewriting them on the JVM using different languages like Clojure and Scala.
Leadership Tools for Better Teams - Personal History Exercise - 20150615Joel Wenger
The document provides guidance for teams to build trust through a personal history exercise where each member gives a brief presentation about their background, including hometown, education, work experience, and one unique thing about themselves. The goal is to help team members relate to one another, avoid inaccurate assumptions, and encourage empathy. Examples of presentation formats are also included to illustrate the type of casual, fun sharing of personal information that is encouraged.
I gave a talk at WordCamp mumbai 2014, where i presented the idea that we can create more realistic prototypes on WordPress without writing single line of code. I believe that is the future of Prototyping
The document discusses the CSS box model which defines how elements are laid out using properties like margins, borders, padding, height and width. It describes how different browsers like Internet Explorer previously calculated box dimensions differently than other browsers, sometimes causing broken layouts. It provides workarounds like box model hacks to avoid these issues and suggests best practices like cross-browser testing.
Show vs. Tell in UX Design (Front in Amsterdam)Zoe Gillenwater
We’ve all heard these “laws” of design: “People don’t read on the web.” “If you have to explain how to use your product, you’ve failed.” “A picture is worth a thousand words.” It seems like our job as designers is to make things as intuitive as possible, using as few words as possible so that the meaning is self-evident through our visual design. But does this always produce the best user experience? Is showing always better than telling? We’ll look at several examples of design from the real world, the web, and apps that use showing, telling, or both as a method for producing the best UX. Rather than just assuming one is always better than the other, learn how to choose the right approach for your particular design problem and users.
This document discusses various methods for evaluating usability, including guidelines, expert opinion, and user testing. It emphasizes that real user testing where users actually use a product or prototype is the best approach, but also the most difficult. The document provides guidance on conducting user tests, such as using representative users, paper or electronic prototypes, asking both quantitative and qualitative questions, and capturing results through observation, metrics, questionnaires or interviews. It stresses the importance of neutral, planned questioning and analyzing competitors to improve one's own product.
Enhancing Responsiveness with Flexbox (RWD Summit)Zoe Gillenwater
This document discusses using flexbox for responsive web design. It begins with an overview of problems with other layout methods like floats and tables. Flexbox solves many of these issues by allowing boxes to automatically grow and shrink, be proportionally sized, and be laid out in any direction. The document demonstrates several uses of flexbox properties like flex-direction, justify-content, align-items and order to create responsive navigation bars, stacked icons, equal height columns, and reordering content. It emphasizes using flexbox now for progressive enhancement and discusses techniques for providing non-flexbox fallbacks.
With solidified syntax and great browser support, flexbox, the CSS layout module that can make your layouts more flexible and responsive with ease, is finally ready to be used in your real-world work. We’ll talk about the when, what, and how of using flexbox today: when it’s a great choice use flexbox (and when not to), what UI and UX problems it can help you solve, and how to add it to your layouts in a robust way that doesn’t harm non-supporting browsers or accessibility. You’ll learn a step-by-step process for deciding on and deploying flexbox, with lots of examples along the way of flexbox in the wild.
With solidified syntax and great browser support, flexbox, the CSS layout module that can make your layouts more flexible and responsive with ease, is finally ready to be used in your real-world work. We’ll talk about the when, what, and how of using flexbox today: when it’s a great choice use flexbox (and when not to), what UI and UX problems it can help you solve, and how to add it to your layouts in a robust way that doesn’t harm non-supporting browsers or accessibility. You’ll learn a step-by-step process for deciding on and deploying flexbox, with lots of examples along the way of flexbox in the wild.
With solidified syntax and great browser support, flexbox, the CSS layout module that can make your layouts more flexible and responsive with ease, is finally ready to be used in your real-world work. We’ll talk about the when, what, and how of using flexbox today: when it’s a great choice use flexbox (and when not to), what UI and UX problems it can help you solve, and how to add it to your layouts in a robust way that doesn’t harm non-supporting browsers or accessibility. You’ll learn a step-by-step process for deciding on and deploying flexbox, with lots of examples along the way of flexbox in the wild.
Enhancing Responsiveness With Flexbox (CSS Day)Zoe Gillenwater
View the demos and get links to related files at http://zomigi.com/blog/rwd-flexbox. In this presentation, I talked about how to actually put flexbox to use in the real world—today. I demonstrated a bunch of practical ideas for how to use flexbox as progressive enhancement to improve sizing, spacing, and order in responsive web design, while still ensuring non-supporting browsers get an acceptable fallback experience.
Flexbox is a smart new layout mode for CSS that solves many problems we've struggled with for years. It adds a degree of control we didn't have before. No longer will you need to struggle with floats and clearfixes to address page layout challenges they were never designed to handle.
But wait, I hear you say, a new layout mode? Surely the browser support is awful? It's actually quite good, and I will show you how to write future-proof code that will work flawlessly in browsers that support flexbox while providing a fallback to those that don't.
In this talk, I will introduce the flexbox layout module and explain what it's good for (and what's it's NOT good for). I'll give examples of usage, outline a strategy for browser support, and prepare you to use flexbox TODAY!
This is a beginner level talk. You do not need to know anything about flexbox, but a basic understanding of CSS layout will be helpful.
While the CSS Flexible Box Layout Module (Flexbox) has gone through some radical changes over the past two years, the specification is now stable enough for designers and developers to give it a hard look. Find out what Flexbox can (and can't) do to save your layout woes and how to integrate into your projects!
Flex stands for flexibility, adaptability. Thus, flexible layout elements are flexible boxes. The ability to fill extra areas without using javascript is one of the key advantages of flexbox.
Flexbox is a CSS module that aims to provide a more efficient way to lay out items in a container, even when their size is unknown or dynamic. It allows items to align and distribute space flexibly. Browser support for flexbox is now widespread, though it was previously complex and different than traditional layout methods. Flexbox offers properties to define flex containers and items for controlling direction, wrapping, order, growth, shrinkage and more. It can be used to create complex nested layouts.
Enhancing Responsiveness with Flexbox (CSS Conf EU 2015)Zoe Gillenwater
Flexbox and responsive web design go great together, like peanut butter and jelly! Flexbox gives you more control over the things you care about in a responsive layout and lets you create much morecomplex and reliable layouts than you can with floats, table display, or inline-block. All with far less CSS.
In this talk, you’ll learn what flexbox features are particularly suited to responsive layouts and how you can harness them by applying flexbox as a progressive enhancement. We’ll look at examples of responsive page components and patterns that you can enhance further by layering flexbox on top of other layout methods, ensuring all users get a good experience.
You’ve probably heard the phrase “learn to fail or fail to learn.” The idea that making mistakes is essential to success has almost become clichéd by now. But in this talk, Zoe is prepared to embarrass herself with tales of her web design screw-ups to prove just how important and powerful it truly is to make mistakes in our work. Along the way, you’ll learn CSS tips and tricks that Zoe learned the hard way so that you don’t repeat her mistakes. Go out, try new things with CSS, and make new mistakes of your very own!
This talk was given at beyond tellerrand // BERLIN 2014, 5 November 2014
The document discusses new CSS layout techniques including Flexbox and CSS Grid Layout. These allow for precise control of alignment both horizontally and vertically, separation of document structure from visual display, and responsive and flexible layouts by default. Examples are provided showing how Flexbox and Grid Layout can be used to create common layout patterns like equal height columns and reordering of content in a responsive way.
CSS Flexbox allows for flexible responsive layouts without floats or positioning. It defines a flex container with flex items that can be arranged in rows or columns using properties like flex-direction, flex-wrap, justify-content and align-items. The display property is set to flex to make an element a flex container, which then arranges its flex item children using these properties.
CSS Flex Box Layout is a CSS3 web layout model that allows elements within a container to be automatically arranged and resized depending on screen size. It defines flex containers and flex items, with properties that control alignment, order, sizing, and distribution of space. Common flex properties include flex-direction, flex-wrap, justify-content, align-items, and properties for individual flex items like order, flex-grow, and align-self. Flexbox provides more flexible layout options compared to traditional CSS box model properties.
This document provides an overview of flexbox properties including:
1. Parent flexbox properties like flex-direction, flex-wrap, justify-content, and align-items that control the layout of child elements.
2. Child flex properties like flex-grow, flex-shrink, flex-basis, and order that control how each child flexes.
3. Examples are provided to demonstrate each property using codepen links.
4. Browser support for flexbox is strong with no prefixes needed across all modern browsers.
This complete guide explains everything about flexbox, focusing on all the different possible properties for the parent element (the flex container) and the child elements (the flex items).
Responsive Flexbox Inspiration (Responsive Day Out)Zoe Gillenwater
I think the biggest obstacle to getting started with flexbox is not being able to picture how to use it, because you’re stuck thinking in terms of what was possible with floats and other old layout methods. It was the same when we switched from tables to CSS layout, and from fixed to fluid layout—you had to make a mental shift to start thinking in terms of the new possibilities and approaches to old problems.
Flexbox lets you do lots of things you haven’t been able to do before, and some things you could do before but now in a simpler way. Once you see what flexbox can do in the real world, you can start picturing how to use it in your own work to solve real RWD problems today. Flexbox can be tricky to wrap your head around at first, but once you’ve learned it, it’s an incredibly quick, cheap way for you to add more responsiveness to your components.
CSS Lessons Learned the Hard Way (Generate Conf)Zoe Gillenwater
Zoe Mickley Gillenwater gave a talk at Generate Conference in London where she shared several mistakes she made while learning CSS flexbox and other techniques. These included misunderstanding how flex-basis works, incorrectly using CSS transforms like rotateX, and making assumptions about screen reader support that caused accessibility issues. She emphasized that vulnerability and sharing mistakes openly can help both oneself and others learn. Making mistakes is a natural part of the learning process, and perfection should not be expected or feared.
Keynote presented at CSS Dev Conference on October 21, 2013. I talked about evolving who we are as web designers and developers by focusing on the power of "just one" in learning, failing, and accepting. Simplicity is powerful.
This document discusses CSS layout techniques, including past, present, and future options. It covers problems with traditional table-based and float-based layouts, as well as new CSS3 specifications for flexible box layout, grid layout, multi-column layout, and regions. Key upcoming features discussed include new float values, containment of floats, wrapping of floats, grid layout definitions and placement of elements, and flexible box properties for automatic sizing of elements.
The updated CSS Dev Conference version of my Building Responsive Layouts talk. Get links to lots of related resources at http://zomigi.com/blog/responsive-layouts-css-dev-conf.
Zoe Mickley Gillenwater gave a presentation on building responsive web layouts. She discussed why responsive design works, different types of responsive layouts like fluid and hybrid layouts, using media queries to provide different styles for different screen sizes, and techniques for implementing responsive grids and spacing. She provided examples of CSS for fluid layouts, using media queries, and conditional comments or JavaScript for older browsers.
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.
Zoe Mickley Gillenwater gave a presentation on web accessibility. She began by defining accessibility and discussing why it is important both ethically and for legal compliance. She then covered specific techniques to make web pages more accessible such as using proper heading structure, adding descriptive alt text to images, and associating form fields with labels. She concluded by encouraging the audience to learn more about additional topics like keyboard navigation, ARIA roles, and color contrast.
The document discusses using CSS3 in real-world projects. It recommends using stable CSS3 features that don't break without support, like border-radius, box-shadow, and multiple backgrounds. CSS3 can reduce development time through fewer images and HTTP requests. Media queries allow responsive designs for different devices. Features like gradients, transforms and animations can be used but require more testing. The document provides examples of CSS3 for navigation tabs, columns, and badges.
Designing with CSS3 Effectively & EfficientlyZoe Gillenwater
The document discusses CSS3 and progressive enhancement. It provides examples of CSS3 features like border-radius, box-shadow, text-shadow, gradients, and fonts that can be used to enhance websites. These features allow for decreased development time, improved performance through reduced file sizes and HTTP requests, and better accessibility. The document also covers using media queries for responsive design, targeting features for mobile devices like iPhone and iPad.
This document discusses using CSS3 to create effective and efficient web designs. It provides an overview of CSS3 modules and capabilities like gradients, shadows, rounded corners. The benefits of CSS3 include decreased development time, improved performance through reduced file sizes and requests, and increased accessibility. A real-world example shows how CSS3 can reduce loading times versus images. Media queries allow responsive designs for different devices. The document encourages progressive enhancement and using stable CSS3 features now to improve user experience.
Highly Maintainable, Efficient, and Optimized CSSZoe Gillenwater
The document discusses organizing CSS for maintainability and readability. It recommends dividing CSS into separate style sheets for different media types, rule types, or site sections. Within style sheets, related rules should be indented and grouped with comments. Declarations should be formatted consistently, either each on its own line or all on one line. Class and ID names should be meaningful. Informational comments can provide context. The goal is to structure CSS so it is easily understood by anyone viewing it.
- The document discusses designing CSS layouts for flexible web design that adapt to different screen sizes and text sizes.
- It recommends avoiding fixed-width layouts and designs, irregular shapes defining text areas, images that don't scale with text, and enforcing horizontal alignment across columns.
- Solutions presented include using liquid/elastic/hybrid designs, tiling patterns, variable cropping/masking of images, scrollbars, and accepting some misalignment of content across columns on smaller screens.
ARENA - Young adults in the workplace (Knight Moves).pdfKnight Moves
Presentations of Bavo Raeymaekers (Project lead youth unemployment at the City of Antwerp), Suzan Martens (Service designer at Knight Moves) and Adriaan De Keersmaeker (Community manager at Talk to C)
during the 'Arena • Young adults in the workplace' conference hosted by Knight Moves.
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page pmgdscunsri
Figma is a cloud-based design tool widely used by designers for prototyping, UI/UX design, and real-time collaboration. With features such as precision pen tools, grid system, and reusable components, Figma makes it easy for teams to work together on design projects. Its flexibility and accessibility make Figma a top choice in the digital age.
Architectural and constructions management experience since 2003 including 18 years located in UAE.
Coordinate and oversee all technical activities relating to architectural and construction projects,
including directing the design team, reviewing drafts and computer models, and approving design
changes.
Organize and typically develop, and review building plans, ensuring that a project meets all safety and
environmental standards.
Prepare feasibility studies, construction contracts, and tender documents with specifications and
tender analyses.
Consulting with clients, work on formulating equipment and labor cost estimates, ensuring a project
meets environmental, safety, structural, zoning, and aesthetic standards.
Monitoring the progress of a project to assess whether or not it is in compliance with building plans
and project deadlines.
Attention to detail, exceptional time management, and strong problem-solving and communication
skills are required for this role.
Practical eLearning Makeovers for EveryoneBianca Woods
Welcome to Practical eLearning Makeovers for Everyone. In this presentation, we’ll take a look at a bunch of easy-to-use visual design tips and tricks. And we’ll do this by using them to spruce up some eLearning screens that are in dire need of a new look.
Fonts play a crucial role in both User Interface (UI) and User Experience (UX) design. They affect readability, accessibility, aesthetics, and overall user perception.
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEFebless Hernane
CapCut is an easy-to-use video editing app perfect for beginners. To start, download and open CapCut on your phone. Tap "New Project" and select the videos or photos you want to edit. You can trim clips by dragging the edges, add text by tapping "Text," and include music by selecting "Audio." Enhance your video with filters and effects from the "Effects" menu. When you're happy with your video, tap the export button to save and share it. CapCut makes video editing simple and fun for everyone!
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...Designforuminternational
India’s architectural landscape is a vibrant tapestry that weaves together the country's rich cultural heritage and its modern aspirations. From majestic historical structures to cutting-edge contemporary designs, the work of Indian architects is celebrated worldwide. Among the many firms shaping this dynamic field, Design Forum International stands out as a leader in innovative and sustainable architecture. This blog explores some of the best Indian architects, highlighting their contributions and showcasing the most famous architects in India.
International Upcycling Research Network advisory board meeting 4Kyungeun Sung
Slides used for the International Upcycling Research Network advisory board 4 (last one). The project is based at De Montfort University in Leicester, UK, and funded by the Arts and Humanities Research Council.
2. and I wrote these books on CSS:
I’m a web designer/front-end dev
Stunning CSS3:
A Project-based Guide to
the Latest in CSS
www.stunningcss3.com
Flexible Web Design:
Creating Liquid and Elastic
Layouts with CSS
www.flexiblewebbook.com
6. Problems with float layout
Difficulty with containment
Wrapping/float drop
Visual location somewhat tied to HTML order
No built-in equal-height columns
No float:center
7. The nickname for the CSS Flexible Box
Layout Module, a new layout mechanism
and box model.
What is flexbox?
8. Which is which?
2009 display:box
2011 display:flexbox
Now display:flex
See also http://css-tricks.com/old-flexbox-and-new-flexbox/
*with -webkit- prefix
† with -ms- prefix, 10 only
*
*
†
*
12. Demo: horizontal navigation
1. Turn <ul> into flex container:
.list-nav {
display: flex;
flex-direction: row; /* default */
}
2. Children <li> become flex items laid out on
single horizontal line
14. I can do the same thing with display: inline.”
What’s the big deal?
Yes, you can.
We’re just laying the groundwork for the
cool stuff that’s coming.
Baby steps.
“
16. Keeping track of variants
Flexy Boxes code generator shows old and new
syntaxes: www.the-echoplex.net/flexyboxes/
Let Sass or LESS do it for you, for instance:
https://github.com/mastastealth/sass-flex-mixin
https://gist.github.com/cimmanon/4461470
The -prefix-free script can do some of it for
you: http://leaverou.github.io/prefixfree/
17. But for the sake of readability, I’m omitting
them from the code samples on these
slides. You can see them in the live demo.
Now back to flex-direction.
Use the variants you want.
18. Setting a point of reference
Main axis
Crossaxis
(for flex-direction: row)
19. flex-wrap
controls whether flex
items can lay out on
multiple lines and which
direction new lines are
stacked in
wrap
(for row)
wrap
(for column)
nowrap
(default; for row)
wrap-reverse
(for row)
20. Problems with flex-wrap
Firefox doesn’t support it yet
No browser supports 2009 equivalent box-
lines property
Limited control of where breaks occur without
support for break-before/break-after
properties (only IE 10 and Opera support
them)
21. Summary: setting the stage
1. Create flex container using display:flex
2. Set its flex-direction to control
orientation (horizontal or vertical)
3. Set its flex-wrap to control whether and in
which direction to wrap
(Or, set flex-flow as shorthand for flex-
direction and flex-wrap)
23. Add flexbox for larger widths
No need to put within media query—it can “kick
in” whenever space allows (auto breakpoints!)
1. Create flex container:
.gallery {
display: flex;
flex-wrap: wrap;
margin-left: -20px;
}
25. This is where flexbox gets flexible.
And kinda confusing.
The flex property
26. Defining the flex property
Makes flex items change their width or height
(whichever is dimension along main axis) to
fit available space
Shorthand for 3 properties:
flex-grow
flex-shrink
flex-basis
27. Defining the flex property
flex-grow
how much flex
item will grow
relative to
other items if
extra space is
available
(proportion
of extra space
that it gets)
flex-shrink
how much item
will shrink
relative to
others if there is
not enough
space
(proportion of
overflow that
gets shaved off)
flex-basis
the initial
starting size
before free
space is
distributed
(any standard
width/height
value, including
auto)
28. Breaking it down
.gallery-item {
flex: 1 0 200px;
flex-grow
give every
item 1 share
of extra width
flex-shrink
don’t let the
items shrink at
all (but they
wouldn’t
anyway due to
flex-wrap)
flex-basis
start them out
at 200 pixels
wide (basically,
min-width)
30. Single-digit flex values
Common to see flex: 1 in demos
flex: [number] is equivalent to
flex: [number] 1 0px
Be sure you really want flex-basis to be 0
When wrap on, essentially min-width
0px therefore means items can shrink to 0px
If everything can get down to 0px, nothing ever
has a reason to wrap
31. My first attempt
Zoe’s Brain Said:
“Since .action
starts out at 100%,
it won’t have space
to sit on the first
line with the
content preceding
it, and will wrap to
a second line.”
.component {
flex: 1;
}
.action {
flex: 1 1 100%;
}
The expected outcome:
33. My first attempt
Reality:
Since it’s fine for
each .component to
shrink to only 0px
wide, a 100% wide
element can and
will sit on the same
line as all the
components.
.component {
flex: 1 1 0px;
}
.action {
flex: 1 1 100%;
}
34. Forcing the wrap
Fixed:
.action will always
wrap to new line,
and .components
will wrap to
additional lines
when there’s less
than their
combined flex-
basis values (plus
margin, etc.).
.component {
flex: 1 1 200px;
}
.action {
flex: 1 1 100%;
}
37. Less need for media queries
Layout changes that would previously have been
hardcoded into a media query can now be done
on the fly when browser determines stuff can fit
38. Flex adjusts for margin
.component {
width: 25%;
margin-left: 20px;
}
.component {
flex: 1 1 200px;
margin-left: 20px;
}
The boxes won’t all fit Works like a charm
box-sizing only takes care of padding and
border added on to width, not margin
39. Flex adjusts for quantity of items
Great for sites with dynamic or frequently
changing content blocks, e.g.:
News stories on home page vs inner page
Product or feature tiles
Pricing page with plans side by side
Makes HTML/CSS more modular—an item can
move anywhere and adjust in size as needed
40. Flex can combine different units
Items measured in
different units can
sit side-by-side and
all fit perfectly
Pixels
Ems
Mystery percentage
41. Flex can combine different units
Set only the text field to flex:
.component li:last-child {
display: flex;
}
.component .other-name {
flex: 1;
}
42. Flex can be proportional
Setting flex-grow/flex-shrink to different
values can make flex items size themselves
relative to each other
flex: 1; flex: 1; flex: 2;
43. But be careful!
Having widths be in multiples of each other only
works if flex-basis is 0
If all start out 0px, then all the width on the line
is extra, so the flex:2 item gets twice as much
width as the others and is thus twice as wide as
the others
flex: 1 0 0px; flex: 1 0 0px; flex: 2 0 0px;
44. If flex-basis isn’t 0px…
…the widths may not end up as you expect
The third box gets twice as much of the extra,
but that doesn’t make it twice as wide overall
flex: 1 0 10px; flex: 1 0 10px; flex: 2 0 10px;
10px + 5px extra = 15px 10px + 5px extra = 15px 10px + 10px extra = 20px
if 50px available
45. While support improves, consider using
flexbox now on small page components as
progressive enhancement.
Here are a few ideas.
You can use it now
46. Single-line, full-width form
All items on same line
Text input(s) stretches to fill remaining space
All items vertically centered or equal height
47. Form without flexbox
.action { text-align: center; }
.action * {
display: inline; /* default */
vertical-align: middle;
}
48. Form without flexbox
All items on same line
Text input stretches to take up remaining space
All items vertically centered or equal height
X
56. Add Modernizr as needed
Flexbox and fallback styles can often co-exist,
but sometimes need to isolate them
Modernizr can add flexbox, no-flexbox,
and flexbox-legacy classes to do this
Example: add margin between label and input
only if flexbox is on:
.flexbox .action label {
margin-right: 10px;
}
57. Full-width nav bar
Requirements:
All links on same line
First link flush left, last link flush right
Equal spaces between all links
Using display:table-cell can do full-
width but not equal spaces
58. Nav with flexbox
.list-nav {
display: flex;
justify-content: space-between;
margin: 0;
padding: 0;
list-style: none;
}
.list-nav li {
/* no flex & no width = shrinkwrap */
text-align: center;
}
63. Variation: pagination
Wide view: all links on same line, centered
Set justify-content:center
Medium view: all links on same line, full-
width, equal spacing
Set justify-content:space-between
64. Variation: pagination
Narrow view: two lines with “previous” and
“next” links on first row, full-width
Set flex-wrap:wrap
Set justify-content:space-between
Use order property to move “next” link up
65. Visual reordering with flexbox
1. Make “previous” link come first visually,
“next” link second, and all the rest third
.pagination li {
order: 2;
display: inline-block; /* fallback */
}
.pagination li:first-child { /* “Previous” link */
order: 0;
text-align: left;
}
.pagination li:last-child { /* “Next” link */
order: 1;
text-align: right;
}
66. Visual reordering with flexbox
2. Force links to wrap after “next” link by
making it and “previous” link take up 100%
of the first line together
.flexbox .pagination li:first-child,
.flexbox .pagination li:last-child {
width: 50%;
}
.pagination {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
text-align: center; /* fallback */
}
67. Accessibility implications
Pro
Keep content in
logical order in HTML
instead of structuring
HTML to achieve
visual layout
Con
Focus/tab order won’t
always match
expected order, may
jump around
seemingly randomly
68. Tab order = HTML order
1
2
10
“Next” won’t be second link tabbed to after
“Previous” since it doesn’t follow it in HTML
69. Limitations of order property
Potential to create confusing tab order
Can only rearrange sibling elements
Flexbox rows/cols can’t overlap, so content
may not always slide into the spot left by the
re-ordered content
So: reserve flexbox order property for small
moves that don’t hurt accessibility, and use CSS3
Grid Layout, etc., for bigger re-ordering
70. Pinned item at bottom
All boxes equal
in height
Final item in
each box pinned
to the bottom so
that all final
items across grid
appear to align
71. Pinned item at bottom
Without flexbox,“other” fields disconnected from
each other and thus can’t align
With flexbox, they’re still disconnected, but their
parents aren’t and can be equal height, plus…
72. New “auto” margin behavior
Margins set to auto get all the free space left
So, to pin flex item to bottom of its flex
container:
set flex-direction:column on flex container
so items can fill its height
set margin-top:auto on item you want to pin
73. Pin the “other” fields
1. Make each .component match in height by
making parent .builder a flex container
(already done)
.builder {
display: flex;
align-items: stretch; /* default */
flex-wrap: wrap;
justify-content: space-between;
margin: 0 0 40px -20px;
}
74. Pin the “other” fields
2. Make each <ul> a flex item and stretch to
full height, then make it a flex container with
vertical direction so its <li> will stack
.component {
flex: 1 1 200px;
display: flex;
flex-direction: column;
}
.component ul {
flex: 1;
display: flex;
flex-direction: column;
margin: 0;
padding: 0;
list-style: none;
}
75. Pin the “other” fields
3. Give “other” <li> an auto top margin so all
free space left in <ul> is put above that
<li>, pushing it to bottom of <ul>
.component li:last-child {
margin-top: auto;
}
76. Pinning without flexbox
Use display:table-cell for equal height
boxes
Add bottom padding in ems to each box
Use absolute positioning to pin “other” row in
space left by padding
78. Why go to the trouble to use flexbox as
progressive enhancement now?”
I can use it, but why should I?
“
79. Develop it as a career skill
Essential layout tool in the future, especially
with responsive web design
Syntax is not going to change much, so what
you learn now will still work later
Better to learn something before it’s needed in
a project rather than during
80. when I can do the same thing with <font> tags?”
Why should I do it with CSS
“ –Zoe, circa 2002
81. when I can do the same thing with floats?”
Why should I do it with flexbox
“
82. We all learn best by doing
I learned a lot more about flexbox by building
demo site for this presentation—a lot
Have to try it to learn it
Using it for small cosmetic enhancements is
low-risk way to try it
83. It’s fun
Great user experience is important, but great
developer experience is worthwhile too
Enjoy your job to get better at your job
Sometimes the little extra time is worth the
fun challenge and reward at the end
84. Learn more
Download slides and get links at
www.zomigi.com/blog/flexbox-presentation
Thanks!
Zoe Mickley Gillenwater
@zomigi
design@zomigi.com
zomigi.com | stunningcss3.com | flexiblewebbook.com