Skip to main content

Layout & Navigation

Grid System & Breakpoints​

Grid 12 คอลัมน์ พร้อม gutter ที่ขยับตาม breakpoint (ใช้ token spacing จาก Spacing, Radius & Elevation):

Breakpointความกว้างคอลัมน์GutterMargin ข้าง
Mobile< 576px4space.4 (16px)space.4 (16px)
Tablet576–996px8space.6 (24px)space.6 (24px)
Desktop997–1400px12space.8 (32px)space.8 (32px)
Wide> 1400px12 (max-width จำกัด)space.8 (32px)auto-center, max-width 1320px
Grid 12 คอลัมน์ของจริง · ย่อหน้าต่างเบราว์เซอร์ดูได้
span 12 — hero / กราฟหลัก
span 8 — เนื้อหาหลัก
span 4 — sidebar
3
3
3
3

คอลัมน์เส้นประคือ track ทั้ง 12 ช่อง — บล็อกสีคือของจริงที่ span ทับ track เหล่านั้น ทุกความกว้างต้องลงตัวกับ track เสมอ ห้ามใช้ width: 37% ลอยๆ

Gutter และ margin จริงของแต่ละ breakpoint
Mobile · < 576px4 คอลัมน์
Tablet · 576–996px8 คอลัมน์
Desktop · 997px+12 คอลัมน์

ระยะขอบและ gutter ในสามกรอบนี้เป็นค่า token จริง (space.4 / space.6 / space.8) ไม่ได้ย่อสเกล

เนื้อหาไม่ควรเต็มความกว้างจอในหน้าจอ wide — จำกัด max-width เพื่อรักษาความยาวบรรทัดให้อ่านง่าย (แนวทาง minimal/boardroom-ready ตาม Overview)

ทำไมต้องจำกัด max-width บนจอกว้าง
ถูก — max-width 1320px, จัดกลาง

B.Grimm ดำเนินธุรกิจพลังงานมากว่า 140 ปี ด้วยความมุ่งมั่นในการสร้างพลังงานที่ยั่งยืน

ความยาวบรรทัดพอดีตาราว 60–80 ตัวอักษรต่อบรรทัด — สายตากวาดกลับต้นบรรทัดถัดไปได้ไม่หลง
ผิด — ยืดเต็มจอ

B.Grimm ดำเนินธุรกิจพลังงานมากว่า 140 ปี ด้วยความมุ่งมั่นในการสร้างพลังงานที่ยั่งยืนให้กับสังคมไทยและภูมิภาคเอเชียตะวันออกเฉียงใต้อย่างต่อเนื่องมาโดยตลอด

บรรทัดยาวเกินไปยิ่งจอกว้างยิ่งอ่านยาก ตาหลงบรรทัด และหน้าดูเหมือนเทมเพลตที่ไม่ได้ออกแบบ

CSS Grid Layout Templates​

สาม layout template ที่ใช้ CSS Grid ล้วน — พร้อมนำไปใช้เป็นโครงสร้างเริ่มต้นของหน้าแบบต่างๆ ไม่ต้องใช้ React หรือ component library

Admin Dashboard​

โครงสร้าง 3 โซน: header bar ด้านบน · sidebar ซ้าย · เนื้อหาหลักขวา — เหมาะกับหน้าแดชบอร์ดภายใน

Admin Dashboard Layout · CSS Grid
BB.Grimm Portal
Admin
กำลังผลิตรวม3,036 MW
โครงการที่เปิดอยู่62
ความพร้อมระบบ99.7%

Grid 3-zone: header / sidebar / main — sidebar กว้าง 240px คงที่ · เนื้อหาหลัก overflow-y scroll แยกอิสระ · ใช้ grid-template: "header header" / "sidebar main"

Public Website​

โครงสร้าง marketing 4 แถว: navbar · hero · เนื้อหาหลัก · footer — เหมาะกับเว็บไซต์องค์กรหรือหน้าแคมเปญ

Public Website Layout · CSS Grid
พลังงานเพื่อความยั่งยืน
140 ปีของการสร้างพลังงานให้สังคมไทย

Grid 4-row: navbar / hero / main+sidebar / footer — hero bleed เต็มจอ · เนื้อหาจำกัด max-width 1320px · sidebar 300px · footer bleed เต็มจออีกครั้ง

Mobile App​

โครงสร้าง mobile-first: top bar · เนื้อหา scroll · bottom nav — เหมาะกับ PWA หรือ mobile web view

Mobile App Layout · CSS Grid
B.Grimm Mobile

Grid 3-row: topbar / content / bottomnav — full-height 600px · topbar + bottomnav สูงคงที่ด้วย grid-template-rows: auto 1fr auto · เนื้อหาตรงกลาง scroll ได้

  • Sticky navbar — navbar ติดด้านบนเมื่อ scroll ลง พื้นหลังโปร่งแสงเล็กน้อยพร้อม backdrop blur (ตามที่ implement จริงใน custom.css ของเว็บไซต์นี้: rgba(255,255,255,0.88))
  • Active state — ลิงก์ที่ active ใช้สี --ifm-navbar-link-hover-color (#FF6727) ไม่ใช้ underline หนาหรือพื้นหลังทึบ
  • Mobile menu — พับเป็น hamburger menu ต่ำกว่า breakpoint tablet เสมอ ไม่ยัดเมนูเต็มจอเล็กแบบ horizontal scroll
Navbar จริง · ชี้เมาส์ที่เมนูเพื่อดู hover 150ms

เมนู active ใช้สี #FF6727 + เส้นใต้บาง 2px — ไม่ใช้พื้นหลังทึบหรือ underline หนา และปุ่ม CTA มีได้ตัวเดียวใน navbar

พฤติกรรมบนมือถือ · ถูก vs ผิด (ความกว้างจริง ~300px)
ถูก — พับเป็น hamburger
โลโก้ + hamburger เท่านั้นเนื้อหาได้พื้นที่เต็ม แตะง่าย เป้าแตะ ≥ 44×44px
ผิด — ยัดเมนูเต็มแถบ
ตัวอักษรเล็กจนแตะพลาดเมนูล้นต้องเลื่อนแนวนอน ผู้ใช้ไม่รู้ว่ามีอะไรซ่อนอยู่ทางขวา

สำหรับหน้าเครื่องมือภายในหรือ dashboard ที่มีเมนูเยอะ ใช้ sidebar แทนการยัดทุกอย่างลง navbar:

Sidebar จริง · ชี้เมาส์ที่เมนูเพื่อดู hover
หน้าแรก / ภาพรวม
ภาพรวมกำลังผลิต
3,036
62

เมนูที่ active ใช้พื้น #FFF1EA + แถบส้มซ้าย 3px + ตัวอักษร #C43400 — สื่อตำแหน่งปัจจุบันโดยไม่ต้องใช้พื้นทึบสีเข้ม · sidebar ยุบเป็น drawer ต่ำกว่า breakpoint tablet

Page Structure มาตรฐาน​

┌─────────────────────────────┐
│ Navbar (sticky) │
├─────────────────────────────┤
│ Hero (optional) │
├─────────────────────────────┤
│ Main content (max-width) │
│ — จัดเป็น section ตาม grid │
├─────────────────────────────┤
│ Footer │
└─────────────────────────────┘
โครงหน้าเดียวกันนี้ · เรนเดอร์จริง
Hero (optional)
พลังงานเพื่อความยั่งยืน
140 ปีของการสร้างพลังงานให้สังคมไทย
Main · max-width 1320px
ระยะระหว่าง section = space.16 (64px) คงที่

เส้นประส้มสองข้างคือขอบ max-width ของ main content — hero และ footer bleed เต็มความกว้างได้ แต่ตัวอักษรข้างในยังต้องอยู่ในกรอบเดียวกัน

  • ทุกหน้าเริ่มด้วย heading ระดับ h1 เดียว (ไม่มี h1 ซ้ำในหน้าเดียวกัน)
  • ระยะห่างระหว่าง section ใช้ scale เดียวกันทั้งเว็บ (space.16 หรือ space.24 แล้วแต่ความหนาแน่นเนื้อหา) ไม่กะระยะด้วยสายตา