feat: major content & layout overhaul across all sections

- Problem strip: 4 sign cards with closing statement
- Dataroot section: rebranded as case study with new content
- Services: 2×2 content-rich cards with bullet lists, updated copy
- Process: moved above portfolio, new strategy-focused copy
- Portfolio: 9 items with correct tags, uniform cards, light theme
- SEO: OG tags, canonical, favicons, robots.txt, sitemap, 404
- Backdrop: lighter white for lead panel readability
- Footer, LegalPages component, various text refinements
- Fix CSS syntax error in neural hero hover state
This commit is contained in:
Kunthawat Greethong
2026-06-28 16:52:44 +07:00
parent f114a34a62
commit 9ebbc91e5b
17 changed files with 1182 additions and 659 deletions

View File

@@ -3,9 +3,12 @@ import '../styles/global.css';
import Footer from './Footer.astro';
import { formEndpoint, problems, services } from '../data/site.js';
const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
const {
title = 'MoreminiMore',
description = 'MoreminiMore ช่วย SME ดูข้อมูลจริงก่อนตัดสินใจทำเว็บ การตลาด AI หรือระบบอัตโนมัติ',
image = '/images/logos/logo-long-black.png',
} = Astro.props;
---
@@ -17,6 +20,37 @@ const {
<meta name="description" content={description} />
<meta name="theme-color" content="#f8f5ea" />
<title>{title}</title>
<!-- Canonical -->
<link rel="canonical" href={canonicalURL} />
<!-- Open Graph -->
<meta property="og:site_name" content="MoreminiMore" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:url" content={canonicalURL} />
<meta property="og:type" content="website" />
<meta property="og:image" content={new URL(image, Astro.site).toString()} />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:locale" content="th_TH" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={new URL(image, Astro.site).toString()} />
<!-- Favicons -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<!-- Preconnect for fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
</head>
<body>
<div class="background-stage" aria-hidden="true">