Commit Graph

51 Commits

Author SHA1 Message Date
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 b3e8308f21 Fix gitattributes merge conflict marker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 15:38:41 +03:30
alireza 7d7063b6e8 Pulse page: live market bar, price table, product coverage, form, i18n
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 15:16:46 +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 1f72b528d7 Hero subtitle: smaller font on mobile 2026-06-01 11:25:11 +03:30
alireza 780abc7f63 Hero title: single line on mobile with responsive font size 2026-06-01 11:24:27 +03:30
alireza c0523f640e Restore logo and news images via LFS 2026-06-01 11:20:25 +03:30
alireza 748b575c78 Fix unused animDir variable causing TS build error 2026-06-01 11:16:22 +03:30
alireza d4af23fb71 Update settings 2026-06-01 11:15:13 +03:30
alireza 825be459d7 Remove binary assets from tracking, add to gitignore 2026-06-01 11:11:31 +03:30
alireza c95d922ce1 Footer: proper padding and spacing throughout 2026-06-01 10:58:58 +03:30
alireza d4c0b2fc51 Footer: fix mobile padding and overflow 2026-06-01 10:56:45 +03:30
alireza 54c4aa698b Risk slider: mobile 1-card + RiskCard component + padding tweaks 2026-06-01 10:55:50 +03:30
alireza 3c40a655de Risk slider, footer fix, global padding, mobile improvements 2026-06-01 10:51:45 +03:30
alireza c1f9563303 Fix duplicate className TS errors in PartnersSection and RiskSection 2026-06-01 10:41:59 +03:30
alireza 9e9dd96114 Fix mobile grid overrides — remove inline gridTemplateColumns blocking Tailwind breakpoints 2026-06-01 10:40:56 +03:30
alireza 10003c0ff3 Fix duplicate className on EventsSection event card 2026-06-01 10:37:09 +03:30
alireza dd7fbc2efc Responsive fixes across site — mobile padding, font sizes, hero text
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 10:35:57 +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 fe3b5b0f67 Footer cleanup, newsletter box, risk ticker fix, more newsletter items
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 08:40:29 +03:30
alireza 97da68f50c Remove section number badge boxes from home page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 08:30:19 +03:30
Mohammad Jebeli bdf768ff40 fix: actually add hero video to public/ (was gitignored)
Previous rename dropped the file: public/hero-bg.mp4 was listed in
.gitignore, so the move deleted it from git without re-adding.
Remove the ignore rule and commit the video as LFS so the hero
background plays.
2026-05-31 20:28:24 +03:30
asd asd 0fafaa3324
Upload hero-bg.mp4 2026-05-31 16:56:52 +00:00
Mohammad Jebeli 7c9e2f55e3 fix: serve images and hero video locally (Iran geoblock-proof)
- Move hero-bg.mp4 to public/ so Vite serves it at /hero-bg.mp4
  (was at repo root => 404 in built site, video never loaded)
- Download 20 Unsplash images to public/news/ (LFS) and rewrite all
  34 refs to same-origin paths (images.unsplash.com blocked in Iran)
- Replace 2 globally-dead photo IDs with fitting industrial/tech images
2026-05-31 20:20:59 +03:30
Mohammad Jebeli 3f56f606b6 fix: remove now-unused useRef import in Pulse.tsx
Orphaned after ContactPanel removal. Fixes TS6133.
2026-05-31 20:05:20 +03:30
Mohammad Jebeli 8980c70233 fix: remove unused TS variables causing build failure
- Remove FACTORIES constant (SteelNewsletterSection.tsx)
- Remove unused lang param from ImageSlider (Pulse.tsx)
- Remove unused ContactPanel component (Pulse.tsx)
- Remove unused requested/setRequested state (Pulse.tsx)

Fixes TS6133 errors blocking Docker build.
2026-05-31 20:03:43 +03:30
asd asd da50fb144d
Upload موکاپ-1.jpg 2026-05-31 13:38:46 +00:00
asd asd f4a7aead77
Upload 13 files 2026-05-31 13:38:29 +00:00
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 a72a3c61f9 Hero: centered layout, GSAP scroll, 1.5x video, remove CTA
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:00:00 +03:30
asd asd 330e75a6ea Upload hero-bg.mp4 2026-05-31 08:59:57 +00:00
alireza 11a5460b89 Exclude hero-bg.mp4 from git (upload via HF web UI)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:27:07 +03:30
alireza 6bc6312694 Track mp4 files via Git LFS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:24:11 +03:30
alireza 4e0f2e2a0e Add compressed hero background video (40MB → 10MB)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:23:22 +03:30
alireza 3643c5cfea Add mock risk data to RiskSection — expand fallback to 20 items
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 11:22:35 +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
alireza 38956bf77a Merge remote-tracking branch 'space/main' 2026-05-31 08:16:01 +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 09385a0a18 Add admin panel + wire main site to fetch articles from panel API
- panel/: standalone Express + SQLite + JWT admin (server.js, db.js, seed.js,
  vanilla-JS admin UI under public/). CRUD for articles with cover image
  uploads. README documents API, run instructions, and integration steps.
- src/data/reports.ts: appended bootstrapReports() that fetches from
  VITE_PANEL_API (defaults to http://localhost:3001) and mutates the in-memory
  reports array. Static array kept as fallback when panel is offline.
- src/main.tsx: awaits bootstrapReports() before initial render so all
  existing consumers see panel data without per-file changes.
2026-05-26 17:11:04 +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