# Web Components

Web Components is a suite of web technologies for creating reusable custom elements with encapsulated functionality for web applications.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Bringing the real world to your AI application using Firebase AI Logic

DevFeed: [Bringing the real world to your AI application using Firebase AI Logic](<https://devfeed.tech/articles/bringing-the-real-world-to-your-ai-application-using-firebase-ai-logic-16663.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/05/ai-logic-maps-grounding>)

Author: Ankita Saxena; Ken Nevarez

Published: 2026-05-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [Generative AI](<https://devfeed.tech/topics/generative-ai.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [API](<https://devfeed.tech/topics/api.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-logic](<https://devfeed.tech/tags/ai-logic.md>), [api](<https://devfeed.tech/tags/api.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-ai-logic](<https://devfeed.tech/tags/firebase-ai-logic.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [hallucinations](<https://devfeed.tech/tags/hallucinations.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Firebase introduces Grounding with Google Maps in the Firebase AI Logic SDK to help mobile and web applications produce location-aware responses based on real-world geospatial data. The article explains configuring the model, plotting places with Google Maps Web Components, and using grounding metadata for citations and coordinates.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## How CodeTV built a video streaming platform with Astro and Mux

DevFeed: [How CodeTV built a video streaming platform with Astro and Mux](<https://devfeed.tech/articles/unleashing-creativity-3396.md>)

Original publisher: [Read original article](<https://astro.build/case-studies/codetv/>)

Published: 2025-09-09T00:00:00Z

Content type: article

Language: en

Sources: [The Astro Blog](<https://devfeed.tech/sources/the-astro-blog.md>)

Topics: [Astro](<https://devfeed.tech/topics/astro.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Website](<https://devfeed.tech/topics/website.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [data-architecture](<https://devfeed.tech/topics/data-architecture.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [workflow automation](<https://devfeed.tech/topics/workflow-automation.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [astro](<https://devfeed.tech/tags/astro.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [automation](<https://devfeed.tech/tags/automation.md>), [cms](<https://devfeed.tech/tags/cms.md>), [developers](<https://devfeed.tech/tags/developers.md>), [performance](<https://devfeed.tech/tags/performance.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This case study explains how CodeTV used Astro and Mux to build a subscription-based video streaming platform for developer programming. It describes the platform's requirements, including content management, authentication, e-commerce, asset management, search, workflow automation, and adaptive-bitrate video streaming.

### Source excerpt

How CodeTV built a video streaming platform with Astro and Mux

## Launching MDN's new front end

DevFeed: [Launching MDN's new front end](<https://devfeed.tech/articles/launching-mdn-s-new-front-end-4086.md>)

Original publisher: [Read original article](<https://developer.mozilla.org/en-US/blog/launching-new-front-end/>)

Author: mdn-team

Published: 2025-08-19T00:00:00Z

Content type: article

Language: en

Sources: [MDN Blog](<https://devfeed.tech/sources/mdn-blog.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Web APIs](<https://devfeed.tech/topics/web-apis.md>), [HTML](<https://devfeed.tech/topics/html.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [developers](<https://devfeed.tech/tags/developers.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [github](<https://devfeed.tech/tags/github.md>), [library](<https://devfeed.tech/tags/library.md>), [ui](<https://devfeed.tech/tags/ui.md>), [usability](<https://devfeed.tech/tags/usability.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apis](<https://devfeed.tech/tags/web-apis.md>)

### AI overview

MDN has launched a rebuilt front end with a cleaner interface, improved usability, and support for modern CSS and web components. The update also improves typography, code rendering, search, icons, and navigation.

### Source excerpt

MDN is getting a facelift 🎉. Discover what's changed, what's improved, and how navigating the site just got smoother.

## Using Rails Views, Web Components, React, and Rails ViewComponents Together

DevFeed: [Using Rails Views, Web Components, React, and Rails ViewComponents Together](<https://devfeed.tech/articles/rails-views-web-components-react-why-make-a-choice-33528.md>)

Original publisher: [Read original article](<https://www.aha.io/engineering/articles/rails-views-web-components-react>)

Published: 2025-03-03T00:00:00Z

Content type: opinion

Language: en

Sources: [Aha! Engineering Blog](<https://devfeed.tech/sources/aha-engineering-blog.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [React](<https://devfeed.tech/topics/react.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [vendor lock-in](<https://devfeed.tech/topics/vendor-lock-in.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [rails](<https://devfeed.tech/tags/rails.md>), [react](<https://devfeed.tech/tags/react.md>), [server-side-rendering](<https://devfeed.tech/tags/server-side-rendering.md>), [vendor-lock-in](<https://devfeed.tech/tags/vendor-lock-in.md>)

### AI overview

The article argues that Rails views, web components, React, and Rails ViewComponents are not mutually exclusive. It explains that each approach addresses different problems and can be combined thoughtfully, including server rendering for simpler data-display features and web components for avoiding vendor lock-in.

### Source excerpt

How many times have you heard or read statements like these in tech discussions?"Everything needs to be a single-page app these days. Server-rendered templates are holding you back.""Web components are the future. Why tie yourself to any framework?"

## Bringing Signals to Lit Labs

DevFeed: [Bringing Signals to Lit Labs](<https://devfeed.tech/articles/bringing-signals-to-lit-labs-3523.md>)

Original publisher: [Read original article](<https://lit.dev/blog/2024-10-08-signals/>)

Author: Lit Team

Published: 2024-10-08T00:00:00Z

Content type: release

Language: en

Sources: [Lit Blog](<https://devfeed.tech/sources/lit-blog.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [polyfill](<https://devfeed.tech/topics/polyfill.md>)

Tags: [compatibility](<https://devfeed.tech/tags/compatibility.md>), [components](<https://devfeed.tech/tags/components.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [polyfill](<https://devfeed.tech/tags/polyfill.md>), [reactive](<https://devfeed.tech/tags/reactive.md>)

### AI overview

Lit Labs announced @lit-labs/signals, a package that integrates the polyfill for the TC39 Signals proposal with Lit. It enables shared observable signals for reactive state management, automatic component updates, targeted re-renders, and interoperability across libraries and frameworks.

### Source excerpt

The new Signals package integrates the TC39 Signals proposal with Lit

## 🔥 NextConf / Next 14, Lit 3.0, New gsap website

DevFeed: [🔥 NextConf / Next 14, Lit 3.0, New gsap website](<https://devfeed.tech/articles/nextconf-next-14-lit-3-0-new-gsap-website-34907.md>)

Original publisher: [Read original article](<https://frontendfocus.substack.com/p/nextconf-next-14-lit-3-0-new-gsap-website>)

Author: Mads Brodt

Published: 2023-11-01T16:00:00Z

Content type: article

Language: en

Sources: [Front-End Focus](<https://devfeed.tech/sources/front-end-focus.md>)

Topics: [Next.js](<https://devfeed.tech/topics/next-js.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [React](<https://devfeed.tech/topics/react.md>), [GSAP animation](<https://devfeed.tech/topics/gsap-animation.md>)

Tags: [gsap](<https://devfeed.tech/tags/gsap.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [next](<https://devfeed.tech/tags/next.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

This newsletter roundup discusses NextConf and Next 14, including stable Server Actions, Turbopack improvements, and a new learning course. It also covers the Lit 3.0 release and Web Components, then highlights a new GSAP website.

### Source excerpt

Hey there!

## Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more!

DevFeed: [Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more!](<https://devfeed.tech/articles/lit-launch-day-lit-3-0-labs-graduations-a-compiler-and-more-3522.md>)

Original publisher: [Read original article](<https://lit.dev/blog/2023-10-10-lit-3.0/>)

Author: Lit Team

Published: 2023-10-10T00:00:00Z

Content type: release

Language: en

Sources: [Lit Blog](<https://devfeed.tech/sources/lit-blog.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [launch](<https://devfeed.tech/tags/launch.md>), [release](<https://devfeed.tech/tags/release.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The Lit team announces the final release of Lit 3.0, along with Lit Labs graduations and other related releases. Lit 3.0 drops IE11 support, publishes npm modules as ES2021, removes APIs deprecated in Lit 2.0, moves SSR hydration support modules, and unifies decorator behavior.

### Source excerpt

We're launching the next major version of Lit

## Announcing Lit 3.0 Pre-releases

DevFeed: [Announcing Lit 3.0 Pre-releases](<https://devfeed.tech/articles/announcing-lit-3-0-pre-releases-3519.md>)

Original publisher: [Read original article](<https://lit.dev/blog/2023-05-15-lit-3.0-prerelease/>)

Author: Justin Fagnani

Published: 2023-05-15T00:00:00Z

Content type: release

Language: en

Sources: [Lit Blog](<https://devfeed.tech/sources/lit-blog.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web](<https://devfeed.tech/topics/web.md>), [npm](<https://devfeed.tech/topics/npm.md>), [toolchains](<https://devfeed.tech/topics/toolchains.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [npm](<https://devfeed.tech/tags/npm.md>), [packages](<https://devfeed.tech/tags/packages.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

The Lit team announces the first Lit 3.0 pre-releases. This major version introduces a small set of breaking changes focused on browser support, deprecated APIs, package publishing, and SSR hydration modules, while adding no new features. Lit 2.x users without deprecation warnings should generally have a seamless upgrade, although some may need newer tooling because Lit's npm modules are now published as ES2021.

### Source excerpt

Get an early look at the upcoming Lit 3.0 release.

## How Pinterest's design systems team measures adoption

DevFeed: [How Pinterest's design systems team measures adoption](<https://devfeed.tech/articles/how-pinterest-s-design-systems-team-measures-adoption-9777.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/how-pinterests-design-systems-team-measures-adoption/>)

Author: Ravi Lingineni

Published: 2023-02-03T00:00:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Product Management](<https://devfeed.tech/topics/product-management.md>)

Tags: [component](<https://devfeed.tech/tags/component.md>), [design-systems](<https://devfeed.tech/tags/design-systems.md>), [figma](<https://devfeed.tech/tags/figma.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Pinterest's Gestalt design systems team created FigStats using Figma's REST API to measure design-system adoption and visualize component usage. The article explains why adoption metrics help teams assess impact, identify usage patterns, and understand whether components are reaching products across Pinterest.

### Source excerpt

The Gestalt team tells us how they used Figma's REST API to create FigStats, a dashboard for visualizing component usage.

## CSS blocky people making waves

DevFeed: [CSS blocky people making waves](<https://devfeed.tech/articles/css-blocky-people-making-waves-37253.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/css-blocky-people-making-waves/>)

Author: Stanko

Published: 2022-11-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [animate](<https://devfeed.tech/tags/animate.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [element](<https://devfeed.tech/tags/element.md>), [html](<https://devfeed.tech/tags/html.md>)

### AI overview

A tutorial on creating blocky people performing a stadium wave using only CSS. It explains how to build 3D boxes from HTML elements and CSS, then use Web Components templates to reduce the repeated HTML needed for each person.

### Source excerpt

It all started with the code challenge in our office. The weekly theme was waves, and I tried to think outside of the box. After dropping a few ideas, I remembered the waves people do on stadiumsAccording to Wikipedia these are known as Mexican or stadium waves. So I made waves using CSS only (code is available on CodePen): I started without a real idea on how to do it. Obviously, I needed to create some people and animate them. 3D people would be nice, but as this was a weekly code challenge, I had to keep it simple. Blocky people, similar to characters in Minecraft, seemed like a good idea. Making them using Three.js felt too obvious, as I wanted something a little bit more unconventional and fun. CSS was definitely not made for something like this, which is why I wanted to try it out. Box # Blocky people are obviously made of blocks, so I needed to build some 3D boxes in CSS. There are many tutorials on creating a 3D box in CSS, so I'll try to keep this short. We'll need six elements to use as sides of the box. Each side needs to be appropriately sized, rotated and translated into its place. <div class="box"> <div class="front"></div> <div class="back"></div> <div class="right"></div> <div class="left"></div> <div class="bottom"></div> <div class="top"></div> </div> Show HTMLHide HTML Here you can see the three steps in creating a CSS box: Size the sides appropriately Translate them into position Rotate them The box wrapper element is outlined in red and sides are outlined in blue. If you want to play with it, I created a standalone CodePen. As a bonus, here is a three-sided prism as well. WebComponents # Each box consists of seven HTML elements (a wrapper and six sides). And each person ended up being built from twelve boxes and some additional wrappers. That means that each person requires a lot of HTML to be written. To simplify things, we can use WebComponents. Web components are a pretty powerful tool, but in this case, we will only use their template capabi

## I redesigned my site

DevFeed: [I redesigned my site](<https://devfeed.tech/articles/i-redesigned-my-site-35540.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/redesign/>)

Author: Monica Dinculescu

Published: 2021-06-24T00:00:00Z

Content type: opinion

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Website](<https://devfeed.tech/topics/website.md>), [generative art](<https://devfeed.tech/topics/generative-art.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [HTML](<https://devfeed.tech/topics/html.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [generative-art](<https://devfeed.tech/tags/generative-art.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [html](<https://devfeed.tech/tags/html.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>)

### AI overview

The author explains why they redesigned their personal website: they were publishing fewer blog posts, wanted to showcase generative art, and replaced an outdated emoji custom element with a simpler implementation. The site continues to use Jekyll through GitHub Pages without a build step or minification.

### Source excerpt

The last time I changed something big on my site was 3+ years ago. I was really into gradient rainbow text and IBM Plex Mono. It was a mild increment over whatever I had before, which was just a cleaned up and colourful version of Left from like 6 years prior. Anyway, what I'm saying is: this website had hella split ends. Here's the before and after: ↓ But also, why? I used to write a lot of blog posts, so my website was very blog focused. Originally the home page was just a listing of posts with some copy sprinkled in. As the pandemic hit, I started writing fewer and fewer posts, so having the one post of 2020 show up as a listing was ridiculous. On top of that, this year I started focusing a lot more on making generative art and I thought it was sad I wasn't showing that anywhere on the site! The beauty of generative art is that you can just keep generating it over and over again, and my site was a long white column of text. No more! git diff Ok so hear me out, this looks bad and that's because: it is bad. One cute thing my old site had was a <emoji-rain> custom element. You pressed it and got a rain of emoji. Brilliant. The problem is that I wrote that in like 2017, and used the well deceased v0 version of the web components spec. As a result, it had a gazillion dependencies (rip bower_components) and polyfills and ancient trash. 23906 lines of trash to be exact. Gooood riddance. The added 1580 lines are a bit of a bore: 100 of these are this post. another 300 is the HTML Ipsum from CSS tricks because I'm always scared I'm going to break a style on some ancient post. 300 lines of JavaScript for the header art that I don't minify because I'd like to be able to read this in the future to fix whatever mistakes past Monica made, and I don't have a build step set up. I'm still using the Jekyll that comes out of the box with GitHub pages and I am never looking back. the rest is actual code that I touched! There was some really horrifying markup on the project/talks/tem

## Lit 2.0: Meet Lit, all over again!

DevFeed: [Lit 2.0: Meet Lit, all over again!](<https://devfeed.tech/articles/lit-2-0-meet-lit-all-over-again-3512.md>)

Original publisher: [Read original article](<https://lit.dev/blog/2021-04-21-lit-2.0-meet-lit-all-over-again/>)

Author: Gray Norton

Published: 2021-04-21T00:00:00Z

Content type: release

Language: en

Sources: [Lit Blog](<https://devfeed.tech/sources/lit-blog.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [Eleventy](<https://devfeed.tech/topics/eleventy.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [html](<https://devfeed.tech/tags/html.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [performance](<https://devfeed.tech/tags/performance.md>), [popular](<https://devfeed.tech/tags/popular.md>), [release](<https://devfeed.tech/tags/release.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

The article announces the first release candidate of Lit 2.0, describing it as smaller, more capable, faster, and prepared for server-side rendering. It highlights reduced bundle sizes, new templating features, reactive controllers, rendering performance improvements, streaming SSR, client-side hydration, and compatibility with most existing Lit code.

### Source excerpt

New name, new site, new version: smaller, better, faster, and SSR-ready.

## What's new in Svelte: March 2021

DevFeed: [What's new in Svelte: March 2021](<https://devfeed.tech/articles/what-s-new-in-svelte-march-2021-3098.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/whats-new-in-svelte-march-2021>)

Author: Dani Sandoval

Published: 2021-03-01T00:00:00Z

Content type: news

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [ESLint](<https://devfeed.tech/topics/eslint.md>), [Prettier](<https://devfeed.tech/topics/prettier.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [CSS](<https://devfeed.tech/topics/css.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [tools](<https://devfeed.tech/tags/tools.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

### AI overview

A March 2021 update covering releases across the Svelte ecosystem, including Svelte core, language tools, plugins, preprocessors, and Sapper. It highlights improvements to SSR stores, actions, compiler namespaces and CSS scoping, TypeScript definitions, editor tooling, parsing, and related ecosystem packages.

### Source excerpt

Lots to cover this month with releases from across the Svelte ecosystem. Most importantly, Svelte Summit Spring 2021 has an Open Call for Speakers. The deadline is March 14 so if you have an idea for a talk, submit it now! Let's dive into the news 🐬 What's new in sveltejs/svelte SSR store handling has been reworked to subscribe and unsubscribe as in DOM mode. SSR stores should work much more consistently now (3.31.2, see custom stores and Server-side component API ) Multiple instances of the same action are now allowed on an element (3.32.0, example) The new foreign namespace should make it easier for alternative compile targets (like Svelte Native and SvelteGUI) by disabling certain HTML5-specific behaviour and checks (3.32.0, more info) Support for inline comment sourcemaps in code from preprocessors (3.32.0) Destructured defaults are now allowed to refer to other variables (3.33.0, example) Custom elements will now call onMount functions when connecting and clean up when disconnecting (3.33.0, checkout this PR for an interesting conversation on how folks are using Svelte with Web Components) A cssHash option has been added to the compiler options to control the classname used for CSS scoping (3.34.0, docs) Continued improvement to TypeScript definitions For a complete list of changes, including bug fixes and links to PRs, check out the CHANGELOG New from sveltejs/language-tools For language server clients that don't support didChangeWatchedFiles, a fallback file watcher will be used instead New highlighting rules for store accessors and element directives (like bind: and class:) HTML tags can now be renamed together Mustache tags parsing is now more robust and will provide better intellisense in more situations Haven't tried the language-tools yet? Check out Svelte Extension for VSCode or find a plugin for your favorite IDE! Other changes from sveltejs/* eslint-plugin-svelte3 now supports TypeScript as of 3.1.0 prettier-plugin-svelte released a number of minor ve

## What's new in Svelte: December 2020

DevFeed: [What's new in Svelte: December 2020](<https://devfeed.tech/articles/what-s-new-in-svelte-december-2020-3068.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/whats-new-in-svelte-december-2020>)

Author: Dani Sandoval

Published: 2020-12-01T00:00:00Z

Content type: release

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [npm](<https://devfeed.tech/tags/npm.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [svg](<https://devfeed.tech/tags/svg.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Svelte's December 2020 update covers new component features, lifecycle support, stronger TypeScript typing, transition fixes, and an npm export map. It also reports updates to rollup-plugin-svelte and Sapper, discusses SvelteKit, and showcases community projects built with Svelte.

### Source excerpt

It's the last "What's new in Svelte" of the year and there's lots to celebrate! This month's coverage includes updates from rollup-plugin-svelte, Sapper and SvelteKit and a bunch of showcases from the Svelte community! New features & impactful bug fixes $$props, $$restProps, and $$slots are all now supported in custom web components (3.29.5, Example) and slot components now support spread props: <slot {...foo} /> (3.30.0) A new hasContext lifecycle function makes it easy to check whether a key has been set in the context of a parent component (3.30.0 & 3.30.1, Docs) There is now a new SvelteComponentTyped class which makes it easier to add strongly typed components that extend base Svelte components. Component library and framework authors rejoice! An example: export class YourComponent extends SvelteComponentTyped<{aProp: boolean}, {click: MouseEvent}, {default: {aSlot: string}}> {} (3.31.0, RFC) Transitions within {:else} blocks should now complete successfully (3.29.5, Example) Svelte now includes an export map, which explicitly states which files can be imported from its npm package (3.29.5 with some fixes in 3.29.6, 3.29.7 and 3.30.0) rollup-plugin-svelte had a new 7.0.0 release. The biggest change is that the css option was removed. Users who were using that option should add another plugin like rollup-plugin-css-only as demonstrated in the template What's going on in Sapper? Lots of new TypeScript definition improvements to make editing Sapper apps even easier! CSS for dynamic imports also should now work in client.js files. (Unreleased) What's the deal with SvelteKit? We're glad you asked! If you didn't catch Rich's blog post from early last month, you can find it here! For all the features and bugfixes see the CHANGELOGs for Svelte and Sapper. Community ShowcaseApps & Sites narration.studio (Chrome Only) is an automatic in-browser audio recording & editing platform for voice over narration. Vippet is a video recording and editing tool for the browser. Patte

## Manipulating Screen Brightness on iOS and Android with Ionic React

DevFeed: [Manipulating Screen Brightness on iOS and Android with Ionic React](<https://devfeed.tech/articles/who-turned-on-the-lights-19126.md>)

Original publisher: [Read original article](<https://medium.com/rbi-tech/who-turned-on-the-lights-579c12fda6b?source=rss----904782439303---4>)

Author: Alejandra Del Valle

Published: 2020-08-20T19:06:20Z

Content type: tutorial

Language: en

Sources: [RBI Tech](<https://devfeed.tech/sources/rbi-tech.md>)

Topics: [Ionic](<https://devfeed.tech/topics/ionic.md>), [React](<https://devfeed.tech/topics/react.md>), [React Hooks](<https://devfeed.tech/topics/react-hooks.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [components](<https://devfeed.tech/tags/components.md>), [development](<https://devfeed.tech/tags/development.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ionic](<https://devfeed.tech/tags/ionic.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [react](<https://devfeed.tech/tags/react.md>), [react-hooks](<https://devfeed.tech/tags/react-hooks.md>)

### AI overview

This tutorial discusses controlling screen brightness on iOS and Android using Ionic React and Ionic React Hooks, including the package's Capacitor API wrappers and support for shared-codebase applications across mobile, desktop, and PWA targets.

### Source excerpt

Manipulating Screen Brightness on iOS and Android Devices Undoubtedly one of the most annoying side effects our phones have is its ability to change screen brightness dynamically. Whether it's a setting enabled on your device to automatically adjust brightness based on your environment, or an app you downloaded manipulates it based on its needs, sometimes it's just out of your control. Maybe you're an avid digital content creator and having your screen brightness at its max is to help your content be "pixel-perfect" and edited just the way you want. Maybe you're visiting a store and need to scan your screen to quickly and easily pay for something without fumbling through your wallet or purse. Or, maybe you're at a show or at home for a movie night and having your screen brightness as low as possible is important to one, not blind you, and two, not blind your neighbors. Whatever the backstory, it's important for the apps we use to consider how we use our phones in our day-to-day lives to create a seamless experience that users will enjoy. Let's look at how we can help with this experience in native development using Ionic React with Ionic React Hooks (recently renamed to React Hooks for Capacitor). Keep reading if you have basic experience with React and React Hooks. If not, I would suggest getting familiar with React and then hop back on over! Why Ionic React? Short answer? Ionic React is ultimately just... React. Music to my ears. Ionic React is also built using web components, making it compatible with a multitude of web libraries and supports iOS, Android, Desktop, and PWA (i.e. progressive web apps) all by using one shared codebase (I'm hearing music again...). Ionic React Hooks Re-introduced Ionic announced their launch of Ionic React Hooks back in December of 2019. It has recently been renamed and moved to the Capacitor Community org -- @capacitor-community/react-hooks. This package provides a collection of wrappers around Capacitor APIs along with a few other Ioni

## Eschewing Shadow DOM

DevFeed: [Eschewing Shadow DOM](<https://devfeed.tech/articles/eschewing-shadow-dom-31224.md>)

Original publisher: [Read original article](<https://every-layout.dev/blog/eschewing-shadow-dom/>)

Author: Heydon Pickering

Published: 2019-06-14T00:00:00Z

Content type: article

Language: en

Sources: [The Every Layout Blog](<https://devfeed.tech/sources/the-every-layout-blog.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [CSS](<https://devfeed.tech/topics/css.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>), [React](<https://devfeed.tech/topics/react.md>), [styled-components](<https://devfeed.tech/topics/styled-components.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [custom](<https://devfeed.tech/tags/custom.md>), [element](<https://devfeed.tech/tags/element.md>), [react](<https://devfeed.tech/tags/react.md>), [styled-components](<https://devfeed.tech/tags/styled-components.md>)

### AI overview

An examination of styling problems encountered with Shadow DOM, including inconsistent universal styles, limited inheritance, slot restrictions, and specificity issues. The author proposes an experimental alternative for web components that namespaces and embeds prop-derived instance styles in the document head.

### Source excerpt

Regarding styling, Shadow DOM is really good at one thing: preventing per-component styles from leaking out and affecting other parts of the document. Unfortunately, Shadow DOM also has a very opinionated way of preventing styles being applied from the parent document. Here is a roundup of the quirks and associated issues I've encountered: Shadow DOM styling issues Universal styles Some universal styles (using the * selector) are applied, and others are not. The color property appears to pierce shadow boundaries, but I've had no luck with box-sizing. Having to set box-sizing: border-box for each component is redundant. Inheritance Document styles are inherited in Shadow DOM. But inheritance only gets you so far, especially since not all properties are inheritable by default anyway. I've tried hacking things together with the explicit inherit keyword, but that seems to have no effect. Using the following is no good, because it forces every node to inherit every property from the parent. If <my-component> had display: flex applied, every one of the component's descendants would adopt it. * { all: inherit; /* yikes */ } Slot restrictions For performance reasons, the ::slotted() selector, which allows you to style the Light DOM content of your component from within your Shadow DOM, only lets you affect child elements and not descendants at depth. This is a bit restrictive. Worse, you cannot seem to use sibling combinators like + or ~. None of the following works: ::slotted(*) + * /* Nope */ ::slotted(* + *) /* Nope */ ::slotted(*) + ::slotted(*) /* Nope */ Specificity In making layout components, I like to take a progressive approach: style the component and its Light DOM nodes in my document stylesheet, then enhance with instance-specific styles via props (attributes) in Shadow DOM. For a component instance that looks like this... <my-component itemWidth="10rem"></my-component> ...I would apply the itemWidth value in the Shadow DOM using interpolation: ` <style> ::slot

## Introduction to Angular Elements

DevFeed: [Introduction to Angular Elements](<https://devfeed.tech/articles/introduction-to-angular-elements-21341.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2019/04/intro-to-angular-elements/>)

Published: 2019-04-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Angular CLI](<https://devfeed.tech/topics/angular-cli.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [angular-elements](<https://devfeed.tech/tags/angular-elements.md>), [components](<https://devfeed.tech/tags/components.md>), [course](<https://devfeed.tech/tags/course.md>), [egghead](<https://devfeed.tech/tags/egghead.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [micro-frontends](<https://devfeed.tech/tags/micro-frontends.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

This tutorial introduces Angular Elements, explains how Angular components can be wrapped as browser Custom Elements, and describes use cases such as embedding them in non-Angular applications, CMS systems, and legacy AngularJS applications. It also begins a step-by-step example of creating an Angular Element with the Angular CLI.

### Source excerpt

Lorem ipsum dolor sit amet

## ::part and ::theme, an ::explainer

DevFeed: [::part and ::theme, an ::explainer](<https://devfeed.tech/articles/part-and-theme-an-explainer-35534.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/part-theme-explainer/>)

Author: Monica Dinculescu

Published: 2017-12-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [CSS](<https://devfeed.tech/topics/css.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [explainer](<https://devfeed.tech/tags/explainer.md>), [polyfill](<https://devfeed.tech/tags/polyfill.md>), [properties](<https://devfeed.tech/tags/properties.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This explainer reviews proposals for styling and theming Shadow DOM components, including shadow-piercing selectors, custom CSS properties, and the proposed ::part and ::theme approaches. It notes that the relevant specification was not yet final and that no reliable polyfill was available at the time.

### Source excerpt

Updated May 18, 2020 (get it? :: ? I made a funny) Shadow DOM is a spec that gives you DOM and style encapsulation. This is great for reusable web components, as it reduces the ability of these components' styles getting accidentally stomped over (the old "I have a class called "button" and you have a class called "button", now we both look busted" problem), but it adds a barrier for styling and theming these components deliberately. Since a lot has changed since the last time I talked about styling the Shadow DOM, I wanted to give you a quick update about what new specs were in the works! Please note that this spec isn't quite final, which means that a) the syntax and capabilities will likely change and b) there isn't a polyfill you can use for realsies. --- Ok, so. When talking about styling a component, there are usually two different problems you might want to solve: 💇 Styling: I am using a third-party <fancy-button> element on my site and I want this one to be blue 🎨 Theming: I am using many third-party elements on my site, and some of them have a <fancy-button>; I want all the <fancy-button>s to be blue. Here's almost everything I know on this topic. A trip through time There have been several previous attempts at solving this, some more successful than others. If you've read my last post about this, you're already caught up. If you haven't, here's the deets: First came :shadow and /deep/ (which have since been deprecated, and removed as of Chrome 60). These were shadow-piercing selectors that allowed you to target any node in an element's Shadow DOM. Apart from being terribad for performance, they also required the user of an element to be intimately familiar with some random element's implementation, which was unlikely and lead to them just breaking the whole element by accident Custom properties allow you to create custom CSS properties that can be used throughout an app. In particular, they pierce the shadow boundary, which means they can be used for styli

## Shadow DOM: fast and encapsulated styles

DevFeed: [Shadow DOM: fast and encapsulated styles](<https://devfeed.tech/articles/shadow-dom-fast-and-encapsulated-styles-35543.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/shadow-dom/>)

Author: Monica Dinculescu

Published: 2017-08-11T00:00:00Z

Content type: article

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article explains how Shadow DOM provides style encapsulation for Web Components by keeping an element's CSS and markup contained. It distinguishes style encapsulation from DOM encapsulation and discusses how tools such as preprocessors, BEM, and CSS-in-JS addressed gaps before platform support advanced.

### Source excerpt

Shadow DOM is a fairly recent-ish spec that gives you DOM tree encapsulation - it's one of the superhero lions in the Voltron of specs called "Web Components". Web Components let you create reusable, self-contained components in JavaScript; the Shadow DOM bit makes sure that the CSS and markup you bundle with your implementation is encapsulated, hiding the implementation details of your element. The idea of encapsulation isn't new - most programming languages have a way to define "private" bits of code - variables or methods that are irrelevant to the user of that object and make the element work. Messing with them usually voids the contract and breaks the guarantee that the element will continue to work. In these languages you could, instead, use a global variable or method for everything. It's not a question of whether it will work (it will), but whether it will work over time, in a large code base (it won't). You know it won't. On the web, there's two kinds of encapsulation we might want: style encapsulation (an element's styles don't leak outside) and DOM encapsulation (an element's internal implementation isn't visible). This post talks about style encapsulation; tune in soon for the second half of the story - the DOM encapsulation! Whew, ok then. So then why is CSS encapsulation so hard? And what's the fastest way to get it? --- Tools to the rescue! 🙏 Before you set me on fire on Twitter, hear this: the next paragraph isn't a criticism of CSS (which I think is the greatest tool for authoring styles) nor a criticism of the tools we use (which I think fill real gaps we have), but a criticism of the standards process itself. I have a theory that developers will put up with too much when it comes to writing CSS. For a while there, CSS wasn't moving forward, so people started using tools to get around that. We didn't have variables or mixins, so we started using preprocessors. We didn't have style encapsulation, so we started naming things "the right way" with BEM,

## PWAs with Polymer: a checklist

DevFeed: [PWAs with Polymer: a checklist](<https://devfeed.tech/articles/pwas-with-polymer-a-checklist-35537.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/polymer-pwa-checklist/>)

Author: Monica Dinculescu

Published: 2017-07-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [components](<https://devfeed.tech/tags/components.md>), [html](<https://devfeed.tech/tags/html.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

A practical checklist for turning a Polymer-based web app into a progressive web app. It covers generating icons, adding a manifest, bundling with Polymer CLI, registering a Service Worker, handling first paint and fallback content, and rendering without JavaScript. The article also describes a case study showing how these steps improved a Lighthouse score.

### Source excerpt

The Meownica Web App Workflow™ goes like this: Write bad code until the file is too long Refactor that code into some web components Repeat steps 1-2 until done Realize you forgot to do the PWA dance, so your app is scoring 45 on Lighthouse Make it into a PWA by doing basically the same steps every time. I'm not joking about step 5. It's all a bunch of fairly simple boilerplate and party tricks, that I copy paste from a couple of apps. This time I decided to make them into a checklist. This checklist is keen on the polymer cli, because I usually write apps that use Polymer. If you don't, you can replace the polymer cli with your favourite bundler/service-worker generator! If you just want the checklist, here it is. If you want to see how I made this checklist and how the Lighthouse score improved as I checked more items off, jump to the case-study! Checklist Step by step 1. 📝 Add a manifest.json 2. 🏃 Bundle with the Polymer CLI 3. 🤖 Add a Service Worker 4. 🎨 Fix first paint 🆗 🆒 Checklist generate icons (sizes: 48x48, 96x96, 144x144, 192x192, 512x512) [example] add a manifest.json [example] add the rest of the manifesty things to your index.html [example] add the polymer cli: npm install -g polymer-cli add a polymer.json [example] run polymer build register your Service Worker [example]. If you have a complicated app setup or caching strategy, you might want to generate a sw-precache-config.js file. add fallback content while your main element is updating [example]. As a general rule, I try to match this fallback content very closely to what the first paint of the element will actually be, so that there's no visual jank make sure that your page renders something without JavaScript [example] Provided your app isn't outrageously big (think: the only thing that will make loading 10MB of JavaScript up front better, is not loading 10MB of JavaScript), this should help put you somewhere in the green scores on Lighthouse. Step by step So, here's the post-game analysis of wh

## An intro to web components with otters

DevFeed: [An intro to web components with otters](<https://devfeed.tech/articles/an-intro-to-web-components-with-otters-35553.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/web-components-with-otters/>)

Author: Monica Dinculescu

Published: 2017-06-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [piecesjs](<https://devfeed.tech/topics/piecesjs.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [developers](<https://devfeed.tech/tags/developers.md>), [framework](<https://devfeed.tech/tags/framework.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

An introductory tutorial explaining web components as a browser feature for creating encapsulated, reusable elements. It covers using existing components and writing custom components, with Polymer mentioned as a supporting library.

### Source excerpt

I work on a library called Polymer, which helps you write web components faster and easier. This is awesome, but it's only awesome if you (yes, YOU) know what a web component is, and know that you want to write one. So here's a story about what these things are and teaches you how to use them without showing you 10 pages of docs and getting you to install tools and CLIs. Maybe it's for you. Maybe it isn't. In either case, it has otters. Why should you care? Thinking about your app Where do web components live? Polyfills and you 1. I want to use someone else's web component in my app 1. Install the web component Status check 2. Import it in the app 3. Insert it somewhere in the app Status check 2. I want to write a web component to use in my app That's all there is! 👋 See you soon, new web component friends! Why should you care? Web components aren't a new library or framework, they're a new browser feature, and they let you write encapsulated and reusable components (more details). If you've ever used an <input> element, I like to think of it as the OG web component, because it's exactly that. The thing is that before web components came around, you had to wait on all browsers to agree on a new element (like, a date picker). And even after they agreed on a new element, it took them yeaaaaars to implement it. <input type="date"> was drafted in 2011 - today, 6 years later, not all browsers have implemented it! With web components, web developers get to write such elements, so that you don't have to wait for 10 years before all browsers agree that they should implement a date picker. P cool, right? A component is a bunch of code that fits logically together, kinda like a unit of functionality. This could be a simple widget like a fancy button or a date picker, or a more complex UI setup like "a responsive blog layout" Encapsulated means that an element's styles and children are scoped to itself, so you can't accidentally break what it looks like by using CSS haphazardl

## Polymer 1.x Cheat Sheet

DevFeed: [Polymer 1.x Cheat Sheet](<https://devfeed.tech/articles/polymer-1-x-cheat-sheet-35536.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/polymer-cheatsheet/>)

Author: Monica Dinculescu

Published: 2016-12-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Cheat sheet](<https://devfeed.tech/topics/cheatsheet.md>), [Library](<https://devfeed.tech/topics/library.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Code](<https://devfeed.tech/topics/code.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [cheat-sheet](<https://devfeed.tech/tags/cheat-sheet.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [javascript](<https://devfeed.tech/tags/javascript.md>)

### AI overview

A cheat sheet for the Polymer 1.x library covering Web Components development, including element and behavior definitions, lifecycle methods, data binding, observers, listeners, properties, style modules, custom properties, mixins, and template helpers.

### Source excerpt

This is a cheat sheet for the Polymer 1.x library. It helps you write Web Components, which are pretty 🔥🔥🔥. If you're interested in the Polymer 2.0 cheat sheet, it's here. If you think something is missing from this page, tell me about it! Defining an element Defining a behaviour Lifecycle methods Data binding Observers Listeners Properties block Observing added and removed children Style modules Styling with custom properties and mixins Binding helper elements Defining an element Docs: registering an element, behaviours, shared style modules <dom-module id="element-name"> <template> <!-- Use one of these style declarations, but not both --> <!-- Use this if you don't want to include a shared style --> <style></style> <!-- Use this if you want to include a shared style --> <style include="some-style-module-name"></style> </template> <script> Polymer({ is: 'element-name', // All of these are optional. Only keep the ones you need. behaviors: [], observers: [], listeners: {}, hostAttributes: {}, properties: {} }); </script> </dom-module> Defining a behaviour Docs: behaviours. Defining a behavior to share implementation between different elements: <script> MyNamespace.MyFancyBehaviorImpl = { // Code that you want common to elements, such // as behaviours, methods, etc. } MyNamespace.MyFancyBehavior = [ MyFancyBehaviorImpl, /* You can add other behaviours here */ ]; </script> Using the behavior in an element: <dom-module id="element-name"> <template> <!-- ... --> </template> <script> Polymer({ is: 'element-name', behaviors: [MyNamespace.MyCustomButtonBehavior] /* ... */ }); </script> </dom-module> Lifecycle methods Docs: lifecycle callbacks. Polymer({ registered: function() {}, created: function() {}, ready: function() {}, attached: function() {}, detached: function() {} }); There's an attributeChanged callback as well, but that's very rarely used. Data binding Docs: data binding, attribute binding, binding to array items, computed bindings. Don't forget: Polymer camel-c

## Google AMP: Should You Care?

DevFeed: [Google AMP: Should You Care?](<https://devfeed.tech/articles/google-amp-should-you-care-31266.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/google-amp-should-you-care>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2016-12-02T09:16:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [accelerated](<https://devfeed.tech/tags/accelerated.md>), [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [css](<https://devfeed.tech/tags/css.md>), [google](<https://devfeed.tech/tags/google.md>), [google-s](<https://devfeed.tech/tags/google-s.md>), [here-s](<https://devfeed.tech/tags/here-s.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [implement](<https://devfeed.tech/tags/implement.md>), [initiative](<https://devfeed.tech/tags/initiative.md>), [insights](<https://devfeed.tech/tags/insights.md>), [internet](<https://devfeed.tech/tags/internet.md>), [latency](<https://devfeed.tech/tags/latency.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [pages](<https://devfeed.tech/tags/pages.md>), [performance](<https://devfeed.tech/tags/performance.md>), [primer](<https://devfeed.tech/tags/primer.md>), [project](<https://devfeed.tech/tags/project.md>)

### AI overview

This primer explains Google AMP, its focus on improving mobile web performance, and its restrictions on external CSS, JavaScript, and certain HTML. It also describes how AMP uses web components and relates to Google PageSpeed Insights recommendations.

### Source excerpt

AMP is Google's Accelerated Mobile Pages initiative. Here's a primer, and how to implement AMP with Craft CMS

## Advanced Embedding with Square Market

DevFeed: [Advanced Embedding with Square Market](<https://devfeed.tech/articles/advanced-embedding-with-square-market-15491.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/advanced-embedding-with-square-market>)

Author: Square Engineering

Published: 2014-07-09T16:07:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Website](<https://devfeed.tech/topics/website.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [HTML](<https://devfeed.tech/topics/html.md>), [browsers](<https://devfeed.tech/topics/browsers.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [components](<https://devfeed.tech/tags/components.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [html](<https://devfeed.tech/tags/html.md>), [self-service](<https://devfeed.tech/tags/self-service.md>), [shopping](<https://devfeed.tech/tags/shopping.md>), [widget](<https://devfeed.tech/tags/widget.md>)

### AI overview

Square Market describes how it developed an embeddable interactive menu for business websites. The article compares injecting HTML, using a web component, and using an iframe, ultimately choosing an iframe because browser support for web components was considered insufficient.

### Source excerpt

Ember an interactive menu into your website using Square Market.

[Next page](<https://devfeed.tech/topics/web-components.md?cursor=WyIyMDE0LTA3LTA5VDE2OjA3OjAwKzAwOjAwIiwgIjFhYmZhMDc1LWQxZjMtNDgzOS1hYTVkLTc2MmQ1NzgzNTA5NyJd>)