UNPKG

vevet

Version:

Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.

104 lines (88 loc) 2.06 kB
import { IViewport, TViewportCallbacks, TViewportCallbacksOn, } from './handlers/createViewport/types'; import { ICoreProps } from './types'; /** Vevet Core */ export interface ICore extends IViewport { /** Current Vevet version */ version: string; /** Application properties */ props: ICoreProps; /** Prefix used by Vevet for class names. */ prefix: string; /** Is phone device */ phone: boolean; /** Is tablet device */ tablet: boolean; /** Is mobile device */ mobile: boolean; /** * OS name in lowercase. Popular results: * * - windows * - macos * - android * - ios */ osName: string; /** * Browser name in lowercase. Popular results: * * - chrome * - edge-chromium * - opera * - firefox * - safari * - ios (safari & in-app safari) * - crios (chrome in ios) * - samsung * - yandexbrowser * - ios-webview */ browserName: string; /** Document */ doc: Document; /** HTML element */ html: HTMLElement; /** Body element */ body: HTMLElement; /** If the page is loaded */ loaded: boolean; /** List of viewport callbacks */ viewportCallbacks: TViewportCallbacks; /** * Add an event on page load. * * @example * const destruct = vevet.onLoad(() => { * console.log('Page loaded'); * }); * * // cancel the event * destruct(); */ onLoad: (callback: () => void) => () => void; /** * Adds viewport callbacks. * * @example * * vevet.onViewport('width', () => console.log('width changed')); * * vevet.onViewport('height', () => console.log('height changed')); * * vevet.onViewport('both', () => console.log('both width and height changed')); * * vevet.onViewport('width_', () => console.log('only width changed')); * * vevet.onViewport('height_', () => console.log('only height changed')); * * const destruct = vevet.onViewport('any', () => console.log('any change')); * * // cancel the event * destruct(); */ onViewport: TViewportCallbacksOn; }