SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

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 Mauro George
 
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 2014Mauro George
 
RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014Mauro George
 
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 2014Mauro George
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
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 2012Mauro George
 
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.tdc-globalcode
 
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...tdc-globalcode
 
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 - WebschoolBruno Orlandi
 
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 errarBruno Calheira
 
Mini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFSMini-curso de git -- SECOMP-UFS
Mini-curso de git -- SECOMP-UFSFelipe Carvalho
 
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 - WebschoolBruno Orlandi
 
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 - WebschoolBruno Orlandi
 
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 - WebschoolBruno Orlandi
 
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 GitHubBruno Orlandi
 
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 2014Mauro George
 

Destaque (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
 

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

Semelhante a 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
 

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