The board layout
The game board is a 4×4 visual grid rendered in the#grid element. The top-left corner contains the Wordgrid logo. The three cells across the top row are column headers (.col-header), each displaying a category label in bold. The three cells down the left column are row headers (.row-header), each displaying a category label in bold. The remaining 3×3 area is the play area.
Every play cell sits at the intersection of one row category and one column category. An unrevealed cell displays a ? and must be filled with a word that satisfies both the row category above it and the column category to its left.
Category conditions are pattern-based. Examples include length rules (“5 letters”), prefix rules (“Starts ‘re’”), suffix rules (“Ends with ‘ion’”), letter-presence rules (“Contains ‘q’”), and structural rules (“Palindrome” or “Double letter”). Each board randomly selects three row categories and three column categories from the full list.
Core gameplay loop
Read the categories
Before guessing, read the three column headers across the top and the three row headers down the left side. Each play cell must satisfy the category from its column and the category from its row.
Click a cell to open the guess modal
Click any unrevealed
? cell to open the guess modal (#cellModal). The modal header (#modalHeaderText) shows the two categories that apply to that cell, formatted as Row category + Column category. You can also activate a cell with the keyboard — press Enter or Space when the cell is focused.Type your guess and submit
Type a word into the input field (
#modalInput) and click Guess (#modalGuessBtn) or press Enter. Your guess is normalized to lowercase and stripped of non-alphabetic characters before validation.Receive the result
If your guess is accepted, the cell is revealed with the word and the points it earned displayed below it. If your guess is rejected, you receive feedback and the cell remains open for another attempt (in Normal mode) or the consequences described under Difficulty apply.
Guess validation rules
Every guess must exist in the Wordgrid word list. Guesses that are not found in the list are always rejected, regardless of whether they would satisfy the category conditions.
- The normalized word is present in the word list.
- The word satisfies the row category for the target cell.
- The word satisfies the column category for the target cell.
- The word has not already been used in another cell on the board. Each word may appear at most once.
Difficulty behavior
- Normal
- Hard
- Expert
Invalid guesses (not in word list, category mismatch, or duplicate) are rejected with an explanatory message. No penalty is applied and the cell remains available for another attempt.
Sidebar information
The sidebar to the right of the grid displays live game state:| Field | Description |
|---|---|
Board ID (#boardHash) | In Daily mode, the current date (YYYY-MM-DD). In Infinite mode, a six-character hash derived from the board’s word set. |
Guesses (#guessesInfo) | Total number of guess attempts made, including invalid ones. |
Score (#scoreInfo) | Your current score as current / maximum (percentage). |
Difficulty (#difficultyValue) | The active difficulty level: Normal, Hard, or Expert. |
Countdown (#countdown) | Visible in Daily mode only. Shows the time remaining until the next daily board in HH:MM:SS format. |
Reroll and reset
Reroll (the rotate button in the sidebar) generates a completely new random board with fresh categories and clears all progress. This button is only available in Infinite mode; it is disabled in Daily mode. Reset board (the history icon in the dock) clears all guesses and scores on the current board while keeping the same categories and best-word solutions. This is available in both modes and requires confirmation before proceeding.Keyboard accessibility
All unrevealed cells are fully keyboard accessible:- Each unrevealed cell has
tabIndex="0"androle="button", so it receives focus in the normal tab order. - Press Enter or Space on a focused cell to open the guess modal.
- The modal input receives focus automatically when the modal opens.
- Press Escape to close the modal or the settings panel without submitting.
- Revealed and eliminated cells have
tabIndex="-1"and are excluded from the tab order.