ScifiPanelZone
科幻面板-佐恩 是 TechUI Scifi 面板系列中的通用区域界定容器。
它移植并重构自开源项目 @jiaminghi/data-view (原型 dv-border-box-7)。它采用了标准化的 “四角加固 (Corner Reinforcement)” 设计语言。在基础矩形边框的之上,通过四个角落显著的 L 型括弧 进行结构加强 。
它的线条更为硬朗锐利,它支持允许独立定义基础边框色与角标装饰色,能够创造出丰富的色彩层次。这使其成为适配性极高的万能默认容器,适合用于任何需要明确边界的模块。
提示:该组件可以通过
ScifiPanelDV5或其语义化别名ScifiPanelZone进行调用。
基础用法
默认形态
默认情况下,DV5 会渲染一个带有细边框的矩形,四个角落覆盖有加粗的 L 型括弧。
vue
<template>
<div style="width: 400px; height: 300px;">
<ScifiPanelZone>
<div class="box-content">
<span>Module Loaded</span>
</div>
</ScifiPanelZone>
</div>
</template>视觉变体
DV5 的配置允许您在“强装饰”和“纯边框”之间切换。
括弧装饰 (Decoration)
DV5 的核心视觉特征是四角的括弧。
- True (默认): 显示四角的 L 型括弧,强调边界感。
- False: 隐藏四角括弧,仅保留基础矩形边框。
vue
<template>
<div class="grid">
<ScifiPanelZone />
<ScifiPanelZone :decoration="false">
<div class="p-4">Plain Border</div>
</ScifiPanelZone>
</div>
</template>线条粗细 (Border Width)
borderWidth 同时影响基础边框和角部括弧的粗细。
- 增加此值可以让面板看起来更坚固,类似重型装甲。
vue
<template>
<ScifiPanelZone
:borderWidth="3"
:backgroundOpacity="0.8"
>
<div class="p-4">Heavy Duty</div>
</ScifiPanelZone>
</template>发光效果 (Glow)
开启 glow 后,边框和括弧都会产生柔和的光晕。由于 DV5 线条连贯,发光效果非常均匀,适合做全息窗口。
vue
<template>
<ScifiPanelZone
:glow="true"
className="dv5-neon"
/>
</template>CSS变量
DV5 的双色结构(基础线 + 角部装饰)非常适合做双色主题。
案例:赤红风暴风格 (Crimson Storm)
这种风格使用暗红色作为基础,亮红色作为角部高亮,营造警示或战斗氛围。
vue
<template>
<ScifiPanelZone
className="panel-crimson"
:backgroundBlur="true"
:backgroundOpacity="0.6"
>
<div class="alert-info">
WARNING: BREACH DETECTED
</div>
</ScifiPanelZone>
</template>
<style lang="less">
.panel-crimson {
/* 基础边框:暗红 */
--sf-panel-bd: #7f1d1d;
/* 角部括弧:鲜红 */
--sf-panel-hlite: #ef4444;
/* 背景:深红黑 */
--sf-panel-bg: rgba(69, 10, 10, 0.7);
/* 发光:橙红 */
--sf-panel-glow: #f87171;
}
</style>API 参考
Props
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| decoration | 装饰开关。是否显示四角的 L 型括弧 | Boolean | true |
| borderd | 边框开关。是否显示基础矩形线条 | Boolean | true |
| borderWidth | 线条宽度 (px) | Number | — |
| backgroundOpacity | 背景不透明度 (0-1) | Number | — |
| backgroundBlur | 是否开启背景毛玻璃 | Boolean | false |
| glow | 是否开启外发光 | Boolean | false |
| className | 自定义容器类名 | String | — |
CSS Variables
您可以在组件的父级或通过 className 覆盖以下变量,以控制组件的配色与外观。
| 变量名 | 说明 | 默认值参考 |
|---|---|---|
| --sf-panel-bg | 面板背景填充色 | var(--scifi-bg) |
| --sf-panel-bgop | 背景不透明度 | var(--cpt-panel-bgop, 1) |
| --sf-panel-bd | 边框线条颜色 | var(--scifi-bd) |
| --sf-panel-bdw | 边框线条宽度 | var(--cpt-panel-bdw, 1px) |
| --sf-panel-fc | 标题文字颜色 | var(--scifi-fc) |
| --sf-panel-hlite | 高光颜色 | var(--scifi-hlite) |
| --sf-panel-focus | 焦点颜色 | var(--scifi-focus) |
| --sf-panel-glow | 内发光颜色 | var(--scifi-focus) |
| --sf-panel-glowop | 内发光不透明度 | var(--cpt-panel-glowop, .5) |
| --sf-panel-shadow | 容器阴影 | var(--shadow-weak) |
| --sf-panel-scale | 整体缩放比例 | var(--cpt-panel-scale) |
致谢
JiaMing
Github
此组件移植自开源组件 jiaminghi/data-view,在此基础上基于 TechUI 全局主题,进行了深度定制,并添加了诸多的API,大大增强了本组件的能力。
在此,向作者 JiaMing 致以诚挚的谢意与敬意!