響應式設計

協助你能夠在不同裝置上更加地得心應手。
裝置定義

Tocas UI 預設提供四個裝置中斷點。

出現時機
⮃ 手機直向握持。
⮂ 多數手機的橫向。
⮃ 平板電腦的直向。
⮂ 平板電腦的橫向。
縮小的瀏覽器視窗。
通常可視為電腦裝置的起始點。
⮂ 大型平板電腦的橫向(如:iPad Pro 或 Surface Pro)。
筆記型電腦、桌上型電腦。
使用方式

中斷點:樣式 套用到元素上,就能使用響應式功能。

生效時機
只在「某個中斷點」生效。
在「某個中斷點」與「以上」生效。
在「某個中斷點」與「以下」生效。
在「某個中斷點」與「某個中斷點」之間生效。

<!-- 只在 mobile 套用 is-small -->
<div class="ts-button mobile:is-small"></div>

<!-- 在 tablet, desktop, widescreen 套用 is-small -->
<div class="ts-button tablet+:is-small"></div>

透過方括號 [尺寸] 取代原本的中斷點名稱,就能使用像 100px450px 這種臨時尺寸。

生效時機
在「某個尺寸」與「以上」生效。
在「某個尺寸」與「以下」生效。
在「某個尺寸」與「某個尺寸」之間生效。
<!-- 螢幕在 300px 或以下套用 is-small -->
<div class="ts-button [300px]-:is-small"></div>

<!-- 螢幕在 300px 到 400px 之間套用 is-small -->
<div class="ts-button [300px-400px]:is-small"></div>
實際應用

在指定中斷點套用 .has-hidden 就能隱藏元素,善用此功能可以讓元素只在特定裝置顯示。

Mobile 📱
Tablet 💻
Desktop 🖥️
Widescreen 📺
<!-- 在 tablet, desktop, widescreen 隱藏 -->
<!-- 等同於:只在 mobile 顯示 -->
<div class="ts-badge tablet+:has-hidden">Mobile 📱</div>

<!-- 在 mobile, desktop, widescreen 隱藏 -->
<!-- 等同於:只在 tablet 顯示 -->
<div class="ts-badge mobile:has-hidden desktop+:has-hidden">Tablet 💻</div>

<!-- 在 mobile, tablet, widescreen 隱藏 -->
<!-- 等同於:只在 desktop 顯示 -->
<div class="ts-badge tablet-:has-hidden widescreen:has-hidden">Desktop 🖥️</div>

<!-- 在 mobile, tablet, desktop 隱藏 -->
<!-- 等同於:只在 widescreen 顯示 -->
<div class="ts-badge desktop-:has-hidden">Widescreen 📺</div>
響應網格系統

讓欄位寬度隨著螢幕尺寸變動,但 mobile 中斷點設置的樣式不會往上沿用,所以你必須指定每個階段的樣式。

<div class="ts-grid">
    <div class="column mobile:is-16-wide tablet+:is-8-wide"></div>
    <div class="column mobile:is-16-wide tablet+:is-8-wide"></div>
    <div class="column mobile:is-16-wide tablet+:is-8-wide"></div>
    <div class="column mobile:is-16-wide tablet+:is-8-wide"></div>
</div>
進階功能

透過 CSS 變數覆寫、新增 Tocas UI 的中斷點尺寸。新增中斷點時,必須同時指定兩個 CSS 變數:

--ts-breakpoint-名稱-min:該中斷點的最小、起始尺寸。
--ts-breakpoint-名稱-min:該中斷點的最大、結束尺寸。

套用響應式功能時,Tocas UI 會找離這個元素最近的中斷點定義。

<style type="text/css">
    html {
        /** 建立名為 computer 的中斷點 */
        --ts-breakpoint-computer-min: 768px;
        --ts-breakpoint-computer-max: 1280px;
    }
</style>

<!-- 螢幕在 768px ~ 1280px 之間套用 is-small 樣式 -->
<div class="ts-button computer:is-small"></div>

讓元素依據容器的寬度來當作中斷點基準,而非螢幕大小;這也被稱作 Container Query。

在中斷點前面加上 @ 符號(例如:@mobile@[400px]+),元素就會依據最鄰近的 @container 容器寬度來做為響應式的判斷依據。

<div class="ts-content @container">
    <!-- 如果 ts-content 的寬度在 300px 或以上就套用 is-small -->
    <div class="ts-button @[300px+]:is-small"></div>
</div>
由來自 台灣的 Yami Odymel 所設計,當然還有貢獻者們的愛心❤️。原始碼授權方式為 MIT,文件則為 CC 0 公眾領域。還請盡情地使用、分享或一同改進。Tocas UI 是卡莉絲伊繁星的設計語言,而卡莉絲伊繁星屬對空音商事
台灣正體語系協作者:Yami Odymel、coin3x、Sea-n
擁有 Tocas UI 的所屬組織商標