what’s new in safari and webkit for web developers · 2016-07-10 · what’s new in safari and...

208
These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 600 Beth Dakin Safari and WebKit Engineer What’s New in Safari and WebKit for Web Developers

Upload: others

Post on 20-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

Session 600Beth DakinSafari and WebKit Engineer

What’s New in Safari and WebKit for Web Developers

Page 2: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 3: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 4: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 5: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 6: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Sticky Position

CSS Regions

CSS Flexbox

Pagination

Canvas Path()

background-blend-mode

Faster Scrolling

JavaScript Objective-C API

AirPlay API

Web VTT

Widows and Orphans

-webkit-user-select

-webkit-line-break

CSS calc()

Mutation Observers

Push Notifications

requestAnimationFrame

Page Visibility

CSS Clip Path

Web Speech APIGrid Layout

-webkit-image-set

Canvas Blending Modes

Canvas Line Dashing

Page 7: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 8: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 9: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 10: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination
Page 11: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

What You Will Learn

•New layout models•Media features• Enhancements

Page 12: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

Page 13: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

Page 14: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination

Page 15: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions

Page 16: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 17: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 18: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and Pagination

Page 19: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and Pagination

Page 20: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

What columns have to offerColumns and Pagination

Page 21: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

What columns have to offerColumns and Pagination

• Common design in print media

Page 22: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

What columns have to offerColumns and Pagination

• Common design in print media• Improved readability

Page 23: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

What columns have to offerColumns and Pagination

• Common design in print media• Improved readability• Less wasted space

Page 24: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and Pagination

#main-content { -webkit-column-width: 550px;}

Page 25: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and Pagination

#main-content { -webkit-column-count: 2;}

Page 26: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS properties to style columnsColumns and Pagination

Page 27: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS properties to style columnsColumns and Pagination

-webkit-column-gap-webkit-column-rule-webkit-column-rule-color-webkit-column-rule-style-webkit-column-rule-width-webkit-column-break-after-webkit-column-break-before-webkit-column-break-inside-webkit-column-span-webkit-column-axis-webkit-column-progression

Page 28: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and Pagination

Page 29: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationUIWebView with a long document

Page 30: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationUIWebView with a long document

Page 31: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationUIWebView with a long document

Page 32: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationUIWebView with a long document

Page 33: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationUIWebView with a long document

Page 34: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS API is for you if…Columns and Pagination

• You want to paginate the entire UIWebView as a whole• You don’t control the content your app displays

Page 35: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 36: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 37: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 38: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

pageLength

Page 39: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 40: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

pageGap

Page 41: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 42: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS APIColumns and Pagination

myUIWebView.paginationMode = UIWebPaginationModeLeftToRight;myUIWebView.pageLength = 600;myUIWebView.pageGap = 25;myUIWebView.paginationBreakingMode = UIWebPaginationBreakingModeColumn;

Page 43: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationiOS API

Page 44: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Columns and PaginationiOS API

Page 45: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 46: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 47: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 48: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 49: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 50: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 51: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 52: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 53: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 54: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Is there any food better than pizza? Idon't think so. Its simplest form is

really my favorite - a perfect thin

crust, a barely--altered tomato

sauce, fresh mozzarella, and a light sprinkling of basil. But I like all of the less pure interpretations of pizza too. From a mushroom-and- sausage-filledChicago-style deep dish to a California sourdough crust.

Page 55: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

Page 56: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

CSS Regions

Page 57: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

CSS Regions

Page 58: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

CSS Regions

Page 59: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

CSS Regions

Page 60: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

Page 61: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

Page 62: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<style>.region { -webkit-flow-from: pizza-manifesto;}</style>

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div>…<div class="region" id="region-5"></div>

Page 63: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<style>#flow-content { -webkit-flow-into: pizza-manifesto;}

.region { -webkit-flow-from: pizza-manifesto;}</style>

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div>…<div class="region" id="region-5"></div>

Page 64: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<style>#flow-content { -webkit-flow-into: pizza-manifesto;}

.region { -webkit-flow-from: pizza-manifesto;}</style>

<div id="flow-content"> <h1>Pizza is Amazing</h1> … </div>

<div class="region" id="region-1"></div>…<div class="region" id="region-5"></div>

Page 65: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 66: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

Page 67: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS Regions

<style>@-webkit-region #region-2 { p { color: green; }}</style>

<div class="region" id="region-1"></div><img src="pizza.jpg" width=512 height=342><div class="region" id="region-2"></div><div class="region" id="region-3"></div><div class="region" id="region-4"></div><div class="region" id="region-5"></div>

Page 68: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Demo

Enrica CasucciSafari and WebKit Engineer

Page 69: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 70: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 71: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 72: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 73: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 74: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 75: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Old syntaxFlexbox

.flex-container { display: -webkit-box;}

.flex-child { -webkit-box-flex: 1;}

Page 76: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Old syntaxFlexbox

.flex-container { display: -webkit-box;}

.flex-child { -webkit-box-flex: 1;}

Page 77: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 78: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 79: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 80: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 81: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 82: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 83: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 84: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 85: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 86: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 87: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 88: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 89: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 90: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Flexbox

Page 91: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

#container { display: -webkit-flex; -webkit-flex-direction: row;}

Flexbox

triplet triplet triplet big

container

Page 92: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

#container { display: -webkit-flex; -webkit-flex-direction: row;}

Flexbox

triplet triplet triplet big

container

Page 93: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

#container { display: -webkit-flex; -webkit-flex-direction: row;}

Flexbox

triplet triplet triplet big

container

Page 94: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

#container { display: -webkit-flex; -webkit-flex-direction: row;}

Flexbox

triplet triplet triplet big

container

Page 95: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet triplet triplet big

container

Page 96: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet triplet triplet big

container

Page 97: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

triplet triplet triplet big

Flexbox

container

Page 98: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

triplet triplet triplet big

Flexbox

container

600px

Page 99: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

triplet triplet triplet big

Flexbox

container

600px

112px 112px 112px

Page 100: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

triplet triplet triplet big

Flexbox

container

600px

112px 112px 112px 225px

Page 101: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

triplet triplet triplet big

Flexbox

Page 102: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet triplet triplet big

112px 112px 112px 225px

Page 103: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

825px

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet triplet triplet big

112px 112px 112px 225px

Page 104: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

bigtriplet

112px

triplet

112px

triplet

112px 225px

825px

Page 105: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet

112px

triplet

112px

triplet

112px

big

450px

825px

Page 106: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

triplet triplet triplet big

112px 112px 112px 225px

container

Page 107: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex-basis: 112px; -webkit-flex-grow: 0; -webkit-flex-shrink: 1;}.big { -webkit-flex-basis: 225px; -webkit-flex-grow: 1; -webkit-flex-shrink: 0; }

Flexbox

big

225px

400px

container

Page 108: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

.triplet { -webkit-flex: 0 1 112px;}.big { -webkit-flex: 1 0 225px;}

Flexbox

triplet triplet triplet big

container

Page 109: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Centering!Flexbox

#container { display: -webkit-flex;}

.flex-child { -webkit-flex: 1 1 200; margin: auto;}

Page 110: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 111: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

New Layout Models

• Columns and pagination• CSS Regions• Flexible boxes

Page 112: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

Page 113: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

Page 114: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API

Page 115: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API• Styling captions for <video>

Page 116: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API• Styling captions for <video>

Page 117: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 118: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 119: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 120: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 121: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

<video id="video" src="my-video.mp4"></video><div id="controls"> <button id="playButton">Play</button> <button id="pauseButton" hidden>Pause</button></div>

Page 122: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

<video id="video" src="my-video.mp4"></video><div id="controls"> <button id="playButton">Play</button> <button id="pauseButton" hidden>Pause</button></div>

Page 123: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<video id="video" src="my-video.mp4"></video><div id="controls"> <button id="playButton">Play</button> <button id="pauseButton" hidden>Pause</button></div>

iOS AirPlay API

Page 124: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

<video id="video" src="my-video.mp4"></video><div id="controls"> <button id="playButton">Play</button> <button id="pauseButton" hidden>Pause</button> <button id="airPlayButton" hidden disabled>AirPlay</button></div>

iOS AirPlay API

Page 125: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 126: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 127: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 128: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 129: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 130: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (window.WebKitPlaybackTargetAvailabilityEvent) { video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { switch (event.availability) { case "available": airPlayButton.hidden = false; airPlayButton.disabled = false; break; case "not-available": airPlayButton.hidden = true; airPlayButton.disabled = true; break; } });}

iOS AirPlay API

Page 131: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 132: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 133: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var airPlayButton = document.getElementById("airPlayButton");var video = document.getElementById("video");

airPlayButton.addEventListener('click', function(event) { video.webkitShowPlaybackTargetPicker();});

iOS AirPlay API

Page 134: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var airPlayButton = document.getElementById("airPlayButton");var video = document.getElementById("video");

airPlayButton.addEventListener('click', function(event) { video.webkitShowPlaybackTargetPicker();});

iOS AirPlay API

Page 135: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var airPlayButton = document.getElementById("airPlayButton");var video = document.getElementById("video");

airPlayButton.addEventListener('click', function(event) { video.webkitShowPlaybackTargetPicker();});

iOS AirPlay API

Page 136: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 137: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 138: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

iOS AirPlay API

Page 139: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var video = document.getElementById("video");

video.addEventListener('webkitcurrentplaybacktargetiswirelesschanged', function(event) { updateAirPlayButtonWirelessStyle(); updatePageDimmerForWirelessPlayback(); });

iOS AirPlay API

Page 140: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var video = document.getElementById("video");

video.addEventListener('webkitcurrentplaybacktargetiswirelesschanged', function(event) { updateAirPlayButtonWirelessStyle(); updatePageDimmerForWirelessPlayback(); });

iOS AirPlay API

Page 141: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

if (!window.WebKitPlaybackTargetAvailabilityEvent) return; var video = document.getElementById("video");

video.addEventListener('webkitcurrentplaybacktargetiswirelesschanged', function(event) { updateAirPlayButtonWirelessStyle(); updatePageDimmerForWirelessPlayback(); });

iOS AirPlay API

Page 142: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API• Styling captions for <video>

Page 143: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API• Styling captions for <video>

Page 144: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Styling Captions for <video>

Page 145: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Newly supported featuresStyling Captions for <video>

Page 146: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Newly supported featuresStyling Captions for <video>

• Captions inside the movie file

Page 147: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Newly supported featuresStyling Captions for <video>

• Captions inside the movie file• Styling cues

Page 148: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Properties you can use to style ::cueStyling Captions for <video>

coloropacityvisibilitytext-decorationtext-outlinetext-shadowbackgroundoutlinefontwhite-space

Page 149: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Demo

Enrica CasucciSafari and WebKit Engineer

Page 150: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Media Features

• iOS AirPlay API• Styling captions for <video>

Page 151: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

Page 152: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

Page 153: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts

Page 154: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS

Page 155: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics

Page 156: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 157: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 158: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Dynamic typeFont Enhancements

Page 159: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Dynamic type

-apple-system-headline1-apple-system-headline2-apple-system-body-apple-system-subheadline1-apple-system-subheadline2-apple-system-footnote-apple-system-caption1-apple-system-caption2-apple-system-short-headline1-apple-system-short-headline2-apple-system-short-body-apple-system-short-subheadline1-apple-system-short-subheadline2-apple-system-short-footnote-apple-system-short-caption1-apple-system-tall-body

Font Enhancements

Page 160: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Dynamic type

-apple-system-headline1-apple-system-headline2-apple-system-body-apple-system-subheadline1-apple-system-subheadline2-apple-system-footnote-apple-system-caption1-apple-system-caption2-apple-system-short-headline1-apple-system-short-headline2-apple-system-short-body-apple-system-short-subheadline1-apple-system-short-subheadline2-apple-system-short-footnote-apple-system-short-caption1-apple-system-tall-body

Font Enhancements

Page 161: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Dynamic type

-apple-system-headline1-apple-system-headline2-apple-system-body-apple-system-subheadline1-apple-system-subheadline2-apple-system-footnote-apple-system-caption1-apple-system-caption2-apple-system-short-headline1-apple-system-short-headline2-apple-system-short-body-apple-system-short-subheadline1-apple-system-short-subheadline2-apple-system-short-footnote-apple-system-short-caption1-apple-system-tall-body

Font Enhancements

Page 162: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 163: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 164: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 165: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 166: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 167: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 168: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Font EnhancementsKerning and ligatures

Page 169: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 170: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 171: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

CSS calc()CSS Enhancements

.banner {height: 50px;width: calc(100% - 80px);min-width: 100px;text-align: center;border: 2px solid black;margin: auto auto;

}

Page 172: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

-webkit-clip-pathCSS Enhancements

Page 173: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

-webkit-clip-pathCSS Enhancements

Page 174: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

-webkit-clip-pathCSS Enhancements

.clip-image {-webkit-clip-path: circle(256, 180, 170);

}

Page 175: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

-webkit-clip-pathCSS Enhancements

• Shape values for -webkit-clip-path■ circle(x, y, radius)■ rectangle(x, y, width, height)■ ellipse(x, y, x-radius, y-radius)■ polygon(fill-rule, x, y)

Page 176: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 177: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 178: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Graphics EnhancementsCanvas blending modes

Page 179: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas blending modesGraphics Enhancements

Page 180: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas blending modesGraphics Enhancements

function drawBlendedCircles(ctx) { ctx.globalCompositeOperation = 'multiply';

// Draw magenta circle …

// Draw cyan circle …

// Draw yellow circle …}

Page 181: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas Path() objectGraphics Enhancements

Page 182: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas Path() objectGraphics Enhancements

function drawPaths() { … // Create and store a square. var square = new Path(); square.rect(8, 8, 300, 300); // Create and store a circle. var circle = new Path(); circle.arc(150, 150, 100, 0, Math.PI*2, true); ctx.stroke(square); ctx.stroke(circle);}

Page 183: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

Page 184: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store

Page 185: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this

Page 186: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this• iOS did not auto-double

Page 187: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this• iOS did not auto-double• People got confused

Page 188: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this• iOS did not auto-double• People got confused•And sad

Page 189: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this• iOS did not auto-double• People got confused•And sad• Safari 7 no longer auto-doubles

Page 190: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Canvas on RetinaGraphics Enhancements

• <canvas> on Retina needs a 2X backing store• Safari 6 auto-doubles to ensure this• iOS did not auto-double• People got confused•And sad• Safari 7 no longer auto-doubles• If you used webkitBackingStorePixelRatio, your code still does the right thing

Page 191: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 192: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 193: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

Page 194: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

• <canvas> no longer auto-doubles

Page 195: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

• <canvas> no longer auto-doubles • Kerning and ligatures on by default

Page 196: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

• <canvas> no longer auto-doubles • Kerning and ligatures on by default• background shorthand will override earlier settings

Page 197: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

• <canvas> no longer auto-doubles • Kerning and ligatures on by default• background shorthand will override earlier settings

.fit { background-size: 100px 100px; }

.reset { background: none;}

Page 198: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

• <canvas> no longer auto-doubles • Kerning and ligatures on by default• background shorthand will override earlier settings

.hot { background-size: 100px 100px; background: red url(‘image.png’); }

Changes that might affect youEnhancements

Page 199: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Changes that might affect youEnhancements

• <canvas> no longer auto-doubles • Kerning and ligatures on by default• background shorthand will override earlier settings• -webkit-transition is now transition

Page 200: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Enhancements

• Fonts• CSS•Graphics• Changes that might affect you

Page 201: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Summary

Page 202: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Summary

• Rich, magazine-like layouts are coming to the web

Page 203: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Summary

• Rich, magazine-like layouts are coming to the web• Better integration with platform and devices

Page 204: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Summary

• Rich, magazine-like layouts are coming to the web• Better integration with platform and devices• Tons of new stuff in WebKit all the time!

Page 205: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

More Information

John GeleynseDirector, Technology [email protected]

DocumentationAV Foundation Programming Guidehttps://developer.apple.com/library/mac/#documentation/AudioVideo/Conceptual/AVFoundationPG/

Technical Note TN2300: Transitioning QTKit code to AV Foundationhttps://developer.apple.com/library/mac/technotes/tn2300/

Apple Developer Forumshttp://devforums.apple.com

Page 206: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Related Sessions

Getting to Know Web Inspector Russian HillTuesday 10:15AM

Getting the Most Out of Web Inspector Russian HillTuesday 11:30AM

Power and Performance: Optimizing Your Website for Great Battery Life and Responsive Scrolling

Russian HillWednesday 9:00AM

Preparing and Presenting Media for Accessibility Nob HillWednesday 10:15AM

Implementing OS X Push Notifications for Websites MarinaFriday 9:00AM

Integrating JavaScript into Native Apps MarinaFriday 10:15AM

Page 207: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination

Labs

Safari and WebKit Open Lab Media Lab ATuesday 10:15AM

Safari and Web Tools Lab Media Lab ATuesday 12:45PM

Page 208: What’s New in Safari and WebKit for Web Developers · 2016-07-10 · What’s New in Safari and WebKit for Web Developers. CSS Sticky Position CSS Regions CSS Flexbox Pagination