Marketing site (bargevasat.ir) + admin-editable store links + subdomain split
- New standalone Next.js marketing site under site/ (static export, SEO): landing, download/install guide (Bazaar/Myket/iOS-PWA/web), FAQ (JSON-LD), privacy, terms, support, /admin link editor. fa RTL, sitemap/robots/manifest. - Backend: SiteLinksService (JSON-file persisted) + GET /api/site/links (public) + POST /api/admin/site/links (X-Admin-Token). ADMIN_TOKEN + Site__DataDir via env. - compose: hokm-site service (:1520) + hokm_data volume for links JSON. - CI deploy job builds + deploys the site container. - deploy/SUBDOMAIN_SPLIT.md: nginx blocks, cert reissue, DNS, ENV split. - Exclude site/ from root tsc + web docker context. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
@import "tailwindcss";
|
||||
@import "@fontsource-variable/vazirmatn";
|
||||
|
||||
:root {
|
||||
--navy-950: #070b18;
|
||||
--navy-900: #0b1226;
|
||||
--navy-800: #111a33;
|
||||
--gold: #d4af37;
|
||||
--gold-soft: #e7c873;
|
||||
--teal: #2dd4bf;
|
||||
--cream: #f5efe0;
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--color-navy-950: var(--navy-950);
|
||||
--color-navy-900: var(--navy-900);
|
||||
--color-navy-800: var(--navy-800);
|
||||
--color-gold: var(--gold);
|
||||
--color-gold-soft: var(--gold-soft);
|
||||
--color-teal: var(--teal);
|
||||
--color-cream: var(--cream);
|
||||
--font-sans: "Vazirmatn Variable", ui-sans-serif, system-ui, sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background: radial-gradient(120% 120% at 50% 0%, #0e1730 0%, var(--navy-950) 60%);
|
||||
color: var(--cream);
|
||||
font-family: "Vazirmatn Variable", ui-sans-serif, system-ui, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
[dir="rtl"] {
|
||||
font-family: "Vazirmatn Variable", ui-sans-serif, system-ui, sans-serif;
|
||||
}
|
||||
|
||||
/* Utility helpers */
|
||||
.gold-text {
|
||||
background: linear-gradient(180deg, var(--gold-soft), var(--gold));
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.glass {
|
||||
background: rgba(17, 26, 51, 0.55);
|
||||
border: 1px solid rgba(212, 175, 55, 0.18);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.btn-gold {
|
||||
background: linear-gradient(180deg, var(--gold-soft), var(--gold));
|
||||
color: #1a1206;
|
||||
font-weight: 800;
|
||||
}
|
||||
.btn-gold:hover {
|
||||
filter: brightness(1.06);
|
||||
}
|
||||
|
||||
.felt {
|
||||
background:
|
||||
radial-gradient(120% 120% at 50% 0%, rgba(45, 212, 191, 0.08), transparent 60%),
|
||||
radial-gradient(80% 80% at 80% 90%, rgba(212, 175, 55, 0.06), transparent 60%);
|
||||
}
|
||||
|
||||
.card-pattern {
|
||||
background-image:
|
||||
linear-gradient(45deg, rgba(212, 175, 55, 0.04) 25%, transparent 25%),
|
||||
linear-gradient(-45deg, rgba(212, 175, 55, 0.04) 25%, transparent 25%);
|
||||
background-size: 22px 22px;
|
||||
}
|
||||
Reference in New Issue
Block a user