- From: Oliver Williams via GitHub <sysbot+gh@w3.org>
- Date: Tue, 22 Jan 2019 21:43:31 +0000
- To: public-css-archive@w3.org
o-t-w has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-scoping] Please bring back scoped styles ==
The scoped style tag HTML attribute works really well with popular frameworks and is far simpler to use than shadow DOM.
e.g. in React:
```
import React from 'react';
const Profilecard = (props) => {
const styles = `
div {background-color: ${props.bgColor}}
h2 { color: white; }
img {
border-radius: 50%;
height: 80px;
width: 80px;
}`
return (
<div className="card">
<style scoped>{styles}</style>
<h2>{props.name}</h2>
<img src="man3.jpg" alt=""/>
</div>
);
};
export default Profilecard;
```
Shadow DOM offer more encapsulation than scoped styles, but this level of encapsulation is not often needed, and even sometimes complained about by developers.
e.g. [Chris Coyier](https://css-tricks.com/regarding-css-global-scope/):
> Personally, I wish it was possible to make the shadow DOM one-way permeable: styles can leak in, but styles defined inside can't leak out.
It is important to note that both Vue js and Svelte have replicated this API - it is clearly an API that is both easy to work with and gives the _right level_ of encapsulation (unlike shadow DOM, which is useful for more niche cases).
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3547 using your GitHub account
Received on Tuesday, 22 January 2019 21:44:29 UTC