Slide 1

Slide 1 text

close to the edge

Slide 2

Slide 2 text

jean carlo emer @jcemer artesão da internet codeminer42

Slide 3

Slide 3 text

ferramentas metodologias técnicas ∞

Slide 4

Slide 4 text

atenção bastante conteúdo e todo ele recheado com minha opinião =)

Slide 5

Slide 5 text

templates

Slide 6

Slide 6 text

HTML5 Boilerplate HTML5 Reset Sophisto Boilerplate

Slide 7

Slide 7 text

html5 boilerplate html com scripts no rodapé favicon e apple icons

Slide 8

Slide 8 text

html5 boilerplate define viewport com largura igual a device-width

Slide 9

Slide 9 text

html5 boilerplate viewport para site não responsivo

Slide 10

Slide 10 text

html5 boilerplate inclui Modernizr com todas as detecções ou o Modernizr customizado incluíndo html5shiv

Slide 11

Slide 11 text

página de erro 404 utf-8 para css e js entrega de arquivos compactados http://gzipwtf.com define expiração dos arquivos html5 boilerplate ~ apache

Slide 12

Slide 12 text

X reset normalize

Slide 13

Slide 13 text

/** * Eric Meyer's Reset CSS v2.0 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; reset remove toda a aparência elementos de título, parágrafo e lista tornam-se iguais

Slide 14

Slide 14 text

/*! normalize.css v2.1.2 | MIT License | git.io /** * Correct `block` display not defined in IE 8/ */ article, aside, details, figcaption, figure, fo header, hgroup, main, nav, section, summary { display: block; } /** * Correct `inline-block` display not defined i */ audio, canvas, video { display: inline-block; } /** * Prevent modern browsers from displaying `aud * Remove excess height in iOS 5 devices. */ audio:not([controls]) { display: none; height: 0; } /** * Address styling not present in IE 8/9. */ normalize preserva a aparência padrão ao invés de removê-la corrige alguns bugs comuns

Slide 15

Slide 15 text

frameworks

Slide 16

Slide 16 text

Foundation Twitter Bootstrap Gumby 2 960 Grid System Skeleton Pure Bourbon Neat

Slide 17

Slide 17 text

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; font-size: 14px; direction: ltr; } foundation 3.0 é só aparecer uma div ou td que toda a herança do tamanho da fonte é perdida

Slide 18

Slide 18 text

Este é um exemplo bem interessante daquilo que não devemos fazer.

Isto é consenso?

Slide 19

Slide 19 text

css to the heaven tags e classes devem se referir ao seu conteúdo e não a sua aparência seletores devem ser o mais globais possíveis ou função caso esteja projetando componentes

Slide 20

Slide 20 text

Este é um exemplo bem interessante daquilo que não devemos fazer.

Isto é consenso?

Slide 21

Slide 21 text

Ótimo, muito bom!
E o quanto isto é diferente
daquilo?
twitter bootstrap 2.3

Slide 22

Slide 22 text

css on steroids

Slide 23

Slide 23 text

Pré-processadores Otimizadores de CSS

Slide 24

Slide 24 text

pré-processadores linguagem para adicionar açucar sintáticos não nativos ao css retorna algo que os browsers possam entender nova camada que precisa ser trans- compilada para css

Slide 25

Slide 25 text

pré-processadores // Variables $site-width: 960px; $color-primary: red; $color-secondary: #EEE; // Code body { background: lighten($color-secondary, 10); max-width: $site-width; margin: 0 auto; } // Mixins @mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; } .box { @include border-radius(5px); p { margin-bottom: 1em; } a { font-weight: bold; &:hover { background: $color-secondary; } } }

Slide 26

Slide 26 text

pré-processadores // Code body { background: lighten($color-secondary, 10); max-width: $site-width; margin: 0 auto; } .box { @include border-radius(5px); p { margin-bottom: 1em; } a { font-weight: bold; &:hover { background: $color-secondary; } } } // CSS Code body { background: white; max-width: 960px; margin: 0 auto; } .box { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .box p { margin-bottom: 1em; } .box a { font-weight: bold; } .box a:hover { background: #eeeeee; }

Slide 27

Slide 27 text

@base: #f938ab; .box-shadow(@style, @c) when (iscolor(@c)) { box-shadow: @style @c; -webkit-box-shadow: @style @c; -moz-box-shadow: @style @c; } .box-shadow(@style, @alpha: 50%) when (isnumbe .box-shadow(@style, rgba(0, 0, 0, @alpha)); } .box { color: saturate(@base, 5%); border-color: lighten(@base, 30%); div { .box-shadow(0 0 5px, 30%) } } @the-border: 1px; @base-color: #111; @red: #842210; #header { color: (@base-color * 3); border-left: @the-border; border-right: (@the-border * 2); } #footer { color: (@base-color + #003300); border-color: desaturate(@red, 10%); } less padrão do Twitter Bootstrap repetições bastante estranhas e engessadas

Slide 28

Slide 28 text

border-radius() -webkit-border-radius: arguments -moz-border-radius: arguments border-radius: arguments body font: 12px Helvetica, Arial, sans-serif background: linear-gradient(top, white, blac a.button border-radius: 5px @keyframes foo { from { color: black } to { color: white } } button { color: rgba(red, .5) border-radius: bottom 10px; } .nav { fixed: bottom 10px right 5px; } stylus mixins transparentes mixins e componentes com Nib muita liberdade causa confusão projeto parece abandonado

Slide 29

Slide 29 text

styl Work-in-progress CSS preprocessor. Spiritual successor of Stylus. Built on top of Rework.

Slide 30

Slide 30 text

$blue: #3bbfce $margin: 16px .content-navigation border-color: $blue color: darken($blue, 9%) .border padding: $margin / 2 margin: $margin / 2 border-color: $blue @mixin table-base th text-align: center font-weight: bold td, th padding: 2px @mixin left($dist) float: left margin-left: $dist #data @include left(10px) @include table-base sass projeto maduro bibliotecas poderosas como Compass e Bourbon duas sintaxes que não podem se misturar

Slide 31

Slide 31 text

organizando... @import "nib" @import "variables" @import "mixins" // Core @import "core/normalize" @import "core/typography" @import "core/structure" // Shared @import "shared/header" @import "shared/board" @import "shared/toolbar" @import "shared/footer" // Content @import "component/carousel" @import "component/grade" @import "component/map"

Slide 32

Slide 32 text

atenção não reescreva a árvore de elementos do html no css

Slide 33

Slide 33 text

html { body { background: black; section { padding: 20px; p { margin-bottom: 10px; a { color: blue; &:hover { text-decoration: none; } } } } } } http://josh.github.io/css-explain html body section p a:hover

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

grid semântico

Bourbon Neat

Neat é um framework de grid semântico.

Sass e Bourbon são seus requisitos.

.tool { @include outer-container; } .tool-title { @include span-columns(3); } .tool-content { @include span-columns(9); } Exemplo usando o framework Bourbon Neat

Slide 36

Slide 36 text

.header { @include outer-container; } .brand { @include span-columns(3); } .menu { @include span-columns(9); } grid semântico .brand { display: block; float: left; margin-right: 2.35765%; width: 23.23176%; } .brand:last-child { margin-right: 0; } .tool-title { display: block; float: left; margin-right: 2.35765%; width: 23.23176%; } .tool-title:last-child { margin-right: 0; } .tool { @include outer-container; } .tool-title { @include span-columns(3); } .tool-content { @include span-columns(9); }

Slide 37

Slide 37 text

ops?! agora temos muitas propriedades de css repetidas

Slide 38

Slide 38 text

csso body { padding: 0; color: red; } .element { color: blue; color: red; } .element { padding: 0; } input { border: none; } button { border: none; } .container, .container { color: red; } body,.element{padding:0;color:red} input,button{border:none}.container{ color:red} http://bem.info/tools/csso

Slide 39

Slide 39 text

csso body { padding: 0; color: red; } .element { color: blue; color: red; } .element { padding: 0; } input { border: none; } button { border: none; } .container, .container { color: red; } body, .element { padding:0; color:red } input, button { border:none } .container { color:red } http://bem.info/tools/csso

Slide 40

Slide 40 text

npm install csso -g csso test.css csso Flour já possui suporte Grunt através de https://github.com/t32k/grunt-csso

Slide 41

Slide 41 text

considerações

Slide 42

Slide 42 text

frameworks use apenas os mixins e funções para pré-processadores de css aproveite a vontade código javascript não atrelado a classes

[...]

[...]
// Mixins em LESS do Twitter Bootstrap .tool { .makeRow(); } .tool-title { .makeColumn(3); } .tool-content { .makeColumn(9); }

Slide 43

Slide 43 text

frameworks de grids Gumby 2, isto é dar suporte? Agora sim! Valeu, Bourbon Neat para layouts usando porcentagens, tenho real suporte a nested grids?

Slide 44

Slide 44 text

css on steroids deixe de bobagem e turbine seu workflow prefira o pré-processador que sua equipe se sente mais a vontade não custa nada ativar o csso, mas teste bem antes de aplicar em projetos em andamento

Slide 45

Slide 45 text

mobile first layout mobile é mais simples no fim, códigos particulares de maiores resoluções contidos em media queries específicas isto não significa necessariamente fazer a versão mobile antes

Slide 46

Slide 46 text

tabelas responsivas display: none; display: table-cell; display: block; .schedule-slot:before { content: attr(data-grade); display: block; }

Slide 47

Slide 47 text

além do penhasco

Slide 48

Slide 48 text

cuidado vamos falar do universo dos sonhos daqui para frente =P

Slide 49

Slide 49 text

não mais ies brincadeira, salve a diversidade! a internet é de todos ie9+

Slide 50

Slide 50 text

a buzzword da vez no universo front-end é modularizar media queries são globais, com base na viewport media queries?!

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

http://ianstormtaylor.com/media-queries-are-a-hack

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

Meu produto módulos

Slide 55

Slide 55 text

Meu produto layout responsivo

Slide 56

Slide 56 text

Meu produto layout responsivo

Slide 57

Slide 57 text

Meu produto layout responsivo

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

make it so, internetz element level media queries imagens responsivas pra ontem! event emitter nativo no javascript vertical align sem frescura

Slide 60

Slide 60 text

you’re the operator with your pocket calculator obrigado! @jcemer vídeos: http://dakotalapse.com fonte dos títulos: Falta Alguma Coisa - AACD Unique Types