PHPackages                             yard/brave-components - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. yard/brave-components

ActivePackage[Utility &amp; Helpers](/categories/utility)

yard/brave-components
=====================

Collection of logic-heavy components used in Brave projects.

v1.6.2(1mo ago)03.3k↓53.7%[2 issues](https://github.com/yardinternet/brave-components/issues)[3 PRs](https://github.com/yardinternet/brave-components/pulls)MITPHPPHP &gt;=8.2CI passing

Since Feb 25Pushed 1w ago2 watchersCompare

[ Source](https://github.com/yardinternet/brave-components)[ Packagist](https://packagist.org/packages/yard/brave-components)[ RSS](/packages/yard-brave-components/feed)WikiDiscussions main Synced yesterday

READMEChangelog (10)Dependencies (40)Versions (34)Used By (0)

Brave components
================

[](#brave-components)

[![Code Style](https://github.com/yardinternet/brave-components/actions/workflows/format-php.yml/badge.svg?no-cache)](https://github.com/yardinternet/brave-components/actions/workflows/format-php.yml)[![PHPStan](https://github.com/yardinternet/brave-components/actions/workflows/phpstan.yml/badge.svg?no-cache)](https://github.com/yardinternet/brave-components/actions/workflows/phpstan.yml)[![Tests](https://github.com/yardinternet/brave-components/actions/workflows/run-tests.yml/badge.svg?no-cache)](https://github.com/yardinternet/brave-components/actions/workflows/run-tests.yml)[![Code Coverage Badge](https://github.com/yardinternet/brave-components/raw/badges/coverage.svg)](https://github.com/yardinternet/brave-components/actions/workflows/badges.yml)[![Lines of Code Badge](https://github.com/yardinternet/brave-components/raw/badges/lines-of-code.svg)](https://github.com/yardinternet/brave-components/actions/workflows/badges.yml)

Collection of logic-heavy components used in Brave projects.

Requirements
------------

[](#requirements)

- [Sage](https://github.com/roots/sage) &gt;= 10.0
- [Acorn](https://github.com/roots/acorn) &gt;= 4.0

Installation
------------

[](#installation)

To install this package using Composer, follow these steps:

1. Install this package with Composer:

    ```
    composer require yard/brave-components
    ```
2. Run the Acorn WP-CLI command to discover this package:

    ```
    wp acorn package:discover
    ```

You can publish the config file with:

```
wp acorn vendor:publish --provider="Yard\Brave\ComponentsServiceProvider"
```

To only publish the views, run:

```
wp acorn vendor:publish --provider="Yard\Brave\ComponentsServiceProvider" --tag="views"
```

Components
----------

[](#components)

### Back Button

[](#back-button)

Shows a back button that determines its link and text by checking the parent page. If the post has no parent, it sets the link to a predefined parent page slug or defaults to "javascript:history.back();".

Usage:

```

```

### Breadcrumb

[](#breadcrumb)

Generate a breadcrumb based on the current page. Also adds posts added through the `parent-page` supports feature. Usage:

```

```

Or pass your own collection of items to show a custom breadcrumb:

```

```

### Dialog

[](#dialog)

Usage:

```

    Open dialog

    This is the content of the dialog.

        Close dialog

```

### Pattern Content

[](#pattern-content)

Shows the content of a pattern by its slug. You can find the slug (post name) using the `wp post get` CLI command and providing the post ID.

Usage:

```

```

Configure the admin behavior of each pattern in the `components.php` config file to automatically save them as drafts (thus hiding them from the pattern inserter), prevent their deletion, and add custom labels in the admin view.

### Read Speaker

[](#read-speaker)

Adds a ReadSpeaker button on specific places with the component and automatically adds it to the content of H1 blocks in the post content. Make sure to configure the `readSpeaker` settings in the `components.php` config file to set your customer ID and other options.

Usage:

```

```

### Nav

[](#nav)

Navigation component with optional dropdowns. Provides the right ARIA attributes and keyboard navigation for accessibility.

Dropdown visibility is controlled via `aria-expanded`. Use it in combination with the `group` class on the parent item and `group-has-aria-expanded` variants to show/hide the dropdown.

**Dropdown modes**

- `click` (default) — opens on click
- `hover` - opens on hover, closes when the mouse leaves the item

For accessibility, the `` component requires an `aria-label`.

Example usage with Navi:

```
@php($menu = \Log1x\Navi\Navi::make()->build('primary_navigation'))

@if ($menu->isNotEmpty())

            @foreach ($menu->all() as $item)

                        {!! $item->label !!}
                        @if ($item->children)

                        @endif

                    @if ($item->children)

                            @foreach ($item->children as $child)

                                        {!! $child->label !!}

                            @endforeach

                    @endif

            @endforeach

@endif
```

Usage without Navi:

```

                First item

                Dropdown

            {{-- Change mode via mode="hover" --}}

                        Dropdown item 1

                        Dropdown item 2

```

### Tooltip

[](#tooltip)

Usage:

```

    Hover or focus me

    This is the tooltip content.

```

About us
--------

[](#about-us)

[![banner](https://raw.githubusercontent.com/yardinternet/.github/refs/heads/main/profile/assets/small-banner-github.svg)](https://www.yard.nl/werken-bij/)

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance96

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Recently: every ~12 days

Total

23

Last Release

30d ago

PHP version history (2 changes)v1.0.0PHP &gt;=8.1

v1.1.0PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/62775?v=4)[Anton Zhuravsky](/maintainers/Yard)[@yard](https://github.com/yard)

---

Top Contributors

[![YvetteNikolov](https://avatars.githubusercontent.com/u/48315669?v=4)](https://github.com/YvetteNikolov "YvetteNikolov (34 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (20 commits)")[![Rovasch](https://avatars.githubusercontent.com/u/166744617?v=4)](https://github.com/Rovasch "Rovasch (13 commits)")[![laravdiemen](https://avatars.githubusercontent.com/u/80510718?v=4)](https://github.com/laravdiemen "laravdiemen (10 commits)")[![ictbeheer](https://avatars.githubusercontent.com/u/14947039?v=4)](https://github.com/ictbeheer "ictbeheer (5 commits)")[![yard-bot](https://avatars.githubusercontent.com/u/66111179?v=4)](https://github.com/yard-bot "yard-bot (4 commits)")[![rivanuff](https://avatars.githubusercontent.com/u/16398970?v=4)](https://github.com/rivanuff "rivanuff (1 commits)")[![FreakyWizard](https://avatars.githubusercontent.com/u/114140418?v=4)](https://github.com/FreakyWizard "FreakyWizard (1 commits)")[![dtakken](https://avatars.githubusercontent.com/u/2066447?v=4)](https://github.com/dtakken "dtakken (1 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan

### Embed Badge

![Health badge](/badges/yard-brave-components/health.svg)

```
[![Health](https://phpackages.com/badges/yard-brave-components/health.svg)](https://phpackages.com/packages/yard-brave-components)
```

###  Alternatives

[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

329530.5k29](/packages/codewithdennis-filament-select-tree)[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3161.3M25](/packages/ysfkaya-filament-phone-input)[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

122177.8k1](/packages/stephenjude-filament-feature-flags)[worksome/exchange

Check Exchange Rates for any currency in Laravel.

124603.0k](/packages/worksome-exchange)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

94135.4k5](/packages/marcelweidum-filament-expiration-notice)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
