Templates / Checkout

Checkout beta Pro

A complete checkout page: steps, shipping and payment forms, and a sticky order summary that keeps the total honest.

Preview
shop.acme.studio/checkout

Acme Studio — Checkout

Secure · TLS everywhere
  1. Cart
  2. Shipping & payment
  3. 3Done

Shipping

Payment

Built from: Parts: Steps, Input, Select, Checkbox / Radio, Button — include their CSS alongside this template.

<div class="k-tpl-co">
  <div class="k-tpl-co-head"><h2>Acme Studio — Checkout</h2><span>Secure · TLS everywhere</span></div>
  <ol class="k-steps" style="margin-bottom:20px">
    <li data-state="done"><span class="n"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="square" stroke-linejoin="bevel" aria-hidden="true"><path d="m4.5 12.5 5 5L19.5 6.5"/></svg></span><span class="t">Cart</span></li>
    <li data-state="current" aria-current="step"><span class="n"></span><span class="t">Shipping &amp; payment</span></li>
    <li><span class="n">3</span><span class="t">Done</span></li>
  </ol>
  <div class="k-tpl-co-grid">
    <div>
      <div class="k-tpl-co-card">
        <h3>Shipping</h3>
        <div class="k-tpl-co-form">
          <div class="field"><label for="co-name">Full name</label><input class="input" id="co-name" value="Ren Aoki" autocomplete="name"></div>
          <div class="field"><label for="co-mail">Email</label><input class="input" id="co-mail" value="[email protected]" autocomplete="email"></div>
          <div class="field full"><label for="co-addr">Address</label><input class="input" id="co-addr" value="1-13-3 Matsuyama" autocomplete="street-address"></div>
          <div class="field"><label for="co-city">City</label><input class="input" id="co-city" value="Kiyose, Tokyo"></div>
          <div class="field"><label for="co-ship">Delivery</label><select class="k-select" id="co-ship"><option>Standard — free, 3–5 days</option><option>Express — $12, tomorrow</option></select></div>
        </div>
      </div>
      <div class="k-tpl-co-card">
        <h3>Payment</h3>
        <div class="k-tpl-co-form">
          <div class="field full"><label for="co-card">Card number</label><input class="input" id="co-card" value="4242 4242 4242 4242" inputmode="numeric"></div>
          <div class="field"><label for="co-exp">Expiry</label><input class="input" id="co-exp" value="12 / 28"></div>
          <div class="field"><label for="co-cvc">CVC</label><input class="input" id="co-cvc" value="424"></div>
          <label class="check full"><input type="checkbox" checked>Billing address is the shipping address</label>
        </div>
      </div>
    </div>
    <aside class="k-tpl-co-sum">
      <h3>Order summary</h3>
      <div class="k-tpl-co-item"><span>KATA Pro — lifetime</span><b>$129</b></div>
      <div class="k-tpl-co-item"><span>Mold poster, A2</span><b>$24</b></div>
      <div class="k-tpl-co-item"><span>Sticker pack ×2</span><b>$10</b></div>
      <div class="k-tpl-co-row"><span>Subtotal</span><span>$163</span></div>
      <div class="k-tpl-co-row"><span>Shipping</span><span>Free</span></div>
      <div class="k-tpl-co-total"><span>Total</span><span>$163</span></div>
      <button class="btn btn-pri btn-lg" type="button" style="width:100%;margin-top:15px">Place order — $163</button>
      <p class="k-tpl-co-note">Demo storefront: no card is charged, no order ships, the poster remains hypothetical.</p>
    </aside>
  </div>
</div>
/* KATA Template: Checkout */
.k-tpl-co{background:var(--k-bg-soft);border:1px solid var(--k-line);border-radius:16px;padding:26px;font-family:var(--k-font);color:var(--k-ink)}
.k-tpl-co-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.k-tpl-co-head h2{font-size:19px;font-weight:650;letter-spacing:-.02em}
.k-tpl-co-head span{font-size:12.5px;color:var(--k-ink-3)}
.k-tpl-co-grid{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}
.k-tpl-co-card{background:var(--k-bg);border:1px solid var(--k-line);border-radius:14px;padding:20px;margin-bottom:16px}
.k-tpl-co-card h3{font-size:14.5px;font-weight:650;margin-bottom:14px}
.k-tpl-co-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.k-tpl-co-form .full{grid-column:1/-1}
.k-tpl-co-sum{position:sticky;top:16px;background:var(--k-bg);border:1px solid var(--k-line);border-radius:14px;padding:20px}
.k-tpl-co-sum h3{font-size:14.5px;font-weight:650;margin-bottom:13px}
.k-tpl-co-item{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--k-line)}
.k-tpl-co-item span{color:var(--k-ink-2)}
.k-tpl-co-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;color:var(--k-ink-2)}
.k-tpl-co-total{display:flex;justify-content:space-between;font-size:15px;font-weight:700;padding-top:11px;margin-top:7px;border-top:2px solid var(--k-line)}
.k-tpl-co-note{font-size:11.5px;line-height:1.65;color:var(--k-ink-3);margin-top:11px;text-align:center}
@media (max-width:820px){.k-tpl-co-grid{grid-template-columns:1fr}.k-tpl-co-sum{position:static;order:-1}}

Installation

CLI

node kata-ui.mjs add checkout

Writes the template’s CSS into your project. Everything it is built from comes with it. New to the CLI? See the CLI doc.

Manual

  1. Load tokens.css once, before any part.
  2. Copy the CSS tab into your stylesheet, with the CSS of everything listed under “Built from” above.
  3. Copy the HTML where it belongs.

Usage

Copy the page and rewire the forms; every field is an ordinary KATA part with its own page. The summary column is sticky on desktop and stacks above the form on mobile (totals first, no surprises). Nothing here processes a payment — connect your provider at the Place order button, where the page ends and liability begins.