5 semantic color roles, each with base, tint and ink levels, verified for WCAG contrast against nine backgrounds
esl-feedback-design-system — HTML Business Template
By itsfedor
An HTML design system for ESL student feedback documents, offering a semantic color palette, slot-marked templates, static conformance checks and render QA tools.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Color never carries meaning alone; revision cards repeat the category with text labels, legend order is fixed, and color-blind simulation reading is supported
6 font sizes, a 4px spacing grid, 3 corner radii, no shadows; values outside this scale are rejected by the linter
Mobile-first layout (390px), scrollable table containers, :focus-visible outlines, print stylesheet, no inline styles and no third-party JavaScript
Provides an IELTS score card variant: dot ratings and soft color blocks by skill, reusing the same tokens
Template Details
This project codifies the typographic rules for ESL teaching feedback documents into an inspectable HTML design system, covering two document types: assignment analysis and IELTS score cards. The system replaces scattered color values with 5 semantic color roles (grammar, word choice, sentence fluency, style and spoken, punctuation). Each role includes base, tint and ink levels, and contrast is verified against the nine backgrounds on which it appears; color never carries meaning alone, as every revision card repeats the category with a text label so it remains readable under red-green color blindness simulation. Typography is constrained to 6 font sizes, a 4px spacing grid, 3 corner radii and no shadows; the checker rejects any value outside this scale.
The workflow has four steps: copy the assignment analysis template or score card template from the templates directory, fill in all <!-- SLOT --> markers, and use only system class names; run check_design.py for static conformance checking (expected 9/9); run qa_run.py to check console errors, horizontal overflow, fonts and audio in headless Chromium and take screenshots; if changes are needed after delivery, generate a new dated file rather than editing directly. The examples directory provides two synthetic demo documents, both passing the linter 9/9 and Playwright QA, with reports saved in assets.
Limitations and boundaries: qa_run.py requires the document to contain at least one <audio> with a source; text-only documents need --allow-no-audio. The tools depend on the Python standard library and Playwright (the playwright package and Chromium must be installed separately). The repository provides no framework version number and makes no production-readiness claim; third-party assets such as demo images, fonts and icons must be checked individually under their respective licenses.
Is it right for your project?
Use Cases
- Generate structurally consistent assignment analysis feedback documents for ESL students
- Create IELTS diagnostic score cards showing ratings and comments by skill
- Verify document conformance and rendering performance with static checks and headless browser QA before delivery
- Serve as a style and checking specification for feedback documents within a teaching team
Suitable For
- Teachers or teaching teams needing a unified format for ESL feedback documents
- Developers who want to constrain HTML document styling with inspectable rules
- Creators of feedback documents concerned with contrast and color-blind readability
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Install Playwright: python3 -m pip install playwright, then python3 -m playwright install chromium
- 2
Copy a template from templates and fill in all <!-- SLOT --> markers, using only system class names
- 3
Run python3 tools/check_design.py doc.html for static conformance checking, expected 9/9
- 4
Run python3 tools/qa_run.py doc.html for render QA; text-only documents need --allow-no-audio
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons and other third-party assets must be checked under their respective licenses; the code's MIT license alone is not sufficient to judge them.
- External services such as domains, hosting, databases, payments or AI may incur separate charges.
- qa_run.py requires the document to contain at least one <audio> element with a source; text-only documents must add the --allow-no-audio parameter to pass render QA.
- Render QA depends on the external Playwright toolchain; you must install the playwright package and download the Chromium browser yourself, as it does not run on the standard library alone.
- Template usage restriction: only class names defined within the system may be used; introducing new colors, font sizes or spacing values will cause the linter to fail.
- If changes are needed after delivery, a new dated file must be generated rather than editing the delivered document directly.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
`qa_run.py` expects at least one `<audio>` with a source; for written-only documents pass `--allow-no-audio`.
Original README
python3 -m pip install playwright python3 -m playwright install chromium
Original README
Only classes from the system; no new colours, sizes or spacings.
Original README
https://github.com/itsfedor/esl-feedback-design-system/blob/main/LICENSEhttps://github.com/itsfedor/esl-feedback-design-system/blob/main/README.mdA later change means a new dated file, never an edit.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-07. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 68 / 100
- Technologies
- HTML
- Website type
- Corporate Website
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-10-07
- Screenshot last checked
- 2026-10-07
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies HTML as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-08
Inspect the recorded source material
SHA-256: 4c22b13fcb72f97fb02c72ce58a9025b24779ac772eaf8bee074107b115c438a
2026-10-07T16:51:12.880Z
Source file / repository<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.png"> <img alt="ESL Feedback Design System — palette, slot-marked templates, a conformance linter and render QA — by Fedor Molodtsov" src="assets/banner-light.png" width="100%"> </picture> <p align="center"><sub><b>Fedor Molodtsov</b> — AI automation engineer · <a href="https://github.com/itsfedor">github.com/itsfedor</a></sub></p> # ESL Feedback Design System [](LICENSE) [](docs/design-system.md#contrast-wcag-2x) [](tools/qa_run.py) A small, strict design system for ESL student-feedback documents: homework analyses and IELTS band cards. One palette, slot-marked HTML templates, a static conformance linter and a render-QA runner. Built for a real teaching practice where the student reads feedback on a phone and every document must behave the same way. It is a working style turned into a system: 26 drifting font sizes folded into 6, a pile of one-off hex values collapsed into 5 semantic roles, and every decision pinned by numbers. WCAG contrast minimums with measured values, colour-blindness simulation, a mobile-first layout at 390px, a print stylesheet, and two tools that must both be green before a document ships. ## Ship a document in four steps 1. Copy `templates/homework-analysis-template.html` (or the band-card variant) and fill every `<!-- SLOT -->` marker. Only classes from the system; no new colours, sizes or spacings. 2. `python3 tools/check_design.py doc.html` — static conformance, 9/9 expected. 3. `python3 tools/qa_run.py doc.html` — headless Chromium: console errors, overflow, fonts, audio, screenshots. 4. Deliver. A later change means a new dated file, never an edit. ```bash python3 -m pip install playwright python3 -m playwright install chromium ``` ## Screenshots   ## Demo documents [`examples/demo-homework-analysis.html`](examples/demo-homework-analysis.html) and [`examples/demo-band-card.html`](examples/demo-band-card.html) are synthetic documents (no real student content). Both pass: linter **9/9** · Playwright QA **PASS** at 1440×900 and 390×844 — 0 console errors, 0 px overflow, Inter loaded, audio present. The machine reports ship in `assets/qa-report-*.json`. ## What's inside ``` esl-feedback-design-system/ ├── templates/ homework-analysis-template.html · band-card-template.html · REPLACE-ME.wav ├── tools/ check_design.py · qa_run.py · selftest.sh · fixtures/ ├── examples/ demo-homework-analysis.html · demo-band-card.html · demo-tone.wav ├── docs/ design-system.md (full spec, v1.4) ├── assets/ banners · demo screenshots · QA reports └── tokens.json machine-readable palette, type scale, spacing (read by the linter) ``` ## The system in one minute - **Five semantic colour roles** (grammar / word choice / sentence flow / style & speech / punctuation), each a base + tint + ink triplet, all contrast-checked against the nine backgrounds they sit on. - **Redundant encoding:** colour never carries meaning alone. Every fix card repeats its category as a text chip, and the legend order is fixed — so the document still reads under deuteranopia. - **Six font sizes, one 4px spacing grid, three radii, no shadows.** The linter fails any value outside the scale. - **Mobile-first, print-friendly, accessible:** 390px layout, scrolling table wrappers, `:focus-visible` outlines, a print stylesheet, zero inline styles, zero third-party JavaScript. - **A band-card variant** for IELTS diagnostics: dot-scale bands per skill and pastel skill-coded blocks (v1.4), same tokens. Full spec: [docs/design-system.md](docs/design-system.md). Machine-readable tokens: [tokens.json](tokens.json). ## Tools | Tool | What it checks | |---|---| | `tools/check_design.py` | Structure, version stamp, required components, inline styles, print/focus rules, font scale, palette. Python stdlib only | | `tools/qa_run.py` | Headless Chromium at desktop + mobile: console and page errors, horizontal overflow (locates the culprit by bisection), fonts, audio sources, screenshots, `qa-report.json` | | `tools/selftest.sh` | Runs both tools against the known-good / known-bad fixtures and asserts exit codes | `qa_run.py` expects at least one `<audio>` with a source; for written-only documents pass `--allow-no-audio`. ## License MIT © Fedor Molodtsov
Explore similar templates
Compare previews and descriptions within the same stack and category.

mazer
Mazer is a free and open-source Bootstrap 5 admin dashboard and landing page template that does not depend on jQuery. It provides prebuilt releases, source builds, and CDN inclusion, and includes dark mode, perfect-scrollbar, and ApexCharts examples.
HTML · Admin dashboard

Freelancer
A bright, single-page Bootstrap portfolio template for freelancers, designers, and small studios. It includes a responsive portfolio grid with modal detail windows and an SB Forms contact form that requires an API token.
HTML · Portfolio

Creative
A single-page marketing template by Start Bootstrap for creative agencies and product services, built on Bootstrap with SCSS, featuring a portfolio grid and call-to-action sections. It includes pre-set SB Forms markers for form integration and npm build scripts for source customization.
HTML · Corporate Website

startbootstrap-agency
Agency is a one-page Bootstrap portfolio theme from Start Bootstrap, MIT licensed. It includes a responsive portfolio grid with modal details and a preconfigured SB Forms contact form that requires an API token.
HTML · Corporate Website

startbootstrap-landing-page
A general-purpose Bootstrap landing page template from Start Bootstrap, MIT licensed, with a Pug/SCSS/npm build pipeline.
HTML · Corporate Website

Landing-Page
A general-purpose landing page HTML template maintained by Tailwind Toolbox, written in pure HTML and loading the complete Tailwind CSS via CDN.
HTML · Corporate Website
