Commit Graph

23 Commits

Author SHA1 Message Date
alireza 07239bd811 feat: radar category pages, post detail page, panel CMS wiring + webp uploads
- Add /radar/:category dynamic detail pages (hero, special banner, grids, pagination)
- Add /posts/:id article page: cover mask, magic-text scroll reveal, charts,
  comments, floating related sidebar, logged-out membership gate
- Panel: radar_pages table/routes + admin UI, grouped right sidebar, webp
  image conversion on upload (sharp)
- Mobile fixes: overflow-x guards, left-side accordion menu, globe/podcast/hero
- Header: flag language toggle

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 17:01:28 +03:30
alireza 12326898b3 feat: implement application router and dynamic feature section on the home page 2026-06-11 11:49:19 +03:30
alireza 1f3099f6db @
Footer brand flanking lines; replace orange accent with #CD9E53

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:40:32 +03:30
alireza 042a64fc92 @
three-globe globe (hex polygons + arcs), navbar chevron cleanup

- Globe: real three-globe World via r3f <primitive> (no JSX augmentation),
  hex-polygon countries + animated steel-trade arcs, bundled Natural Earth data
- Header: type nav Section.Icon as LucideIcon (fixes r3f JSX type clash);
  remove chevron from non-dropdown items (only radar/media dropdowns keep it)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:12:51 +03:30
alireza 9043f62b27 @
Navbar restructure, footer redesign, cobe globe, approach section

- Navbar: نبض صنعت (->/pulse), رسانه و رویداد dropdown (videocast/sessions/events),
  generalized NavDropdown; logo -> Frame 2095585206 (2).png
- Footer: 3-col RTL layout (brand+socials / nav / contact+badges+newsletter),
  white logo, gold copyright bar
- RadarTechSection: replace tech-frontier with «رویکرد ما» approach cards
- MapEventsSection: swap static map for animated cobe WebGL globe (blue theme)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 14:56:41 +03:30
alireza 27e64ee3e6 @
Home polish: brand copy, footer, section reorg, smaller reports, split casts

- Tab title -> "اندیشکده فولاد آینده"; header/footer subtitle -> The Steel Futures Institute
- Footer: brand description, social links (LinkedIn/Twitter/Aparat/Telegram), drop nav links
- Remove de-zoom HeroSection; SpreadFeatures is now the hero
- Comment out InternalNewsSection + RiskSection (restorable)
- Move IntegrationsSection under RadarTechSection
- FactoryReportsScroll: compact 4-up row instead of large masonry
- Split Videocast and Podcast into separate full-width sections (only prop)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 11:47:30 +03:30
alireza 74a8bf567e @
Home revamp: Spread-style hero, sections, and Lenis+GSAP smooth scroll

- Hero: GSAP ScrollTrigger de-zoom (full-bleed image -> centered card +
  satellite scatter), pinned scrub timeline
- Lenis smooth scroll synced to GSAP ticker (desktop only; native momentum
  on touch to avoid iOS double-smoothing); removed conflicting
  scroll-behavior:smooth
- SpreadFeatures: 3 alternating image/text slides with crossfade + blur fade-up
- Radar page + home: report cards with hover author-reveal; data in src/content
- AtAGlance: standalone page + slider; IntegrationsSection data-source grid
- NewsletterMarquee: looping clickable steel-newsletter ticker with live dots
- FactoryReportsScroll, Videocast/Podcast sections
- Remove dead FactoryNewsletterLayout + SteelNewsletterSection
- Content layer under src/content for panel-ready data

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 10:13:23 +03:30
alireza 269d6c7374 Update logo, add slider images to public, restore hero video
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 16:57:35 +03:30
alireza 743888429b Security hardening + navbar restructure
Security fixes:
- JWT_SECRET/ADMIN_PASSWORD fail-fast on missing/weak values
- Switch admin auth from localStorage to httpOnly cookie
- Rate limiting on login (10/15min) and contact form (3/10min)
- CORS whitelist via ALLOWED_ORIGINS env var
- Helmet with CSP, frameguard
- Escape HTML in contact email and admin panel innerHTML
- Remove SVG from upload whitelist
- err.message no longer leaked in API responses
- MAIL_TO moved to env var
- JWT expiry 7d → 24h

Navbar:
- Rename: رادار آینده → آینده‌پژوهی و رصد هوشمند
- Rename: مرز فناوری → فناوری و نوآوری
- Rename: نبض صنعت → بازار و زنجیره فولاد
- Add: پایداری و فولاد سبز (/sustainability)
- Add: ژئوپلیتیک و اقتصاد جهانی (/geopolitics)
- Remove: رویدادها

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 14:37:30 +03:30
alireza e173f0d258 Remove double line under navbar — drop transparent border on header
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 09:43:38 +03:30
alireza 2ab4375fba Fix brand RTL: logo first in DOM so text flows RTL beside it
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 09:41:07 +03:30
alireza 482b34f897 Move logo to right side of brand text
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 09:39:18 +03:30
alireza f68757eebd Logo right of text, shifted up 8px 2026-06-01 09:12:06 +03:30
alireza ec05af1b0e Fix logo position — left of text, slightly larger 2026-06-01 09:10:02 +03:30
alireza b797f665d8 Add logo to navbar brand
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 09:06:49 +03:30
alireza b6ae3913f8 Fix video PiP icon, remove عضویت from nav, add EN translations to risk items
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 08:59:19 +03:30
alireza 9bb56e8795 Remove meta strip, replace subscribe with login+lang toggle, remove newsletter box from layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 08:49:37 +03:30
alireza c934ee4ab5 Design system rebrand, image slider, contact form, new home sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:02:46 +03:30
alireza 60bf240cf5 Bilingual site (FA/EN), redesigned sections, new pages
- Full FA/EN toggle via LangContext across all pages and sections
- New pages: Radar, Technology, Pulse, Membership
- Home restructured: Hero → SnapshotBar → 5 chapters
- FactoryBentoSection: Mobarakeh Steel monthly reports (bento grid)
- SteelNewsletterSection: bilingual newsletter + factory list
- Section labels: Persian numerals, editorial rule style
- Header: LTR in EN mode, bilingual nav
- Footer: updated copyright and tagline
- Typography: consistent h2 sizes across sections
- BentoGrid: larger cards (p-8, 18px title)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 11:18:35 +03:30
zaza 070de3ac1e Brighten palette, rename to Andishkade Foolad Ayandeh, fix risk ticker loop
- Shift design tokens from warm beige/brown to cool off-white + slate inks
  with vivid corporate red/amber/green accents
- Rename brand from "اندیشکده فولاد ایران" / "Iran Steel Policy Institute"
  to "اندیشکده فولاد آینده" / "Future Steel Policy Institute"
- Replace JS-clone seamless-loop in RiskSection with JSX-doubled items,
  immune to StrictMode double-invocation that was leaving the ticker blank

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 18:39:17 +03:30
alireza 848f03374e Add Docker deployment for Hugging Face Spaces 2026-05-26 16:04:01 +03:30
alireza 8c5d2a9739 Refine homepage layout, typography, and component polish
- Header: replaced 3-bar masthead with slim dark meta strip + 68px main bar
  (brand · centered nav · search/CTA actions). ~60% shorter than before.
- Home: added numbered SectionLabel chapter markers (01–07) between
  sections with red accent bar; alternated paper/paper-2 backgrounds
  for clearer section separation.
- Typography: wrapped base h1–h4 and p element styles in @layer base so
  Tailwind utilities (text-white, etc.) can override defaults. Previously
  unlayered p { color: var(--ink-3) } was overriding all carousel white
  titles, making them appear grey-brown.
- Carousel: removed pagination arrows; strengthened title gradient,
  added top centered red category badge, text-shadow + generous padding
  so titles never crash into card edges. Modal hero received same
  treatment with overflow-safe inset positioning.
- PlansSection: rewrote with compact shadcn-pricing pattern; price
  reduced from 42px to 26px; featured plan elevated with translateY
  and shadow; star badge for "Popular" plan.
- TeamSection: redesigned member cards more compact (avatar 60→44px,
  reports count moved to top-end, line-clamp on bio).
- Removed inline padding overrides across all sections so Tailwind
  max-md:px-5 mobile responsiveness actually works.
2026-05-25 17:17:16 +03:30
alireza 2dd08650cf Initial commit 2026-05-25 16:07:58 +03:30