Skip to content

JayeshLab/vue3-resize-text

Repository files navigation

Vue3 Resize Text

A vue3 directive which automatically resize font size based on element width.

It makes the font-size flexible on fluid or responsive layout.

npm npm Build Status npm

Live Demo: Resize the browser viewport to see the effect in action

For vue.js 2.x see the vue-resize-text

vue-resize-text

Installation

Install via NPM

$ npm install vue3-resize-text --save

Install via CDN

<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue3-resize-text"></script>

Global

Register VueResizeText globally:

Use

import { createApp } from "vue"
import App from "./App.vue"
import VueResizeText from "vue3-resize-text"

const app = createApp(App)
app.use(VueResizeText)

or using directive

import { createApp } from "vue"
import App from "./App.vue"
import VueResizeText from "vue3-resize-text"

const app = createApp(App)
app.directive('ResizeText', VueResizeText.ResizeText);

Directive v-resize-text then can be used in any of Component

<template>
  <div v-resize-text>Hello Vue</div>
</template>

Local

Include the VueResizeText directive directly into your component using import:

<template>
  <div v-resize-text>Hello Vue</div>
</template>
<script>
import VueResizeText from 'vue3-resize-text'
export default {
 directives: {
    ResizeText: VueResizeText.ResizeText
 }
}
</script>

Usage

Basic usage

<template>
  <div>
    <div v-resize-text="{ratio:1.3, minFontSize: '30px', maxFontSize: '100px', delay: 200}">Hello Vue</div>
  </div>
</template>

<script>
  import VueResizeText from 'vue3-resize-text'
  export default {
    directives: {
        ResizeText: VueResizeText.ResizeText
     }
  };
</script>

Directive Arguments

v-resize-text="{ratio:1.5, minFontSize: '30px', maxFontSize: '100px', delay: 200}"

Argument Description Type Default
ratio Font Ratio is the tweek to make the text resize properly, greater then 1 makes the font smaller and less then 1 make the font bigger Number 1
minFontSize Minimum font-size threshold in px Number/String 16px or 16
maxFontSize Maximum font-size threshold in px Number/String 500px or 500
delay Debound time delay on window resize Number 200

License

MIT