Skip to content

ScifiDeco 装饰容器

TechUI Scifi 系列中的微型装饰性容器

ScifiPanel 用于包裹大块内容不同,ScifiDeco 专为微型元素设计。它们通常拥有固定的纵横比(默认 1:1),通过 SVG 几何图形来包裹 图标 (Icon)关键数字 (Counter),是构建 HUD(抬头显示器)界面细节的核心组件。

核心特性

  • 固定尺寸与缩放: 除 C1 外,所有 Deco 组件的内部 SVG 节点均为固定尺寸(默认 80px)。调整大小不通过 width/height,而是推荐使用 scale 属性进行整体无损缩放。
  • 绝对居中: 组件内部预设了绝对定位的插槽,会自动将内容(图标/文字)垂直水平居中。
  • 几何分类: 提供圆形、六边形、三角形等多种基础几何形态,方便构建阵列。

关于命名与别名

为了平衡开发稳定性代码可读性,TechUI Scifi 装饰组件采用了双重命名策略。每个组件都拥有一个固定的原始序列名和一个语义化的别名。

  • 原始序列名 (Fixed Serial Name)
    • 例如:ScifiDecoA1ScifiDecoB2
    • 这是组件的底层物理 ID,基于开发序列命名(A系列为基础型,B系列为徽章型,C系列为自适应型)。它是永久固定不可变更的。
  • 语义化别名 (Semantic Alias)
    • 例如:ScifiDecoRuneScifiDecoHive
    • 这是基于外观风格或设计隐喻命名的快捷方式(例如:Rune/鲁恩符文、Hive/蜂巢),旨在提高代码的可读性。

注意:随着设计语言的演进,个别别名可能会在后期版本中进行语义微调更名。虽然我们会尽量保持兼容,但在跨大版本升级时请留意相关变更日志。

组件家族

ScifiDecoRune (几何基座)

关键词: Hexagon · Triangle · Circle · Basic

ScifiDecoRune 是基础几何形状的合集。它包含了六边形、三角形和圆形的简约变体。非常适合作为技能图标底座、属性点容器或简单的状态指示灯。

  • Appearance 变体: 包含 A / B / C 三种模式,分别对应不同的几何构造(如实心、描边、双层)。
vue
<template>
  <div class="hud-group">
    <ScifiDecoRune appearance="B" :scale="1.2">
      <icon name="bi-hexagon" />
    </ScifiDecoRune>
    
    <ScifiDecoRune appearance="C">
      <span class="num">39</span>
    </ScifiDecoRune>
  </div>
</template>

ScifiDecoB 系列 (科技徽章)

关键词: High-Tech · Frame · Status

B 系列是设计感极强的重型徽章。它们在基础几何上增加了复杂的机械细节、能量槽和发光回路,视觉权重较高。

ScifiDecoOrb (圆形核心)

  • 形态: 圆形 / 环形设计。
  • 变体: 支持 A / B / C / D 四种外观。
  • 场景: 适合作为核心能量球、雷达缩略图或 Start 按钮的外框。

ScifiDecoHive (六边蜂巢)

  • 形态: 六边形设计。
  • 变体: 支持 A / B / C / D 四种外观。
  • 场景: 适合蜂巢状布局的技能树、科技升级图标。

ScifiDecoPrism (三角警示)

  • 形态: 三角形设计。
  • 变体: 支持 A / B / C / D 四种外观。
  • 场景: 适合危险警示、方向指示或特殊属性标识。
vue
<template>
  <div class="status-bar">
    <ScifiDecoOrb appearance="A" :glow="true">
      <icon name="nuclear" />
    </ScifiDecoOrb>
    
    <ScifiDecoHive appearance="C" :scale="0.8">
      <span class="level">LV.9</span>
    </ScifiDecoHive>
  </div>
</template>

ScifiDecoPair (自适应括号)

关键词: Adaptive · Brackets · HUD · Label

ScifiDecoPair 是 Deco 系列中的特例

  • 自适应宽度: 它没有固定的背景几何,而是由左右两侧的“括号”或“光标”组成。容器宽度可变,会根据内部文字长度自动撑开(类似 Button)。
  • 无背景: 默认无背景填充,强调通透感。
  • 场景: 适合包裹长短不一的标签、数字读数或作为标题的修饰符。
  • 变体: 支持 A / B / C / D / E 五种外观。
vue
<template>
  <ScifiDecoPair appearance="A">
    <span class="label">SYSTEM ONLINE</span>
  </ScifiDecoPair>
  
  <ScifiDecoPair appearance="B" :decorationColorAlt="true">
    <span class="warning">ERROR: 404</span>
  </ScifiDecoPair>
</template>

视觉定制

尺寸与缩放 (Scale)

对于 A 和 B 系列,请勿设置 CSS width/height。请使用 scale 属性进行缩放。

  • scale="1" (默认): 对应 80px 尺寸。
  • scale="0.5": 对应 40px 尺寸。
  • scale="1.5": 对应 120px 尺寸。
vue
<template>
  <ScifiDecoOrb :scale="0.5">
    <icon name="small" />
  </ScifiDecoOrb>
</template>

装饰配色 (Decoration Color)

  • decorationColorAlt: 交换高亮色与焦点色。
  • False (默认): 边框/主体使用高亮色 (Highlight),辅助细节使用焦点色 (Focus)。
  • True: 反转配色。常用于表示“警告”或“特殊状态”。

辉光与方向

  • glow: 开启 SVG 滤镜发光。
  • directionAlt: 部分组件(如 A1 的某些变体)支持方向反转或旋转。

API 参考

Props

属性名说明类型默认值
appearance外观变体。不同组件支持范围不同 (A-E)String'A'
scale缩放比例。A/B系列调整大小的推荐方式Number1
borderd是否显示边框/装饰线条Booleantrue
glow是否开启发光滤镜Booleantrue
glowRange发光扩散范围Number10
glowOpacity发光不透明度Number
decorationColorAlt装饰变体。是否交换高亮色与焦点色Booleanfalse
directionAlt方向变体。部分组件支持镜像或旋转Booleanfalse
backgroundOpacity背景不透明度Number
className自定义类名String

CSS Variables

变量名说明默认值
--sf-deco-hlite装饰高亮色var(--scifi-hlite)
--sf-deco-focus辅助装饰色var(--scifi-focus)
--sf-deco-bg背景填充色var(--scifi-bg)
--sf-deco-bd边框颜色var(--scifi-bd)
--sf-deco-fc内容插槽文字颜色var(--font-strong)
--sf-deco-fz内容插槽默认字号24px
--sf-deco-size组件基准尺寸 (A/B系列)80px