Plan step 38: the Layout section's Overview keeps its breakpoint
table and live "This window" readout (now a shared
<x-showcase::breakpoint-readout> partial, and the five breakpoint
cards a real range-queried data-md-showcase-breakpoint-card instead
of Tailwind's max-medium:/medium:max-expanded: variants), but the
three canonical layouts move off it onto a page of their own:
/material/layout/{list-detail,supporting-pane,feed}
(ShowcaseController::layout(), routes/showcase.php), each built on
the real component, sharing one <x-section-nav> Sections::
layoutPages() feeds. The search index gains an entry per page with
its own URL, and the component-homes scan now also reads the three
pages' own source so <x-list-detail>, <x-supporting-pane> and
<x-feed> keep a home.
The whole section moves onto the layout components and md-* classes:
no bespoke Tailwind grid or table styling remains.
LayoutTest's browser test now visits the three dedicated pages
instead of one shared /material/layout; a new Feature test asserts
each page renders and is linked from the Layout section.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9
42 lines
2.1 KiB
PHP
42 lines
2.1 KiB
PHP
{{-- The feed canonical layout on a page of its own (plan step 38): the same working demo the
|
|
Layout section's Overview linked from its own navigation, built on the real <x-feed>, with
|
|
the live breakpoint readout the Overview page has. --}}
|
|
|
|
@extends('livewire-material::showcase.layout')
|
|
|
|
@php
|
|
$code = <<<'BLADE'
|
|
<x-feed min-item="220px">
|
|
<x-card title="Harbour at dawn" subtitle="12 photos" variant="outlined">The boats before the ferry.</x-card>
|
|
<x-card title="Old town" subtitle="31 photos" variant="outlined">Every lane, twice.</x-card>
|
|
<x-card title="Lake swim" subtitle="4 videos" variant="outlined">Colder than it looks.</x-card>
|
|
<x-card title="Market" subtitle="18 photos" variant="outlined">Cheese, mostly.</x-card>
|
|
<x-card title="The long walk" subtitle="9 photos" variant="outlined">Up to the ridge and back.</x-card>
|
|
<x-card title="Train home" subtitle="3 photos" variant="outlined">Asleep by the second stop.</x-card>
|
|
</x-feed>
|
|
BLADE;
|
|
@endphp
|
|
|
|
@section('content')
|
|
<x-livewire-material::pane width="wide" data-md-showcase-page>
|
|
<x-livewire-material::stack gap="space300">
|
|
<x-livewire-material::stack as="header" gap="space50">
|
|
<p class="md-type-label-lg md-ink-variant">Foundations</p>
|
|
<h1 class="md-type-headline-lg">Layout</h1>
|
|
</x-livewire-material::stack>
|
|
|
|
<x-livewire-material::section-nav :items="array_values(\NoNameWeb\LivewireMaterial\Showcase\Sections::layoutPages())" label="Layout pages" />
|
|
|
|
<x-showcase::breakpoint-readout />
|
|
|
|
<p class="md-type-body-md md-ink-variant">
|
|
M3's feed: cards or items to browse, in columns that multiply as the room grows — news, photos,
|
|
posts. One column below 600px, then as many equal columns of at least <code>min-item</code> as the
|
|
feed has room for.
|
|
</p>
|
|
|
|
<x-showcase::example title="Feed" :code="$code" stack />
|
|
</x-livewire-material::stack>
|
|
</x-livewire-material::pane>
|
|
@endsection
|