ui-awesome/html-attribute

Type-safe traits and backed enums for HTML attribute composition: global attributes, ARIA, data-*, events, and element-specific setters.

Maintainers

Package info

github.com/ui-awesome/html-attribute

pkg:composer/ui-awesome/html-attribute

Statistics

Installs: 29 827

Dependents: 5

Suggesters: 0

Stars: 1

Open Issues: 0

0.6.0 2026-04-30 15:36 UTC

This package is auto-updated.

Last update: 2026-05-01 01:54:32 UTC


README

UI Awesome

Html Attribute


PHPUnit Mutation Testing PHPStan

Features

Feature Overview

A focused library for building and rendering structured HTML attributes
Type-safe helpers and value objects to compose complex attribute structures (classes, data-attributes, ARIA, etc.).

Installation

composer require ui-awesome/html-attribute:^0.6

Quick start

Compose reusable attribute APIs by combining the package traits with the immutable attribute mixin.

<?php

declare(strict_types=1);

namespace App;

use UIAwesome\Html\Attribute\Global\{HasClass, HasData, HasId};
use UIAwesome\Html\Attribute\HasRel;
use UIAwesome\Html\Attribute\Values\Rel;
use UIAwesome\Html\Helper\Attributes;
use UIAwesome\Html\Mixin\HasAttributes;

final class LinkAttributes
{
    use HasAttributes;
    use HasClass;
    use HasData;
    use HasId;
    use HasRel;

    public function render(): string
    {
        return Attributes::render($this->getAttributes());
    }
}

$attributes = (new LinkAttributes())
    ->id('documentation')
    ->class('nav-link')
    ->class('is-active')
    ->rel(Rel::NOOPENER)
    ->addDataAttribute('tracking', 'docs');

echo '<a' . $attributes->render() . ' href="/docs">Documentation</a>';

Documentation

For detailed configuration options and advanced usage see:

Package information

PHP Latest Stable Version Total Downloads

Quality code

Codecov PHPStan Level Max Super-Linter StyleCI

Our social networks

Follow on X

License

License