Theme Corporate — Improvement & Growth Plan
Package: capell-app/theme-corporate · Kind: theme · Tier: free · Product group: Capell Foundation · Bundle: foundation · Status: Complete
1. Snapshot
Section titled “1. Snapshot”CorporateThemeServiceProvider registers theme key corporate with ThemeRegistry::register() in boot(), wiring a BladeThemeRenderer (layout view capell-theme-corporate::page) and ten ViewSectionRenderers — navigation, hero, features, proof, content-listing, locations, investor-relations, careers, cta, footer — each with failLoudly: true (src/CorporateThemeServiceProvider.php). All ten section Blade files plus the page wrapper (resources/views/page.blade.php) and Livewire page view exist; nothing is dead. definition() ships six presets (boardroom, civic, advisory, integrity, enterprise-trust, public-ledger) and points assets + previewImage at host-published vendor/capell/themes/* files. The demo command capell:theme-corporate-demo delegates to InstallCorporateThemeDemoAction → ThemeDemoPageInstaller::run($data, 'corporate', 'Corporate'), seeding ≥7 pages idempotently with Unsplash media (verified by tests/Feature/Commands/DemoCommandTest.php). The theme overrides every standard section with its own restrained “boardroom” Blade, but inherits content-listing gallery/pathways/spotlight variants by @include('capell-foundation-theme::theme.sections.content-listing'). Marketplace copy is buyer-facing, and the current committed screenshot set contains 10 route-backed light frontend captures from the real Corporate renderer; capell.json stays conservative by promoting the extension card plus homepage capture until inner-page fixtures carry more corporate-specific depth.
Completed Improvement Slices
Section titled “Completed Improvement Slices”- 2026-06-03: Replaced marketplace plumbing copy with buyer-facing Theme Corporate positioning, promoted committed PNG screenshots into the marketplace manifest, and added real diagnostics for theme registration, required views, and marketplace media.
- 2026-06-06: Captured all 12
docs/screenshots.jsonroute-backed targets through the Capell runner, then demoted the gallery after verifying the route renders the generictheme-galleryfixture rather than the package theme shell. - 2026-06-06: Fixed the screenshot wrapper to seed/capture one theme package at a time, mark frontend theme entries anonymous, and suppress the Insights consent banner during screenshot runs;
/theme-corporatenow captures a readable real Corporate shell after dark-mode strategy alignment, and the homepage PNG is promoted into marketplace media. - 2026-06-04: Replaced placeholder hero stat labels with translated defaults plus optional data-driven stats, translated proof/gallery and FAQ labels, replaced the
corporate-proofpublic selector with a generic selector, and added tests for those contracts. - 2026-06-07: Extracted proof carousel/gallery behavior into a package build asset, registered the JS entrypoint, added no-inline-script public-output coverage, and covered the content-listing variant matrix including inherited Foundation fallbacks.
- 2026-06-07: Routed shell surface/foreground through Theme Studio tokens, introduced shared Corporate card classes for muted/elevated/dark cards, applied them across hero/features/proof/content-listing/CTA/navigation, and added regression coverage for tokenized shell/card output.
- 2026-06-07: Recaptured all 10 light frontend screenshot targets through the Capell runner with the real Corporate renderer and visually reviewed the contact sheet; marketplace promotion remains intentionally limited to the strongest homepage capture.
- 2026-06-07: Tightened Corporate public accessibility and performance evidence: the mobile menu now syncs
aria-expanded, proof carousel controls exposearia-disabledplus live status text, carousel scrolling respects reduced motion, and a direct render-budget test proves the uncached public renderer stays within the 20 ms manifest budget without DB queries. - 2026-06-07: Added dedicated hydrated
investor-relationsandcareerssection patterns for report/disclosure/event lists and open-role listings, with translated empty states and public-output safety coverage.
2. Improvements (existing functionality)
Section titled “2. Improvements (existing functionality)”- Hero stats are translated and data-driven. — The hero now uses translated corporate credibility defaults and reads optional
$section->statsvalues when supplied, so live pages can render real offices/clients/markets-style proof instead of the oldPages/Content,Media/Assets,Layout/Widgetsplaceholder copy. —resources/views/sections/hero.blade.php,resources/lang/en/generic.php,tests/Unit/CorporateThemeDefinitionTest.php— Done - Proof carousel/lightbox JS extracted into a bundled asset. —
proof.blade.phpno longer embeds inline JavaScript. The behavior lives inresources/js/theme-corporate.js, is registered as a package build asset, and guards carousel initialisation idempotently with aWeakSet. Public-output safety tests now prevent inline scripts returning to Blade. —resources/views/sections/proof.blade.php,resources/js/theme-corporate.js,src/CorporateThemeServiceProvider.php,tests/Unit/CorporateThemeDefinitionTest.php,tests/Unit/PublicOutputSafetyTest.php— Done - Remaining proof/FAQ UI strings translated. — Proof gallery/carousel aria labels, proof image fallback alt text, FAQ numbering, and content-listing variant labels now use
capell-theme-corporate::generic.*keys. The proof carousel also uses a generic public selector instead ofcorporate-proof. —resources/views/sections/proof.blade.php,resources/views/sections/content-listing.blade.php,resources/lang/en/generic.php— Done - Shell surface token propagation shipped. — The shell now derives
--corporate-surfaceand--corporate-foregroundfrom Theme Studio--theme-surface/--theme-foregroundtokens, and the page wrapper no longer overrides those tokens with fixed Tailwind background/text utilities. Hero, content-listing, navigation, CTA, and feature surfaces use the shared tokenized shell/surface classes. —resources/css/theme-corporate.css,resources/views/page.blade.php, section views,tests/Unit/CorporateThemeDefinitionTest.php— Done - Card radius/style/density hooks shipped. — Corporate now exposes shared
.corporate-card,.corporate-card-muted,.corporate-card-elevated, and.corporate-card-on-darkclasses backed by--theme-radius-value,--theme-card-padding,--theme-card-border, and--theme-card-shadowfallbacks, and applies them across the feature, proof, content-listing, CTA, hero, and navigation card surfaces. —resources/css/theme-corporate.css,resources/views/sections/features.blade.php,proof.blade.php,content-listing.blade.php,cta.blade.php,hero.blade.php,navigation.blade.php,tests/Unit/CorporateThemeDefinitionTest.php— L - Dark-mode strategy aligned. — The CSS dark override now keys off the app/document
.darkclass, matching the Blade’s Tailwinddark:utilities instead of forcing dark colors throughprefers-color-scheme. Light screenshot/browser contexts now keep the Corporate shell readable. —resources/css/theme-corporate.css— S
3. Missing Features (gaps)
Section titled “3. Missing Features (gaps)”Manifest capabilities[] is only ["theme-corporate", "theme-corporate-frontend"] — i.e. a renderer, nothing more. Against what a corporate/B2B/public-sector site actually needs:
- Services / capabilities grid — partially covered by the generic
featuressection, but there is no dedicated services-detail layout. The demo seeds a “services” page (/corporate-services-layout) but it reuses standard sections. Table-stakes. - Leadership / team (“about us”) — covered only by the inherited
content-listingpeoplevariant. No org/leadership-specific treatment. Table-stakes. - Case studies / proof of work — the
proofsection renders metrics + quotes (testimonials), not full case studies with outcomes. Differentiator for corporate. - Investor / press relations shipped. Corporate now registers an
investor-relationssection that renders hydrated annual-report/trading-update/press-release style rows, event dates, and disclosure/document links with translated empty states and no public queries. Differentiator closed at theme boundary. - Careers / open roles shipped. Corporate now registers a
careerssection that renders hydrated role cards, teams/departments, location, employment type, benefit notes, and role CTAs with a translated empty state. Differentiator closed at theme boundary. - Multi-location / contact shipped. — Corporate now includes a
locationssection renderer with hydrated office cards, address, phone, email, hours, and an empty state. A future contact-form handoff could still deepen the surface, but the package now owns a corporate-specific office directory. Table-stakes for “multi-location”. - Stats / credibility band — the hero now accepts optional stat render data and translated defaults, but there is no standalone stats/credibility section component. Table-stakes.
Versus siblings (theme-agency, theme-saas, theme-commerce, theme-healthcare, theme-education, theme-knowledge, theme-local-services, theme-nonprofit, theme-portfolio): Corporate now exposes three corporate-specific section keys (locations, investor-relations, careers) alongside the standard foundation-style stack. Its differentiation is no longer purely visual; remaining opportunities are richer case-study/contact workflows and fixture depth rather than missing first-class corporate patterns.
4. Issues / Risks
Section titled “4. Issues / Risks”- Health check shipped. —
ThemeCorporateHealthChecknow probes Theme Studio registration, required Blade files, and marketplace screenshot paths, with tests for passing and failing states. Remaining opportunity: add a package-specific doctor command if direct console diagnostics become necessary. —src/Health/ThemeCorporateHealthCheck.php,tests/Feature/ThemeCorporateHealthCheckTest.php - Commercial tier reconciled. —
product.tier: "free",bundle: "foundation",group: "Capell Foundation", and the manifest commercial terms now agree:proposedLicense: "free",supportPolicy: "capell-first-party", andprivateDocsRequested: false. Unit coverage pins this free foundation contract. —capell.json - Screenshot contract closed for current light frontend targets. —
docs/screenshots.jsondeclares the route-backed Corporate targets and the current 10 light frontend captures were regenerated through the real seeded Corporate renderer.corporate-homepage-layout.pngis promoted incapell.json; the remaining gallery remains committed runner evidence but is intentionally not promoted wholesale until fixtures carry more corporate-specific depth. —capell.json,docs/screenshots.json,docs/screenshots/ - Preset count documentation aligned. — README and overview now list all six shipped presets (
boardroom,civic,advisory,integrity,enterprise-trust,public-ledger), matchingdefinition()and the unit test. —README.md,docs/overview.md - Dual
extendsmeaning documented. —ThemeDefinitionData(extends: 'default')records runtime theme-key inheritance while manifest"extends": "capell-app/foundation-theme"records package inheritance; the service provider comment documents this distinction. —src/CorporateThemeServiceProvider.php,capell.json - Uncached render-budget evidence shipped. — Corporate stays
cacheable: falsebecause it renders only hydrated Theme Studio data, no user-specific or database-backed public lookups, and the shell is already cheap enough for direct rendering. A focused test renders a representative public page under the manifest’s 20 ms budget and asserts no DB queries during the render phase, whilePublicOutputSafetyTestcontinues to scan Blade for query APIs. —capell.json,tests/Unit/CorporateThemeDefinitionTest.php,tests/Unit/PublicOutputSafetyTest.php - Test coverage narrowed to acceptable residual risk. — Covered: definition contract, every section renderer key present, navigation/hero render, translated/data-driven hero stats, proof gallery labels/selectors/live-status/control state, reduced-motion carousel and mobile menu JS contract, FAQ labels, locations rendering and empty state, investor/careers rendering and empty states, public-output safety, the full
content-listingvariant matrix, demo idempotency + https media, render-budget evidence, and health-check diagnostics. Browser-level carousel/lightbox interaction remains optional visual QA rather than active plan scope. —tests/Unit/,tests/Feature/ - A11y carousel/nav polish shipped. — Mobile nav summary now exposes
aria-expandedand the bundled theme JS syncs it on native<details>toggles. Proof carousel controls exposearia-disabled, render readable arrow symbols with screen-reader labels, include anaria-livestatus region, and the JS updates control/status state while respectingprefers-reduced-motion. —resources/views/sections/navigation.blade.php,resources/views/sections/proof.blade.php,resources/js/theme-corporate.js,tests/Unit/CorporateThemeDefinitionTest.php - Placeholder hero labels replaced. The hero stat block now uses translated defaults and optional render data. Real customer-provided stat content in demo pages/screenshots is future fixture polish. —
resources/views/sections/hero.blade.php
5. Marketplace & Selling
Section titled “5. Marketplace & Selling”Original summary (verbatim): “Business and governance theme screenshots from route-backed demo layouts.” — This screenshot-pipeline copy has been replaced with the buyer-facing summary below. The package composer description remains short, but the manifest description and marketplace description now carry stronger positioning.
Improved 1-sentence summary:
A restrained, trust-led website theme for B2B, professional-services, and public-sector organisations — formal hierarchy, board-grade proof blocks, and six palette presets out of the box.
Improved 3–4 sentence description:
Theme Corporate gives established businesses, advisory firms, and public bodies a polished, credibility-first site without a design project. Six curated presets — Boardroom, Civic, Advisory, Integrity, Enterprise Trust, and Public Ledger — span deep-navy formal through accessible civic and editorial advisory looks, each tuned for clarity and contrast. Structured proof carousels, capability bands, and a measured content hierarchy are built to read as authoritative on desktop and mobile alike, with full dark-mode support. Drop it on any Capell site, run the one-command demo, and pick a preset.
Media gaps: The static route-backed gallery is closed for the current light frontend contract. The committed frontend PNG renders now come from the actual Corporate theme renderer, with the homepage promoted and the remaining captures retained as runner evidence. Future media work should deepen the services, governance, resources, article, contact, locations, search, and investor-event fixtures before broader marketplace promotion.
Differentiation / target buyer: Corporate now has first-class corporate-only sections for multi-location office directories, investor/press updates, and careers/open roles, in addition to palette + restraint. Target buyer = mid-market B2B / professional services / local government marketing owner who needs to look established and trustworthy fast. To justify premium pricing further, continue toward richer case-study/contact workflows and deeper route-backed fixtures.
Completed 2026-06-07. Every prioritized roadmap row is closed. Theme Corporate now has aligned free/foundation commercial metadata, real health diagnostics, route-backed renderer captures, translated and data-driven hero/proof/FAQ surfaces, bundled carousel/mobile-nav JS, tokenized shell/card hooks, dark-mode alignment, content-listing matrix coverage, corporate-only locations/investor/careers sections, WCAG carousel/nav polish, and render-budget evidence.
Keywords/tags (8–12): corporate theme, B2B website, professional services, public sector, governance, trust-led design, business website template, dark mode, multi-preset, accessible (WCAG), advisory firm, enterprise.
6. Prioritized Roadmap
Section titled “6. Prioritized Roadmap”| Item | Bucket | Effort | Impact | Section ref |
|---|---|---|---|---|
Reconcile manifest tier free vs commercial paid/priority | Done | S | High | §4.2 — closed 2026-06-05: manifest commercial terms now match the free foundation product tier and overview metadata, with a manifest regression test. |
Replace generic theme-gallery fixture PNGs with real Corporate renderer captures | Done | M | High | §4.3, §5 — closed 2026-06-07: all 10 light frontend targets were recaptured through the real Corporate renderer and visually reviewed; marketplace promotion remains conservative. |
| Replace placeholder hero stat labels with real/translated content | Done | M | High | §2.1, §4.9 |
Rewrite marketplace summary + manifest description | Done | S | High | §5 |
| Implement a real health-check probe (views + registry registered) | Done | S | Med | §4.1 |
Translate remaining hard-coded aria-label/Question strings | Done | S | Med | §2.3, §4.8 |
| Sync README/overview preset list to the six shipped presets | Done | S | Med | §4.4 |
| Extract proof carousel/lightbox JS into a bundled, idempotent asset | Done | M | Med | §2.2 — closed 2026-06-07: proof/gallery behavior moved to resources/js/theme-corporate.js, registered as a build asset, and guarded by no-inline-script tests. |
| Drive shell surface + card style/radius from preset tokens | Done | L | High | §2.4, §2.5 — closed 2026-06-07: shell/surface colours and card style/radius/density hooks now use shared Corporate CSS variables/classes with regression coverage. |
Align dark-mode strategy (class vs prefers-color-scheme) | Done | S | Med | §2.6 — Done 2026-06-06: CSS now keys dark shell/image colors off .dark, matching the Blade strategy. |
| Add variant-matrix + section render tests (content-listing etc.) | Done | M | Med | §4.7 — closed 2026-06-07: content-listing variants and inherited Foundation fallbacks are covered. |
| Add a corporate-only section: multi-location/contact OR case study | Done | L | High | §3 — closed 2026-06-07: locations is registered as a Corporate section and renders hydrated office/contact details plus a translated empty state. |
| Add investor/press + careers patterns | Done | L | Med | §3 — closed 2026-06-07: dedicated hydrated investor-relations and careers renderers/views now ship with translated empty states and direct tests. |
WCAG audit (carousel announce, nav aria-expanded) before “priority support” claim | Done | M | Med | §4.8 — closed 2026-06-07: nav aria-expanded, proof carousel live status, aria-disabled, screen-reader labels, and reduced-motion-aware scrolling now ship with tests. |
Document/justify cacheable: false under the 20 ms budget, or enable caching | Done | M | Low | §4.6 — closed 2026-06-07: a direct render-budget test proves the uncached Corporate public renderer stays under 20 ms with no DB queries during rendering. |