Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Leve seu CSS para o futuro
Search
Rafael Dantas
December 01, 2018
Technology
0
17
Leve seu CSS para o futuro
Talk dada no front in Floripa de 2018.
Rafael Dantas
December 01, 2018
Tweet
Share
More Decks by Rafael Dantas
See All by Rafael Dantas
O estado do CSS em 2019
raffaeldantass
1
200
CSS animations under the hood
raffaeldantass
0
53
CSS moderno para Web Semântica
raffaeldantass
0
38
Houdini e o futuro mágico do CSS
raffaeldantass
1
210
Dismistificando o CSS Grid Layout
raffaeldantass
0
120
Houdini e o Futuro das CSS
raffaeldantass
1
460
Dismistificando o CSS Grid Layout
raffaeldantass
1
53
Other Decks in Technology
See All in Technology
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
300
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
310
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
980
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
700
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
1k
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
330
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
190
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
150
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
340
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
880
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
160
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
17
7.2k
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
0
710
How GitHub (no longer) Works
holman
316
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
110
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
250
Ruling the World: When Life Gets Gamed
codingconduct
0
92
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
160
Technical Leadership for Architectural Decision Making
baasie
0
180
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
34
Transcript
Leve seu CSS para o futuro com Houdini Por @raffaeldantass
Rafael Dantas @RaffaelDantass Organizador do @meetuphtmlsp Instrutor no @Coletividad Front
End @valleweb Colaborador no @iMasters
Quais empecilhos temos atualmente?
Não temos acesso ao CSSOM
Inconsistências entre navegadores
JS evolui muito rápido, CSS… nem tanto.
Como nasce uma propriedade nova em CSS?
Nova especificação é proposta Especificação é escrita Os vendors implementam
Melhorias e correções são propostas Re-implementação e correções são feitas Quando os vendors consideram a propriedade madura o suficiente Os navegadores Adotam a especificação Nós (Devs) usamos a especificação
Como funciona com JS?
Uma nova feature é proposta Cria-se um Polyfill/Transpilador Se utiliza
a nova feature
O que é o qual a proposta do Houdini?
É uma força tarefa criada pela W3C
Tem o objetivo de oferecer API`s para criarmos nossas próprias
propriedades
https://ishoudinireadyyet.com/
Parser DOM CSSOM Monta o layout Processo de Paint Processo
de Composite Processo de Cascata CSS Parser API CSS Typed OM CSS Layout API Painting API Animation Worklet Worklets Properties and Values API
CSS Typed OM CSS Layout API Painting API Worklets
CSS Typed OM - Tipos - Objetos - Métodos Valores
são expostos como objetos JS. Evitando concatenação através de strings
CSS Typed OM
CSS Typed OM
CSS Typed OM Quais beneficios isso me traria? Muito verboso?
Talvez.
CSS Typed OM - Menos erros Valores numéricos são retornados
como number, não string.
CSS Typed OM - Error handling É possível checar se
o valor passado é compatível com o que é esperado.
CSS Typed OM - Melhor performance Navegador terá menos trabalho
(não vai converter/concatenar strings)
Layout API Alguns conceitos importantes sobre como o navegador trabalha
com layouts
Delimitação do layout Child Layout Layout Child Layout Child Layout
Child Layout Child Container (Parent Layout)
Child Layout Layout Child styleMap Background-color Color Etc. Layout Fragment
Lida com valores intrínsecos de tamanho do Box min-content-size max-content-size
HTML
JS
CSS
Exemplo
Paint API HTML
Paint API HTML
Paint API JS
Exemplo
Worklet - Event Loop Age como uma roda gigante fora
da Main Thread
Main Thread Event Loop
Acesso low-level ao pipeline de renderização Worklet
Worklet É possível rodar JS e Web Assembly
Worklet Processa renderização de gráfico e áudios com maior performance
Worklet Processa renderização de gráfico e áudios com maior performance
Worklet Event Loop Worklet
Worklet Event Loop Worklet
Worklet Event Loop Worklet
Worklet Event Loop Worklet
Worklet Animation Worklet Layout Worklet Paint Worklet Audio Worklet
Em resumo Não vai mais depender da implementação por parte
dos vendors
Em resumo Não vai mais esperar tanto tempo por uma
propriedade nova
Em resumo Não haverá mais inconsistências entre navegadores
Em resumo Libs para lidar com inconsistências
Pra acompanhar https://github.com/w3c/css-houdini-drafts/issues W3C Google Chrome Labs https://github.com/GoogleChromeLabs/houdini-samples https://wiki.mozilla.org/CSS/Houdini Mozzila
Houdini Wiki https://drafts.css-houdini.org/ Drafts oficiais
@raffaeldantass OBRIGADO! Segue a gente! @valleweb rafa-dantas.com.br