骨架
骨架是尚未載入元件的預覽佔位符,可減少載入時間的挫折感。
簡介
骨架為使用者提供 UI 在資料載入時的外觀預期。它有助於減少對長時間載入的感知,同時提供更有趣的載入狀態。
Lorem ipsum 是圖形、印刷和出版產業中常用的佔位文字。
按下 Enter 開始編輯
基礎知識
import Skeleton from '@mui/joy/Skeleton';
有兩種使用骨架元件的方法
- 遮罩元件:請參閱頭像、圖片和排版內嵌範例。骨架元件將繼承其尺寸,這樣可以在載入完成時提供更可預測的 UI,同時防止版面配置偏移。
- 設定自訂寬度和高度:請參閱幾何圖形和文字區塊範例。使用此選項可完全控制骨架大小,完全忽略其父元素尺寸。請注意,如果骨架模仿的實際元件尺寸不同,此選項可能會產生版面配置偏移。
自訂
載入中
骨架預設將 loading
屬性設定為 true
。
將其設定為 false
以隱藏骨架元件。如果骨架有子元件,則會改為呈現它們。
Lorem ipsum 是圖形、印刷和出版產業中常用的佔位文字。
動畫
使用 animation
屬性來控制骨架元件的動畫方式。animation
屬性值可以是下列其中之一
pulse
(預設):骨架的背景淡入和淡出。wave
:從左到右流動的波浪動畫。false
:完全停用動畫。
以下示範顯示波浪動畫
Lorem ipsum 是圖形、印刷和出版產業中常用的佔位文字。
若要將 wave
動畫設定為所有骨架元件實例的預設值,請使用佈景主題的預設屬性
import { CssVarsProvider, extendTheme } from '@mui/joy/styles';
const theme = extendTheme({
components: {
JoySkeleton: {
defaultProps: {
animation: 'wave',
},
},
},
});
function App() {
return (
<CssVarsProvider theme={theme}>
<Skeleton />{' '}
{/* The Skeleton component will have the wave animation by default */}
</CssVarsProvider>
);
}
頭像
顯示頭像時,請使用 頭像元件來包裝骨架。
按下 Enter 開始編輯
排版內嵌
在排版元件和文字之間插入骨架,以顯示佔位符行。
標題
歷史、目的和用途Lorem ipsum 是圖形、印刷和出版產業中常用的佔位文字,用於預覽版面配置和視覺模型。
幾何圖形
若要建立特定的骨架形狀,請使用 variant
屬性,並在 circular
或 rectangular
之間選擇。若要在特定尺寸上顯示,請使用 width
和 height
屬性。
按下 Enter 開始編輯
文字區塊
使用 variant="text"
和 level
屬性來建立遵循佈景主題排版樣式的骨架文字區塊。
level
屬性值可以是佈景主題的排版相關 token。骨架文字的結果將具有與 level
屬性的文字相同的高度。
h1 字體
h2 字體
body-md 字體
body-sm 字體
body-xs 字體按下 Enter 開始編輯
優勝美地國家公園
2021 年 4 月 24 日至 5 月 2 日
總價
$2,900