baine/php-computed-styles

"Use method chaining to add classes and styles to html elements in PHP.

1.0.2 2023-08-27 19:28 UTC

This package is not auto-updated.

Last update: 2024-09-23 22:32:01 UTC


README

Build up classes or styles to be injected into HTML. I wrote a blog post about this project on my blog.

Installation

composer require baine/php-computed-styles

Example Usage

The two main classes in this package can be used to build styles and classes for your HTML dynamically.

ComputedClasses

<?php

use Baine\PhpComputedStyles\ComputedClasses;

...


$classes = ComputedClasses::make([
    'flex',
    'rounded',
    'text-blue' => $user->likesBlue()
])
    ->when($success, [
        'bg-success',
        'text-white'
    ])->whenNot($user->isAdmin(), [
        'bg-disabled'
    ]);
<div class="<?= $classes ?>">My Div</div>
  • The flex and rounded classes are statically added to the element.
  • The text-blue class is added if $user->isAdmin() evaluates to true.
    • Key based values are only added if the value is of a boolean type (true or false).
  • The bg-success and text-white classes are added to the element if the $success variable is truthy.
  • The bg-disabled class is only added when $user->isAdmin() is falsy.

ComputedStyles

<?php

use Baine\PhpComputedStyles\ComputedStyles;

...

$styles = ComputedStyles::make([
    'display' => 'flex',
    'justify-content' => 'center'
])
    ->when($success, [
        'justify-content' => 'start'
    ])->whenNot($user->isAdmin(), [
        'color' => 'grey'
    ]);
<div style="<?= $styles ?>">My Div</div>

This works pretty much exactly the same as how the ComputedClasses class works. The only difference is how the class is encoded to a string.

Helper Functions

Both classes can be accessed easily via helper functions. baine_computedStyles() and baine_computedClasses().