自定义样式
目前各个图表可以通过 @param 和 @config 设置变量值来改变图表内的样式,但仍有一些小问题:
- 不同图表由于语法和逻辑实体不同,变量名称不完全相同
- 无法为某个单独的元素指定样式
因此我们引入一种新的配置方式:
- 支持配置通用的样式属性
- 可以为单独元素绑定类型和指定样式
这个配置方式的优先级高于 @param 和 @config。它长得有点像 CSS,但并不完全一致。
示例
@pre
@style {
.people {
textColor: blue;
fontStyle: italic;
}
}
@endpre
erDiagram
title: Custom Style Example
PERSON
CUSTOMER inherit PERSON
CUSTOMER ||--o{ ORDER : places
@bindClass entity-CUSTOMER people
@bindClass entity-PERSON people
基本概念
可以设置样式的属性
与各个图表各不相同的 config 不一样,样式属性相对较为统一,目前只有以下关于样式的属性可以被设置。
import { MarkAttrs } from '@pintora/core'
export type StylableAttrs = {
backgroundColor: string
borderColor: string
fontFamily: MarkAttrs['fontFamily']
fontStyle: MarkAttrs['fontStyle']
fontWeight: MarkAttrs['fontWeight']
opacity: MarkAttrs['opacity']
textColor: string
}
@style 指令
@style 指令只能在 @pre 块内出现。它的语法如下:
@pre
@style {
#id {
<...style-attrs>
}
.class {
<...style-attrs>
}
}
@endpre
样式选择符
.class。用于选中样式类。#id。用于选择具体元素,id 名称的构成在各种图表中都不一样,请查阅各个图表的文档。
@bindClass 指令
此指令用于将图表的特定 id 的元素绑定到样式类。它的语法如下:
@bindClass id1,id2 <style-class>
一个例子:
@pre
@style {
.cls-c1 {
textColor: red;
}
#node-C1 {
backgroundColor: #c5ff64;
}
#node-C2 {
backgroundColor: #ffe664;
}
.cls-c3 {
textColor: #ffffff;
backgroundColor: #64a1ff;
}
}
@endpre
componentDiagram
title: Component Style Example
[C1]
[C2]
[Component 3] as C3
@bindClass node-C3 cls-c3