{"id":13550876,"url":"https://github.com/erlage/rad","last_synced_at":"2026-01-11T13:34:33.718Z","repository":{"id":37413997,"uuid":"463605901","full_name":"erlage/rad","owner":"erlage","description":"A zero-dependency web framework for creating high-performant web apps using Dart.","archived":false,"fork":false,"pushed_at":"2023-11-24T07:58:45.000Z","size":12546,"stargazers_count":100,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-03T01:33:51.445Z","etag":null,"topics":["css","dart","framework","frontend","html","web","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erlage.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-02-25T16:42:03.000Z","updated_at":"2025-02-24T18:31:01.000Z","dependencies_parsed_at":"2024-01-16T18:58:26.726Z","dependency_job_id":"75c72883-74f2-4a4b-b3a6-6f56dcc60bec","html_url":"https://github.com/erlage/rad","commit_stats":{"total_commits":1642,"total_committers":5,"mean_commits":328.4,"dds":0.004263093788063332,"last_synced_commit":"e48d82a7aa6ff65059159f0b9879c46983775201"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/erlage/rad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlage%2Frad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlage%2Frad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlage%2Frad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlage%2Frad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erlage","download_url":"https://codeload.github.com/erlage/rad/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlage%2Frad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276833831,"owners_count":25712877,"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-24T02:00:09.776Z","response_time":97,"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","dart","framework","frontend","html","web","web-framework"],"created_at":"2024-08-01T12:01:38.821Z","updated_at":"2025-09-24T23:30:11.204Z","avatar_url":"https://github.com/erlage.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Rad\n\nRad is a frontend framework for creating fast and interactive web apps using Dart. It has all the best bits of Flutter(StatefulWidgets, Builders) and React(Hooks, Performance), and allows you to use web technologies(HTML and CSS) in your app.\n\n[![Rad(core)](https://github.com/erlage/rad/actions/workflows/rad_core.yml/badge.svg)](https://github.com/erlage/rad/actions/workflows/rad_core.yml)\n[![Reconciler](https://github.com/erlage/rad/actions/workflows/reconciler.yml/badge.svg)](https://github.com/erlage/rad/actions/workflows/reconciler.yml)\n[![codecov](https://codecov.io/gh/erlage/rad/branch/main/graph/badge.svg?token=PbTQU0aSDn)](https://codecov.io/gh/erlage/rad)\n[![pub version](https://img.shields.io/pub/v/rad?color=6CB4EE)](https://pub.dev/packages/rad)\n\n## Quick links\n\n- [Getting started](https://github.com/erlage/rad/blob/main/doc/getting_started.md)\n- [Package @ pub.dev](https://pub.dev/packages/rad)\n- [API reference @ pub.dev](https://pub.dev/documentation/rad/latest/rad/rad-library.html)\n- [Repository @ github.com](https://github.com/erlage/rad)\n- [Benchmarks @ github.com](https://github.com/erlage/rad-benchmarks)\n- [Additional Packages \u0026 Tools](#additional-packagestools)\n\n## Example\n\n```dart\nvoid main() {\n  runApp(\n    app: Text('hello world'),\n    appTargetId: 'output',\n  );\n}\n```\n\nFunction `runApp` will finds a element having `id=output` in your HTML page, create a Rad app with it, and then displays \"hello world\" inside of it. As you might have guessed it, `Text('hello world')` is a widget, a special purpose widget provided by the framework that we're using to display desired text on the screen. Rad provides number of widgets that you can use and best thing about widgets is that you can compose them together to create more widgets and build complex layouts.\n\n## Flutter widgets\n\nFollowing widgets in Rad are inspired from Flutter:\n\n- [InheritedWidget](https://pub.dev/documentation/rad/latest/rad/InheritedWidget-class.html), [StatelessWidget](https://pub.dev/documentation/rad/latest/rad/StatelessWidget-class.html) and [StatefulWidget](https://pub.dev/documentation/rad/latest/rad/StatefulWidget-class.html).\n- [FutureBuilder](https://pub.dev/documentation/rad/latest/widgets_async/FutureBuilder-class.html), [StreamBuilder](https://pub.dev/documentation/rad/latest/widgets_async/StreamBuilder-class.html) and [ValueListenableBuilder](https://pub.dev/documentation/rad/latest/widgets_async/ValueListenableBuilder-class.html).\n\nThese widgets has same syntax as their Flutter's counterparts. Not just syntax, they also works exactly same as if they would in Flutter. Which means you don't have to learn anything new to be able to use them.\n\n## React hooks\n\nSimilar to React, we have number of hooks that you can use to power-up your widget functions.\n\nLet's see a basic example with [useState](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useState.html):\n\n```dart\nWidget widgetFunction() =\u003e HookScope(() {\n  // create a stateful value\n  var state = useState(0);\n\n  return Span(\n    child: Text('You clicked me ${state.value} time!'),\n    onClick: (_) =\u003e state.value++,\n  );\n});\n\nrunApp(app: widgetFunction(), ...);\n```\n\nWhile using hooks please keep in mind following things,\n\n1. Avoid calling Hooks inside loops, conditions, or nested functions.\n2. Always wrap body of your Widget-functions with a [HookScope](https://pub.dev/documentation/rad/latest/rad/HookScope.html) widget.\n3. Always use Hooks at the top level of your functions, before any widget/or early return.\n\n## HTML widgets\n\nRad provides you with more than 100 widgets that are dedicated to help you write HTML within your Dart code as easily as possible.\n\nLet's look at this markup example:\n\n```html\n\u003cdiv\u003e\n  \u003cp\u003eHey there!\u003c/p\u003e\n\u003c/div\u003e\n```\n\nHere's how we'll write this using HTML widgets:\n\n```dart\nDivision(\n  children: [\n    Paragraph(innerText: 'Hey there!'),\n  ]\n)\n```\n\nThere's also an alternative syntax for all HTML widgets:\n\n```dart\ndiv(\n  children: [\n    p(innerText: 'Hey there!'),\n  ]\n)\n```\n\nApart from syntax/names, HTML widgets are composable and has same semantics in the sense that they can be composed and mixed together with other widgets. For example,\n\n```dart\nSpan(\n  child: ListView(\n    children: [\n      SomeStatefulWidget(),\n      Span(),\n      ...\n    ]\n  ),\n);\n```\n\nIn above example, a [Span](https://pub.dev/documentation/rad/latest/widgets_html/Span-class.html) widget is containing a [ListView](https://pub.dev/documentation/rad/latest/rad/ListView-class.html) widget. Further, that [ListView](https://pub.dev/documentation/rad/latest/rad/ListView-class.html) is containing a [StatefulWidget](https://pub.dev/documentation/rad/latest/rad/StatefulWidget-class.html) and a [Span](https://pub.dev/documentation/rad/latest/widgets_html/Span-class.html) widget. The point we're trying to make is that HTML widgets won't restrict you to 'just HTML'.\n\n## Additional Packages/Tools\n\n### [Rad Test](https://pub.dev/packages/rad_test) (package)\n\nA testing library for Rad applications, heavily inspired from [flutter_test](https://api.flutter.dev/flutter/flutter_test/flutter_test-library.html).\n\n### [Rad Hooks](https://pub.dev/packages/rad_hooks) (package)\n\nA set of commonly used hooks for using in your Rad applications.\n\n### [Rad Extension](https://marketplace.visualstudio.com/items?itemName=erlage.rad) (for VSCode)\n\nProvides an enhanced development experience for developers working with the Rad Framework. With its powerful features, this extension makes it easier for developers to write and manage code, saving time and increasing productivity. Extension's top features are:\n\n- **Visual JSX**: Transforms your HTML widgets into a visually appealing, JSX-like syntax.\n  \u003cdetails\u003e\n    \u003csummary\u003eClick to See Preview\u003c/summary\u003e\n    \n    ![Visual-JSX Preview](https://github.com/erlage/rad/blob/47591df594be5d993d5a813667ef9d372ec80f10/packages/text_editor_vscode_extension/art/peek1.gif?raw=true)\n  \u003c/details\u003e\n\n- **HTML2Rad**: Converts your HTML markup directly into Rad's HTML widgets.\n  \u003cdetails\u003e\n    \u003csummary\u003eClick to See Preview\u003c/summary\u003e\n    \n    ![HTML2Rad Preview](https://github.com/erlage/rad/blob/47591df594be5d993d5a813667ef9d372ec80f10/packages/text_editor_vscode_extension/art/peek2.gif?raw=true)\n  \u003c/details\u003e\n\n## Reference\n\nBelow is the list of available widgets and hooks in Rad. Some widgets are named after Flutter widgets because they either works exactly same or can be used to achieve same things but in a different way(more or less). All those widgets are tagged accordingly.\n\nTags:\n\n- **_exact_**: Exact syntax, similar semantics.\n- **_same_**: Exact syntax with few exceptions, similar semantics.\n- **_different_**: Different syntax, different semantics.\n- **_untested_**: --\n\n### Abstract\n\n- [InheritedWidget](https://pub.dev/documentation/rad/latest/rad/InheritedWidget-class.html) \\[_similar_\\]\n- [StatelessWidget](https://pub.dev/documentation/rad/latest/rad/StatelessWidget-class.html) \\[_similar_\\]\n- [StatefulWidget](https://pub.dev/documentation/rad/latest/rad/StatefulWidget-class.html) \\[_similar_\\]\n\n### Navigator/Routing\n\n- [Navigator](https://pub.dev/documentation/rad/latest/rad/Navigator-class.html) \\[_different_\\]\n- [Route](https://pub.dev/documentation/rad/latest/rad/Route-class.html) \\[_different_\\]\n- [AsyncRoute](https://pub.dev/documentation/rad/latest/rad/AsyncRoute-class.html)\n\n### Builders\n\n- [FutureBuilder](https://pub.dev/documentation/rad/latest/widgets_async/FutureBuilder-class.html) \\[_exact_\\]\n- [StreamBuilder](https://pub.dev/documentation/rad/latest/widgets_async/StreamBuilder-class.html) \\[_exact_\\]\n- [ValueListenableBuilder](https://pub.dev/documentation/rad/latest/widgets_async/ValueListenableBuilder-class.html) \\[_exact_\\]\n- [ListView.builder](https://pub.dev/documentation/rad/latest/rad/ListView/ListView.builder.html) \\[_same_, _untested_\\]\n\n### Functional\n\n- [RadApp](https://pub.dev/documentation/rad/latest/rad/RadApp-class.html)\n- [Text](https://pub.dev/documentation/rad/latest/rad/Text-class.html) \\[_different_\\]\n- [ListView](https://pub.dev/documentation/rad/latest/rad/ListView-class.html) \\[_same_\\]\n- [HookScope](https://pub.dev/documentation/rad/latest/rad/HookScope.html)\n- [EventDetector](https://pub.dev/documentation/rad/latest/rad/EventDetector-class.html)\n- [GestureDetector](https://pub.dev/documentation/rad/latest/rad/GestureDetector-class.html) \\[_same_\\]\n\n### Misc\n\n- [RawMarkUp](https://pub.dev/documentation/rad/latest/rad/RawMarkUp-class.html)\n- [RawEventDetector](https://pub.dev/documentation/rad/latest/rad/RawEventDetector-class.html)\n\n### Hooks\n\n[useContext](https://pub.dev/documentation/rad/latest/rad/useContext.html)\n, [useNavigator](https://pub.dev/documentation/rad/latest/rad/useNavigator.html)\n, [useRef](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useRef.html)\n, [useState](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useState.html)\n, [useMemo](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useMemo.html)\n, [useCallback](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useCallback.html)\n, [useEffect](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useEffect.html)\n, [useLayoutEffect](https://pub.dev/documentation/rad_hooks/latest/rad_hooks/useLayoutEffect.html)\n\n### HTML Widgets (additional)\n\n[InputButton](https://pub.dev/documentation/rad/latest/widgets_html/InputButton-class.html)\n, [InputCheckBox](https://pub.dev/documentation/rad/latest/widgets_html/InputCheckBox-class.html)\n, [InputColor](https://pub.dev/documentation/rad/latest/widgets_html/InputColor-class.html)\n, [InputDate](https://pub.dev/documentation/rad/latest/widgets_html/InputDate-class.html)\n, [InputDateTimeLocal](https://pub.dev/documentation/rad/latest/widgets_html/InputDateTimeLocal-class.html)\n, [InputEmail](https://pub.dev/documentation/rad/latest/widgets_html/InputEmail-class.html)\n, [InputFile](https://pub.dev/documentation/rad/latest/widgets_html/InputFile-class.html)\n, [InputImage](https://pub.dev/documentation/rad/latest/widgets_html/InputImage-class.html)\n, [InputMonth](https://pub.dev/documentation/rad/latest/widgets_html/InputMonth-class.html)\n, [InputNumber](https://pub.dev/documentation/rad/latest/widgets_html/InputNumber-class.html)\n, [InputPassword](https://pub.dev/documentation/rad/latest/widgets_html/InputPassword-class.html)\n, [InputRadio](https://pub.dev/documentation/rad/latest/widgets_html/InputRadio-class.html)\n, [InputRange](https://pub.dev/documentation/rad/latest/widgets_html/InputRange-class.html)\n, [InputReset](https://pub.dev/documentation/rad/latest/widgets_html/InputReset-class.html)\n, [InputSearch](https://pub.dev/documentation/rad/latest/widgets_html/InputSearch-class.html)\n, [InputSubmit](https://pub.dev/documentation/rad/latest/widgets_html/InputSubmit-class.html)\n, [InputTelephone](https://pub.dev/documentation/rad/latest/widgets_html/InputTelephone-class.html)\n, [InputText](https://pub.dev/documentation/rad/latest/widgets_html/InputText-class.html)\n, [InputTime](https://pub.dev/documentation/rad/latest/widgets_html/InputTime-class.html)\n, [InputUrl](https://pub.dev/documentation/rad/latest/widgets_html/InputUrl-class.html)\n, [InputWeek](https://pub.dev/documentation/rad/latest/widgets_html/InputWeek-class.html)\n\n### HTML Widgets (short-syntax)\n\n[a](https://pub.dev/documentation/rad/latest/widgets_short_tags/a.html)\n, [abbr](https://pub.dev/documentation/rad/latest/widgets_short_tags/abbr.html)\n, [address](https://pub.dev/documentation/rad/latest/widgets_short_tags/address.html)\n, [area](https://pub.dev/documentation/rad/latest/widgets_short_tags/area.html)\n, [article](https://pub.dev/documentation/rad/latest/widgets_short_tags/article.html)\n, [aside](https://pub.dev/documentation/rad/latest/widgets_short_tags/aside.html)\n, [audio](https://pub.dev/documentation/rad/latest/widgets_short_tags/audio.html)\n, [bdi](https://pub.dev/documentation/rad/latest/widgets_short_tags/bdi.html)\n, [bdo](https://pub.dev/documentation/rad/latest/widgets_short_tags/bdo.html)\n, [blockquote](https://pub.dev/documentation/rad/latest/widgets_short_tags/blockquote.html)\n, [br](https://pub.dev/documentation/rad/latest/widgets_short_tags/br.html)\n, [button](https://pub.dev/documentation/rad/latest/widgets_short_tags/button.html)\n, [canvas](https://pub.dev/documentation/rad/latest/widgets_short_tags/canvas.html)\n, [caption](https://pub.dev/documentation/rad/latest/widgets_short_tags/caption.html)\n, [cite](https://pub.dev/documentation/rad/latest/widgets_short_tags/cite.html)\n, [code](https://pub.dev/documentation/rad/latest/widgets_short_tags/code.html)\n, [col](https://pub.dev/documentation/rad/latest/widgets_short_tags/col.html)\n, [colgroup](https://pub.dev/documentation/rad/latest/widgets_short_tags/colgroup.html)\n, [data](https://pub.dev/documentation/rad/latest/widgets_short_tags/data.html)\n, [datalist](https://pub.dev/documentation/rad/latest/widgets_short_tags/datalist.html)\n, [dd](https://pub.dev/documentation/rad/latest/widgets_short_tags/dd.html)\n, [del](https://pub.dev/documentation/rad/latest/widgets_short_tags/del.html)\n, [details](https://pub.dev/documentation/rad/latest/widgets_short_tags/details.html)\n, [dfn](https://pub.dev/documentation/rad/latest/widgets_short_tags/dfn.html)\n, [dialog](https://pub.dev/documentation/rad/latest/widgets_short_tags/dialog.html)\n, [div](https://pub.dev/documentation/rad/latest/widgets_short_tags/div.html)\n, [dl](https://pub.dev/documentation/rad/latest/widgets_short_tags/dl.html)\n, [dt](https://pub.dev/documentation/rad/latest/widgets_short_tags/dt.html)\n, [em](https://pub.dev/documentation/rad/latest/widgets_short_tags/em.html)\n, [embed](https://pub.dev/documentation/rad/latest/widgets_short_tags/embed.html)\n, [fieldset](https://pub.dev/documentation/rad/latest/widgets_short_tags/fieldset.html)\n, [figcaption](https://pub.dev/documentation/rad/latest/widgets_short_tags/figcaption.html)\n, [figure](https://pub.dev/documentation/rad/latest/widgets_short_tags/figure.html)\n, [footer](https://pub.dev/documentation/rad/latest/widgets_short_tags/footer.html)\n, [form](https://pub.dev/documentation/rad/latest/widgets_short_tags/form.html)\n, [h1](https://pub.dev/documentation/rad/latest/widgets_short_tags/h1.html)\n, [h2](https://pub.dev/documentation/rad/latest/widgets_short_tags/h2.html)\n, [h3](https://pub.dev/documentation/rad/latest/widgets_short_tags/h3.html)\n, [h4](https://pub.dev/documentation/rad/latest/widgets_short_tags/h4.html)\n, [h5](https://pub.dev/documentation/rad/latest/widgets_short_tags/h5.html)\n, [h6](https://pub.dev/documentation/rad/latest/widgets_short_tags/h6.html)\n, [header](https://pub.dev/documentation/rad/latest/widgets_short_tags/header.html)\n, [hr](https://pub.dev/documentation/rad/latest/widgets_short_tags/hr.html)\n, [i](https://pub.dev/documentation/rad/latest/widgets_short_tags/i.html)\n, [iframe](https://pub.dev/documentation/rad/latest/widgets_short_tags/iframe.html)\n, [img](https://pub.dev/documentation/rad/latest/widgets_short_tags/img.html)\n, [input](https://pub.dev/documentation/rad/latest/widgets_short_tags/input.html)\n, [ins](https://pub.dev/documentation/rad/latest/widgets_short_tags/ins.html)\n, [kbd](https://pub.dev/documentation/rad/latest/widgets_short_tags/kbd.html)\n, [label](https://pub.dev/documentation/rad/latest/widgets_short_tags/label.html)\n, [legend](https://pub.dev/documentation/rad/latest/widgets_short_tags/legend.html)\n, [li](https://pub.dev/documentation/rad/latest/widgets_short_tags/li.html)\n, [map](https://pub.dev/documentation/rad/latest/widgets_short_tags/map.html)\n, [mark](https://pub.dev/documentation/rad/latest/widgets_short_tags/mark.html)\n, [menu](https://pub.dev/documentation/rad/latest/widgets_short_tags/menu.html)\n, [meter](https://pub.dev/documentation/rad/latest/widgets_short_tags/meter.html)\n, [nav](https://pub.dev/documentation/rad/latest/widgets_short_tags/nav.html)\n, [ol](https://pub.dev/documentation/rad/latest/widgets_short_tags/ol.html)\n, [optgroup](https://pub.dev/documentation/rad/latest/widgets_short_tags/optgroup.html)\n, [option](https://pub.dev/documentation/rad/latest/widgets_short_tags/option.html)\n, [output](https://pub.dev/documentation/rad/latest/widgets_short_tags/output.html)\n, [p](https://pub.dev/documentation/rad/latest/widgets_short_tags/p.html)\n, [picture](https://pub.dev/documentation/rad/latest/widgets_short_tags/picture.html)\n, [portal](https://pub.dev/documentation/rad/latest/widgets_short_tags/portal.html)\n, [pre](https://pub.dev/documentation/rad/latest/widgets_short_tags/pre.html)\n, [progress](https://pub.dev/documentation/rad/latest/widgets_short_tags/progress.html)\n, [q](https://pub.dev/documentation/rad/latest/widgets_short_tags/q.html)\n, [rp](https://pub.dev/documentation/rad/latest/widgets_short_tags/rp.html)\n, [rt](https://pub.dev/documentation/rad/latest/widgets_short_tags/rt.html)\n, [ruby](https://pub.dev/documentation/rad/latest/widgets_short_tags/ruby.html)\n, [s](https://pub.dev/documentation/rad/latest/widgets_short_tags/s.html)\n, [samp](https://pub.dev/documentation/rad/latest/widgets_short_tags/samp.html)\n, [section](https://pub.dev/documentation/rad/latest/widgets_short_tags/section.html)\n, [select](https://pub.dev/documentation/rad/latest/widgets_short_tags/select.html)\n, [small](https://pub.dev/documentation/rad/latest/widgets_short_tags/small.html)\n, [source](https://pub.dev/documentation/rad/latest/widgets_short_tags/source.html)\n, [span](https://pub.dev/documentation/rad/latest/widgets_short_tags/span.html)\n, [strong](https://pub.dev/documentation/rad/latest/widgets_short_tags/strong.html)\n, [sub](https://pub.dev/documentation/rad/latest/widgets_short_tags/sub.html)\n, [summary](https://pub.dev/documentation/rad/latest/widgets_short_tags/summary.html)\n, [sup](https://pub.dev/documentation/rad/latest/widgets_short_tags/sup.html)\n, [table](https://pub.dev/documentation/rad/latest/widgets_short_tags/table.html)\n, [tbody](https://pub.dev/documentation/rad/latest/widgets_short_tags/tbody.html)\n, [td](https://pub.dev/documentation/rad/latest/widgets_short_tags/td.html)\n, [textarea](https://pub.dev/documentation/rad/latest/widgets_short_tags/textarea.html)\n, [tfoot](https://pub.dev/documentation/rad/latest/widgets_short_tags/tfoot.html)\n, [th](https://pub.dev/documentation/rad/latest/widgets_short_tags/th.html)\n, [thead](https://pub.dev/documentation/rad/latest/widgets_short_tags/thead.html)\n, [time](https://pub.dev/documentation/rad/latest/widgets_short_tags/time.html)\n, [tr](https://pub.dev/documentation/rad/latest/widgets_short_tags/tr.html)\n, [track](https://pub.dev/documentation/rad/latest/widgets_short_tags/track.html)\n, [ul](https://pub.dev/documentation/rad/latest/widgets_short_tags/ul.html)\n, [vartag](https://pub.dev/documentation/rad/latest/widgets_short_tags/vartag.html)\n, [video](https://pub.dev/documentation/rad/latest/widgets_short_tags/video.html)\n, [wbr](https://pub.dev/documentation/rad/latest/widgets_short_tags/wbr.html)\n\n### HTML Widgets (full-syntax)\n\n[Anchor](https://pub.dev/documentation/rad/latest/widgets_html/Anchor-class.html)\n, [Abbreviation](https://pub.dev/documentation/rad/latest/widgets_html/Abbreviation-class.html)\n, [Address](https://pub.dev/documentation/rad/latest/widgets_html/Address-class.html)\n, [Article](https://pub.dev/documentation/rad/latest/widgets_html/Article-class.html)\n, [Aside](https://pub.dev/documentation/rad/latest/widgets_html/Aside-class.html)\n, [Audio](https://pub.dev/documentation/rad/latest/widgets_html/Audio-class.html)\n, [BidirectionalIsolate](https://pub.dev/documentation/rad/latest/widgets_html/BidirectionalIsolate-class.html)\n, [BidirectionalTextOverride](https://pub.dev/documentation/rad/latest/widgets_html/BidirectionalTextOverride-class.html)\n, [BlockQuote](https://pub.dev/documentation/rad/latest/widgets_html/BlockQuote-class.html)\n, [Button](https://pub.dev/documentation/rad/latest/widgets_html/Button-class.html)\n, [Canvas](https://pub.dev/documentation/rad/latest/widgets_html/Canvas-class.html)\n, [Citation](https://pub.dev/documentation/rad/latest/widgets_html/Citation-class.html)\n, [Data](https://pub.dev/documentation/rad/latest/widgets_html/Data-class.html)\n, [DataList](https://pub.dev/documentation/rad/latest/widgets_html/DataList-class.html)\n, [Definition](https://pub.dev/documentation/rad/latest/widgets_html/Definition-class.html)\n, [DeletedText](https://pub.dev/documentation/rad/latest/widgets_html/DeletedText-class.html)\n, [DescriptionDetails](https://pub.dev/documentation/rad/latest/widgets_html/DescriptionDetails-class.html)\n, [DescriptionList](https://pub.dev/documentation/rad/latest/widgets_html/DescriptionList-class.html)\n, [DescriptionTerm](https://pub.dev/documentation/rad/latest/widgets_html/DescriptionTerm-class.html)\n, [Details](https://pub.dev/documentation/rad/latest/widgets_html/Details-class.html)\n, [Dialog](https://pub.dev/documentation/rad/latest/widgets_html/Dialog-class.html)\n, [Division](https://pub.dev/documentation/rad/latest/widgets_html/Division-class.html)\n, [EmbedExternal](https://pub.dev/documentation/rad/latest/widgets_html/EmbedExternal-class.html)\n, [EmbedTextTrack](https://pub.dev/documentation/rad/latest/widgets_html/EmbedTextTrack-class.html)\n, [Emphasis](https://pub.dev/documentation/rad/latest/widgets_html/Emphasis-class.html)\n, [FieldSet](https://pub.dev/documentation/rad/latest/widgets_html/FieldSet-class.html)\n, [Figure](https://pub.dev/documentation/rad/latest/widgets_html/Figure-class.html)\n, [FigureCaption](https://pub.dev/documentation/rad/latest/widgets_html/FigureCaption-class.html)\n, [Footer](https://pub.dev/documentation/rad/latest/widgets_html/Footer-class.html)\n, [Form](https://pub.dev/documentation/rad/latest/widgets_html/Form-class.html)\n, [Header](https://pub.dev/documentation/rad/latest/widgets_html/Header-class.html)\n, [Heading1](https://pub.dev/documentation/rad/latest/widgets_html/Heading1-class.html)\n, [Heading2](https://pub.dev/documentation/rad/latest/widgets_html/Heading2-class.html)\n, [Heading3](https://pub.dev/documentation/rad/latest/widgets_html/Heading3-class.html)\n, [Heading4](https://pub.dev/documentation/rad/latest/widgets_html/Heading4-class.html)\n, [Heading5](https://pub.dev/documentation/rad/latest/widgets_html/Heading5-class.html)\n, [Heading6](https://pub.dev/documentation/rad/latest/widgets_html/Heading6-class.html)\n, [HorizontalRule](https://pub.dev/documentation/rad/latest/widgets_html/HorizontalRule-class.html)\n, [Idiomatic](https://pub.dev/documentation/rad/latest/widgets_html/Idiomatic-class.html)\n, [IFrame](https://pub.dev/documentation/rad/latest/widgets_html/IFrame-class.html)\n, [Image](https://pub.dev/documentation/rad/latest/widgets_html/Image-class.html)\n, [ImageMap](https://pub.dev/documentation/rad/latest/widgets_html/ImageMap-class.html)\n, [ImageMapArea](https://pub.dev/documentation/rad/latest/widgets_html/ImageMapArea-class.html)\n, [InlineCode](https://pub.dev/documentation/rad/latest/widgets_html/InlineCode-class.html)\n, [InlineQuotation](https://pub.dev/documentation/rad/latest/widgets_html/InlineQuotation-class.html)\n, [Input](https://pub.dev/documentation/rad/latest/widgets_html/Input-class.html)\n, [InsertedText](https://pub.dev/documentation/rad/latest/widgets_html/InsertedText-class.html)\n, [KeyboardInput](https://pub.dev/documentation/rad/latest/widgets_html/KeyboardInput-class.html)\n, [Label](https://pub.dev/documentation/rad/latest/widgets_html/Label-class.html)\n, [Legend](https://pub.dev/documentation/rad/latest/widgets_html/Legend-class.html)\n, [LineBreak](https://pub.dev/documentation/rad/latest/widgets_html/LineBreak-class.html)\n, [LineBreakOpportunity](https://pub.dev/documentation/rad/latest/widgets_html/LineBreakOpportunity-class.html)\n, [ListItem](https://pub.dev/documentation/rad/latest/widgets_html/ListItem-class.html)\n, [MarkText](https://pub.dev/documentation/rad/latest/widgets_html/MarkText-class.html)\n, [MediaSource](https://pub.dev/documentation/rad/latest/widgets_html/MediaSource-class.html)\n, [Menu](https://pub.dev/documentation/rad/latest/widgets_html/Menu-class.html)\n, [Meter](https://pub.dev/documentation/rad/latest/widgets_html/Meter-class.html)\n, [Navigation](https://pub.dev/documentation/rad/latest/widgets_html/Navigation-class.html)\n, [Option](https://pub.dev/documentation/rad/latest/widgets_html/Option-class.html)\n, [OptionGroup](https://pub.dev/documentation/rad/latest/widgets_html/OptionGroup-class.html)\n, [OrderedList](https://pub.dev/documentation/rad/latest/widgets_html/OrderedList-class.html)\n, [Output](https://pub.dev/documentation/rad/latest/widgets_html/Output-class.html)\n, [Paragraph](https://pub.dev/documentation/rad/latest/widgets_html/Paragraph-class.html)\n, [Picture](https://pub.dev/documentation/rad/latest/widgets_html/Picture-class.html)\n, [Portal](https://pub.dev/documentation/rad/latest/widgets_html/Portal-class.html)\n, [PreformattedText](https://pub.dev/documentation/rad/latest/widgets_html/PreformattedText-class.html)\n, [Progress](https://pub.dev/documentation/rad/latest/widgets_html/Progress-class.html)\n, [RubyAnnotation](https://pub.dev/documentation/rad/latest/widgets_html/RubyAnnotation-class.html)\n, [RubyFallbackParenthesis](https://pub.dev/documentation/rad/latest/widgets_html/RubyFallbackParenthesis-class.html)\n, [RubyText](https://pub.dev/documentation/rad/latest/widgets_html/RubyText-class.html)\n, [SampleOutput](https://pub.dev/documentation/rad/latest/widgets_html/SampleOutput-class.html)\n, [Section](https://pub.dev/documentation/rad/latest/widgets_html/Section-class.html)\n, [Select](https://pub.dev/documentation/rad/latest/widgets_html/Select-class.html)\n, [Small](https://pub.dev/documentation/rad/latest/widgets_html/Small-class.html)\n, [Span](https://pub.dev/documentation/rad/latest/widgets_html/Span-class.html)\n, [StrikeThrough](https://pub.dev/documentation/rad/latest/widgets_html/StrikeThrough-class.html)\n, [Strong](https://pub.dev/documentation/rad/latest/widgets_html/Strong-class.html)\n, [SubScript](https://pub.dev/documentation/rad/latest/widgets_html/SubScript-class.html)\n, [Summary](https://pub.dev/documentation/rad/latest/widgets_html/Summary-class.html)\n, [SuperScript](https://pub.dev/documentation/rad/latest/widgets_html/SuperScript-class.html)\n, [Table](https://pub.dev/documentation/rad/latest/widgets_html/Table-class.html)\n, [TableBody](https://pub.dev/documentation/rad/latest/widgets_html/TableBody-class.html)\n, [TableCaption](https://pub.dev/documentation/rad/latest/widgets_html/TableCaption-class.html)\n, [TableColumn](https://pub.dev/documentation/rad/latest/widgets_html/TableColumn-class.html)\n, [TableColumnGroup](https://pub.dev/documentation/rad/latest/widgets_html/TableColumnGroup-class.html)\n, [TableDataCell](https://pub.dev/documentation/rad/latest/widgets_html/TableDataCell-class.html)\n, [TableFoot](https://pub.dev/documentation/rad/latest/widgets_html/TableFoot-class.html)\n, [TableHead](https://pub.dev/documentation/rad/latest/widgets_html/TableHead-class.html)\n, [TableHeaderCell](https://pub.dev/documentation/rad/latest/widgets_html/TableHeaderCell-class.html)\n, [TableRow](https://pub.dev/documentation/rad/latest/widgets_html/TableRow-class.html)\n, [TextArea](https://pub.dev/documentation/rad/latest/widgets_html/TextArea-class.html)\n, [Time](https://pub.dev/documentation/rad/latest/widgets_html/Time-class.html)\n, [UnOrderedList](https://pub.dev/documentation/rad/latest/widgets_html/UnOrderedList-class.html)\n, [Variable](https://pub.dev/documentation/rad/latest/widgets_html/Variable-class.html)\n, [Video](https://pub.dev/documentation/rad/latest/widgets_html/Video-class.html)\n\n## Contributing\n\nFor reporting bugs/queries, feel free to open issue. Read [contributing guide](https://github.com/erlage/rad/blob/main/CONTRIBUTING.md) for more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferlage%2Frad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferlage%2Frad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferlage%2Frad/lists"}