Designing With Web Components

  • View
    226

  • Download
    1

  • Category

    Design

Preview:

Citation preview

WEB COMPONENTS

DESIGNING WITH

@jasonadelia

NASDAQ DESIGN

@jasonadelia

CONSISTENCY REUSABILITY MAINTENANCE

CONSISTENCY

@jasonadelia

widget

widget

widget

CONSISTENCY

@jasonadelia

widget

widget

widget

CONSISTENCY

@jasonadelia

widget

widget

widget

• style guides

• shared codebases

• homebrew bootstrap

REUSABILITY

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

REUSABILITY

@jasonadelia

page

<widget/>

page page

page

REUSABILITY

@jasonadelia

page

<widget/>

page page

page

• atomic design

• knockout

• oocss

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page page

<widget/> <widget/>

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page page

<widget/> <widget/>

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

MAINTENANCE

@jasonadelia

page

<widget/>

page

<widget/>

page

<widget/>

page

<widget/>

MAINTENANCE

@jasonadelia

page page

page page

<widget/>

MAINTENANCE

@jasonadelia

• requirejs

page page

page page

<widget/>

WEB COMPONENTS

@jasonadelia

Web Components?

• html imports

• Templating

• shadow dom

• custom elements

HTML IMPORTS TEMPLATING

SHADOW DOM CUSTOM ELEMENTS

CUSTOM ELEMENTS

@jasonadelia

@jasonadelia

//markup

<my-lucha></my-lucha>

@jasonadelia

//markup

<my-lucha></my-lucha>

//styles

my-lucha {

background: red;

}

@jasonadelia

//markup

<my-lucha></my-lucha>

//styles

my-lucha {

background: red;

transform: rotate(45deg);

}

@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>

//markup<my-lucha>

<h1>Ready For Business</h1>

</my-lucha>

@jasonadelia

Ready For Business

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

<h1>Ready For Business</h1>

</my-lucha>

@jasonadelia

Ready For Business

#WebComponentsFTW

<!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

<google-map></google-map>

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

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

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

LET US KNOW

webcomponents.org

polymer-project.org

x-tags.org

@jasonadelia

@NasdaqDesign

TRY IT YOURSELF

Recommended