Component library

Showing 8 components with role chrome.

  • <Slide>

    sharedChromePresentation

    Base slide canvas with padding inside the deck; optional printed-page chrome band.

    When to use: Wrap slide body when you do not need a named layout template. Add the chrome props for a masthead/footline treatment (section name top-left, slide tag top-right, deck name + page bottom).

    Preview

    Part 1

    Agenda

    Current state03 / 12

    Manual hours / week

    142

    Acme · Automation discoveryConfidential
    PropTypeNotes
    childrenReactNodeRequired. Slide content.
    classNamestringOptional. Extra Tailwind classes on the inner frame.
    eyebrowstringOptional. Chrome label top-left (e.g. section name).
    eyebrowRightstringOptional. Chrome slot top-right, opposite eyebrow (e.g. slide counter).
    footerLeftstringOptional. Chrome line bottom-left (e.g. deck name or date).
    footerRightstringOptional. Chrome line bottom-right, opposite footerLeft (e.g. page label).

    Examples

    <Slide>
      <TitleSlide label="Part 1" title="Agenda" />
    </Slide>
    <Slide eyebrow="Current state" eyebrowRight="03 / 12" footerLeft="Acme · Automation discovery" footerRight="Confidential">
      <BigStat label="Manual hours / week" value="142" />
    </Slide>
  • <Reveal>

    sharedChromeMotionPresentation

    Reveals children when the in-deck reveal step reaches fromStep (client).

    When to use: Progressive disclosure inside one slide; advance with Space before the next slide.

    Preview

    First point lands here.
    PropTypeNotes
    fromStepnumberOptional. Default: 0. Visible when reveal step >= this value.
    childrenReactNodeRequired. Content to reveal.
    tweenobjectOptional. Optional GSAP vars for the reveal (subset: opacity, autoAlpha, y, x, duration, ease, delay).

    Examples

    <Reveal fromStep={0} tween={{ y: 16, opacity: 0, duration: 0.45, ease: "power2.out" }}>
      First point lands here.
    </Reveal>
  • <Stagger>

    sharedChromeMotionPresentation

    Animates each direct child in sequence on slide enter (client).

    When to use: Bullet build without manual Reveal steps.

    Preview

    One

    Two

    PropTypeNotes
    childrenReactNodeRequired. Typically several `<p>` or `<div>` siblings.
    tweenobjectOptional. Per-child from-state vars plus duration, ease, stagger (seconds between children).

    Examples

    <Stagger tween={{ opacity: 0, y: 12, duration: 0.35, stagger: 0.08, ease: "power2.out" }}>
      <p>One</p>
      <p>Two</p>
    </Stagger>
  • <ConfidentialStrip>

    financeChromePresentation

    Discreet "Private and confidential" strip with optional meta line; fades in on slide enter (client).

    When to use: Use as a footer or banner on every slide of a regulated or LP-facing deck. Keep the meta line short (fund name, meeting date).

    Preview

    Private and confidentialAcme Fund III · 14 May 2026
    PropTypeNotes
    textstringOptional. Default: Private and confidential. Confidentiality wording.
    metastringOptional. Optional secondary line (fund name, meeting date).
    variant"footer" | "banner"Optional. Default: footer. footer = top-bordered footnote line; banner = bordered card.Values: footer, banner
    tweenobjectOptional. Optional GSAP vars for the fade-in.

    Examples

    <ConfidentialStrip text="Private and confidential" meta="Acme Fund III · 14 May 2026" />
  • <LogoLockup>

    financeChromeTitlePresentation

    Sponsor + company logo lockup with separator; halves slide in from the sides on slide enter (client).

    When to use: Use on IC deal title slides to anchor the sponsor and target. Pass remote URLs (https) for both logos.

    Preview

    SponsorTarget
    PropTypeNotes
    sponsorSrcstringRequired. Sponsor logo URL.
    sponsorAltstringRequired. Alt text for the sponsor logo.
    companySrcstringRequired. Company logo URL.
    companyAltstringRequired. Alt text for the company logo.
    separatorstringOptional. Default: "x". Glyph between the two logos (often "x").
    heightnumberOptional. Default: 64. Maximum logo height in pixels (24–160).
    tweenobjectOptional. Optional GSAP vars for the entrance.

    Examples

    <LogoLockup sponsorSrc="https://example.com/sponsor.png" sponsorAlt="Sponsor" companySrc="https://example.com/target.png" companyAlt="Target" />
  • <DecoratedSlide>

    expressiveChromePresentation

    Layout wrapper for expressive slide content. Does not set the deck canvas colour.

    When to use: Wrap hero, chart, or closing layouts when you need a centred full-height content slot. Set the deck canvas via presentationTheme.background (light|white|dark|brand|vivid) on create_report / update_report, or inherit /theming defaultDeckBackground.

    Preview

    FY26 planning

    Quarterly business review

    Three priorities for the next quarter.

    45 minBoard ready
    PropTypeNotes
    childrenReactNodeRequired. Slide content.

    Examples

    <Slide>
      <DecoratedSlide>
        <HeroCoverSlide label="FY26 planning" title="Quarterly business review" subtitle="Three priorities for the next quarter." badges={["45 min", "Board ready"]} />
      </DecoratedSlide>
    </Slide>
  • <AccentEyebrow>

    sharedChromePresentation

    Small uppercase eyebrow pill for section labels above slide headlines.

    When to use: Tag the topic of a slide (e.g. "Executive summary", "Pricing", "Roadmap"). Use inside chart, grid, and narrative slide layouts that accept a label prop.

    Preview

    Core Systems
    PropTypeNotes
    childrenstringRequired. Pill text (rendered uppercase).
    accent"yellow" | "cyan" | "pink"Optional. Default: yellow. Neon text colour on the navy pill.Values: yellow, cyan, pink

    Examples

    <AccentEyebrow accent="cyan">Core Systems</AccentEyebrow>
  • <BroadsideFrame>

    broadsideChromePresentation

    Chrome + foot wrapper around arbitrary children.

    When to use: When composing custom Broadside content with shared hairline chrome.

    Preview

    Notes11

    Custom body

    PropTypeNotes
    chromeLeftstringOptional. Top chrome left.
    chromeRightstringOptional. Top chrome right.
    footLeftstringOptional. Footer left.
    footRightstringOptional. Footer right.
    childrenReactNodeRequired. Slide body.

    Examples

    <BroadsideFrame chromeLeft="Notes" chromeRight="11"><p>Custom body</p></BroadsideFrame>