Diff -- /var/www/vhosts/3dshawn.com/affiliate.3dshawn.com/TEMPLATES/store_layouts/sidebar.html
Diff
/var/www/vhosts/3dshawn.com/affiliate.3dshawn.com/TEMPLATES/store_layouts/sidebar.html
added on local at 2026-07-01 13:47:54
Added
+109
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to 20793608b570
to 20793608b570
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.| 1 | <!-- ===================================================================== | |
| 2 | LAYOUT: Sidebar | |
| 3 | Persistent left nav. Linear / Figma feel with content panels. | |
| 4 | ===================================================================== --> | |
| 5 | ||
| 6 | <style> | |
| 7 | :root { $theme_css_vars } | |
| 8 | .sb-shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; } | |
| 9 | .sb-nav { background: var(--col-bg-2); border-right: 1px solid var(--col-border); padding: 20px 0; position: sticky; top: 0; align-self: start; height: 100vh; overflow-y: auto; } | |
| 10 | .sb-section { padding: 12px 18px 6px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--col-text-3); font-weight: 600; } | |
| 11 | .sb-link { display: flex; align-items: center; gap: 10px; padding: 8px 18px; font-size: 13px; color: var(--col-text-2); text-decoration: none; border-left: 2px solid transparent; transition: color 0.15s, background 0.15s; } | |
| 12 | .sb-link:hover { background: var(--col-surface-1); color: var(--col-text); } | |
| 13 | .sb-link.active { color: var(--col-accent-bright); background: var(--col-surface-1); border-left-color: var(--col-accent); font-weight: 600; } | |
| 14 | .sb-link .count { margin-left: auto; font-family: var(--font-mono,monospace); font-size: 11px; color: var(--col-text-3); } | |
| 15 | .sb-content { padding: 28px; } | |
| 16 | @media (max-width: 800px) { .sb-shell { grid-template-columns: 1fr; } .sb-nav { position: static; height: auto; } } | |
| 17 | </style> | |
| 18 | ||
| 19 | [if:$preview_banner]<div style="position:sticky;top:0;z-index:9999;background:#0a0e1c;border-bottom:1px solid rgba(59,130,246,0.40);box-shadow:0 4px 16px rgba(0,0,0,0.55);padding:10px 20px;text-align:center;font-size:13px;color:#93c5fd;font-weight:600">$preview_banner</div>[/if] | |
| 20 | ||
| 21 | [if:$is_specific_page] | |
| 22 | [if:$page_not_found]<section style="padding:120px 32px;text-align:center"><h1 class="hero-title" style="font-size:48px">Page not found</h1></section>[/if] | |
| 23 | [if:!$page_not_found]<section style="padding:60px 32px;max-width:900px;margin:0 auto"><h1 class="hero-title" style="font-size:42px">$page_title</h1><div class="text-secondary" style="font-size:16px;line-height:1.7;margin-top:18px;white-space:pre-wrap">$page_body</div></section>[/if] | |
| 24 | [/if] | |
| 25 | ||
| 26 | [if:!$is_specific_page] | |
| 27 | <div class="sb-shell"> | |
| 28 | ||
| 29 | <!-- Persistent left navigation --> | |
| 30 | <aside class="sb-nav"> | |
| 31 | <a href="/store.cgi?id=$store_id" style="display:flex;align-items:center;gap:10px;padding:0 18px 14px;text-decoration:none"> | |
| 32 | <div class="brand-mark" style="background:linear-gradient(130deg, var(--col-accent), var(--col-accent-bright));width:28px;height:28px;font-size:11px">$store_initials</div> | |
| 33 | <span style="font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--col-text)">$store_name</span> | |
| 34 | </a> | |
| 35 | <!-- Sidebar layout has no horizontal header, so search + sign in + | |
| 36 | cart go right under the brand link inside the sidebar. --> | |
| 37 | <div style="padding:0 14px 14px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--col-border);margin-bottom:8px"> | |
| 38 | $store_search_form | |
| 39 | <div style="display:flex;gap:8px;align-items:center">$store_signin_link $store_cart_link</div> | |
| 40 | </div> | |
| 41 | ||
| 42 | <div class="sb-section">Browse</div> | |
| 43 | <a href="#shop" class="sb-link active"> | |
| 44 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/></svg> | |
| 45 | All designs <span class="count">$product_count</span> | |
| 46 | </a> | |
| 47 | <a href="#" class="sb-link"> | |
| 48 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px"><polygon points="12 2 15 8 22 9 17 14 18 21 12 17 6 21 7 14 2 9 9 8 12 2"/></svg> | |
| 49 | Featured <span class="count">3</span> | |
| 50 | </a> | |
| 51 | <a href="#" class="sb-link"> | |
| 52 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg> | |
| 53 | New drops <span class="count">4</span> | |
| 54 | </a> | |
| 55 | <div class="sb-section" style="margin-top:14px">Pages</div> | |
| 56 | <a href="/store.cgi?id=$store_id" class="sb-link"> | |
| 57 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px"><path d="M3 9 12 2l9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg> | |
| 58 | Home | |
| 59 | </a> | |
| 60 | [loop:@nav_pages] | |
| 61 | <a href="$loop1.href" class="sb-link">$loop1.title</a> | |
| 62 | [/loop] | |
| 63 | <a href="#" class="sb-link" style="color:var(--col-accent-bright);font-weight:600;margin-top:14px"> | |
| 64 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:14px;height:14px"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"/></svg> | |
| 65 | Cart (0) | |
| 66 | </a> | |
| 67 | </aside> | |
| 68 | ||
| 69 | <!-- Main content area --> | |
| 70 | <main class="sb-content"> | |
| 71 | <div style="display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:16px"> | |
| 72 | <div> | |
| 73 | <div style="font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--col-text-3);font-weight:600">Browse / All designs</div> | |
| 74 | <h1 style="font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--col-text);margin:6px 0 0;letter-spacing:-0.02em">$product_count designs</h1> | |
| 75 | <p style="font-size:14px;color:var(--col-text-2);margin-top:4px">$store_tagline</p> | |
| 76 | </div> | |
| 77 | <div style="display:flex;gap:8px"> | |
| 78 | <select class="select" style="width:auto;min-width:140px"><option>Sort: Newest</option><option>Price: low</option><option>Price: high</option></select> | |
| 79 | </div> | |
| 80 | </div> | |
| 81 | ||
| 82 | <div id="shop" style="display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px"> | |
| 83 | [loop:@products] | |
| 84 | <a href="/listing_details.cgi?id=$loop1.id" style="text-decoration:none;background:var(--col-surface-1);border:1px solid var(--col-border);border-radius:8px;overflow:hidden;display:block;transition:border-color 0.15s"> | |
| 85 | <div style="aspect-ratio:1;background:url('$loop1.hero_image') center/cover"></div> | |
| 86 | <div style="padding:12px"> | |
| 87 | <div style="font-size:13px;font-weight:600;color:var(--col-text);margin-bottom:6px">$loop1.title</div> | |
| 88 | <div style="display:flex;justify-content:space-between;align-items:center"> | |
| 89 | <span style="font-size:14px;font-weight:700;color:var(--col-accent-bright)">$loop1.price</span> | |
| 90 | <span style="font-size:11px;color:var(--col-text-3)">$loop1.rating_n</span> | |
| 91 | </div> | |
| 92 | </div> | |
| 93 | </a> | |
| 94 | [/loop] | |
| 95 | </div> | |
| 96 | $pagination_html | |
| 97 | ||
| 98 | <section id="about" style="background:var(--col-bg-2);border:1px solid var(--col-border);border-radius:12px;padding:32px;margin-top:36px"> | |
| 99 | <h2 style="font-family:var(--font-display);font-size:24px;color:var(--col-text);margin:0 0 12px;font-weight:700">About $store_name</h2> | |
| 100 | <p style="font-size:15px;color:var(--col-text-2);line-height:1.8;margin:0">$store_about</p> | |
| 101 | </section> | |
| 102 | </main> | |
| 103 | ||
| 104 | </div> | |
| 105 | [/if] | |
| 106 | ||
| 107 | <footer style="border-top:1px solid var(--col-border);padding:18px 32px;text-align:center"> | |
| 108 | <div class="text-xs text-dim" style="letter-spacing:1.5px;text-transform:uppercase">$store_name · powered by affiliate.3dshawn.com</div> | |
| 109 | </footer> |