An interactive, fast, and user-friendly web app for learning English irregular verbs (V1, V2, V3 forms). Perfect tool for English learners, ESL teachers, and anyone looking to improve their grammar and vocabulary.
π Live Demo: mityaua.github.io/irregular-verbs-table
- π Comprehensive Table: Clean, instantly searchable list of English irregular verbs (Infinitive, Past Simple, Past Participle).
- π Smart Search: Live search with URL sync and highlighting of matched forms.
- π Smart "Not Found" State: Shows a random irregular verb to learn when a search query yields no results.
- π Pronunciation: Click a speaker icon to hear the verb forms spoken via the Web Speech API.
- π Translation Links: Each verb links to its translation on Reverso Context (language detected from browser locale).
- π Modern UI/UX: Sticky header, scroll-to-top with reading progress indicator, and light/dark theme that follows the system preference.
- β‘ Performance Optimized: Built with Vue 3, Vite, and Tailwind CSS for rapid loading.
- π± Mobile Responsive: Perfectly adapts to any screen size.
| Technology | Description |
|---|---|
| Vue 3 | Reactive frontend framework |
| TypeScript | Type safety |
| Vite | Fast build tool |
| Tailwind CSS | Utility-first CSS (v4, CSS-first config) |
| Oxlint | The JavaScript Oxidation Compiler |
Clone the repository and install dependencies:
git clone https://github.com/mityaua/irregular-verbs-table.git
cd irregular-verbs-table
npm installStart the dev server:
npm run devOpen http://localhost:5173 to view it in your browser.
Note: The dev server uses HTTPS certificates generated by
vite-plugin-mkcert.
Generate a production-ready build:
npm run buildThe compiled files will be in the dist/ folder.
Deployment is fully automated via a GitHub Actions workflow (.github/workflows/deploy.yml). Every push to the main branch builds the project and publishes the dist/ folder to the gh-pages branch, which GitHub Pages serves automatically.
Note: The
baseoption invite.config.tsis set for GitHub Pages:base: "/irregular-verbs-table/";
βββ .github/workflows/ # CI/CD (build & deploy to GitHub Pages)
βββ public/ # Static assets (favicon, meta image, robots.txt, verbs.json)
βββ src/
β βββ assets/ # SVG icons and CSS
β β βββ css/index.css # Tailwind CSS entry point
β β βββ *.svg # Inline SVG icons
β βββ components/ # Vue components
β βββ consts/ # App constants
β βββ data/ # Verb data (JSON) and language maps
β βββ enums/ # Enums (table columns)
β βββ interfaces/ # TypeScript interfaces
β βββ App.vue # Root Vue component
β βββ main.ts # App entry point
β βββ style.css # Global styles
βββ index.html # HTML entry point (SEO meta tags)
βββ vite.config.ts # Vite config
βββ tsconfig.json # TypeScript config
βββ postcss.config.cjs # PostCSS config
βββ .oxlintrc.json # Oxlint config
βββ package.json
npm run dev # Start the dev server
npm run host # Start the dev server on the network
npm run build # Type-check and build for production
npm run preview # Preview the production build
npm run lint # Lint files with Oxlint
npm run type-check # Run vue-tsc type checking
npm run format # Format files using PrettierContributions, issues and feature requests are welcome!
- Fork the repository
- Create your branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add feature') - Push to the branch (
git push origin feature/YourFeature) - Create a new Pull Request
This project is licensed under the MIT License.