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

@praffn/vue-dato-image

v1.1.1

Published

Component for workig with images in [DatoCMS](https://www.datocms.com/).

Downloads

7

Readme

Vue Dato Image

Component for workig with images in DatoCMS.

Installation

npm install @praffn/vue-dato-image

or

yarn add @praffn/vue-dato-image

Usage

<template>
  <div>
    <DatoImage v-if="imageData" :data="imageData" />
  </div>
</template>

<script>
import gql from "graphql-tag";

export default {
  data() {
    return {
      imageData: null,
    };
  },
  async mounted() {
    const { data } = await this.$dato({
      query: gql`
        {
          page {
            image {
              responsiveImage {
                alt
                title
                base64
                bgColor
                width
                height
                sizes
                srcSet
                webpSrcSet
                src
              }
            }
          }
        }
      `,
    });
    this.imageData = data.page.image;
  },
};
</script>

Props

| prop | type | required | description | default | | -------------------- | ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | | data | ResponsiveImage object | ✅ | The responsive you get from a DatoCMS reponsiveImage query | — | | fadeInDuration | number | ❌ | Duration (in ms) of the fade in transition when image has loaded | null | | intersectionTreshold | number | ❌ | A value between 0.0 and 1.0 indicating at what percentage of the placeholder visibility that the image should start loading. 0.0 meas at soon as just one pixel is in the viewport and 1.0 means that the entire placeholder has to be in the viewport to start loading the actual image. | 0.0 | | intersectionMargin | string | ❌ | The margins around the placeholder when considering intersection. Value should be like the CSS counterpart (top, right, bottom, left) and can be pixels as well as percentages. Used to compute the bounding box before computing intersection. | "0px 0px 0px 0px" | | lazyload | boolean | ❌ | Whether lazy loading is enabled or not. If not enabled the image will be eagerly loaded and intersection will not be computed. | true |

The ResponsiveImage object

This should be the object returned from your GraphQL query. There are some required properties:

| property | type | required | description | | ----------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------- | | aspectRatio | number | ✅ | The aspect ratio of the image | | width | number | ✅ | The width of the image | | height | number | ✅ | The height of the image | | sizes | string | ✅ | The HTML5 sizes attribute for the image | | srcSet | string | ✅ | The HTML5 srcset attribute for the image | | webpSrcSet | string | ❌ | The HTML5 srcset attribute for the image in WebP format (for browsers that support that) | | alt | string | ❌ | Alternative text alt for the image. Not required but recommended for acceisiblity reasons if the image is important for the content | | title | string | ❌ | Title attribute title for the image | | bgColor | string | ❌ | The background color for the image placeholder | | base64 | string | ❌ | A base64-encoded thumbnail used for the placeholder |