高亮规则样式
Reeden 高亮规则支持的 CSS 写法:文字、背景、边框、行内块、尺寸、变换、动画、分块样式和主题色占位。
什么时候看这页
如果你只是想创建关键词高亮,先看 高亮与高亮规则。
这页用于调整高亮规则的显示效果。在规则编辑的「样式」页签,把「编辑方式」切到「CSS」,就能直接写样式。暂不支持的属性会被忽略,框底工具栏右侧会显示「N 处忽略」。CSS 框的补全、取色和「AI 改」见 创建高亮规则。
CSS 框里能写什么
规则的 CSS 框里可以写三种东西:
- 直接写的声明:作用于整条规则命中的内容
.名字 { … }块:只作用于规则里同名的那一部分,见 给规则里的某一部分单独上样式@keyframes 名字 { … }:自定义动画,见 动画
display: block;
border: 1.5px solid #e9c98f;
border-radius: 0.75em;
.head { color: #b06a12; font-weight: 700; }
@keyframes glow { 50% { opacity: 0.4; } }括号写错、选择器不认识时,CSS 框下面会提示「CSS 写法有误」,改好才能保存。
基本示例
color: {primaryColor};
background-color: #FFF3C4;
font-weight: 700;
reeden-font-bold: 6;
border-left: 4px solid {primaryColor};
padding: 4px 10px;显示方式:行内、行内块、块级
display 支持三个值:
inline:随文字流动,命中的文字跨行时每行各画一段。适合短词高亮inline-block:把命中的内容当成一个整块嵌在行里,不会从中间断行。宽高、垂直对齐、变换都能用。适合印章、键帽、弹幕、标签block:整段画成一块。适合卡片、引用、整段底色
写其他值会按 inline 处理。可视化编辑里「样式加在」选「整段」,相当于 display: block;行内块只能在 CSS 里写。
行内块示例(歪印章):
display: inline-block;
transform: rotate(-8deg);
border: 2px solid #d33a2a;
color: #d33a2a;
border-radius: 0.25em;
padding: 0 0.25em;
font-weight: 700;文字样式
常用属性:
color:文字颜色,例如#FFB800、rgba(255,184,0,.8)、{textColor}、{primaryColor}font-weight:字重,例如normal、400、700、boldreeden-font-bold:Reeden 阅读页面描边加粗等级,支持1到9font-style:字体样式,例如normal、italicfont-size:字号,例如14px、1em、1.1remfont-family:字体名列表font-variant:例如small-caps小型大写line-height:行高,例如1.5、24pxletter-spacing:字距,例如0.3emtext-align:对齐方式,例如left、center、right、justifytext-indent:首行缩进,例如2em、0text-transform:英文大小写,例如uppercasewhite-space:空白和换行,例如nowrap不换行text-shadow:文字阴影,可以写多层-webkit-text-stroke:文字描边,例如1px {primaryColor}
下划线相关属性:
text-decorationtext-decoration-linetext-decoration-styletext-decoration-colortext-decoration-thickness:线的粗细text-underline-offset:下划线离文字的距离
示例:
text-decoration: underline wavy {primaryColor};
text-underline-offset: 0.2em;着重号(每个字下面一个点)用 text-emphasis:
text-emphasis: filled dot {accentColor};
text-emphasis-position: under;还支持 text-emphasis-style、text-emphasis-color,以及带 -webkit- 前缀的写法。
渐变色文字:
background-image: linear-gradient(90deg, #e5484d, #3b6fd8);
background-clip: text;
-webkit-text-fill-color: transparent;背景和图片
常用属性:
background-color:背景色,例如#FFF3C4、{primaryColor}background-image:背景图或渐变,例如url("reeden://bg/xxx")、linear-gradient(…)background-position:背景位置,例如left top、center、right bottombackground-repeat:重复方式,例如no-repeat、repeatbackground-size:尺寸,例如cover、contain、autobackground-clip:背景画到哪里,例如textreeden-background-height:高亮背景高度,支持half、50%、full、100%reeden-background-nine-slice:背景图 9-Slice 拉伸区域,例如10 20 30 40reeden-background-nine-slice-scale:9-Slice 边框画多粗reeden-background-nine-slice-basis:bubble(气泡,跟着字变大变小)或card(卡片,整张图铺满这一块)
阅读正文中建议使用较浅的背景色,避免影响识别。
半高荧光笔示例:
background-color: rgba(254, 240, 138, 0.8);
reeden-background-height: half;背景图 9-Slice 示例:
background-image: url("assets/bg.png");
background-size: 100% 100%;
reeden-background-nine-slice: 10 20 30 40;内置素材
背景图可以直接用 App 自带的装饰素材,写 url(builtin:素材名):
padding-right: 1.2em;
background-image: url(builtin:gem);
background-repeat: no-repeat;
background-position: right center;
background-size: 1em;这条规则会在命中的文字后面挂一个宝石图标。素材名的完整列表见 替换为。
边框和圆角
常用属性:
border、border-left、border-right、border-top、border-bottomborder-width、border-style、border-color- 单边的长写,例如
border-bottom-width、border-left-style、border-top-color border-radius,以及单个角的border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radiusbox-shadow:盒子阴影box-decoration-break:行内高亮跨行时,每行是否各自画完整的边框和圆角,clone各自画、slice切开
示例:
border-left: 4px solid #94A3B8;
border-radius: 8px;键帽效果(底边加粗):
display: inline-block;
border: 1px solid {mutedColor};
border-bottom-width: 3px;
border-radius: 0.3em;
padding: 0 0.35em;边框适合标记整段或标题,不一定适合每一个短词。
轮廓线
outline 是画在边框外面的一圈线,不占位置、不会把文字挤开:
outline、outline-width、outline-style、outline-coloroutline-offset:轮廓线和内容的距离
outline: 1.5px solid {primaryColor};
outline-offset: 2px;间距和展示
常用属性:
padding、padding-left、padding-right、padding-top、padding-bottommargin、margin-left、margin-right、margin-top、margin-bottomdisplayopacityfloat
display: block 更适合整段、连续整段或标题命中。
首字下沉这类效果可以使用 float:
float: left;
font-size: 2em;
line-height: 0.9;
margin-right: 0.12em;尺寸和对齐
width、min-width、max-widthheight、min-height、max-heightvertical-align:行内块在行里的上下位置,例如middle、top、-0.1em
尺寸对行内块和块级生效,普通行内高亮写了也不起作用。
聊天气泡示例(宽度随内容、最宽 78%、靠右):
display: block;
text-indent: 0;
width: fit-content;
max-width: 78%;
margin-left: auto;
background-color: #95ec69;
border-radius: 0.75em;
padding: 0.15em 0.6em;变换
transform:旋转、缩放、平移、倾斜,例如rotate(-8deg)、scale(1.2)、translateY(-0.1em)transform-origin:变换的中心点
变换只改变画出来的样子,不影响排版:旋转、放大后的内容可能盖到旁边的字上,旁边的字不会让开。
变换只对行内块和块级生效,普通行内高亮要先加 display: inline-block。
动画
可以用 animation 简写,或 animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction、animation-fill-mode、animation-play-state。
内置了几个动画,直接写名字就能用:
| 名字 | 效果 |
|---|---|
reeden-breathe | 透明度慢慢起伏 |
reeden-blink | 一亮一灭 |
reeden-shake | 抖动 |
reeden-float | 上下轻轻浮动 |
reeden-rainbow | 颜色轮流变化 |
reeden-pop | 每隔一会儿放大回弹 |
reeden-spin | 一直旋转 |
reeden-fade-in | 从透明浮现出来 |
reeden-sweep | 背景从左往右扫过 |
color: #d98b1b;
font-weight: 700;
animation: reeden-breathe 2.4s ease-in-out infinite;也可以在 CSS 框里写自己的 @keyframes,名字只在这条规则里有效,不会和别的规则撞名:
animation: glow 2s ease-in-out infinite;
@keyframes glow {
50% { opacity: 0.4; color: #e5484d; }
}注意:
- 播放时只会变化透明度、文字颜色、背景色和变换。关键帧里写的宽高、边距这类影响排版的属性不会播放
- 用到变换的动画(震动、漂浮、弹一下、旋转)要配
display: inline-block - 只播放正在显示的页面,翻页时从头开始
- 墨水屏不播放动画
动画会持续刷新页面,开太多会更耗电。
给规则里的某一部分单独上样式
在 CSS 框里写 .名字 { … },只给规则命中里同名的那一部分上样式。名字可以来自:
- 正则里的命名分组:
(?<head>…)对应.head - 「替换为」里的样式块:
<span class="who">…</span>对应.who - 「替换为」里给图片、注音写的
class
另外还能写:
img、ruby、rt:「替换为」换出来的图片、注音,注音的小字是rt.first-para、.last-para:命中跨好几段时(比如用了「结束标记」),第一段和最后一段
示例:称号加名字,左边深底、右边浅底
- 关键词(正则):
(?<title>剑圣|宗主|掌门|长老)\s?(?<name>[一-龥]{2,3}) - CSS:
.title {
background-color: {textColor};
color: {backgroundColor};
border-radius: 0.2em 0 0 0.2em;
padding: 0 0.3em;
}
.name {
background-color: {primaryColor|a:0.12};
border-radius: 0 0.2em 0.2em 0;
padding: 0 0.3em;
font-weight: 600;
}.名字 块里能写的属性和外面一样。
动态颜色占位符
可以使用这些占位符适配当前主题:
{textColor}:当前主题文字色{backgroundColor}:当前主题背景色{primaryColor}、{accentColor}:当前主题强调色{mutedColor}:次要文字色,介于文字色和背景色之间{roleColor}:当前匹配角色的颜色;没有角色颜色时会回退到文字色或强调色
在占位符后面加 |a:透明度 可以调透明度,做浅色底不用写死颜色:
background-color: {primaryColor|a:0.15};示例:
color: {primaryColor};
border-left: 4px solid {primaryColor};角色高亮示例:
color: {roleColor};
text-shadow: 0 0 4px {roleColor};注意事项
- 不支持的 CSS 属性会被忽略
reeden-开头的属性主要用于高亮规则,不是通用网页 CSS- 规则样式太复杂可能影响阅读舒适度
margin-top和margin-bottom更适合块级命中- 背景图和深色背景要确认亮色、暗色主题下都能看清正文
- 宽高、变换、垂直对齐要配行内块或块级才生效
Reeden