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
Requires (Dev)
- phpunit/phpunit: ^9
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
androunded
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
orfalse
).
- Key based values are only added if the value is of a boolean type (
- The
bg-success
andtext-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()
.