Style 样式属性

元素外观样式配置

Style 样式属性

Style 控制元素的外观样式,包括颜色、字体、阴影、滤镜等。

字段定义

interface Style {
  opacity?: number;          // 透明度 0-1
  fill?: string | Gradient;  // 填充色或渐变
  stroke?: string;           // 描边色
  strokeWidth?: number;      // 描边宽度

  // 文字
  fontFamily?: string;       // 字体名称
  fontSize?: number;         // 字体大小
  fontWeight?: number | string;  // 字重
  fontStyle?: 'normal' | 'italic';  // 字体样式
  lineHeight?: number;       // 行高
  letterSpacing?: number;    // 字间距
  textAlign?: 'left' | 'center' | 'right';  // 对齐
  textWrap?: boolean;        // 是否换行

  // 阴影
  shadowColor?: string;      // 阴影颜色
  shadowBlur?: number;       // 阴影模糊
  shadowOffset?: [number, number];  // 阴影偏移 [x, y]

  // 圆角
  borderRadius?: number | [number, number, number, number];  // 圆角

  // 滤镜
  filters?: Filter[];        // 滤镜列表
}

基础属性

opacity 透明度

控制元素的透明度,范围 0-1。

{
  "style": {
    "opacity": 0.5
  }
}
效果
0完全透明(不可见)
0.5半透明
1完全不透明(默认)

fill 填充

设置元素的填充颜色或渐变。

纯色填充:

{
  "style": {
    "fill": "#ff5733"
  }
}

渐变填充:

{
  "style": {
    "fill": {
      "type": "linear",
      "angle": 135,
      "stops": [
        { "offset": 0, "color": "#1a1a2e" },
        { "offset": 1, "color": "#0f3460" }
      ]
    }
  }
}

stroke 描边

设置元素的描边颜色和宽度。

{
  "style": {
    "stroke": "#ffffff",
    "strokeWidth": 2
  }
}

文字属性

fontSize 字体大小

设置文本的字体大小(像素)。

场景建议值
标题48-96
正文24-36
字幕32-48
注释16-24

fontWeight 字重

描述
100Thin
300Light
400Normal
500Medium
700Bold
900Black

textAlign 文本对齐

描述
left左对齐
center居中
right右对齐

阴影属性

示例:文字发光效果

{
  "type": "text",
  "text": "发光文字",
  "style": {
    "fontSize": 72,
    "fill": "#ffffff",
    "shadowColor": "#00ffff",
    "shadowBlur": 30,
    "shadowOffset": [0, 0]
  }
}

圆角属性

borderRadius 圆角

统一圆角:

{
  "style": {
    "borderRadius": 20
  }
}

分别设置四个角:

{
  "style": {
    "borderRadius": [10, 20, 30, 40]
  }
}

顺序为:[左上, 右上, 右下, 左下]

圆形头像:

{
  "type": "rect",
  "transform": {
    "width": 100,
    "height": 100
  },
  "style": {
    "borderRadius": 50
  }
}

滤镜属性

支持的滤镜类型:

类型描述值范围
blur模糊0-100 (像素)
brightness亮度0-2 (1=正常)
contrast对比度0-2 (1=正常)
saturate饱和度0-2 (1=正常)
hue色相旋转0-360 (度)
grayscale灰度0-1
sepia复古0-1
invert反色0-1

示例:背景虚化

{
  "type": "image",
  "src": "background.jpg",
  "style": {
    "filters": [
      { "type": "blur", "value": 10 }
    ]
  }
}

字段说明表

字段类型必填默认值描述
opacitynumber1透明度 0-1
fillstring | Gradient-填充颜色或渐变
strokestring-描边颜色
strokeWidthnumber1描边宽度
fontFamilystring-字体名称
fontSizenumber16字体大小
fontWeightnumber | string400字重
fontStylestringnormal字体样式
lineHeightnumber1.2行高
letterSpacingnumber0字间距
textAlignstringleft文本对齐
textWrapbooleanfalse是否换行
shadowColorstring-阴影颜色
shadowBlurnumber0阴影模糊
shadowOffset[number, number][0, 0]阴影偏移
borderRadiusnumber | number[]0圆角
filtersFilter[][]滤镜列表

最佳实践

  1. 颜色格式:使用十六进制 #ff5733 或 RGBA rgba(255, 87, 51, 0.8)
  2. 字体加载:确保在 assets 中定义并加载字体
  3. 阴影性能:过多的阴影效果可能影响渲染性能
  4. 滤镜叠加:多个滤镜按顺序依次应用
  5. 圆角限制:borderRadius 最大不超过元素宽高的一半