Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
24
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Leve seu CSS para o futuro
Talk dada no front in Floripa de 2018.
Rafael Dantas
December 01, 2018
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
71
CSS moderno para Web Semântica
raffaeldantass
0
44
Houdini e o futuro mágico do CSS
raffaeldantass
1
220
Dismistificando o CSS Grid Layout
raffaeldantass
0
140
Houdini e o Futuro das CSS
raffaeldantass
1
470
Dismistificando o CSS Grid Layout
raffaeldantass
1
53
Other Decks in Technology
See All in Technology
Rubyで音を視る
ydah
1
110
Ruby::Boxでできること、Refinementsでできること
joker1007
3
400
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
270
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
4
1.3k
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
0
440
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
50
56k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
850
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
1
470
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
150
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
2
280
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
210
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.2k
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
Why Our Code Smells
bkeepers
PRO
340
58k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
New Earth Scene 8
popppiees
3
2.3k
Believing is Seeing
oripsolob
1
140
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Designing for Timeless Needs
cassininazir
1
250
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