KQ-552 · FOLD/TEXT
Fold Text
Read-more done by measurement. The folded box is exactly as many line boxes tall as it claims, and opening animates that height to the content's ResizeObserver-measured height on glide while the bottom fade lifts on an opacity tween and the chevron snaps over with the label. It is a real disclosure button: aria-expanded and aria-controls, Enter or Space to open, and no button at all when the passage already fits.
KQ-552 · FOLD/TEXT
Fernworks Ridge Tarp
A two-pole tarp cut for exposed ground, in a 20-denier silicone nylon that holds its tension through a wet night. The ridge seam is taped rather than sewn twice, so it sheds instead of wicking, and the eight perimeter points are bar-tacked onto a webbing loop you can reach with gloves on. Pitched low it clears 900mm at the head; pitched high it becomes a kitchen for four. Packed with its guys and pegs it weighs 640g and rolls to the size of a water bottle.
Description folded
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/fold-text
Props
- lines
- number
- default 3
- Visible lines while folded.
- children
- React.ReactNode
- default —
- The text.
- moreLabel
- string
- default "Read more"
- Button copy while folded.
- lessLabel
- string
- default "Show less"
- Button copy while open.
- open / defaultOpen
- boolean
- default false
- Controlled or initial open state.
- onOpenChange
- (open: boolean) => void
- default —
- Fires when the disclosure opens or folds.
| Prop | Type | Default | Description |
|---|---|---|---|
| lines | number | 3 | Visible lines while folded. |
| children | React.ReactNode | — | The text. |
| moreLabel | string | "Read more" | Button copy while folded. |
| lessLabel | string | "Show less" | Button copy while open. |
| open / defaultOpen | boolean | false | Controlled or initial open state. |
| onOpenChange | (open: boolean) => void | — | Fires when the disclosure opens or folds. |