WordleBoard
WordleBoard is a custom Gradio component that delivers the familiar Wordle gameplay directly inside a Gradio Blocks app. It handles the full game loop: rendering the grid, tracking guesses, evaluating feedback, and emitting actions back to the Python backend.
Features
- Wordle-style grid rendered as a custom component
- Built-in Wordle rules for scoring guesses (
correct,present,absent) - Reset support and user feedback messaging
- Integrates with standard Gradio inputs (e.g.
Textbox) for user guesses - Compatible with Gradio’s custom component lifecycle (
postprocess, examples)
Backend Usage
import gradio as gr
from gradio_wordleboard import WordleBoard
wordle_component = WordleBoard()
private_state = wordle_component.create_game_state()
def handle_guess(guess: str):
global private_state
private_state, public_state = wordle_component.apply_action({"action": "guess", "guess": guess}, private_state)
return wordle_component.to_public_dict(public_state)
def handle_reset():
global private_state
private_state = wordle_component.create_game_state()
return wordle_component.to_public_dict(wordle_component.public_from_private(private_state))
with gr.Blocks() as demo:
board = WordleBoard(value=wordle_component.to_public_dict(wordle_component.public_from_private(private_state)))
guess_box = gr.Textbox(label="Enter a guess", placeholder="Type a 5-letter word")
submit_btn = gr.Button("Submit")
reset_btn = gr.Button("Reset", variant="secondary")
submit_btn.click(fn=handle_guess, inputs=guess_box, outputs=board, queue=False)
reset_btn.click(fn=handle_reset, outputs=board, queue=False)
Frontend
frontend/Index.svelterenders the game board and status message.frontend/Example.svelteshows a compact preview for use ingr.Examples.
Refer to the official Gradio guides for additional background on custom component concepts and frontend development workflows: Key Component Concepts, Frontend Guide, and FAQ.
Building and Publishing
- Prep:
cd /Users/ben/code/wordle_gradio/wordleboard && uv run npm install --prefix frontendinstalls the Svelte deps the CLI expects (required once after scaffolding per the “create → dev → build → publish” flow in the custom-component guide Gradio Docs). - Hot-reload demo: stay inside
wordleboard/and runuv run gradio component dev. The CLI spins up the backend + Vite frontend; follow the “Frontend Server” URL printed to the console to play with your Wordle UI live (Gradio Docs). - Python demo app: for a quick sanity check without the dev server,
uv run python demo/app.pylaunches the packaged Blocks example using the component. - Build artifacts: when you’re happy, still in
wordleboard/runuv run gradio component build. This emits a wheel/tarball underdist/plus regenerated docs, matching the documented build phase before publishing (Gradio Docs). - Next steps: After confirming the build, you can
uv run gradio component publishto push to PyPI/Spaces, or install the wheel elsewhere to consume the component.
Metadata
Release files for gradio-wordleboard 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gradio_wordleboard-0.0.1-py3-none-any.whl | Python 3 | none | any | Details for gradio_wordleboard-0.0.1-py3-none-any.whl |
Release files / gradio_wordleboard-0.0.1-py3-none-any.whl
| Download URL | gradio_wordleboard-0.0.1-py3-none-any.whl |
|---|---|
| Size | 86.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d448352f3d87251971e9b03a7cac445156509ba2868ee736e31b5be2010e7605
|
|
BLAKE2b-256 checksum How to use checksums |
4161f9d3c3eab9e0f892a6707439b6fd2f410ae7c8e0face2eef592b0962732e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.10
|
Security for gradio-wordleboard 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.