{"id":31134291,"url":"https://github.com/haquanq-frontendmentor/contact-form","last_synced_at":"2026-05-03T05:38:32.423Z","repository":{"id":242656815,"uuid":"810180780","full_name":"haquanq-frontendmentor/contact-form","owner":"haquanq-frontendmentor","description":"Solution for frontendmentor.io challenge: contact-form","archived":false,"fork":false,"pushed_at":"2025-11-02T10:30:17.000Z","size":461,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-02T12:12:25.731Z","etag":null,"topics":["accessibility","bem-css","frontendmentor","frontendmentor-junior","html","junior","postcss"],"latest_commit_sha":null,"homepage":"https://haquanq-frontendmentor.github.io/contact-form/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haquanq-frontendmentor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-04T07:49:04.000Z","updated_at":"2025-11-02T10:30:20.000Z","dependencies_parsed_at":"2024-07-08T06:46:29.557Z","dependency_job_id":"dfc7d053-cb3e-4e11-9e3e-88d8d4db4d69","html_url":"https://github.com/haquanq-frontendmentor/contact-form","commit_stats":null,"previous_names":["haquanq/fm-contact-form"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/haquanq-frontendmentor/contact-form","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haquanq-frontendmentor%2Fcontact-form","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haquanq-frontendmentor%2Fcontact-form/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haquanq-frontendmentor%2Fcontact-form/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haquanq-frontendmentor%2Fcontact-form/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haquanq-frontendmentor","download_url":"https://codeload.github.com/haquanq-frontendmentor/contact-form/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haquanq-frontendmentor%2Fcontact-form/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32508901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","bem-css","frontendmentor","frontendmentor-junior","html","junior","postcss"],"created_at":"2025-09-18T06:51:30.626Z","updated_at":"2026-05-01T18:33:10.716Z","avatar_url":"https://github.com/haquanq-frontendmentor.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Frontend Mentor - Contact Form Solution\n\nThis is a solution to the [Contact form challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/contact-form--G-hYlqKJj).\nFrontend Mentor challenges help you improve your coding skills by building realistic projects.\n\n\u003cp\u003e\n  \u003ca href=\"https://www.frontendmentor.io/solutions/pixel-perfected-better-focus-effects-with-html-and-css-and-js-jvT7UJIT9d\"\u003e\n    \u003cimg\n      alt=\"Solution post\"\n      src=\"https://img.shields.io/badge/Frontendmentor-blue?label=Solution%20on\"\n    /\u003e\u003c/a\u003e\n  \u003ca href=\"https://haquanq-frontendmentor.github.io/contact-form/\"\u003e\n    \u003cimg\n      alt=\"Live demo\"\n      src=\"https://img.shields.io/badge/Demo-teal?label=Live\"\n    /\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\n    \u003e\u003cimg\n      allt=\"MIT License\"\n      src=\"https://img.shields.io/badge/MIT-blue?label=license\"\n  /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![](./docs/preview.jpg)\n\n## Table of Contents\n\n- [Project Overview](#sunrise-project-overview)\n- [Tech Stack and Approach](#stars-tech-stack-and-approach)\n- [Local Development](#leaves-local-development)\n- [Deployment](#maple_leaf-deployment)\n\n## :sunrise: Project Overview\n\n### Challenge Requirements\n\n- Complete the form and see a success toast message upon successful submission\n- Receive form validation messages if:\n  - A required field has been missed\n  - The email address is not formatted correctly\n- Complete the form only using their keyboard\n- Have inputs, error messages, and the success message announced on their screen reader\n- View the optimal layout for the interface depending on their device's screen size\n- See hover and focus states for all interactive elements on the page\n\n### Status\n\nFeatures\n\n- [x] Accessible form controls, validations, keyboard navigation\n\nAccessibility\n\n- [x] Responsive accross different screen sizes\n- [x] Interactive elements have clear focus indicator\n\n## :stars: Tech Stack and Approach\n\n### Built With\n\n- **HTML5** – Semantic structure\n- **CSS Grid \u0026 Flexbox** – Layout\n- **PostCSS** – Nested rules, custom media queries, future CSS features, minification\n- **Stylelint** – CSS linting, code style consistency\n- **TypeScript** - Interactivity and application logic\n- **Vite** - Fast development server, production build and easy configuration\n\n### Approach\n\n- Mobile-first workflow for better performance on smaller devices\n- Accessibility guided by [ARIA Authoring Practices Guide (APG)](https://www.w3.org/WAI/ARIA/apg/)\n\n## :leaves: Local Development\n\n### Prerequisites\n\nInstall the following:\n\n- Git (latest version)\n- Node.js (latest LTS recommended)\n- pnpm (latest version)\n\n### Setup\n\n```\ngit clone https://github.com/haquanq-frontendmentor/contact-form.git\ncd contact-form\npnpm install\n```\n\n### Start Development Server\n\n```\npnpm dev\n```\n\n## :maple_leaf: Deployment\n\nDeployed to Github Pages via Github Action.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaquanq-frontendmentor%2Fcontact-form","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaquanq-frontendmentor%2Fcontact-form","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaquanq-frontendmentor%2Fcontact-form/lists"}