SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
CONSTRUINDO UM
FRAMEWORK CSS
DIEGO EIS
slideshare.net/diegoeis
bit.ly/locawebstyle
@diegoeis
@tableless
tableless.com.br
POR QUE USAR UM
FRAMEWORK?
PROTOTIPAÇÃO
A equipe pode simular o real para chegar a conclusões mais
precisas.
PRODUTIVIDADE
Menos tempo montando wireframes, menos tempo desenhando
um layout, menos tempo codificando.
MANUTENÇÃO FÁCIL
Facilita a manutenção diminuindo o tempo de retrabalho.
PADRÃO PRA TUDO
Padroniza layout.
Padroniza comportamento.
Padroniza elementos.
Padroniza estrutura.
Padroniza código.
CONTROLE
Um erro pode ser resolvido para todos os sistemas.
Uma atualização afeta todos os projetos.
POR QUE NÃO USAR UM
FRAMEWORK?
HTML ENGESSADO
O HTML tem que ser bem pensado no início.
LAYOUTS DIFERENTES
Fica muito difícil de manter se os layouts forem muito diferentes.
ATUALIZAÇÃO
FREQUENTE
E equipe precisa trabalhar no framework,
não nos projetos.
CURVA DE APRENDIZADO
Quando há alguém novo na equipe, a curva de aprendizado não
pode ser longa.
POR QUE EXISTEM
OUTROS NO MERCADO
Não reinvente a roda se você não tem um problema específico
para resolver.
PRINCÍPIOS PRÁTICOS
A estrutura de
arquivos inicial
stylesheetsjavascripts
assets
colors.css
print.css
etc...layout
reset.css
fonts.css
base.css
etc...base
grids.css
etc...
structure
buttons.css
collapse.css
sliders.css
header.css
etc...
modules
//
// Manifest
//
@import “config”
@import “structure/grid”
@import “base/functional-classes”
@import “base/reset”
@import “base/mixins”
@import “base/extends”
@import “base/base”
@import “base/fonts”
@import “base/icons”
@import “base/typography”
@import “modules/header”
@import “modules/footer”
@import “modules/sidebar”
@import “modules/collapse”
@import “modules/tabs”
@import “modules/buttons”
@import “layout/colors/colors”
MODULARIZE
COMPONENTES
Módulos são como legos: plugando diversas peças você forma
uma peça maior.
Módulo
Módulo
Módulo
CSS INCREMENTAL
Customize elementos aplicando multiplas classes.
Um botão pode ter vários tamanhos, cores ou posições.
.btn .btn
.btn-large
.btn
.btn-large
.btn-primary
.btn
.btn-large
.btn-primary
.ico-star
cuidado para não misturar informação com formatação.
EVITE TAGS EM SELETORES
Mantenha foco nas classes.
Um componente pode ser feito usando diferentes tags.
Isso pode ser um:
• link
• input button
• span
• etc...
.btn
MINIMIZE SELETORES
Quem escreve seletor comprido faz xixi na cama.
{
! margin-right: 0;
! padding-right: 0;
! box-shadow: none;
}
a#main_container.menu_style.menu_orientation_horizontal #site_menu .wrapper ul li:last-child
SEPARE O CONTEÚDO DO
CONTAINER
O estilo do conteúdo não pode ser dependente do seu container.
Para isso, trate o container como um módulo.
Um título legal
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Sed
mauris erat, egestas sit amet
vestibulum quis, pulvinar in sem. Sed
elit leo, tincidunt at tempus quis,
gravida sit amet arcu. Fusce suscipit
mattis odio, vel scelerisque libero.
Donec et ligula eget augue porta
blandit sit amet vel dui.
um botão
Um título legal
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Sed
mauris erat, egestas sit amet
vestibulum quis, pulvinar in sem. Sed
elit leo, tincidunt at tempus quis,
gravida sit amet arcu. Fusce suscipit
mattis odio, vel scelerisque libero.
Donec et ligula eget augue porta
blandit sit amet vel dui.
um botão
.box-dark .box-uiui
SEPARE A ESTRUTURA
DO LAYOUT
Você pode ter a liberdade de estilizar a estrutura. O container
pode ser estruturado de várias formas, com diferentes layouts.
Um título legal
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit. Sed mauris
erat, egestas sit amet
vestibulum quis, pulvinar in
sem. Sed elit leo, tincidunt
at tempus quis, gravida sit
amet arcu.
um botão
.grid-4 .box-dark
Rosinha, chuchu!
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Sed mauris erat, egestas sit
amet vestibulum quis,
pulvinar in sem. Sed elit leo,
tincidunt at tempus quis,
gravida sit amet arcu. Sed
elit leo, tincidunt at tempus
quis, gravida sit amet arcu.
um botão
.grid-4 .box-uiui
Um título legal
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit. Sed mauris
erat, egestas sit amet
vestibulum quis, pulvinar in
sem. Sed elit leo, tincidunt
at tempus quis, gravida sit
amet arcu.
um botão
FONTS PARA ÍCONES
Com fonts você consegue aumentar o tamanho e consegue
mudar a cor.
[class*="ico-"]:before {
  display: inline-block;
  font-family: font-icon;
  speak: none;
}
.ico-keyboard:before {content: "22";}
.ico-split:before {content: "23";}
.ico-up-dir:before {content: "24";}
.ico-right-dir:before {content: "25";}
icomoon.io
fontello.com
MIXINS PARA CÓDIGOS
ESPECIAIS
Os mixins te ajudam na repetição e na inserção de código
especiais. Como fazer setas, código de clearfix e etc.
// ARROWS
// Cria setas.
// $arrow-color define a cor da seta. $arrow-size define o tamanho da seta.
@mixin arrow-structure
  content: ""
  display: inline-block
  width: 0
  height: 0
@mixin arrow-up($arrow-color, $arrow-size)
  @include arrow-structure
  border-left: $arrow-size solid transparent
  border-right: $arrow-size solid transparent
  border-bottom: $arrow-size solid $arrow-color
@mixin arrow-down($arrow-color, $arrow-size)
  @include arrow-structure
  border-left: $arrow-size solid transparent
  border-right: $arrow-size solid transparent
  border-top: $arrow-size solid $arrow-color
@mixin arrow-right($arrow-color, $arrow-size)
  @include arrow-structure
  border-top: $arrow-size solid transparent
  border-bottom: $arrow-size solid transparent
  border-left: $arrow-size solid $arrow-color
.title-dropdown
" font: .81em verdana
font-weight: bolder
" color: #2a2a2a
" &:after
" @include arrow-down(#000, 5px)
" " margin: 0 0 0 5px
VARIÁVEIS
As variáveis te ajudam a não perder o padrão durante o projeto.
// GRID
// Adequando a largura máxima para o GRID
// Todo o resto é controlado pelo Bootstrap
$small-screens: "only screen and (max-width: 980px)"
$medium-screens: "only screen and (min-width: 980px)"
$big-screens: "only screen and (min-width: 1200px)"
// Smartphones e telas pequenas
@media #{$small-screens}
" // Seu código aqui se houver
// Tablets e telas médias
@media #{$medium-screens}
" // Seu código aqui se houver
// Desktops
@media #{$big-screens}
" // Seu código aqui se houver
// Para mobile (mobile first)
.header
" border-bottom: 4px solid $gray1
" background-color: $gray2
// Desktops
@media #{$big-screens}
" .header
" " border-top: 4px solid #bbb
" " background-color: #FFF
" " margin-bottom: 10px
variáveis com cores
//
// Cor verde
//
$theme-color: ".color-green"
$color1: #8ecf00
$color2: #00a272
$color3: #519700
$color4: #f8fcf0
$color5: #163400
#{$theme-color}
" a
" " color: $color2
" .header
" " background-color: $color1
" " border-bottom-color: $color3
" " .menu
" " " a
" " " border-left-color: $color1
NÃO TRAVE AS
DIMENSÕES
O grid controla a largura. O conteúdo controla a altura. Não
trave essas dimensões a não ser que seja extremamente
necessário.
ALGUMAS
CONSIDERAÇÕES...
LEVE E RÁPIDO
Compilar e minificar seu CSS pode não ser o bastante. Não tente
abraçar todos os browsers. Gracefull Degradation e Progressive
Enhancement devem estar no seu sangue.
SIMPLES
Simples de aprender.
Simples de implementar em um projeto.
Simples de atualizar.
Simples de fazer manutenção.
MODULAR
Possibilidade de combinar componentes para criar elementos de
layout.
TENHA POUCAS
DEPENDÊNCIAS
Não saia colocando plugins e outras depêndencias a não ser que
sejam úteis para a maioria dos projetos que usarão o framework.
REGRA DA SIMILARIDADE
Se dois elementos são muito parecidos para estarem em uma
página, provavelmente eles são muito parecidos para serem
incluídos no framework.
Então, escolha um.
MANTENHA UMA
DOCUMENTAÇÃO
ATUALIZADA
A documentação não é importante apenas pra você, mas para
outras equipes como UX e Back-end. Se o framework for público,
outros devs usarão também.
USE PRÉ PROCESSADORES
COM CUIDADO
Pré processadores podem te ajudar em diversas tarefas, mas a
sopa de Mixins, Extends e variáveis pode te fazer perder o
controle.
RESUMINDO: TUDO SE
TRATA DE OOCSS
CSS Orientado a Objeto não é nada mais do que CSS escrito do
jeito certo.
ENTÃO, FECHOU!
A palestra vai ficar aqui:
slideshare.net/diegoeis
@diegoeis
@tableless
tableless.com.br
bit.ly/locawebstyle

Contenu connexe

Tendances

Tendances (20)

Guia do Front-end das Galáxias
Guia do Front-end das GaláxiasGuia do Front-end das Galáxias
Guia do Front-end das Galáxias
 
Os cuidados e os limites do Responsive Web Design
Os cuidados e os limites do Responsive Web DesignOs cuidados e os limites do Responsive Web Design
Os cuidados e os limites do Responsive Web Design
 
Estruturação Web
Estruturação WebEstruturação Web
Estruturação Web
 
Tudo o que você precisa saber sobre layouts para web
Tudo o que você precisa saber sobre layouts para webTudo o que você precisa saber sobre layouts para web
Tudo o que você precisa saber sobre layouts para web
 
Desenvolvendo com Bootstrap: um framework front-end que vale a pena!
Desenvolvendo com Bootstrap: um framework front-end que vale a pena!Desenvolvendo com Bootstrap: um framework front-end que vale a pena!
Desenvolvendo com Bootstrap: um framework front-end que vale a pena!
 
Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3Mini-Curso sobre Bootstrap 3
Mini-Curso sobre Bootstrap 3
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignIntrodução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
 
SASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endSASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-end
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material Design
 
Padrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designerPadrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designer
 
Bootstrap, desenvolvendo uma interface responsiva na prática!
Bootstrap, desenvolvendo uma interface responsiva na prática!Bootstrap, desenvolvendo uma interface responsiva na prática!
Bootstrap, desenvolvendo uma interface responsiva na prática!
 
Introdução ao Web Design: Aula 2 - IHC/UX Design
Introdução ao Web Design: Aula 2 - IHC/UX DesignIntrodução ao Web Design: Aula 2 - IHC/UX Design
Introdução ao Web Design: Aula 2 - IHC/UX Design
 
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015Design para WordPress-  Anyssa Ferreira - WordCamp BH 2015
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
 
Web Design Responsivo
Web Design ResponsivoWeb Design Responsivo
Web Design Responsivo
 
Aula 01- web designer
Aula 01- web designerAula 01- web designer
Aula 01- web designer
 
A utilização do Bootstrap Para a Otimização de Páginas
A utilização do Bootstrap Para a Otimização de PáginasA utilização do Bootstrap Para a Otimização de Páginas
A utilização do Bootstrap Para a Otimização de Páginas
 
CSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoCSS - Cansei de Ser Subestimado
CSS - Cansei de Ser Subestimado
 
Engenharia de front end de alta performance
Engenharia de front end de alta performanceEngenharia de front end de alta performance
Engenharia de front end de alta performance
 
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
 
Usando a programação web para mobile com Twitter Bootstrap
Usando a programação web para mobile com Twitter BootstrapUsando a programação web para mobile com Twitter Bootstrap
Usando a programação web para mobile com Twitter Bootstrap
 

Similaire à Construindo seu framework CSS

TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
Cezinha Anjos
 

Similaire à Construindo seu framework CSS (20)

Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3
 
Psd to html
Psd to htmlPsd to html
Psd to html
 
Oficina de Planejamento Corte: Seu layout virando código - 15 EDTED
Oficina de Planejamento Corte: Seu layout virando código  - 15 EDTEDOficina de Planejamento Corte: Seu layout virando código  - 15 EDTED
Oficina de Planejamento Corte: Seu layout virando código - 15 EDTED
 
CSS com classe
CSS com classeCSS com classe
CSS com classe
 
[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end
 
Webdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no WebdesignWebdesign - CSS na Prática no Webdesign
Webdesign - CSS na Prática no Webdesign
 
Quero ser um ninja em xHTML, HTML5 e CSS3
Quero ser um ninja em xHTML, HTML5 e CSS3Quero ser um ninja em xHTML, HTML5 e CSS3
Quero ser um ninja em xHTML, HTML5 e CSS3
 
Modular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativosModular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativos
 
Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
 
Um guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + LessUm guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + Less
 
CSS
CSSCSS
CSS
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-ender
 
Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
 
I love pixels
I love pixelsI love pixels
I love pixels
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Laboratório Web 2013-2014 - Etapas na Produção: Desenho e Composição
Laboratório Web 2013-2014 - Etapas na Produção: Desenho e ComposiçãoLaboratório Web 2013-2014 - Etapas na Produção: Desenho e Composição
Laboratório Web 2013-2014 - Etapas na Produção: Desenho e Composição
 
Tutorial codeigniter
Tutorial codeigniterTutorial codeigniter
Tutorial codeigniter
 
Responsive web design_CPRecife2 - Felipe de Albuquerque
Responsive web design_CPRecife2 -  Felipe de AlbuquerqueResponsive web design_CPRecife2 -  Felipe de Albuquerque
Responsive web design_CPRecife2 - Felipe de Albuquerque
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 

Plus de Diego Eis

Plus de Diego Eis (16)

Carreira de Product Manager em 18 minutos
Carreira de Product Manager em 18 minutosCarreira de Product Manager em 18 minutos
Carreira de Product Manager em 18 minutos
 
Service Dominant Logic - S-D Logic em Produtos Digitais
Service Dominant Logic - S-D Logic em Produtos DigitaisService Dominant Logic - S-D Logic em Produtos Digitais
Service Dominant Logic - S-D Logic em Produtos Digitais
 
Métricas para times Ágeis usando Estatística Básica
Métricas para times Ágeis usando Estatística BásicaMétricas para times Ágeis usando Estatística Básica
Métricas para times Ágeis usando Estatística Básica
 
Um pequeno estudo sobre a microsoft
Um pequeno estudo sobre a microsoftUm pequeno estudo sobre a microsoft
Um pequeno estudo sobre a microsoft
 
O básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked DataO básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked Data
 
UX, Front-end and Back-end: How front-end can help these guys?
UX, Front-end and Back-end: How front-end can help these guys?UX, Front-end and Back-end: How front-end can help these guys?
UX, Front-end and Back-end: How front-end can help these guys?
 
Flexbox and Grid Layout: How you will structure layouts tomorrow.
Flexbox and Grid Layout: How you will structure layouts tomorrow.Flexbox and Grid Layout: How you will structure layouts tomorrow.
Flexbox and Grid Layout: How you will structure layouts tomorrow.
 
CSS 4 - What's coming up
CSS 4 - What's coming upCSS 4 - What's coming up
CSS 4 - What's coming up
 
WAI-ARIA - Interações acessíveis na web
WAI-ARIA - Interações acessíveis na webWAI-ARIA - Interações acessíveis na web
WAI-ARIA - Interações acessíveis na web
 
A verdadeira semântica do HTML
A verdadeira semântica do HTMLA verdadeira semântica do HTML
A verdadeira semântica do HTML
 
HTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidadeHTML5 e CSS3 - A nova novidade
HTML5 e CSS3 - A nova novidade
 
Manual de Sobrevivência do Desenvolvedor Empreendedor
Manual de Sobrevivência do Desenvolvedor EmpreendedorManual de Sobrevivência do Desenvolvedor Empreendedor
Manual de Sobrevivência do Desenvolvedor Empreendedor
 
Acessibilidade para web
Acessibilidade para webAcessibilidade para web
Acessibilidade para web
 
CSS3 - Novo contexto
CSS3 - Novo contextoCSS3 - Novo contexto
CSS3 - Novo contexto
 
Padrões Web passado, presente, futuro
Padrões Web passado, presente, futuroPadrões Web passado, presente, futuro
Padrões Web passado, presente, futuro
 
Padrões Web - Um elogio ao ócio do desenvolvedor
Padrões Web - Um elogio ao ócio do desenvolvedorPadrões Web - Um elogio ao ócio do desenvolvedor
Padrões Web - Um elogio ao ócio do desenvolvedor
 

Dernier

Dernier (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Construindo seu framework CSS