Skip to content
Brok UI

Loading…

No results

Project Kickoff

Open source

A project kickoff document: a cover with an icon tile and title, a "Tip" callout, the projects board block at full content width, and a deliverables checklist.

Responsive Dark mode RTL Localized SEO

Preview

resources/views/pages/project-kickoff.blade.php Blade
{{--
    Project Kickoff — a project document template: a document cover (icon tile
    + title), a "Tip" callout, the projects board block, and a deliverables
    checklist. The reading column (cover, tip, checklist) is capped for
    comfortable reading; the projects board is the one region that spans the
    full content width. Every list is a prop, so a host binds its own tip
    copy, projects and deliverables; the defaults render the sample document
    the docs show.
--}}
@props([
    'title' => 'UX/UI project kickoff',
    'tip' => 'Use this template to keep all important information about a new project in one organized place.',
    'projects' => null,
    'deliverables' => null,
])

@php
    $deliverables ??= [
        ['id' => 'ux-audit', 'label' => 'UX audit'],
        ['id' => 'moodboard', 'label' => 'Moodboard / style reference'],
        ['id' => 'wireframes', 'label' => 'Wireframes (mobile + desktop)'],
        ['id' => 'final-ui-design', 'label' => 'Final UI design'],
        ['id' => 'interactive-prototype', 'label' => 'Interactive prototype'],
        ['id' => 'design-system', 'label' => 'Design system (components, typography, spacing)'],
        ['id' => 'handoff-package', 'label' => 'Handoff package'],
    ];
@endphp

<x-ui.section as="main" data-slot="project-kickoff" data-surface="admin" space="none" class="min-h-svh py-4 sm:py-6 lg:py-8" {{ $attributes }}>
    <x-ui.container size="md" class="space-y-8">
        <div class="space-y-6">
            <div class="flex size-14 items-center justify-center rounded-lg bg-primary text-primary-foreground" aria-hidden="true">
                <svg class="size-6" viewBox="0 0 24 24" fill="currentColor">
                    <path d="m12 3-1.9 5.8a2 2 0 0 1-1.287 1.288L3 12l5.8 1.9a2 2 0 0 1 1.288 1.287L12 21l1.9-5.8a2 2 0 0 1 1.287-1.288L21 12l-5.8-1.9a2 2 0 0 1-1.288-1.287Z" />
                </svg>
            </div>
            <h1 class="text-3xl font-semibold tracking-tight text-foreground sm:text-4xl">{{ __($title) }}</h1>
        </div>

        <x-ui.alert :icon="false" role="none">
            <x-ui.alert.description>
                <span class="font-semibold text-foreground">{{ __('Tip:') }}</span> {{ __($tip) }}
            </x-ui.alert.description>
        </x-ui.alert>
    </x-ui.container>

    <x-blocks.projects-board :projects="$projects" />

    <x-ui.container size="md" class="space-y-6">
        <div class="space-y-2">
            <h2 class="text-xl font-semibold tracking-tight text-foreground sm:text-2xl">{{ __('Deliverables checklist') }}</h2>
            <p class="text-sm italic text-muted-foreground">{{ __('List the tangible outputs expected from each stage of the project to keep both the team and the client aligned on what\'s being produced.') }}</p>
        </div>

        <fieldset>
            <legend class="sr-only">{{ __('Deliverables checklist') }}</legend>
            <ul class="space-y-4">
                @foreach ($deliverables as $item)
                    <li>
                        <label class="flex cursor-pointer items-center gap-2 text-sm">
                            <x-ui.checkbox name="deliverables[]" value="{{ $item['id'] }}" />
                            <span class="text-foreground">{{ __($item['label']) }}</span>
                        </label>
                    </li>
                @endforeach
            </ul>
        </fieldset>
    </x-ui.container>
</x-ui.section>

Installation

terminal
php artisan ui:add pages/project-kickoff

Registry contract

Install confidence

php artisan ui:add pages/project-kickoff 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.1
License
open
Stability
stable
Contract
v1
Foundation
≥ 1.0.0
Type Generated target
blade resources/views/pages/project-kickoff.blade.php

Registry dependencies

section container alert checkbox blocks/projects-board

Package dependencies

composer: jml/brok:^0.2

Use with AI

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

project-kickoff.md
# Brok UI page: Project Kickoff (`project-kickoff`)

A project kickoff document: a cover with an icon tile and title, a "Tip" callout, the projects board block at full content width, and a deliverables checklist.

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

## Install

```bash
php artisan ui:add pages/project-kickoff
```

## Render it

```blade
<x-pages.project-kickoff />
```

## Use when

- A shareable project document that keeps the brief, the workspace's projects and a deliverables checklist in one organized place.
- A kickoff or planning doc a team fills in before a project starts, rather than a live per-project status screen.

## Avoid when

- One project's live status screen with progress, KPIs and a task list; use project-overview.
- A cross-project dashboard; use dashboard-overview..05.

## Rules

- Render the installed page with `<x-pages.project-kickoff />` 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/pages/project-kickoff
- Registry JSON (files, props, contract): https://brokui.dev/r/open/pages/project-kickoff.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

  • A shareable project document that keeps the brief, the workspace's projects and a deliverables checklist in one organized place.
  • A kickoff or planning doc a team fills in before a project starts, rather than a live per-project status screen.

Avoid when

  • One project's live status screen with progress, KPIs and a task list; use project-overview.
  • A cross-project dashboard; use dashboard-overview..05.

Anti-patterns

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

Usage

Render the page as a component, or wire it to a route. Pass data where useful:

resources/views/welcome.blade.php Blade
<x-pages.project-kickoff />

Built from blocks & primitives

This page 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 pages.

resources/views/pages/project-kickoff.blade.php Blade
{{--
    Project Kickoff — a project document template: a document cover (icon tile
    + title), a "Tip" callout, the projects board block, and a deliverables
    checklist. The reading column (cover, tip, checklist) is capped for
    comfortable reading; the projects board is the one region that spans the
    full content width. Every list is a prop, so a host binds its own tip
    copy, projects and deliverables; the defaults render the sample document
    the docs show.
--}}
@props([
    'title' => 'UX/UI project kickoff',
    'tip' => 'Use this template to keep all important information about a new project in one organized place.',
    'projects' => null,
    'deliverables' => null,
])

@php
    $deliverables ??= [
        ['id' => 'ux-audit', 'label' => 'UX audit'],
        ['id' => 'moodboard', 'label' => 'Moodboard / style reference'],
        ['id' => 'wireframes', 'label' => 'Wireframes (mobile + desktop)'],
        ['id' => 'final-ui-design', 'label' => 'Final UI design'],
        ['id' => 'interactive-prototype', 'label' => 'Interactive prototype'],
        ['id' => 'design-system', 'label' => 'Design system (components, typography, spacing)'],
        ['id' => 'handoff-package', 'label' => 'Handoff package'],
    ];
@endphp

<x-ui.section as="main" data-slot="project-kickoff" data-surface="admin" space="none" class="min-h-svh py-4 sm:py-6 lg:py-8" {{ $attributes }}>
    <x-ui.container size="md" class="space-y-8">
        <div class="space-y-6">
            <div class="flex size-14 items-center justify-center rounded-lg bg-primary text-primary-foreground" aria-hidden="true">
                <svg class="size-6" viewBox="0 0 24 24" fill="currentColor">
                    <path d="m12 3-1.9 5.8a2 2 0 0 1-1.287 1.288L3 12l5.8 1.9a2 2 0 0 1 1.288 1.287L12 21l1.9-5.8a2 2 0 0 1 1.287-1.288L21 12l-5.8-1.9a2 2 0 0 1-1.288-1.287Z" />
                </svg>
            </div>
            <h1 class="text-3xl font-semibold tracking-tight text-foreground sm:text-4xl">{{ __($title) }}</h1>
        </div>

        <x-ui.alert :icon="false" role="none">
            <x-ui.alert.description>
                <span class="font-semibold text-foreground">{{ __('Tip:') }}</span> {{ __($tip) }}
            </x-ui.alert.description>
        </x-ui.alert>
    </x-ui.container>

    <x-blocks.projects-board :projects="$projects" />

    <x-ui.container size="md" class="space-y-6">
        <div class="space-y-2">
            <h2 class="text-xl font-semibold tracking-tight text-foreground sm:text-2xl">{{ __('Deliverables checklist') }}</h2>
            <p class="text-sm italic text-muted-foreground">{{ __('List the tangible outputs expected from each stage of the project to keep both the team and the client aligned on what\'s being produced.') }}</p>
        </div>

        <fieldset>
            <legend class="sr-only">{{ __('Deliverables checklist') }}</legend>
            <ul class="space-y-4">
                @foreach ($deliverables as $item)
                    <li>
                        <label class="flex cursor-pointer items-center gap-2 text-sm">
                            <x-ui.checkbox name="deliverables[]" value="{{ $item['id'] }}" />
                            <span class="text-foreground">{{ __($item['label']) }}</span>
                        </label>
                    </li>
                @endforeach
            </ul>
        </fieldset>
    </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.1
Status
Stable
License
open
Deprecation
Not deprecated
Contract
v1
Foundation
≥ 1.0.0