Getting Started
Note:
@appboxo/ui-kit@0.3.2exports theFooterPropstype but not theFootercomponent itself as a named export — Footer is consumed throughLayout'sfooterslot, which accepts eitherFooterPropsor anyReactNode. Examples below show the standard pattern.
Two actions
primaryButton + secondaryButton — the standard checkout / form footer.
// `Footer` isn't directly exported from @appboxo/ui-kit at the moment —
// only the FooterProps type is. The kit consumes Footer internally via
// Layout's `footer` slot, which accepts either FooterProps or a ReactNode.
// Showcase the realistic usage: a Layout with the footer slot wired.
import { Body1, Card, Flex, Layout, Toast } from "@appboxo/ui-kit"
export function FooterDefaultPreview() {
return (
<Layout
navBar={{ title: "Checkout" }}
footer={{
primaryButton: {
text: "Confirm",
onClick: () => Toast.info("Confirmed"),
},
secondaryButton: {
text: "Cancel",
onClick: () => Toast.info("Cancelled"),
},
}}
>
<Flex vertical gap={12}>
<Card>
<Body1>Tap the buttons below — that's the Footer area.</Body1>
</Card>
</Flex>
</Layout>
)
}
Single action
Only primaryButton for destination screens where there's just one next step.
// Single-action variant — Layout with footer={{ primaryButton: ... }}.
import { Body1, Card, Flex, Layout, Toast } from "@appboxo/ui-kit"
export function FooterSinglePreview() {
return (
<Layout
navBar={{ title: "Welcome" }}
footer={{
primaryButton: {
text: "Continue",
onClick: () => Toast.info("Continue tapped"),
},
}}
>
<Flex vertical gap={12}>
<Card>
<Body1>One sticky CTA at the bottom — that's Footer.</Body1>
</Card>
</Flex>
</Layout>
)
}
Usage
import { Layout } from "@appboxo/ui-kit"
<Layout
navBar={{ title: "Checkout" }}
footer={{
primaryButton: { text: "Confirm", onClick: confirm },
secondaryButton: { text: "Cancel", onClick: cancel },
}}
>
{/* content */}
</Layout>For full control over the footer area, pass a ReactNode instead of FooterProps:
<Layout
footer={
<div style={{ padding: 16 }}>
<YourCustomFooter />
</div>
}
>
{/* content */}
</Layout>Installation
pnpm add @appboxo/ui-kitTheme tokens
--footer-padding, --footer-gap, --footer-scrollable-shadow (all required).
Build mini-apps with Boxo
Freedom UI Kit is the design system behind partner mini-apps shipping on the Boxo platform.
Learn more about Boxo