{"id":16182808,"url":"https://github.com/snowfrogdev/age-calculator-app","last_synced_at":"2025-04-07T12:41:10.976Z","repository":{"id":158920798,"uuid":"634310680","full_name":"snowfrogdev/age-calculator-app","owner":"snowfrogdev","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-01T13:55:09.000Z","size":744,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-13T15:23:04.583Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snowfrogdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-04-29T18:00:29.000Z","updated_at":"2023-04-30T20:02:40.000Z","dependencies_parsed_at":"2023-06-01T14:15:37.976Z","dependency_job_id":null,"html_url":"https://github.com/snowfrogdev/age-calculator-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowfrogdev%2Fage-calculator-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowfrogdev%2Fage-calculator-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowfrogdev%2Fage-calculator-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowfrogdev%2Fage-calculator-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snowfrogdev","download_url":"https://codeload.github.com/snowfrogdev/age-calculator-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247655039,"owners_count":20974113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-10T06:44:01.200Z","updated_at":"2025-04-07T12:41:10.953Z","avatar_url":"https://github.com/snowfrogdev.png","language":"TypeScript","readme":"# Frontend Mentor - Age calculator app solution\n\nThis is a solution to the [Age calculator app challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/age-calculator-app-dF9DFFpj-Q). Frontend Mentor challenges help you improve your coding skills by building realistic projects.\n\n## Table of contents\n\n- [Frontend Mentor - Age calculator app solution](#frontend-mentor---age-calculator-app-solution)\n  - [Table of contents](#table-of-contents)\n  - [Overview](#overview)\n    - [The challenge](#the-challenge)\n    - [Screenshot](#screenshot)\n    - [Links](#links)\n  - [My process](#my-process)\n    - [Built with](#built-with)\n    - [Useful resources](#useful-resources)\n  - [Author](#author)\n\n## Overview\n\n### The challenge\n\nUsers should be able to:\n\n- View an age in years, months, and days after submitting a valid date through the form\n- Receive validation errors if:\n  - Any field is empty when the form is submitted\n  - The day number is not between 1-31\n  - The month number is not between 1-12\n  - The year is in the future\n  - The date is invalid e.g. 31/04/1991 (there are 30 days in April)\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- **Bonus**: See the age numbers animate to their final number when the form is submitted\n\n### Screenshot\n\n![Screenshot](./assets/screenshot.png)\n\n\n### Links\n\n- Solution URL: [https://github.com/snowfrogdev/age-calculator-app](https://github.com/snowfrogdev/age-calculator-app)\n- Live Site URL: [https://snowfrogdev.github.io/age-calculator-app/](https://snowfrogdev.github.io/age-calculator-app/)\n\n## My process\n\n### Built with\n\n- Semantic HTML5 markup\n- CSS custom properties\n- Flexbox\n- Mobile-first workflow\n- Custome elements\n- Typescript\n- No bundlers, no frameworks, no ui libraries\n\n### Useful resources\n\n- [web.dev](https://web.dev/custom-elements-v1/#rules-on-creating-custom-elements) - This article on custome elements helped me with reflecting properties to attributes.\n\n## Author\n\n- Website - [Philippe Vaillancourt](https://snowfrog.dev)\n- Frontend Mentor - [@snowfrogdev](https://www.frontendmentor.io/profile/snowfrogdev)\n- Twitter - [@snowfrogdev](https://www.twitter.com/snowfrogdev)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowfrogdev%2Fage-calculator-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnowfrogdev%2Fage-calculator-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowfrogdev%2Fage-calculator-app/lists"}