Componentização

GDG - RE

Clóvis Neto
Full Stack Developer Enginner


Digital Bits

Tableless
facebook.com/ClovisDaSilvaNeto
github.com/clovisdasilvaneto
@clovissneto



Em 2012...

( Felipe Fialho )

Um piano...

( Felipe Fialho )
Um xadrez

( Felipe Fialho )

Soluções para projetos?
É possível utilizar componentes desenvolvidos apenas com CSS?
Massa... Mas quais são as técnicas?

Pseudo-Elements
Pseudo-Elements
são usados em CSS para adicionar efeitos diferentes em alguns seletores, ou parte de alguns seletores.

:target
Podemos utilizar o :target para adicionar uma interação com um elemento que possui o ID atrelado em algum elemento [href]

HTML

<a href="#menu">Open menu :)</a>
<nav id="menu">
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
CSS

a[href="#menu"] {
text-align: center;
display: block;
position: absolute;
top: 50%;
z-index: 2;
margin-top: -200px;
text-decoration: none;
width: 100%;
font-size: 50px;
color: #229394;
-webkit-transition:all ease 0.5s;
-o-transition:all ease 0.5s;
transition:all ease 0.5s;
}
#menu:target {
/* Go Code */
}
:checked && ~
Com o :checked, podemos capturar uma interação no elemento alvo e assim utilizamos o ~ para capturar o irmão do elemento em que ocorreu a interação...

HTML
<!-- Collapse -->
<div class="collapse">
<label class="collapse-btn" for="collapse-1">Lorem ipsum dolor sit amet</label>
<input class="collapse-open" type="checkbox" id="collapse-1" aria-hidden="true" hidden />
<div class="collapse-content">
<div class="collapse-inner">
...
</div>
</div>
</div>
CSS
.collapse-panel {
display: none;
}
.collapse-open:checked ~ .collapse-panel {
display: block;
}
Shoow! :)
CSS COMPONENTS

Mas e a performance?

Um pequeno teste...

Antes
Um resultado de teste no GTMetrix antes da alteração.

Oque foi feito?
1- Todo o js do site foi removido
2 - Passou-se a usar o Modal e o Collapse do framework
Resultado

Teste Final
1- O carregamento dos icones foi removido e o CSS embedado
Resultado Final

ajustes que muitas vezes esquecemos de fazer, como diminuir requisições, podem causar um impacto muito maior na perfomance de um projeto.


Obrigado!
@clovissneto
facebook.com/ClovisDaSilvaNeto
Componentização com css3
By Clóvis Neto
Componentização com css3
Aprenda como criar componentes customizados utilizando apenas css3
- 1,662