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.
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.
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.
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.
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.
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.
Flexbox and Grid Layout: How you will structure layouts tomorrow.Diego Eis
This document discusses Flexbox and Grid Layout for building responsive web page layouts. It provides an overview of Flexbox properties like flex-direction, justify-content, and align-items that control the layout of child elements within a flex container. It also covers Grid Layout and properties like grid-template-rows/columns that define the structure of rows and columns, and grid-area that positions elements within the grid. Examples and code snippets are provided to illustrate how Flexbox and Grid Layout can be used to create responsive page layouts in a semantic and flexible way.
Flexbox: One Giant Leap for Web Layout (Breaking Development 2013)Stephen Hay
This document discusses the benefits of using Flexbox for web layout. It begins with an overview of Flexbox terminology including flex containers, items, main/cross axes. It then covers Flexbox properties like flex-direction, justify-content, align-items and order. Common use cases like centering, multi-item layouts and reordering content are demonstrated. Browser support and syntax variations are noted. While Flexbox is well-suited for components, it has limitations for full page layouts. Designers should learn when different tools like Flexbox are best applied.
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.
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 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.
This document provides instructions for adding links to a webpage in three steps:
1) Sign in and click "Edit This Page" to modify the webpage. Add a box and select "Link" to create a new link. Enter the link title and URL.
2) To add the CCBOE homepage link, enter the URL "www.ccboe.net".
3) To add the HMS Media Center link, click the "Link To" button and select HMS Media Center from the dropdown menu to automatically input the link URL. Then follow the steps to finalize and position the new links on the page.
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.
This document discusses converting a custom WordPress theme into a Genesis child theme. It begins by explaining the original theme's design, which included elements from various other themes. It then covers translating the widgets, menus, and other elements into the Genesis framework by registering widgets and modifying CSS and HTML. The goal is to recreate the original design using Genesis for improved performance, security, and ease of maintenance.
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.
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.
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.
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!
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
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.
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.
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.
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.
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.
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.
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.
Flexbox and Grid Layout: How you will structure layouts tomorrow.Diego Eis
This document discusses Flexbox and Grid Layout for building responsive web page layouts. It provides an overview of Flexbox properties like flex-direction, justify-content, and align-items that control the layout of child elements within a flex container. It also covers Grid Layout and properties like grid-template-rows/columns that define the structure of rows and columns, and grid-area that positions elements within the grid. Examples and code snippets are provided to illustrate how Flexbox and Grid Layout can be used to create responsive page layouts in a semantic and flexible way.
Flexbox: One Giant Leap for Web Layout (Breaking Development 2013)Stephen Hay
This document discusses the benefits of using Flexbox for web layout. It begins with an overview of Flexbox terminology including flex containers, items, main/cross axes. It then covers Flexbox properties like flex-direction, justify-content, align-items and order. Common use cases like centering, multi-item layouts and reordering content are demonstrated. Browser support and syntax variations are noted. While Flexbox is well-suited for components, it has limitations for full page layouts. Designers should learn when different tools like Flexbox are best applied.
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.
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 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.
This document provides instructions for adding links to a webpage in three steps:
1) Sign in and click "Edit This Page" to modify the webpage. Add a box and select "Link" to create a new link. Enter the link title and URL.
2) To add the CCBOE homepage link, enter the URL "www.ccboe.net".
3) To add the HMS Media Center link, click the "Link To" button and select HMS Media Center from the dropdown menu to automatically input the link URL. Then follow the steps to finalize and position the new links on the page.
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.
This document discusses converting a custom WordPress theme into a Genesis child theme. It begins by explaining the original theme's design, which included elements from various other themes. It then covers translating the widgets, menus, and other elements into the Genesis framework by registering widgets and modifying CSS and HTML. The goal is to recreate the original design using Genesis for improved performance, security, and ease of maintenance.
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.
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.
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.
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!
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
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.
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.
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.
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.
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.
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.
CSS3 Flexbox allows elements to be laid out in a flexible manner to fully fill available space or adapt to different screen sizes and devices. It improves on floats and eliminates some layout problems. Flexbox uses flex items within a flex container, with properties like flex-direction, justify-content, align-items and flex-wrap controlling item alignment along the main and cross axes. Common uses include navigation bars, image galleries, and responsive layouts. Browser support is good with prefixes in older browsers.
Flex web development, also known as Flexbox, is a powerful and versatile CSS layout model
that allows you to design responsive and dynamic web pages with ease. In this article, we will
explore the concept of Flexbox, its composition, and provide a step-by-step explanation to help
you master this essential web development tool.
You have some basic knowledge of HTML and CSS? Go further by learning how to build advanced layouts of real-life apps like Airbnb, Medium or Slack using the most recent CSS techniques.
There was a time in the not so distant future, that tables ruled the field of HTML page development. Kika Marketing and Communications is here to give you an idea about Flexbox.
Is Flexbox the Future of Layout -bdconfjameswillweb
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 applications and sites!
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 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).
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.
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.
CSS3: Using media queries to improve the web site experienceZoe Gillenwater
NOTE: A more updated version of this presentation is at http://www.slideshare.net/zomigi/css3-media-queries-and-responsive-design.
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.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
3. Author
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
4. Speaker
why how
“That’s cool! But I can’t use it because XYZ doesn’t support
it. Maybe someday.”
“It’s OK if stuff doesn’t look the same everywhere.
I’m just going to feed XYZ simpler styles.”
5. Denial: “No one uses IE 8 any more.”
Anger: “How can #*!% IE not support this?!”
Bargaining: “If I use this script, it will almost be the
same in IE, right?”
Depression: “I’ll never be able to make anything cool
because of IE.”
Acceptance: “It’s OK if things look different in old IE.”
The Old IE Acceptance Cycle
6. It doesn’t need to be in the “can’t use it
yet” pile anymore.
Use flexbox now on small page components
as progressive enhancement.
You can use flexbox now
7. The CSS Flexible Box Layout Module
(www.w3.org/TR/css3-flexbox/) has been a
Candidate Recommendation since
September 2012.
Syntax is solid
9. 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
¨ Let Autoprefixer library do it for you:
https://github.com/ai/autoprefixer
10. 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.
Use the variants you want.
11. Summary: setting the stage
1. Create flex container using display:flex,
children become flex items
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)
12. Problems with flex-wrap
¨ Firefox before version 28 didn’t support it
¨ 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)
14. Demo: horizontal navigation
Without flexbox:
.list-nav {
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.list-nav li {
display: inline-block;
padding: 0 .5em;
text-align: center;
}
Before
After
15. 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
17. Making it full-width
¨ 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
23. 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
31. 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 flexboxlegacy classes to do this
¨ Example: add margin between icons and
content only if flexbox is off and floating on:
.no-flexbox .content {
margin-left: 60px;
}
34. Demo: sticky footer
No content
here, but footer
stays at bottom
of window
anyway
Demo by Philip Walton at http://philipwalton.github.io/solved-by-flexbox/
demos/sticky-footer/
35. Demo: sticky footer
<body class="Site">
<header>...</header>
<main class="Site-content">...</main>
<footer>...</footer>
</body>
.Site {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.Site-content {
flex: 1;
}
HTML and CSS by Philip Walton
36. This is where flexbox gets flexible.
And kinda confusing.
The flex property
37. 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
38. 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)
39. Breaking it down
.gallery-item {
flex: 1 0 200px;
}
flex-grow = 1
give each item 1
share of extra width
flex-shrink = 0
don’t let items shrink
at all
flex-basis = 200px
start items at 200
pixels wide
40. 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
41. Single-digit flex values
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:
43. What was really happening
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%;
}
44. Forcing the wrap
Fixed:
.action will always
wrap to new line,
and .components
will wrap to
additional lines
when there’s less
space than their
combined flex-
basis values (plus
margin, etc.).
.component {
flex: 1 1 200px;
}
.action {
flex: 1 1 100%;
}
46. Less CSS & media queries needed
Layout changes that would previously have been
hardcoded into media queries can now be done
on the fly when browser determines stuff can fit
All 4 layouts created with:
.builder { display: flex; flex-wrap: wrap; }
.component { flex: 1 1 200px; }
.action { flex: 1 1 100%; }
47. 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
48. 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
49. Flex can combine different units
Items measured in
different units can
sit side-by-side and
all fit perfectly
Pixels
Ems
Mystery percentage
50. Flex can combine different units
Set only the text field to flex:
.component li:last-child {
display: flex;
}
.component .other-name {
flex: 1;
}
51. 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;
52. 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;
53. 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
(20px is not twice as wide as 15px. Because math.)
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
54. Demo: sticky footer
flex:1 on
content div
stretches it to
fill leftover
height
Demo by Philip Walton at http://philipwalton.github.io/solved-by-flexbox/
demos/sticky-footer/
55. New “auto” margin behavior
<body class="Site">
<header>...</header>
<main class="Site-content">...</main>
<footer>...</footer>
</body>
.Site {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.Site-content {
flex: 1;
}
footer {
margin-top: auto;
}
CSS modified from Philip Walton’s original
56. New “auto” margin behavior
¨ Margins set to auto in main axis get all the
free space left
¨ For instance: 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
57. 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
58. 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
59. Pin the “other” fields
1. Make each .component match in height by
making parent .builder a flex container
.builder {
display: flex;
align-items: stretch; /* default */
flex-wrap: wrap;
justify-content: space-between;
margin: 0 0 40px -20px;
}
60. 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;
}
61. 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;
}
62. Pinning without flexbox
1. Use display:table-cell to create equal
height boxes
2. Add bottom padding in ems to each box
3. Use absolute positioning to pin “other” row
in space left by padding
65. 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
66. Form without flexbox
.action { text-align: center; }
.action * {
display: inline; /* default */
vertical-align: middle;
}
67. Form without flexbox
All items on same line
Text input stretches to take up remaining space
All items vertically centered or equal height
ü
ü
X
74. Variation: input add-ons
flex:1 on each input stretches it to
fill width before/after any add-ons
Demo by Philip Walton at http://philipwalton.github.io/solved-by-flexbox/
demos/input-add-ons/
75. How Booking.com uses it
Before flexbox With flexbox
flex: 1 1 auto; on
<input> lets it shrink to
fit beside variable button
New fallback
78. 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;
}
80. 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
.pagination {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
text-align: center; /* fallback */
}
.flexbox .pagination li:first-child,
.flexbox .pagination li:last-child {
width: 50%;
}
81. Demo: two-line 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
82. Accessibility implications
Pro
Can keep content in
logical order in HTML
instead of structuring
HTML just to achieve
a visual layout.
Cons
If HTML order is
illogical, screen reader
users still hear it.
Focus/tab order won’t
always match
expected order, may
jump around
seemingly randomly.
83. 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
85. Limitations of order property
¨ Potential to create confusing tab order
¨ Doesn’t change reading order for screen readers
¨ 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
88. Reordering mobile content
In RWD, narrow-view
(mobile) stacking
order doesn’t always
match needed HTML
order for wide-view
(desktop) layout
Keep HTML order
needed for desktop
and use order
property only on
mobile, since browser
support is great there
Problem Solution
89. Jeremy Church’s mobile example
@media screen and (max-width: 767px) {
.media_xs_order_one { order: 0; }
.media_xs_order_two { order: 1; }
.media_xs_order_three { order: 2; }
}
See Jeremy’s write-up at http://j.eremy.net/flexbox-for-mobile-content/
HTML order (no flexbox) Reordered with flexbox
90. Be careful with accessibility
¨ Reading order
won’t match visual
order. This may or
may not be bad.
¨ Tabbing order
won’t match visual
order. This is bad.
(And yes, tabbing
matters even on
mobile.)
1
3
2
4
5
91. Demo: moving a photo on mobile
Desktop: HTML order (no flexbox)Mobile: reordered
92. Use “order” in mobile styles
.recipe {
display: flex;
flex-direction: column;
}
.recipe figure {
order: -1; /* before all items with default
order: 0 */
}
.recipe figure img {
width: 100%;
}
Inspired by Jonathan Cutrell’s example at http://webdesign.tutsplus.com/
tutorials/tricks-with-flexbox-for-better-css-patterns--cms-19449
93. Turn off flexbox in desktop styles
@media screen and (min-width:800px) {
.recipe {
display: block; /* turn off flexbox */
}
.recipe figure {
float: right;
width: 55%;
}
}
94. Demo: moving a photo on mobile
Flexbox version Non-flexbox version
96. Flexbox enhancement ideas
¨ Equally spaced items across full-width/height
¨ Pinned items
¨ Full-width forms
¨ Reordering content blocks
97. Let your design appear different
in different browsers, and start
using flexbox.
ABRAHAM LINCOLN
98. Learn more
Download slides and get links at
www.zomigi.com/blog/leveling-up-with-flexbox
Thanks!
Zoe Mickley Gillenwater
@zomigi
[email protected]
zomigi.com | stunningcss3.com | flexiblewebbook.com
Credit: “S’more” photo by Christopher Penn on Flickr. Looks like that man really knows how to make a good s’mores!