https://github.com/ui-awesome/html
UI Awesome HTML code generator for PHP.
https://github.com/ui-awesome/html
code-generator html php ui-awesome
Last synced: 27 days ago
JSON representation
UI Awesome HTML code generator for PHP.
- Host: GitHub
- URL: https://github.com/ui-awesome/html
- Owner: ui-awesome
- License: mit
- Created: 2024-03-05T14:15:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-31T12:24:09.000Z (about 2 years ago)
- Last Synced: 2025-07-08T18:07:54.958Z (11 months ago)
- Topics: code-generator, html, php, ui-awesome
- Language: PHP
- Homepage:
- Size: 242 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Html
A fluent, immutable PHP library for generating HTML elements with typed attribute helpers.
Safe by default content encoding, raw HTML when needed, and standards-compliant rendering.
## Features

### Installation
```bash
composer require ui-awesome/html:^0.4
```
### Quick start
This package provides immutable, fluent wrapper classes for common HTML elements.
It supports safe content encoding via `content()`, raw HTML via `html()`, and composition using element instances.
#### Document skeleton + composition + immutability
```php
use UIAwesome\Html\Flow\{Div, Main, P};
use UIAwesome\Html\Heading\H1;
use UIAwesome\Html\Metadata\{Link, Meta, Title};
use UIAwesome\Html\Palpable\A;
use UIAwesome\Html\Root\{Body, Head, Html};
$baseLink = A::tag()->class('nav-link');
echo Html::tag()
->lang('en')
->html(
Head::tag()->html(
Meta::tag()->charset('utf-8'),
Meta::tag()->name('viewport')->content('width=device-width, initial-scale=1'),
Title::tag()->content('UI Awesome HTML'),
Link::tag()->rel('stylesheet')->href('/assets/app.css'),
),
Body::tag()->class('app')->html(
Main::tag()->class('container')->html(
H1::tag()->content('UI Awesome HTML'),
P::tag()->content('Build HTML with a fluent, immutable API.'),
Div::tag()->class('nav')->html(
$baseLink->href('/docs')->content('Documentation'),
$baseLink->href('/github')->content('GitHub'),
),
),
),
)
->render();
```
#### Safe content vs raw HTML
```php
use UIAwesome\Html\Flow\Div;
echo Div::tag()->content('encoded')->render();
//
<strong>encoded</strong>
echo Div::tag()->html('raw')->render();
//
// raw
//
```
#### Powerful list composition
Create ordered lists, unordered lists, and description lists with a fluent API.
```php
use UIAwesome\Html\List\{Dl, Ol, Ul};
// Unordered list with items
$features = Ul::tag()
->class('feature-list')
->items(
'Immutable by design',
'Type-safe attributes',
'Fluent API',
'Standards-compliant',
);
// Ordered list with custom start and nested items
$steps = Ol::tag()
->class('steps')
->start(1)
->reversed(false)
->li('Install with Composer', 1)
->li('Create HTML elements', 2)
->li('Render to string', 3);
// Description list for metadata or glossaries
$metadata = Dl::tag()
->class('metadata-list')
->dt('Package')
->dd('ui-awesome/html')
->dt('Version')
->dd('0.4.0')
->dt('License')
->dd('BSD-3-Clause');
// Render all lists
$html = $features->render() . PHP_EOL . $steps->render() . PHP_EOL . $metadata->render();
```
## Documentation
For detailed testing and quality workflows.
- [Testing Guide](docs/testing.md)
## Package information
[](https://www.php.net/releases/8.3/en.php)
[](https://packagist.org/packages/ui-awesome/html)
[](https://packagist.org/packages/ui-awesome/html)
## Quality code
[](https://codecov.io/github/ui-awesome/html)
[](https://github.com/ui-awesome/html/actions/workflows/static.yml)
[](https://github.com/ui-awesome/html/actions/workflows/linter.yml)
[](https://github.styleci.io/repos/776094320?branch=main)
## Our social networks
[](https://x.com/Terabytesoftw)
## License
[](LICENSE)