Comments (7)
We currently say it is "disruptive in class":
Shadow DOM
Doesn't actually explain the platform's shadow DOM due to lack of encapsulation and inability to negotiate layout between the component and its surroundings -- similar issue to <iframe seamless>
and cross-origin content.
Conflates selector matching, CSS inheritance, and event retargeting isolation boundaries into a single primitive
Need e.g. custom pseudo-elements as a way of exposing standardized styling hooks, both for developer-created controls and for standard controls like <details>
or <input type="date">
.
So in paragraph 1:
- lack of encapsulation - the spec now has open and closed versions of shadow doms. Closed Shadow DOMs are acknowledged to not be fully isolated, as type-system hijacking can lead to exposure into the closed tree. It's a step in the right direction (like having closures in JavaScript). Fully isolated components are a v2 conceptual idea (see proposals here and here).
- inability to negotiate layout - I'm not totally clear on what this implies. Some guesses: the component can't discover it's size, or impact its size with respect to it's host; the component doesn't have the right styling hooks...
Paragraph 2:
- conflation - I think to a degree this is still a problem. The group has discussed breaking out the event retargeting solution into a separate configurable primitive. Inheritance is being discussed (see Issue 314. Selector matching has been a problem in the past, though removal of the uber-powerful
>>>
combinator has been well-received. Now you have very limited access by default, and the expectation of using CSS custom properties (variables) to style the component has been successfully applied by the likes of Angular and Polymer frameworks.
Paragraph 3:
- custom pseudo-elements - Tab is arguing for a new CSS concept
@apply
to largely handle this use case, but not all are convinced it will fit every need. I think it helps a lot and gives a lot of flexibility for styling. - closing the gap for native controls - Yep, still something that should be explained. I suppose implementations could expose their configurability as custom properties, but in the past they've only done so with custom pseudos. So there's a gap there.
In addition to the above, if a generic pseudo element is exposed, component authors will need a way of whitelisting or blacklisting the properties they want to apply, in order to prevent component users from potentially destabilizing their component with weird display: table
or similar hijacks.
from extensible-web-report-card.
@travisleithead important points in the above that I was saying to @torgo seem like worth noting as "shows improvement" or something (however you want to track movement given that we have this report card metaphor)
p1 - bullet 1. there's much improvement in terms of encapsulation. bullet 2. houdini may solve well enough
p2 - the move to named slots instead of selector-based pull in through content and removal of piercing combinators/settling on how specificity works all seem like significant improvements -- interestingly I think some of them only could have been figured out this well by failed experimentation because bits of it that seem kind of obvious in retrospect actually seemed kind of appropriate at the time until we had some time/users to experiment.
p3. If configurability through custom properties works out (I think it will, it's one of the reasons we worked on custom properties that way but I reserve the right still be to be wrong once we try it) it could be used to explain some things previously unexplainable or problematic (like potentially properties of a <select>
which obviously have important different OS displays/interaction modes). That much seems like improvement too.
from extensible-web-report-card.
Discussed in TAG call 21 October. We tentatively agreed to move shadow dom into "plays well with others."
from extensible-web-report-card.
woot \o/
from extensible-web-report-card.
possible caveat that we encourage further development of the API
from extensible-web-report-card.
suggest Travis draft some replacement text as a pull request
from extensible-web-report-card.
timed out!
The TAG has decided to no longer maintain the extensible web report card. Instead of addressing these issues in this document, major issues should be re-raised on the http://github.com/w3ctag/design-reviews repo; other feedback may be added to the individual (original) specs if needed.
Apologies for the delay. Thanks for flying TAG.
from extensible-web-report-card.
Related Issues (20)
- Make it clear who the audience is
- make it clear what it is - that it's a review of existing specs HOT 4
- mention storage HOT 2
- We need broader community involvement in this document HOT 3
- Need a freshness date on the document. HOT 2
- Add some idea of trend - what the trend has been HOT 3
- Add WebASM HOT 1
- Add permissions API HOT 1
- Add webappsec specs into this... HOT 1
- More detail on things like CSP HOT 2
- Needs a design refresh HOT 1
- Private state with Weakmaps? HOT 2
- focus styling is disruptive in class. HOT 1
- In General, how can we show positive movement? HOT 2
- Better contribution explanation HOT 1
- Object.observe mentions? HOT 1
- SRI? HOT 1
- Time to transition off this? HOT 1
- Show that this is no longer updated HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extensible-web-report-card.