ScifiPanelSentinel
科幻面板-哨兵 是 TechUI Scifi 面板系列中的聚焦型装饰容器。
采用了经典的 “四角装甲 (Four-corner Armor)” 与 “光学锁定 (Optical Lock-on)” 设计语言。面板的四个角落被精密计算的 L 型几何装甲包裹,而边框中部留白 。这种独特的视觉结构创造了一种强烈的 “视线锁定感”,仿佛相机取景框或武器系统的锁定界面。
该组件能潜意识地将用户的注意力强制引导至容器的几何中心。由于摒弃了顶部标题栏的限制,它是包裹高权重独立内容(如实时监控流、3D 模型预览、核心关键指标)的绝佳选择,在不干扰内容本身的前提下,提供极强的军事工业风格修饰。
提示:该组件可以通过
ScifiPanelB1或其语义化别名ScifiPanelSentinel进行调用。
基础用法
默认形态
默认情况下,ScifiPanelSentinel 会渲染四个角的实心 L 型边框。它会自动适应内部内容的大小,或者跟随父容器的尺寸。
<template>
<div style="width: 400px; height: 300px;">
<ScifiPanelSentinel>
<div class="content-box">
<span class="text">System Ready</span>
</div>
</ScifiPanelSentinel>
</div>
</template>
<style scoped>
.content-box {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
}
</style>视觉变体
B1 虽然结构简单,但通过调整边框厚度和装饰风格,可以呈现出截然不同的质感。
边框与厚度 (Border Width)
通过 borderWidth 可以控制四角线条的粗细。
- 1-2px: 精密仪器风格,适合展示图表。
- 3-5px: 重型装甲风格,适合强调防御属性。
<template>
<div class="grid">
<ScifiPanelSentinel :borderWidth="1">
<div class="p-4">Precision Mode</div>
</ScifiPanelSentinel>
<ScifiPanelSentinel :borderWidth="4">
<div class="p-4">Armor Mode</div>
</ScifiPanelSentinel>
</div>
</template>装饰变体 (Decoration Alt)
decorationAlt 属性控制角部的具体渲染逻辑。
- False (默认): 标准的实心 L 型角块。
- True: 切换为镂空线条或双线切割风格,视觉上更加轻盈、透气,适合叠加在复杂的地图背景上。
<template>
<ScifiPanelSentinel :decorationAlt="true">
<MapComponent />
</ScifiPanelSentinel>
</template>发光效果 (Glow)
开启 glow 属性后,面板边缘会产生高亮的外发光效果。这是营造“赛博朋克”或“全息投影”风格的关键属性。
<template>
<ScifiPanelSentinel
:glow="true"
:glowOpacity="0.8"
:backgroundOpacity="0.6"
>
<div class="warning-text">HOLOGRAPHIC VIEW</div>
</ScifiPanelSentinel>
</template>CSS变量
B1 的“锁定框”形态非常适合制作战术风格的界面。通过传入 className 并覆盖 CSS 变量,我们可以轻松定义出“夜视仪”或“战术终端”风格。
案例:战术夜视风格 (Tactical Night)
这种风格使用高饱和度的荧光绿,模拟夜视仪或老式雷达的视觉效果。
<template>
<ScifiPanelSentinel
className="panel-tactical"
:decorationAlt="true"
:glow="true"
:backgroundBlur="true"
>
<div class="radar-view">
<icon name="target" /> TARGET LOCKED
</div>
</ScifiPanelSentinel>
</template>
<style lang="less">
/* 自定义战术夜视风格 */
.panel-tactical {
/* 边框:荧光绿 */
--sf-panel-bd: #00ff00;
/* 背景:极深绿半透明 */
--sf-panel-bg: rgba(0, 20, 0, 0.6);
/* 发光:绿色光晕 */
--sf-panel-glow: #00ff00;
/* 装饰高亮:白绿 */
--sf-panel-hlite: #ccffcc;
}
</style>组合使用
搭配标题组件
由于 B1 本身不带标题,您可以将其与 ScifiPanelTitle 组合使用,实现“标题悬浮于容器之上”的布局。
<template>
<div class="complex-module">
<div class="module-header">
<ScifiPanelTitle text="MONITOR FEED" />
</div>
<ScifiPanelSentinel :decorationAlt="true">
<VideoPlayer />
</ScifiPanelSentinel>
</div>
</template>API 参考
Props
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| decoration | 是否显示四角的装饰元素 | Boolean | true |
| decorationAlt | 装饰变体。是否切换为镂空/线条角部样式 | Boolean | false |
| borderd | 是否显示连接四角的边框线 | Boolean | true |
| borderWidth | 边框/角部线条的宽度 (px) | Number | — |
| backgroundOpacity | 背景颜色的不透明度 (0-1) | Number | — |
| backgroundBlur | 是否开启背景毛玻璃效果 | Boolean | false |
| glow | 是否开启外发光滤镜 | Boolean | false |
| glowOpacity | 外发光的不透明度 (0-1) | Number | — |
| scale | 整体缩放比例 | Number | 1 |
| 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) |