Crossword¶
H5P equivalent
H5P Crossword
When to use¶
Use Crossword for grid-based vocabulary challenges. Define entries with clues, answers, grid positions, and across/down direction.
Requirements¶
rowsandcolsbound the grid.Entries must fit without conflicting letters.
Try it¶
Documentation demo
Use the Live demo, React, AI prompt, and Packaging / Manifest tabs below. Embedded demos disable telemetry, xAPI, and the LMS bridge. For production delivery, use the CLI template src/courseConfig.ts and LMS Go-Live.
<Crossword
checkId="security-crossword"
rows={4}
cols={3}
entries={[
{ id: "a1", clue: "Two-step login, for short (3 letters)", answer: "MFA", row: 1, col: 0, direction: "across" },
{ id: "d1", clue: "How apps talk to servers, for short (3 letters)", answer: "API", row: 1, col: 2, direction: "down" },
]}
/>
Copy into Cursor, Copilot, or ChatGPT after the vibe coding starter context:
Read lessonkit.json and src/App.tsx before editing.
Add a Crossword block (H5P-style: Crossword) like this example inside the active <Lesson>:
<Crossword
checkId="security-crossword"
rows={4}
cols={3}
entries={[
{ id: "a1", clue: "Two-step login, for short (3 letters)", answer: "MFA", row: 1, col: 0, direction: "across" },
{ id: "d1", clue: "How apps talk to servers, for short (3 letters)", answer: "API", row: 1, col: 2, direction: "down" },
]}
/>
Requirements:
- Import only from @lessonkit/react; use block types from block-catalog.v3.json.
- Keep existing courseId, lessonId, and navigation stable unless I ask to add a lesson.
Sync lessonkit.json — add under course.assessments[]:
{
"checkId": "security-crossword",
"kind": "crossword",
"question": "Complete the security crossword."
}
- After edits, list changed files and what to verify in the browser (lessonkit dev).
Workflow tips: https://lessonkit.readthedocs.io/en/latest/guides/vibe-coding/prompting-and-workflows.html
Add under course.assessments[]:
{
"checkId": "security-crossword",
"kind": "crossword",
"question": "Complete the security crossword."
}