OmahCitra store template: catalog, cart, checkout, shipping, payment (HTML/CSS/jQuery)

This commit is contained in:
cania
2026-08-11 11:44:51 +02:00
commit a3b20e1de4
7 changed files with 751 additions and 0 deletions

168
css/style.css Normal file
View File

@@ -0,0 +1,168 @@
/* ============================================================
OmahCitra Store - Stylesheet
============================================================ */
:root{
--primary:#e63946;
--primary-dark:#c1121f;
--accent:#ffb703;
--bg:#f6f7f9;
--card:#ffffff;
--text:#1d1d1f;
--muted:#6b7280;
--line:#e5e7eb;
--radius:14px;
--shadow:0 4px 18px rgba(0,0,0,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
body{
font-family:'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
background:var(--bg);color:var(--text);line-height:1.5;
}
.container{max-width:1100px;margin:0 auto;padding:0 16px}
a{text-decoration:none;color:inherit}
/* ===== Topbar ===== */
.topbar{background:var(--primary);color:#fff;position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.topbar-inner{display:flex;align-items:center;gap:18px;padding:12px 16px}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px}
.brand-logo{font-size:24px}
.brand-dot{color:var(--accent)}
.search-box{flex:1}
.search-box input{
width:100%;padding:10px 14px;border:none;border-radius:30px;font-size:14px;outline:none;
}
.cart-btn{
background:#fff;color:var(--primary);border:none;border-radius:30px;
padding:9px 16px;font-weight:700;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:6px;
}
.cart-count{
background:var(--accent);color:#000;border-radius:50%;min-width:20px;height:20px;
display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;
}
/* ===== Category nav ===== */
.catnav{background:#fff;border-bottom:1px solid var(--line)}
.catnav-inner{display:flex;gap:8px;overflow-x:auto;padding:10px 16px}
.cat-pill{
white-space:nowrap;padding:7px 14px;border-radius:30px;background:var(--bg);
border:1px solid var(--line);cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);
}
.cat-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
/* ===== Main / views ===== */
.main{padding:22px 16px 60px}
.view{display:none}
.view.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.hero{
background:linear-gradient(120deg,var(--primary),var(--accent));
color:#fff;border-radius:var(--radius);padding:28px;margin-bottom:22px;text-align:center;
}
.hero h1{font-size:26px;margin-bottom:6px}
.hero p{opacity:.95}
/* ===== Product grid ===== */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.product-card{
background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
overflow:hidden;display:flex;flex-direction:column;transition:transform .15s;
}
.product-card:hover{transform:translateY(-4px)}
.pc-thumb{
height:130px;display:flex;align-items:center;justify-content:center;font-size:60px;
background:linear-gradient(135deg,#fff3f3,#ffe9e9);
}
.pc-body{padding:12px;display:flex;flex-direction:column;gap:6px;flex:1}
.pc-cat{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.pc-name{font-weight:700;font-size:15px;line-height:1.3}
.pc-meta{font-size:12px;color:var(--muted)}
.pc-badge{display:inline-block;background:var(--accent);color:#000;font-size:10px;font-weight:800;
padding:2px 7px;border-radius:20px;margin-left:6px}
.pc-rating{color:#f59e0b;font-size:12px}
.pc-price{font-size:17px;font-weight:800;color:var(--primary);margin-top:auto}
.pc-btn{
margin-top:8px;background:var(--primary);color:#fff;border:none;border-radius:8px;
padding:9px;font-weight:700;cursor:pointer;font-size:13px;
}
.pc-btn:hover{background:var(--primary-dark)}
.empty-note{text-align:center;color:var(--muted);padding:40px}
/* ===== Cart ===== */
.cart-list{display:flex;flex-direction:column;gap:12px}
.cart-row{
background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
padding:14px;display:flex;align-items:center;gap:14px;
}
.cart-emoji{font-size:40px;width:60px;text-align:center}
.cart-info{flex:1}
.cart-info h4{font-size:15px}
.cart-info small{color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:28px;height:28px;border-radius:6px;border:1px solid var(--line);
background:#fff;cursor:pointer;font-size:16px;font-weight:700}
.qty span{min-width:24px;text-align:center;font-weight:700}
.cart-row .price{font-weight:800;color:var(--primary);min-width:110px;text-align:right}
.cart-row .rm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px}
.cart-empty{text-align:center;padding:40px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.cart-summary{margin-top:18px;background:var(--card);border-radius:var(--radius);
box-shadow:var(--shadow);padding:16px;display:flex;justify-content:space-between;align-items:center}
.summary-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}
.summary-row.total{font-size:18px;font-weight:800;color:var(--primary);border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
/* ===== Buttons ===== */
.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;
padding:11px 22px;font-weight:700;cursor:pointer;font-size:14px}
.btn-primary:hover{background:var(--primary-dark)}
.btn-primary.full{width:100%;margin-top:12px}
/* ===== Checkout ===== */
.checkout-grid{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}
.card h3{margin-bottom:14px;font-size:16px}
.card label{display:block;font-size:13px;font-weight:600;margin:12px 0 5px;color:var(--muted)}
.card input,.card textarea{
width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;
font-family:inherit;outline:none;resize:vertical;
}
.card input:focus,.card textarea:focus{border-color:var(--primary)}
.opt-list{display:flex;flex-direction:column;gap:8px}
.opt{
display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;
padding:11px 13px;cursor:pointer;font-size:14px;
}
.opt:hover{border-color:var(--primary)}
.opt.selected{border-color:var(--primary);background:#fff5f5}
.opt input{width:auto}
.opt small{color:var(--muted);margin-left:auto}
.summary-card{position:sticky;top:90px}
.order-items{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.order-item{display:flex;justify-content:space-between;font-size:13px}
.order-item small{color:var(--muted)}
/* ===== Done ===== */
.done-box{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
padding:40px;text-align:center;max-width:520px;margin:30px auto}
.done-icon{font-size:64px}
.done-box h2{margin:10px 0}
.done-detail{text-align:left;background:var(--bg);border-radius:10px;padding:16px;margin:18px 0;font-size:14px}
.done-detail div{padding:4px 0}
/* ===== Footer ===== */
.footer{background:#fff;border-top:1px solid var(--line);padding:20px 0;text-align:center;color:var(--muted);font-size:13px}
/* ===== Toast ===== */
.toast{
position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);
background:#1d1d1f;color:#fff;padding:12px 22px;border-radius:30px;font-size:14px;
font-weight:600;opacity:0;transition:.3s;z-index:100;box-shadow:var(--shadow);
}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
/* ===== Responsive ===== */
@media(max-width:760px){
.checkout-grid{grid-template-columns:1fr}
.summary-card{position:static}
.topbar-inner{gap:10px}
.search-box{order:3;flex-basis:100%}
}