SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
[Front End Training]
Sass - Aula 03
gisely.lucas@gmail..com
Na aula passada ...
● Desenvolvendo em Sass
○ Hierarquia de Seletores
○ Variáveis
○ Mixins
○ Operações
○ Concatenação x Interpolação
Relembrando ...
gisely.lucas@gmail..com
● Desenvolvendo em Sass
○ Concatenação x Interpolação (Exercício)
○ Regras e diretivas
○ Flags
○ Expressões
Agenda
gisely.lucas@gmail..com
Concatenação: A operação + pode ser
usada para concatenar strings
Sass
p {
font-family: sans- + “serif”;
}
CSS
p {
font-family: sans-serif;
}
Concatenação de String x Interpolação
Interpolação: encaixar valores
dinâmicos dentro de outros valores.
Sass
$value: featured;
.section-#{$value} {
color: #010203;
}
CSS
section-featured {
color: #010203;
}
Exercício!
gisely.lucas@gmail..com
Regras e Diretivas
gisely.lucas@gmail..com
● Permite importar um conteúdo.
● Pode ser utilizado para:
○ Modularização
○ Links
○ Fontes
○ Incluir classes aninhando uma a
outra.
No GO!
● É utilizado principalmente na
modularização e em algumas fontes.
@import
Exemplo:
Arquivo: _example.scss
$primary-color: #333;
.example {
color: $primary-color;
}
Arquivo: _main.scss
.main {
@import “example”;
}
CSS
.main .example {
color: #333;
}Exercício!
gisely.lucas@gmail..com
● Permite estender (herdar)
propriedades de uma classe geral
em outra mais específica.
Boas práticas
Recomendado
É interessante utilizar uma extensão
quando for necessário existir uma classe
genérica e outra específica.
Promovendo assim um reuso de código
@extend
Exemplo:
.carousel__loading--center {
@extend .carousel__loading;
margin-top: -22px;
top: 50%;
}
.carousel__loading {
position: absolute;
top: 100px;
left: 50%;
margin-left: -22px;
[...]
}Exercício!
gisely.lucas@gmail..com
● Possui o mesmo comportamento
que o CSS.
● Pode ser aninhado.
@media
Exemplo:
.sidebar {
width: 300px;
@media screen and (orientation: landscape){
width: 500px;
}
}
CSS
.sidebar {
width: 300px;
@media screen and (orientation: landscape){
.sidebar {
width: 500px;
}
}}
Exercício!
gisely.lucas@gmail..com
● !important: define como valor
principal independente da hierarquia
● !default: cria um valor default para a
variável caso ela não tenha nenhum
valor atribuído.
No GO!
● As flags mais utilizadas são:
!important e !default
Flags
Exemplo:
$prefix-for-webkit: true !default;
a.important {
@extend .notice;
height: 251px !important;
}
Boas práticas
Não recomendado
Utilizar a flag important por qualquer
coisa.
Exercício!
gisely.lucas@gmail..com
Expressões
Utilizando SassScript
gisely.lucas@gmail..com
@if
● Utiliza os estilos aninhados a ela,
quando o valor for diferente de false
ou null.
@else
● Permite tratar casos, quando não
atender a condição definida.
Condicionais
Exemplo:
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == monster {
color: #14eF10;
} @else {
color: #b9b9b9;
}
}
Exercício!
Para se criar estruturas condicionais
aninhadas é preciso utilizar @else if
condição {} aninhado dentro de um
@if
gisely.lucas@gmail..com
@for
● Cria um loop utilizando um valor
de start e outro end.
for variável from start through
end
@each
● Cria um loop com base em uma
lista predefinida.
each variável in <list>
Loops
Exemplo:
$type: monster;
@for $i from 1 through 3 {
.item-#{$i} {
width: 2em * $i;
}
}
@each $animal in item1, item2, item3 {
.#{$animal}-icon {
background-image:
url(“#{$animal}.png”);
}
}
Exercício!
gisely.lucas@gmail..com

Mais conteúdo relacionado

Semelhante a Sass - Concatenação x Interpolação

Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com SassVitor Garcia
 
Introducao ao Ruby
Introducao ao RubyIntroducao ao Ruby
Introducao ao RubyKlaus Paiva
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoVitor Silva
 
TDC 2019: transformando 
dados
públicos
em mapas interativos
TDC 2019: transformando 
dados
públicos
em mapas interativosTDC 2019: transformando 
dados
públicos
em mapas interativos
TDC 2019: transformando 
dados
públicos
em mapas interativosHelder da Rocha
 
Slides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfSlides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfIgorAugusto76
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSSKako Botasso
 
Pre-processadores CSS e Ferramentas gráficas
Pre-processadores CSS e Ferramentas gráficasPre-processadores CSS e Ferramentas gráficas
Pre-processadores CSS e Ferramentas gráficasKenji Yamamoto
 

Semelhante a Sass - Concatenação x Interpolação (20)

Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
CSS3: CSS3 (aula 2)
CSS3: CSS3 (aula 2)CSS3: CSS3 (aula 2)
CSS3: CSS3 (aula 2)
 
Css For Beginners
Css For BeginnersCss For Beginners
Css For Beginners
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
 
Curso HTML e CSS Part2
Curso HTML e CSS Part2Curso HTML e CSS Part2
Curso HTML e CSS Part2
 
Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com Sass
 
Introducao ao Ruby
Introducao ao RubyIntroducao ao Ruby
Introducao ao Ruby
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Laboratório Web 2013-2014 - CSS3
Laboratório Web 2013-2014 - CSS3Laboratório Web 2013-2014 - CSS3
Laboratório Web 2013-2014 - CSS3
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
 
TDC 2019: transformando 
dados
públicos
em mapas interativos
TDC 2019: transformando 
dados
públicos
em mapas interativosTDC 2019: transformando 
dados
públicos
em mapas interativos
TDC 2019: transformando 
dados
públicos
em mapas interativos
 
Modular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativosModular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativos
 
Slides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdfSlides - Tailwind CSS.pdf
Slides - Tailwind CSS.pdf
 
CSS Mastigado
CSS MastigadoCSS Mastigado
CSS Mastigado
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSS
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Pre-processadores CSS e Ferramentas gráficas
Pre-processadores CSS e Ferramentas gráficasPre-processadores CSS e Ferramentas gráficas
Pre-processadores CSS e Ferramentas gráficas
 

Mais de Gisely Lucas

Diversidade - Anima.pdf
Diversidade - Anima.pdfDiversidade - Anima.pdf
Diversidade - Anima.pdfGisely Lucas
 
O poder da semântica em aplicações Web - Um olhar para o HTML
O poder da semântica em aplicações Web - Um olhar para o HTML O poder da semântica em aplicações Web - Um olhar para o HTML
O poder da semântica em aplicações Web - Um olhar para o HTML Gisely Lucas
 
Programação funcional - o que é? Como aplicar? Quais os benefícios?
Programação funcional - o que é? Como aplicar? Quais os benefícios?Programação funcional - o que é? Como aplicar? Quais os benefícios?
Programação funcional - o que é? Como aplicar? Quais os benefícios?Gisely Lucas
 
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...Gisely Lucas
 
Vamos falar de desenvolvimento com acessibilidade?
Vamos falar de desenvolvimento com acessibilidade?Vamos falar de desenvolvimento com acessibilidade?
Vamos falar de desenvolvimento com acessibilidade?Gisely Lucas
 
Muito além de apenas bandeiras
Muito além de apenas bandeirasMuito além de apenas bandeiras
Muito além de apenas bandeirasGisely Lucas
 
Inclusão Web: Tornando a web para todos
Inclusão Web: Tornando a web para todosInclusão Web: Tornando a web para todos
Inclusão Web: Tornando a web para todosGisely Lucas
 
Desenvolvimento de aplicativos Móveis com IONIC
Desenvolvimento de aplicativos Móveis com IONICDesenvolvimento de aplicativos Móveis com IONIC
Desenvolvimento de aplicativos Móveis com IONICGisely Lucas
 
Talk diversidade 2018
Talk   diversidade 2018Talk   diversidade 2018
Talk diversidade 2018Gisely Lucas
 
Fala sério, mulheres na TI?
Fala sério, mulheres na TI?Fala sério, mulheres na TI?
Fala sério, mulheres na TI?Gisely Lucas
 

Mais de Gisely Lucas (12)

Diversidade - Anima.pdf
Diversidade - Anima.pdfDiversidade - Anima.pdf
Diversidade - Anima.pdf
 
O poder da semântica em aplicações Web - Um olhar para o HTML
O poder da semântica em aplicações Web - Um olhar para o HTML O poder da semântica em aplicações Web - Um olhar para o HTML
O poder da semântica em aplicações Web - Um olhar para o HTML
 
Programação funcional - o que é? Como aplicar? Quais os benefícios?
Programação funcional - o que é? Como aplicar? Quais os benefícios?Programação funcional - o que é? Como aplicar? Quais os benefícios?
Programação funcional - o que é? Como aplicar? Quais os benefícios?
 
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...
[Dev day] Gerenciamento de foco para aplicações digitais acessíveis: do essen...
 
Vamos falar de desenvolvimento com acessibilidade?
Vamos falar de desenvolvimento com acessibilidade?Vamos falar de desenvolvimento com acessibilidade?
Vamos falar de desenvolvimento com acessibilidade?
 
Muito além de apenas bandeiras
Muito além de apenas bandeirasMuito além de apenas bandeiras
Muito além de apenas bandeiras
 
Inclusão Web: Tornando a web para todos
Inclusão Web: Tornando a web para todosInclusão Web: Tornando a web para todos
Inclusão Web: Tornando a web para todos
 
[Sass] Aula 04
[Sass] Aula 04[Sass] Aula 04
[Sass] Aula 04
 
[Sass] Aula 01
[Sass] Aula 01[Sass] Aula 01
[Sass] Aula 01
 
Desenvolvimento de aplicativos Móveis com IONIC
Desenvolvimento de aplicativos Móveis com IONICDesenvolvimento de aplicativos Móveis com IONIC
Desenvolvimento de aplicativos Móveis com IONIC
 
Talk diversidade 2018
Talk   diversidade 2018Talk   diversidade 2018
Talk diversidade 2018
 
Fala sério, mulheres na TI?
Fala sério, mulheres na TI?Fala sério, mulheres na TI?
Fala sério, mulheres na TI?
 

Sass - Concatenação x Interpolação

  • 1. [Front End Training] Sass - Aula 03 gisely.lucas@gmail..com
  • 2. Na aula passada ... ● Desenvolvendo em Sass ○ Hierarquia de Seletores ○ Variáveis ○ Mixins ○ Operações ○ Concatenação x Interpolação Relembrando ... gisely.lucas@gmail..com
  • 3. ● Desenvolvendo em Sass ○ Concatenação x Interpolação (Exercício) ○ Regras e diretivas ○ Flags ○ Expressões Agenda gisely.lucas@gmail..com
  • 4. Concatenação: A operação + pode ser usada para concatenar strings Sass p { font-family: sans- + “serif”; } CSS p { font-family: sans-serif; } Concatenação de String x Interpolação Interpolação: encaixar valores dinâmicos dentro de outros valores. Sass $value: featured; .section-#{$value} { color: #010203; } CSS section-featured { color: #010203; } Exercício! gisely.lucas@gmail..com
  • 6. ● Permite importar um conteúdo. ● Pode ser utilizado para: ○ Modularização ○ Links ○ Fontes ○ Incluir classes aninhando uma a outra. No GO! ● É utilizado principalmente na modularização e em algumas fontes. @import Exemplo: Arquivo: _example.scss $primary-color: #333; .example { color: $primary-color; } Arquivo: _main.scss .main { @import “example”; } CSS .main .example { color: #333; }Exercício! gisely.lucas@gmail..com
  • 7. ● Permite estender (herdar) propriedades de uma classe geral em outra mais específica. Boas práticas Recomendado É interessante utilizar uma extensão quando for necessário existir uma classe genérica e outra específica. Promovendo assim um reuso de código @extend Exemplo: .carousel__loading--center { @extend .carousel__loading; margin-top: -22px; top: 50%; } .carousel__loading { position: absolute; top: 100px; left: 50%; margin-left: -22px; [...] }Exercício! gisely.lucas@gmail..com
  • 8. ● Possui o mesmo comportamento que o CSS. ● Pode ser aninhado. @media Exemplo: .sidebar { width: 300px; @media screen and (orientation: landscape){ width: 500px; } } CSS .sidebar { width: 300px; @media screen and (orientation: landscape){ .sidebar { width: 500px; } }} Exercício! gisely.lucas@gmail..com
  • 9. ● !important: define como valor principal independente da hierarquia ● !default: cria um valor default para a variável caso ela não tenha nenhum valor atribuído. No GO! ● As flags mais utilizadas são: !important e !default Flags Exemplo: $prefix-for-webkit: true !default; a.important { @extend .notice; height: 251px !important; } Boas práticas Não recomendado Utilizar a flag important por qualquer coisa. Exercício! gisely.lucas@gmail..com
  • 11. @if ● Utiliza os estilos aninhados a ela, quando o valor for diferente de false ou null. @else ● Permite tratar casos, quando não atender a condição definida. Condicionais Exemplo: $type: monster; p { @if $type == ocean { color: blue; } @else if $type == monster { color: #14eF10; } @else { color: #b9b9b9; } } Exercício! Para se criar estruturas condicionais aninhadas é preciso utilizar @else if condição {} aninhado dentro de um @if gisely.lucas@gmail..com
  • 12. @for ● Cria um loop utilizando um valor de start e outro end. for variável from start through end @each ● Cria um loop com base em uma lista predefinida. each variável in <list> Loops Exemplo: $type: monster; @for $i from 1 through 3 { .item-#{$i} { width: 2em * $i; } } @each $animal in item1, item2, item3 { .#{$animal}-icon { background-image: url(“#{$animal}.png”); } } Exercício! gisely.lucas@gmail..com