Download the PHP package whitecube/bem-components without Composer
On this page you can find all versions of the php package whitecube/bem-components. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download whitecube/bem-components
More information about whitecube/bem-components
Files in whitecube/bem-components
Package bem-components
Short Description BEM view components in Laravel
License MIT
Informations about the package bem-components
Easy BEM CSS classes for Laravel Components
This package introduces a HasBemClasses
trait that you can use in Laravel's App\View\Components
instances, providing a few useful helper methods and automations for a seamless BEM-style integration in your workflow.
Installation
You can install the package via composer:
Usage
Generate your component files as you are used to, then add the Whitecube\BemComponents\HasBemClasses
trait to the component's view controller in App\View\Components
:
Then, don't forget to echo $attributes->bem(string $base, string|array $extraModifiers = [])
inside your component's view:
You can now pass modifiers and classes as you please:
Available methods
$bem(string $base, string|array $modifiers = []): string
Get compiled BEM classes with modifiers. The modifiers
parameter can either be a string of space-separated modifiers or an array.
For example, calling:
will result in:
$hasModifier(string $modifier): bool
Checks if the specified modifier
is applied on this component.
[!IMPORTANT] This method is also available inside the
Component
instance (using$this->hasModifier(string $modifier)
) but unfortunately it is not able to check for modifiers defined as attributes on the component's tag (<x-component modifiers="foo bar" />
) as of Laravel 10.x, because these values are not exposed before rendering the component's view. Let's hope this restriction will be lifted in the future.
If you need to access these modifiers inside the Component
instance, you can always request them from the component's __construct
parameters and inject them manually:
$hasClass(string $classname): bool
Checks if the specified CSS classname is applied on this component.
[!IMPORTANT] This method is also available inside the
Component
instance (using$this->hasClass(string $classname)
) but unfortunately it is not able to check for classnames defined as attributes on the component's tag (<x-component class="foo bar" />
) as of Laravel 10.x, because these values are not exposed before rendering the component's view. Let's hope this restriction will be lifted in the future.
If you need to access these classnames inside the Component
instance, you can always request them from the component's __construct
parameters and inject them manually:
💖 Sponsorships
If you are reliant on this package in your production applications, consider sponsoring us! It is the best way to help us keep doing what we love to do: making great open source software.
Contributing
Feel free to suggest changes, ask for new features or fix bugs yourself. We're sure there are still a lot of improvements that could be made, and we would be very happy to merge useful pull requests.
Thanks!
Made with ❤️ for open source
At Whitecube we use a lot of open source software as part of our daily work. So when we have an opportunity to give something back, we're super excited!
We hope you will enjoy this small contribution from us and would love to Twitter for more updates!