Build up classes or styles to be injected into HTML. I wrote a blog post about this project on my blog.
composer require baine/php-computed-stylesThe two main classes in this package can be used to build styles and classes for your HTML dynamically.
<?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
flexandroundedclasses are statically added to the element. - The
text-blueclass is added if$user->isAdmin()evaluates to true.- Key based values are only added if the value is of a boolean type (
trueorfalse).
- Key based values are only added if the value is of a boolean type (
- The
bg-successandtext-whiteclasses are added to the element if the$successvariable is truthy. - The
bg-disabledclass is only added when$user->isAdmin()is falsy.
<?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.
Both classes can be accessed easily via helper functions. baine_computedStyles() and baine_computedClasses().