Upload
bueno-nepomuceno
View
185
Download
0
Embed Size (px)
Citation preview
Construindo Apps Web/Mobile com Polymer e Web Components - JSday 2016 -
Construindo Apps Web/Mobile com Polymer e Web Components - JSday Campina Grande 2016 -
<paper-tabs>
<paper-tab>KNOWLEDGE</paper-tab>
<paper-tab>HISTORY</paper-tab>
<paper-tab>FOOD</paper-tab>
</paper-tabs>
Menos código. Menos confusão.Web Components
<paper-tabs selected=“1”>
<paper-tab>Tab 1</paper-tab>
<paper-tab>Tab 2</paper-tab>
<paper-tab>Tab 3</paper-tab>
</paper-tabs>
declarativo, legível
HTML significativo
padrão de extensibilidade → reutilizável
Elementos cutomizadosDefinindo um novo HTML
<template>
<div class=“comment”>
<img src=“image.png”>
</div>
<script>...</script>
</template>
use DOM para produzir DOM
conteúdo é inerte até clonado/usado
HTML Templatesnativos do lado cliente
analisado, não renderizado
Elementos customizados (Custom Elements)Criação de novos elementos HTML e extensão de existentes
Templates (Moldes)Templatização nativa no browser
Shadow DOMCSS dentro de escopo!!! + DOM encapsulado
Importação de HTML (HTML Imports)Carrega definição de elementos customizados e recursos
<link rel=“import”
href=“paper-toolbar.html”>
<paper-toolbar>Container básico para controles como abas ou botões
MY APP
<paper-toolbar>
<span>MY APP</span>
</paper-toolbar>
<link rel=“import”
href=“paper-toolbar.html”>
<paper-toolbar>MY APP Container básico para controles
como abas ou botões
<paper-toolbar>
<paper-icon-button icon=“menu”>
</paper-icon-button>
<span>MY APP</span>
</paper-toolbar>
<link rel=“import”
href=“paper-toolbar.html”>
<paper-toolbar>MY APP Container básico para controles
como abas ou botões
Container simples com cabeçalho e seção de conteúdo
<paper-header-panel> MY APP
<paper-header-panel flex>
<paper-toolbar>
<paper-icon-button icon=“menu">
</paper-icon-button>
<div>MY APP</div>
</paper-toolbar>
<div class=“content”>…</div>
</paper-header-panel>
<paper-header-panel> MY APP
<paper-header-panel flex>
<paper-toolbar>
<paper-icon-button icon=“menu">
</paper-icon-button>
<div>MY APP</div>
</paper-toolbar>
<div class=“content”>…</div>
</paper-header-panel>
Container simples com cabeçalho e seção de conteúdo
<paper-header-panel> MY APP
<paper-header-panel flex>
<paper-toolbar>
<paper-icon-button icon=“menu">
</paper-icon-button>
<div>MY APP</div>
</paper-toolbar>
<div class=“content”>…</div>
</paper-header-panel>
Container simples com cabeçalho e seção de conteúdo
<paper-header-panel>
<paper-header-panel flex>
<paper-toolbar>
<paper-icon-button icon=“menu">
</paper-icon-button>
<div>MY APP</div>
</paper-toolbar>
<div class=“content”>…</div>
</paper-header-panel>
MY APP
Container simples com cabeçalho e seção de conteúdo
<paper-header-panel mode=“scroll" flex>
<paper-toolbar>
<paper-icon-button icon=“menu">
</paper-icon-button>
<div>MY APP</div>
</paper-toolbar>
<div class=“content”>…</div>
</paper-header-panel>
<paper-header-panel>
Toolbar com rolagem na página
Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo
<paper-drawer-panel>
<paper-drawer-panel>
<div drawer> Drawer panel... </div>
<div main> Main panel... </div>
</paper-drawer-panel>
<paper-drawer-panel>
<div drawer> Drawer panel... </div>
<div main> Main panel... </div>
</paper-drawer-panel>
<paper-drawer-panel>Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo
<paper-drawer-panel>
<div drawer> Drawer panel... </div>
<div main> Main panel... </div>
</paper-drawer-panel>
<paper-drawer-panel>Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo
<paper-input floatinglabel
label="Type only numbers... (floating)"
allowed-pattern="^[0-9]*$"
error-message="Input is not a number!">
</paper-input>
<div class=“card”>
<img src=“science.svg”>
<paper-ripple></paper-ripple>
</div>
Efeito de cor reativo que indica toque ou ação de mouse
<paper-ripple>
<paper-material elevation=“5” animated>
<div class=“card”>...</div>
</paper-material>
Sombra dinâmica para efeito de profundidade e relacionamentos espaciais
<paper-material>
<paper-slider min=“0” max=“100”>
</paper-slider>
permite estilizar nós internos do shadow dom de um elemento
<style is=”custom-style”></style>
<paper-slider min=“0” max=“100”>
</paper-slider>
<style is=”custom-style”></style>
<style is=“custom-style”>
--paper-slider-pin-color: #f4b400;
</style>
permite estilizar nós internos do shadow dom de um elemento
html /deep/ paper-ripple {
background-color: #E91E63;
}
permite estilizar todos os comportamentos
/deep/