<?php
// examples/tailwind_example.php
// Demonstrates using the HtmlElement library with Tailwind CSS classes via setClass()
// Assumes Composer autoloader is included
require_once __DIR__ . '/../vendor/autoload.php';
use Hypertool\Html\HtmlElement;
echo "--- Tailwind CSS Examples using setClass() ---\n\n";
// --- Tailwind Styled Button ---
echo "1. Tailwind Styled Button:\n";
$button = HtmlElement::button('Styled Button')
->setClass('bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded'); // Apply Tailwind utility classes
echo $button->output() . "\n\n";
// Expected: <button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Styled Button</button>
// --- Tailwind Card ---
echo "2. Tailwind Card:\n";
$card = HtmlElement::div()
->setClass('max-w-sm rounded overflow-hidden shadow-lg bg-white'); // Apply Tailwind card container classes
$image = HtmlElement::img()
->setSrc('/img/card-top.jpg') // Placeholder image path
->setAlt('Sunset in the mountains')
->setClass('w-full');
$contentDiv = HtmlElement::div()->setClass('px-6 py-4');
$title = HtmlElement::div('The Coldest Sunset')
->setClass('font-bold text-xl mb-2');
$text = HtmlElement::p('Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil.')
->setClass('text-gray-700 text-base');
$contentDiv->add_child('title', $title)->add_child('text', $text);
$tagsDiv = HtmlElement::div()->setClass('px-6 pt-4 pb-2');
$tag1 = HtmlElement::span('#photography')->setClass('inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2');
$tag2 = HtmlElement::span('#travel')->setClass('inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2');
$tag3 = HtmlElement::span('#winter')->setClass('inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2');
$tagsDiv->add_child('tag1', $tag1)->add_child('tag2', $tag2)->add_child('tag3', $tag3);
$card->add_child('image', $image)
->add_child('content', $contentDiv)
->add_child('tags', $tagsDiv);
echo $card->output() . "\n\n";
/* Expected structure similar to Tailwind card component example */
echo "--- End Tailwind CSS Examples ---\n";
?>
|