{"id":31017116,"url":"https://github.com/sameerjs6/revola","last_synced_at":"2025-09-13T07:49:58.421Z","repository":{"id":302626249,"uuid":"943485247","full_name":"SameerJS6/revola","owner":"SameerJS6","description":"A drop-in responsive dialog component built with Radix and Vaul - modal on desktop, drawer on mobile.","archived":false,"fork":false,"pushed_at":"2025-08-06T18:59:16.000Z","size":3289,"stargazers_count":26,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-06T20:21:24.096Z","etag":null,"topics":["dialog","drawer","nextjs","radix-ui","react","shadcn","shadcnui"],"latest_commit_sha":null,"homepage":"https://revola.sameerjs.com","language":"TypeScript","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/SameerJS6.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2025-03-05T19:29:27.000Z","updated_at":"2025-08-06T18:44:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"a78fd73d-05e5-43e6-b39f-09607a6144ab","html_url":"https://github.com/SameerJS6/revola","commit_stats":null,"previous_names":["sameerjs6/revola"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/SameerJS6/revola","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Frevola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Frevola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Frevola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Frevola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SameerJS6","download_url":"https://codeload.github.com/SameerJS6/revola/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Frevola/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274935972,"owners_count":25376835,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"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":["dialog","drawer","nextjs","radix-ui","react","shadcn","shadcnui"],"created_at":"2025-09-13T07:49:56.486Z","updated_at":"2025-09-13T07:49:58.413Z","avatar_url":"https://github.com/SameerJS6.png","language":"TypeScript","readme":"# Revola\n\nOne component. Modal on desktop, Drawer on mobile.\n\nA responsive dialog component that automatically adapts between drawer (mobile) and modal (desktop) modes.\n\nRevola can replace your dialog, drawer, and alert dialog components with a single and simple solution.\n\n![](/main-mockup.png)\n\n## Features\n\n- **Responsive by default** - Modal on desktop, drawer on mobile\n- **Replaces multiple components** - Dialog, drawer, and alert dialog in one\n- **Built on proven foundations** - Combines Radix UI Dialog and Vaul\n- **Accessible** - ARIA compliant with keyboard navigation\n- **Customizable** - Extensive API with snap points, directions, and styling options\n- **TypeScript** - Full type safety out of the box\n\n## Installation\n\n```bash\nnpx shadcn@latest add https://revola.sameerjs.com/r/revola.json\n```\n\n## Usage\n\n```tsx\nimport { Button } from \"@/components/ui/button\";\nimport {\n  ResponsiveDialog,\n  ResponsiveDialogContent,\n  ResponsiveDialogDescription,\n  ResponsiveDialogHeader,\n  ResponsiveDialogTitle,\n  ResponsiveDialogTrigger,\n} from \"@/components/ui/revola\";\n\nexport function Example() {\n  return (\n    \u003cResponsiveDialog\u003e\n      \u003cResponsiveDialogTrigger asChild\u003e\n        \u003cButton variant=\"outline\"\u003eOpen Revola\u003c/Button\u003e\n      \u003c/ResponsiveDialogTrigger\u003e\n      \u003cResponsiveDialogContent\u003e\n        \u003cdiv className=\"bg-background sm:p-6\"\u003e\n          \u003cResponsiveDialogHeader\u003e\n            \u003cResponsiveDialogTitle\u003eWelcome\u003c/ResponsiveDialogTitle\u003e\n            \u003cResponsiveDialogDescription\u003e\n              This is a responsive modal that adapts between drawer \u0026 modal.\n            \u003c/ResponsiveDialogDescription\u003e\n          \u003c/ResponsiveDialogHeader\u003e\n        \u003c/div\u003e\n      \u003c/ResponsiveDialogContent\u003e\n    \u003c/ResponsiveDialog\u003e\n  );\n}\n```\n\n## Documentation\n\nVisit [Docs](https://revola.sameerjs.com/docs) for full documentation, examples, and API reference.\n\n## Credits\n\nBuilt on top of:\n\n- [Radix UI Dialog](https://radix-ui.com/primitives/docs/components/dialog) by [Radix UI](https://radix-ui.com)\n- [Vaul](https://vaul.emilkowal.ski) by [Emil Kowalski](https://github.com/emilkowalski)\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerjs6%2Frevola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsameerjs6%2Frevola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerjs6%2Frevola/lists"}