UNPKG

@ar-dacity/ardacity-text-pressure

Version:

Dynamic text pressure effects for React applications

119 lines (93 loc) 3.83 kB
# ArDacity Text Pressure A React component library that adds dynamic pressure effects to text using variable fonts. ## Installation ```bash npm install @ar-dacity/ardacity-text-pressure ``` or ```bash yarn add @ar-dacity/ardacity-text-pressure ``` ## What Happens During Installation When you install this package, it automatically: 1. Creates a `components/ArDacityUi` directory in your project (if it doesn't exist) 2. Creates a `TextPressure` subdirectory 3. Copies the TextPressure component files into that directory: - `TextPressure.jsx` - `index.js` ## Usage After installation, you can import the component directly from your components directory: ```jsx import TextPressure from './components/ArDacityUi/TextPressure/TextPressure'; // Or simply: import { TextPressure } from './components/ArDacityUi/TextPressure'; function App() { return ( <div style={{position: 'relative', height: '300px'}}> <TextPressure text="Ardacity!" flex={true} alpha={false} stroke={false} width={true} weight={true} italic={true} textColor="#ffffff" strokeColor="#ff0000" minFontSize={36} /> </div> ); } ``` ## Component Props | Property | Type | Default | Description | |----------|------|---------|-------------| | text | string | "ardacity" | Text content that will be displayed and animated. | | fontFamily | string | "ardacity VF" | Name of the variable font family. | | fontUrl | string | (ardacity font URL) | URL for the variable font file (needed) | | flex | boolean | true | Whether the characters are spaced using flex layout. | | scale | boolean | false | If true, vertically scales the text to fill its container height. | | alpha | boolean | false | If true, applies an opacity effect based on cursor distance. | | stroke | boolean | false | If true, adds a stroke effect around characters. | | width | boolean | true | If true, varies the variable-font "width" axis. | | weight | boolean | true | If true, varies the variable-font "weight" axis. | | italic | boolean | true | If true, varies the variable-font "italics" axis. | | textColor | string | auto | The fill color of the text. Automatically adapts to light/dark themes when not specified. | | strokeColor | string | "#FF0000" | The stroke color that will be applied to the text when "stroke" is set to true | | strokeWidth | number | 2 | The width of the stroke in pixels | | className | string | "" | Additional class for styling the `<h1>` wrapper. | | minFontSize | number | 24 | Sets a minimum font-size to avoid overly tiny text on smaller screens. | ## Important Notes - Make sure the font you're using supports all the variable properties you enable. - The component works best with variable fonts that support width, weight, and italic axes. - For best results, place the TextPressure component in a container with a defined height. - The default font is provided as an example and should not be used in commercial projects. - If no textColor is specified, the component will automatically detect the theme and use black text on light backgrounds and white text on dark backgrounds. ## Example: Customizing the Font ```jsx <TextPressure text="Custom Font" fontFamily="My Variable Font" fontUrl="https://example.com/path/to/my-variable-font.woff2" width={true} weight={true} italic={false} textColor="#000000" /> ``` ## Example: Minimal Usage You can also use the component with minimal configuration: ```jsx <TextPressure/> ``` This will render the component with all default settings and automatic text color based on theme. ## Compatibility This package is compatible with: - React 16.8.0 and above (requires Hooks) - React with JSX - Vite projects - Next.js projects - Create React App projects ## License MIT