vue-skycons

Skycons components in VueJS
23,766 11
Install
npm install vue-skycons
Latest Version:4.3.5
License:MIT
Last Updated:Oct 13, 2026
Links: GitHub  ·  npm
Maintainer: dipu-bd

Vue Skycons

npm npm download per month Libraries.io dependency status for latest release NPM license

This was inspired by Skycons -- a set of ten animated weather glyphs, procedurally generated by JavaScript using the HTML5 canvas tag. They're easy to use, and pretty lightweight, so they shouldn't rain on your parade.

icons.gif

Installation

NPM

npm install --save vue-skycons

YARN

yarn add vue-skycons

Examples

Register Component

import Vue from "vue";
import Skycon from "vue-skycons";

Vue.component("skycon", Skycon);

Using Component

<template>
  <div>
    <!-- all icons -->
    <skycon condition="clear-day" />
    <skycon condition="clear-night" />
    <skycon condition="partly-cloudy-day" />
    <skycon condition="partly-cloudy-night" />
    <skycon condition="cloudy" />
    <skycon condition="rain" />
    <skycon condition="sleet" />
    <skycon condition="snow" />
    <skycon condition="wind" />
    <skycon condition="fog" />

    <!-- all attributes -->
    <skycon condition="rain" size="128" color="orangered" paused @load="console.log" />
  </div>
</template>

<script>
import Skycon from "vue-skycons";

export default {
  components: {
    Skycon
  }
}

Available props

// Weather condition
condition: {
  type: String,
  required: true,
},

// Icon size
size: {
  type: [Number, String],
  default: 64,
},

// Icon color
color: {
  type: String,
  default: "black",
},

// Start with paused animation
paused: {
  type: Boolean,
  default: false,
},

// The animation speed
speed: {
  type: [Number, String],
  default: 1
}

Event example

<template>
  <skycon condition="snow" size="128" paused @load="onLoad" />
</template>

<script>
export default {
  methods: {
    onLoad(player) {
      console.log("loaded");
      setInterval(() => {
        if (player.paused) {
          player.play();
        } else {
          player.pause();
        }
      }, 1000);
    },
  },
};
</script>

Animation Speed

The speed attributes is a decimal number to control the animation speed. It is a multiplyer to the original speed. 1 means the normal speed. 0.5 means half the normal speed. 2 means twice as fast as the normal speed.

<template>
  <skycon condition="wind" size="128" speed="1" />
  <skycon condition="wind" size="128" speed="3" />
  <skycon condition="wind" size="128" speed="0.5" />
</template>

Related Packages

vue-sweetalert-icons

A super simple Vue wrapper for the beautiful animated SweetAlert status icons

55,113 59
@animated-color-icons/lucide-vue

Animated Lucide icons for Vue — CSS-only hover animations with two-tone color su...

2,108 303
@heroicons-animated/vue

Beautifully animated Heroicons for Vue

3,262
@vue-hero-icons/outline

A set of free MIT-licensed high-quality SVG icons as Vue functional components.

246,298 101
@nuxt-hero-icons/outline

A set of free MIT-licensed high-quality SVG icons as Vue functional components.

5,626 4

Version History

Version Released License
4.3.5 MIT
4.3.4 MIT
4.3.3 Apache v2.0
4.3.2 Apache v2.0
4.3.1 Apache v2.0