npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

component-responsive-frame

v1.5.2

Published

A responsive iframe (includes responsive-child)

Downloads

27

Readme

Responsive Frame

Defines a set of custom elements similar to Pym.js <https://github.com/nprapps/pym.js>__ for embedding remote content (graphics, visualizations, tables) into a CMS easily. The code defines two custom elements, responsive-frame and responsive-child and is completely configured via HTML--users do not need to know how to write JavaScript.

On the host page:

  1. Include the responsive-frame.js file to load the parent element.

  2. Add your responsive iframes to the page using the custom element, like so::

    You can also use the responsive-iframe extended element, if you want::

On the guest page:

  1. Include the responsive-child.js file to load the child element behavior.

  2. Wrap your content in a <responsive-child> tag, or extend the body tag with its behavior using the responsive-body attribute value::

That's it!

Extracurricular messaging

Although it is intended for resizing frames, you can also transfer arbitrary messages between the host and guest via the sendMessage() method present on each. Messages received on the client side will have the message event type, and will propagate in from the responsive-child element. On the host, the message type is childmessage to avoid colliding with the existing message type, and will bubble upward from the responsive-frame.

Why ?

Why use the responsive frame component instead of, for example, NPR's Pym.js?

  • communicates over JSON, which means that it can pass complex objects between windows, and its protocol is easy to extend.
  • No configuration needed: because the host and guest negotiate directly during startup, much of the setup for the is done for you.
  • No JavaScript needed: the component is completely instantiated and rendered through HTML, instead of requiring scripting support on both sides of the frame.
  • Clean, future-forward codebase: is designed to minimize the amount of memory use and promote easy debugging through the use of standard, idiomatic JavaScript.

About this project

These custom elements are built on The Seattle Times' component scaffolding <https://github.com/seattletimes/component-template>__, which makes it easy to create Web Components for IE9 and greater.