GH GambleHub

自適應設計和斷裂點

1)原則

1.內容第一:布局是根據任務和內容而不是「流行」shirin構建的。
2.移動第一:從嚴格的簡單選項開始,隨著輸入寬度/功能的增長,它變得更加復雜。
3.漸進式增強:基本的UX在沒有JS/動畫的情況下運行;改進是按條件連接的。
4.一致性:相同的模式-所有斷路器上的相同行為。
5.Performance-aware:圖像、網格和腳本根據重量和復雜性進行調整。


2)斷裂點(斷裂點)

根據實際設備和模式變化(專欄/導航/印刷)進行選擇。

推薦套件(參考)

Alias伍波特,px專欄容器(max-width)Gutter
XS320–5994fluid16
SM600–8396560–58416
MD840–11998760–80820
LG1200–1439121104–115224
XL≥1440121280–132024–32
規則:
  • 只有當結構發生變化時(例如,卡片的1→2列,邊欄的出現),才引入斷路器。
  • 組件內部允許局部休息(容器請求)。

3)容器查詢vs媒體查詢

當「@media」媒體查詢:整個頁面的布局發生變化(導航、模板)。
當容器「@container」:卡/小部件必須根據其可用寬度進行調整(組件獨立於頁面)。

css
/ Включаем контейнерную оценку для блока /
.widget { container-type: inline-size; }

/ Внутри — адаптируем карточку по ширине контейнера /
@container (min-width: 520px) {
.card { grid-template-columns: 1fr 1fr; }
}

使用捆綁:介質用於頁面框架+組件容器。


4)印刷: fluid+步驟

結合「clamp()」和斷路器步驟。

css
:root {
/ Базовая fluid-гарнитура /
--fs-body: clamp(15px, 1.2vw + 0.2rem, 18px);
--fs-h2:  clamp(20px, 1.6vw + 0.4rem, 24px);
}
body { font-size: var(--fs-body); line-height: 1.55; }
h2  { font-size: var(--fs-h2);  line-height: 1.3; }
@media (min-width: 1200px) {
h2 { letter-spacing:.005em; } / тонкая настройка на LG+ /
}
規則:
  • 字符串的長度為45-80個字符(在36-60邊欄上)。
  • 大小的步驟是4/8-pt的倍數;線條平穩。

5)網格和模塊

在部分級別-CSS網格(專欄,區域);內部-Flex。
組件高度是基線的倍數(例如,40/48/56 px)。
我們有2個密度預設:Comfort (讀取/dashbords)和Compact (表/pro)。

css
.container {
display: grid; gap: 24px;
grid-template-columns: repeat(12, minmax(0,1fr));
max-width: 1280px; margin: 0 auto; padding: 0 16px;
}
@media (max-width: 1199px) {.container { grid-template-columns: repeat(8,1fr); gap: 20px; }}
@media (max-width: 839px) {.container { grid-template-columns: repeat(6,1fr); gap: 16px; }}
@media (max-width: 599px) {.container { grid-template-columns: repeat(4,1fr); }}

6)圖像和媒體

使用「srcset」/「sizes」和自動密度選擇:
html
<img src="card-640.jpg"
srcset="card-640.jpg 640w, card-960.jpg 960w, card-1280.jpg 1280w"
sizes="(min-width:1200px) 33vw, (min-width:840px) 50vw, 100vw"
alt="Описание">
固定比例以避免CLS:
css
.media { aspect-ratio: 16/9; object-fit: cover; }

對於背景-「圖像設置」和lazy-loading。
圖像中的文本僅在專欄/重疊上;AA ≥對比。


7)導航和響應模式

XS/SM:bottom-nav或hamburger,著名的CTA;隱藏的搜索顯示在上面。
MD:出現persistent-sidebar/mega-menu。
LG/XL:兩層導航,快速過濾器,面包屑。

行為:元素不混亂「移動」-始終是預先描述的方案之一。


8)輸入: hover/touch/keyboard

定義設備的可用功能:
css
@media (hover: hover) and (pointer: fine) { / hover-эффекты / }
@media (hover: none), (pointer: coarse)  { / touch-паттерны / }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
規則:
  • 沒有關鍵內容「只在亂七八糟」。
  • 點擊區域:≥ 44 × 44(暴民),第32 ≥ 32 ×(臺式機)。
  • 所有斷路器都支持鍵盤。

9)安全區和系統切口

在移動上,我們考慮安全區域:
css
.page {
padding-left: max(16px, env(safe-area-inset-left));
padding-right: max(16px, env(safe-area-inset-right));
padding-bottom:max(16px, env(safe-area-inset-bottom));
}

10)黑暗/光明主題和對比

主題獨立於breakpoint:對比目標無處不在。
在XS上,我們避免使用「酸性」重音。提高黑暗背景參考的亮度。
支持「prefers-color-scheme」和手動開關。


11)生產力

關鍵的CSS是inline或通過"media="print"/preload策略;JS正在延遲加載。
避免在長列表上進行重排版動畫;動畫「opacity/transform」。
懶惰地裝載圖片/小部件;skeleton而不是旋轉器。
限制數十張卡片上的「沈重」陰影/過濾器。


12)設計系統令牌(示例)

json
{
"breakpoints": { "xs": 360, "sm": 600, "md": 840, "lg": 1200, "xl": 1440 },
"container":  { "sm": 584, "md": 808, "lg": 1152, "xl": 1320 },
"columns":   { "xs": 4, "sm": 6, "md": 8, "lg": 12 },
"gutter":   { "sm": 16, "md": 20, "lg": 24, "xl": 32 },
"space":    { "xs": 4, "sm": 8, "md": 12, "lg": 16, "xl": 24, "2xl": 32 }
}
CSS層:
css
:root {
--bp-sm: 600px; --bp-md: 840px; --bp-lg: 1200px; --bp-xl: 1440px;
--container-lg: 1152px;
}
@media (min-width: var(--bp-lg)) {
.container { max-width: var(--container-lg); }
}

13)組件講習班(集裝箱休息)

商品/錦標賽卡:
css
.card { display: grid; gap: 12px; container-type: inline-size; }
.card__media { aspect-ratio: 4/3; }
@container (min-width: 420px) {
.card { grid-template-columns: 1fr 1.2fr; align-items: center; }
.card__media { aspect-ratio: 16/9; }
}
系數表:
  • XS:堆叠視圖(左邊的標簽,右邊的值,塊)。
  • SM+:水平滾動時只有多余的列,鎖定帽子/第一列。
  • 數字是tabular-nums,與小數對齊。

14)本地化和RTL

「dir=」rtl「」+「:dir(rtl)」用於鏡像圖標/箭頭/margin-ov。
翻譯可以增加20-30%的行長度-放下紙張。
對於某些抄本(例如格魯吉亞/泰語),將基本小桶增加1 px。


15) iGaming的細節

錦標賽/獎金卡:網格3 × N(LG),2 × N(MD),1 × N(SM/XS);CTA和條件-在永久區域。
領導者/排名:粘貼帽/第一列;XS-堆疊模式;數字是單色素的。
支付表格:XS-單價;MD-2列(字段+說明)。
負責任的通知(18+,限制,風險):在所有斷路器上總是可見的,AAA的對比,沒有「隱藏在掛車中」。


16)反模式

固定塊寬度代替網格/欄。
「每個像素的斷裂點」:太多的媒體誤差→混亂。
節奏斷裂:相鄰部分不同的gutter/音高無緣無故。
無條紋圖像中的關鍵文本。
僅在hover上可用的內容(tach無法實現)。
長列表中的布局屬性動畫。


17) QA支票清單

網格和容器

  • 柱子和gutter對應於斷路器;集裝箱居中。
  • 組件正確地「流動」1→2→3揚聲器而不會斷裂。

印刷廠

  • 第45-80行的長度;fluid-kegli通過「clamp()」。
  • 文本的對比度對應於兩個主題中的WCAG。

圖像

[] Есть `srcset/sizes`, `aspect-ratio` и lazy-loading;沒有CLS。

輸入和A11y

  • 鍵盤導航;':focus-visible'可見。
  • 替代hover on tach;集團區域≥ 44 × 44。
  • 「prefers-reduced-motion」得到了支持。

生產力

  • 僅使用「轉換/操作性」動畫;嚴重影響是有限的。
  • 關鍵的CSS/JS可以有效地加載。

18)設計系統中的文檔

「響應與突破」:斷路器,容器,揚聲器和插頭表。
「Container Queries」:自適應組件的示例。
「Fluid Type」:「clamp()」公式和尺度預構造。
「導航模式」:XS/SM/MD/LG/XL變體。
帶有短片段和CLS/LCP值的「Do/Do n't」。


簡短的摘要

適應性是一種策略,不是一組混亂的媒體問題。依靠內容和設備分析,將媒體查詢與成熟的網格和容器查詢相結合,將「clamp()」應用於印刷,控制圖像和性能,支持所有輸入和A11y方式。因此,在任何屏幕上,接口都保持可預測,快速且同樣方便。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。