checkout-page

Checkout Page

A one-page checkout: contact, delivery, shipping method and payment cards, with the order summary card on a brand-coloured half that folds into a bar on narrow screens.

States: Default, Focus

Parts

PartFileDoes
CheckoutPageCheckoutPage.vueA one-page checkout: contact, delivery, shipping method and payment beside an order summary that folds into a bar on narrow screens.

Styling

PartRecipe
CheckoutPagecheckout-page-root
CheckoutPagecheckout-page-total-image
CheckoutPagecheckout-page-summary
CheckoutPagecheckout-page-summary-toggle
CheckoutPagelogo
CheckoutPagesection-title
CheckoutPagelink
CheckoutPagemeta
CheckoutPagetotal
CheckoutPagefocus-ring

Install

Writes 4 files into components/templates/checkout-page/. For agents, npx @frontic/ui docs checkout-page prints this reference as markdown; the MCP server serves the same.

npm packages
@lucide/vue
reka-ui

Built from

API reference

CheckoutPage CheckoutPage.vue

A one-page checkout: contact, delivery, shipping method and payment beside an order summary that folds into a bar on narrow screens. Renders a <div>.

PropTypeDefault
itemsCartLine[][]
defaultValuesPartial<CheckoutValues>—
currencystring'EUR'
localestring—
storeNamestring''
countriesCheckoutOption[][ { value: 'DE', label: 'Germany' }, { value: 'AT', label: 'Austria' }, { value: 'CH', label: 'Switzerland' }, { value: 'GB', label: 'United Kingdom' }, { value: 'US', label: 'United States' }, ]
defaultCountrystring'DE'
houseNumberCountriesstring[]['DE', 'AT', 'CH', 'NL']
shippingMethodsShippingMethod[][ { value: 'standard', label: 'Standard', description: '3 to 5 working days', amount: 499, freeFrom: 10000 }, { value: 'express', label: 'Express', description: 'Next working day', amount: 1290 }, ]
paymentMethodsPaymentMethod[][ { value: 'card', label: 'Credit card' }, { value: 'paypal', label: 'PayPal', description: 'After you click Pay now, PayPal opens to finish your purchase.' }, ]
cardMethodstring'card'
discountsAppliedDiscount[][]
taxRatenumber—
signInHrefstring—
secureLabelstring'Secure checkout'
contactTitlestring'Contact'
contactDescriptionstring'We send the order confirmation here.'
signInLabelstring'Sign in'
emailLabelstring'Email'
emailHelpstring'We send your order confirmation and shipping updates here.'
newsletterLabelstring'Email me with news and offers'
deliveryTitlestring'Delivery'
deliveryDescriptionstring'Where should we send your order?'
countryLabelstring'Country/Region'
firstNameLabelstring'First name'
lastNameLabelstring'Last name'
streetLabelstring'Street'
addressLabelstring'Address'
houseNumberLabelstring'Building number'
apartmentLabelstring'Apartment, suite, etc. (optional)'
zipLabelstring'Postal code'
cityLabelstring'City'
phoneLabelstring'Phone'
phoneHelpstring'In case we need to reach you about your order.'
phoneNotestring'Please use your mobile phone number.'
shippingTitlestring'Shipping method'
shippingPendingstring'Enter your shipping address to view available shipping methods.'
freeLabelstring'Free'
paymentTitlestring'Payment'
paymentDescriptionstring'All transactions are secure and encrypted.'
cardBrandsPaymentCardBrand[]['visa', 'mastercard', 'amex']
cardNumberLabelstring'Card number'
expiryLabelstring'Expiration date'
cvcLabelstring'Security code'
cvcHelpstring'The 3 or 4 digits on the back of your card.'
cardNameLabelstring'Name on card'
billingSameLabelstring'Use shipping address as billing address'
billingTitlestring'Billing address'
rememberLabelstring'Save my details for a faster checkout'
rememberPhoneLabelstring'Mobile phone (optional)'
rememberNotestring'Next time we text you a code and fill in the rest.'
payLabelstring'Pay now'
summaryLabelstring'Order summary'
discountLabelstring'Discount code or gift card'
discountPlaceholderstring'Enter a code'
discountHintstring—
applyLabelstring'Apply'
addDiscountLabelstring'Add discount'
removeDiscountLabel((label: string) => string)`Remove ${label}`
subtotalLabelstring'Subtotal'
shippingLabelstring'Shipping'
shippingUnknownstring'Enter shipping address'
minusSignstringMINUS_SIGN
totalLabelstring'Total'
itemCountLabel((count: number) => string)count === 1 ? '1 item' : `${count} items`
taxNote((tax: string) => string)`Including ${tax} in taxes`
quantityLabel((quantity: number) => string)`Qty: ${quantity}`
classClassValue—
EventPayload
place-ordervalues: CheckoutValues
apply-discountcode: string
remove-discountdiscount: AppliedDiscount
SlotSlot props
Recipe checkout-page-rootSets
base: checkout-page-root 2 properties
Recipe checkout-page-total-imageSets
base: checkout-page-total-image 4 properties · 3 inherited
Recipe checkout-page-summarySets
base: checkout-page-summary 2 properties
Recipe checkout-page-summary-toggleSets
base: checkout-page-summary-toggle 3 properties
Recipe section-titleSets
base: section-title 2 properties
Recipe metaSets
base: meta 3 properties
Recipe totalSets
base: total 2 properties
Recipe focus-ringSets
base: focus-ring 3 properties
Example
State