SlideShare a Scribd company logo
Eric Meyer
Developer Advocate, Igalia
Co-founder, An Event Apart
CSS :has()
Unlimited Power
Eric Meyer
Developer Advocate, Igalia
Co-founder, An Event Apart
CSS :has()
Unlimited Power
1996
CSS1
1998
CSS2
CSS1
CSS2
Simple selectors
Complex selectors
CSS1
CSS2
element, .class., #id
element, .class, #id,
[attr], a > b, a + b, …
a > b
a > b
a b
>
a b
<
CSS :has()               Unlimited Power
shauninman.com/archive/2008/05/05/css_qualified_selectors
CSS Qualified Selectors
“The problem is that browsers cannot store all
of the information they need to know exactly
what to invalidate when something in the DOM
changes. They end up using a tainting model
that inevitably (in the worst case scenarios)
leads to over-invalidation.”
shauninman.com/archive/2008/05/05/css_qualified_selectors#comment_3942
BROWSER VENDORS
vimeo.com/223432117
vimeo.com/286945944
Solving container queries today
Contain Your Excitement
vimeo.com/223432117
vimeo.com/286945944
Solving container queries today
Contain Your Excitement
CSS :has()               Unlimited Power
CSS :has()               Unlimited Power
CSS :has()               Unlimited Power
+
:has()
caniuse.com/css-has
Retrieved 19 July 2022
caniuse.com/css-has
Retrieved 9 December 2022
a:has(b)
a:has-relationship(b)
p:has(a) p:has(> img)
<p>
<a href="…">…</a>
</p>
<p>
<span>
<a href="…">…</a>
</span>
</p>
<p>
<span>
<span>
<a href="…">…</a>
</span>
</span>
</p>
<p>
<img src="…" alt="…">
</p>
<p>
<span>
<img src="…" alt="…">
</span>
</p>
<p>
<span>
<span>
<img src="…" alt="…">
</span>
</span>
<img src="…" alt="…">
</p>
p:has(a) p:has(> img)
p
a
p
span
a
p
span
span
a
p
img
p
span
p
img
span
span
img
img
p:has(a) p:has(> img)
p
img
p
span
p
img
span
span
img
img
p
a
p
span
a
p
span
span
a
p:has(a) p:has(> img)
p
a
p
span
a
p
span
span
a
p
img
p
span
p
img
span
span
img
img
*:has(+ script.adjs)
<div>
…(ad markup here)…
</div>
<script class="adjs">
…
</script>
<div>
…(ad markup here)…
</div>
<main>
…(main content)…
</main>
<script class="adjs">
…
</script>
<main>
…(main content)…
</main>
<div>
…(ad markup here)…
</div>
div:has(> script) + *.advert
<div>
<script class="adjs">
…
</script>
</div>
<iframe class="advert">
…
</iframe>
<iframe class="advert">
…
</iframe>
div:has(> script) + *.advert
<div>
<script class="adjs">
…
</script>
</div>
<img src="…" alt="…">
<iframe class="advert">
…
</iframe>
div:has(> script) + *:has(*.advert)
<div>
<script class="adjs">
…
</script>
</div>
<div>
<div class="advert">…</div>
</div>
<div>
<div class="advert">…</div>
</div>
*:has(script.adjs) > *
<header>
<div class="advert">
…
</div>
<img src="…" alt="…">
<script class="adjs">
…
</script>
</header>
<div class="advert">
…
</div>
<img src="…" alt="…">
<script class="adjs">
…
</script>
div:has([aria-label="Sponsored"])
<body>
<div id="layout">
<main>
</main>
</div>
</body>
<div>
<div>
<div aria-label="Sponsored">
</div>
</div>
</div>
div:has([aria-label="Sponsored"])
<body>
<div id="layout">
<main>
</main>
</div>
</body>
<div>
<div>
<div aria-label="Sponsored">
</div>
</div>
</div>
div:has([aria-label="Sponsored"])
<body>
<div id="layout">
<main>
</main>
</div>
</body>
<div>
<div>
<div aria-label="Sponsored">
</div>
</div>
</div>
{display: none;}
<body>
<div id="layout">
<main>
</main>
</div>
</body>
<div>
<div>
<div aria-label="Sponsored">
</div>
</div>
</div>
div:has([aria-label="Sponsored"])
<body>
<div id="layout">
<main>
</main>
</div>
</body>
<div>
<div>
<div aria-label="Sponsored">
</div>
</div>
</div>
div:has( [aria-label="Sponsored"])
Invalid :has()
main:has(div:has( + script))
Invalid :has()
:has() INSIDE :has()!!!
main:has(div::before)
Invalid :has()
a pseudo-element inside :has()!!!
::slotted(p:has(img))
Invalid :has()
:has() inside a pseudo-element!!!
p::first-line:has(img)
Invalid :has()
:has() following a pseudo-element!!!
p:has(a[href]:visited)
Limitation on :has()
:visited can NEVER be selected
Performance?
vimeo.com/223432117
vimeo.com/286945944
Solving container queries today
Contain Your Excitement
<div>
<h3>High-Quality Baseball Cap</h3>
<img src="…" alt="">
<p class="price">
<del>$40</del> $25
<small>(40% off)</small>
</p>
<a href="…">Sizing chart</a>
<p class="sale">Sale</p>
<p class="coupon">Save an extra 20%
with code: SCORE</p>
</div>
Performance?
<div>
<h3>
<img src="…" alt="">
<p class="price">
<del>
<small>
<a href="…">
<p class="sale">
<p class="coupon">
Performance?
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div .sale
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div p del
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div:has(p del)
Performance?
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div:has(p del)
del
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div:has(p del)
p del
Performance?
!
div
h3
img src="…" alt=""
p class="price"
del
small
a href="…"
p class="sale"
p class="coupon"
div:has(p del)
p del
del
Performance?
!
Performance?
!
Performance?
!
Use Cases?
CSS :has()               Unlimited Power
<div>
<h3>High-Quality Baseball Cap</h3>
<img src="…" alt="">
<p class="price">
<del>$40</del> $25
<small>(40% off)</small>
</p>
<a href="…">Sizing chart</a>
<p class="sale">Sale</p>
<p class="coupon">Save an extra 20%
with code: SCORE</p>
</div>
<div>
<h3>
<img src="…" alt="">
<p class="price">
<del>
<small>
<a href="…">
<p class="sale">
<p class="coupon">
<div>
<h3>
<img src="…" alt="">
<p class="price">
<del>
<small>
<a href="…">
<p class="sale">
<p class="coupon">
<div>
<h3>
<img src="…" alt="">
<p class="price">
<del>
<small>
<a href="…">
<p class="sale">
<p class="coupon">
.sale
.sale
.coupon
.sale .coupon
.coupon
.sale .sale
.sale .coupon
<div>
<h3>
<img src="…" alt="">
<p class="price">
<del>
<small>
<a href="…">
<p class="sale">
<p class="coupon">
.gallery > div:has(.sale) {
box-shadow: 0.25em 0.25em 0.33em #BBB;
border-color: #D00;
border-width: 2px;
}
.coupon
.sale .sale
.sale .coupon
.gallery > div:has(.coupon) {
box-shadow: 0 0 1em #BCB inset;
}
.coupon
.sale .sale
.sale .coupon
border-width: 2px;
}
.gallery > div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.coupon
.sale .sale
.sale .coupon
box-shadow: 0 0 1em #BCB inset;
}
.gallery > div:has(.sale, .coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.coupon
.sale .sale
.sale .coupon
.gallery > div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.gallery > div:has(.coupon) {
box-shadow: 0 0 1em #BCB inset;
}
.gallery > div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.coupon
.sale .sale
.sale .coupon
<div>
<h3>
<img src="…" alt="">
<p class="price">
<a href="…">
.coupon
.sale .sale
.sale .coupon
<p class="sale">
<p class="coupon">
<div class="offers">
.coupon
.sale .sale
.sale .coupon
.gallery div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.gallery div:has(.coupon) {
box-shadow: 0 0 1em #BCB inset;
}
.gallery div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
>
>
>
.coupon
.sale .sale
.sale .coupon
.gallery div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
.gallery div:has(.coupon) {
box-shadow: 0 0 1em #BCB inset;
}
.gallery div:has(.sale):has(.coupon) {
box-shadow: 0.67em 0.67em 0.75em #999;
border-width: 4px;
outline: 3px solid #070;
}
html:has(.about-page) {
background: hsl(50deg,15%,93%);
}
body:has(nav.subnav) header.page {
margin-block-end: 0;
}
.hero:has(a[href]):has(.buy) {
padding: 1em;
background: #FAA;
}
html:has(.about-page) {
background: hsl(50deg,15%,93%);
}
html
head
body class="about-page"
header
…
main
…
footer
…
html
head
body
header
…
main class="about-page"
…
footer
…
body:has(nav.subnav) header.page {
margin-block-end: 0;
}
html
head
body
header class="page"
nav class="subnav"
…
main
…
footer
…
html
head
body
header class="page"
…
nav class="subnav"
…
main
…
footer
…
.hero:has(a[href]):has(.buy) {
padding: 1em;
background: #FAA;
}
header class="hero"
h1
a href="…"
div
span class="buy"
span class="sale"
header class="hero"
h1
a href="…" class="buy"
div
span class="sale"
div:has(table.data) + div:has(h2, h3) {
margin-block-start: 25vh;
}
div:has(:not(img)) {
padding-inline: 0.5rem;
}
div:not(*:has(*:not(img))) {
border: 1px solid currentColor;
}
h4:has(+ blockquote) {
border-bottom:
1px solid orange;
}
h4:has(+ blockquote > p) {
border-width: 3px;
}
nav a:has(~ .current)::after {
content: " > ";
}
tbody:has(> tr:nth-child(7)) > tr:nth-child(odd) {
background: silver;
}
{ }
6 7
ul {
margin-block: 1em;
}
ul:not(:has(> li:nth-child(4))) {
margin-block: 2em;
}
ul:has(> li:nth-child(4)) {
margin-block: 1em;
}
ul {
margin-block: 2em;
}
.card:has(*:focus) {
outline: 3px solid red;
}
article:has(> *:target) {
outline: 3px solid red;
}
label:has(+ :required) {font-weight: bold;}
form:has(*:invalid) {background: #FAA;}
label:has(+ :required:invalid) {color: red;}
label:has(+ :required)::after {content: " *";}
<form>
<label
for="emailF">E-mail address
</label>
<input
id="emailF"
type="email"
placeholder="you@example.com"
required />
<label
for="phoneF">Phone number
</label>
<input
id="phoneF"
type="tel" />
label:has(+ :required) {font-weight: bold;}
label:has(+ :required:invalid) {color: red;}
a:has(> img) {
text-decoration: none;
}
<a href="…">
<img src="…" alt="Home" />
</a>
<a href="…">
Download <img src="…" alt="" />
</a>
a:has(b)
Performance
Power
Eric Meyer
Developer Advocate, Igalia
Co-founder, An Event Apart
CSS :has()
Unlimited Power
Ad

More Related Content

Similar to CSS :has() Unlimited Power (20)

Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & Efficiency
Denise Jacobs
 
Festival newsletter
Festival newsletterFestival newsletter
Festival newsletter
Ketan Kamble
 
Modular HTML & CSS
Modular HTML & CSSModular HTML & CSS
Modular HTML & CSS
Shay Howe
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
Denise Jacobs
 
Introduction to CSS Grid
Introduction to CSS GridIntroduction to CSS Grid
Introduction to CSS Grid
Kara Luton
 
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
Joseph Chiang
 
Index css history
Index css historyIndex css history
Index css history
Gaejang Guk
 
SMACSS Workshop
SMACSS WorkshopSMACSS Workshop
SMACSS Workshop
Tim Hettler
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
Rachel Andrew
 
Templates81 special document
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen
 
Templates81 special document
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen
 
Modular HTML & CSS Workshop
Modular HTML & CSS WorkshopModular HTML & CSS Workshop
Modular HTML & CSS Workshop
Shay Howe
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
Chris Alfano
 
WordCamp Bristol 2019 - WordPress custom theme building
WordCamp Bristol 2019 - WordPress custom theme buildingWordCamp Bristol 2019 - WordPress custom theme building
WordCamp Bristol 2019 - WordPress custom theme building
Jonny Allbut
 
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
Scrum Breakfast Vietnam
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + Fireworks
Nathan Smith
 
BEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend devBEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend dev
Varya Stepanova
 
[edUi] HTML5 Workshop
[edUi] HTML5 Workshop[edUi] HTML5 Workshop
[edUi] HTML5 Workshop
Christopher Schmitt
 
How to Prepare a WordPress Theme for Public Release
How to Prepare a WordPress Theme for Public ReleaseHow to Prepare a WordPress Theme for Public Release
How to Prepare a WordPress Theme for Public Release
David Yeiser
 
[heweb11] HTML5 Makeover
[heweb11] HTML5 Makeover[heweb11] HTML5 Makeover
[heweb11] HTML5 Makeover
Christopher Schmitt
 
Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & Efficiency
Denise Jacobs
 
Festival newsletter
Festival newsletterFestival newsletter
Festival newsletter
Ketan Kamble
 
Modular HTML & CSS
Modular HTML & CSSModular HTML & CSS
Modular HTML & CSS
Shay Howe
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
Denise Jacobs
 
Introduction to CSS Grid
Introduction to CSS GridIntroduction to CSS Grid
Introduction to CSS Grid
Kara Luton
 
建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版建立前端開發團隊 - 2011 中華電信訓練所版
建立前端開發團隊 - 2011 中華電信訓練所版
Joseph Chiang
 
Index css history
Index css historyIndex css history
Index css history
Gaejang Guk
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
Rachel Andrew
 
Templates81 special document
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen
 
Templates81 special document
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen
 
Modular HTML & CSS Workshop
Modular HTML & CSS WorkshopModular HTML & CSS Workshop
Modular HTML & CSS Workshop
Shay Howe
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
Chris Alfano
 
WordCamp Bristol 2019 - WordPress custom theme building
WordCamp Bristol 2019 - WordPress custom theme buildingWordCamp Bristol 2019 - WordPress custom theme building
WordCamp Bristol 2019 - WordPress custom theme building
Jonny Allbut
 
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
Scrum Breakfast Vietnam
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + Fireworks
Nathan Smith
 
BEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend devBEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend dev
Varya Stepanova
 
How to Prepare a WordPress Theme for Public Release
How to Prepare a WordPress Theme for Public ReleaseHow to Prepare a WordPress Theme for Public Release
How to Prepare a WordPress Theme for Public Release
David Yeiser
 

More from Igalia (20)

Don't let your motivation go, save time with kworkflow
Don't let your motivation go, save time with kworkflowDon't let your motivation go, save time with kworkflow
Don't let your motivation go, save time with kworkflow
Igalia
 
Solving the world’s (localization) problems
Solving the world’s (localization) problemsSolving the world’s (localization) problems
Solving the world’s (localization) problems
Igalia
 
The Whippet Embeddable Garbage Collection Library
The Whippet Embeddable Garbage Collection LibraryThe Whippet Embeddable Garbage Collection Library
The Whippet Embeddable Garbage Collection Library
Igalia
 
Nobody asks "How is JavaScript?"
Nobody asks         "How is JavaScript?"Nobody asks         "How is JavaScript?"
Nobody asks "How is JavaScript?"
Igalia
 
Getting more juice out from your Raspberry Pi GPU
Getting more juice out from your Raspberry Pi GPUGetting more juice out from your Raspberry Pi GPU
Getting more juice out from your Raspberry Pi GPU
Igalia
 
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status updateWebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
Igalia
 
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Demystifying Temporal: A Deep Dive into JavaScript New Temporal APIDemystifying Temporal: A Deep Dive into JavaScript New Temporal API
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Igalia
 
Device-Generated Commands in Vulkan
Device-Generated Commands      in VulkanDevice-Generated Commands      in Vulkan
Device-Generated Commands in Vulkan
Igalia
 
Current state of Lavapipe: Mesa's software renderer for Vulkan
Current state of Lavapipe: Mesa's software renderer for VulkanCurrent state of Lavapipe: Mesa's software renderer for Vulkan
Current state of Lavapipe: Mesa's software renderer for Vulkan
Igalia
 
Vulkan Video is Open: Application showcase
Vulkan Video is Open: Application showcaseVulkan Video is Open: Application showcase
Vulkan Video is Open: Application showcase
Igalia
 
Scheme on WebAssembly: It is happening!
Scheme on WebAssembly:  It is happening!Scheme on WebAssembly:  It is happening!
Scheme on WebAssembly: It is happening!
Igalia
 
EBC - A new backend compiler for etnaviv
EBC - A new backend compiler for etnavivEBC - A new backend compiler for etnaviv
EBC - A new backend compiler for etnaviv
Igalia
 
RISC-V LLVM State of the Union
RISC-V LLVM           State of the UnionRISC-V LLVM           State of the Union
RISC-V LLVM State of the Union
Igalia
 
Device-Generated Commands in Vulkan
Device-Generated Commands      in VulkanDevice-Generated Commands      in Vulkan
Device-Generated Commands in Vulkan
Igalia
 
Downstream challenges
Downstream                    challengesDownstream                    challenges
Downstream challenges
Igalia
 
Using Chrome for Building Apps
Using Chrome           for Building AppsUsing Chrome           for Building Apps
Using Chrome for Building Apps
Igalia
 
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdfSustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Igalia
 
New and upcoming features in the Node.js module loaders
New and upcoming features in the Node.js module loadersNew and upcoming features in the Node.js module loaders
New and upcoming features in the Node.js module loaders
Igalia
 
WebDriver BiDi in WebKit
WebDriver BiDi in WebKitWebDriver BiDi in WebKit
WebDriver BiDi in WebKit
Igalia
 
Skia integration in WebKit Linux ports
Skia integration in WebKit Linux portsSkia integration in WebKit Linux ports
Skia integration in WebKit Linux ports
Igalia
 
Don't let your motivation go, save time with kworkflow
Don't let your motivation go, save time with kworkflowDon't let your motivation go, save time with kworkflow
Don't let your motivation go, save time with kworkflow
Igalia
 
Solving the world’s (localization) problems
Solving the world’s (localization) problemsSolving the world’s (localization) problems
Solving the world’s (localization) problems
Igalia
 
The Whippet Embeddable Garbage Collection Library
The Whippet Embeddable Garbage Collection LibraryThe Whippet Embeddable Garbage Collection Library
The Whippet Embeddable Garbage Collection Library
Igalia
 
Nobody asks "How is JavaScript?"
Nobody asks         "How is JavaScript?"Nobody asks         "How is JavaScript?"
Nobody asks "How is JavaScript?"
Igalia
 
Getting more juice out from your Raspberry Pi GPU
Getting more juice out from your Raspberry Pi GPUGetting more juice out from your Raspberry Pi GPU
Getting more juice out from your Raspberry Pi GPU
Igalia
 
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status updateWebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
Igalia
 
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Demystifying Temporal: A Deep Dive into JavaScript New Temporal APIDemystifying Temporal: A Deep Dive into JavaScript New Temporal API
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
Igalia
 
Device-Generated Commands in Vulkan
Device-Generated Commands      in VulkanDevice-Generated Commands      in Vulkan
Device-Generated Commands in Vulkan
Igalia
 
Current state of Lavapipe: Mesa's software renderer for Vulkan
Current state of Lavapipe: Mesa's software renderer for VulkanCurrent state of Lavapipe: Mesa's software renderer for Vulkan
Current state of Lavapipe: Mesa's software renderer for Vulkan
Igalia
 
Vulkan Video is Open: Application showcase
Vulkan Video is Open: Application showcaseVulkan Video is Open: Application showcase
Vulkan Video is Open: Application showcase
Igalia
 
Scheme on WebAssembly: It is happening!
Scheme on WebAssembly:  It is happening!Scheme on WebAssembly:  It is happening!
Scheme on WebAssembly: It is happening!
Igalia
 
EBC - A new backend compiler for etnaviv
EBC - A new backend compiler for etnavivEBC - A new backend compiler for etnaviv
EBC - A new backend compiler for etnaviv
Igalia
 
RISC-V LLVM State of the Union
RISC-V LLVM           State of the UnionRISC-V LLVM           State of the Union
RISC-V LLVM State of the Union
Igalia
 
Device-Generated Commands in Vulkan
Device-Generated Commands      in VulkanDevice-Generated Commands      in Vulkan
Device-Generated Commands in Vulkan
Igalia
 
Downstream challenges
Downstream                    challengesDownstream                    challenges
Downstream challenges
Igalia
 
Using Chrome for Building Apps
Using Chrome           for Building AppsUsing Chrome           for Building Apps
Using Chrome for Building Apps
Igalia
 
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdfSustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Sustainable Futures - Funding the Web Ecosystem v2 - fonts.pdf
Igalia
 
New and upcoming features in the Node.js module loaders
New and upcoming features in the Node.js module loadersNew and upcoming features in the Node.js module loaders
New and upcoming features in the Node.js module loaders
Igalia
 
WebDriver BiDi in WebKit
WebDriver BiDi in WebKitWebDriver BiDi in WebKit
WebDriver BiDi in WebKit
Igalia
 
Skia integration in WebKit Linux ports
Skia integration in WebKit Linux portsSkia integration in WebKit Linux ports
Skia integration in WebKit Linux ports
Igalia
 
Ad

Recently uploaded (20)

How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Ad

CSS :has() Unlimited Power