designing with web components

29
WEB COMPONENTS DESIGNING WITH @jasonadelia

Upload: jason-delia

Post on 21-Jul-2015

226 views

Category:

Design


1 download

TRANSCRIPT

Page 1: Designing With Web Components

WEB COMPONENTS

DESIGNING WITH

@jasonadelia

Page 2: Designing With Web Components

NASDAQ DESIGN

@jasonadelia

Page 3: Designing With Web Components

CONSISTENCY REUSABILITY MAINTENANCE

Page 4: Designing With Web Components

CONSISTENCY

@jasonadelia

widget

widget

widget

Page 5: Designing With Web Components

CONSISTENCY

@jasonadelia

widget

widget

widget

Page 6: Designing With Web Components

CONSISTENCY

@jasonadelia

widget

widget

widget

• style guides

• shared codebases

• homebrew bootstrap

Page 7: Designing With Web Components

REUSABILITY

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

Page 8: Designing With Web Components

REUSABILITY

@jasonadelia

page

<widget/>

page page

page

Page 9: Designing With Web Components

REUSABILITY

@jasonadelia

page

<widget/>

page page

page

• atomic design

• knockout

• oocss

Page 10: Designing With Web Components

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page page

<widget/> <widget/>

Page 11: Designing With Web Components

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page page

<widget/> <widget/>

Page 12: Designing With Web Components

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

Page 13: Designing With Web Components

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

Page 14: Designing With Web Components

MAINTENANCE

@jasonadelia

page page

page page

<widget/>

Page 15: Designing With Web Components

MAINTENANCE

@jasonadelia

• requirejs

page page

page page

<widget/>

Page 16: Designing With Web Components

WEB COMPONENTS

@jasonadelia

Page 17: Designing With Web Components

Web Components?

• html imports

• Templating

• shadow dom

• custom elements

HTML IMPORTS TEMPLATING

SHADOW DOM CUSTOM ELEMENTS

Page 18: Designing With Web Components

CUSTOM ELEMENTS

@jasonadelia

Page 19: Designing With Web Components

@jasonadelia

//markup

<my-lucha></my-lucha>

Page 20: Designing With Web Components

@jasonadelia

//markup

<my-lucha></my-lucha>

//styles

my-lucha {

background: red;

}

Page 21: Designing With Web Components

@jasonadelia

//markup

<my-lucha></my-lucha>

//styles

my-lucha {

background: red;

transform: rotate(45deg);

}

Page 22: Designing With Web Components

@jasonadelia

//markup

<my-lucha></my-lucha>

<my-lucha></my-lucha>

<my-lucha></my-lucha>

<my-lucha></my-lucha>

<my-lucha></my-lucha>

<my-lucha></my-lucha>

<my-lucha></my-lucha>

Page 23: Designing With Web Components

//markup<my-lucha>

<h1>Ready For Business</h1>

</my-lucha>

@jasonadelia

Ready For Business

Page 24: Designing With Web Components

//markup<my-lucha say=“#WebComponentsFTW”>

<h1>Ready For Business</h1>

</my-lucha>

@jasonadelia

Ready For Business

#WebComponentsFTW

Page 25: Designing With Web Components

<!DOCTYPE html>

<html>

<head>

<style type="text/css">

html, body, #map-canvas { height: 100%; margin: 0; padding: 0; }

</style>

<script type="text/javascript"

src="https://maps.googleapis.com/maps/api/js?key=API_KEY">

</script>

<script type="text/javascript">

function initialize() {

var mapOptions = {

center: { lat: -34.397, lng: 150.644},

zoom: 8

};

var map = new google.maps.Map(document.getElementById('map-canvas'),

mapOptions);

}

google.maps.event.addDomListener(window, 'load', initialize);

</script>

</head>

<body>

<div id="map-canvas"></div>

</body>

</html>

<div id="map-canvas"></div>

<style type="text/css">

html, body, #map-canvas { height: 100%; margin: 0; padding: 0; }

</style>

<div id="map-canvas"></div>

<style type="text/css">

html, body, #map-canvas { height: 100%; margin: 0; padding: 0; }

</style>

<script type="text/javascript"

src="https://maps.googleapis.com/maps/api/js?key=API_KEY">

</script>

<div id="map-canvas"></div>

<style type="text/css">

html, body, #map-canvas { height: 100%; margin: 0; padding: 0; }

</style>

<script type="text/javascript"

src="https://maps.googleapis.com/maps/api/js?key=API_KEY">

</script>

<script type="text/javascript">

function initialize() {

var mapOptions = {

center: { lat: -34.397, lng: 150.644},

zoom: 8

};

var map = new google.maps.Map(document.getElementById('map-canvas'),

mapOptions);

}

google.maps.event.addDomListener(window, 'load', initialize);

</script>

<div id="map-canvas"></div>

@jasonadelia

Page 26: Designing With Web Components

<google-map></google-map>

Page 27: Designing With Web Components

<google-map lat=“40.756219” lng=“-73.986007”></google-map>

Page 28: Designing With Web Components

<google-map lat=“40.756219” lng=“-73.986007”

zoom=“19”></google-map>

Page 29: Designing With Web Components

LET US KNOW

webcomponents.org

polymer-project.org

x-tags.org

@jasonadelia

@NasdaqDesign

TRY IT YOURSELF