baine / php-computed-styles
"Use method chaining to add classes and styles to html elements in PHP.
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/baine/php-computed-styles
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
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.
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().