KQ-1184 · CROSSWORD/GUESS
Crossword Guess
A status line solved into a crossword: each phrase fills a row of squares under its clue numbers while the next phrase waits below as empty squares. A drawn pencil writes the letters in graphite, a few of them near misses; once the row is pencilled it flips end over end on springs.snap, rubs each wrong guess out with crumbs falling, writes the right letter, and a pen then inks the row, the phrase is announced and the grid scrolls up a row on springs.glide, the tool following its targets on springs.flick. The pointer over a square lights its entry and the clue bar reads its number; pressing a square checks it — a wrong guess is rubbed out on the spot, a right one inked — and the keyboard does the same with a cursor square moved by the arrow keys.
Fieldline Daily · crossword No. 412
solving · 1 of 3 · tap a wrong guess to rub it out
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/crossword-guess
Props
- phrases
- string[]
- default —
- The status phrases, solved into the grid one row each and cycled in order.
- active
- boolean
- default true
- Solving. False finishes the row being solved briskly, then solves doneText with no wrong guesses and rests; nothing loops.
- doneText
- string
- default —
- The row that stays once inactive. Defaults to the last phrase.
- speed
- number
- default 1
- How fast the solver works, 0.5 to 2: the pencil's rhythm, the rubs, the ink and the rest.
- guesses
- number
- default 1
- Wrong guesses pencilled into each phrase before they are rubbed out, 0 to 3 (never more than a third of its letters). Dealt as each row begins.
- grid
- "news" | "pastel" | "ink"
- default "news"
- How the grid is printed: news is cream squares, black blocks and black ink; pastel gives each entry its own tint with violet ink; ink is a night edition with indigo squares, silver pencil and cream ink.
- progress
- number
- default —
- Determinate progress, 0 to 1. The phrases share it in equal bands, and within its band a row is pencilled, corrected and inked in step with it; entering the next band finishes the row and scrolls on.
- sound
- boolean
- default false
- Play the visitor's ticks as the pointer or cursor crosses squares and as a check inks a letter, and the scratch of a rub the visitor started. The solver's own work is silent.
- disabled
- boolean
- default false
- The grid keeps solving, but squares cannot be checked.
- onPhraseChange
- (index: number) => void
- default —
- A row began: its index in phrases, or -1 for doneText. Also reported on the first commit.
- className
- string
- default —
- Classes for the root; it is w-full and sizes its squares from its own width.
| Prop | Type | Default | Description |
|---|---|---|---|
| phrases | string[] | — | The status phrases, solved into the grid one row each and cycled in order. |
| active | boolean | true | Solving. False finishes the row being solved briskly, then solves doneText with no wrong guesses and rests; nothing loops. |
| doneText | string | — | The row that stays once inactive. Defaults to the last phrase. |
| speed | number | 1 | How fast the solver works, 0.5 to 2: the pencil's rhythm, the rubs, the ink and the rest. |
| guesses | number | 1 | Wrong guesses pencilled into each phrase before they are rubbed out, 0 to 3 (never more than a third of its letters). Dealt as each row begins. |
| grid | "news" | "pastel" | "ink" | "news" | How the grid is printed: news is cream squares, black blocks and black ink; pastel gives each entry its own tint with violet ink; ink is a night edition with indigo squares, silver pencil and cream ink. |
| progress | number | — | Determinate progress, 0 to 1. The phrases share it in equal bands, and within its band a row is pencilled, corrected and inked in step with it; entering the next band finishes the row and scrolls on. |
| sound | boolean | false | Play the visitor's ticks as the pointer or cursor crosses squares and as a check inks a letter, and the scratch of a rub the visitor started. The solver's own work is silent. |
| disabled | boolean | false | The grid keeps solving, but squares cannot be checked. |
| onPhraseChange | (index: number) => void | — | A row began: its index in phrases, or -1 for doneText. Also reported on the first commit. |
| className | string | — | Classes for the root; it is w-full and sizes its squares from its own width. |