排版
typography
控制項提供了一組全面的功能,用於操作網頁上的文字。它支持從 Google Fonts 或自定義來源加載字型,修改與文字外觀相關的 CSS 屬性(如刪除線、粗體、斜體、下劃線、大寫和小寫),以及從全局樣式中選擇或添加字型。此外,它還允許調整文字大小、字重、行高和字母間距。
控制項範例:
參數
名稱 | 類型 | 預設值 | 描述 |
---|---|---|---|
id | string | - | typography 將保存數據的鍵的標識符 |
type | string | - | 類型應為 "typography" 以使用此控制項 |
className? | string | - | 自定義的 CSS 類名,將設置在控制項上 。可以用來修改控制項的樣式 |
position? | number | - | 控制項在工具欄中的位置 |
roles? | Array<Role> | - | 僅在當前用戶的角色與提供的角色數組中的一個匹配時渲染控制項。 type Role = "admin" | "viewer" | "editor" | "designer" | "manager" |
devices? | "all" | "desktop" | "responsive" | "all" | 定義控制項將在哪些設備上渲染。 "all" 在所有設備上渲染控制項。 "desktop" 僅在桌面設備上渲染控制項。 "responsive" 在平板電腦和移動設備上渲染控制項 |
disabled? | boolean | false | 配置控制項被禁用或啟用的條件 |
config?.fontFamily | boolean | true | 決定是否可以選擇字型家族 |
config?.fontSize | Boundaries | min: 0 max: 300 | 設置字型大小的最小和最大範圍 Boundaries: { min: number; max: number } |
config?.lineHeight | Boundaries | min: 1 max: 20 | 設置行高的最小和最大範圍 Boundaries: { min: number; max: number } |
config?.letterSpacing | Boundaries | min: -20 max: 20 | 設置字母間距的最小和最大範圍 Boundaries: { min: number; max: number } |
config?.scriptChoices | TextScripts[] | - | 決定文本是否可以格式化為下標或上標 TextScripts = "sub" | "super" |
default? | Default | - | 控制項的預設值。接受所有字段,如 返回值 所示 |
selector? | string | - | 將應用樣式的 CSS 選擇器 |
style? | function | - | 該函數根據控制項的值生成 CSS 輸出。參數是一個包含 value 鍵的物件,該鍵持有控制項的當前值。該函數返回一個包含 CSS 選擇器鍵和 CSS 屬性值的物件。
|
基本範例
標準定義僅包含所需的鍵。這個控制項將在所有設備上顯示。
{
id: "typography",
type: "typography"
}
返回值
返回一個包含以下值的物件:
{
bold: boolean;
fontFamily: string;
fontFamilyType: "google" | "upload" | "system";
fontSize: number;
fontSizeSuffix: "px" | "em" | "rem" | "vw";
fontSoftness: number;
fontStyle: string;
fontWeight: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
fontWidth: number;
italic: boolean;
letterSpacing: number;
lineHeight: number;
lowercase: boolean;
script: undefined | "super" | "sub";
strike: boolean;
underline: boolean;
uppercase: boolean;
variableFontWeight: number;
}
bold
- 表示文字是否為粗體;
fontFamily
- 選擇的字型家族;
fontFamilyType
- 使用的字型家族類型(Google Fonts、上傳的自定義字型或系統字型);
fontSize
- 字 型大小;
fontSizeSuffix
- 字型大小的單位後綴;
fontSoftness
- 代表字型的柔軟度,通常影響視覺平滑度;
fontStyle
- 表示使用了哪種全局排版樣式;
fontWeight
- 字型的粗細程度,範圍從細體(100)到特粗體(900);
fontWidth
- 字型的寬度;
italic
- 表示文字是否為斜體;
letterSpacing
- 字母之間的間距;
lineHeight
- 行高;
lowercase
- 表示文字是否為小寫;
script
- 表示文字是否為上標或下標格式;
strike
- 表示文字是否有刪除線;
underline
- 表示文字是否有下劃線;
uppercase
- 表示文字是否為大寫;
variableFontWeight
- 可變字型的粗細程度,允許更精確的調整;
返回值範例:
{
bold: false,
fontFamily: "overpass",
fontFamilyType: "google",
fontSize: 36,
fontSizeSuffix: "px",
fontSoftness: 0,
fontStyle: "heading2",
fontWeight: 700,
fontWidth: 100,
italic: false,
letterSpacing: -1.5,
lineHeight: 1.3,
lowercase: false,
script: undefined,
strike: false,
underline: false,
uppercase: false,
variableFontWeight: 400
}
使用方法
類名範例
將 CSS 類添加到控制項的 DOM 節點。
{
id: "typography",
type: "typography",
className: "myTypography"
}
角色範例
僅對具有管理員和設計師權限的用戶顯示控制項。
{
id: "typography",
type: "typography",
roles: ["admin", "designer"]
}