1.0.2 • Published 11 months ago

vue3-fake-input-cursor v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

vue3-fake-input-cursor

useFakeInputCursor is a Vue 3 composition hook that provides functionality to create a fake input cursor. This hook allows you to show and hide a blinking cursor and update its position based on the text length, all while leveraging TypeScript for type safety.

Features

  • TypeScript Support: Strongly typed with TypeScript for better development experience.
  • Customizable Cursor Styles: Easily customize the cursor's appearance with CSS styles.
  • Animation Support: Supports customizable animation properties for the cursor's blinking effect.
  • Flexible Usage: Can be used in any Vue 3 component.

Installation

To use this hook, ensure you have Vue 3 and TypeScript set up in your project. You can install it via npm:

npm install vue3-fake-input-cursor

Usage

Basic Example

<template>
  <div ref="inputElement"  style="position: relative">
    <!-- Your input field -->
    <span>{{ text }}</span>
    <CursorComponent />
  </div>
</template>

<script lang="ts">
import { ref } from 'vue';
import { useFakeInputCursor } from 'vue3-fake-input-cursor';

export default {
  setup() {
    const text = ref('Hello, world!');
    const { el: CursorComponent, showInputCursor, hideInputCursor, updateInputCursor } = useFakeInputCursor();

    const inputElement = ref<HTMLElement | null>(null);

    // Example to show cursor on mouse enter
    const onMouseEnter = () => {
      showInputCursor();
      if (inputElement.value) {
        updateInputCursor(inputElement.value, text.value);
      }
    };

    const onMouseLeave = () => {
      hideInputCursor();
    };

    return {
      text,
      CursorComponent,
      onMouseEnter,
      onMouseLeave,
      inputElement,
    };
  },
};
</script>

<style>
/* Add your styles here */
</style>

Parameters

The useFakeInputCursor hook accepts an optional parameter to customize the cursor's styles and animations:

interface UseFakeInputCursorParams {
  cursorStyle?: Partial<CSSStyleDeclaration>;
  cursorAnimation?: {
    name?: CSSProperties["animation-name"];
    duration?: CSSProperties["animation-duration"];
    timingFunction?: CSSProperties["transition-timing-function"];
    iterationCount?: CSSProperties["animation-iteration-count"];
    delay?: CSSProperties["animation-delay"];
  };
}

Example with Custom Styles

const { el: CursorComponent } = useFakeInputCursor({
  cursorStyle: { backgroundColor: 'red', height: '15px' },
  cursorAnimation: { duration: '0.8s' },
});

License

This project is licensed under the MIT License.

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago