SlideShare uma empresa Scribd logo
CONSTRUINDO UM
FRAMEWORK CSS
DIEGO EIS
slideshare.net/diegoeis
bit.ly/locawebstyle
@diegoeis
@tableless
tableless.com.br
Construindo seu framework CSS
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.
Construindo seu framework CSS
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
Construindo seu framework CSS
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

Mais conteúdo relacionado

PDF
Como criar seu próprio Framework
Hiarison Gigante
 
PDF
Construindo um framework CSS
Diego Eis
 
PDF
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
Diego Eis
 
PDF
Primeiros passos para estruturar uma equipe front-end
Diego Eis
 
PDF
O que você precisa saber para se tornar um dev front-end
Diego Eis
 
PDF
Estrutura de um Front-End eficiente (para iniciantes)
Sérgio Vilar
 
PDF
O Papel do desenvolvedor Front End
Rael Max
 
PDF
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
RC Comunicação
 
Como criar seu próprio Framework
Hiarison Gigante
 
Construindo um framework CSS
Diego Eis
 
DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
Diego Eis
 
Primeiros passos para estruturar uma equipe front-end
Diego Eis
 
O que você precisa saber para se tornar um dev front-end
Diego Eis
 
Estrutura de um Front-End eficiente (para iniciantes)
Sérgio Vilar
 
O Papel do desenvolvedor Front End
Rael Max
 
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
RC Comunicação
 

Mais procurados (20)

PDF
Guia do Front-end das Galáxias
Davidson Fellipe
 
PDF
Os cuidados e os limites do Responsive Web Design
Diego Eis
 
PPT
Estruturação Web
Fabiano Pereira
 
PDF
Tudo o que você precisa saber sobre layouts para web
Ítalo Waxman
 
PPT
Desenvolvendo com Bootstrap: um framework front-end que vale a pena!
Thiago Nascimento Oliveira
 
PPTX
Mini-Curso sobre Bootstrap 3
Diego Doná
 
PDF
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Gustavo Zimmermann
 
PPT
SASS + COMPASS - Alta Produtividade no Front-end
Anderson Aguiar
 
PDF
Criação Web com Bootstrap e Material Design
Daniel Brandão
 
PDF
Padrões Web e algumas vantagens para o designer
Diego Eis
 
PPTX
Bootstrap, desenvolvendo uma interface responsiva na prática!
Cristofer Sousa
 
PDF
Introdução ao Web Design: Aula 2 - IHC/UX Design
Gustavo Zimmermann
 
PDF
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Anyssa Ferreira
 
PDF
Web Design Responsivo
Rodrigo Simoni
 
PPTX
Aula 01- web designer
Roney Sousa
 
PPTX
A utilização do Bootstrap Para a Otimização de Páginas
Ramon Sousa
 
PDF
CSS - Cansei de Ser Subestimado
Anyssa Ferreira
 
PDF
Engenharia de front end de alta performance
Anderson Solano
 
PPTX
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Cristofer Sousa
 
PPTX
Usando a programação web para mobile com Twitter Bootstrap
Flavio Souza
 
Guia do Front-end das Galáxias
Davidson Fellipe
 
Os cuidados e os limites do Responsive Web Design
Diego Eis
 
Estruturação Web
Fabiano Pereira
 
Tudo o que você precisa saber sobre layouts para web
Ítalo Waxman
 
Desenvolvendo com Bootstrap: um framework front-end que vale a pena!
Thiago Nascimento Oliveira
 
Mini-Curso sobre Bootstrap 3
Diego Doná
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Gustavo Zimmermann
 
SASS + COMPASS - Alta Produtividade no Front-end
Anderson Aguiar
 
Criação Web com Bootstrap e Material Design
Daniel Brandão
 
Padrões Web e algumas vantagens para o designer
Diego Eis
 
Bootstrap, desenvolvendo uma interface responsiva na prática!
Cristofer Sousa
 
Introdução ao Web Design: Aula 2 - IHC/UX Design
Gustavo Zimmermann
 
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015
Anyssa Ferreira
 
Web Design Responsivo
Rodrigo Simoni
 
Aula 01- web designer
Roney Sousa
 
A utilização do Bootstrap Para a Otimização de Páginas
Ramon Sousa
 
CSS - Cansei de Ser Subestimado
Anyssa Ferreira
 
Engenharia de front end de alta performance
Anderson Solano
 
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Cristofer Sousa
 
Usando a programação web para mobile com Twitter Bootstrap
Flavio Souza
 
Anúncio

Semelhante a Construindo seu framework CSS (20)

PPTX
Web design responsivo e adaptativo - HTML5/CSS3
Heraldo Gonçalves Lima Junior
 
PDF
Psd to html
Abel Ribeiro
 
KEY
Oficina de Planejamento Corte: Seu layout virando código - 15 EDTED
Bunee.io - Hiring with Intelligence
 
PDF
CSS com classe
Saulo Pratti
 
PPT
[INFNET] Criando layouts em PSD pensando no front-end e back-end
@cristianoweb
 
PPT
Webdesign - CSS na Prática no Webdesign
Renato Melo
 
PDF
Quero ser um ninja em xHTML, HTML5 e CSS3
Bunee.io - Hiring with Intelligence
 
PDF
Modular CSS - Projetando CSS para aplicativos
Bunee.io - Hiring with Intelligence
 
PDF
Mini curso html5 slides
Carlos Rodrigo de Araujo
 
PPTX
Um guia bem básico de Bootstrap + Less
Bruno Said
 
PDF
don't repeat yourself front-ender
tdc-globalcode
 
PDF
Diazo para todos
Simples Consultoria
 
PDF
I love pixels
Ítalo Waxman
 
PDF
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
iMasters
 
PDF
Laboratório Web 2013-2014 - Etapas na Produção: Desenho e Composição
Ricardo Pereira Rodrigues
 
PDF
Apresentação do PowerPoint432553255463.pdf
henriquefgcgamer
 
PDF
20241101-Webdesign-Frontend-e-Backend-Slide de aula
fernandopetry5
 
PDF
Tutorial codeigniter
Harry Möbbs Júnior
 
PPT
Responsive web design_CPRecife2 - Felipe de Albuquerque
Felipe de Albuquerque
 
Web design responsivo e adaptativo - HTML5/CSS3
Heraldo Gonçalves Lima Junior
 
Psd to html
Abel Ribeiro
 
Oficina de Planejamento Corte: Seu layout virando código - 15 EDTED
Bunee.io - Hiring with Intelligence
 
CSS com classe
Saulo Pratti
 
[INFNET] Criando layouts em PSD pensando no front-end e back-end
@cristianoweb
 
Webdesign - CSS na Prática no Webdesign
Renato Melo
 
Quero ser um ninja em xHTML, HTML5 e CSS3
Bunee.io - Hiring with Intelligence
 
Modular CSS - Projetando CSS para aplicativos
Bunee.io - Hiring with Intelligence
 
Mini curso html5 slides
Carlos Rodrigo de Araujo
 
Um guia bem básico de Bootstrap + Less
Bruno Said
 
don't repeat yourself front-ender
tdc-globalcode
 
Diazo para todos
Simples Consultoria
 
I love pixels
Ítalo Waxman
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
iMasters
 
Laboratório Web 2013-2014 - Etapas na Produção: Desenho e Composição
Ricardo Pereira Rodrigues
 
Apresentação do PowerPoint432553255463.pdf
henriquefgcgamer
 
20241101-Webdesign-Frontend-e-Backend-Slide de aula
fernandopetry5
 
Tutorial codeigniter
Harry Möbbs Júnior
 
Responsive web design_CPRecife2 - Felipe de Albuquerque
Felipe de Albuquerque
 
Anúncio

Mais de Diego Eis (16)

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

Último (16)

PPTX
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
PPTX
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
PPTX
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
PPTX
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
PPTX
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PPTX
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
PDF
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
PPTX
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
PPTX
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 

Construindo seu framework CSS