SlideShare a Scribd company logo
1 of 87
Download to read offline
Future Layout
& Performance
Rachel Andrew, Bristol Web Performance
April 2016
https://www.ļ¬‚ickr.com/photos/bortescristian/11343462395
Rachel Andrew
Blogging about tech/business and other things at rachelandrew.co.uk
On Twitter and other places as @rachelandrew
Co-founder of Perch & Perch Runway CMS, see: grabaperch.com
Teaching CSS Layout at thecssworkshop.com
Google Developer Expert for Web Technologies
Contact: me@rachelandrew.co.uk
The New CSS for Layout
ā€¢ Flexboxā€Ø
https://drafts.csswg.org/css-flexbox/
ā€¢ CSS Grid Layoutā€Ø
https://drafts.csswg.org/css-grid/
ā€¢ Box Alignmentā€Ø
https://drafts.csswg.org/css-align/
The bad news.
All my grid examples work in Chrome unprefixed - you need to
enable the Experimental Web Platform Features flag.
You can also use Webkit nightlies or Developer Preview, with the -
webkit prefix.
The work in Blink and Webkit is being done by Igalia, sponsored by
Bloomberg.
IE10 and up has support for the old syntax, with an -ms prefix.
Grid is on the Edge backlog, marked as High Priority.
Mozilla are currently implementing Grid in Firefox. Use Firefox
Nightlies or Developer Preview for the latest work.
Key Features of new layout
ā€¢ Items in our layouts understand themselves as
part of an overall layout.
ā€¢ True separation of document source order and
visual display.
ā€¢ Precise control of alignment - horizontally and
vertically.
ā€¢ Responsive and flexible by default.
Items in our layouts understand
themselves as part of a complete layout.
http://alistapart.com/article/fauxcolumns
http://colintoh.com/blog/display-table-anti-hero
Flexbox
Full height columns with
flexbox, taking advantage
of default alignment values.
.wrapper {
display: flex;
}
.sidebar {
flex: 1 1 30%;
}
.content {
flex: 1 1 70%;
}
Grid Layout
Full height columns in CSS
Grid Layout.
.wrapper {
display: grid;
grid-template-columns: 30% 70%;
}
.sidebar {
grid-column: 1;
}
.content {
grid-column: 2;
}
Separation of source and display
Flexbox
The flex-direction property
can take a value of row to
display things as a row or
column to display them as
a column.
nav ul{
display: flex;
justify-content: space-between;
flex-direction: row;
}
Flexbox
The visual order can be
switched using row-
reverse or column-reverse.
nav ul{
display: flex;
justify-content: space-between;
flex-direction: row-reverse;
}
Flexbox
Adding display: flex to our
container element causes
the items to display flexibly
in a row.
.wrapper {
display: flex;
}
Flexbox
The order property means
we can change the order of
flex items using CSS.
This does not change their
source order.
li:nth-child(1) {
order: 3;
}
li:nth-child(2) {
order: 1;
}
li:nth-child(3) {
order: 4;
}
li:nth-child(4) {
order: 2;
}
Grid Layout
I have created a grid on
my wrapper element.
The grid has 3 equal
width columns.
Rows will be created as
required as we position
items into them.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
Grid Layout
I am positioning my
elements using CSS Grid
Layout line-based
positioning.
Setting a column and a
row line using the grid-
column and grid-row
properties.
li:nth-child(1) {
grid-column: 3 / 4 ;
grid-row: 2 / 3;
}
li:nth-child(2) {
grid-column: 1 / 2;
grid-row: 2 / 3;
}
li:nth-child(3) {
grid-column: 1 / 2;
grid-row: 1 / 2;
}
li:nth-child(4) {
grid-column: 2 / 3;
grid-row: 1 / 2;
}
CSS Grid automatic placement
http://www.w3.org/TR/2015/WD-css-grid-1-20150917/#grid-auto-
flow-property
https://rachelandrew.co.uk/archives/2015/04/14/grid-layout-
automatic-placement-and-packing-modes/
Grid Layout
When using automatic
placement we can create
rules for items in our
document - for example
displaying portrait and
landscape images
differently.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
.landscape {
grid-column-end: span 2;
}
grid-auto-flow
The default value of grid-auto-flow is
sparse. Grid will move forward planning
items skipping cells if items do not fit .
Grid Layout
With a dense packing
mode grid will move items
out of source order to
backfill spaces. .wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-auto-flow: dense;
}
.landscape {
grid-column-end: span 2;
}
grid-auto-flow
With grid-auto-flow dense items are
displayed out of source order. Grid
backfills any suitable gaps.
https://drafts.csswg.org/css-grid/#grid-item-placement-algorithm
ā€œThe following grid item placement
algorithm resolves automatic positions
of grid items into definite positions,
ensuring that every grid item has a
well-defined grid area to lay out into.ā€
https://drafts.csswg.org/css-flexbox/#order-accessibility
Authors must use order only for visual,
not logical, reordering of content. Style
sheets that use order to perform
logical reordering are non-conforming.
Explicit and Implicit Grid Lines
The explicit grid is
created with grid-
template-columns and
grid-template-rows.
If we position items
outside of the explicit grid
implicit lines are created.
We can size these with
grid-auto-columns and
grid-auto-rows.
.grid {
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 100px 1fr;
}
/* this item would create implicit row
lines 4 and 5*/
.item {
grid-column: 1 / 3;
grid-row: 4;
}
Control of alignment
CSS Box Alignment Module Level 3
ā€œThis module contains the features of CSS relating to the
alignment of boxes within their containers in the various CSS box
layout models: block layout, table layout, flex layout, and grid
layout.ā€ - https://drafts.csswg.org/css-align/
Vertically centre ALL THE THINGS!
Distributed alignment
justify-content and align-content properties.
Values: space-between, space-around, stretch, space-evenly
Flexbox
The justify-content
property is set to space-
between.
The items at each end are
placed against the
container and the
remaining space
distributed evenly.
nav ul{
display: flex;
justify-content: space-between;
flex-direction: row;
}
Flexbox
The justify-content
property is set to space-
around.
The items are evenly
distributed in the container
with a half size space at
each end.
nav ul{
display: flex;
justify-content: space-around;
flex-direction: row;
}
Default alignment
Used by the justify-items and align-items properties.
The align-items and justify-items properties set the default align-
self and justify-self behavior of the items contained by the
element.
Flexbox
The value of align-items is
stretch by default.
If I add extra text in one
navigation point the others
all take the same height.
nav ul{
display: flex;
justify-content: space-around;
flex-direction: row;
align-items: stretch;
}
Flexbox
If I set the value of align-
items to center then we
get vertical centring.
nav ul{
display: flex;
justify-content: space-around;
flex-direction: row;
align-items: center;
}
Flexbox
If flex-direction is column
and I set the value of align-
items to center then we
get horizontal centring.
nav ul{
display: flex;
justify-content: space-around;
flex-direction: column;
align-items: center;
}
Self alignment
justify-self and align-self properties.
The justify-self and align-self properties control alignment of the
box within its containing block.
Flexbox
You can use the align-self
and justify-self properties
to target individual flex
items.
In this example I have set
the group to centre, but
the third item to stretch.
nav ul{
display: flex;
justify-content: space-around;
flex-direction: row;
align-items: center;
}
nav li:nth-child(3) {
align-self: stretch;
}
Box alignment in CSS Grid Layout
Grid Layout
Creating a grid with the
align-items property set
to centre.
All items will be centered
inside their grid area.
.wrapper {
display: grid;
align-items: center;
grid-template-columns: repeat(5, 150px 10px) 150px;
grid-template-rows: 150px 10px 150px 10px 150px 10px 150px;
}
.a {
grid-column: 1 / 4;
grid-row: 1 / 4;
}
.b {
grid-column: 5 / 8;
grid-row: 1 / 4;
}
.c {
grid-column: 1 / 4;
grid-row: 5 / 10;
}
.d {
grid-column: 5 / 8;
grid-row: 5 / 10;
}
.e {
grid-column: 9 / 12;
grid-row: 1 / 10;
}
http://gridbyexample.com/examples/#example24
Grid Layout
Creating a grid with the
justify-items property set
to centre.
All items will be centered
horizontally inside their
grid area.
.wrapper {
display: grid;
justify-items: center;
grid-template-columns: repeat(5, 150px 10px) 150px;
grid-template-rows: 150px 10px 150px 10px 150px 10px
150px;
}
.a {
grid-column: 1 / 4;
grid-row: 1 / 4;
}
.b {
grid-column: 5 / 8;
grid-row: 1 / 4;
}
.c {
grid-column: 1 / 4;
grid-row: 5 / 10;
}
.d {
grid-column: 5 / 8;
grid-row: 5 / 10;
}
.e {
grid-column: 9 / 12;
grid-row: 1 / 10;
}
http://gridbyexample.com/examples/#example25
Grid Layout
As with flexbox we can
use align-self and justify-
self to target individual
grid items.
.a {
grid-column: 1 / 4;
grid-row: 1 / 4;
align-self: stretch;
}
.b {
grid-column: 5 / 8;
grid-row: 1 / 4;
align-self: end;
}
.c {
grid-column: 1 / 4;
grid-row: 5 / 10;
align-self: start;
}
.d {
grid-column: 5 / 8;
grid-row: 5 / 10;
align-self: center;
}
.e {
grid-column: 9 / 12;
grid-row: 1 / 10;
}
http://gridbyexample.com/examples/#example26
Responsive by default
Ethan Marcotte, Fluid Grids
ā€œā€¦ every aspect of the gridā€”and the
elements laid upon itā€”can be
expressed as a proportion relative to
its container.ā€
target Ć· context = result
h1 {
margin-left: 14.575%; /* 144px / 988px = 0.14575 */
width: 70.85%; /* 700px / 988px = 0.7085 */
}
Flexbox
The most simple flexbox
example demonstrates
the inherent flexibility.
The items will be
displayed as a row, with
equal space between each
item.
nav ul{
display: flex;
justify-content: space-between;
}
The flex property
ā€¢ flex-grow - add space
ā€¢ flex-shrink - remove space
ā€¢ flex-basis - the initial size before any growing or
shrinking
https://drafts.csswg.org/css-flexbox/#flex-components
Authors are encouraged to control
flexibility using the flex shorthand rather
than with its longhand properties
directly, as the shorthand correctly
resets any unspecified components to
accommodate common uses.
Flexbox
flex: 1 1 200px;
flex-grow: 1
flex-shrink: 1;
flex-basis: 200px;
The initial width of our
box is 200 pixels,
however it can grow
larger and shrink smaller
than 200 pixels.
.boxes {
display: flex;
justify-content: space-around;
}
.box {
flex: 1 1 200px;
min-width: 1px;
}
Flexbox
flex: 1 1 200px;
flex-grow: 1
flex-shrink: 1;
flex-basis: 200px;
If we allow the flex items
to wrap we can see how
flex-basis works by
dragging the window
smaller.
.boxes {
display: flex;
flex-flow: row wrap;
justify-content: space-around;
}
.box {
flex: 1 1 200px;
min-width: 1px;
}
Flexbox
flex: 0 1 200px;
flex-grow: 0
flex-shrink: 1;
flex-basis: 200px;
The initial width of our
box is 200 pixels, it can
shrink smaller than 200
pixels but may not get
larger.
.boxes {
display: flex;
justify-content: space-around;
}
.box {
flex: 0 1 200px;
min-width: 1px;
}
Flexbox
flex: 1 1 200px;
flex-grow: 1;
flex-shrink: 1;
flex-basis: 200px;
.box3 has been set to
flex: 0 1 200px;
so cannot grow.
.boxes {
display: flex;
justify-content: space-around;
}
.box {
flex: 1 1 200px;
min-width: 1px;
}
.box3 {
flex: 0 1 200px;
}
Flexbox
If we set box3 toā€Ø
flex-grow: 2
This box will be assigned
twice of much of the
available free space after
we have reached the 200
pixel initial width.
.boxes {
display: flex;
justify-content: space-around;
}
.box {
flex: 1 1 200px;
min-width: 1px;
}
.box3 {
2 1 200px;
}
http://madebymike.com.au/demos/flexbox-tester/
The CSS Grid Layout fr unit
Grid Layout
I am creating three grid
column tracks, all 1fr in
width.
This gives me three equally
sized column tracks.
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
Grid Layout
If I create the first column
as 600 pixels and then
have two 1fr columns the
600 pixel track is removed
from the available space
and the remainder is
distributed equally
between the two columns.
.wrapper {
display: grid;
grid-template-columns: 600px 1fr 1fr;
}
Grid Layout
With a 600 pixel column, a
1fr and a 3fr column. The
600 pixels is removed from
the available space then
the remaining space is
divided by 4.
The 1fr column gets 25%
and the 3fr column 75%.
.wrapper {
display: grid;
grid-template-columns: 600px 1fr 3fr;
}
http://alistapart.com/article/holygrail
Three columns. One fixed-width
sidebar for your navigation, another
for, say, your Google Ads or your Flickr
photosā€”and, as in a fancy truffle, a
liquid center for the real substance.
Grid Layout
CSS Grid ā€œHoly Grailā€
using grid-template-
areas.
//css
.header { grid-area: header;}
.footer { grid-area: footer;}
.side1 { grid-area: nav;}
.side2 { grid-area: ads;}
.content { grid-area: content;}
.wrapper {
display: grid;
grid-template-columns: 300px 20px 1fr 20px 300px;
grid-template-rows: auto;
grid-template-areas:
"header header header header header"
"nav ...... content ...... ads"
"footer footer footer footer footer"
;
}
//html
<div class="wrapper">
<header class="header">This is the header</header>
<article class="content"></article>
<div class="side1"></div>
<div class="side2"></div>
<footer class="footer"></div>
</div>
Performance in this shiny new
world.
https://developers.google.com/web/updates/2013/10/Flexbox-layout-isn-t-slow?hl=en
We will be able to make choices about
layout methods for the first time.
Flexbox for 1 dimensional layout.
CSS Grid is for 2 dimensional layout.
Wrapping list items using
flexbox.
.flex {
display: flex;
flex-wrap: wrap;
margin: 0 -10px;
}
.flex li {
flex: 1 1 200px;
margin: 10px;
}
Wrapping list items with
Grid Layout.
.grid {
display: grid;
grid-template-columns:
repeat(auto-fill, minmax(200px 1fr));
grid-gap: 20px;
}
https://rachelandrew.co.uk/archives/2016/04/12/flexible-sized-grids-with-auto-fill-and-minmax/
In practical terms, in simple layouts, all
these methods perform comparably.
http://chriswrightdesign.github.io/
layout-performance-testing/
What might we need to consider?
ā€¢ Grid or Flexbox
ā€¢ Are tracks or flex items fixed size, a proportion
of the container, auto sized.
ā€¢ Grid auto-placement or place items.
ā€¢ Define an Explicit or use the implicit grid.
ā€¢ Grid dense or sparse packing.
ā€¢ Proper alignment choices
ā€¢ maintaining a logical source order
https://blogs.igalia.com/jfernandez/2015/06/24/performance-on-grid-layout/
ā€œStretching logic takes place during the
grid container layout operations, after
all tracks have their size precisely
determined and we have properly
computed all grid trackā€™s positions
relatively to the grid container.ā€
Not just a case of which method we
use - but also how we use it.
http://gridbyexample.com
Thank you
Slides, Resources and code examples: ā€Ø
https://rachelandrew.co.uk/presentations/modern-css-layout
http://csslayout.news - sign up for my weekly CSS Layout email
ā€”
@rachelandrew
me@rachelandrew.co.uk
ā€”
https://rachelandrew.co.uk
https://grabaperch.com

More Related Content

What's hot

Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid LayoutRachel Andrew
Ā 
CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout Rachel Andrew
Ā 
CSS Grid Layout
CSS Grid LayoutCSS Grid Layout
CSS Grid LayoutRachel Andrew
Ā 
Talk Web Design: Get Ready For CSS Grid Layout
Talk Web Design: Get Ready For CSS Grid LayoutTalk Web Design: Get Ready For CSS Grid Layout
Talk Web Design: Get Ready For CSS Grid LayoutRachel Andrew
Ā 
CSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, LinzCSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, LinzRachel Andrew
Ā 
AEA Chicago CSS Grid Layout
AEA Chicago CSS Grid LayoutAEA Chicago CSS Grid Layout
AEA Chicago CSS Grid LayoutRachel Andrew
Ā 
An Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutAn Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutRachel Andrew
Ā 
Render Conf: Start using CSS Grid Layout Today
Render Conf: Start using CSS Grid Layout TodayRender Conf: Start using CSS Grid Layout Today
Render Conf: Start using CSS Grid Layout TodayRachel Andrew
Ā 
Making the most of New CSS Layout
Making the most of New CSS LayoutMaking the most of New CSS Layout
Making the most of New CSS LayoutRachel Andrew
Ā 
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...Igalia
Ā 
CSS Grid Layout - All Things Open
CSS Grid Layout - All Things OpenCSS Grid Layout - All Things Open
CSS Grid Layout - All Things OpenRachel Andrew
Ā 
The New CSS Layout - Dutch PHP Conference
The New CSS Layout - Dutch PHP ConferenceThe New CSS Layout - Dutch PHP Conference
The New CSS Layout - Dutch PHP ConferenceRachel Andrew
Ā 
Laracon Online: Grid and Flexbox
Laracon Online: Grid and FlexboxLaracon Online: Grid and Flexbox
Laracon Online: Grid and FlexboxRachel Andrew
Ā 
What I discovered about layout vis CSS Grid
What I discovered about layout vis CSS GridWhat I discovered about layout vis CSS Grid
What I discovered about layout vis CSS GridRachel Andrew
Ā 
Frontend United: Start using CSS Grid Layout today!
Frontend United: Start using CSS Grid Layout today!Frontend United: Start using CSS Grid Layout today!
Frontend United: Start using CSS Grid Layout today!Rachel Andrew
Ā 
An Event Apart Seattle - New CSS Layout Meets the Real World
An Event Apart Seattle - New CSS Layout Meets the Real WorldAn Event Apart Seattle - New CSS Layout Meets the Real World
An Event Apart Seattle - New CSS Layout Meets the Real WorldRachel Andrew
Ā 
CSSConf.asia - Laying out the future
CSSConf.asia - Laying out the futureCSSConf.asia - Laying out the future
CSSConf.asia - Laying out the futureRachel Andrew
Ā 
Grids of Tomorrow: CSS Grid Layout
Grids of Tomorrow: CSS Grid LayoutGrids of Tomorrow: CSS Grid Layout
Grids of Tomorrow: CSS Grid LayoutSimone Lelli
Ā 
Grid and Flexbox - Smashing Conf SF
Grid and Flexbox - Smashing Conf SFGrid and Flexbox - Smashing Conf SF
Grid and Flexbox - Smashing Conf SFRachel Andrew
Ā 

What's hot (20)

Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
Ā 
CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout
Ā 
CSS Grid Layout
CSS Grid LayoutCSS Grid Layout
CSS Grid Layout
Ā 
Talk Web Design: Get Ready For CSS Grid Layout
Talk Web Design: Get Ready For CSS Grid LayoutTalk Web Design: Get Ready For CSS Grid Layout
Talk Web Design: Get Ready For CSS Grid Layout
Ā 
CSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, LinzCSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, Linz
Ā 
AEA Chicago CSS Grid Layout
AEA Chicago CSS Grid LayoutAEA Chicago CSS Grid Layout
AEA Chicago CSS Grid Layout
Ā 
An Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid LayoutAn Event Apart SF: CSS Grid Layout
An Event Apart SF: CSS Grid Layout
Ā 
Render Conf: Start using CSS Grid Layout Today
Render Conf: Start using CSS Grid Layout TodayRender Conf: Start using CSS Grid Layout Today
Render Conf: Start using CSS Grid Layout Today
Ā 
Making the most of New CSS Layout
Making the most of New CSS LayoutMaking the most of New CSS Layout
Making the most of New CSS Layout
Ā 
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...
CSS Grid Layout. Implementation status and roadmap (Webkit Contributors Meeti...
Ā 
CSS Grid Layout - All Things Open
CSS Grid Layout - All Things OpenCSS Grid Layout - All Things Open
CSS Grid Layout - All Things Open
Ā 
The New CSS Layout - Dutch PHP Conference
The New CSS Layout - Dutch PHP ConferenceThe New CSS Layout - Dutch PHP Conference
The New CSS Layout - Dutch PHP Conference
Ā 
Laracon Online: Grid and Flexbox
Laracon Online: Grid and FlexboxLaracon Online: Grid and Flexbox
Laracon Online: Grid and Flexbox
Ā 
What I discovered about layout vis CSS Grid
What I discovered about layout vis CSS GridWhat I discovered about layout vis CSS Grid
What I discovered about layout vis CSS Grid
Ā 
Frontend United: Start using CSS Grid Layout today!
Frontend United: Start using CSS Grid Layout today!Frontend United: Start using CSS Grid Layout today!
Frontend United: Start using CSS Grid Layout today!
Ā 
An Event Apart Seattle - New CSS Layout Meets the Real World
An Event Apart Seattle - New CSS Layout Meets the Real WorldAn Event Apart Seattle - New CSS Layout Meets the Real World
An Event Apart Seattle - New CSS Layout Meets the Real World
Ā 
CSSConf.asia - Laying out the future
CSSConf.asia - Laying out the futureCSSConf.asia - Laying out the future
CSSConf.asia - Laying out the future
Ā 
Grids of Tomorrow: CSS Grid Layout
Grids of Tomorrow: CSS Grid LayoutGrids of Tomorrow: CSS Grid Layout
Grids of Tomorrow: CSS Grid Layout
Ā 
Grid and Flexbox - Smashing Conf SF
Grid and Flexbox - Smashing Conf SFGrid and Flexbox - Smashing Conf SF
Grid and Flexbox - Smashing Conf SF
Ā 
CSS Grid
CSS GridCSS Grid
CSS Grid
Ā 

Viewers also liked

Nikon Small World 2016: Finalists
Nikon Small World 2016: FinalistsNikon Small World 2016: Finalists
Nikon Small World 2016: Finalistsmaditabalnco
Ā 
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...CincyInnovates
Ā 
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øיל
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øילמחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øיל
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×ØילLeo Burnett Israel
Ā 
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015Digiday
Ā 
Informe de coyuntura nro 20
Informe de coyuntura nro 20Informe de coyuntura nro 20
Informe de coyuntura nro 20IADERE
Ā 
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)Rodrigo Dantas
Ā 
MD. MOFIJUL ISLAM LinkedIN
MD. MOFIJUL ISLAM LinkedINMD. MOFIJUL ISLAM LinkedIN
MD. MOFIJUL ISLAM LinkedINMofijul Islam Milan
Ā 
O plan de marketing
O plan de marketingO plan de marketing
O plan de marketingleiroraquel
Ā 
Social Media and Its Impact on SEO rankings
Social Media and Its Impact on SEO rankingsSocial Media and Its Impact on SEO rankings
Social Media and Its Impact on SEO rankingsWil Reynolds
Ā 
Common Knee Conditions by: Fred Huang
Common Knee Conditions by: Fred HuangCommon Knee Conditions by: Fred Huang
Common Knee Conditions by: Fred HuangVOA
Ā 
Diferentes etapas de la vida de yolanda justavino
Diferentes etapas de la vida de yolanda justavinoDiferentes etapas de la vida de yolanda justavino
Diferentes etapas de la vida de yolanda justavinoYoly63
Ā 
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠø
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠøŠ’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠø
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠømycasio
Ā 
Social Media for Bowling Green
Social Media for Bowling GreenSocial Media for Bowling Green
Social Media for Bowling GreenKaty Miller
Ā 
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·Dr Fereidoun Dejahang
Ā 
Business Model Storyteller Template
Business Model Storyteller TemplateBusiness Model Storyteller Template
Business Model Storyteller TemplateAlexandre Sartini
Ā 
How to Recruit Millennials by Going Mobile and Embracing Company Transparency
How to Recruit Millennials by Going Mobile and Embracing Company TransparencyHow to Recruit Millennials by Going Mobile and Embracing Company Transparency
How to Recruit Millennials by Going Mobile and Embracing Company TransparencyGlassdoor
Ā 

Viewers also liked (20)

Nikon Small World 2016: Finalists
Nikon Small World 2016: FinalistsNikon Small World 2016: Finalists
Nikon Small World 2016: Finalists
Ā 
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...
Building a Sustainable Innovation from Scratch by Amanda Smeller of AdvancePi...
Ā 
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øיל
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øילמחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øיל
מחדד ה×Øעיונו×Ŗ - 7.4.2016 - 1 באפ×Øיל
Ā 
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015
Staying Agile in Social Media to Inspire Consumers - DRS Chicago, June 2015
Ā 
Informe de coyuntura nro 20
Informe de coyuntura nro 20Informe de coyuntura nro 20
Informe de coyuntura nro 20
Ā 
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)
Founder Institute - Bootstrapping and Fundraising - Session (Rodrigo Dantas)
Ā 
micromedios
micromediosmicromedios
micromedios
Ā 
MD. MOFIJUL ISLAM LinkedIN
MD. MOFIJUL ISLAM LinkedINMD. MOFIJUL ISLAM LinkedIN
MD. MOFIJUL ISLAM LinkedIN
Ā 
Problemas ambientales
Problemas ambientalesProblemas ambientales
Problemas ambientales
Ā 
O plan de marketing
O plan de marketingO plan de marketing
O plan de marketing
Ā 
Social Media and Its Impact on SEO rankings
Social Media and Its Impact on SEO rankingsSocial Media and Its Impact on SEO rankings
Social Media and Its Impact on SEO rankings
Ā 
Common Knee Conditions by: Fred Huang
Common Knee Conditions by: Fred HuangCommon Knee Conditions by: Fred Huang
Common Knee Conditions by: Fred Huang
Ā 
Diferentes etapas de la vida de yolanda justavino
Diferentes etapas de la vida de yolanda justavinoDiferentes etapas de la vida de yolanda justavino
Diferentes etapas de la vida de yolanda justavino
Ā 
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠø
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠøŠ’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠø
Š’Š·Š°ŠøŠ¼Š¾Š²Ń‹Š³Š¾Š“Š½Š°Ń рŠµŠŗŠ»Š°Š¼Š° - ŠžŃŠµŠ½Š½ŠøŠµ сŠŗŠøŠ“ŠŗŠø
Ā 
Social Media for Bowling Green
Social Media for Bowling GreenSocial Media for Bowling Green
Social Media for Bowling Green
Ā 
Prepositions
PrepositionsPrepositions
Prepositions
Ā 
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·
Ų“Ų±Ų­ Ų§Ų³ŲŖŲÆŁ„Ų§Ł„Ų§ŲŖ ŲŗŁ„Ų·
Ā 
Business Model Storyteller Template
Business Model Storyteller TemplateBusiness Model Storyteller Template
Business Model Storyteller Template
Ā 
Maureen ielp
Maureen ielpMaureen ielp
Maureen ielp
Ā 
How to Recruit Millennials by Going Mobile and Embracing Company Transparency
How to Recruit Millennials by Going Mobile and Embracing Company TransparencyHow to Recruit Millennials by Going Mobile and Embracing Company Transparency
How to Recruit Millennials by Going Mobile and Embracing Company Transparency
Ā 

Similar to Future Layout & Performance

Confoo: The New CSS Layout
Confoo: The New CSS LayoutConfoo: The New CSS Layout
Confoo: The New CSS LayoutRachel Andrew
Ā 
The Right Layout Tool for the Job
The Right Layout Tool for the JobThe Right Layout Tool for the Job
The Right Layout Tool for the JobRachel Andrew
Ā 
Laying out the future
Laying out the futureLaying out the future
Laying out the futureRachel Andrew
Ā 
Better Layouts with Flexbox + CSS Grids
Better Layouts with Flexbox + CSS GridsBetter Layouts with Flexbox + CSS Grids
Better Layouts with Flexbox + CSS GridsSamantha Provenza
Ā 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgRachel Andrew
Ā 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSRachel Andrew
Ā 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersRachel Andrew
Ā 
Building Layouts with CSS
Building Layouts with CSSBuilding Layouts with CSS
Building Layouts with CSSBoris Paillard
Ā 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayRachel Andrew
Ā 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSSRachel Andrew
Ā 
Introduction to CSS Grid Layout
Introduction to CSS Grid LayoutIntroduction to CSS Grid Layout
Introduction to CSS Grid LayoutRachel Andrew
Ā 
Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Rachel Andrew
Ā 
Devoxx Belgium: CSS Grid Layout
Devoxx Belgium: CSS Grid LayoutDevoxx Belgium: CSS Grid Layout
Devoxx Belgium: CSS Grid LayoutRachel Andrew
Ā 
Next-level CSS
Next-level CSSNext-level CSS
Next-level CSSRachel Andrew
Ā 
CSS Grid Layout
CSS Grid LayoutCSS Grid Layout
CSS Grid LayoutRachel Andrew
Ā 
2D Page Layout
2D Page Layout2D Page Layout
2D Page LayoutUnfold UI
Ā 
Introducing CSS Grid Layout
Introducing CSS Grid LayoutIntroducing CSS Grid Layout
Introducing CSS Grid LayoutRachel Andrew
Ā 
CSS Grid Layout for Frontend NE
CSS Grid Layout for Frontend NECSS Grid Layout for Frontend NE
CSS Grid Layout for Frontend NERachel Andrew
Ā 
flexbox report
flexbox reportflexbox report
flexbox reportLearningTech
Ā 

Similar to Future Layout & Performance (20)

Confoo: The New CSS Layout
Confoo: The New CSS LayoutConfoo: The New CSS Layout
Confoo: The New CSS Layout
Ā 
The Right Layout Tool for the Job
The Right Layout Tool for the JobThe Right Layout Tool for the Job
The Right Layout Tool for the Job
Ā 
Laying out the future
Laying out the futureLaying out the future
Laying out the future
Ā 
Better Layouts with Flexbox + CSS Grids
Better Layouts with Flexbox + CSS GridsBetter Layouts with Flexbox + CSS Grids
Better Layouts with Flexbox + CSS Grids
Ā 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Ā 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJS
Ā 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsers
Ā 
Building Layouts with CSS
Building Layouts with CSSBuilding Layouts with CSS
Building Layouts with CSS
Ā 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout today
Ā 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSS
Ā 
Introduction to CSS Grid Layout
Introduction to CSS Grid LayoutIntroduction to CSS Grid Layout
Introduction to CSS Grid Layout
Ā 
Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Confoo: You can use CSS for that!
Confoo: You can use CSS for that!
Ā 
Devoxx Belgium: CSS Grid Layout
Devoxx Belgium: CSS Grid LayoutDevoxx Belgium: CSS Grid Layout
Devoxx Belgium: CSS Grid Layout
Ā 
Next-level CSS
Next-level CSSNext-level CSS
Next-level CSS
Ā 
A complete guide to flexbox
A complete guide to flexboxA complete guide to flexbox
A complete guide to flexbox
Ā 
CSS Grid Layout
CSS Grid LayoutCSS Grid Layout
CSS Grid Layout
Ā 
2D Page Layout
2D Page Layout2D Page Layout
2D Page Layout
Ā 
Introducing CSS Grid Layout
Introducing CSS Grid LayoutIntroducing CSS Grid Layout
Introducing CSS Grid Layout
Ā 
CSS Grid Layout for Frontend NE
CSS Grid Layout for Frontend NECSS Grid Layout for Frontend NE
CSS Grid Layout for Frontend NE
Ā 
flexbox report
flexbox reportflexbox report
flexbox report
Ā 

More from Rachel Andrew

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutRachel Andrew
Ā 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutRachel Andrew
Ā 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutRachel Andrew
Ā 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS LayoutRachel Andrew
Ā 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Rachel Andrew
Ā 
Graduating to Grid
Graduating to GridGraduating to Grid
Graduating to GridRachel Andrew
Ā 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
Ā 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
Ā 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Rachel Andrew
Ā 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSRachel Andrew
Ā 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Rachel Andrew
Ā 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp KeynoteRachel Andrew
Ā 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldRachel Andrew
Ā 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldRachel Andrew
Ā 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersRachel Andrew
Ā 
Where does CSS come from?
Where does CSS come from?Where does CSS come from?
Where does CSS come from?Rachel Andrew
Ā 
CSS Grid for html5j
CSS Grid for html5jCSS Grid for html5j
CSS Grid for html5jRachel Andrew
Ā 

More from Rachel Andrew (17)

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid Layout
Ā 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid Layout
Ā 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid Layout
Ā 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS Layout
Ā 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17
Ā 
Graduating to Grid
Graduating to GridGraduating to Grid
Graduating to Grid
Ā 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & Friends
Ā 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends
Ā 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17
Ā 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJS
Ā 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout
Ā 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp Keynote
Ā 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
Ā 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real World
Ā 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
Ā 
Where does CSS come from?
Where does CSS come from?Where does CSS come from?
Where does CSS come from?
Ā 
CSS Grid for html5j
CSS Grid for html5jCSS Grid for html5j
CSS Grid for html5j
Ā 

Recently uploaded

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
Ā 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
Ā 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
Ā 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
Ā 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
Ā 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Ā 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Ā 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Ā 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Ā 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 

Future Layout & Performance

  • 1. Future Layout & Performance Rachel Andrew, Bristol Web Performance April 2016 https://www.ļ¬‚ickr.com/photos/bortescristian/11343462395
  • 2. Rachel Andrew Blogging about tech/business and other things at rachelandrew.co.uk On Twitter and other places as @rachelandrew Co-founder of Perch & Perch Runway CMS, see: grabaperch.com Teaching CSS Layout at thecssworkshop.com Google Developer Expert for Web Technologies Contact: me@rachelandrew.co.uk
  • 3. The New CSS for Layout ā€¢ Flexboxā€Ø https://drafts.csswg.org/css-flexbox/ ā€¢ CSS Grid Layoutā€Ø https://drafts.csswg.org/css-grid/ ā€¢ Box Alignmentā€Ø https://drafts.csswg.org/css-align/
  • 4. The bad news. All my grid examples work in Chrome unprefixed - you need to enable the Experimental Web Platform Features flag. You can also use Webkit nightlies or Developer Preview, with the - webkit prefix. The work in Blink and Webkit is being done by Igalia, sponsored by Bloomberg. IE10 and up has support for the old syntax, with an -ms prefix. Grid is on the Edge backlog, marked as High Priority. Mozilla are currently implementing Grid in Firefox. Use Firefox Nightlies or Developer Preview for the latest work.
  • 5. Key Features of new layout ā€¢ Items in our layouts understand themselves as part of an overall layout. ā€¢ True separation of document source order and visual display. ā€¢ Precise control of alignment - horizontally and vertically. ā€¢ Responsive and flexible by default.
  • 6. Items in our layouts understand themselves as part of a complete layout.
  • 9. Flexbox Full height columns with flexbox, taking advantage of default alignment values. .wrapper { display: flex; } .sidebar { flex: 1 1 30%; } .content { flex: 1 1 70%; }
  • 10. Grid Layout Full height columns in CSS Grid Layout. .wrapper { display: grid; grid-template-columns: 30% 70%; } .sidebar { grid-column: 1; } .content { grid-column: 2; }
  • 11. Separation of source and display
  • 12. Flexbox The flex-direction property can take a value of row to display things as a row or column to display them as a column. nav ul{ display: flex; justify-content: space-between; flex-direction: row; }
  • 13. Flexbox The visual order can be switched using row- reverse or column-reverse. nav ul{ display: flex; justify-content: space-between; flex-direction: row-reverse; }
  • 14. Flexbox Adding display: flex to our container element causes the items to display flexibly in a row. .wrapper { display: flex; }
  • 15. Flexbox The order property means we can change the order of flex items using CSS. This does not change their source order. li:nth-child(1) { order: 3; } li:nth-child(2) { order: 1; } li:nth-child(3) { order: 4; } li:nth-child(4) { order: 2; }
  • 16. Grid Layout I have created a grid on my wrapper element. The grid has 3 equal width columns. Rows will be created as required as we position items into them. .wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
  • 17. Grid Layout I am positioning my elements using CSS Grid Layout line-based positioning. Setting a column and a row line using the grid- column and grid-row properties. li:nth-child(1) { grid-column: 3 / 4 ; grid-row: 2 / 3; } li:nth-child(2) { grid-column: 1 / 2; grid-row: 2 / 3; } li:nth-child(3) { grid-column: 1 / 2; grid-row: 1 / 2; } li:nth-child(4) { grid-column: 2 / 3; grid-row: 1 / 2; }
  • 18.
  • 19. CSS Grid automatic placement http://www.w3.org/TR/2015/WD-css-grid-1-20150917/#grid-auto- flow-property https://rachelandrew.co.uk/archives/2015/04/14/grid-layout- automatic-placement-and-packing-modes/
  • 20.
  • 21. Grid Layout When using automatic placement we can create rules for items in our document - for example displaying portrait and landscape images differently. .wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; } .landscape { grid-column-end: span 2; }
  • 22. grid-auto-flow The default value of grid-auto-flow is sparse. Grid will move forward planning items skipping cells if items do not fit .
  • 23. Grid Layout With a dense packing mode grid will move items out of source order to backfill spaces. .wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-auto-flow: dense; } .landscape { grid-column-end: span 2; }
  • 24. grid-auto-flow With grid-auto-flow dense items are displayed out of source order. Grid backfills any suitable gaps.
  • 25. https://drafts.csswg.org/css-grid/#grid-item-placement-algorithm ā€œThe following grid item placement algorithm resolves automatic positions of grid items into definite positions, ensuring that every grid item has a well-defined grid area to lay out into.ā€
  • 26. https://drafts.csswg.org/css-flexbox/#order-accessibility Authors must use order only for visual, not logical, reordering of content. Style sheets that use order to perform logical reordering are non-conforming.
  • 27. Explicit and Implicit Grid Lines
  • 28. The explicit grid is created with grid- template-columns and grid-template-rows. If we position items outside of the explicit grid implicit lines are created. We can size these with grid-auto-columns and grid-auto-rows. .grid { grid-template-columns: 1fr 2fr 1fr; grid-template-rows: 100px 1fr; } /* this item would create implicit row lines 4 and 5*/ .item { grid-column: 1 / 3; grid-row: 4; }
  • 30. CSS Box Alignment Module Level 3 ā€œThis module contains the features of CSS relating to the alignment of boxes within their containers in the various CSS box layout models: block layout, table layout, flex layout, and grid layout.ā€ - https://drafts.csswg.org/css-align/
  • 31. Vertically centre ALL THE THINGS!
  • 32. Distributed alignment justify-content and align-content properties. Values: space-between, space-around, stretch, space-evenly
  • 33. Flexbox The justify-content property is set to space- between. The items at each end are placed against the container and the remaining space distributed evenly. nav ul{ display: flex; justify-content: space-between; flex-direction: row; }
  • 34. Flexbox The justify-content property is set to space- around. The items are evenly distributed in the container with a half size space at each end. nav ul{ display: flex; justify-content: space-around; flex-direction: row; }
  • 35. Default alignment Used by the justify-items and align-items properties. The align-items and justify-items properties set the default align- self and justify-self behavior of the items contained by the element.
  • 36. Flexbox The value of align-items is stretch by default. If I add extra text in one navigation point the others all take the same height. nav ul{ display: flex; justify-content: space-around; flex-direction: row; align-items: stretch; }
  • 37. Flexbox If I set the value of align- items to center then we get vertical centring. nav ul{ display: flex; justify-content: space-around; flex-direction: row; align-items: center; }
  • 38. Flexbox If flex-direction is column and I set the value of align- items to center then we get horizontal centring. nav ul{ display: flex; justify-content: space-around; flex-direction: column; align-items: center; }
  • 39. Self alignment justify-self and align-self properties. The justify-self and align-self properties control alignment of the box within its containing block.
  • 40. Flexbox You can use the align-self and justify-self properties to target individual flex items. In this example I have set the group to centre, but the third item to stretch. nav ul{ display: flex; justify-content: space-around; flex-direction: row; align-items: center; } nav li:nth-child(3) { align-self: stretch; }
  • 41. Box alignment in CSS Grid Layout
  • 42. Grid Layout Creating a grid with the align-items property set to centre. All items will be centered inside their grid area. .wrapper { display: grid; align-items: center; grid-template-columns: repeat(5, 150px 10px) 150px; grid-template-rows: 150px 10px 150px 10px 150px 10px 150px; } .a { grid-column: 1 / 4; grid-row: 1 / 4; } .b { grid-column: 5 / 8; grid-row: 1 / 4; } .c { grid-column: 1 / 4; grid-row: 5 / 10; } .d { grid-column: 5 / 8; grid-row: 5 / 10; } .e { grid-column: 9 / 12; grid-row: 1 / 10; }
  • 44. Grid Layout Creating a grid with the justify-items property set to centre. All items will be centered horizontally inside their grid area. .wrapper { display: grid; justify-items: center; grid-template-columns: repeat(5, 150px 10px) 150px; grid-template-rows: 150px 10px 150px 10px 150px 10px 150px; } .a { grid-column: 1 / 4; grid-row: 1 / 4; } .b { grid-column: 5 / 8; grid-row: 1 / 4; } .c { grid-column: 1 / 4; grid-row: 5 / 10; } .d { grid-column: 5 / 8; grid-row: 5 / 10; } .e { grid-column: 9 / 12; grid-row: 1 / 10; }
  • 46. Grid Layout As with flexbox we can use align-self and justify- self to target individual grid items. .a { grid-column: 1 / 4; grid-row: 1 / 4; align-self: stretch; } .b { grid-column: 5 / 8; grid-row: 1 / 4; align-self: end; } .c { grid-column: 1 / 4; grid-row: 5 / 10; align-self: start; } .d { grid-column: 5 / 8; grid-row: 5 / 10; align-self: center; } .e { grid-column: 9 / 12; grid-row: 1 / 10; }
  • 49. Ethan Marcotte, Fluid Grids ā€œā€¦ every aspect of the gridā€”and the elements laid upon itā€”can be expressed as a proportion relative to its container.ā€
  • 50. target Ć· context = result h1 { margin-left: 14.575%; /* 144px / 988px = 0.14575 */ width: 70.85%; /* 700px / 988px = 0.7085 */ }
  • 51. Flexbox The most simple flexbox example demonstrates the inherent flexibility. The items will be displayed as a row, with equal space between each item. nav ul{ display: flex; justify-content: space-between; }
  • 52. The flex property ā€¢ flex-grow - add space ā€¢ flex-shrink - remove space ā€¢ flex-basis - the initial size before any growing or shrinking
  • 53. https://drafts.csswg.org/css-flexbox/#flex-components Authors are encouraged to control flexibility using the flex shorthand rather than with its longhand properties directly, as the shorthand correctly resets any unspecified components to accommodate common uses.
  • 54. Flexbox flex: 1 1 200px; flex-grow: 1 flex-shrink: 1; flex-basis: 200px; The initial width of our box is 200 pixels, however it can grow larger and shrink smaller than 200 pixels. .boxes { display: flex; justify-content: space-around; } .box { flex: 1 1 200px; min-width: 1px; }
  • 55.
  • 56. Flexbox flex: 1 1 200px; flex-grow: 1 flex-shrink: 1; flex-basis: 200px; If we allow the flex items to wrap we can see how flex-basis works by dragging the window smaller. .boxes { display: flex; flex-flow: row wrap; justify-content: space-around; } .box { flex: 1 1 200px; min-width: 1px; }
  • 57.
  • 58. Flexbox flex: 0 1 200px; flex-grow: 0 flex-shrink: 1; flex-basis: 200px; The initial width of our box is 200 pixels, it can shrink smaller than 200 pixels but may not get larger. .boxes { display: flex; justify-content: space-around; } .box { flex: 0 1 200px; min-width: 1px; }
  • 59.
  • 60. Flexbox flex: 1 1 200px; flex-grow: 1; flex-shrink: 1; flex-basis: 200px; .box3 has been set to flex: 0 1 200px; so cannot grow. .boxes { display: flex; justify-content: space-around; } .box { flex: 1 1 200px; min-width: 1px; } .box3 { flex: 0 1 200px; }
  • 61.
  • 62. Flexbox If we set box3 toā€Ø flex-grow: 2 This box will be assigned twice of much of the available free space after we have reached the 200 pixel initial width. .boxes { display: flex; justify-content: space-around; } .box { flex: 1 1 200px; min-width: 1px; } .box3 { 2 1 200px; }
  • 63.
  • 65. The CSS Grid Layout fr unit
  • 66. Grid Layout I am creating three grid column tracks, all 1fr in width. This gives me three equally sized column tracks. .wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
  • 67. Grid Layout If I create the first column as 600 pixels and then have two 1fr columns the 600 pixel track is removed from the available space and the remainder is distributed equally between the two columns. .wrapper { display: grid; grid-template-columns: 600px 1fr 1fr; }
  • 68. Grid Layout With a 600 pixel column, a 1fr and a 3fr column. The 600 pixels is removed from the available space then the remaining space is divided by 4. The 1fr column gets 25% and the 3fr column 75%. .wrapper { display: grid; grid-template-columns: 600px 1fr 3fr; }
  • 69. http://alistapart.com/article/holygrail Three columns. One fixed-width sidebar for your navigation, another for, say, your Google Ads or your Flickr photosā€”and, as in a fancy truffle, a liquid center for the real substance.
  • 70. Grid Layout CSS Grid ā€œHoly Grailā€ using grid-template- areas. //css .header { grid-area: header;} .footer { grid-area: footer;} .side1 { grid-area: nav;} .side2 { grid-area: ads;} .content { grid-area: content;} .wrapper { display: grid; grid-template-columns: 300px 20px 1fr 20px 300px; grid-template-rows: auto; grid-template-areas: "header header header header header" "nav ...... content ...... ads" "footer footer footer footer footer" ; } //html <div class="wrapper"> <header class="header">This is the header</header> <article class="content"></article> <div class="side1"></div> <div class="side2"></div> <footer class="footer"></div> </div>
  • 71.
  • 72. Performance in this shiny new world.
  • 74. We will be able to make choices about layout methods for the first time.
  • 75. Flexbox for 1 dimensional layout. CSS Grid is for 2 dimensional layout.
  • 76. Wrapping list items using flexbox. .flex { display: flex; flex-wrap: wrap; margin: 0 -10px; } .flex li { flex: 1 1 200px; margin: 10px; }
  • 77.
  • 78. Wrapping list items with Grid Layout. .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px 1fr)); grid-gap: 20px; }
  • 79.
  • 81. In practical terms, in simple layouts, all these methods perform comparably.
  • 83. What might we need to consider? ā€¢ Grid or Flexbox ā€¢ Are tracks or flex items fixed size, a proportion of the container, auto sized. ā€¢ Grid auto-placement or place items. ā€¢ Define an Explicit or use the implicit grid. ā€¢ Grid dense or sparse packing. ā€¢ Proper alignment choices ā€¢ maintaining a logical source order
  • 84. https://blogs.igalia.com/jfernandez/2015/06/24/performance-on-grid-layout/ ā€œStretching logic takes place during the grid container layout operations, after all tracks have their size precisely determined and we have properly computed all grid trackā€™s positions relatively to the grid container.ā€
  • 85. Not just a case of which method we use - but also how we use it.
  • 87. Thank you Slides, Resources and code examples: ā€Ø https://rachelandrew.co.uk/presentations/modern-css-layout http://csslayout.news - sign up for my weekly CSS Layout email ā€” @rachelandrew me@rachelandrew.co.uk ā€” https://rachelandrew.co.uk https://grabaperch.com