الواجهات الكاملة · متجر إلكترونيات
إتمام الشراء
نموذج وملخّص ملتصق — المجاميع تُقرأ وأنت تكتب، لا بعد أن تُرسل
<div class="iface ifk">
<header class="if-top">
<span class="brand" data-ar="تِقني" data-en="Tiqni">تِقني</span>
<span class="grow"></span>
<span class="ifk-secure" data-ar="اتّصال مُعمّى" data-en="Encrypted connection">اتّصال مُعمّى</span>
</header>
<div class="if-body">
<ol class="ifk-steps">
<li class="done"><b class="num">1</b><span data-ar="السلّة" data-en="Cart">السلّة</span></li>
<li class="now"><b class="num">2</b><span data-ar="التوصيل والدفع" data-en="Delivery & payment">التوصيل والدفع</span></li>
<li><b class="num">3</b><span data-ar="المراجعة" data-en="Review">المراجعة</span></li>
</ol>
<div class="ifk-cols">
<form class="ifk-form" onsubmit="return false">
<fieldset class="if-card">
<legend data-ar="عنوان التوصيل" data-en="Delivery address">عنوان التوصيل</legend>
<div class="grid2">
<label><span data-ar="الاسم" data-en="Name">الاسم</span><input value="أدهم"></label>
<label><span data-ar="الجوّال" data-en="Mobile">الجوّال</span>
<input dir="ltr" value="+971 50 664 3388" class="num"></label>
<label><span data-ar="المدينة" data-en="City">المدينة</span>
<select><option>دبي</option><option>أبوظبي</option><option>الشارقة</option></select></label>
<label><span data-ar="الحيّ" data-en="Area">الحيّ</span><input value="الخليج التجاري"></label>
<label class="wide"><span data-ar="تفاصيل إضافية" data-en="Extra details">تفاصيل إضافية</span>
<input placeholder="رقم المبنى، الطابق، علامة مميّزة"
data-ar-ph="رقم المبنى، الطابق، علامة مميّزة"
data-en-ph="Building, floor, landmark"></label>
</div>
</fieldset>
<fieldset class="if-card">
<legend data-ar="طريقة الدفع" data-en="Payment method">طريقة الدفع</legend>
<div class="ifk-pay">
<label class="opt on"><input type="radio" name="pay" checked>
<span data-ar="بطاقة" data-en="Card">بطاقة</span></label>
<label class="opt"><input type="radio" name="pay">
<span data-ar="محفظة" data-en="Wallet">محفظة</span></label>
<label class="opt"><input type="radio" name="pay">
<span data-ar="عند الاستلام" data-en="On delivery">عند الاستلام</span></label>
</div>
<div class="grid2">
<label class="wide"><span data-ar="رقم البطاقة" data-en="Card number">رقم البطاقة</span>
<input dir="ltr" inputmode="numeric" placeholder="4242 4242 4242 4242" class="num"></label>
<label><span data-ar="الانتهاء" data-en="Expiry">الانتهاء</span>
<input dir="ltr" placeholder="09/29" class="num"></label>
<label><span data-ar="الرمز" data-en="CVC">الرمز</span>
<input dir="ltr" inputmode="numeric" placeholder="123" class="num"></label>
</div>
</fieldset>
</form>
<aside class="ifk-sum">
<div class="if-card">
<h2 data-ar="ملخّص الطلب" data-en="Order summary">ملخّص الطلب</h2>
<ul class="ifk-items">
<li><span data-ar="سمّاعة لاسلكية" data-en="Wireless headphones">سمّاعة لاسلكية</span>
<b class="num">459.00 د.إ</b></li>
<li><span data-ar="شاحن سريع 65 واط" data-en="65W fast charger">شاحن سريع 65 واط</span>
<b class="num">129.00 د.إ</b></li>
<li><span data-ar="حافظة واقية" data-en="Protective case">حافظة واقية</span>
<b class="num">69.00 د.إ</b></li>
</ul>
<dl>
<div><dt data-ar="المجموع" data-en="Subtotal">المجموع</dt><dd class="num">657.00 د.إ</dd></div>
<div><dt data-ar="التوصيل" data-en="Delivery">التوصيل</dt>
<dd class="free" data-ar="مجّاني" data-en="Free">مجّاني</dd></div>
<div><dt data-ar="ضريبة القيمة المضافة 5%" data-en="VAT 5%">ضريبة القيمة المضافة 5%</dt>
<dd class="num">32.85 د.إ</dd></div>
<div class="tot"><dt data-ar="الإجمالي" data-en="Total">الإجمالي</dt>
<dd class="num">689.85 د.إ</dd></div>
</dl>
<button class="if-btn" data-ar="ادفع الآن" data-en="Pay now">ادفع الآن</button>
<p class="ifk-fine" data-ar="يمكنك الإرجاع خلال 14 يومًا بلا سبب."
data-en="Return within 14 days, no reason needed.">يمكنك الإرجاع خلال 14 يومًا بلا سبب.</p>
</div>
</aside>
</div>
</div>
</div>
.iface{min-height:100%;background:var(--pt-bg-base);color:var(--pt-text-primary);
font-family:inherit;display:flex;flex-direction:column}
.iface *,.iface *::before,.iface *::after{box-sizing:border-box}
.iface h1,.iface h2,.iface h3,.iface h4,.iface p,.iface ul,.iface ol{margin:0}
.iface ul{list-style:none;padding:0}
.iface a{color:inherit;text-decoration:none}
.iface button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.iface button:focus-visible,.iface a:focus-visible,.iface input:focus-visible,
.iface select:focus-visible{outline:2px solid var(--pt-focus-ring);outline-offset:2px}
/* الرأس المشترك */
.if-top{display:flex;align-items:center;gap:var(--pt-space-4);
padding:var(--pt-space-3) var(--pt-space-5);
border-block-end:1px solid var(--pt-border-subtle);background:var(--pt-bg-raised)}
.if-top .brand{font-weight:700;font-size:var(--pt-font-size-sm)}
.if-top .grow{flex:1}
.if-top nav{display:flex;gap:var(--pt-space-4);font-size:var(--pt-font-size-xs);
color:var(--pt-text-muted)}
.if-top nav a[aria-current]{color:var(--pt-accent);font-weight:600}
.if-avatar{width:26px;height:26px;border-radius:50%;background:var(--pt-bg-inset);
border:1px solid var(--pt-border-default);display:grid;place-items:center;
font-size:10px;color:var(--pt-text-secondary)}
.if-btn{padding:var(--pt-space-2) var(--pt-space-4);border-radius:var(--pt-radius-md);
background:var(--pt-accent);color:var(--pt-on-accent);font-weight:700;
font-size:var(--pt-font-size-xs)}
.if-btn.ghost{background:transparent;color:var(--pt-text-secondary);
border:1px solid var(--pt-border-default);font-weight:500}
.if-body{flex:1;padding:var(--pt-space-5);display:flex;flex-direction:column;
gap:var(--pt-space-5)}
.if-h{display:flex;align-items:baseline;gap:var(--pt-space-3);flex-wrap:wrap}
.if-h h1{font-size:var(--pt-font-size-xl);font-weight:700}
.if-h p{font-size:var(--pt-font-size-xs);color:var(--pt-text-muted)}
.if-card{border:1px solid var(--pt-border-subtle);border-radius:var(--pt-radius-lg);
background:var(--pt-bg-raised);padding:var(--pt-space-4)}
.num{font-variant-numeric:tabular-nums}
/* الرقم بإشارته: عزلٌ باتّجاه لاتيني.
«−» و«+» محارف محايدة في خوارزمية الاتّجاه. وفي سطر عربي تُقذَف إلى
طرف النصّ، فيقرأ الزائر «0.6-» بدل «-0.6» — وهي قراءة معكوسة للمعنى
لا مجرّد فرق شكل. والعزل يجعل المحتوى يُحلّ اتّجاهه وحده. */
.sig{unicode-bidi:isolate;direction:ltr;font-variant-numeric:tabular-nums;
/* العرض بقدر المحتوى: العنصر داخل عمودٍ مرن يمتدّ افتراضيًّا، وباتّجاه
لاتيني يهاجر نصّه إلى الطرف الآخر — فيبقى مكانه بتقييد عرضه. */
inline-size:fit-content}
.ifk-secure{font-size:11px;color:var(--pt-color-success-400)}
.ifk-steps{display:flex;align-items:center;gap:var(--pt-space-5);flex-wrap:wrap}
.ifk-steps li{display:flex;align-items:center;gap:var(--pt-space-2);
font-size:var(--pt-font-size-xs);color:var(--pt-text-muted)}
.ifk-steps b{inline-size:22px;block-size:22px;border-radius:50%;display:grid;place-items:center;
border:1px solid var(--pt-border-default);font-size:11px;font-weight:700}
.ifk-steps .done b{color:var(--pt-color-success-400);border-color:var(--pt-color-success-400)}
.ifk-steps .now{color:var(--pt-text-primary);font-weight:600}
.ifk-steps .now b{background:var(--pt-accent);color:var(--pt-on-accent);border-color:var(--pt-accent)}
.ifk-cols{display:grid;grid-template-columns:1fr 320px;gap:var(--pt-space-5);align-items:start}
@media(max-width:880px){.ifk-cols{grid-template-columns:1fr}.ifk-sum .if-card{position:static}}
.ifk-form{display:flex;flex-direction:column;gap:var(--pt-space-4)}
.ifk-form fieldset{border:1px solid var(--pt-border-subtle);margin:0}
.ifk-form legend{padding-inline:var(--pt-space-2);font-size:var(--pt-font-size-sm);
font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--pt-space-3);
margin-block-start:var(--pt-space-3)}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}
.grid2 .wide{grid-column:1/-1}
.grid2 label{display:flex;flex-direction:column;gap:var(--pt-space-1)}
.grid2 span{font-size:11px;color:var(--pt-text-muted)}
.grid2 input,.grid2 select{padding:var(--pt-space-2) var(--pt-space-3);
border-radius:var(--pt-radius-md);border:1px solid var(--pt-border-default);
background:var(--pt-bg-inset);color:var(--pt-text-primary);font:inherit;
font-size:var(--pt-font-size-xs);outline:none}
.grid2 input:focus,.grid2 select:focus{border-color:var(--pt-accent)}
.ifk-pay{display:flex;gap:var(--pt-space-2);flex-wrap:wrap;margin-block-start:var(--pt-space-3)}
.ifk-pay .opt{display:flex;align-items:center;gap:var(--pt-space-2);
padding:var(--pt-space-2) var(--pt-space-4);border-radius:var(--pt-radius-md);
border:1px solid var(--pt-border-default);font-size:var(--pt-font-size-xs);cursor:pointer}
.ifk-pay .opt.on{border-color:var(--pt-accent);color:var(--pt-accent)}
.ifk-sum .if-card{position:sticky;inset-block-start:var(--pt-space-5)}
.ifk-sum h2{font-size:var(--pt-font-size-sm);font-weight:600}
.ifk-items{margin:var(--pt-space-3) 0;display:flex;flex-direction:column;gap:var(--pt-space-2);
padding-block-end:var(--pt-space-3);border-block-end:1px solid var(--pt-border-subtle)}
.ifk-items li{display:flex;justify-content:space-between;gap:var(--pt-space-3);
font-size:var(--pt-font-size-xs)}
.ifk-items span{color:var(--pt-text-muted)}
.ifk-sum dl{margin:0 0 var(--pt-space-4);display:flex;flex-direction:column;gap:var(--pt-space-2)}
.ifk-sum dl div{display:flex;justify-content:space-between;gap:var(--pt-space-3);
font-size:var(--pt-font-size-xs)}
.ifk-sum dt{color:var(--pt-text-muted)}
.ifk-sum dd{margin:0}
.ifk-sum .free{color:var(--pt-color-success-400)}
.ifk-sum .tot{padding-block-start:var(--pt-space-2);
border-block-start:1px solid var(--pt-border-subtle);font-size:var(--pt-font-size-sm)}
.ifk-sum .tot dt{color:var(--pt-text-primary);font-weight:600}
.ifk-sum .tot dd{color:var(--pt-accent);font-weight:700}
.ifk-sum .if-btn{inline-size:100%;padding-block:var(--pt-space-3)}
.ifk-fine{margin:var(--pt-space-3) 0 0;font-size:11px;color:var(--pt-text-muted);
text-align:center}