Skip to content
Brok UI

Loading…

No results

Awards

Open source

Awards and recognition — a grid of award cards with a decorative laurel/trophy icon, award name, awarding organisation and a year badge.

Preview

resources/views/blocks/awards.blade.php Blade
@props([
    'eyebrow' => 'Recognition',
    'heading' => 'Awards & recognition',
    'subheading' => 'Independent juries, industry bodies and our own customers keep telling the same story — here are a few highlights we are proud of.',
    'awards' => null,
])

@php
    $awards ??= [
        [
            'name' => 'Product of the Year',
            'organisation' => 'Design Tools Awards',
            'year' => '2024',
            'icon' => 'trophy',
        ],
        [
            'name' => 'Best Developer Experience',
            'organisation' => 'Frontend Guild',
            'year' => '2024',
            'icon' => 'laurel',
        ],
        [
            'name' => 'Accessibility Excellence',
            'organisation' => 'Inclusive Web Council',
            'year' => '2023',
            'icon' => 'medal',
        ],
        [
            'name' => 'Editor’s Choice',
            'organisation' => 'Acme Inc. Review',
            'year' => '2023',
            'icon' => 'star',
        ],
        [
            'name' => 'Fastest Growing Tool',
            'organisation' => 'SaaS Index',
            'year' => '2022',
            'icon' => 'rocket',
        ],
        [
            'name' => 'Community Favourite',
            'organisation' => 'Open Source Summit',
            'year' => '2022',
            'icon' => 'laurel',
        ],
    ];

    $icons = [
        'trophy' => '<path d="M6 4h12v3a6 6 0 0 1-12 0V4Z" /><path d="M6 6H4a2 2 0 0 0 2 4" /><path d="M18 6h2a2 2 0 0 1-2 4" /><path d="M12 13v4" /><path d="M9 21h6" /><path d="M10 17h4l1 4H9l1-4Z" />',
        'laurel' => '<path d="M12 21c-1-3-1-6 0-9 1 3 1 6 0 9Z" /><path d="M9 18c-3 0-5-2-5-5 0-3 2-6 5-6-1 3-1 8 0 11Z" /><path d="M15 18c3 0 5-2 5-5 0-3-2-6-5-6 1 3 1 8 0 11Z" />',
        'medal' => '<path d="m8 2 2 5" /><path d="m16 2-2 5" /><circle cx="12" cy="15" r="6" /><path d="M12 12v6" /><path d="m9.5 13.5 2.5 1.5 2.5-1.5" />',
        'star' => '<path d="M12 3l2.6 5.3 5.9.9-4.2 4.1 1 5.8L12 16.9 6.7 19.6l1-5.8L3.5 9.7l5.9-.9L12 3Z" />',
        'rocket' => '<path d="M5 13c-1.5 1.5-2 5-2 5s3.5-.5 5-2" /><path d="M14.5 4.5c2.5-2.5 5.5-2 5.5-2s.5 3-2 5.5l-7 7-3.5-3.5 7-7Z" /><circle cx="14.5" cy="9.5" r="1.5" />',
    ];
@endphp

<x-ui.section
    data-slot="awards"
    aria-labelledby="awards-01-heading"
    space="xl" {{ $attributes }}
>
    <x-ui.container gutter="sm">
        <div class="mx-auto max-w-2xl text-center">
            @if ($eyebrow)
                <p class="text-sm font-semibold uppercase tracking-wide text-primary">{{ __($eyebrow) }}</p>
            @endif
            <h2 id="awards-01-heading" class="mt-4 text-balance text-3xl font-bold tracking-tight sm:text-4xl">{{ __($heading) }}</h2>
            @if ($subheading)
                <p class="mt-4 text-pretty text-lg text-muted-foreground">{{ __($subheading) }}</p>
            @endif
        </div>

        <ul role="list" class="mt-12 grid grid-cols-1 gap-6 sm:mt-16 sm:grid-cols-2 lg:grid-cols-3">
            @foreach ($awards as $award)
                <li>
                    <x-ui.card class="group flex h-full flex-col gap-6 p-6 transition-shadow hover:shadow-md">
                        <div class="flex items-start justify-between gap-4">
                            <x-ui.icon.tile size="lg">
                                <svg class="size-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
                                    {!! $icons[$award['icon']] ?? $icons['trophy'] !!}
                                </svg>
                            </x-ui.icon.tile>
                            <x-ui.badge variant="secondary">
                                <time datetime="{{ $award['year'] }}">{{ $award['year'] }}</time>
                            </x-ui.badge>
                        </div>

                        <div class="flex flex-1 flex-col gap-2">
                            <h3 class="text-lg font-semibold text-foreground">{{ __($award['name']) }}</h3>
                            <p class="text-sm text-muted-foreground">{{ __($award['organisation']) }}</p>
                        </div>
                    </x-ui.card>
                </li>
            @endforeach
        </ul>
    </x-ui.container>
</x-ui.section>

Installation

terminal
php artisan ui:add blocks/awards

Installs these dependencies automatically:

Registry contract

Install confidence

php artisan ui:add blocks/awards writes only the generated targets below. The CLI validates each file hash before writing and prompts before replacing local changes unless --force is used.

Version
1.0.5
License
open
Stability
stable
Contract
v1
Foundation
≥ 1.0.0
Type Generated target
blade resources/views/blocks/awards.blade.php

Registry dependencies

badge card container icon section

Package dependencies

composer: jml/brok:^0.2

Use with AI

A brief for your coding agent: what the block is, the install command, how to render it, its props and the rules. Copy it, or open a prompt about this block in an assistant.

awards.md
# Brok UI block: Awards (`awards`)

Awards and recognition section: eyebrow, heading and lead above a responsive grid of award cards, each with a decorative laurel/trophy icon, award name, awarding organisation and a year badge.

Brok UI is a Laravel Blade registry. `ui:add` copies this block into the app as plain Blade the app owns; it composes installed `<brok:*>` primitives and semantic design tokens.

## Install

```bash
php artisan ui:add blocks/awards
```

## Render it

```blade
<x-blocks.awards />
```

## Props

- `eyebrow` (string, default `Recognition`)
- `heading` (string, default `Awards & recognition`)
- `subheading` (string, default `Independent juries, industry bodies and our own customers keep telling the same story — here are a few highlights we are proud of.`)
- `awards` (mixed|null, default `null`)

## Use when

- Showcasing industry awards or press recognition as a responsive grid of cards, each with an icon, award name, organisation and year.
- Building social proof on a marketing page through third-party validation rather than customer quotes.

## Avoid when

- Use compliance for security/regulatory certifications, or case-studies for outcome-based customer proof instead.

## Rules

- Render the installed block with `<x-blocks.awards />` and pass data through its props; edit the copied file only for structural changes.
- Keep the semantic design tokens (`bg-background`, `text-muted-foreground`); never swap in raw colour utilities.
- Keep the `data-slot` attributes and the logical (start/end) spacing so the markup still mirrors under `dir="rtl"`.

## Links

- Docs: https://brokui.dev/blocks/awards
- Registry JSON (files, props, contract): https://brokui.dev/r/open/blocks/awards.json

Working in Claude Code, Cursor or Codex? Give the agent the whole registry through the MCP server or the Brok UI skill.

Guidance

Use when

  • Showcasing industry awards or press recognition as a responsive grid of cards, each with an icon, award name, organisation and year.
  • Building social proof on a marketing page through third-party validation rather than customer quotes.

Avoid when

  • Use compliance for security/regulatory certifications, or case-studies for outcome-based customer proof instead.

Anti-patterns

  • Do not replace semantic props with conflicting utility classes.
  • Do not remove labels, focus styles, or state attributes.
Anatomy
root awards

Usage

Render the block as a component, passing data where useful:

resources/views/welcome.blade.php Blade
<x-blocks.awards />

Built from primitives

Composes <brok:*> Semantic tokens Re-themeable RTL-ready

This block composes installed <brok:*> primitives and semantic design tokens only — it does not reimplement any primitive. Re-theme it (light, dark, admin, customer) by editing CSS variables; flip the preview to RTL to confirm it mirrors.

Source

The exact, editable file ui:add writes into your app. The preview above renders this same source — there are no preview-only blocks.

resources/views/blocks/awards.blade.php Blade
@props([
    'eyebrow' => 'Recognition',
    'heading' => 'Awards & recognition',
    'subheading' => 'Independent juries, industry bodies and our own customers keep telling the same story — here are a few highlights we are proud of.',
    'awards' => null,
])

@php
    $awards ??= [
        [
            'name' => 'Product of the Year',
            'organisation' => 'Design Tools Awards',
            'year' => '2024',
            'icon' => 'trophy',
        ],
        [
            'name' => 'Best Developer Experience',
            'organisation' => 'Frontend Guild',
            'year' => '2024',
            'icon' => 'laurel',
        ],
        [
            'name' => 'Accessibility Excellence',
            'organisation' => 'Inclusive Web Council',
            'year' => '2023',
            'icon' => 'medal',
        ],
        [
            'name' => 'Editor’s Choice',
            'organisation' => 'Acme Inc. Review',
            'year' => '2023',
            'icon' => 'star',
        ],
        [
            'name' => 'Fastest Growing Tool',
            'organisation' => 'SaaS Index',
            'year' => '2022',
            'icon' => 'rocket',
        ],
        [
            'name' => 'Community Favourite',
            'organisation' => 'Open Source Summit',
            'year' => '2022',
            'icon' => 'laurel',
        ],
    ];

    $icons = [
        'trophy' => '<path d="M6 4h12v3a6 6 0 0 1-12 0V4Z" /><path d="M6 6H4a2 2 0 0 0 2 4" /><path d="M18 6h2a2 2 0 0 1-2 4" /><path d="M12 13v4" /><path d="M9 21h6" /><path d="M10 17h4l1 4H9l1-4Z" />',
        'laurel' => '<path d="M12 21c-1-3-1-6 0-9 1 3 1 6 0 9Z" /><path d="M9 18c-3 0-5-2-5-5 0-3 2-6 5-6-1 3-1 8 0 11Z" /><path d="M15 18c3 0 5-2 5-5 0-3-2-6-5-6 1 3 1 8 0 11Z" />',
        'medal' => '<path d="m8 2 2 5" /><path d="m16 2-2 5" /><circle cx="12" cy="15" r="6" /><path d="M12 12v6" /><path d="m9.5 13.5 2.5 1.5 2.5-1.5" />',
        'star' => '<path d="M12 3l2.6 5.3 5.9.9-4.2 4.1 1 5.8L12 16.9 6.7 19.6l1-5.8L3.5 9.7l5.9-.9L12 3Z" />',
        'rocket' => '<path d="M5 13c-1.5 1.5-2 5-2 5s3.5-.5 5-2" /><path d="M14.5 4.5c2.5-2.5 5.5-2 5.5-2s.5 3-2 5.5l-7 7-3.5-3.5 7-7Z" /><circle cx="14.5" cy="9.5" r="1.5" />',
    ];
@endphp

<x-ui.section
    data-slot="awards"
    aria-labelledby="awards-01-heading"
    space="xl" {{ $attributes }}
>
    <x-ui.container gutter="sm">
        <div class="mx-auto max-w-2xl text-center">
            @if ($eyebrow)
                <p class="text-sm font-semibold uppercase tracking-wide text-primary">{{ __($eyebrow) }}</p>
            @endif
            <h2 id="awards-01-heading" class="mt-4 text-balance text-3xl font-bold tracking-tight sm:text-4xl">{{ __($heading) }}</h2>
            @if ($subheading)
                <p class="mt-4 text-pretty text-lg text-muted-foreground">{{ __($subheading) }}</p>
            @endif
        </div>

        <ul role="list" class="mt-12 grid grid-cols-1 gap-6 sm:mt-16 sm:grid-cols-2 lg:grid-cols-3">
            @foreach ($awards as $award)
                <li>
                    <x-ui.card class="group flex h-full flex-col gap-6 p-6 transition-shadow hover:shadow-md">
                        <div class="flex items-start justify-between gap-4">
                            <x-ui.icon.tile size="lg">
                                <svg class="size-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
                                    {!! $icons[$award['icon']] ?? $icons['trophy'] !!}
                                </svg>
                            </x-ui.icon.tile>
                            <x-ui.badge variant="secondary">
                                <time datetime="{{ $award['year'] }}">{{ $award['year'] }}</time>
                            </x-ui.badge>
                        </div>

                        <div class="flex flex-1 flex-col gap-2">
                            <h3 class="text-lg font-semibold text-foreground">{{ __($award['name']) }}</h3>
                            <p class="text-sm text-muted-foreground">{{ __($award['organisation']) }}</p>
                        </div>
                    </x-ui.card>
                </li>
            @endforeach
        </ul>
    </x-ui.container>
</x-ui.section>

Ownership & lifecycle

Owner, release state, review evidence and adoption for this item.
Owner
Platform UI (@JoshJML)
Current version
1.0.5
Status
Stable
License
open
Deprecation
Not deprecated
Contract
v1
Foundation
≥ 1.0.0