{"id":40844147,"url":"https://github.com/byjackli/sadforms","last_synced_at":"2026-01-21T23:10:23.696Z","repository":{"id":42842875,"uuid":"467672678","full_name":"byjackli/sadforms","owner":"byjackli","description":"low-level accessible forms designed for Svelte programmers.","archived":false,"fork":false,"pushed_at":"2025-07-21T12:33:07.000Z","size":8028,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-30T23:47:15.324Z","etag":null,"topics":["accessible","form-validation","forms","frontend","svelte","svelte-components","ui","validation"],"latest_commit_sha":null,"homepage":"https://sadforms.com/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byjackli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-08T20:55:23.000Z","updated_at":"2022-03-17T07:21:33.000Z","dependencies_parsed_at":"2025-07-02T04:23:01.084Z","dependency_job_id":"941b1424-7dc6-4d67-a113-f51d57761e90","html_url":"https://github.com/byjackli/sadforms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/byjackli/sadforms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byjackli%2Fsadforms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byjackli%2Fsadforms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byjackli%2Fsadforms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byjackli%2Fsadforms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byjackli","download_url":"https://codeload.github.com/byjackli/sadforms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byjackli%2Fsadforms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28646797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["accessible","form-validation","forms","frontend","svelte","svelte-components","ui","validation"],"created_at":"2026-01-21T23:10:23.627Z","updated_at":"2026-01-21T23:10:23.684Z","avatar_url":"https://github.com/byjackli.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\u003cbr/\u003e\n  \n\u003ca href=\"https://npmjs.com/package/sadforms\"\u003e![GitHub package.json version](https://img.shields.io/github/package-json/v/byjackli/sadforms?label=%20\u0026style=flat-square)\u003c/a\u003e\n\u003ca href=\"https://npmjs.com/package/sadforms\"\u003e![npm](https://img.shields.io/github/languages/code-size/byjackli/sadforms?label=%20\u0026style=flat-square)\u003c/a\u003e\n\u003ca href=\"https://npmjs.com/package/sadforms\"\u003e![npm](https://img.shields.io/npm/types/sadforms?label=TYPE\u0026style=flat-square)\u003c/a\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://npmjs.com/package/sadforms\"\u003e![npm](https://img.shields.io/npm/dw/sadforms?color=%23048711\u0026label=DOWNLOADS\u0026style=flat-square)\u003c/a\u003e\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cbr/\u003e\n  \n  \u003ca href=\"https://github.com/byjackli/sadforms\"\u003e\n    \u003cimg src=\"readme/favicon-transparent75.png\"\u003e\n  \u003c/a\u003e\n  \u003ch1 align=\"center\"\u003e\n    Sad Forms\n  \u003c/h1\u003e\n\n  \u003ch3 align=\"center\"\u003e\n    low-level accessible forms designed for Svelte programmers\n  \u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://sadforms.com/edit#sample%7C\"\u003e\u003cstrong\u003eLive Demo »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://sadforms.com\"\u003eWebsite\u003c/a\u003e\n    \u0026nbsp; • \u0026nbsp;\n    \u003ca href=\"https://sadforms.com/donate\"\u003eDonate\u003c/a\u003e\n    \u0026nbsp; • \u0026nbsp;\n    \u003ca href=\"https://sadforms.com/docs\"\u003eDocumentation\u003c/a\u003e\n    \u0026nbsp; • \u0026nbsp;\n    \u003ca href=\"https://sadforms.com/feedback\"\u003eFeedback\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\n\n## About\n\nThree quarter’s into first release, I discovered there already exists a plethora of Svelte form solutions. Oops. We’ll just call it reinventing the wheel or understanding/appreciating the wheel on a deeper level, whatever floats yer boat. \n\nSad Forms is a byproduct of another, much larger, passion project. \n\nI’ve forgotten the initial solution Sad Forms was designed to solve, but accessibility is top priority! I am aware areas of the form can be improved, such as printable character navigation for dropdown/selects or live file previews, and I’m doing my best to deliver (because I also need it for my main passion project). \n\nSee the [roadmap](https://sadforms.com/docs/roadmap) for list of upcoming features and the version logs.\n\n\u003cimg style=\"width: 100%;\" src=\"readme/Completing.webp\"\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\n\n## Feature Highlight\n\nSad Forms currently supports most of the popular HTML input elements while enhancing others. For a complete list of working and upcoming fields, see [Supported Fields](https://sadforms.com/docs/roadmap#Supported-Fields) section.\n\n* ♿ a11y tested on desktop (NVDA) and mobile (TalkBack, VoiceOver)\n* 🎨 easily change UI by loading in your own CSS file\n* ✏ customizable dropdown with “add an option” feature\n* ❓ complex form validation\n* 🔏 redact inactive fields\n* 📴 offline mode via localStorage\n\n... and more!\n\nDiscover other features by exploring the documentation or tinkering with the built-in form builder, see [Sample Form](https://sadforms.com/edit#sample%7C) for an immediate example.\n\n\u003cbr/\u003e\n\n\n\n## Setup\n\n0. Pre-requisite: SvelteKit is installed. See [SvelteKit](https://kit.svelte.dev) website for help.\n1. `npm install sadforms`\n2. `import Form from “sadforms”;`\n3. add the `\u003cForm /\u003e` component\n4. load your custom values\n\nstill not sure how to proceed? try [https://sadforms.com/docs](https://sadforms.com/docs)\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\n\n## Form Builder\n\nUnless you’re somehow dynamically creating sign-up/log-in forms on the fly, feel free to utilize the online [form builder tool](https://sadforms.com) to quickly create static forms. Diagnose and view changes live in the browser.\n\nThe form builder tool is rich with debug mode and type-check-free function previewing.\n\nSee the [roadmap](https://sadforms.com/docs/roadmap) for list of upcoming features.\n\n\u003cimg style=\"width: 100%;\" src=\"readme/Did You Smile Today.webp\"\u003e\n\n\u003cbr/\u003e\n\n\n\n## House Keeping\n\n* [Apache License 2.0](./LICENSE).\n* [Code of Conduct](./CODE_OF_CONDUCT.md)\n* [Contributing](./CONTRIBUTING.md)\n\n\u003cbr/\u003e\n\n\n\n## Contributing\n\nSad Forms is created and maintained by Jack Li. He is reachable through [twitter](https://twitter.com/byjackli) and email via \u003chello@byjackli.com\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003cbr/\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyjackli%2Fsadforms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyjackli%2Fsadforms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyjackli%2Fsadforms/lists"}