orbcafe-ui 3.1.2 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/orbis.css CHANGED
@@ -2634,6 +2634,10 @@ button.orb-app-header-locale:hover,
2634
2634
 
2635
2635
  /* ---------- OMPHPanel ---------- */
2636
2636
  /* ORBIS tokens only. Working state is motion: pulse, spinner, shimmer. */
2637
+ /* ── 玻璃面默认值 ──
2638
+ 可见透光 = (1-不透明度) × 背景浓度:78%×13%≈3% 不可见,64% 起才有玻璃感;
2639
+ 磨砂靠 backdrop-filter 保可读;嵌套面必须透明(64%×64%≈87% 会变实心)。
2640
+ 素背景上玻璃≈实心(canvas 叠 canvas),设计背景(泛光/纹理)上即玻璃。 */
2637
2641
  .orb-omph-panel {
2638
2642
  --orb-omph-column: 800px;
2639
2643
  --orb-omph-process-max: 240px;
@@ -2649,7 +2653,9 @@ button.orb-app-header-locale:hover,
2649
2653
  overflow: hidden;
2650
2654
  border: 1px solid var(--orb-border);
2651
2655
  border-radius: var(--orb-shell-radius);
2652
- background: var(--orb-canvas);
2656
+ background: color-mix(in oklch, var(--orb-canvas) 64%, transparent);
2657
+ backdrop-filter: blur(28px);
2658
+ -webkit-backdrop-filter: blur(28px);
2653
2659
  box-shadow: var(--orb-shadow-1);
2654
2660
  color: var(--orb-fg);
2655
2661
  font-family: var(--orb-font);
@@ -2670,7 +2676,9 @@ button.orb-app-header-locale:hover,
2670
2676
  overflow: hidden;
2671
2677
  border: 1px solid var(--orb-warn);
2672
2678
  border-radius: var(--orb-shell-radius);
2673
- background: var(--orb-canvas);
2679
+ background: color-mix(in oklch, var(--orb-canvas) 64%, transparent);
2680
+ backdrop-filter: blur(28px);
2681
+ -webkit-backdrop-filter: blur(28px);
2674
2682
  box-shadow: var(--orb-shadow-2);
2675
2683
  }
2676
2684
 
@@ -2805,7 +2813,9 @@ button.orb-app-header-locale:hover,
2805
2813
  flex: none;
2806
2814
  padding: 12px 14px;
2807
2815
  border-bottom: 1px solid var(--orb-border);
2808
- background: var(--orb-canvas);
2816
+ background: color-mix(in oklch, var(--orb-canvas) 64%, transparent);
2817
+ backdrop-filter: blur(28px);
2818
+ -webkit-backdrop-filter: blur(28px);
2809
2819
  }
2810
2820
 
2811
2821
  .orb-omph-header-actions {
@@ -2855,7 +2865,9 @@ button.orb-app-header-locale:hover,
2855
2865
  padding: 6px;
2856
2866
  border: 1px solid var(--orb-border);
2857
2867
  border-radius: var(--orb-r);
2858
- background: var(--orb-canvas);
2868
+ background: color-mix(in oklch, var(--orb-canvas) 72%, transparent);
2869
+ backdrop-filter: blur(28px);
2870
+ -webkit-backdrop-filter: blur(28px);
2859
2871
  box-shadow: var(--orb-shadow-1);
2860
2872
  }
2861
2873
 
@@ -3054,11 +3066,12 @@ button.orb-app-header-locale:hover,
3054
3066
  }
3055
3067
 
3056
3068
  .orb-omph-process-chevron {
3069
+ transform: rotate(-90deg);
3057
3070
  transition: transform var(--orb-t-fast);
3058
3071
  }
3059
3072
 
3060
3073
  .orb-omph-process[data-open="true"] .orb-omph-process-chevron {
3061
- transform: rotate(180deg);
3074
+ transform: rotate(0deg);
3062
3075
  }
3063
3076
 
3064
3077
  .orb-omph-process-summary {
@@ -3170,7 +3183,9 @@ button.orb-app-header-locale:hover,
3170
3183
  .orb-omph-older,
3171
3184
  .orb-omph-to-bottom {
3172
3185
  border: 1px solid var(--orb-border);
3173
- background: var(--orb-canvas);
3186
+ background: color-mix(in oklch, var(--orb-canvas) 72%, transparent);
3187
+ backdrop-filter: blur(20px);
3188
+ -webkit-backdrop-filter: blur(20px);
3174
3189
  color: var(--orb-muted);
3175
3190
  cursor: pointer;
3176
3191
  }
@@ -3337,7 +3352,7 @@ button.orb-app-header-locale:hover,
3337
3352
  flex: none;
3338
3353
  padding: 12px 16px 16px;
3339
3354
  border-top: 1px solid var(--orb-border);
3340
- background: var(--orb-canvas);
3355
+ background: transparent;
3341
3356
  }
3342
3357
 
3343
3358
  .orb-omph-input {
@@ -3459,7 +3474,7 @@ button.orb-app-header-locale:hover,
3459
3474
  width: var(--orb-omph-pv-pref);
3460
3475
  display: flex;
3461
3476
  flex-direction: column;
3462
- background: var(--orb-canvas);
3477
+ background: transparent;
3463
3478
  }
3464
3479
 
3465
3480
  .orb-omph-preview[data-placement="overlay"] {
@@ -3614,6 +3629,15 @@ button.orb-app-header-locale:hover,
3614
3629
  overflow: hidden;
3615
3630
  }
3616
3631
 
3632
+ /* embed 文档(PDF 等):iframe 吃满内容区,原生查看器负责滚动 */
3633
+ .orb-omph-pv-embed {
3634
+ flex: 1;
3635
+ width: 100%;
3636
+ min-height: 0;
3637
+ border: 0;
3638
+ background: var(--orb-canvas);
3639
+ }
3640
+
3617
3641
  .orb-omph-pv-note {
3618
3642
  padding: 12px 20px;
3619
3643
  color: var(--orb-muted);
@@ -4002,3 +4026,159 @@ button.orb-app-header-locale:hover,
4002
4026
  animation: none;
4003
4027
  }
4004
4028
  }
4029
+
4030
+ /* ═══════════════════════════════════════════════════════════════
4031
+ OMPHPanel 边缘泛光外壳(orb-omph-bloom)
4032
+
4033
+ 宿主结构:bloom > backdrop + center > panel(> glow + card) + composer。
4034
+ 状态机制:OMPHPanel 根节点自带 data-status;外壳经 :has() 自动联动——
4035
+ 静息 = CI 四色泛光 + 背景环境光;running/pending = 四周泛金光,
4036
+ 环境光(backdrop::before,宿主自绘)整体淡出,金光成为唯一光源。
4037
+ 宿主也可手动加 .is-working 类驱动(等价)。宿主只负责:
4038
+ ① backdrop::before 画自己的环境光洗 ② backdrop 本体画纹理
4039
+ ③ center 内摆放 bloom-panel(glow + card)与 bloom-composer。
4040
+ ═══════════════════════════════════════════════════════════════ */
4041
+
4042
+ .orb-omph-bloom {
4043
+ --orb-bloom-spread: 168px;
4044
+ --orb-bloom-blur: 64px;
4045
+ --orb-bloom-backdrop: 18px;
4046
+ --orb-bloom-breathe: 2.6s;
4047
+ --orb-bloom-petrol: color-mix(in oklch, #00a3a3 58%, transparent);
4048
+ --orb-bloom-blue: color-mix(in oklch, #00488a 58%, transparent);
4049
+ --orb-bloom-pink: color-mix(in oklch, #db3360 48%, transparent);
4050
+ position: absolute;
4051
+ inset: 0;
4052
+ z-index: 1;
4053
+ overflow: hidden;
4054
+ pointer-events: none;
4055
+ }
4056
+
4057
+ html.orb-dark .orb-omph-bloom,
4058
+ html[data-orb-mode="dark"] .orb-omph-bloom {
4059
+ --orb-bloom-petrol: color-mix(in oklch, #00a3a3 70%, transparent);
4060
+ --orb-bloom-blue: color-mix(in oklch, #00488a 72%, transparent);
4061
+ --orb-bloom-pink: color-mix(in oklch, #db3360 64%, transparent);
4062
+ }
4063
+
4064
+ .orb-omph-bloom-backdrop {
4065
+ position: absolute;
4066
+ inset: 0;
4067
+ pointer-events: auto;
4068
+ background: color-mix(in oklch, var(--orb-canvas) 42%, transparent);
4069
+ backdrop-filter: blur(var(--orb-bloom-backdrop));
4070
+ -webkit-backdrop-filter: blur(var(--orb-bloom-backdrop));
4071
+ }
4072
+
4073
+ /* 环境光层:库只给壳(定位 + 淡出过渡),宿主在其 background 上画光洗 */
4074
+ .orb-omph-bloom-backdrop::before {
4075
+ content: "";
4076
+ position: absolute;
4077
+ inset: 0;
4078
+ pointer-events: none;
4079
+ transition: opacity 0.6s ease;
4080
+ }
4081
+
4082
+ .orb-omph-bloom-center {
4083
+ position: relative;
4084
+ z-index: 1;
4085
+ display: flex;
4086
+ flex-direction: column;
4087
+ align-items: center;
4088
+ justify-content: center;
4089
+ gap: 12px;
4090
+ box-sizing: border-box;
4091
+ height: 100%;
4092
+ min-height: 0;
4093
+ padding: 20px 24px 24px;
4094
+ pointer-events: none;
4095
+ }
4096
+
4097
+ .orb-omph-bloom-panel {
4098
+ position: relative;
4099
+ display: flex;
4100
+ flex-direction: column;
4101
+ flex: 1 1 0;
4102
+ min-height: 0;
4103
+ overflow: visible;
4104
+ width: min(100%, var(--orb-bloom-width));
4105
+ pointer-events: auto;
4106
+ }
4107
+
4108
+ .orb-omph-bloom-glow {
4109
+ position: absolute;
4110
+ z-index: 0;
4111
+ inset: calc(var(--orb-bloom-spread) * -1);
4112
+ pointer-events: none;
4113
+ background:
4114
+ radial-gradient(ellipse 70% 48% at 50% 0%, var(--orb-bloom-petrol), transparent 68%),
4115
+ radial-gradient(ellipse 48% 70% at 0% 50%, var(--orb-bloom-petrol), transparent 68%),
4116
+ radial-gradient(ellipse 48% 70% at 100% 50%, var(--orb-bloom-blue), transparent 68%),
4117
+ radial-gradient(ellipse 70% 48% at 50% 100%, var(--orb-bloom-pink), transparent 68%);
4118
+ filter: blur(var(--orb-bloom-blur));
4119
+ animation: orb-omph-bloom-breathe var(--orb-bloom-breathe) ease-in-out infinite;
4120
+ }
4121
+
4122
+ .orb-omph-bloom-card {
4123
+ position: relative;
4124
+ z-index: 1;
4125
+ display: flex;
4126
+ flex: 1 1 0;
4127
+ flex-direction: column;
4128
+ min-height: 0;
4129
+ width: 100%;
4130
+ }
4131
+
4132
+ /* bloom 美学:面板去边框,泛光负责边缘;嵌套浮层透明靠外层玻璃 */
4133
+ .orb-omph-bloom-card .orb-omph-panel {
4134
+ border-color: transparent;
4135
+ box-shadow: none;
4136
+ }
4137
+
4138
+ .orb-omph-bloom-card .orb-omph-pv,
4139
+ .orb-omph-bloom-card .orb-omph-approval-other {
4140
+ background: transparent;
4141
+ }
4142
+
4143
+ .orb-omph-bloom-composer {
4144
+ position: relative;
4145
+ z-index: 2;
4146
+ flex: 0 1 auto;
4147
+ width: min(100%, var(--orb-bloom-width));
4148
+ max-height: 46%;
4149
+ min-height: 0;
4150
+ overflow: auto;
4151
+ pointer-events: auto;
4152
+ }
4153
+
4154
+ /* ── AI 工作态:四周泛金光 + 环境光隐退 ──
4155
+ 面板 data-status 自动联动(:has),或宿主手动 .is-working;
4156
+ 金色为产品显式要求,超出 CI 色板。 */
4157
+ .orb-omph-bloom.is-working,
4158
+ .orb-omph-bloom:has(.orb-omph-panel[data-status="running"]),
4159
+ .orb-omph-bloom:has(.orb-omph-panel[data-status="pending"]),
4160
+ html.orb-dark .orb-omph-bloom.is-working,
4161
+ html[data-orb-mode="dark"] .orb-omph-bloom.is-working {
4162
+ --orb-bloom-petrol: color-mix(in oklch, #d4af37 66%, transparent);
4163
+ --orb-bloom-blue: color-mix(in oklch, #d4af37 66%, transparent);
4164
+ --orb-bloom-pink: color-mix(in oklch, #e6c35c 60%, transparent);
4165
+ }
4166
+
4167
+ .orb-omph-bloom.is-working .orb-omph-bloom-backdrop::before,
4168
+ .orb-omph-bloom:has(.orb-omph-panel[data-status="running"]) .orb-omph-bloom-backdrop::before,
4169
+ .orb-omph-bloom:has(.orb-omph-panel[data-status="pending"]) .orb-omph-bloom-backdrop::before {
4170
+ opacity: 0;
4171
+ }
4172
+
4173
+ @keyframes orb-omph-bloom-breathe {
4174
+ 0%,
4175
+ 100% { opacity: 0.78; }
4176
+ 50% { opacity: 1; }
4177
+ }
4178
+
4179
+ @media (prefers-reduced-motion: reduce) {
4180
+ .orb-omph-bloom-glow {
4181
+ animation: none;
4182
+ opacity: 1;
4183
+ }
4184
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbcafe-ui",
3
- "version": "3.1.2",
3
+ "version": "3.1.4",
4
4
  "description": "ORBCAFE UI components — ORBIS brand system, MUI-free",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",