modular css - projetando css para aplicativos

93

Upload: bernard-de-luna

Post on 14-Jan-2015

6.334 views

Category:

Technology


2 download

DESCRIPTION

Palestra sobre Modular CSS apresentada na QConSP 2012

TRANSCRIPT

Page 1: Modular CSS - Projetando CSS para aplicativos
Page 2: Modular CSS - Projetando CSS para aplicativos

Por que?

Page 3: Modular CSS - Projetando CSS para aplicativos

•Padronizados• Integrados•Estilos diferentes

Page 4: Modular CSS - Projetando CSS para aplicativos
Page 5: Modular CSS - Projetando CSS para aplicativos

•Foco no visual•Produção linear

•Refação

Realidade

Page 6: Modular CSS - Projetando CSS para aplicativos

De quem é a culpa?Mas de quem é a culpa?

Page 7: Modular CSS - Projetando CSS para aplicativos
Page 8: Modular CSS - Projetando CSS para aplicativos

Site ≠ APP

Page 9: Modular CSS - Projetando CSS para aplicativos

Site - Foco em

•Estilo•Diagramação•Primeiro impacto

Page 10: Modular CSS - Projetando CSS para aplicativos

APP - Foco em

•Estilo•Funcionalidades•Condução

Page 11: Modular CSS - Projetando CSS para aplicativos

GRID 960LESS Framework

FoundationGolden Grid

SemanticSkeleton

Etc.

Page 12: Modular CSS - Projetando CSS para aplicativos

Nããããããããããããããããããããã

Page 13: Modular CSS - Projetando CSS para aplicativos

ããããããããããããããããããããããããããããããããã

Page 14: Modular CSS - Projetando CSS para aplicativos

ão.

Page 15: Modular CSS - Projetando CSS para aplicativos

Sei que agora muitos de vocês estão me odiando…

#mimimimi

Page 16: Modular CSS - Projetando CSS para aplicativos

Diagramação do site engessa o código

Page 17: Modular CSS - Projetando CSS para aplicativos

Vamos voltar um pouquinho no tempo

Page 18: Modular CSS - Projetando CSS para aplicativos

HTML = conteúdo

CSS = estilo

Page 19: Modular CSS - Projetando CSS para aplicativos

Por que então vamos mudar isso?

Page 20: Modular CSS - Projetando CSS para aplicativos

O que não queremos ver

<div class=” "> ...</div>

grid_2 omega

Page 21: Modular CSS - Projetando CSS para aplicativos

Contras

• .Grid-4-12 = .texto-azul•Manutenções dolorosas•Orienta o Design e não o contrário

Page 22: Modular CSS - Projetando CSS para aplicativos

Ah! Mas e o Semantic.gs?

Page 23: Modular CSS - Projetando CSS para aplicativos

Ah! Mas e os novos Mixins para

Blueprint e Sass?

Page 24: Modular CSS - Projetando CSS para aplicativos

Contras

• .Grid-4-12 = .texto-azul•Manutenções dolorosas•Orienta o Design e não o contrário

•Dependência?

Page 25: Modular CSS - Projetando CSS para aplicativos

Framework agiliza a codificação

Page 26: Modular CSS - Projetando CSS para aplicativos

Usar slicer também

Page 27: Modular CSS - Projetando CSS para aplicativos

Recomendo GRIDs e Frameworks

para prototipagem

Page 28: Modular CSS - Projetando CSS para aplicativos

Crie seu próprio Framework

Page 29: Modular CSS - Projetando CSS para aplicativos

Eles criaram:YUI, Twitter Bootstrap, Abril Bootstrap, Peixe

Urbano Bootstrap

Page 30: Modular CSS - Projetando CSS para aplicativos

O Negócio deles não é igual ao seu

Page 31: Modular CSS - Projetando CSS para aplicativos

Pensando no seu projeto

Page 32: Modular CSS - Projetando CSS para aplicativos

Evite utilizar herança

Page 33: Modular CSS - Projetando CSS para aplicativos

.widget h2 {}

.widget-tt {}

Page 34: Modular CSS - Projetando CSS para aplicativos

.nav a {}

.nav-link {}

Page 35: Modular CSS - Projetando CSS para aplicativos

Evite utilizar IDs para estilização

Page 36: Modular CSS - Projetando CSS para aplicativos

#submit {}

.botao {}

Page 37: Modular CSS - Projetando CSS para aplicativos

<form role="search" method="get" id="searchform" action=“">

<div>

<label class="screen-reader-text" for="s">Search for:</label>

<input type="text" value="" name="s" id="s" />

<input type="submit" id="searchsubmit" value="Search” />

</div>

</form>

Page 38: Modular CSS - Projetando CSS para aplicativos

Foque na função e não no estilo

Nem no conteúdo

Page 39: Modular CSS - Projetando CSS para aplicativos
Page 40: Modular CSS - Projetando CSS para aplicativos

.bloco-claro {}

.ultimos-pedidos {}

.box {}

Page 41: Modular CSS - Projetando CSS para aplicativos

Pense em reutilização

Page 42: Modular CSS - Projetando CSS para aplicativos

Dicas para reutilização

•Classes globais•Testar em outro local•Testar variações•Documentação

Page 43: Modular CSS - Projetando CSS para aplicativos

A inteligência do seu código

Page 44: Modular CSS - Projetando CSS para aplicativos
Page 45: Modular CSS - Projetando CSS para aplicativos

Class=“b”

Class=“b b-pri”

Class=“b b-small”

Class=“b b-small b-pri”

Page 46: Modular CSS - Projetando CSS para aplicativos

Tooltip

<div class="tooltip”> <hgroup class="tooltip-h"> <h2 class="tooltip-tt">Reason:</h2> </hgroup> <section class="tooltip-body”></section></div>

Page 47: Modular CSS - Projetando CSS para aplicativos

Wizard

<ul class="steps">

<li class="checked"><span>1</span> About your campaign</li>

<li class="active"><span>2</span> Segmentation</li>

<li><span>3</span> Set your budget</li>

<li><span>4</span> Add your creatives</li>

</ul>

Page 48: Modular CSS - Projetando CSS para aplicativos

Standards (padrões)

•Títulos e textos•Navegações•Tabs (abas)•Objetos de formulário

Page 49: Modular CSS - Projetando CSS para aplicativos

Estudo de caso

Page 50: Modular CSS - Projetando CSS para aplicativos

Cenário - Petrobras

• 12 projetos simultâneos•Mais de 40 programadores•Equipe com 5 designers/

front-end

Page 51: Modular CSS - Projetando CSS para aplicativos

Motivadores

• 50% formulário, 50% tabela• Nenhum padrão de código ou

classes• Nenhuma reutilização• Sem acesso ao Visual Studio

Page 52: Modular CSS - Projetando CSS para aplicativos

Objetivos

• Fácil diagramação• Fácil customização por projeto• Responsive ou fluido• Boa documentação

Page 53: Modular CSS - Projetando CSS para aplicativos

Framework de Formulário

Page 54: Modular CSS - Projetando CSS para aplicativos
Page 55: Modular CSS - Projetando CSS para aplicativos
Page 56: Modular CSS - Projetando CSS para aplicativos
Page 57: Modular CSS - Projetando CSS para aplicativos
Page 58: Modular CSS - Projetando CSS para aplicativos
Page 59: Modular CSS - Projetando CSS para aplicativos

30kdownloads

Page 60: Modular CSS - Projetando CSS para aplicativos
Page 61: Modular CSS - Projetando CSS para aplicativos

DRY CSSDon’t Repeat Your CSS

Page 62: Modular CSS - Projetando CSS para aplicativos

DRY CSS

• Modularizado• Facilmente integrado• Vinculado ao estilo• Vinculado ao ID• Lowercase e Uppercase

Page 63: Modular CSS - Projetando CSS para aplicativos

OOCSSObject oriented cascading style sheet

Page 64: Modular CSS - Projetando CSS para aplicativos
Page 65: Modular CSS - Projetando CSS para aplicativos

Objected Oriented CSS

• Separação da estrutura e do estilo• Criação de elementos globais• É um processo tácito• Existe um framework com o

mesmo nome

Page 66: Modular CSS - Projetando CSS para aplicativos

SMACSSScalable and Modular Architecture for CSS

Page 67: Modular CSS - Projetando CSS para aplicativos
Page 68: Modular CSS - Projetando CSS para aplicativos

SMACSS

• Categorização do CSS em: base, layout, modules, states e theme• Módulos independentes• Muito engessado• Não está aberto

Page 69: Modular CSS - Projetando CSS para aplicativos

BEMBlock Element Modifier

Page 70: Modular CSS - Projetando CSS para aplicativos

BEM

• Módulos independentes• Muito complexo• Nomeclatura engessada e falha

(menu__item_state_current)

Page 71: Modular CSS - Projetando CSS para aplicativos
Page 72: Modular CSS - Projetando CSS para aplicativos

LESS / SASS

Page 73: Modular CSS - Projetando CSS para aplicativos
Page 74: Modular CSS - Projetando CSS para aplicativos

Aplicações1. @color, @lnk-color, @active-color, @em-

color, @hover-bg, @active-bg,…2. @spacing, @spacing-02, @spacing-h,

@spacing-v, .sep, .box-sizing, .clear,…3. .corner(@radius:

4px), .transition(@transition-type: all), .sprite(@sprite-h, @sprite-v),…

Page 75: Modular CSS - Projetando CSS para aplicativos

Jeremy Clarke

LESS e SASS criam fantásticos DRY-CSS

1. Foge dos padrões2. Dependencia de uma biblioteca externa3. Não é CSS

Page 76: Modular CSS - Projetando CSS para aplicativos

Reutilização sempre

Page 77: Modular CSS - Projetando CSS para aplicativos

Então…

Page 78: Modular CSS - Projetando CSS para aplicativos

1Crie um arquivo externo

Page 79: Modular CSS - Projetando CSS para aplicativos

Standards

• Sempre atualizado• Se um objeto for utilizado em mais

de 2 lugares, transforme-o em um padrão• Sempre dê um 360 nos padrões

Page 80: Modular CSS - Projetando CSS para aplicativos

2Uma boa nomeclatura vale ouro

Page 81: Modular CSS - Projetando CSS para aplicativos

Harry Roberts

Quebrar em mini classes como se tivesse pedindo um sanduiche no Subway

#sanduiche

.pao.alface.queijo.tomate.maionese.

Não gosta de tomate, é só remover

Page 82: Modular CSS - Projetando CSS para aplicativos

3Envolva sua equipe no processo de padronização

Page 83: Modular CSS - Projetando CSS para aplicativos

4Não deixe de inventar coisas

Page 84: Modular CSS - Projetando CSS para aplicativos

http://mzl.la/M0cLQC

Page 85: Modular CSS - Projetando CSS para aplicativos

5Prototipe

Page 86: Modular CSS - Projetando CSS para aplicativos
Page 87: Modular CSS - Projetando CSS para aplicativos
Page 88: Modular CSS - Projetando CSS para aplicativos
Page 89: Modular CSS - Projetando CSS para aplicativos
Page 90: Modular CSS - Projetando CSS para aplicativos
Page 91: Modular CSS - Projetando CSS para aplicativos
Page 92: Modular CSS - Projetando CSS para aplicativos
Page 93: Modular CSS - Projetando CSS para aplicativos

Agora é com vocês! Obrigado! @bernarddeluna