SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Rails front-end com 
Bourbon e sua família Front in Maceió
Mauro quem…
Um pouco de história
Minha história com front-end 
Back 
Acessibilidade 
Usabilidade 
End 
Web semântica 
SEO 
HTML 5
Startupdev
❖ Mais de 50 projetos! 
❖ Projeto novo toda semana! 
❖ Pah 
Startupdev
Pah
❖ Rails template! 
❖ Gerador de aplicações! 
❖ CSS padrão??? 
Pah
Pah
Pah 
❖ Manter! 
❖ Testar! 
❖ Documentação! 
❖ Contribua com o que já existe
Bourbon
❖ Sass! 
Bourbon 
❖ Apenas o que é usado é incluido! 
❖ Sem mais vendor-prefixed
Bourbon 
Mixins 
Sass 
.users-index { 
@include background(linear-gradient(red, green) left repeat); 
} 
CSS 
.users-index { 
background: -webkit-linear-gradient( red, green) left repeat; 
background: linear-gradient( red, green) left repeat; 
}
Bourbon 
Add-ons 
Sass 
span { 
@include retina-image(home-icon, 32px 20px) 
} 
CSS 
span { 
background-image: url(home-icon.png); 
} 
@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only 
screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min- 
device-pixel-ratio: 1.3 / 1), only screen and (min-resolution: 
125dpi), only screen and (min-resolution: 1.3dppx) { 
span { 
background-image: url(home-icon_2x.png); 
background-size: 32px 20px; }
NEAT
NEAT 
❖ No topo do bourbon! 
❖ Não polui o HTML
Marcação extra no 
HTML 
Bootstrap
Marcação extra no 
HTML 
Foundation
Sem Marcação extra 
no HTML 
NEAT
NEAT 
Sass 
HTML 
<section> 
<aside>What is it about?</aside> 
<article>Neat is an open source semantic grid framework built on 
top of Sass and Bourbon</article> 
</section> 
Sass 
section { 
@include outer-container; 
aside { @include span-columns(3); } 
article { @include span-columns(9); } 
}
Bitters
Bitters 
❖ Estilos padrões, variáveis e estrutura! 
❖ No topo do bourbon! 
❖ Feito para ser extendido
Bitters
Bitters 
base/_grid-settings.scss 
@import 'neat-helpers'; 
! 
$max-width: em(960); 
! 
// Neat Breakpoints 
$medium-screen: em(640); 
$large-screen: em(860); 
! 
$medium-screen-up: new-breakpoint(min-width $medium-screen 4); 
$large-screen-up: new-breakpoint(min-width $large-screen 8);
Bitters 
base/_variables.scss 
// Typography 
$sans-serif: $helvetica; 
$serif: $georgia; 
$base-font-family: $sans-serif; 
$header-font-family: $base-font-family; 
! 
// Sizes 
$base-font-size: 1em; 
$base-line-height: $base-font-size * 1.5; 
$unitless-line-height: $base-line-height / ($base-line-height * 0 + 
1); 
$header-line-height: $base-font-size * 1.25; 
$base-border-radius: em(3); 
$base-body-color: white;
Bitters 
base/_typography.scss 
body { 
-webkit-font-smoothing: antialiased; 
background-color: $base-background-color; 
color: $base-font-color; 
font-family: $base-font-family; 
font-size: $base-font-size; 
line-height: $unitless-line-height; 
} 
! 
h1, h2, h3, h4, h5, h6 { 
font-family: $header-font-family; 
line-height: $header-line-height; 
margin: 0; 
text-rendering: optimizeLegibility; // Fix the character spacing 
for headings 
}
Refills
Refills 
❖ Padrões e componentes! 
❖ No topo do bourbon, bitters e neat! 
❖ Feito para ser extendido
Refills
Refills 
HTML 
<div class="cards"> 
<div class="card"> 
<div class="card-image"> 
<img src="https://raw.githubusercontent.com/thoughtbot/refills/master/ 
source/images/mountains.png" alt=""> 
</div> 
<div class="card-header"> 
First Card 
</div> 
<div class="card-copy"> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fuga, 
officiis sunt neque facilis culpa molestiae necessitatibus delectus veniam 
provident.</p> 
</div> 
<div class="card-stats"> 
<ul> 
<li>98<span>Items</span></li> 
<li>298<span>Things</span></li> 
<li>923<span>Objects</span></li>
Refills 
Sass 
.cards { 
@include clearfix; 
} 
! 
.card { 
$card-border-color: $base-border-color; 
$card-border: 1px solid $card-border-color; 
$card-background: lighten($card-border-color, 10); 
$card-header-background: $card-background; 
$card-hover-background: lighten($card-background, 5); 
$card-image-background: #DBD199; 
$card-image-hover-background: lighten($card-image-background, 5); 
$card-stats-color: lighten($base-accent-color, 10); 
! 
@include transition (all 0.2s ease-in-out); 
background-color: $card-background; 
border-radius: $base-border-radius; 
border: $card-border; 
margin-bottom: $base-spacing;
Organização
Organização 
Não tudo no application.css 
application.css.scss 
/* MAIN */ 
! 
@import "colors", "mixins"; 
! 
body { 
font-size: 75%; 
line-height: 1.25; 
font-family: Helvetica, Arial, sans-serif; 
background: transparent image-url("bg-content.png"); 
color: #333; 
} 
! 
.plaecholder, 
input:-moz-placeholder { 
color: #999; 
} 
! 
a, a:active { 
color: $thought-you-were;
Organização 
application.css.scss 
/* MAIN */ 
! 
//… 
! 
/* HEADING */ 
! 
h1, h2, h3 { 
margin: 0 0 .2em; 
font-weight: bold; 
} 
! 
h1 { 
font-size: 1.4em; 
letter-spacing: -1px; 
color: $thought-you-were; 
! 
strong { 
color: #000; 
} 
Comentários sucks
Organização 
Bitters
Organização 
Convenções
Organização 
Convenções
Organização 
Convenções
Organização 
Flutie 
HTML 
<body class="users users-index"> 
SASS 
.users-index { 
// My users/index css here 
}
Organização 
HTML 
<form class="simple_form new_user" id="new_user" ...> 
<div class="input string optional user_name"> 
<label class="string optional" for="user_name">Name</label> 
<input class="string optional" id="user_name" name="user[name]" 
type="text" /> 
</div> 
Simple Form 
SASS 
.simple_form.new_user { 
@include outer-container; 
! 
.user_name { 
@include span-columns(5); 
}
Conclusão 
❖ Não recrie o que já existe, contribua!! 
❖ Organização para a sanidade do time.! 
❖ Utilize de convenções
Obrigado!
maurogeorge.com.br

Contenu connexe

En vedette

Mini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFSMini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFS
Felipe Carvalho
 

En vedette (20)

Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013 Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013
 
O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014
 
RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014
 
jQuery
jQueryjQuery
jQuery
 
Git em ambiente Subversion
Git em ambiente SubversionGit em ambiente Subversion
Git em ambiente Subversion
 
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
 
TDC2016POA | Trilha Empreendedorismo - Faça mais, reclame menos.
TDC2016POA | Trilha Empreendedorismo - Faça mais, reclame menos.TDC2016POA | Trilha Empreendedorismo - Faça mais, reclame menos.
TDC2016POA | Trilha Empreendedorismo - Faça mais, reclame menos.
 
TDC2016POA | Trilha Ruby - Testes de contrato em um contexto de services e mi...
TDC2016POA | Trilha Ruby - Testes de contrato em um contexto de services e mi...TDC2016POA | Trilha Ruby - Testes de contrato em um contexto de services e mi...
TDC2016POA | Trilha Ruby - Testes de contrato em um contexto de services e mi...
 
Minicurso Git
Minicurso GitMinicurso Git
Minicurso Git
 
Aula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - WebschoolAula 6 - Curso Git e Github - Webschool
Aula 6 - Curso Git e Github - Webschool
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Mini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFSMini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFS
 
Aula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - WebschoolAula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - Webschool
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
 
Aula 4 - Curso Git e Github - Webschool
Aula 4 - Curso Git e Github - WebschoolAula 4 - Curso Git e Github - Webschool
Aula 4 - Curso Git e Github - Webschool
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHub
 
RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 

Similaire à Rails front-end com bourbon e sua familia @ Front in Maceió 2014

Curso CSS3 com Sass e Compass - Aula 05: Variaveis
Curso CSS3 com Sass e Compass - Aula 05: VariaveisCurso CSS3 com Sass e Compass - Aula 05: Variaveis
Curso CSS3 com Sass e Compass - Aula 05: Variaveis
Loiane Groner
 
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
Loiane Groner
 
Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2
Afonso Gomes
 

Similaire à Rails front-end com bourbon e sua familia @ Front in Maceió 2014 (20)

Curso CSS3 com Sass e Compass - Aula 05: Variaveis
Curso CSS3 com Sass e Compass - Aula 05: VariaveisCurso CSS3 com Sass e Compass - Aula 05: Variaveis
Curso CSS3 com Sass e Compass - Aula 05: Variaveis
 
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
 
Curso HTML e CSS Part2
Curso HTML e CSS Part2Curso HTML e CSS Part2
Curso HTML e CSS Part2
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Criando sites com estilos
Criando sites com estilosCriando sites com estilos
Criando sites com estilos
 
Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com Sass
 
CSS
CSSCSS
CSS
 
React + sass
React + sassReact + sass
React + sass
 
HTML&CSS 4 - Intermediate CSS (1/2)
HTML&CSS 4 - Intermediate CSS (1/2)HTML&CSS 4 - Intermediate CSS (1/2)
HTML&CSS 4 - Intermediate CSS (1/2)
 
Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2Aprender CSS (UFCD0154) v2
Aprender CSS (UFCD0154) v2
 
Less
LessLess
Less
 
RCOM 11ºAno - CSS
RCOM 11ºAno - CSSRCOM 11ºAno - CSS
RCOM 11ºAno - CSS
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
CSS Básico
CSS BásicoCSS Básico
CSS Básico
 
CSS: Introdução no Webdesign
CSS: Introdução no WebdesignCSS: Introdução no Webdesign
CSS: Introdução no Webdesign
 
Iniciação em css
Iniciação em cssIniciação em css
Iniciação em css
 
Pre vs Pos
Pre vs PosPre vs Pos
Pre vs Pos
 
CSS tipo de letra (fontes)
CSS tipo de letra (fontes)CSS tipo de letra (fontes)
CSS tipo de letra (fontes)
 
Técnicas e processos - HTML / CSS - aula 2
Técnicas e processos - HTML / CSS - aula 2Técnicas e processos - HTML / CSS - aula 2
Técnicas e processos - HTML / CSS - aula 2
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 

Dernier

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Dernier (7)

Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 

Rails front-end com bourbon e sua familia @ Front in Maceió 2014

  • 1. Rails front-end com Bourbon e sua família Front in Maceió
  • 3.
  • 4.
  • 5. Um pouco de história
  • 6. Minha história com front-end Back Acessibilidade Usabilidade End Web semântica SEO HTML 5
  • 8. ❖ Mais de 50 projetos! ❖ Projeto novo toda semana! ❖ Pah Startupdev
  • 9. Pah
  • 10. ❖ Rails template! ❖ Gerador de aplicações! ❖ CSS padrão??? Pah
  • 11. Pah
  • 12. Pah ❖ Manter! ❖ Testar! ❖ Documentação! ❖ Contribua com o que já existe
  • 14. ❖ Sass! Bourbon ❖ Apenas o que é usado é incluido! ❖ Sem mais vendor-prefixed
  • 15. Bourbon Mixins Sass .users-index { @include background(linear-gradient(red, green) left repeat); } CSS .users-index { background: -webkit-linear-gradient( red, green) left repeat; background: linear-gradient( red, green) left repeat; }
  • 16. Bourbon Add-ons Sass span { @include retina-image(home-icon, 32px 20px) } CSS span { background-image: url(home-icon.png); } @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min- device-pixel-ratio: 1.3 / 1), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) { span { background-image: url(home-icon_2x.png); background-size: 32px 20px; }
  • 17. NEAT
  • 18. NEAT ❖ No topo do bourbon! ❖ Não polui o HTML
  • 19. Marcação extra no HTML Bootstrap
  • 20. Marcação extra no HTML Foundation
  • 21. Sem Marcação extra no HTML NEAT
  • 22. NEAT Sass HTML <section> <aside>What is it about?</aside> <article>Neat is an open source semantic grid framework built on top of Sass and Bourbon</article> </section> Sass section { @include outer-container; aside { @include span-columns(3); } article { @include span-columns(9); } }
  • 24. Bitters ❖ Estilos padrões, variáveis e estrutura! ❖ No topo do bourbon! ❖ Feito para ser extendido
  • 26. Bitters base/_grid-settings.scss @import 'neat-helpers'; ! $max-width: em(960); ! // Neat Breakpoints $medium-screen: em(640); $large-screen: em(860); ! $medium-screen-up: new-breakpoint(min-width $medium-screen 4); $large-screen-up: new-breakpoint(min-width $large-screen 8);
  • 27. Bitters base/_variables.scss // Typography $sans-serif: $helvetica; $serif: $georgia; $base-font-family: $sans-serif; $header-font-family: $base-font-family; ! // Sizes $base-font-size: 1em; $base-line-height: $base-font-size * 1.5; $unitless-line-height: $base-line-height / ($base-line-height * 0 + 1); $header-line-height: $base-font-size * 1.25; $base-border-radius: em(3); $base-body-color: white;
  • 28. Bitters base/_typography.scss body { -webkit-font-smoothing: antialiased; background-color: $base-background-color; color: $base-font-color; font-family: $base-font-family; font-size: $base-font-size; line-height: $unitless-line-height; } ! h1, h2, h3, h4, h5, h6 { font-family: $header-font-family; line-height: $header-line-height; margin: 0; text-rendering: optimizeLegibility; // Fix the character spacing for headings }
  • 30. Refills ❖ Padrões e componentes! ❖ No topo do bourbon, bitters e neat! ❖ Feito para ser extendido
  • 32. Refills HTML <div class="cards"> <div class="card"> <div class="card-image"> <img src="https://raw.githubusercontent.com/thoughtbot/refills/master/ source/images/mountains.png" alt=""> </div> <div class="card-header"> First Card </div> <div class="card-copy"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fuga, officiis sunt neque facilis culpa molestiae necessitatibus delectus veniam provident.</p> </div> <div class="card-stats"> <ul> <li>98<span>Items</span></li> <li>298<span>Things</span></li> <li>923<span>Objects</span></li>
  • 33. Refills Sass .cards { @include clearfix; } ! .card { $card-border-color: $base-border-color; $card-border: 1px solid $card-border-color; $card-background: lighten($card-border-color, 10); $card-header-background: $card-background; $card-hover-background: lighten($card-background, 5); $card-image-background: #DBD199; $card-image-hover-background: lighten($card-image-background, 5); $card-stats-color: lighten($base-accent-color, 10); ! @include transition (all 0.2s ease-in-out); background-color: $card-background; border-radius: $base-border-radius; border: $card-border; margin-bottom: $base-spacing;
  • 35. Organização Não tudo no application.css application.css.scss /* MAIN */ ! @import "colors", "mixins"; ! body { font-size: 75%; line-height: 1.25; font-family: Helvetica, Arial, sans-serif; background: transparent image-url("bg-content.png"); color: #333; } ! .plaecholder, input:-moz-placeholder { color: #999; } ! a, a:active { color: $thought-you-were;
  • 36. Organização application.css.scss /* MAIN */ ! //… ! /* HEADING */ ! h1, h2, h3 { margin: 0 0 .2em; font-weight: bold; } ! h1 { font-size: 1.4em; letter-spacing: -1px; color: $thought-you-were; ! strong { color: #000; } Comentários sucks
  • 41. Organização Flutie HTML <body class="users users-index"> SASS .users-index { // My users/index css here }
  • 42. Organização HTML <form class="simple_form new_user" id="new_user" ...> <div class="input string optional user_name"> <label class="string optional" for="user_name">Name</label> <input class="string optional" id="user_name" name="user[name]" type="text" /> </div> Simple Form SASS .simple_form.new_user { @include outer-container; ! .user_name { @include span-columns(5); }
  • 43. Conclusão ❖ Não recrie o que já existe, contribua!! ❖ Organização para a sanidade do time.! ❖ Utilize de convenções