astrion-website/demo/site-assets/anim-sandbox.css
JOJO 64d0a377dc feat: 04版本控制动画 + 演示区5条真实对话mock + 文档同步沙箱重构
- 主页第4行特色动画(版本控制)及 01/02/03 动画迭代
- 演示区对话 mock 全部换为真实对话转换:日常使用(汽车对比新/整理周会速记)、
  StarRaid(弹幕调研/像素飞机设计)、开发实战(猫咪咖啡店多智能体)
- 子智能体 activity、消息截图媒体、文件卡片资源(docx/pdf/html)随站点发布
- sw.js: file/content 二进制 MIME、/api/conversations/media 路由、
  模型列表扩为 K3/V4-Flash/MiniMax-M3/GLM-5.2、CACHE v5
- content/ 同步 8-31 沙箱重构文档更新
2026-09-03 07:47:39 +08:00

112 lines
2.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 沙箱与网络授权动画 —— 场景样式(主页 feature 行 / anim2-demo 页共用)
无边框无底色,融于星空;无 glow。恶意命令红 --danger 定义在 .anim2-window 作用域。 */
/* ───────── 动画容器 ───────── */
.anim2-window {
--danger: #d47b6b; /* 恶意命令红,仅本动画作用域 */
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
/* ───────── 场景区 ───────── */
.anim2-stage {
position: relative;
flex: 1;
overflow: hidden;
}
/* 防御者:右侧,六边形 + 盾牌(尺寸与 04 版本控制的智能体一致70×70 */
.defender {
position: absolute;
right: 36px;
bottom: 26px;
width: 70px;
height: 70px;
}
.defender-avatar {
display: block;
width: 70px;
height: 70px;
color: var(--text-1);
}
.defender-avatar .astrion-avatar { width: 100%; height: 100%; }
/* 盾牌举向左上方:顺时针倾斜(尖底朝左下),与六边形左上部分重叠遮挡,实色填充不透底 */
.defender-shield {
position: absolute;
left: -19px; /* 与角色同比例96→70×0.729)等比缩小 */
top: -9px;
width: 51px;
height: 51px;
color: var(--accent);
fill: var(--bg-1);
transform: rotate(24deg);
}
/* 盾牌/智能体受击后坐回弹 */
@keyframes defender-brace {
0% { transform: translateX(0); }
30% { transform: translateX(5px); }
60% { transform: translateX(-1.5px); }
100% { transform: translateX(0); }
}
.defender.is-hit { animation: defender-brace 0.34s ease; }
/* ───────── 飞行中的命令块 ───────── */
.cmd-projectile {
position: absolute;
left: 0;
top: 0;
font-family: var(--font-mono);
font-size: 13.5px;
font-weight: 600;
color: var(--danger);
white-space: nowrap;
will-change: transform;
/* 装填入场只动透明度fill both 保持 transform 会压住 JS 逐帧位移动画 */
animation: cmd-load 0.4s ease both;
}
@keyframes cmd-load {
from { opacity: 0; }
to { opacity: 1; }
}
/* ───────── 字符碎片(撞击后炸开) ───────── */
.cmd-shard {
position: absolute;
left: 0;
top: 0;
font-family: var(--font-mono);
font-size: 13.5px;
font-weight: 600;
color: var(--danger);
will-change: transform, opacity;
}
/* ───────── 撞击扩散环(描边圆环,非光晕) ───────── */
.impact-ring {
position: absolute;
width: 41px; /* 随盾牌等比56×0.729 */
height: 41px;
border: 2px solid var(--accent-strong);
border-radius: 50%;
opacity: 0;
pointer-events: none;
transform: translate(-50%, -50%) scale(0.3);
}
.impact-ring.is-active {
animation: impact-expand 0.45s ease-out both;
}
@keyframes impact-expand {
0% { opacity: 0.75; transform: translate(-50%, -50%) scale(0.3); }
100% { opacity: 0; transform: translate(-50%, -50%) scale(1.35); }
}