djm-ui 0.67.4 → 0.73.0
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/CHANGELOG.md +116 -0
- package/README.md +38 -2
- package/dist/djm-ui.cjs +1625 -803
- package/dist/djm-ui.cjs.map +4 -4
- package/dist/djm-ui.css +1043 -41
- package/dist/djm-ui.esm.js +1581 -761
- package/dist/djm-ui.esm.js.map +4 -4
- package/dist/djm-ui.esm.min.js +439 -247
- package/dist/djm-ui.min.cjs +439 -247
- package/dist/djm-ui.min.css +2 -2
- package/dist/djm-ui.umd.js +1104 -285
- package/dist/djm-ui.umd.min.js +439 -247
- package/dist/mcp/manifest.json +12300 -0
- package/dist/mcp/server.js +90 -0
- package/package.json +12 -4
- package/src/components/drawer/index.js +4 -2
- package/src/components/icon/index.js +13 -1
- package/src/components/modal/index.js +4 -2
- package/src/components/progress/index.js +72 -3
- package/src/components/rich-editor/index.js +724 -61
- package/src/components/spin/index.js +69 -22
- package/src/index.js +2 -1
- package/src/locale/en-US.js +33 -1
- package/src/locale/zh-CN.js +33 -1
- package/src/styles/base.css +2 -3
- package/src/styles/components/button.css +2 -1
- package/src/styles/components/console.css +5 -0
- package/src/styles/components/content.css +517 -0
- package/src/styles/components/feedback.css +46 -0
- package/src/styles/components/form.css +5 -0
- package/src/styles/components/glass.css +58 -0
- package/src/styles/components/layout.css +326 -0
- package/src/styles/components/media-picker.css +3 -3
- package/src/styles/components/menu.css +2 -1
- package/src/styles/components/org-picker.css +1 -1
- package/src/styles/components/responsive.css +86 -0
- package/src/styles/components/rich-editor.css +206 -7
- package/src/styles/components/skin.css +54 -0
- package/src/styles/components/spin.css +156 -4
- package/src/styles/components/template.css +5 -0
- package/src/styles/index.css +2 -0
- package/src/styles/theme-dark.css +5 -0
- package/src/styles/tokens.css +13 -0
- package/src/theme/index.js +62 -0
- package/src/utils/sanitize-html.js +44 -6
- package/types/index.d.ts +17 -0
package/dist/djm-ui.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! DJM UI v0.
|
|
1
|
+
/*! DJM UI v0.73.0 · MIT · 2026-10-26 */
|
|
2
2
|
|
|
3
3
|
/* ---- tokens.css ---- */
|
|
4
4
|
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
:root {
|
|
20
20
|
color-scheme: light;
|
|
21
21
|
|
|
22
|
+
/* 字体族:宿主页面可通过覆盖这两个变量统一换字体 */
|
|
23
|
+
--djm-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
|
|
24
|
+
"Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
25
|
+
--djm-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
26
|
+
|
|
22
27
|
--djm-brand-50: #eef6fe;
|
|
23
28
|
--djm-brand-100: #dcebfb;
|
|
24
29
|
--djm-brand-200: #b9d7f6;
|
|
@@ -38,6 +43,11 @@
|
|
|
38
43
|
--djm-hover: #eef3f9;
|
|
39
44
|
--djm-brand-soft: #eaf3fd;
|
|
40
45
|
--djm-glass: rgba(248, 250, 253, 0.96);
|
|
46
|
+
/* 毛玻璃:默认关闭,data-djm-glass="on" 或 .djm-glass 时生效 */
|
|
47
|
+
--djm-glass-bg: rgba(255, 255, 255, 0.72);
|
|
48
|
+
--djm-glass-border: rgba(255, 255, 255, 0.6);
|
|
49
|
+
--djm-glass-blur: 16px;
|
|
50
|
+
--djm-glass-shadow: 0 10px 30px -12px rgba(16, 40, 70, 0.28);
|
|
41
51
|
--djm-loading-mask: rgba(255, 255, 255, 0.74);
|
|
42
52
|
--djm-border: #dde6f0;
|
|
43
53
|
--djm-border-strong: #cbd7e5;
|
|
@@ -70,6 +80,9 @@
|
|
|
70
80
|
/* 彩色底上的文字(两主题均为白色) */
|
|
71
81
|
--djm-text-inverse: #fff;
|
|
72
82
|
|
|
83
|
+
/* 文字提示的深底:暗色主题改用略亮的灰,避免和页面背景糊在一起 */
|
|
84
|
+
--djm-tooltip-bg: #1f2a37;
|
|
85
|
+
|
|
73
86
|
/* 盖在图片等媒体内容上的蒙层,不随主题变化 */
|
|
74
87
|
--djm-media-mask: rgba(9, 20, 33, 0.55);
|
|
75
88
|
|
|
@@ -146,6 +159,9 @@
|
|
|
146
159
|
--djm-hover: #262e38;
|
|
147
160
|
--djm-brand-soft: #1a3049;
|
|
148
161
|
--djm-glass: rgba(20, 25, 31, 0.94);
|
|
162
|
+
--djm-glass-bg: rgba(25, 31, 38, 0.72);
|
|
163
|
+
--djm-glass-border: rgba(255, 255, 255, 0.12);
|
|
164
|
+
--djm-glass-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.6);
|
|
149
165
|
--djm-loading-mask: rgba(25, 31, 38, 0.78);
|
|
150
166
|
--djm-border: #2b333d;
|
|
151
167
|
--djm-border-strong: #3c4652;
|
|
@@ -155,6 +171,8 @@
|
|
|
155
171
|
--djm-text-side: #c2ccd8;
|
|
156
172
|
--djm-text-2: #a6b2c0;
|
|
157
173
|
--djm-text-3: #8492a1;
|
|
174
|
+
/* 暗色下提示框比页面背景亮一档,白字仍有足够对比 */
|
|
175
|
+
--djm-tooltip-bg: #3a4652;
|
|
158
176
|
/* 暗色下水印改用浅色,保持可辨识 */
|
|
159
177
|
--djm-watermark: rgba(232, 237, 243, 0.12);
|
|
160
178
|
|
|
@@ -211,8 +229,7 @@ body {
|
|
|
211
229
|
body {
|
|
212
230
|
background: var(--djm-bg);
|
|
213
231
|
color: var(--djm-text);
|
|
214
|
-
font-family: -
|
|
215
|
-
"Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
232
|
+
font-family: var(--djm-font-sans);
|
|
216
233
|
font-size: 13px;
|
|
217
234
|
line-height: 1.5;
|
|
218
235
|
-webkit-font-smoothing: antialiased;
|
|
@@ -293,7 +310,7 @@ a {
|
|
|
293
310
|
}
|
|
294
311
|
|
|
295
312
|
.djm-mono {
|
|
296
|
-
font-family:
|
|
313
|
+
font-family: var(--djm-font-mono);
|
|
297
314
|
font-size: 11.5px;
|
|
298
315
|
font-variant-numeric: tabular-nums;
|
|
299
316
|
}
|
|
@@ -2120,7 +2137,8 @@ button.djm-breadcrumb-text {
|
|
|
2120
2137
|
height: 16px;
|
|
2121
2138
|
padding: 0 4px;
|
|
2122
2139
|
border-radius: 8px;
|
|
2123
|
-
|
|
2140
|
+
/* 红点底色用实色档,暗色主题下白字才够清楚 */
|
|
2141
|
+
background: var(--djm-red-strong);
|
|
2124
2142
|
color: var(--djm-text-inverse);
|
|
2125
2143
|
font-size: 10px;
|
|
2126
2144
|
font-style: normal;
|
|
@@ -3242,12 +3260,19 @@ button.djm-breadcrumb-text {
|
|
|
3242
3260
|
|
|
3243
3261
|
/* DJM UI · 加载中 */
|
|
3244
3262
|
|
|
3263
|
+
.djm-spin {
|
|
3264
|
+
display: inline-flex;
|
|
3265
|
+
align-items: center;
|
|
3266
|
+
color: var(--djm-brand-600);
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
/* 包裹模式:内容上方盖一层遮罩 */
|
|
3245
3270
|
.djm-spin-wrap {
|
|
3246
3271
|
position: relative;
|
|
3272
|
+
display: block;
|
|
3247
3273
|
min-height: 60px;
|
|
3248
3274
|
}
|
|
3249
3275
|
|
|
3250
|
-
/* 遮罩铺满被包裹内容,圆角跟随容器 */
|
|
3251
3276
|
.djm-spin-mask {
|
|
3252
3277
|
position: absolute;
|
|
3253
3278
|
inset: 0;
|
|
@@ -3259,13 +3284,35 @@ button.djm-breadcrumb-text {
|
|
|
3259
3284
|
gap: 8px;
|
|
3260
3285
|
border-radius: inherit;
|
|
3261
3286
|
background: var(--djm-loading-mask);
|
|
3262
|
-
backdrop-filter: blur(
|
|
3287
|
+
-webkit-backdrop-filter: blur(2px);
|
|
3288
|
+
backdrop-filter: blur(2px);
|
|
3289
|
+
}
|
|
3290
|
+
|
|
3291
|
+
/* 内联模式:指示器与文字并排,不铺底 */
|
|
3292
|
+
.djm-spin-inline .djm-spin-mask {
|
|
3293
|
+
position: static;
|
|
3294
|
+
flex-direction: row;
|
|
3295
|
+
gap: 8px;
|
|
3296
|
+
border-radius: 0;
|
|
3297
|
+
background: none;
|
|
3298
|
+
-webkit-backdrop-filter: none;
|
|
3299
|
+
backdrop-filter: none;
|
|
3300
|
+
}
|
|
3301
|
+
|
|
3302
|
+
/* 全屏模式:遮罩铺满视口 */
|
|
3303
|
+
.djm-spin-fullscreen {
|
|
3304
|
+
position: fixed;
|
|
3305
|
+
inset: 0;
|
|
3306
|
+
z-index: var(--djm-z-toast);
|
|
3307
|
+
display: flex;
|
|
3263
3308
|
}
|
|
3264
3309
|
|
|
3265
|
-
.djm-spin-
|
|
3310
|
+
.djm-spin-indicator {
|
|
3266
3311
|
display: inline-flex;
|
|
3267
3312
|
align-items: center;
|
|
3268
|
-
|
|
3313
|
+
justify-content: center;
|
|
3314
|
+
gap: 4px;
|
|
3315
|
+
color: inherit;
|
|
3269
3316
|
}
|
|
3270
3317
|
|
|
3271
3318
|
.djm-spin-tip {
|
|
@@ -3273,6 +3320,8 @@ button.djm-breadcrumb-text {
|
|
|
3273
3320
|
color: var(--djm-text-2);
|
|
3274
3321
|
}
|
|
3275
3322
|
|
|
3323
|
+
/* ---------------- 尺寸 ---------------- */
|
|
3324
|
+
|
|
3276
3325
|
.djm-spin-sm .djm-spinner {
|
|
3277
3326
|
width: 11px;
|
|
3278
3327
|
height: 11px;
|
|
@@ -3285,6 +3334,127 @@ button.djm-breadcrumb-text {
|
|
|
3285
3334
|
border-width: 2.5px;
|
|
3286
3335
|
}
|
|
3287
3336
|
|
|
3337
|
+
/* ---------------- 形态 ---------------- */
|
|
3338
|
+
|
|
3339
|
+
/* 环形:颜色跟随 color 属性 */
|
|
3340
|
+
.djm-spin-ring .djm-spinner {
|
|
3341
|
+
border-top-color: currentColor;
|
|
3342
|
+
}
|
|
3343
|
+
|
|
3344
|
+
/* 点状:三点依次弹起 */
|
|
3345
|
+
.djm-spin-dots i {
|
|
3346
|
+
width: 6px;
|
|
3347
|
+
height: 6px;
|
|
3348
|
+
border-radius: 50%;
|
|
3349
|
+
background: currentColor;
|
|
3350
|
+
animation: djm-spin-dot 1s ease-in-out infinite;
|
|
3351
|
+
}
|
|
3352
|
+
|
|
3353
|
+
.djm-spin-dots i:nth-child(2) {
|
|
3354
|
+
animation-delay: 0.15s;
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
.djm-spin-dots i:nth-child(3) {
|
|
3358
|
+
animation-delay: 0.3s;
|
|
3359
|
+
}
|
|
3360
|
+
|
|
3361
|
+
.djm-spin-sm .djm-spin-dots i {
|
|
3362
|
+
width: 4px;
|
|
3363
|
+
height: 4px;
|
|
3364
|
+
}
|
|
3365
|
+
|
|
3366
|
+
.djm-spin-lg .djm-spin-dots i {
|
|
3367
|
+
width: 8px;
|
|
3368
|
+
height: 8px;
|
|
3369
|
+
}
|
|
3370
|
+
|
|
3371
|
+
@keyframes djm-spin-dot {
|
|
3372
|
+
0%,
|
|
3373
|
+
80%,
|
|
3374
|
+
100% {
|
|
3375
|
+
transform: scale(0.55);
|
|
3376
|
+
opacity: 0.45;
|
|
3377
|
+
}
|
|
3378
|
+
40% {
|
|
3379
|
+
transform: scale(1);
|
|
3380
|
+
opacity: 1;
|
|
3381
|
+
}
|
|
3382
|
+
}
|
|
3383
|
+
|
|
3384
|
+
/* 柱状:四根竖条错峰伸缩 */
|
|
3385
|
+
.djm-spin-bars i {
|
|
3386
|
+
width: 3px;
|
|
3387
|
+
height: 14px;
|
|
3388
|
+
border-radius: 2px;
|
|
3389
|
+
background: currentColor;
|
|
3390
|
+
animation: djm-spin-bar 1s ease-in-out infinite;
|
|
3391
|
+
}
|
|
3392
|
+
|
|
3393
|
+
.djm-spin-bars i:nth-child(2) {
|
|
3394
|
+
animation-delay: 0.12s;
|
|
3395
|
+
}
|
|
3396
|
+
|
|
3397
|
+
.djm-spin-bars i:nth-child(3) {
|
|
3398
|
+
animation-delay: 0.24s;
|
|
3399
|
+
}
|
|
3400
|
+
|
|
3401
|
+
.djm-spin-bars i:nth-child(4) {
|
|
3402
|
+
animation-delay: 0.36s;
|
|
3403
|
+
}
|
|
3404
|
+
|
|
3405
|
+
.djm-spin-sm .djm-spin-bars i {
|
|
3406
|
+
width: 2.5px;
|
|
3407
|
+
height: 10px;
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
.djm-spin-lg .djm-spin-bars i {
|
|
3411
|
+
width: 4px;
|
|
3412
|
+
height: 18px;
|
|
3413
|
+
}
|
|
3414
|
+
|
|
3415
|
+
@keyframes djm-spin-bar {
|
|
3416
|
+
0%,
|
|
3417
|
+
100% {
|
|
3418
|
+
transform: scaleY(0.45);
|
|
3419
|
+
opacity: 0.5;
|
|
3420
|
+
}
|
|
3421
|
+
50% {
|
|
3422
|
+
transform: scaleY(1);
|
|
3423
|
+
opacity: 1;
|
|
3424
|
+
}
|
|
3425
|
+
}
|
|
3426
|
+
|
|
3427
|
+
/* 脉冲:实心圆呼吸 */
|
|
3428
|
+
.djm-spin-pulse .djm-spin-core {
|
|
3429
|
+
width: 16px;
|
|
3430
|
+
height: 16px;
|
|
3431
|
+
border-radius: 50%;
|
|
3432
|
+
background: currentColor;
|
|
3433
|
+
animation: djm-spin-pulse 1.2s ease-in-out infinite;
|
|
3434
|
+
}
|
|
3435
|
+
|
|
3436
|
+
.djm-spin-sm .djm-spin-pulse .djm-spin-core {
|
|
3437
|
+
width: 12px;
|
|
3438
|
+
height: 12px;
|
|
3439
|
+
}
|
|
3440
|
+
|
|
3441
|
+
.djm-spin-lg .djm-spin-pulse .djm-spin-core {
|
|
3442
|
+
width: 22px;
|
|
3443
|
+
height: 22px;
|
|
3444
|
+
}
|
|
3445
|
+
|
|
3446
|
+
@keyframes djm-spin-pulse {
|
|
3447
|
+
0%,
|
|
3448
|
+
100% {
|
|
3449
|
+
transform: scale(0.65);
|
|
3450
|
+
opacity: 0.45;
|
|
3451
|
+
}
|
|
3452
|
+
50% {
|
|
3453
|
+
transform: scale(1);
|
|
3454
|
+
opacity: 1;
|
|
3455
|
+
}
|
|
3456
|
+
}
|
|
3457
|
+
|
|
3288
3458
|
/* ---- components/popconfirm.css ---- */
|
|
3289
3459
|
|
|
3290
3460
|
/* DJM UI · 气泡确认 */
|
|
@@ -3484,7 +3654,8 @@ button.djm-breadcrumb-text {
|
|
|
3484
3654
|
background: none;
|
|
3485
3655
|
padding: 0;
|
|
3486
3656
|
font-size: 12px;
|
|
3487
|
-
|
|
3657
|
+
/* 品牌深色档:浅色底与暗色底都能过 4.5:1 */
|
|
3658
|
+
color: var(--djm-brand-700);
|
|
3488
3659
|
white-space: nowrap;
|
|
3489
3660
|
}
|
|
3490
3661
|
|
|
@@ -4015,6 +4186,11 @@ input[type="date"] {
|
|
|
4015
4186
|
font-size: 11.5px;
|
|
4016
4187
|
margin-right: 2px;
|
|
4017
4188
|
}
|
|
4189
|
+
|
|
4190
|
+
/* 表格工具栏的操作提示:选中行后自动隐藏 */
|
|
4191
|
+
.djm-toolbar-tip {
|
|
4192
|
+
font-size: 11.5px;
|
|
4193
|
+
}
|
|
4018
4194
|
/* ---------------- 表单 ---------------- */
|
|
4019
4195
|
|
|
4020
4196
|
.djm-form-grid {
|
|
@@ -5955,6 +6131,52 @@ input[type="date"] {
|
|
|
5955
6131
|
background: var(--djm-amber);
|
|
5956
6132
|
}
|
|
5957
6133
|
|
|
6134
|
+
/* 环形进度:SVG 逆时针起点在顶部,进度用 dashoffset 控制 */
|
|
6135
|
+
.djm-progress-circle {
|
|
6136
|
+
position: relative;
|
|
6137
|
+
display: inline-flex;
|
|
6138
|
+
align-items: center;
|
|
6139
|
+
justify-content: center;
|
|
6140
|
+
}
|
|
6141
|
+
|
|
6142
|
+
.djm-progress-circle svg {
|
|
6143
|
+
width: 100%;
|
|
6144
|
+
height: 100%;
|
|
6145
|
+
transform: rotate(-90deg);
|
|
6146
|
+
}
|
|
6147
|
+
|
|
6148
|
+
.djm-progress-circle-track {
|
|
6149
|
+
stroke: var(--djm-border);
|
|
6150
|
+
}
|
|
6151
|
+
|
|
6152
|
+
.djm-progress-circle-bar {
|
|
6153
|
+
stroke: var(--djm-brand-600);
|
|
6154
|
+
transition: stroke-dashoffset 0.3s;
|
|
6155
|
+
}
|
|
6156
|
+
|
|
6157
|
+
.djm-progress-circle.djm-is-success .djm-progress-circle-bar {
|
|
6158
|
+
stroke: var(--djm-green-strong);
|
|
6159
|
+
}
|
|
6160
|
+
|
|
6161
|
+
.djm-progress-circle.djm-is-error .djm-progress-circle-bar {
|
|
6162
|
+
stroke: var(--djm-red-strong);
|
|
6163
|
+
}
|
|
6164
|
+
|
|
6165
|
+
.djm-progress-circle.djm-is-warning .djm-progress-circle-bar {
|
|
6166
|
+
stroke: var(--djm-amber);
|
|
6167
|
+
}
|
|
6168
|
+
|
|
6169
|
+
.djm-progress-circle-label {
|
|
6170
|
+
position: absolute;
|
|
6171
|
+
inset: 0;
|
|
6172
|
+
display: flex;
|
|
6173
|
+
align-items: center;
|
|
6174
|
+
justify-content: center;
|
|
6175
|
+
color: var(--djm-text);
|
|
6176
|
+
font-weight: 600;
|
|
6177
|
+
font-variant-numeric: tabular-nums;
|
|
6178
|
+
}
|
|
6179
|
+
|
|
5958
6180
|
/* 骨架屏组件:头像 + 正文的行结构 */
|
|
5959
6181
|
.djm-skeleton-block {
|
|
5960
6182
|
display: flex;
|
|
@@ -6704,6 +6926,8 @@ input[type="date"] {
|
|
|
6704
6926
|
/* ---------------- 富文本编辑器 ---------------- */
|
|
6705
6927
|
|
|
6706
6928
|
.djm-rich-editor {
|
|
6929
|
+
display: flex;
|
|
6930
|
+
flex-direction: column;
|
|
6707
6931
|
border: 1px solid var(--djm-border-strong);
|
|
6708
6932
|
border-radius: 4px;
|
|
6709
6933
|
overflow: hidden;
|
|
@@ -6715,11 +6939,26 @@ input[type="date"] {
|
|
|
6715
6939
|
box-shadow: var(--djm-ring);
|
|
6716
6940
|
}
|
|
6717
6941
|
|
|
6942
|
+
/* 全屏:铺满视口,内容区自己滚动 */
|
|
6943
|
+
.djm-rich-editor.djm-is-fullscreen {
|
|
6944
|
+
position: fixed;
|
|
6945
|
+
inset: 0;
|
|
6946
|
+
z-index: 1200;
|
|
6947
|
+
border: 0;
|
|
6948
|
+
border-radius: 0;
|
|
6949
|
+
}
|
|
6950
|
+
|
|
6951
|
+
.djm-rich-editor.djm-is-fullscreen .djm-rich-editor-content,
|
|
6952
|
+
.djm-rich-editor.djm-is-fullscreen .djm-rich-editor-source {
|
|
6953
|
+
flex: 1;
|
|
6954
|
+
max-height: none;
|
|
6955
|
+
}
|
|
6956
|
+
|
|
6718
6957
|
.djm-rich-editor-toolbar {
|
|
6719
6958
|
display: flex;
|
|
6720
6959
|
align-items: center;
|
|
6721
6960
|
flex-wrap: wrap;
|
|
6722
|
-
gap:
|
|
6961
|
+
gap: 2px;
|
|
6723
6962
|
padding: 5px 6px;
|
|
6724
6963
|
border-bottom: 1px solid var(--djm-border);
|
|
6725
6964
|
background: var(--djm-surface-2);
|
|
@@ -6727,9 +6966,9 @@ input[type="date"] {
|
|
|
6727
6966
|
|
|
6728
6967
|
.djm-rich-editor-group {
|
|
6729
6968
|
display: flex;
|
|
6730
|
-
gap:
|
|
6731
|
-
padding-right:
|
|
6732
|
-
margin-right:
|
|
6969
|
+
gap: 1px;
|
|
6970
|
+
padding-right: 4px;
|
|
6971
|
+
margin-right: 2px;
|
|
6733
6972
|
border-right: 1px solid var(--djm-border);
|
|
6734
6973
|
}
|
|
6735
6974
|
|
|
@@ -6737,10 +6976,92 @@ input[type="date"] {
|
|
|
6737
6976
|
border-right: 0;
|
|
6738
6977
|
}
|
|
6739
6978
|
|
|
6979
|
+
/* 段落格式 / 字号下拉 */
|
|
6980
|
+
.djm-rich-editor-select {
|
|
6981
|
+
height: 26px;
|
|
6982
|
+
padding: 0 2px;
|
|
6983
|
+
border: 1px solid var(--djm-border);
|
|
6984
|
+
border-radius: 3px;
|
|
6985
|
+
background: var(--djm-surface);
|
|
6986
|
+
color: var(--djm-text-2);
|
|
6987
|
+
font: inherit;
|
|
6988
|
+
font-size: 11.5px;
|
|
6989
|
+
cursor: pointer;
|
|
6990
|
+
}
|
|
6991
|
+
|
|
6992
|
+
.djm-rich-editor-select-size {
|
|
6993
|
+
width: 64px;
|
|
6994
|
+
}
|
|
6995
|
+
|
|
6996
|
+
.djm-rich-editor-select:focus-visible {
|
|
6997
|
+
outline: 2px solid var(--djm-brand-500);
|
|
6998
|
+
outline-offset: -1px;
|
|
6999
|
+
}
|
|
7000
|
+
|
|
7001
|
+
.djm-rich-editor-select:disabled {
|
|
7002
|
+
opacity: 0.5;
|
|
7003
|
+
cursor: not-allowed;
|
|
7004
|
+
}
|
|
7005
|
+
|
|
7006
|
+
/* 颜色按钮:字母底部带当前色,背景色按钮直接把颜色铺在字母上 */
|
|
7007
|
+
.djm-rich-editor-color {
|
|
7008
|
+
position: relative;
|
|
7009
|
+
}
|
|
7010
|
+
|
|
7011
|
+
.djm-rich-editor-letter {
|
|
7012
|
+
display: inline-block;
|
|
7013
|
+
padding-bottom: 1px;
|
|
7014
|
+
border-bottom: 2px solid var(--djm-text);
|
|
7015
|
+
font-size: 12px;
|
|
7016
|
+
font-weight: 600;
|
|
7017
|
+
line-height: 1;
|
|
7018
|
+
}
|
|
7019
|
+
|
|
7020
|
+
.djm-rich-editor-letter-bg {
|
|
7021
|
+
padding: 0 3px;
|
|
7022
|
+
border-bottom: 0;
|
|
7023
|
+
border-radius: 2px;
|
|
7024
|
+
color: var(--djm-text);
|
|
7025
|
+
}
|
|
7026
|
+
|
|
7027
|
+
.djm-rich-editor-panel {
|
|
7028
|
+
position: absolute;
|
|
7029
|
+
top: calc(100% + 4px);
|
|
7030
|
+
left: 0;
|
|
7031
|
+
z-index: 5;
|
|
7032
|
+
display: grid;
|
|
7033
|
+
grid-template-columns: repeat(4, 20px);
|
|
7034
|
+
gap: 4px;
|
|
7035
|
+
padding: 6px;
|
|
7036
|
+
border: 1px solid var(--djm-border);
|
|
7037
|
+
border-radius: 6px;
|
|
7038
|
+
background: var(--djm-surface);
|
|
7039
|
+
box-shadow: var(--djm-shadow-md);
|
|
7040
|
+
}
|
|
7041
|
+
|
|
7042
|
+
.djm-rich-editor-swatch {
|
|
7043
|
+
width: 20px;
|
|
7044
|
+
height: 20px;
|
|
7045
|
+
padding: 0;
|
|
7046
|
+
border: 1px solid var(--djm-border);
|
|
7047
|
+
border-radius: 4px;
|
|
7048
|
+
cursor: pointer;
|
|
7049
|
+
}
|
|
7050
|
+
|
|
7051
|
+
.djm-rich-editor-swatch:hover {
|
|
7052
|
+
border-color: var(--djm-brand-500);
|
|
7053
|
+
}
|
|
7054
|
+
|
|
7055
|
+
/* 素材库按钮:媒体选择器默认是块级 span,塞进工具栏里要收成行内 */
|
|
7056
|
+
.djm-rich-editor-picker {
|
|
7057
|
+
display: inline-flex;
|
|
7058
|
+
align-items: center;
|
|
7059
|
+
}
|
|
7060
|
+
|
|
6740
7061
|
.djm-rich-editor-btn {
|
|
6741
|
-
min-width:
|
|
7062
|
+
min-width: 24px;
|
|
6742
7063
|
height: 26px;
|
|
6743
|
-
padding: 0
|
|
7064
|
+
padding: 0 4px;
|
|
6744
7065
|
display: inline-flex;
|
|
6745
7066
|
align-items: center;
|
|
6746
7067
|
justify-content: center;
|
|
@@ -6823,42 +7144,142 @@ input[type="date"] {
|
|
|
6823
7144
|
color: var(--djm-text-3);
|
|
6824
7145
|
}
|
|
6825
7146
|
|
|
6826
|
-
.djm-rich-editor-content
|
|
7147
|
+
.djm-rich-editor-content h1,
|
|
7148
|
+
.djm-rich-editor-content h2,
|
|
7149
|
+
.djm-rich-editor-content h3 {
|
|
6827
7150
|
margin: 0 0 8px;
|
|
6828
|
-
|
|
7151
|
+
color: var(--djm-text);
|
|
7152
|
+
line-height: 1.5;
|
|
6829
7153
|
}
|
|
6830
7154
|
|
|
6831
|
-
.djm-rich-editor-content
|
|
6832
|
-
|
|
7155
|
+
.djm-rich-editor-content h1 {
|
|
7156
|
+
font-size: 20px;
|
|
6833
7157
|
}
|
|
6834
7158
|
|
|
6835
|
-
.djm-rich-editor-content
|
|
6836
|
-
|
|
6837
|
-
margin: 0 0 8px;
|
|
6838
|
-
padding-left: 22px;
|
|
7159
|
+
.djm-rich-editor-content h2 {
|
|
7160
|
+
font-size: 16px;
|
|
6839
7161
|
}
|
|
6840
7162
|
|
|
6841
|
-
.djm-rich-editor-content
|
|
6842
|
-
|
|
6843
|
-
text-decoration: underline;
|
|
7163
|
+
.djm-rich-editor-content h3 {
|
|
7164
|
+
font-size: 14px;
|
|
6844
7165
|
}
|
|
6845
7166
|
|
|
6846
|
-
.djm-rich-editor-
|
|
6847
|
-
|
|
6848
|
-
padding:
|
|
6849
|
-
border:
|
|
6850
|
-
|
|
6851
|
-
resize: vertical;
|
|
7167
|
+
.djm-rich-editor-content blockquote {
|
|
7168
|
+
margin: 0 0 8px;
|
|
7169
|
+
padding: 4px 10px;
|
|
7170
|
+
border-left: 3px solid var(--djm-brand-500);
|
|
7171
|
+
background: var(--djm-surface-2);
|
|
6852
7172
|
color: var(--djm-text-2);
|
|
7173
|
+
}
|
|
7174
|
+
|
|
7175
|
+
.djm-rich-editor-content pre {
|
|
7176
|
+
margin: 0 0 8px;
|
|
7177
|
+
padding: 10px 12px;
|
|
7178
|
+
overflow: auto;
|
|
7179
|
+
border-radius: 4px;
|
|
7180
|
+
background: var(--djm-surface-3);
|
|
6853
7181
|
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
6854
7182
|
font-size: 12px;
|
|
6855
7183
|
line-height: 1.7;
|
|
7184
|
+
white-space: pre-wrap;
|
|
7185
|
+
word-break: break-word;
|
|
6856
7186
|
}
|
|
6857
7187
|
|
|
6858
|
-
.djm-editor-
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
7188
|
+
.djm-rich-editor-content code {
|
|
7189
|
+
padding: 1px 4px;
|
|
7190
|
+
border-radius: 3px;
|
|
7191
|
+
background: var(--djm-surface-3);
|
|
7192
|
+
color: var(--djm-brand-700);
|
|
7193
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
7194
|
+
font-size: 12px;
|
|
7195
|
+
}
|
|
7196
|
+
|
|
7197
|
+
.djm-rich-editor-content pre code {
|
|
7198
|
+
padding: 0;
|
|
7199
|
+
background: none;
|
|
7200
|
+
color: inherit;
|
|
7201
|
+
}
|
|
7202
|
+
|
|
7203
|
+
.djm-rich-editor-content hr {
|
|
7204
|
+
margin: 12px 0;
|
|
7205
|
+
border: 0;
|
|
7206
|
+
border-top: 1px solid var(--djm-border);
|
|
7207
|
+
}
|
|
7208
|
+
|
|
7209
|
+
/* 图片:单图、多图统一限宽,避免撑破内容区 */
|
|
7210
|
+
.djm-rich-editor-content img {
|
|
7211
|
+
max-width: 100%;
|
|
7212
|
+
height: auto;
|
|
7213
|
+
border-radius: 4px;
|
|
7214
|
+
vertical-align: bottom;
|
|
7215
|
+
}
|
|
7216
|
+
|
|
7217
|
+
/* 上传插入的图片之间留一点间距,多图并排时不粘在一起 */
|
|
7218
|
+
.djm-rich-editor-img {
|
|
7219
|
+
margin: 2px 4px 2px 0;
|
|
7220
|
+
}
|
|
7221
|
+
|
|
7222
|
+
/* 上传中的占位块,上传完成后被图片替换 */
|
|
7223
|
+
.djm-rich-editor-uploading {
|
|
7224
|
+
display: inline-flex;
|
|
7225
|
+
align-items: center;
|
|
7226
|
+
padding: 4px 10px;
|
|
7227
|
+
border: 1px dashed var(--djm-border-strong);
|
|
7228
|
+
border-radius: 4px;
|
|
7229
|
+
background: var(--djm-surface-2);
|
|
7230
|
+
color: var(--djm-text-3);
|
|
7231
|
+
font-size: 12px;
|
|
7232
|
+
}
|
|
7233
|
+
|
|
7234
|
+
.djm-rich-editor-content p {
|
|
7235
|
+
margin: 0 0 8px;
|
|
7236
|
+
}
|
|
7237
|
+
|
|
7238
|
+
.djm-rich-editor-content ul,
|
|
7239
|
+
.djm-rich-editor-content ol {
|
|
7240
|
+
margin: 0 0 8px;
|
|
7241
|
+
padding-left: 22px;
|
|
7242
|
+
}
|
|
7243
|
+
|
|
7244
|
+
.djm-rich-editor-content a {
|
|
7245
|
+
color: var(--djm-brand-600);
|
|
7246
|
+
text-decoration: underline;
|
|
7247
|
+
}
|
|
7248
|
+
|
|
7249
|
+
.djm-rich-editor-source {
|
|
7250
|
+
width: 100%;
|
|
7251
|
+
padding: 12px 14px;
|
|
7252
|
+
border: 0;
|
|
7253
|
+
outline: none;
|
|
7254
|
+
resize: vertical;
|
|
7255
|
+
color: var(--djm-text-2);
|
|
7256
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
7257
|
+
font-size: 12px;
|
|
7258
|
+
line-height: 1.7;
|
|
7259
|
+
}
|
|
7260
|
+
|
|
7261
|
+
/* 底部状态:上传提示与字数 */
|
|
7262
|
+
.djm-rich-editor-foot {
|
|
7263
|
+
display: flex;
|
|
7264
|
+
align-items: center;
|
|
7265
|
+
justify-content: flex-end;
|
|
7266
|
+
gap: 12px;
|
|
7267
|
+
padding: 4px 12px;
|
|
7268
|
+
border-top: 1px solid var(--djm-border);
|
|
7269
|
+
background: var(--djm-surface-2);
|
|
7270
|
+
color: var(--djm-text-3);
|
|
7271
|
+
font-size: 11px;
|
|
7272
|
+
}
|
|
7273
|
+
|
|
7274
|
+
/* 文件选择框只作为上传入口,不显示 */
|
|
7275
|
+
.djm-rich-editor-file {
|
|
7276
|
+
display: none;
|
|
7277
|
+
}
|
|
7278
|
+
|
|
7279
|
+
.djm-editor-bar {
|
|
7280
|
+
display: flex;
|
|
7281
|
+
align-items: center;
|
|
7282
|
+
justify-content: space-between;
|
|
6862
7283
|
gap: 12px;
|
|
6863
7284
|
flex-wrap: wrap;
|
|
6864
7285
|
margin-top: 12px;
|
|
@@ -7611,7 +8032,7 @@ input[type="date"] {
|
|
|
7611
8032
|
/* 打开在弹窗 / 抽屉里时也要压在遮罩之上 */
|
|
7612
8033
|
z-index: var(--djm-z-popper, 1450);
|
|
7613
8034
|
border: 1px solid var(--djm-border);
|
|
7614
|
-
border-radius: var(--djm-radius
|
|
8035
|
+
border-radius: var(--djm-radius);
|
|
7615
8036
|
background: var(--djm-surface);
|
|
7616
8037
|
box-shadow: var(--djm-shadow-md, 0 6px 20px rgba(0, 0, 0, 0.12));
|
|
7617
8038
|
}
|
|
@@ -8232,7 +8653,7 @@ input[type="date"] {
|
|
|
8232
8653
|
padding: 0 10px;
|
|
8233
8654
|
height: 30px;
|
|
8234
8655
|
border: 1px solid var(--djm-border);
|
|
8235
|
-
border-radius: var(--djm-radius
|
|
8656
|
+
border-radius: var(--djm-radius);
|
|
8236
8657
|
background: var(--djm-surface);
|
|
8237
8658
|
color: var(--djm-text-3);
|
|
8238
8659
|
}
|
|
@@ -8265,14 +8686,14 @@ input[type="date"] {
|
|
|
8265
8686
|
|
|
8266
8687
|
.djm-media-item {
|
|
8267
8688
|
border: 1px solid var(--djm-border);
|
|
8268
|
-
border-radius: var(--djm-radius
|
|
8689
|
+
border-radius: var(--djm-radius);
|
|
8269
8690
|
overflow: hidden;
|
|
8270
8691
|
cursor: pointer;
|
|
8271
8692
|
background: var(--djm-surface);
|
|
8272
8693
|
}
|
|
8273
8694
|
|
|
8274
8695
|
.djm-media-item:hover {
|
|
8275
|
-
border-color: var(--djm-brand-
|
|
8696
|
+
border-color: var(--djm-brand-500);
|
|
8276
8697
|
}
|
|
8277
8698
|
|
|
8278
8699
|
.djm-media-item:focus-visible {
|
|
@@ -8356,6 +8777,526 @@ input[type="date"] {
|
|
|
8356
8777
|
font-style: normal;
|
|
8357
8778
|
}
|
|
8358
8779
|
|
|
8780
|
+
/* ---- components/content.css ---- */
|
|
8781
|
+
|
|
8782
|
+
/* DJM UI · 内容管理:文件管理器 / 图片相册 */
|
|
8783
|
+
|
|
8784
|
+
/* ---------------- 文件管理器 ---------------- */
|
|
8785
|
+
|
|
8786
|
+
.djm-fm {
|
|
8787
|
+
display: grid;
|
|
8788
|
+
grid-template-columns: 208px minmax(0, 1fr);
|
|
8789
|
+
border: 1px solid var(--djm-border);
|
|
8790
|
+
border-radius: var(--djm-radius-lg);
|
|
8791
|
+
overflow: hidden;
|
|
8792
|
+
background: var(--djm-surface);
|
|
8793
|
+
}
|
|
8794
|
+
|
|
8795
|
+
.djm-fm-side {
|
|
8796
|
+
display: flex;
|
|
8797
|
+
flex-direction: column;
|
|
8798
|
+
gap: 2px;
|
|
8799
|
+
padding: 10px;
|
|
8800
|
+
border-right: 1px solid var(--djm-border);
|
|
8801
|
+
background: var(--djm-surface-2);
|
|
8802
|
+
}
|
|
8803
|
+
|
|
8804
|
+
.djm-fm-side-title {
|
|
8805
|
+
padding: 4px 8px 8px;
|
|
8806
|
+
color: var(--djm-text-3);
|
|
8807
|
+
font-size: 10.5px;
|
|
8808
|
+
letter-spacing: 0.5px;
|
|
8809
|
+
}
|
|
8810
|
+
|
|
8811
|
+
.djm-fm-folder {
|
|
8812
|
+
display: flex;
|
|
8813
|
+
align-items: center;
|
|
8814
|
+
gap: 8px;
|
|
8815
|
+
height: 32px;
|
|
8816
|
+
padding: 0 8px;
|
|
8817
|
+
border: 0;
|
|
8818
|
+
border-radius: 4px;
|
|
8819
|
+
background: none;
|
|
8820
|
+
color: var(--djm-text-2);
|
|
8821
|
+
font-size: 12.5px;
|
|
8822
|
+
text-align: left;
|
|
8823
|
+
cursor: pointer;
|
|
8824
|
+
}
|
|
8825
|
+
|
|
8826
|
+
.djm-fm-folder:hover {
|
|
8827
|
+
background: var(--djm-brand-soft);
|
|
8828
|
+
color: var(--djm-brand-700);
|
|
8829
|
+
}
|
|
8830
|
+
|
|
8831
|
+
.djm-fm-folder.djm-is-active {
|
|
8832
|
+
background: var(--djm-brand-50);
|
|
8833
|
+
color: var(--djm-brand-700);
|
|
8834
|
+
font-weight: 600;
|
|
8835
|
+
}
|
|
8836
|
+
|
|
8837
|
+
.djm-fm-folder-count {
|
|
8838
|
+
margin-left: auto;
|
|
8839
|
+
color: var(--djm-text-3);
|
|
8840
|
+
font-size: 10.5px;
|
|
8841
|
+
}
|
|
8842
|
+
|
|
8843
|
+
.djm-fm-storage {
|
|
8844
|
+
margin-top: auto;
|
|
8845
|
+
padding: 12px 8px 4px;
|
|
8846
|
+
border-top: 1px solid var(--djm-border);
|
|
8847
|
+
color: var(--djm-text-3);
|
|
8848
|
+
font-size: 11px;
|
|
8849
|
+
}
|
|
8850
|
+
|
|
8851
|
+
.djm-fm-storage-head {
|
|
8852
|
+
display: flex;
|
|
8853
|
+
justify-content: space-between;
|
|
8854
|
+
gap: 6px;
|
|
8855
|
+
margin-bottom: 6px;
|
|
8856
|
+
color: var(--djm-text-2);
|
|
8857
|
+
}
|
|
8858
|
+
|
|
8859
|
+
.djm-fm-bar {
|
|
8860
|
+
height: 5px;
|
|
8861
|
+
overflow: hidden;
|
|
8862
|
+
border-radius: 3px;
|
|
8863
|
+
background: var(--djm-surface-3);
|
|
8864
|
+
}
|
|
8865
|
+
|
|
8866
|
+
.djm-fm-bar i {
|
|
8867
|
+
display: block;
|
|
8868
|
+
height: 100%;
|
|
8869
|
+
background: linear-gradient(90deg, var(--djm-brand-500), var(--djm-brand-600));
|
|
8870
|
+
}
|
|
8871
|
+
|
|
8872
|
+
.djm-fm-storage p {
|
|
8873
|
+
margin: 8px 0 0;
|
|
8874
|
+
line-height: 1.6;
|
|
8875
|
+
}
|
|
8876
|
+
|
|
8877
|
+
.djm-fm-main {
|
|
8878
|
+
display: flex;
|
|
8879
|
+
flex-direction: column;
|
|
8880
|
+
min-width: 0;
|
|
8881
|
+
}
|
|
8882
|
+
|
|
8883
|
+
.djm-fm-path {
|
|
8884
|
+
display: flex;
|
|
8885
|
+
align-items: center;
|
|
8886
|
+
justify-content: space-between;
|
|
8887
|
+
gap: 10px;
|
|
8888
|
+
padding: 8px 14px;
|
|
8889
|
+
border-bottom: 1px solid var(--djm-border);
|
|
8890
|
+
background: var(--djm-surface-2);
|
|
8891
|
+
}
|
|
8892
|
+
|
|
8893
|
+
.djm-fm-crumb {
|
|
8894
|
+
display: flex;
|
|
8895
|
+
align-items: center;
|
|
8896
|
+
gap: 6px;
|
|
8897
|
+
color: var(--djm-text);
|
|
8898
|
+
font-size: 12.5px;
|
|
8899
|
+
font-weight: 600;
|
|
8900
|
+
}
|
|
8901
|
+
|
|
8902
|
+
.djm-fm-crumb em {
|
|
8903
|
+
color: var(--djm-text-3);
|
|
8904
|
+
font-size: 11px;
|
|
8905
|
+
font-style: normal;
|
|
8906
|
+
font-weight: 400;
|
|
8907
|
+
}
|
|
8908
|
+
|
|
8909
|
+
.djm-fm-search {
|
|
8910
|
+
display: flex;
|
|
8911
|
+
align-items: center;
|
|
8912
|
+
gap: 6px;
|
|
8913
|
+
height: 28px;
|
|
8914
|
+
padding: 0 8px;
|
|
8915
|
+
border: 1px solid var(--djm-border);
|
|
8916
|
+
border-radius: 4px;
|
|
8917
|
+
background: var(--djm-surface);
|
|
8918
|
+
color: var(--djm-text-3);
|
|
8919
|
+
}
|
|
8920
|
+
|
|
8921
|
+
.djm-fm-search:focus-within {
|
|
8922
|
+
border-color: var(--djm-brand-500);
|
|
8923
|
+
}
|
|
8924
|
+
|
|
8925
|
+
.djm-fm-search input {
|
|
8926
|
+
width: 160px;
|
|
8927
|
+
border: 0;
|
|
8928
|
+
outline: none;
|
|
8929
|
+
background: none;
|
|
8930
|
+
color: var(--djm-text-2);
|
|
8931
|
+
font-size: 12px;
|
|
8932
|
+
}
|
|
8933
|
+
|
|
8934
|
+
.djm-fm-all {
|
|
8935
|
+
display: inline-flex;
|
|
8936
|
+
align-items: center;
|
|
8937
|
+
gap: 6px;
|
|
8938
|
+
padding-right: 2px;
|
|
8939
|
+
color: var(--djm-text-2);
|
|
8940
|
+
font-size: 12px;
|
|
8941
|
+
cursor: pointer;
|
|
8942
|
+
}
|
|
8943
|
+
|
|
8944
|
+
.djm-fm-grid {
|
|
8945
|
+
display: grid;
|
|
8946
|
+
grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
|
|
8947
|
+
gap: 12px;
|
|
8948
|
+
padding: 14px;
|
|
8949
|
+
}
|
|
8950
|
+
|
|
8951
|
+
.djm-fm-card {
|
|
8952
|
+
position: relative;
|
|
8953
|
+
display: flex;
|
|
8954
|
+
flex-direction: column;
|
|
8955
|
+
gap: 4px;
|
|
8956
|
+
padding: 8px;
|
|
8957
|
+
border: 1px solid var(--djm-border);
|
|
8958
|
+
border-radius: 6px;
|
|
8959
|
+
background: var(--djm-surface);
|
|
8960
|
+
}
|
|
8961
|
+
|
|
8962
|
+
.djm-fm-card.djm-is-selected {
|
|
8963
|
+
border-color: var(--djm-brand-500);
|
|
8964
|
+
box-shadow: 0 0 0 2px var(--djm-brand-soft);
|
|
8965
|
+
}
|
|
8966
|
+
|
|
8967
|
+
.djm-fm-check {
|
|
8968
|
+
position: absolute;
|
|
8969
|
+
top: 8px;
|
|
8970
|
+
left: 8px;
|
|
8971
|
+
z-index: 1;
|
|
8972
|
+
padding: 2px;
|
|
8973
|
+
border-radius: 4px;
|
|
8974
|
+
background: var(--djm-surface);
|
|
8975
|
+
}
|
|
8976
|
+
|
|
8977
|
+
.djm-fm-thumb {
|
|
8978
|
+
display: flex;
|
|
8979
|
+
align-items: center;
|
|
8980
|
+
justify-content: center;
|
|
8981
|
+
height: 96px;
|
|
8982
|
+
padding: 0;
|
|
8983
|
+
overflow: hidden;
|
|
8984
|
+
border: 0;
|
|
8985
|
+
border-radius: 4px;
|
|
8986
|
+
background: var(--djm-surface-3);
|
|
8987
|
+
cursor: zoom-in;
|
|
8988
|
+
}
|
|
8989
|
+
|
|
8990
|
+
.djm-fm-thumb img {
|
|
8991
|
+
width: 100%;
|
|
8992
|
+
height: 100%;
|
|
8993
|
+
object-fit: cover;
|
|
8994
|
+
}
|
|
8995
|
+
|
|
8996
|
+
.djm-fm-doc {
|
|
8997
|
+
color: var(--djm-text-3);
|
|
8998
|
+
font-size: 11px;
|
|
8999
|
+
font-weight: 600;
|
|
9000
|
+
letter-spacing: 0.4px;
|
|
9001
|
+
}
|
|
9002
|
+
|
|
9003
|
+
.djm-fm-name {
|
|
9004
|
+
margin-top: 2px;
|
|
9005
|
+
overflow: hidden;
|
|
9006
|
+
color: var(--djm-text);
|
|
9007
|
+
font-size: 12.5px;
|
|
9008
|
+
font-weight: 500;
|
|
9009
|
+
text-overflow: ellipsis;
|
|
9010
|
+
white-space: nowrap;
|
|
9011
|
+
}
|
|
9012
|
+
|
|
9013
|
+
.djm-fm-meta {
|
|
9014
|
+
color: var(--djm-text-3);
|
|
9015
|
+
font-size: 11px;
|
|
9016
|
+
}
|
|
9017
|
+
|
|
9018
|
+
.djm-fm-empty {
|
|
9019
|
+
margin: 40px 14px;
|
|
9020
|
+
}
|
|
9021
|
+
|
|
9022
|
+
.djm-fm-loading {
|
|
9023
|
+
display: flex;
|
|
9024
|
+
align-items: center;
|
|
9025
|
+
gap: 8px;
|
|
9026
|
+
padding: 10px 14px;
|
|
9027
|
+
color: var(--djm-text-3);
|
|
9028
|
+
font-size: 12px;
|
|
9029
|
+
}
|
|
9030
|
+
|
|
9031
|
+
/* 上传用的隐藏输入 */
|
|
9032
|
+
.djm-fm-file {
|
|
9033
|
+
display: none;
|
|
9034
|
+
}
|
|
9035
|
+
|
|
9036
|
+
.djm-fm-preview-img {
|
|
9037
|
+
display: block;
|
|
9038
|
+
width: 100%;
|
|
9039
|
+
max-height: 420px;
|
|
9040
|
+
border-radius: 6px;
|
|
9041
|
+
background: var(--djm-surface-3);
|
|
9042
|
+
object-fit: contain;
|
|
9043
|
+
}
|
|
9044
|
+
|
|
9045
|
+
.djm-fm-preview-empty {
|
|
9046
|
+
display: flex;
|
|
9047
|
+
flex-direction: column;
|
|
9048
|
+
align-items: center;
|
|
9049
|
+
gap: 8px;
|
|
9050
|
+
padding: 40px;
|
|
9051
|
+
border-radius: 6px;
|
|
9052
|
+
background: var(--djm-surface-2);
|
|
9053
|
+
color: var(--djm-text-3);
|
|
9054
|
+
font-size: 12px;
|
|
9055
|
+
}
|
|
9056
|
+
|
|
9057
|
+
.djm-fm-preview-meta {
|
|
9058
|
+
display: grid;
|
|
9059
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
9060
|
+
gap: 10px;
|
|
9061
|
+
margin-top: 12px;
|
|
9062
|
+
}
|
|
9063
|
+
|
|
9064
|
+
.djm-fm-preview-meta div {
|
|
9065
|
+
display: flex;
|
|
9066
|
+
flex-direction: column;
|
|
9067
|
+
gap: 2px;
|
|
9068
|
+
color: var(--djm-text-3);
|
|
9069
|
+
font-size: 11.5px;
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
.djm-fm-preview-meta b {
|
|
9073
|
+
color: var(--djm-text-2);
|
|
9074
|
+
font-size: 12px;
|
|
9075
|
+
font-weight: 500;
|
|
9076
|
+
}
|
|
9077
|
+
|
|
9078
|
+
/* ---------------- 图片相册 ---------------- */
|
|
9079
|
+
|
|
9080
|
+
.djm-album-head {
|
|
9081
|
+
display: flex;
|
|
9082
|
+
align-items: center;
|
|
9083
|
+
justify-content: space-between;
|
|
9084
|
+
gap: 12px;
|
|
9085
|
+
flex-wrap: wrap;
|
|
9086
|
+
padding: 10px 14px;
|
|
9087
|
+
border-bottom: 1px solid var(--djm-border);
|
|
9088
|
+
background: var(--djm-surface-2);
|
|
9089
|
+
}
|
|
9090
|
+
|
|
9091
|
+
.djm-album-tabs {
|
|
9092
|
+
display: flex;
|
|
9093
|
+
flex-wrap: wrap;
|
|
9094
|
+
gap: 6px;
|
|
9095
|
+
}
|
|
9096
|
+
|
|
9097
|
+
.djm-album-tab {
|
|
9098
|
+
display: inline-flex;
|
|
9099
|
+
align-items: center;
|
|
9100
|
+
gap: 6px;
|
|
9101
|
+
height: 28px;
|
|
9102
|
+
padding: 0 10px;
|
|
9103
|
+
border: 1px solid var(--djm-border);
|
|
9104
|
+
border-radius: 14px;
|
|
9105
|
+
background: var(--djm-surface);
|
|
9106
|
+
color: var(--djm-text-2);
|
|
9107
|
+
font-size: 12px;
|
|
9108
|
+
cursor: pointer;
|
|
9109
|
+
}
|
|
9110
|
+
|
|
9111
|
+
.djm-album-tab span {
|
|
9112
|
+
color: var(--djm-text-3);
|
|
9113
|
+
font-size: 10.5px;
|
|
9114
|
+
}
|
|
9115
|
+
|
|
9116
|
+
.djm-album-tab:hover {
|
|
9117
|
+
border-color: var(--djm-brand-500);
|
|
9118
|
+
color: var(--djm-brand-700);
|
|
9119
|
+
}
|
|
9120
|
+
|
|
9121
|
+
.djm-album-tab.djm-is-active {
|
|
9122
|
+
border-color: var(--djm-brand-500);
|
|
9123
|
+
background: var(--djm-brand-soft);
|
|
9124
|
+
color: var(--djm-brand-700);
|
|
9125
|
+
font-weight: 600;
|
|
9126
|
+
}
|
|
9127
|
+
|
|
9128
|
+
.djm-album-tab.djm-is-active span {
|
|
9129
|
+
color: var(--djm-brand-700);
|
|
9130
|
+
}
|
|
9131
|
+
|
|
9132
|
+
.djm-album-actions {
|
|
9133
|
+
display: flex;
|
|
9134
|
+
align-items: center;
|
|
9135
|
+
gap: 10px;
|
|
9136
|
+
}
|
|
9137
|
+
|
|
9138
|
+
.djm-album-grid {
|
|
9139
|
+
display: grid;
|
|
9140
|
+
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
9141
|
+
gap: 14px;
|
|
9142
|
+
padding: 14px;
|
|
9143
|
+
}
|
|
9144
|
+
|
|
9145
|
+
.djm-album-card {
|
|
9146
|
+
position: relative;
|
|
9147
|
+
margin: 0;
|
|
9148
|
+
overflow: hidden;
|
|
9149
|
+
border: 1px solid var(--djm-border);
|
|
9150
|
+
border-radius: 6px;
|
|
9151
|
+
background: var(--djm-surface);
|
|
9152
|
+
}
|
|
9153
|
+
|
|
9154
|
+
.djm-album-card.djm-is-selected {
|
|
9155
|
+
border-color: var(--djm-brand-500);
|
|
9156
|
+
box-shadow: 0 0 0 2px var(--djm-brand-soft);
|
|
9157
|
+
}
|
|
9158
|
+
|
|
9159
|
+
.djm-album-thumb {
|
|
9160
|
+
position: relative;
|
|
9161
|
+
display: block;
|
|
9162
|
+
width: 100%;
|
|
9163
|
+
aspect-ratio: 4 / 3;
|
|
9164
|
+
padding: 0;
|
|
9165
|
+
overflow: hidden;
|
|
9166
|
+
border: 0;
|
|
9167
|
+
background: var(--djm-surface-3);
|
|
9168
|
+
cursor: zoom-in;
|
|
9169
|
+
}
|
|
9170
|
+
|
|
9171
|
+
.djm-album-thumb img {
|
|
9172
|
+
width: 100%;
|
|
9173
|
+
height: 100%;
|
|
9174
|
+
object-fit: cover;
|
|
9175
|
+
transition: transform 0.2s ease;
|
|
9176
|
+
}
|
|
9177
|
+
|
|
9178
|
+
.djm-album-thumb:hover img {
|
|
9179
|
+
transform: scale(1.04);
|
|
9180
|
+
}
|
|
9181
|
+
|
|
9182
|
+
.djm-album-zoom {
|
|
9183
|
+
position: absolute;
|
|
9184
|
+
left: 50%;
|
|
9185
|
+
top: 50%;
|
|
9186
|
+
display: inline-flex;
|
|
9187
|
+
align-items: center;
|
|
9188
|
+
gap: 4px;
|
|
9189
|
+
padding: 4px 8px;
|
|
9190
|
+
border-radius: 12px;
|
|
9191
|
+
background: rgba(15, 23, 32, 0.62);
|
|
9192
|
+
color: #fff;
|
|
9193
|
+
font-size: 11px;
|
|
9194
|
+
opacity: 0;
|
|
9195
|
+
pointer-events: none;
|
|
9196
|
+
transform: translate(-50%, -50%);
|
|
9197
|
+
transition: opacity 0.2s ease;
|
|
9198
|
+
}
|
|
9199
|
+
|
|
9200
|
+
.djm-album-thumb:hover .djm-album-zoom {
|
|
9201
|
+
opacity: 1;
|
|
9202
|
+
}
|
|
9203
|
+
|
|
9204
|
+
.djm-album-check {
|
|
9205
|
+
position: absolute;
|
|
9206
|
+
top: 8px;
|
|
9207
|
+
left: 8px;
|
|
9208
|
+
padding: 3px;
|
|
9209
|
+
border-radius: 4px;
|
|
9210
|
+
background: rgba(255, 255, 255, 0.9);
|
|
9211
|
+
}
|
|
9212
|
+
|
|
9213
|
+
.djm-album-card figcaption {
|
|
9214
|
+
display: flex;
|
|
9215
|
+
flex-direction: column;
|
|
9216
|
+
gap: 2px;
|
|
9217
|
+
padding: 8px 10px 10px;
|
|
9218
|
+
}
|
|
9219
|
+
|
|
9220
|
+
.djm-album-card figcaption strong {
|
|
9221
|
+
overflow: hidden;
|
|
9222
|
+
font-size: 12.5px;
|
|
9223
|
+
font-weight: 500;
|
|
9224
|
+
text-overflow: ellipsis;
|
|
9225
|
+
white-space: nowrap;
|
|
9226
|
+
}
|
|
9227
|
+
|
|
9228
|
+
.djm-album-card figcaption span {
|
|
9229
|
+
color: var(--djm-text-3);
|
|
9230
|
+
font-size: 11px;
|
|
9231
|
+
}
|
|
9232
|
+
|
|
9233
|
+
.djm-album-empty {
|
|
9234
|
+
padding: 60px 20px;
|
|
9235
|
+
}
|
|
9236
|
+
|
|
9237
|
+
.djm-album-viewer img {
|
|
9238
|
+
display: block;
|
|
9239
|
+
width: 100%;
|
|
9240
|
+
max-height: 520px;
|
|
9241
|
+
border-radius: 6px;
|
|
9242
|
+
background: var(--djm-surface-3);
|
|
9243
|
+
object-fit: contain;
|
|
9244
|
+
}
|
|
9245
|
+
|
|
9246
|
+
.djm-album-viewer-meta {
|
|
9247
|
+
display: flex;
|
|
9248
|
+
justify-content: space-between;
|
|
9249
|
+
gap: 10px;
|
|
9250
|
+
margin-top: 8px;
|
|
9251
|
+
color: var(--djm-text-3);
|
|
9252
|
+
font-size: 11.5px;
|
|
9253
|
+
}
|
|
9254
|
+
|
|
9255
|
+
@media (max-width: 860px) {
|
|
9256
|
+
.djm-fm {
|
|
9257
|
+
grid-template-columns: 1fr;
|
|
9258
|
+
}
|
|
9259
|
+
|
|
9260
|
+
.djm-fm-side {
|
|
9261
|
+
border-right: 0;
|
|
9262
|
+
border-bottom: 1px solid var(--djm-border);
|
|
9263
|
+
}
|
|
9264
|
+
|
|
9265
|
+
.djm-fm-folder {
|
|
9266
|
+
height: 30px;
|
|
9267
|
+
}
|
|
9268
|
+
|
|
9269
|
+
/* 窄屏:路径与搜索各占一行,避免文字被挤成两行 */
|
|
9270
|
+
.djm-fm-path {
|
|
9271
|
+
flex-wrap: wrap;
|
|
9272
|
+
}
|
|
9273
|
+
|
|
9274
|
+
.djm-fm-search {
|
|
9275
|
+
flex: 1 1 100%;
|
|
9276
|
+
}
|
|
9277
|
+
|
|
9278
|
+
.djm-fm-search input {
|
|
9279
|
+
width: 100%;
|
|
9280
|
+
}
|
|
9281
|
+
|
|
9282
|
+
.djm-fm-crumb em {
|
|
9283
|
+
display: none;
|
|
9284
|
+
}
|
|
9285
|
+
|
|
9286
|
+
.djm-fm-storage {
|
|
9287
|
+
display: none;
|
|
9288
|
+
}
|
|
9289
|
+
|
|
9290
|
+
.djm-fm-grid,
|
|
9291
|
+
.djm-album-grid {
|
|
9292
|
+
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
|
9293
|
+
}
|
|
9294
|
+
|
|
9295
|
+
.djm-fm-preview-meta {
|
|
9296
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
9297
|
+
}
|
|
9298
|
+
}
|
|
9299
|
+
|
|
8359
9300
|
/* ---- components/kanban.css ---- */
|
|
8360
9301
|
|
|
8361
9302
|
/* 看板:横向列排布,列内纵向卡片流,超宽横向滚动 */
|
|
@@ -11815,3 +12756,64 @@ input[type="date"] {
|
|
|
11815
12756
|
color: var(--djm-green);
|
|
11816
12757
|
font-size: 10px;
|
|
11817
12758
|
}
|
|
12759
|
+
|
|
12760
|
+
/* ---- components/glass.css ---- */
|
|
12761
|
+
|
|
12762
|
+
/* DJM UI · 毛玻璃 */
|
|
12763
|
+
|
|
12764
|
+
/* 工具类:直接加在任意容器上 */
|
|
12765
|
+
.djm-glass {
|
|
12766
|
+
background: var(--djm-glass-bg);
|
|
12767
|
+
border: 1px solid var(--djm-glass-border);
|
|
12768
|
+
box-shadow: var(--djm-glass-shadow);
|
|
12769
|
+
-webkit-backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12770
|
+
backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12771
|
+
}
|
|
12772
|
+
|
|
12773
|
+
/* 模糊半径两档 */
|
|
12774
|
+
.djm-glass-strong {
|
|
12775
|
+
--djm-glass-blur: 26px;
|
|
12776
|
+
}
|
|
12777
|
+
|
|
12778
|
+
.djm-glass-soft {
|
|
12779
|
+
--djm-glass-blur: 8px;
|
|
12780
|
+
}
|
|
12781
|
+
|
|
12782
|
+
/* 组件级开关:Modal / Drawer 的 glass 属性 */
|
|
12783
|
+
.djm-modal.djm-is-glass,
|
|
12784
|
+
.djm-drawer.djm-is-glass {
|
|
12785
|
+
background: var(--djm-glass-bg);
|
|
12786
|
+
border: 1px solid var(--djm-glass-border);
|
|
12787
|
+
box-shadow: var(--djm-glass-shadow);
|
|
12788
|
+
-webkit-backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12789
|
+
backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12790
|
+
}
|
|
12791
|
+
|
|
12792
|
+
/* 全局开关:弹窗、抽屉、浮层、面板与卡片 */
|
|
12793
|
+
:root[data-djm-glass='on'] .djm-modal,
|
|
12794
|
+
:root[data-djm-glass='on'] .djm-drawer,
|
|
12795
|
+
:root[data-djm-glass='on'] .djm-popover-panel,
|
|
12796
|
+
:root[data-djm-glass='on'] .djm-dropdown-menu,
|
|
12797
|
+
:root[data-djm-glass='on'] .djm-panel,
|
|
12798
|
+
:root[data-djm-glass='on'] .djm-card {
|
|
12799
|
+
background: var(--djm-glass-bg);
|
|
12800
|
+
border-color: var(--djm-glass-border);
|
|
12801
|
+
box-shadow: var(--djm-glass-shadow);
|
|
12802
|
+
-webkit-backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12803
|
+
backdrop-filter: blur(var(--djm-glass-blur)) saturate(1.4);
|
|
12804
|
+
}
|
|
12805
|
+
|
|
12806
|
+
/* 浏览器不支持 backdrop-filter 时退回实心底,保证内容可读 */
|
|
12807
|
+
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
12808
|
+
.djm-glass,
|
|
12809
|
+
.djm-modal.djm-is-glass,
|
|
12810
|
+
.djm-drawer.djm-is-glass,
|
|
12811
|
+
:root[data-djm-glass='on'] .djm-modal,
|
|
12812
|
+
:root[data-djm-glass='on'] .djm-drawer,
|
|
12813
|
+
:root[data-djm-glass='on'] .djm-popover-panel,
|
|
12814
|
+
:root[data-djm-glass='on'] .djm-dropdown-menu,
|
|
12815
|
+
:root[data-djm-glass='on'] .djm-panel,
|
|
12816
|
+
:root[data-djm-glass='on'] .djm-card {
|
|
12817
|
+
background: var(--djm-surface);
|
|
12818
|
+
}
|
|
12819
|
+
}
|