HTML5
A Flutter widget for rendering HTML and CSS as Flutter widgets.
Table of Contents:
- Installing
- Currently Supported HTML Tags
- Currently Supported CSS Attributes
- Currently Supported Inline CSS Attributes
Installing:
Add the following to your pubspec.yaml file:
...
dependencies:
html5_api: ^0.0.1
Currently Supported HTML Tags:
a | abbr | acronym | address | article | aside | audio | b | bdi | bdo | big |
blockquote | body | br | caption | cite | code | data | dd | del | details | dfn |
div | dl | dt | em | figcaption | figure | footer | font | h1 | h2 | h3 |
h4 | h5 | h6 | header | hr | i | iframe | img | ins | kbd | li |
main | mark | nav | noscript | ol | p | pre | q | rp | rt | ruby |
s | samp | section | small | span | strike | strong | sub | sup | summary | svg |
table | tbody | td | template | tfoot | th | thead | time | tr | tt | u |
ul | var | video | math: | mrow | msup | msub | mover | munder | msubsup | moverunder |
mfrac | mlongdiv | msqrt | mroot | mi | mn | mo |
Currently Supported CSS Attributes:
background-color | color | direction | display | font-family | font-feature-settings | font-size |
font-style | font-weight | height | letter-spacing | line-height | list-style-type | list-style-position |
padding | margin | text-align | text-decoration | text-decoration-color | text-decoration-style | text-decoration-thickness |
text-shadow | vertical-align | white-space | width | word-spacing |
Currently Supported Inline CSS Attributes:
background-color | border (including specific directions) | color | direction | display | font-family | font-feature-settings |
font-size | font-style | font-weight | line-height | list-style-type | list-style-position | padding (including specific directions) |
margin (including specific directions) | text-align | text-decoration | text-decoration-color | text-decoration-style | text-shadow |
Don’t see a tag or attribute you need? File a feature request or contribute to the project!
Usage
import 'html5/html5.dart';
Widget html = Html(
data: """
<h1>Table support:</h1>
<table>
<colgroup>
<col width="50%" />
<col span="2" width="25%" />
</colgroup>
<thead>
<tr><th>One</th><th>Two</th><th>Three</th></tr>
</thead>
<tbody>
<tr>
<td rowspan='2'>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan<br>Rowspan</td><td>Data</td><td>Data</td>
</tr>
<tr>
<td colspan="2"><img alt='Google' src='https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png' /></td>
</tr>
</tbody>
<tfoot>
<tr><td>fData</td><td>fData</td><td>fData</td></tr>
</tfoot>
</table>""",
style: {
// tables will have the below background color
"table": Style(
backgroundColor: Color.fromARGB(0x50, 0xee, 0xee, 0xee),
),
// some other granular customizations are also possible
"tr": Style(
border: Border(bottom: BorderSide(color: Colors.grey)),
),
"th": Style(
padding: EdgeInsets.all(6),
backgroundColor: Colors.grey,
),
"td": Style(
padding: EdgeInsets.all(6),
alignment: Alignment.topLeft,
),
// text that renders h1 elements will be red
"h1": Style(color: Colors.red),
}
);
Download source code on GitHub
https://github.com/rey-xi/html5
Provides the list of the opensource Flutter apps collection with GitHub repository.