v-offline
Offline and Online components for Vue
87,616
380
| Install | |
|---|---|
npm install v-offline |
|
| Latest Version: | 3.5.1 |
| Vue: | 3 |
| Older releases: | 2 |
| License: | MIT |
| Last Updated: | Oct 21, 2026 |
| Links: | GitHub · npm |
Maintainer: vinayakkulkarni
V-Offline ⚡️
⚠️ Docs are for Vue 3, for Vue 2 docs, click here
Features
- Detect offline & online events for your vue app.
- Built from scratch usign Vue 2 & Composition API with TypeScript
- For Vue >3.x version –
npm i v-offline@latest - For Vue >=2.7 version –
npm i v-offline@legacy - For Vue <2.7 version –
npm i v-offline@2.3.0
Table of Contents
Demo
Requirements
- vue
^3.x
Installation
npm install --save v-offline ping.js
CDN: UNPKG | jsDelivr (available as window.VOffline)
Build Setup
# install dependencies
$ npm install
# package the library
$ npm run build
Usage
Global component:
// main.ts
import { VOffline } from 'v-offline';
import { createApp } from 'vue';
const app = createApp({});
app.component('VOffline', VOffline);
Or use locally
// component.vue
<script lang="ts">
import { defineComponent } from 'vue';
import { VOffline } from 'v-offline';
export default defineComponent({
components: {
VOffline,
},
});
</script>
For Nuxt 3, create a file in plugins/v-offline.ts
import { VOffline } from 'v-offline';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component('VOffline', VOffline);
});
then import the file in nuxt.config.{j|t}s:
export default {
// ...
plugins: [
// ...
{ src: '~/plugins/v-offline', mode: 'client' },
// ...
],
// ...
};
Example
<template>
<v-offline
online-class="online"
offline-class="offline"
@detected-condition="onNetworkChange"
>
<template v-if="online">
<div class="flex w-full h-full justify-center items-center text-6xl">
⚡️
</div>
</template>
<template v-if="!online">
<div class="flex w-full h-full justify-center items-center text-6xl">
💩
</div>
</template>
</v-offline>
<!-- Netlify Badge -->
<div class="absolute bottom-4 right-4">
<a
href="https://app.netlify.com/sites/v-offline/deploys"
aria-label="View deploys on Netlify"
target="_blank"
rel="noopener noreferrer"
class="gray-400"
>
<img
src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg"
alt="Deploys by Netlify"
/>
</a>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import type { Ref } from 'vue';
import { VOffline } from 'v-offline';
export default defineComponent({
components: {
VOffline,
},
setup() {
const online: Ref<boolean> = ref(false);
const onNetworkChange = (status: boolean) => {
online.value = status;
};
return { online, onNetworkChange };
},
});
</script>
<style>
@import 'v-github-icon/dist/v-github-icon.css';
</style>
API
Props
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
online-class |
String | No | '' | Styling the div which you want to give if you're online. |
offline-class |
String | No | '' | Styling the div which you want to give if you're offline. |
ping-url |
String | No | https://google.com | Pinging any url to double check if you're online or not. |
Events
| Name | Returns | Description |
|---|---|---|
@detected-condition |
String | Emits a boolean value |
Contributing
- Fork it ( https://github.com/vinayakkulkarni/v-offline/fork )
- Create your feature branch (
git checkout -b feat/new-feature) - Commit your changes (
git commit -Sam 'feat: add feature') - Push to the branch (
git push origin feat/new-feature) - Create a new Pull Request
Note:
- Please contribute using GitHub Flow
- Commits & PRs will be allowed only if the commit messages & PR titles follow the conventional commit standard, read more about it here
- PS. Ensure your commits are signed. Read why
Author
v-offline © Vinayak, Released under the MIT License. Authored and maintained by Vinayak Kulkarni with help from contributors (list).
vinayakkulkarni.dev · GitHub @vinayakkulkarni · Twitter @_vinayak_k
License
Related Packages
vue-identify-network
Vue 3 component and composable for detecting network speed, connection type (4G,...
48,694
70
Version History
| Version | Released | License |
|---|---|---|
| 3.5.1 | MIT | |
| 3.5.0 | MIT | |
| 3.4.0 | MIT | |
| 3.3.1 | MIT | |
| 3.3.0 | MIT | |
| 3.2.1 | MIT | |
| 3.2.0 | MIT | |
| 3.1.0 | MIT | |
| 3.0.3 | MIT | |
| 3.0.2 | MIT | |
| 3.0.1 | MIT | |
| 3.0.0 | MIT | |
| 2.4.0 | MIT | |
| 2.3.0 | MIT | |
| 2.2.4 | MIT | |
| 2.2.3 | MIT | |
| 2.2.2 | MIT | |
| 2.2.1 | MIT | |
| 2.2.0 | MIT | |
| 2.1.0 | MIT | |
| 2.0.0 | MIT | |
| 1.3.0 | MIT | |
| 1.2.1 | MIT | |
| 1.2.0 | MIT | |
| 1.1.0 | MIT | |
| 1.0.10 | ||
| 1.0.9 | ||
| 1.0.8 | ||
| 1.0.7 | ||
| 1.0.6 |
Showing the latest 30 of 36. See every release on npm