react-bionic-reading
Version:
A React component that implements the bionic reading method.
106 lines (74 loc) โข 6.54 kB
Markdown
# โชโซ ๐ฅ๐ฒ๐ฎct ๐๐ถ๐ผnic ๐ฅ๐ฒ๐ฎding
๐ ๐ฅ๐ฒ๐ฎct ๐ฐ๐ผ๐บ๐ฝonent ๐น๐ถ๐ฏ๐ฟary ๐ณ๐ผr ๐ฎ๐ฝ๐ฝ๐นying ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ผ ๐๐ฒxt. ๐๐ณ๐ณ๐ผ๐ฟ๐๐นessly ๐ถ๐ป๐๐ฒ๐ดrate ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐ถ๐ป๐๐ผ ๐๐ผur ๐ฅ๐ฒ๐ฎct ๐ฎ๐ฝ๐ฝ๐น๐ถ๐ฐ๐ฎtions ๐๐ผ ๐ฒ๐ป๐ต๐ฎnce ๐ฟ๐ฒ๐ฎ๐ฑ๐ฎ๐ฏility ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ฝ๐ฒed.
## ๐ท ๐๐ฒmo
https://github.com/user-attachments/assets/abd491c3-762e-44a1-ad49-ec80970f522f
## ๐ ๐๐ป๐๐๐ฎ๐นlation
๐๐ป๐๐๐ฎ๐นl ๐๐ต๐ฒ ๐ฝ๐ฎ๐ฐ๐ธage ๐ถ๐ป ๐๐ผur ๐ฝ๐ฟ๐ผject ๐ฑ๐ถ๐ฟ๐ฒ๐ฐtory ๐๐ถth:
```bash
npm install react-bionic-reading
```
๐ผ๐ฟ ๐ถ๐ณ ๐๐ผu ๐ฝ๐ฟ๐ฒ๐ณer ๐๐ฎrn:
```bash
yarn add react-bionic-reading
```
## โจ ๐จ๐๐ฎge
๐ช๐ฒ ๐ฝ๐ฟ๐ผ๐ide ๐๐๐ผ ๐บ๐ฎin ๐ฐ๐ผ๐บ๐ฝ๐ผnents ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing: `BionicText` ๐ณ๐ผ๐ฟ ๐๐ถ๐ป๐ดle ๐๐๐ฟ๐ถ๐ป๐ดs ๐ฎ๐ป๐ฑ `BionicBlock` ๐ณ๐ผ๐ฟ ๐น๐ฎ๐ฟ๐ดer ๐ฏ๐น๐ผ๐ฐks ๐ผ๐ณ ๐ฐ๐ผ๐ป๐ent ๐๐ถ๐h ๐ป๐ฒ๐๐ed ๐ฒ๐น๐ฒ๐บents.
### `BionicText`
๐จ๐๐ฒ ๐๐ต๐ฒ `BionicText` ๐ฐ๐ผ๐บ๐ฝ๐ผnent ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ผ ๐ฎ ๐๐๐ฟ๐ถng.
```jsx
import { BionicText } from "react-bionic-reading";
function MyComponent() {
return (
<BionicText text="This is some text that will be displayed with bionic reading." />
);
}
```
### `BionicBlock`
๐จ๐๐ฒ ๐๐ต๐ฒ `BionicBlock` ๐ฐ๐ผ๐บ๐ฝ๐ผnent ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ผ ๐ฎ ๐ฏ๐น๐ผck ๐ผ๐ณ ๐ฐ๐ผ๐ป๐ent, ๐ถ๐ป๐ฐ๐น๐ding ๐ป๐ฒ๐๐ed ๐๐ง๐ L ๐ฒ๐น๐ฒ๐บents.
```jsx
import { BionicBlock } from "react-bionic-reading";
function MyArticle() {
return (
<BionicBlock>
<h2>This is a heading</h2>
<p>
This is a paragraph inside a bionic block. It will be converted to
bionic text.
</p>
</BionicBlock>
);
}
```
### `useBionic` Hook
๐ช๐ฒ ๐ฒ๐
๐ฝ๐ผse ๐ฎ `useBionic` ๐ต๐ผ๐ผk ๐๐ต๐ฎt ๐ฎ๐น๐น๐ผws ๐๐ผu ๐๐ผ ๐ด๐น๐ผ๐ฏally ๐ฐ๐ผ๐ป๐rol ๐๐ต๐ฒ ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐๐ฎte. ๐ง๐ต๐ถs ๐ถ๐ ๐๐๐ฒ๐ณul ๐ณ๐ผ๐ฟ ๐ฐ๐ฟ๐ฒ๐ฎting ๐ฎ ๐๐ผ๐ด๐ดle ๐ฏ๐๐๐on ๐๐ผ ๐ฒ๐ป๐ฎ๐ฏle ๐ผ๐ฟ ๐ฑ๐ถ๐๐ฎble ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐ณ๐ผ๐ฟ ๐๐ต๐ฒ ๐ฒ๐ป๐๐ถre ๐ฎ๐ฝ๐ฝ๐น๐ถ๐ฐ๐ฎtion.
```jsx
import { useBionic } from "react-bionic-reading";
function BionicModeToggle() {
const { bionicMode, setBionicMode } = useBionic();
return (
<button onClick={() => setBionicMode(!bionicMode)}>
{bionicMode ? "Disable" : "Enable"} Bionic Reading
</button>
);
}
```
## ๐งต ๐ฃ๐ฟ๐ผps
### `BionicText` Props
| Prop | Type | Description |
| ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `text` | `string` | ๐ง๐ต๐ฒ ๐๐ฒxt ๐๐๐ฟ๐ถng ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ผ. |
| `as` | `ElementType` | ๐ง๐ต๐ฒ ๐๐ง๐ L ๐ฒ๐น๐ฒ๐บent ๐๐ผ ๐ฟ๐ฒ๐ป๐ฑer ๐๐ต๐ฒ ๐ฐ๐ผ๐บ๐ฝ๐ผnent ๐ฎ๐. ๐๐ฒ๐ณ๐ฎults ๐๐ผ `span`. |
| `style` | `CSSProperties` | ๐๐ป๐น๐ถne ๐๐๐๐นes ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐๐ผ ๐๐ต๐ฒ ๐ฐ๐ผ๐บ๐ฝ๐ผnent. |
| `className` | `string` | ๐๐ฆ๐ฆ ๐ฐ๐น๐ฎ๐ses ๐๐ผ ๐ฎ๐ฝ๐ฝly ๐๐ผ ๐๐ต๐ฒ ๐ฐ๐ผ๐บ๐ฝ๐ผnent. |
| `forceBionicMode` | `boolean` | ๐๐ณ `true`, ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ถ๐นl ๐ฏ๐ฒ ๐ฎ๐ฝ๐ฝ๐นied ๐ฟ๐ฒ๐ด๐ฎ๐ฟdless ๐ผ๐ณ ๐๐ต๐ฒ ๐ด๐น๐ผ๐ฏal ๐๐๐ฎte ๐ณ๐ฟ๐ผm ๐๐ต๐ฒ `useBionic` ๐ต๐ผ๐ผk. ๐๐ฒ๐ณ๐ฎults ๐๐ผ `false`. |
### `BionicBlock` Props
| Prop | Type | Description |
| ----------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `children` | `ReactNode` | ๐ง๐ต๐ฒ ๐ฐ๐ผ๐ป๐ent ๐๐ผ ๐ฏ๐ฒ ๐ฟ๐ฒ๐ป๐ฑered ๐๐ถ๐๐ตin ๐๐ต๐ฒ ๐ฏ๐น๐ผck. ๐ง๐ต๐ฒ ๐ฐ๐ผ๐บ๐ฝ๐ผnent ๐๐ถ๐นl ๐ฟ๐ฒ๐ฐ๐๐ฟsively ๐๐ฟ๐ฎ๐erse ๐๐ต๐ฒ ๐ฐ๐ต๐ถ๐นdren ๐ฎ๐ป๐ฑ ๐ฎ๐ฝ๐ฝly ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ผ ๐๐ฒxt ๐ป๐ผ๐ฑes. |
| `forceBionicMode` | `boolean` | ๐๐ณ `true`, ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing ๐๐ถ๐นl ๐ฏ๐ฒ ๐ฎ๐ฝ๐ฝ๐นied ๐ฟ๐ฒ๐ด๐ฎ๐ฟdless ๐ผ๐ณ ๐๐ต๐ฒ ๐ด๐น๐ผ๐ฏal ๐๐๐ฎte ๐ณ๐ฟ๐ผm ๐๐ต๐ฒ `useBionic` ๐ต๐ผ๐ผk. ๐๐ฒ๐ณ๐ฎults ๐๐ผ `false`. |
### `useBionic` Hook
๐ง๐ต๐ฒ `useBionic` ๐ต๐ผ๐ผk ๐ฟ๐ฒ๐๐๐ฟns ๐ฎn ๐ผ๐ฏ๐ท๐ฒct ๐๐ถ๐h ๐๐ต๐ฒ ๐ณ๐ผ๐น๐น๐ผwing ๐ฝ๐ฟ๐ผ๐ฝ๐ฒrties:
| Property | Type | Description |
| --------------- | -------------------- | ------------------------------------------------------- |
| `bionicMode` | `boolean` | ๐ง๐ต๐ฒ ๐ฐ๐๐ฟ๐ฟent ๐๐๐ฎte ๐ผ๐ณ ๐ฏ๐ถ๐ผnic ๐ฟ๐ฒ๐ฎ๐ฑing (๐ฒ๐ป๐ฎ๐ฏled/๐ฑ๐ถ๐๐ฎbled). |
| `setBionicMode` | `(isBionic) => void` | ๐ ๐ณ๐๐ป๐ฐtion ๐๐ผ ๐๐ฝ๐ฑ๐ฎte ๐๐ต๐ฒ `bionicMode` ๐๐๐ฎte. |