spectrum-web-components
wpt
spectrum-web-components | wpt | |
---|---|---|
15 | 20 | |
1,180 | 4,632 | |
2.3% | 1.0% | |
9.8 | 10.0 | |
3 days ago | 3 days ago | |
TypeScript | HTML | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spectrum-web-components
-
Making Web Component properties behave closer to the platform
For example, all the following design systems can be used without tooling (some of them provide ready-to-use bundles, others can be used through import maps): Google's Material Web, Microsoft's Fluent UI, IBM's Carbon, Adobe's Spectrum, Nordhealth's Nord, Shoelace, etc.
- I hate CSS: how can I build UIs?
-
Painless Web Components: Naming is (not too) Hard
sp- (Spectrum components from Adobe6)
-
Cypress component tests for Lit Elements (web components)
Spectrum web components by Adobe is really mature design system that makes a lot of usage of Lit Elements. Their testing setup uses the suggested web test runner. Lit's documentation on testing suggests using that library.
- JetBrains Ring UI
-
Exploring The F# Frontend Landscape
In Fable.Lit rather than building an F# DSL (we tried) we use a string-based alternative which is closed to the HTML you know and love, this also helps a lot when you have to consume web components like those from shoelace.style, fast.design, adobe spectrum components, and more, this will be a very important and big point over the next few years now that web components have taken off finally with major companies like Microsoft, Salesforce, Github, Adobe and more are using them.
-
Ask HN: Anyone know of any largish applications built with WebComponents?
Oh hey, that me! We at Adobe are investing heavily in web editors built with web component technology. Not just Photoshop, but Illustrator, Lightroom, and a number of brand new or in development applications across the company, as well.
We’re also leveraging web components to support interoperability of our design system across teams who still choose to use frameworks or have been using them all this time. In this way we ship https://opensource.adobe.com/spectrum-web-components/ and teams like fonts.adobe.com that have a long standing Angular app, or edex.adobe.com with their long standing Vue app or various recent acquisitions with their own technical decisions, can all consume Spectrum design without shipping their own implementation or rewriting their app to another stack.
The ease of building at depth scale for large applications and at breadth scale for applications no matter their architectural decisions has been a huge win for Adobe and our goals to drive consistency and quality across the company. The speed and scope at which we’ve been able to do so just wouldn’t be possible without web components.
-
Testing Accessibility with Shadow Roots
Recently, I had the opportunity to discuss the difficulties, learnings, and victories or developing Spectrum Web Components together with fellow custom element developers from teams at IBM, ING, SAP, and Vaadin. If you missed the live stream, check out the recording! Fellow panelist, Ari Gilmore, made a great point that there is a lack of reading material for developers like ourselves to draw from when looking to build solid accessibility practices into the web components space. With that in mind, I thought it would be a good idea to take some of the abstract concepts we discussed in the panel and share some actual examples of working and testable code. Hopefully, this can better support the next developer(s) looking to bring a high-quality, accessible, design system to life for their team via web components.
-
[AskJS] Javascript methodology/library/pattern for plain HTML Design System components
Their repos are public: - https://github.com/adobe/spectrum-web-components - https://github.com/adobe/react-spectrum
-
Who doesn't love some `<slot/>`s?
It does seem like I enjoy a good . I mean, look, I wrote about them all the way back in 2018 in ing in Some Tips, and then in 2020, I spoke about Stacked Slots at a virtual Web Components SF meetup (see the associated slides), before sharing a proof of concept for Light DOM as Model. And, as if that weren't enough, here we are again, and I'm writing to you, friend, about s. Today, we're going to get out of the theoretical and into the practical as we start on the path towards actual usage of Stacked Slots that I'm excited to bring to life as part of Adobe's Spectrum Web Components to support the delivery of Spectrum design's Help Text pattern.
wpt
-
Show HN: Dropflow, a CSS layout engine for node or <canvas>
To reply mostly with my WPT Core Team hat off, mostly summarising the history of how we've ended up here:
A build script used by significant swaths of the test suite is almost certainly out; it turns out people like being able to edit the tests they're actually running. (We _do_ have some build scripts — but they're mostly just mechanically generating lots of similar tests.
A lot of the goal of WPT (and the HTML Test Suite, which it effectively grew out of) has been to have a test suite that browsers are actually running in CI: historically, most standards test suites haven't been particularly amenable to automation (often a lot of, or exclusively, manual tests, little concern for flakiness, etc.), and with a lot of policy choices that effectively made browser vendors choose to write tests for themselves and not add new tests to the shared test suite: if you make it notably harder to write tests for the shared test suite, most engineers at a given vendor are simply going to not bother.
As such, there's a lot of hesitancy towards anything that regresses the developer experience for browser engineers (and realistically, browser engineers, by virtue of sheer number, are the ones who are writing the most tests for web technologies).
That said, there are probably ways we could make things better: a decent number of tests for things like Grid use check-layout-th.js (e.g., https://github.com/web-platform-tests/wpt/blob/f763dd7d7b7ed...).
One could definitely imagine a world in which these are a test type of their own, and the test logic (in check-layout-th.js) can be rewritten in a custom test harness to do the same comparisons in an implementation without any JS support.
The other challenge for things like Taffy only targeting flexbox and grid is we're unlikely to add any easy way to distinguish tests which are testing interactions with other layout features (`position: absolute` comes to mind!).
My suggestion would probably be to start with an issue at https://github.com/web-platform-tests/rfcs/issues, describing the rough constraints, and potentially with one or two possible solutions.
-
The Ladybird Browser Project
It also helps that there are tests
https://web-platform-tests.org/
-
Making Web Component properties behave closer to the platform
You can see how Mozilla tests the compliance of their built-in elements in the Gecko repository (the ok and is assertions are defined in their SimpleTest testing framework). And here's the Web Platform Tests' reflection harness, with data for each built-in element in sibling files, that almost every browser pass.
-
We're building a browser when it's supposed to be impossible
We have our own test suite (orginally derived from the test suite of Meta's Yoga layout library [0]) which consists of text fixtures that are small HTML snippets [1] and a test harness [2] that turns those into runnable tests, utilising headless chrome both to parse the HTML and to generate the assertions based on the layout that Chrome renders (so we are effectively comparing our implementation against Chrome). We currently have 686 generated tests (covering both Flexbox and CSS Grid).
We would like to utilise the Web Platform Test suite [3], however these are not in a standard format and many of the tests require JavaScript so we are not currently able to do that.
[0]: https://github.com/facebook/yoga
[1]: https://github.com/DioxusLabs/taffy/tree/main/test_fixtures
[2]: https://github.com/DioxusLabs/taffy/tree/main/scripts/gentes...
[3]: https://github.com/web-platform-tests/wpt/tree/master/css/cs...
-
What new CSS and JavaScript features can we expect soon? Or is it all unexpected?
The metrics are based on the passing rate for the web-platform-tests (WPT) project, the automated test suite for web standards. The completion rate is categorised as either stable, or experimental. There is no definition of what experimental entails, presumably features that are behind experimental flags are included. Stable is better to go off in any case.
-
[AskJS] MSE quality resources
Depends on what you are trying to achieve. You can run WPT MSE https://github.com/web-platform-tests/wpt/tree/master/media-source and WebCodecs https://github.com/web-platform-tests/wpt/tree/master/webcodecs tests manually to learn by doing.
-
Rookie question: How do I know I am making progress with my JS learning?
Manually running the tests in Web Platform Tests should keep you busy.
-
Browsers Running Old JS Engines
Not sure what you mean? I referred to Web API's, which generally means Web platform API's; that is Web platform API's tested by Web Platform Tests https://github.com/web-platform-tests/wpt.
-
State of CSS
If you want CSS to be the same across browsers then help implement CSS tests and file bugs
https://www.w3.org/Style/CSS/Test/Overview.en.html
https://web-platform-tests.org/
better specs are great, but tests will actually find the edge cases and lead to more convergence.
-
How do I go about learning advanced DOM manipulation with vanilla JS?
Run all these tests locally https://github.com/web-platform-tests/wpt/tree/master/dom.
What are some alternatives?
shoelace-css - A collection of professionally designed, every day UI components built on Web standards. SHOELACE IS BECOMING WEB AWESOME 👇👇👇
browsh - A fully-modern text-based browser, rendering to TTY and browsers
fast - The adaptive interface system for modern web experiences.
firefox-ios - Firefox for iOS
lwc - ⚡️ LWC - A Blazing Fast, Enterprise-Grade Web Components Foundation
linkedom - A triple-linked lists based DOM implementation.
wired-elements - Collection of custom elements that appear hand drawn. Great for wireframes or a fun look.
firefox-user.js-tool - Interactive view, compare, and more for Firefox user.js (eg arkenfox/user.js) + about:config functions
material-web - Material Design Web Components
caniuse - Raw browser/feature support data from caniuse.com
vaadin - An evolving set of open source web components for building mobile and desktop web applications in modern browsers.
ioccc - My IOCCC submissions and practice.