Commit Graph
50 Commits
Author SHA1 Message Date
moh 1e211c1201 REVERTED - Remove macOS shell window; restore full-bleed content 2026-09-20 20:17:33 +02:00
moh 2fc0641512 ADDED - Frame site content in a macOS-style shell window on an ambient desktop
- Wrap #smooth-wrapper in an .app-shell: a fixed, inset, rounded, bordered
  panel. Its transform makes it the containing block for the fixed wrapper, so
  ScrollSmoother sizes the scroll viewport to the shell (content scrolls inside
  it) without fighting ScrollSmoother's inline styles.
- Dock and corner controls stay outside the shell, on a brand-tinted 'desktop'
  wallpaper painted on body.
- Reduced-motion path: the shell scrolls its content natively.
2026-09-20 20:16:49 +02:00
MOH 31dc72b1c8 fix
CI / quality (push) Canceled after 0s
2026-09-20 20:04:48 +02:00
MOH 10600b48c4 WIP - save all current changes 2026-09-20 20:04:48 +02:00
moh a628b69133 FIXED - Move page transition from template to persistent layout so it animates
CI / quality (push) Canceled after 0s
A template.tsx is re-created on every navigation, resetting AnimatePresence
so neither enter nor exit ran. Move the transition into a PageTransition
client component rendered in the persistent (site) layout, so AnimatePresence
survives navigations and the old page animates out before the new one in.
2026-09-20 19:55:13 +02:00
moh 4df0d9ae86 IMPROVED - Add page exit animation via frozen-router AnimatePresence
CI / quality (push) Canceled after 0s
Wrap the template in AnimatePresence (mode="wait") with a FrozenRouter that
pins the layout-router context, so the outgoing page animates out (blur +
rise) before the incoming page animates in.
2026-09-20 19:50:46 +02:00
moh 5c10bce740 IMPROVED - Replace per-title hero entrance with a unified page transition
- Add (site)/template.tsx: one framer-motion enter animation (fade + rise +
  blur) that runs on every navigation, so moving between dock pages has a
  clean transition.
- Disable the staggered .hero-rise entrance now that the template handles it.
2026-09-20 19:46:58 +02:00
moh ac8746a287 IMPROVED - Use swappable image icons and move controls to a corner dock
- Dock icons are now real SVG files under public/dock/ (macOS squircle
  look, active variants), so they can be replaced with custom art later.
- Full-bleed icons (DockIcon padding 0), fixed logo src to stop the
  refresh flash.
- Remove the top menu bar entirely; relocate theme/language/sound (+admin)
  into a corner control dock that expands on click.
2026-09-20 19:12:44 +02:00
moh 6c213699a2 ADDED - Replace site header menu with macOS menu bar and Magic UI dock
Swap the pill navigation for a macOS-style dock as the primary nav and a
slim top menu bar for utilities:

- components/ui/dock.tsx: Magic UI Dock/DockIcon (magnification via
  useSpring/useTransform), ported to the project's framer-motion.
- components/layout/site-dock.tsx: bottom dock with the logo as the first
  icon, each item a real next/link (SEO preserved, active state from the
  pathname), monochrome squircle tiles, hover tooltips and a "soon" badge
  for Products; top menu bar keeps locale/sound/theme/admin + a live clock.
- (site)/layout.tsx: render SiteDock instead of SiteHeader.

Home bento grid and all page content are unchanged.
2026-09-20 18:56:46 +02:00
moh 3f96abc60f REFACTORED - Flatten portfolio category routes to /portfolio/[slug]
Merge the category and project routes under a single /portfolio/[slug]
segment via resolvePortfolioSlug (category wins over project on a slug
clash). Removes the /portfolio/category/... prefix from links, redirect,
and sitemap. Adds resolver integration tests.
2026-09-20 18:53:48 +02:00
MOH 777dcbab7b update 2026-08-06 02:27:49 +02:00
MohFarawati dd72f013d4 feat(home): hero availability status and CTAs
The homepage hero had no call to action (Phase 0 finding). Add a live
availability pill and primary/secondary CTAs while keeping the signature title.

- HomeHero: optional availability status pill (pulsing dot) plus primary
  (view work) and secondary (contact) CTAs, RTL-aware arrow, using the type
  scale. Backward compatible (all new props optional).
- Wire copy + hrefs from the homepage; add heroVisual.primaryCta /
  secondaryCta to en/de/ar.

Verified: JSON valid, eslint clean, no new type errors.
2026-07-14 22:23:54 +02:00
MohFarawati 86243b79c2 feat(portfolio): real project-detail hero, no wasted space
The detail page rendered an empty <PageHero /> (blank gradient band) with the
real title buried in a card lower down (Phase 0 finding).

- Populate the detail PageHero with the project category (badge), title and
  summary, so the top of the page is a proper header.
- Slim the in-content ProjectHeader to back-link + meta chips + preview button,
  removing the now-duplicated title and summary. Applies across all three
  detail templates (grid/story/case-study).

Verified: eslint clean, no new type errors.
2026-07-14 22:20:47 +02:00
MohFarawati 4892f27006 feat(home): image-led featured projects section
Bring imagery to the homepage projects block (Phase 3), matching the portfolio
gallery.

- Thread coverImagePath through ProjectCardCopy and the home mapping.
- Rewrite ProjectsSection as image-first cards (reusing PortfolioCover with the
  branded placeholder fallback): whole-card link, featured project spans two
  columns with a larger cover, type-scale title, meta + stack badges, hover
  lift. Replaces the previous text-only cards.

Verified: eslint clean; no new type errors (pre-existing Prisma-gen anys only).
2026-07-14 22:19:05 +02:00
MohFarawati d48497b992 refactor: drop toast + over-engineered extras, add inline admin feedback
CI / quality (push) Waiting to run
Phase 1 cleanup of the personal-site revamp. Backend/architecture untouched;
changes are limited to removing unused complexity and restoring feedback.

Removals
- Toast system: delete react-hot-toast, Toaster, QueryToastBridge, lib/toast,
  the toggle/easter-egg calls, related i18n keys and the dependency.
- Contact protection: remove Turnstile + per-IP rate limiting
  (lib/contact-guard, lib/contact-protection, admin screen, form widget,
  app-config wiring, nav entry, test).
- Speculative specs: delete orders, products, downloads, project-inquiry.

Inline feedback (replaces toast, no new deps)
- Add lib/admin-feedback (withFlash/readFlash) and components/admin/admin-flash,
  rendered centrally by AdminDashboardShell.
- Emit success/error messages for media, site-settings, portfolio, smtp,
  marquee and maintenance actions; pages read them via searchParams.
- Contact form shows validation/delivery errors inline; success still
  redirects to /success.

Docs
- Fix stale paths in frontend-system-* (components/root -> components/admin,
  lib/root-navigation -> lib/admin-navigation, drop phantom src/) and remove
  contact-protection references from docs and CLAUDE.md.
- Add docs/PHASE0_DIAGNOSIS.md (diagnosis report).

Note: proxy.ts self-fetch kept intentionally; it also drives maintenance mode.
2026-07-14 21:03:51 +02:00
MOH 1a7b3397f6 last update
CI / quality (push) Waiting to run
2026-07-14 20:10:38 +02:00
MOHandClaude Sonnet 4.6 868eb80374 Simplify hero backgrounds and add entrance animations
- Replace animated blob/wave/noise backdrop with clean static gradient
  (radial ellipse highlights + linear fade) in hero-motion-backdrop
- Remove all framer-motion from background layer; delete unused CSS
  classes: hero-blob, hero-sheet-glow, hero-sheet-wave, hero-sheet-noise,
  hero-title-shift keyframe, and responsive blob media queries
- Add framer-motion stagger entrance to HeroContentMotion, HeroMotionItem,
  and HeroTitle (slide-up + fade on mount)
- Refactor coming-soon page to use HeroContentMotion/HeroMotionItem
  instead of MotionFade (whileInView unreliable above the fold)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 22:48:51 +01:00
MOH cf957cbbe2 Refine homepage and restore hero 2026-03-15 18:26:31 +01:00
MOH 288e4b37d7 Fix request locale resolution in site pages
CI / quality (push) Waiting to run
2026-03-15 08:20:39 +01:00
MOH c18128c965 Fix runtime default locale resolution
CI / quality (push) Waiting to run
2026-03-15 06:02:27 +01:00
MOH 364f761420 Fix dynamic default locale routing 2026-03-15 04:41:08 +01:00
MOH 3e9edc5873 chore: save current workspace changes 2026-03-14 15:57:33 +01:00
MOH 35734bd2d9 Remove admin entrypoints from public site
CI / quality (push) Has been cancelled
2026-03-13 17:53:01 +01:00
MOH e32ac4cacb Upgrade app to Next.js 16
CI / quality (push) Waiting to run
2026-03-13 15:50:37 +01:00
MOH 0d888af177 Remove experimental products section
CI / quality (push) Waiting to run
2026-03-11 23:26:46 +01:00
MOH 64976d6e12 Add sitemap and portfolio category SEO routes
CI / quality (push) Waiting to run
2026-03-11 23:13:36 +01:00
MOH 7956b073e9 Refactor portfolio admin and views 2026-03-11 17:46:35 +01:00
MOH 77cc9dca87 Add Sonner-based notifications and UX polish 2026-03-10 17:43:26 +01:00
MOH db6c5392bb fix bg dark
CI / quality (push) Waiting to run
2026-03-10 06:33:41 +01:00
MOH fd1d142b85 Restructure about page bento layout 2026-03-10 06:32:22 +01:00
MOH 6f20f28a96 Refine global card system 2026-03-10 06:09:03 +01:00
MOH c517c68b23 Refine site hero copy and reusable badge 2026-03-09 08:51:17 +01:00
MOH 8f87169da1 Refactor shared hero structure 2026-03-09 07:14:11 +01:00
MOH a65037e3b3 Refactor frontend system primitives and surfaces 2026-03-09 06:15:01 +01:00
MOH 1d4c2f8e72 Add editable localized marquee settings 2026-03-08 22:40:01 +01:00
MOH 5ca4819bcb Add SMTP admin settings and contact form delivery 2026-03-08 06:27:09 +01:00
MOH 97ac06e89a Refine hero typography and coming soon flow 2026-03-08 06:15:36 +01:00
MOH ed14160adb Refine homepage services section and hero spacing 2026-03-08 05:19:13 +01:00
MOH 2bda611a3b Refactor site hero and localized branding UI 2026-03-08 05:13:10 +01:00
MOH 0c2b67e378 Refactor site header, heroes, and design system 2026-03-08 00:29:51 +01:00
MOH a18370d003 Refine root UI around shadcn primitives
CI / quality (push) Waiting to run
2026-03-07 22:28:52 +01:00
MOH f259dfc6bd Add SEO settings and root admin save flows
CI / quality (push) Waiting to run
2026-03-07 18:48:01 +01:00
MOH ea64373853 Implement portfolio admin management 2026-03-07 16:06:20 +01:00
MOH 7f4277d1d7 Finalize multilingual routing and translations
CI / quality (push) Waiting to run
2026-03-07 14:10:30 +01:00
MOH ce63cd8b69 feat(ui): admin-only root link and shared header navigation
CI / quality (push) Waiting to run
2026-03-06 16:50:45 +01:00
MOH 4226c8bf51 Fix maintenance mode gating for visitors and superadmin session
CI / quality (push) Waiting to run
2026-03-06 15:43:31 +01:00
MOH 59bc4a6563 Enforce maintenance mode in site layout instead of middleware fetch
CI / quality (push) Waiting to run
2026-03-06 15:34:51 +01:00
MOH 5e326b7ca4 Keep admin only at /root and remove localized root route
CI / quality (push) Waiting to run
2026-03-06 15:17:51 +01:00
MOH d070c32a85 Move admin panel to /root and decouple it from locale routing 2026-03-06 15:15:53 +01:00
MOH f86b7f39f7 feat: initialize mohfarawati app foundation
CI / quality (push) Waiting to run
2026-03-06 13:53:57 +01:00