@5even7/dlc-ui 0.2.17 → 0.2.19

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/package.json CHANGED
@@ -1,135 +1,146 @@
1
- {
2
- "name": "@5even7/dlc-ui",
3
- "version": "0.2.17",
4
- "publishConfig": {
5
- "access": "public",
6
- "registry": "https://registry.npmjs.org"
7
- },
8
- "description": "DLC 星云胶囊、流体进度、动态背景与 Lottie 表情组件库,支持 H5 / Vue2 / Vue3。",
9
- "type": "module",
10
- "repository": {
11
- "type": "git",
12
- "url": "https://gitee.com/K_a1/cosmic-capsules.git"
13
- },
14
- "main": "./dist/index.cjs",
15
- "module": "./dist/index.mjs",
16
- "types": "./types/index.d.ts",
17
- "unpkg": "./dist/index.umd.min.js",
18
- "jsdelivr": "./dist/index.umd.min.js",
19
- "exports": {
20
- ".": {
21
- "types": "./types/index.d.ts",
22
- "import": "./dist/index.mjs",
23
- "require": "./dist/index.cjs",
24
- "default": "./dist/index.mjs"
25
- },
26
- "./capsule": {
27
- "types": "./types/capsule.d.ts",
28
- "import": "./dist/capsule.mjs",
29
- "require": "./dist/capsule.cjs",
30
- "default": "./dist/capsule.mjs"
31
- },
32
- "./progress": {
33
- "types": "./types/progress.d.ts",
34
- "import": "./dist/progress.mjs",
35
- "require": "./dist/progress.cjs",
36
- "default": "./dist/progress.mjs"
37
- },
38
- "./color": {
39
- "types": "./types/color.d.ts",
40
- "import": "./dist/color.mjs",
41
- "require": "./dist/color.cjs",
42
- "default": "./dist/color.mjs"
43
- },
44
- "./emo": {
45
- "types": "./types/emo.d.ts",
46
- "import": "./dist/emo.mjs",
47
- "require": "./dist/emo.cjs",
48
- "default": "./dist/emo.mjs"
49
- },
50
- "./vue3": {
51
- "types": "./types/vue3.d.ts",
52
- "import": "./dist/vue3.mjs",
53
- "require": "./dist/vue3.cjs",
54
- "default": "./dist/vue3.mjs"
55
- },
56
- "./vue2": {
57
- "types": "./types/vue2.d.ts",
58
- "import": "./dist/vue2.mjs",
59
- "require": "./dist/vue2.cjs",
60
- "default": "./dist/vue2.mjs"
61
- },
62
- "./style.css": "./styles/theme.css",
63
- "./capsule/style.css": "./styles/capsule.css",
64
- "./progress/style.css": "./styles/progress.css",
65
- "./color/style.css": "./styles/color.css",
66
- "./emo/style.css": "./styles/emo.css",
67
- "./package.json": "./package.json"
68
- },
69
- "files": [
70
- "dist",
71
- "styles",
72
- "types",
73
- "README.md",
74
- "LICENSE",
75
- "CHANGELOG.md"
76
- ],
77
- "peerDependencies": {
78
- "vue": ">=2.7.0"
79
- },
80
- "peerDependenciesMeta": {
81
- "vue": {
82
- "optional": true
83
- }
84
- },
85
- "sideEffects": [
86
- "./styles/*.css"
87
- ],
88
- "scripts": {
89
- "build": "node scripts/generate-emo-assets.mjs && rollup -c && node scripts/copy-css.mjs",
90
- "test": "node --test",
91
- "serve": "node scripts/serve.mjs",
92
- "demo:h5": "node scripts/serve.mjs",
93
- "demo:vue3": "npm --prefix examples/vue3 run dev",
94
- "demo:vue2": "npm --prefix examples/vue2 run dev",
95
- "prepublishOnly": "npm run build && npm test"
96
- },
97
- "keywords": [
98
- "capsule",
99
- "progress",
100
- "webgl",
101
- "canvas",
102
- "nebula",
103
- "background",
104
- "color",
105
- "vue",
106
- "vue2",
107
- "vue3",
108
- "h5",
109
- "component",
110
- "lottie",
111
- "emotion",
112
- "emoji"
113
- ],
114
- "license": "MIT",
115
- "engines": {
116
- "node": ">=18"
117
- },
118
- "devDependencies": {
119
- "@babel/core": "^7.26.0",
120
- "@babel/preset-env": "^7.26.0",
121
- "@rollup/plugin-babel": "^6.0.4",
122
- "@rollup/plugin-commonjs": "^28.0.1",
123
- "@rollup/plugin-node-resolve": "^15.3.0",
124
- "@rollup/plugin-terser": "^0.4.4",
125
- "intersection-observer": "^0.12.2",
126
- "jsdom": "^24.1.0",
127
- "pepjs": "^0.5.3",
128
- "resize-observer-polyfill": "^1.5.1",
129
- "rollup": "^4.24.0",
130
- "vue": "^3.4.0"
131
- },
132
- "dependencies": {
133
- "lottie-web": "^5.13.0"
134
- }
135
- }
1
+ {
2
+ "name": "@5even7/dlc-ui",
3
+ "version": "0.2.19",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "registry": "https://registry.npmjs.org"
7
+ },
8
+ "description": "DLC 星云胶囊、流体进度、动态背景、Lottie 表情与本地头像创建器组件库,支持 H5 / Vue2 / Vue3。",
9
+ "type": "module",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://gitee.com/K_a1/cosmic-capsules.git"
13
+ },
14
+ "main": "./dist/index.cjs",
15
+ "module": "./dist/index.mjs",
16
+ "types": "./types/index.d.ts",
17
+ "unpkg": "./dist/index.umd.min.js",
18
+ "jsdelivr": "./dist/index.umd.min.js",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./types/index.d.ts",
22
+ "import": "./dist/index.mjs",
23
+ "require": "./dist/index.cjs",
24
+ "default": "./dist/index.mjs"
25
+ },
26
+ "./capsule": {
27
+ "types": "./types/capsule.d.ts",
28
+ "import": "./dist/capsule.mjs",
29
+ "require": "./dist/capsule.cjs",
30
+ "default": "./dist/capsule.mjs"
31
+ },
32
+ "./progress": {
33
+ "types": "./types/progress.d.ts",
34
+ "import": "./dist/progress.mjs",
35
+ "require": "./dist/progress.cjs",
36
+ "default": "./dist/progress.mjs"
37
+ },
38
+ "./color": {
39
+ "types": "./types/color.d.ts",
40
+ "import": "./dist/color.mjs",
41
+ "require": "./dist/color.cjs",
42
+ "default": "./dist/color.mjs"
43
+ },
44
+ "./emo": {
45
+ "types": "./types/emo.d.ts",
46
+ "import": "./dist/emo.mjs",
47
+ "require": "./dist/emo.cjs",
48
+ "default": "./dist/emo.mjs"
49
+ },
50
+ "./avatar-creator": {
51
+ "types": "./types/avatar-creator.d.ts",
52
+ "import": "./dist/avatar-creator.mjs",
53
+ "require": "./dist/avatar-creator.cjs",
54
+ "default": "./dist/avatar-creator.mjs"
55
+ },
56
+ "./vue3": {
57
+ "types": "./types/vue3.d.ts",
58
+ "import": "./dist/vue3.mjs",
59
+ "require": "./dist/vue3.cjs",
60
+ "default": "./dist/vue3.mjs"
61
+ },
62
+ "./vue2": {
63
+ "types": "./types/vue2.d.ts",
64
+ "import": "./dist/vue2.mjs",
65
+ "require": "./dist/vue2.cjs",
66
+ "default": "./dist/vue2.mjs"
67
+ },
68
+ "./style.css": "./styles/theme.css",
69
+ "./capsule/style.css": "./styles/capsule.css",
70
+ "./progress/style.css": "./styles/progress.css",
71
+ "./color/style.css": "./styles/color.css",
72
+ "./emo/style.css": "./styles/emo.css",
73
+ "./avatar-creator/style.css": "./styles/avatar-creator.css",
74
+ "./package.json": "./package.json"
75
+ },
76
+ "files": [
77
+ "dist",
78
+ "styles",
79
+ "types",
80
+ "README.md",
81
+ "LICENSE",
82
+ "CHANGELOG.md",
83
+ "THIRD_PARTY_NOTICES.md"
84
+ ],
85
+ "peerDependencies": {
86
+ "vue": ">=2.7.0"
87
+ },
88
+ "peerDependenciesMeta": {
89
+ "vue": {
90
+ "optional": true
91
+ }
92
+ },
93
+ "sideEffects": [
94
+ "./styles/*.css"
95
+ ],
96
+ "scripts": {
97
+ "build": "node scripts/generate-emo-assets.mjs && rollup -c && node scripts/copy-css.mjs",
98
+ "test": "node --test",
99
+ "serve": "node scripts/serve.mjs",
100
+ "demo:h5": "node scripts/serve.mjs",
101
+ "demo:vue3": "npm --prefix examples/vue3 run dev",
102
+ "demo:vue2": "npm --prefix examples/vue2 run dev",
103
+ "prepublishOnly": "npm run build && npm test"
104
+ },
105
+ "keywords": [
106
+ "capsule",
107
+ "progress",
108
+ "webgl",
109
+ "canvas",
110
+ "nebula",
111
+ "background",
112
+ "color",
113
+ "vue",
114
+ "vue2",
115
+ "vue3",
116
+ "h5",
117
+ "component",
118
+ "lottie",
119
+ "emotion",
120
+ "emoji",
121
+ "avatar",
122
+ "dicebear",
123
+ "humation"
124
+ ],
125
+ "license": "MIT",
126
+ "engines": {
127
+ "node": ">=18"
128
+ },
129
+ "devDependencies": {
130
+ "@babel/core": "^7.26.0",
131
+ "@babel/preset-env": "^7.26.0",
132
+ "@rollup/plugin-babel": "^6.0.4",
133
+ "@rollup/plugin-commonjs": "^28.0.1",
134
+ "@rollup/plugin-node-resolve": "^15.3.0",
135
+ "@rollup/plugin-terser": "^0.4.4",
136
+ "intersection-observer": "^0.12.2",
137
+ "jsdom": "^24.1.0",
138
+ "pepjs": "^0.5.3",
139
+ "resize-observer-polyfill": "^1.5.1",
140
+ "rollup": "^4.24.0",
141
+ "vue": "^3.4.0"
142
+ },
143
+ "dependencies": {
144
+ "lottie-web": "^5.13.0"
145
+ }
146
+ }
@@ -0,0 +1,13 @@
1
+ .dlc-avatar-creator {
2
+ display: inline-block;
3
+ line-height: 0;
4
+ vertical-align: middle;
5
+ }
6
+
7
+ .dlc-avatar-creator svg {
8
+ display: block;
9
+ width: 100%;
10
+ height: 100%;
11
+ max-width: 100%;
12
+ max-height: 100%;
13
+ }
package/styles/base.css CHANGED
@@ -1,12 +1,12 @@
1
- /*
2
- * @5even7/dlc-ui — shared base styles.
3
- */
4
-
5
- .hj-capsule-root {
6
- --hj-radius: 999px;
7
- --hj-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
8
- "PingFang SC", "Microsoft YaHei", sans-serif;
9
- --hj-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1
+ /*
2
+ * @5even7/dlc-ui — shared base styles.
3
+ */
4
+
5
+ .hj-capsule-root {
6
+ --hj-radius: 999px;
7
+ --hj-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
8
+ "PingFang SC", "Microsoft YaHei", sans-serif;
9
+ --hj-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
10
10
  --hj-bg: #faf8f2;
11
11
  --hj-ink: #20231f;
12
12
  --hj-muted: #77786f;
@@ -19,31 +19,31 @@
19
19
  --hj-copy-left: 30px;
20
20
  --hj-value-right: 30px;
21
21
  --hj-copy-max-width: 54%;
22
-
23
- position: relative;
24
- display: block;
25
- overflow: hidden;
26
- box-sizing: border-box;
27
- border-radius: var(--hj-radius);
28
- background: var(--hj-bg);
29
- isolation: isolate;
30
- }
31
-
32
- .hj-capsule-root *,
33
- .hj-capsule-root *::before,
34
- .hj-capsule-root *::after {
35
- box-sizing: border-box;
36
- }
37
-
22
+
23
+ position: relative;
24
+ display: block;
25
+ overflow: hidden;
26
+ box-sizing: border-box;
27
+ border-radius: var(--hj-radius);
28
+ background: var(--hj-bg);
29
+ isolation: isolate;
30
+ }
31
+
32
+ .hj-capsule-root *,
33
+ .hj-capsule-root *::before,
34
+ .hj-capsule-root *::after {
35
+ box-sizing: border-box;
36
+ }
37
+
38
38
  .hj-capsule-canvas,
39
39
  .hj-progress-canvas {
40
- position: absolute;
41
- inset: 0;
42
- z-index: 1;
43
- display: block;
44
- width: 100%;
45
- height: 100%;
46
- border-radius: inherit;
40
+ position: absolute;
41
+ inset: 0;
42
+ z-index: 1;
43
+ display: block;
44
+ width: 100%;
45
+ height: 100%;
46
+ border-radius: inherit;
47
47
  pointer-events: none;
48
48
  }
49
49
 
package/styles/color.css CHANGED
@@ -1,18 +1,18 @@
1
- /* dlc-color: nebula background layer (same renderer as CosmicCapsule). */
2
-
3
- .dlc-color-layer {
4
- position: absolute;
5
- inset: 0;
6
- z-index: var(--dlc-color-layer-z, -1);
7
- overflow: hidden;
8
- border-radius: inherit;
9
- pointer-events: none;
10
- background: var(--dlc-color-bg, transparent);
11
- opacity: var(--dlc-color-opacity, 1);
12
- }
13
-
14
- .dlc-color-canvas {
15
- display: block;
16
- width: 100%;
17
- height: 100%;
18
- }
1
+ /* dlc-color: nebula background layer (same renderer as CosmicCapsule). */
2
+
3
+ .dlc-color-layer {
4
+ position: absolute;
5
+ inset: 0;
6
+ z-index: var(--dlc-color-layer-z, -1);
7
+ overflow: hidden;
8
+ border-radius: inherit;
9
+ pointer-events: none;
10
+ background: var(--dlc-color-bg, transparent);
11
+ opacity: var(--dlc-color-opacity, 1);
12
+ }
13
+
14
+ .dlc-color-canvas {
15
+ display: block;
16
+ width: 100%;
17
+ height: 100%;
18
+ }
package/styles/emo.css CHANGED
@@ -1,33 +1,89 @@
1
- .dlc-emo-root {
2
- position: relative;
3
- display: inline-grid;
4
- place-items: center;
5
- box-sizing: border-box;
6
- overflow: hidden;
7
- flex: 0 0 auto;
8
- vertical-align: middle;
9
- background: var(--dlc-emo-background, transparent);
10
- opacity: var(--dlc-emo-opacity, 1);
11
- }
12
-
13
- .dlc-emo-stage,
14
- .dlc-emo-stage > svg,
15
- .dlc-emo-stage > canvas {
16
- display: block;
17
- width: 100% !important;
18
- height: 100% !important;
19
- }
20
-
21
- .dlc-emo-stage {
22
- position: absolute;
23
- inset: 0;
24
- }
25
-
26
- .dlc-emo-root[data-fit='cover'] .dlc-emo-stage,
27
- .dlc-emo-root[data-fit='fill'] .dlc-emo-stage {
28
- overflow: hidden;
29
- }
30
-
31
- .dlc-emo-root[data-paused='true'] {
32
- --dlc-emo-play-state: paused;
33
- }
1
+ .dlc-emo-root {
2
+ position: relative;
3
+ display: inline-grid;
4
+ place-items: center;
5
+ box-sizing: border-box;
6
+ overflow: hidden;
7
+ flex: 0 0 auto;
8
+ vertical-align: middle;
9
+ background: var(--dlc-emo-background, transparent);
10
+ opacity: var(--dlc-emo-opacity, 1);
11
+ }
12
+
13
+ .dlc-emo-stage,
14
+ .dlc-emo-stage > svg,
15
+ .dlc-emo-stage > canvas {
16
+ display: block;
17
+ width: 100% !important;
18
+ height: 100% !important;
19
+ }
20
+
21
+ .dlc-emo-stage {
22
+ position: absolute;
23
+ inset: 0;
24
+ }
25
+
26
+ .dlc-emo-root[data-fit='cover'] .dlc-emo-stage,
27
+ .dlc-emo-root[data-fit='fill'] .dlc-emo-stage {
28
+ overflow: hidden;
29
+ }
30
+
31
+
32
+ /* Grok SVG renderer */
33
+
34
+ .dlc-grok {
35
+ display: block;
36
+ width: 100% !important;
37
+ height: 100% !important;
38
+ will-change: transform;
39
+ }
40
+
41
+ .dlc-grok__body {
42
+ fill: #2f86ed;
43
+ }
44
+
45
+ .dlc-grok__eye {
46
+ fill: #fffdf7;
47
+ }
48
+
49
+ .dlc-grok.act-bounce { animation: dlc-grok-bounce 0.85s ease; }
50
+ .dlc-grok.act-tilt { animation: dlc-grok-tilt 0.8s ease; }
51
+ .dlc-grok.act-scan .dlc-grok__eyes { animation: dlc-grok-scan 0.8s ease; }
52
+ .dlc-grok.act-turn { animation: dlc-grok-turn 0.9s ease; }
53
+ .dlc-grok.act-pulse { animation: dlc-grok-pulse 0.9s ease; }
54
+ .dlc-grok.act-glitch { animation: dlc-grok-glitch 0.55s steps(2); }
55
+
56
+ @keyframes dlc-grok-bounce {
57
+ 0%, 100% { transform: translateY(0); }
58
+ 40% { transform: translateY(-34px) scale(0.96, 1.04); }
59
+ 65% { transform: translateY(4px) scale(1.05, 0.94); }
60
+ }
61
+
62
+ @keyframes dlc-grok-tilt {
63
+ 35% { transform: rotate(-19deg) translate(-8px, 5px); }
64
+ 70% { transform: rotate(8deg); }
65
+ }
66
+
67
+ @keyframes dlc-grok-scan {
68
+ 0%, 100% { transform: translate(0); }
69
+ 30% { transform: translate(-24px, 2px); }
70
+ 70% { transform: translate(24px, -2px); }
71
+ }
72
+
73
+ @keyframes dlc-grok-turn {
74
+ 0%, 100% { transform: rotateY(0); }
75
+ 48% { transform: rotateY(180deg) scale(0.82); }
76
+ }
77
+
78
+ @keyframes dlc-grok-pulse {
79
+ 0%, 100% { transform: scale(1); }
80
+ 35% { transform: scale(1.08, 0.92); }
81
+ 65% { transform: scale(0.94, 1.08); }
82
+ }
83
+
84
+ @keyframes dlc-grok-glitch {
85
+ 0%, 100% { transform: translate(0); }
86
+ 25% { transform: translate(-9px, 3px); filter: drop-shadow(8px 0 #ff9500); }
87
+ 50% { transform: translate(10px, -3px); filter: drop-shadow(-8px 0 #79e2d0); }
88
+ 75% { transform: translate(-4px, 1px); }
89
+ }