{"id":13393030,"url":"https://github.com/twbs/ratchet","last_synced_at":"2026-10-18T22:04:23.812Z","repository":{"id":4315028,"uuid":"5448530","full_name":"twbs/ratchet","owner":"twbs","description":"Build mobile apps with simple HTML, CSS, and JavaScript components. ","archived":false,"fork":false,"pushed_at":"2025-03-18T16:40:18.000Z","size":14596,"stargazers_count":14710,"open_issues_count":222,"forks_count":1408,"subscribers_count":587,"default_branch":"master","last_synced_at":"2026-10-03T20:32:00.926Z","etag":null,"topics":["css","html","javascript","ratchet"],"latest_commit_sha":null,"homepage":"http://goratchet.com","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/twbs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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},"funding":{"github":"twbs","open_collective":"bootstrap"}},"created_at":"2012-08-17T05:41:57.000Z","updated_at":"2026-10-02T15:15:04.000Z","dependencies_parsed_at":"2023-11-19T23:07:01.855Z","dependency_job_id":"be15319b-3d9b-44b8-aab3-9031eea680d0","html_url":"https://github.com/twbs/ratchet","commit_stats":{"total_commits":1128,"total_committers":64,"mean_commits":17.625,"dds":"0.43882978723404253","last_synced_commit":"c662c76a369148ac8887ac1831301de15e85e90f"},"previous_names":["maker/ratchet"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/twbs/ratchet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twbs%2Fratchet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twbs%2Fratchet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twbs%2Fratchet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twbs%2Fratchet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twbs","download_url":"https://codeload.github.com/twbs/ratchet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twbs%2Fratchet/sbom","scorecard":{"id":903589,"data":{"date":"2025-08-11","repo":{"name":"github.com/twbs/ratchet","commit":"c662c76a369148ac8887ac1831301de15e85e90f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 5/29 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.0.2 not signed: https://api.github.com/repos/twbs/ratchet/releases/253325","Warn: release artifact v2.0.1 not signed: https://api.github.com/repos/twbs/ratchet/releases/211093","Warn: release artifact v2.0.2 does not have provenance: https://api.github.com/repos/twbs/ratchet/releases/253325","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/twbs/ratchet/releases/211093"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T16:33:21.815Z","repository_id":4315028,"created_at":"2025-08-24T16:33:21.815Z","updated_at":"2025-08-24T16:33:21.815Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38342694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"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":["css","html","javascript","ratchet"],"created_at":"2024-07-30T17:00:41.346Z","updated_at":"2026-10-18T22:04:22.780Z","avatar_url":"https://github.com/twbs.png","language":"CSS","funding_links":["https://github.com/sponsors/twbs","https://opencollective.com/bootstrap"],"categories":["CSS","css","Framework or Library","Frameworks / Resources"],"sub_categories":["Hybrid Development","R"],"readme":"# [Ratchet](http://goratchet.com)\n[![GitHub Release](https://img.shields.io/github/release/twbs/ratchet.svg)](https://github.com/twbs/ratchet/releases)\n[![Build Status](https://img.shields.io/travis/twbs/ratchet/master.svg)](https://travis-ci.org/twbs/ratchet)\n[![devDependency Status](https://img.shields.io/david/dev/twbs/ratchet.svg)](https://david-dm.org/twbs/ratchet#info=devDependencies)\n\nBuild mobile apps with simple HTML, CSS, and JS components.\n\n## Table of contents\n\n* [Getting started](#getting-started)\n* [Documentation](#documentation)\n* [Support](#support)\n* [Contributing](#contributing)\n* [Troubleshooting](#troubleshooting)\n* [Versioning](#versioning)\n* [Maintainers](#maintainers)\n* [License](#license)\n\n## Getting started\n\n* Clone the repo with `git clone https://github.com/twbs/ratchet.git` or just [download](http://github.com/twbs/ratchet/archive/v2.0.2.zip) the bundled CSS and JS\n* [Read the docs](http://goratchet.com) to learn about the components and how to get a prototype on your phone\n* [Check out examples](http://goratchet.com/examples/)\n\nTake note that our master branch is our active, unstable development branch and that if you're looking to download a stable copy of the repo, check the [tagged downloads](https://github.com/twbs/ratchet/tags).\n\n### What's included\n\nWithin the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this:\n\n```\nratchet/\n├── css/\n│   ├── ratchet.css\n│   ├── ratchet.min.css\n│   ├── ratchet-theme-android.css\n│   ├── ratchet-theme-android.min.css\n│   ├── ratchet-theme-ios.css\n│   └── ratchet-theme-ios.min.css\n├── js/\n│   ├── ratchet.js\n│   └── ratchet.min.js\n└── fonts/\n    ├── ratchicons.eot\n    ├── ratchicons.svg\n    ├── ratchicons.ttf\n    └── ratchicons.woff\n```\n\nWe provide compiled CSS and JS (`ratchet.*`), as well as compiled and minified CSS and JS (`ratchet.min.*`). The Ratchicon fonts are included, as are the optional Android and iOS platform themes.\n\n## Documentation\n\nRatchet's documentation is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at \u003chttp://goratchet.com\u003e. The docs may also be run locally.\n\n### Running documentation locally\n\n1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v3.0.x).\n  * **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.\n2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.\n3. From the root `/ratchet` directory, run `jekyll serve` in the command line.\n4. Open \u003chttp://localhost:4000\u003e in your browser, and boom!\n\nLearn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).\n\n### Documentation for previous releases\n\nDocumentation for v1.0.2 has been made available for the time being at \u003chttp://goratchet.com/1.0.2/\u003e while folks transition to Ratchet 2.\n\n[Previous releases](https://github.com/twbs/ratchet/releases) and their documentation are also available for download.\n\n## Support\n\nQuestions or discussions about Ratchet should happen in the [Google group](https://groups.google.com/forum/#!forum/goratchet) or hit us up on Twitter [@GoRatchet](https://twitter.com/goratchet).\n\n## Contributing\n\nPlease file a GitHub issue to [report a bug](https://github.com/twbs/ratchet/issues). When reporting a bug, be sure to follow the [contributor guidelines](https://github.com/twbs/ratchet/blob/master/CONTRIBUTING.md).\n\n## Troubleshooting\n\nA small list of \"gotchas\" is provided below for designers and developers starting to work with Ratchet.\n\n* Ratchet is designed to respond to touch events from a mobile device. In order to use mouse click events (for desktop browsing and testing), you have a few options:\n  * Enable touch event emulation in Chrome (found in the overrides tab in the web inspector preferences)\n  * Use a JavaScript library like fingerblast.js to emulate touch events (ideally only loaded from desktop devices)\n* Script tags containing JavaScript will not be executed on pages that are loaded with push.js. If you would like to attach event handlers to elements on other pages, document-level event delegation is a common solution.\n* Ratchet uses XHR requests to fetch additional pages inside the application. Due to security concerns, modern browsers prevent XHR requests when opening files locally (aka using the `file://` protocol); consequently, Ratchet does not work when opened directly as a file.\n  * A common solution to this is to simply serve the files from a local server. One convenient way to achieve this is to run `python -m SimpleHTTPServer \u003cport\u003e` to serve up the files in the current directory to `http://localhost:\u003cport\u003e`\n\n## Versioning\n\nFor transparency into our release cycle and in striving to maintain backward compatibility, Ratchet is maintained under the Semantic Versioning guidelines. Sometimes we screw up, but we'll adhere to these rules whenever possible.\n\nReleases will be numbered with the following format:\n\n`\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e`\n\nAnd constructed with the following guidelines:\n\n* Breaking backward compatibility **bumps the major** while resetting minor and patch\n* New additions without breaking backward compatibility **bumps the minor** while resetting the patch\n* Bug fixes and misc changes **bumps only the patch**\n\nFor more information on SemVer, please visit \u003chttp://semver.org/\u003e.\n\n## Maintainers\n\nConnor Sears\n\n* \u003chttps://twitter.com/connors\u003e\n* \u003chttps://github.com/connors\u003e\n\n\nCreated by Connor Sears, Dave Gamache, and Jacob Thornton.\n\n\n## License\n\nRatchet is licensed under the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwbs%2Fratchet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwbs%2Fratchet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwbs%2Fratchet/lists"}