@didaoktv/didaoui-uniapp 1.2.2 → 1.3.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.
Files changed (75) hide show
  1. package/README.md +59 -0
  2. package/components/dd-action-sheet/dd-action-sheet.vue +7 -7
  3. package/components/dd-alert/dd-alert.vue +16 -16
  4. package/components/dd-backtop/dd-backtop.vue +3 -3
  5. package/components/dd-badge/dd-badge.vue +10 -10
  6. package/components/dd-bill-detail/dd-bill-detail.vue +20 -20
  7. package/components/dd-button/dd-button.vue +12 -12
  8. package/components/dd-calendar/dd-calendar.vue +21 -21
  9. package/components/dd-capsule-button/dd-capsule-button.vue +5 -5
  10. package/components/dd-car-keyboard/dd-car-keyboard.vue +8 -8
  11. package/components/dd-card/dd-card.vue +9 -9
  12. package/components/dd-cascader/dd-cascader.vue +3 -3
  13. package/components/dd-cell/dd-cell.vue +9 -9
  14. package/components/dd-cell-group/dd-cell-group.vue +4 -4
  15. package/components/dd-champion-card/dd-champion-card.vue +8 -8
  16. package/components/dd-checkbox/dd-checkbox.vue +8 -8
  17. package/components/dd-collapse/dd-collapse.vue +1 -1
  18. package/components/dd-collapse-item/dd-collapse-item.vue +6 -6
  19. package/components/dd-count-down/dd-count-down.vue +1 -1
  20. package/components/dd-coupon/dd-coupon.vue +53 -53
  21. package/components/dd-cropper/dd-cropper.vue +57 -40
  22. package/components/dd-date-picker/dd-date-picker.vue +7 -7
  23. package/components/dd-dialog/dd-dialog.vue +12 -12
  24. package/components/dd-divider/dd-divider.vue +2 -2
  25. package/components/dd-drawer/dd-drawer.vue +7 -7
  26. package/components/dd-dropdown-item/dd-dropdown-item.vue +3 -3
  27. package/components/dd-dropdown-menu/dd-dropdown-menu.vue +3 -3
  28. package/components/dd-empty-state/dd-empty-state.vue +5 -5
  29. package/components/dd-feature-grid/dd-feature-grid.vue +3 -3
  30. package/components/dd-field/dd-field.vue +18 -18
  31. package/components/dd-goods-sku/dd-goods-sku.vue +14 -14
  32. package/components/dd-icon/dd-icon.vue +1 -1
  33. package/components/dd-image/dd-image.vue +5 -5
  34. package/components/dd-input/dd-input.vue +9 -9
  35. package/components/dd-keyboard/dd-keyboard.vue +5 -5
  36. package/components/dd-list-cell/dd-list-cell.vue +8 -8
  37. package/components/dd-loading/dd-loading.vue +4 -4
  38. package/components/dd-loadmore/dd-loadmore.vue +1 -1
  39. package/components/dd-mini-program-navbar/dd-mini-program-navbar.vue +7 -7
  40. package/components/dd-modal/dd-modal.vue +11 -11
  41. package/components/dd-navigation/dd-navigation.vue +6 -6
  42. package/components/dd-number-keyboard/dd-number-keyboard.vue +6 -6
  43. package/components/dd-picker/dd-picker.vue +8 -8
  44. package/components/dd-popover/dd-popover.vue +4 -4
  45. package/components/dd-popover-item/dd-popover-item.vue +2 -2
  46. package/components/dd-popup/dd-popup.vue +4 -4
  47. package/components/dd-progress/dd-progress.vue +5 -5
  48. package/components/dd-pull-refresh/dd-pull-refresh.vue +4 -4
  49. package/components/dd-radio/dd-radio.vue +5 -5
  50. package/components/dd-room-card/dd-room-card.vue +26 -26
  51. package/components/dd-search-bar/dd-search-bar.vue +11 -11
  52. package/components/dd-segmented-tab/dd-segmented-tab.vue +7 -7
  53. package/components/dd-signature/dd-signature.vue +6 -6
  54. package/components/dd-skeleton/dd-skeleton.vue +2 -2
  55. package/components/dd-slider/dd-slider.vue +6 -6
  56. package/components/dd-stat-card/dd-stat-card.vue +9 -9
  57. package/components/dd-step/dd-step.vue +2 -2
  58. package/components/dd-stepper/dd-stepper.vue +7 -7
  59. package/components/dd-swipe/dd-swipe.vue +1 -1
  60. package/components/dd-swipe-action/dd-swipe-action.vue +3 -3
  61. package/components/dd-swipeable-tab/dd-swipeable-tab.vue +5 -5
  62. package/components/dd-switch/dd-switch.vue +4 -4
  63. package/components/dd-tabbar/dd-tabbar.vue +2 -2
  64. package/components/dd-tabbar-item/dd-tabbar-item.vue +2 -2
  65. package/components/dd-tag/dd-tag.vue +33 -33
  66. package/components/dd-text/dd-text.vue +11 -11
  67. package/components/dd-toast/dd-toast.vue +5 -5
  68. package/components/dd-top-navbar/dd-top-navbar.vue +4 -4
  69. package/components/dd-upload/dd-upload.vue +6 -6
  70. package/components/dd-workorder-card/dd-workorder-card.vue +17 -17
  71. package/package.json +2 -1
  72. package/scss/_mixins.scss +11 -11
  73. package/scss/_theme-tokens.scss +183 -0
  74. package/scss/_variables.scss +298 -250
  75. package/scss/theme.scss +36 -0
@@ -4,319 +4,367 @@
4
4
  // ============================================================
5
5
 
6
6
  // === primary — 帝王金 (from css.json + colors_and_type.css) ===
7
- $dd-primary-50: #FFF8E1;
8
- $dd-primary-100: #FFEDB3;
9
- $dd-primary-200: #FFE082;
10
- $dd-primary-300: #FFD54F;
11
- $dd-primary-400: #FFC107;
12
- $dd-primary-500: #F5A623;
13
- $dd-primary-600: #D4891A;
14
- $dd-primary-700: #B26D12;
15
- $dd-primary-800: #8F520B;
16
- $dd-primary-900: #6B3A05;
17
- $dd-primary: $dd-primary-500;
18
- $dd-primary-contrast: #0A0A0A;
7
+ $dd-primary-50: #FFF8E1 !default;
8
+ $dd-primary-100: #FFEDB3 !default;
9
+ $dd-primary-200: #FFE082 !default;
10
+ $dd-primary-300: #FFD54F !default;
11
+ $dd-primary-400: #FFC107 !default;
12
+ $dd-primary-500: #F5A623 !default;
13
+ $dd-primary-600: #D4891A !default;
14
+ $dd-primary-700: #B26D12 !default;
15
+ $dd-primary-800: #8F520B !default;
16
+ $dd-primary-900: #6B3A05 !default;
17
+ $dd-primary: $dd-primary-500 !default;
18
+ $dd-primary-contrast: #0A0A0A !default;
19
19
 
20
20
  // === accent — 皇家蓝 ===
21
- $dd-accent-50: #E8EEF5;
22
- $dd-accent-100: #C5D3E8;
23
- $dd-accent-200: #9BB3D6;
24
- $dd-accent-300: #728FC4;
25
- $dd-accent-400: #4E6EB2;
26
- $dd-accent-500: #2D4BA0;
27
- $dd-accent-600: #1E3A8A;
28
- $dd-accent-700: #152B6B;
29
- $dd-accent-800: #0D1E4D;
30
- $dd-accent-900: #061230;
31
- $dd-accent: $dd-accent-500;
32
- $dd-accent-contrast: #FFFFFF;
21
+ $dd-accent-50: #E8EEF5 !default;
22
+ $dd-accent-100: #C5D3E8 !default;
23
+ $dd-accent-200: #9BB3D6 !default;
24
+ $dd-accent-300: #728FC4 !default;
25
+ $dd-accent-400: #4E6EB2 !default;
26
+ $dd-accent-500: #2D4BA0 !default;
27
+ $dd-accent-600: #1E3A8A !default;
28
+ $dd-accent-700: #152B6B !default;
29
+ $dd-accent-800: #0D1E4D !default;
30
+ $dd-accent-900: #061230 !default;
31
+ $dd-accent: $dd-accent-500 !default;
32
+ $dd-accent-contrast: #FFFFFF !default;
33
33
 
34
34
  // === neutral — 抖音风纯黑系 ===
35
- $dd-neutral-50: #F5F5F5;
36
- $dd-neutral-100: #E0E0E0;
37
- $dd-neutral-200: #BDBDBD;
38
- $dd-neutral-300: #9E9E9E;
39
- $dd-neutral-400: #757575;
40
- $dd-neutral-500: #616161;
41
- $dd-neutral-600: #424242;
42
- $dd-neutral-700: #2A2A2A;
43
- $dd-neutral-800: #171717;
44
- $dd-neutral-900: #0A0A0A;
45
- $dd-neutral-950: #050505;
35
+ $dd-neutral-50: #F5F5F5 !default;
36
+ $dd-neutral-100: #E0E0E0 !default;
37
+ $dd-neutral-200: #BDBDBD !default;
38
+ $dd-neutral-300: #9E9E9E !default;
39
+ $dd-neutral-400: #757575 !default;
40
+ $dd-neutral-500: #616161 !default;
41
+ $dd-neutral-600: #424242 !default;
42
+ $dd-neutral-700: #2A2A2A !default;
43
+ $dd-neutral-800: #171717 !default;
44
+ $dd-neutral-900: #0A0A0A !default;
45
+ $dd-neutral-950: #050505 !default;
46
46
 
47
47
  // === success ===
48
- $dd-success-50: #E8F5E9;
49
- $dd-success-100: #C8E6C9;
50
- $dd-success-200: #A5D6A7;
51
- $dd-success-300: #81C784;
52
- $dd-success-400: #66BB6A;
53
- $dd-success-500: #4CAF50;
54
- $dd-success-600: #388E3C;
55
- $dd-success-700: #2E7D32;
56
- $dd-success-800: #1B5E20;
57
- $dd-success-900: #0D3B10;
58
- $dd-success: $dd-success-500;
59
- $dd-success-contrast: #FFFFFF;
48
+ $dd-success-50: #E8F5E9 !default;
49
+ $dd-success-100: #C8E6C9 !default;
50
+ $dd-success-200: #A5D6A7 !default;
51
+ $dd-success-300: #81C784 !default;
52
+ $dd-success-400: #66BB6A !default;
53
+ $dd-success-500: #4CAF50 !default;
54
+ $dd-success-600: #388E3C !default;
55
+ $dd-success-700: #2E7D32 !default;
56
+ $dd-success-800: #1B5E20 !default;
57
+ $dd-success-900: #0D3B10 !default;
58
+ $dd-success: $dd-success-500 !default;
59
+ $dd-success-contrast: #FFFFFF !default;
60
60
 
61
61
  // === warning ===
62
- $dd-warning-50: #FFFDE7;
63
- $dd-warning-100: #FFF9C4;
64
- $dd-warning-200: #FFF176;
65
- $dd-warning-300: #FFEE58;
66
- $dd-warning-400: #FDD835;
67
- $dd-warning-500: #F9A825;
68
- $dd-warning-600: #F57F17;
69
- $dd-warning-700: #C65D00;
70
- $dd-warning-800: #994200;
71
- $dd-warning-900: #6B2D00;
72
- $dd-warning: $dd-warning-500;
73
- $dd-warning-contrast: #0A0A0A;
62
+ $dd-warning-50: #FFFDE7 !default;
63
+ $dd-warning-100: #FFF9C4 !default;
64
+ $dd-warning-200: #FFF176 !default;
65
+ $dd-warning-300: #FFEE58 !default;
66
+ $dd-warning-400: #FDD835 !default;
67
+ $dd-warning-500: #F9A825 !default;
68
+ $dd-warning-600: #F57F17 !default;
69
+ $dd-warning-700: #C65D00 !default;
70
+ $dd-warning-800: #994200 !default;
71
+ $dd-warning-900: #6B2D00 !default;
72
+ $dd-warning: $dd-warning-500 !default;
73
+ $dd-warning-contrast: #0A0A0A !default;
74
74
 
75
75
  // === error ===
76
- $dd-error-50: #FFEBEE;
77
- $dd-error-100: #FFCDD2;
78
- $dd-error-200: #EF9A9A;
79
- $dd-error-300: #E57373;
80
- $dd-error-400: #EF5350;
81
- $dd-error-500: #E53935;
82
- $dd-error-600: #C62828;
83
- $dd-error-700: #991B1B;
84
- $dd-error-800: #6D1212;
85
- $dd-error-900: #400A0A;
86
- $dd-error: $dd-error-500;
87
- $dd-error-contrast: #FFFFFF;
76
+ $dd-error-50: #FFEBEE !default;
77
+ $dd-error-100: #FFCDD2 !default;
78
+ $dd-error-200: #EF9A9A !default;
79
+ $dd-error-300: #E57373 !default;
80
+ $dd-error-400: #EF5350 !default;
81
+ $dd-error-500: #E53935 !default;
82
+ $dd-error-600: #C62828 !default;
83
+ $dd-error-700: #991B1B !default;
84
+ $dd-error-800: #6D1212 !default;
85
+ $dd-error-900: #400A0A !default;
86
+ $dd-error: $dd-error-500 !default;
87
+ $dd-error-contrast: #FFFFFF !default;
88
88
 
89
89
  // === info ===
90
- $dd-info-50: #E0F7FA;
91
- $dd-info-100: #B2EBF2;
92
- $dd-info-200: #80DEEA;
93
- $dd-info-300: #4DD0E1;
94
- $dd-info-400: #26C6DA;
95
- $dd-info-500: #00BCD4;
96
- $dd-info-600: #0097A7;
97
- $dd-info-700: #007580;
98
- $dd-info-800: #00535A;
99
- $dd-info-900: #003136;
100
- $dd-info: $dd-info-500;
101
- $dd-info-contrast: #FFFFFF;
90
+ $dd-info-50: #E0F7FA !default;
91
+ $dd-info-100: #B2EBF2 !default;
92
+ $dd-info-200: #80DEEA !default;
93
+ $dd-info-300: #4DD0E1 !default;
94
+ $dd-info-400: #26C6DA !default;
95
+ $dd-info-500: #00BCD4 !default;
96
+ $dd-info-600: #0097A7 !default;
97
+ $dd-info-700: #007580 !default;
98
+ $dd-info-800: #00535A !default;
99
+ $dd-info-900: #003136 !default;
100
+ $dd-info: $dd-info-500 !default;
101
+ $dd-info-contrast: #FFFFFF !default;
102
102
 
103
103
  // === VIP Purple ===
104
- $dd-vip-500: #9C27B0;
105
- $dd-vip-700: #6A1B9A;
104
+ $dd-vip-500: #9C27B0 !default;
105
+ $dd-vip-700: #6A1B9A !default;
106
106
 
107
107
  // === 语义别名 (from colors_and_type.css Layer 2) ===
108
- $dd-bg: $dd-neutral-900;
109
- $dd-fg: $dd-neutral-50;
110
- $dd-muted: $dd-neutral-400;
111
- $dd-rule: $dd-neutral-700;
112
- $dd-link: $dd-primary-400;
113
- $dd-surface: $dd-neutral-900;
114
- $dd-surface-dim: $dd-neutral-800;
115
- $dd-surface-container-low: $dd-neutral-800;
116
- $dd-surface-container: $dd-neutral-800;
117
- $dd-surface-container-high: $dd-neutral-700;
118
- $dd-surface-container-highest: $dd-neutral-600;
119
- $dd-bg-section: $dd-neutral-800;
120
- $dd-bg-card: $dd-neutral-800;
121
- $dd-bg-elevated: $dd-neutral-800;
108
+ $dd-bg: $dd-neutral-900 !default;
109
+ $dd-fg: $dd-neutral-50 !default;
110
+ $dd-muted: $dd-neutral-400 !default;
111
+ $dd-rule: $dd-neutral-700 !default;
112
+ $dd-link: $dd-primary-400 !default;
113
+ $dd-surface: $dd-neutral-900 !default;
114
+ $dd-surface-dim: $dd-neutral-800 !default;
115
+ $dd-surface-container-low: $dd-neutral-800 !default;
116
+ $dd-surface-container: $dd-neutral-800 !default;
117
+ $dd-surface-container-high: $dd-neutral-700 !default;
118
+ $dd-surface-container-highest: $dd-neutral-600 !default;
119
+ $dd-bg-section: $dd-neutral-800 !default;
120
+ $dd-bg-card: $dd-neutral-800 !default;
121
+ $dd-bg-elevated: $dd-neutral-800 !default;
122
122
 
123
123
  // === 文本色 ===
124
- $dd-text-primary: $dd-neutral-50;
125
- $dd-text-secondary: $dd-neutral-200;
126
- $dd-text-tertiary: $dd-neutral-400;
124
+ $dd-text-primary: $dd-neutral-50 !default;
125
+ $dd-text-secondary: $dd-neutral-200 !default;
126
+ $dd-text-tertiary: $dd-neutral-400 !default;
127
127
 
128
128
  // === 边框 ===
129
- $dd-border-default: $dd-neutral-700;
130
- $dd-border-subtle: rgba(255, 255, 255, 0.06);
131
- $dd-border-strong: rgba(255, 255, 255, 0.12);
129
+ $dd-border-default: $dd-neutral-700 !default;
130
+ $dd-border-subtle: rgba(255, 255, 255, 0.06) !default;
131
+ $dd-border-strong: rgba(255, 255, 255, 0.12) !default;
132
132
 
133
133
  // === 交互态 ===
134
- $dd-interactive-hover: rgba(255, 255, 255, 0.08);
135
- $dd-interactive-focus: rgba(255, 255, 255, 0.12);
136
- $dd-interactive-press: rgba(255, 255, 255, 0.16);
134
+ $dd-interactive-hover: rgba(255, 255, 255, 0.08) !default;
135
+ $dd-interactive-focus: rgba(255, 255, 255, 0.12) !default;
136
+ $dd-interactive-press: rgba(255, 255, 255, 0.16) !default;
137
137
 
138
138
  // === 纯色辅助 ===
139
- $dd-color-white: #FFFFFF;
140
- $dd-color-black: #000000;
141
- $dd-color-primary-deep: #1A1200;
142
- $dd-color-bronze: #CD7F32;
139
+ $dd-color-white: #FFFFFF !default;
140
+ $dd-color-black: #000000 !default;
141
+ $dd-color-primary-deep: #1A1200 !default;
142
+ $dd-color-bronze: #CD7F32 !default;
143
143
 
144
144
  // === 遮罩 ===
145
- $dd-color-overlay: rgba(0, 0, 0, 0.5);
146
- $dd-color-overlay-strong: rgba(0, 0, 0, 0.6);
147
- $dd-color-overlay-soft: rgba(0, 0, 0, 0.4);
145
+ $dd-color-overlay: rgba(0, 0, 0, 0.5) !default;
146
+ $dd-color-overlay-strong: rgba(0, 0, 0, 0.6) !default;
147
+ $dd-color-overlay-soft: rgba(0, 0, 0, 0.4) !default;
148
148
 
149
- $dd-surface-hover: rgba(255, 255, 255, 0.1);
150
- $dd-surface-press: rgba(255, 255, 255, 0.2);
151
- $dd-sheen: rgba(255, 255, 255, 0.25);
152
- $dd-text-glow: rgba(255, 255, 255, 0.3);
149
+ $dd-surface-hover: rgba(255, 255, 255, 0.1) !default;
150
+ $dd-surface-press: rgba(255, 255, 255, 0.2) !default;
151
+ $dd-sheen: rgba(255, 255, 255, 0.25) !default;
152
+ $dd-text-glow: rgba(255, 255, 255, 0.3) !default;
153
+
154
+ // === 浅色语义集 (数据源: .design_library/didao-ktv/css.json color.light + colors_and_type.css .light) ===
155
+ // ★推导 = 设计系统 .light 未显式定义,按暗色镜像推导
156
+ // 品牌色(primary/accent 及各语义色阶)不随明暗主题翻转,无浅色对应集
157
+ $dd-light-bg: #FAFAFA !default;
158
+ $dd-light-fg: $dd-neutral-900 !default;
159
+ $dd-light-muted: $dd-neutral-500 !default;
160
+ $dd-light-rule: $dd-neutral-200 !default;
161
+ $dd-light-link: $dd-primary-600 !default;
162
+ $dd-light-surface: #FFFFFF !default;
163
+ $dd-light-surface-dim: $dd-neutral-50 !default;
164
+ $dd-light-surface-container-low: $dd-neutral-50 !default;
165
+ $dd-light-surface-container: #FFFFFF !default;
166
+ $dd-light-surface-container-high: #EEEEEE !default;
167
+ $dd-light-surface-container-highest: $dd-neutral-100 !default;
168
+ $dd-light-bg-section: $dd-neutral-50 !default;
169
+ $dd-light-bg-card: #FFFFFF !default;
170
+ $dd-light-bg-elevated: #FFFFFF !default; // ★推导(同 bg-card)
171
+ $dd-light-text-primary: $dd-neutral-900 !default;
172
+ $dd-light-text-secondary: $dd-neutral-700 !default; // ★推导
173
+ $dd-light-text-tertiary: $dd-neutral-500 !default; // ★推导
174
+ $dd-light-border-default: $dd-neutral-200 !default;
175
+ $dd-light-border-subtle: rgba(0, 0, 0, 0.06) !default;
176
+ $dd-light-border-strong: rgba(0, 0, 0, 0.12) !default; // ★推导
177
+ $dd-light-interactive-hover: rgba(0, 0, 0, 0.06) !default;
178
+ $dd-light-interactive-focus: rgba(0, 0, 0, 0.1) !default;
179
+ $dd-light-interactive-press: rgba(0, 0, 0, 0.14) !default;
180
+ $dd-light-color-overlay: rgba(0, 0, 0, 0.45) !default;
181
+ $dd-light-color-overlay-strong: rgba(0, 0, 0, 0.55) !default;
182
+ $dd-light-color-overlay-soft: rgba(0, 0, 0, 0.35) !default;
183
+ $dd-light-surface-hover: rgba(0, 0, 0, 0.06) !default;
184
+ $dd-light-surface-press: rgba(0, 0, 0, 0.1) !default;
185
+ $dd-light-sheen: rgba(255, 255, 255, 0.5) !default;
186
+ $dd-light-text-glow: rgba(0, 0, 0, 0.1) !default;
187
+ $dd-light-shadow-1: 0 2px 8px rgba(0, 0, 0, 0.06) !default;
188
+ $dd-light-shadow-2: 0 8px 24px rgba(0, 0, 0, 0.08) !default;
189
+ $dd-light-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1) !default;
190
+ $dd-light-shadow-4: 0 24px 64px rgba(0, 0, 0, 0.12) !default;
191
+ $dd-light-shadow-5: 0 40px 80px rgba(0, 0, 0, 0.15) !default;
192
+ $dd-light-glass-bg: rgba(255, 255, 255, 0.72) !default;
193
+ $dd-light-glass-bg-strong: rgba(255, 255, 255, 0.85) !default;
194
+ $dd-light-glass-bg-solid: rgba(255, 255, 255, 0.95) !default;
195
+ $dd-light-glass-border: rgba(0, 0, 0, 0.06) !default;
196
+ $dd-light-step-inactive-color: $dd-neutral-400 !default;
197
+ $dd-light-gradient-neutral: linear-gradient(135deg, $dd-neutral-200, $dd-neutral-400) !default;
198
+ $dd-light-gradient-text-gold-light: linear-gradient(135deg, $dd-primary-500, $dd-primary-700) !default;
199
+ $dd-light-gradient-spot-gold: radial-gradient(ellipse at top, rgba(245, 166, 35, 0.06), transparent 60%) !default;
200
+ $dd-light-gradient-spot-blue: radial-gradient(ellipse at bottom right, rgba(45, 75, 160, 0.06), transparent 60%) !default;
153
201
 
154
202
  // === 字体 (from css.json font.family) ===
155
- $dd-font-display: 'Playfair Display', serif;
156
- $dd-font-heading: 'Noto Sans SC', sans-serif;
157
- $dd-font-body: 'Noto Sans SC', sans-serif;
158
- $dd-font-mono: 'Noto Sans SC', sans-serif;
203
+ $dd-font-display: 'Playfair Display', serif !default;
204
+ $dd-font-heading: 'Noto Sans SC', sans-serif !default;
205
+ $dd-font-body: 'Noto Sans SC', sans-serif !default;
206
+ $dd-font-mono: 'Noto Sans SC', sans-serif !default;
159
207
 
160
208
  // === 字号 (from css.json font.size) ===
161
- $dd-font-size-display: 32px;
162
- $dd-font-size-h1: 24px;
163
- $dd-font-size-h2: 20px;
164
- $dd-font-size-h3: 18px;
165
- $dd-font-size-h4: 16px;
166
- $dd-font-size-body: 14px;
167
- $dd-font-size-lead: 16px;
168
- $dd-font-size-caption: 12px;
169
- $dd-font-size-overline: 10px;
170
- $dd-font-size-mono: 14px;
209
+ $dd-font-size-display: 32px !default;
210
+ $dd-font-size-h1: 24px !default;
211
+ $dd-font-size-h2: 20px !default;
212
+ $dd-font-size-h3: 18px !default;
213
+ $dd-font-size-h4: 16px !default;
214
+ $dd-font-size-body: 14px !default;
215
+ $dd-font-size-lead: 16px !default;
216
+ $dd-font-size-caption: 12px !default;
217
+ $dd-font-size-overline: 10px !default;
218
+ $dd-font-size-mono: 14px !default;
171
219
 
172
220
  // === 字重 (from css.json font.weight) ===
173
- $dd-font-weight-display: 900;
174
- $dd-font-weight-h1: 800;
175
- $dd-font-weight-h2: 800;
176
- $dd-font-weight-h3: 700;
177
- $dd-font-weight-h4: 700;
178
- $dd-font-weight-body: 500;
179
- $dd-font-weight-lead: 500;
180
- $dd-font-weight-caption: 500;
181
- $dd-font-weight-overline: 500;
182
- $dd-font-weight-mono: 600;
221
+ $dd-font-weight-display: 900 !default;
222
+ $dd-font-weight-h1: 800 !default;
223
+ $dd-font-weight-h2: 800 !default;
224
+ $dd-font-weight-h3: 700 !default;
225
+ $dd-font-weight-h4: 700 !default;
226
+ $dd-font-weight-body: 500 !default;
227
+ $dd-font-weight-lead: 500 !default;
228
+ $dd-font-weight-caption: 500 !default;
229
+ $dd-font-weight-overline: 500 !default;
230
+ $dd-font-weight-mono: 600 !default;
183
231
 
184
232
  // === 行高 (from css.json font.lineHeight) ===
185
- $dd-line-height-display: 1.1;
186
- $dd-line-height-h1: 1.15;
187
- $dd-line-height-h2: 1.2;
188
- $dd-line-height-h3: 1.3;
189
- $dd-line-height-h4: 1.4;
190
- $dd-line-height-body: 1.6;
191
- $dd-line-height-lead: 1.7;
192
- $dd-line-height-caption: 1.5;
193
- $dd-line-height-overline: 1.4;
194
- $dd-line-height-mono: 1.6;
233
+ $dd-line-height-display: 1.1 !default;
234
+ $dd-line-height-h1: 1.15 !default;
235
+ $dd-line-height-h2: 1.2 !default;
236
+ $dd-line-height-h3: 1.3 !default;
237
+ $dd-line-height-h4: 1.4 !default;
238
+ $dd-line-height-body: 1.6 !default;
239
+ $dd-line-height-lead: 1.7 !default;
240
+ $dd-line-height-caption: 1.5 !default;
241
+ $dd-line-height-overline: 1.4 !default;
242
+ $dd-line-height-mono: 1.6 !default;
195
243
 
196
244
  // === 间距 (from css.json spacing) ===
197
- $dd-space-1: 4px;
198
- $dd-space-2: 8px;
199
- $dd-space-3: 12px;
200
- $dd-space-4: 16px;
201
- $dd-space-5: 24px;
202
- $dd-space-6: 32px;
203
- $dd-space-7: 48px;
204
- $dd-space-8: 64px;
245
+ $dd-space-1: 4px !default;
246
+ $dd-space-2: 8px !default;
247
+ $dd-space-3: 12px !default;
248
+ $dd-space-4: 16px !default;
249
+ $dd-space-5: 24px !default;
250
+ $dd-space-6: 32px !default;
251
+ $dd-space-7: 48px !default;
252
+ $dd-space-8: 64px !default;
205
253
 
206
254
  // === 圆角 (from css.json radius) ===
207
- $dd-radius-sm: 2px;
208
- $dd-radius-md: 4px;
209
- $dd-radius-lg: 8px;
210
- $dd-radius-xl: 12px;
211
- $dd-radius-2xl: 16px;
212
- $dd-radius-full: 9999px;
255
+ $dd-radius-sm: 2px !default;
256
+ $dd-radius-md: 4px !default;
257
+ $dd-radius-lg: 8px !default;
258
+ $dd-radius-xl: 12px !default;
259
+ $dd-radius-2xl: 16px !default;
260
+ $dd-radius-full: 9999px !default;
213
261
 
214
262
  // === 尺寸 (from css.json size) ===
215
- $dd-size-icon-sm: 16px;
216
- $dd-size-icon-md: 20px;
217
- $dd-size-icon-lg: 24px;
218
- $dd-size-icon-xl: 32px;
219
- $dd-size-button-sm: 32px;
220
- $dd-size-button-md: 44px;
221
- $dd-size-button-lg: 50px;
222
- $dd-size-input-height: 44px;
263
+ $dd-size-icon-sm: 16px !default;
264
+ $dd-size-icon-md: 20px !default;
265
+ $dd-size-icon-lg: 24px !default;
266
+ $dd-size-icon-xl: 32px !default;
267
+ $dd-size-button-sm: 32px !default;
268
+ $dd-size-button-md: 44px !default;
269
+ $dd-size-button-lg: 50px !default;
270
+ $dd-size-input-height: 44px !default;
223
271
 
224
272
  // 按钮内边距
225
- $dd-button-padding-x-sm: 12px;
226
- $dd-button-padding-x-md: 16px;
227
- $dd-button-padding-x-lg: 24px;
228
- $dd-button-height-sm: $dd-size-button-sm;
229
- $dd-button-height-md: $dd-size-button-md;
230
- $dd-button-height-lg: $dd-size-button-lg;
231
- $dd-input-height: $dd-size-input-height;
273
+ $dd-button-padding-x-sm: 12px !default;
274
+ $dd-button-padding-x-md: 16px !default;
275
+ $dd-button-padding-x-lg: 24px !default;
276
+ $dd-button-height-sm: $dd-size-button-sm !default;
277
+ $dd-button-height-md: $dd-size-button-md !default;
278
+ $dd-button-height-lg: $dd-size-button-lg !default;
279
+ $dd-input-height: $dd-size-input-height !default;
232
280
 
233
281
  // === 阴影 (from css.json shadow) ===
234
- $dd-shadow-1: 0 2px 8px rgba(0, 0, 0, 0.3);
235
- $dd-shadow-2: 0 8px 24px rgba(0, 0, 0, 0.4);
236
- $dd-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.5);
237
- $dd-shadow-4: 0 24px 64px rgba(0, 0, 0, 0.6);
238
- $dd-shadow-5: 0 40px 80px rgba(0, 0, 0, 0.7);
282
+ $dd-shadow-1: 0 2px 8px rgba(0, 0, 0, 0.3) !default;
283
+ $dd-shadow-2: 0 8px 24px rgba(0, 0, 0, 0.4) !default;
284
+ $dd-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.5) !default;
285
+ $dd-shadow-4: 0 24px 64px rgba(0, 0, 0, 0.6) !default;
286
+ $dd-shadow-5: 0 40px 80px rgba(0, 0, 0, 0.7) !default;
239
287
 
240
288
  // === 发光阴影(sm / md / lg 三档)===
241
289
  // 品牌色发光
242
- $dd-shadow-glow-gold-sm: 0 0 8px rgba(245, 166, 35, 0.4);
243
- $dd-shadow-glow-gold-md: 0 0 20px rgba(245, 166, 35, 0.4);
244
- $dd-shadow-glow-gold-lg: 0 0 24px rgba(245, 166, 35, 0.4), 0 0 48px rgba(245, 166, 35, 0.2);
245
- $dd-shadow-glow-blue-sm: 0 0 8px rgba(45, 75, 160, 0.4);
246
- $dd-shadow-glow-blue-md: 0 0 20px rgba(45, 75, 160, 0.5);
247
- $dd-shadow-glow-blue-lg: 0 0 24px rgba(45, 75, 160, 0.5), 0 0 48px rgba(45, 75, 160, 0.25);
290
+ $dd-shadow-glow-gold-sm: 0 0 8px rgba(245, 166, 35, 0.4) !default;
291
+ $dd-shadow-glow-gold-md: 0 0 20px rgba(245, 166, 35, 0.4) !default;
292
+ $dd-shadow-glow-gold-lg: 0 0 24px rgba(245, 166, 35, 0.4), 0 0 48px rgba(245, 166, 35, 0.2) !default;
293
+ $dd-shadow-glow-blue-sm: 0 0 8px rgba(45, 75, 160, 0.4) !default;
294
+ $dd-shadow-glow-blue-md: 0 0 20px rgba(45, 75, 160, 0.5) !default;
295
+ $dd-shadow-glow-blue-lg: 0 0 24px rgba(45, 75, 160, 0.5), 0 0 48px rgba(45, 75, 160, 0.25) !default;
248
296
  // 语义色发光 — md 带暗影托底,lg 为双层霓虹
249
- $dd-shadow-glow-success-sm: 0 0 8px rgba(76, 175, 80, 0.4);
250
- $dd-shadow-glow-success-md: 0 0 16px rgba(76, 175, 80, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
251
- $dd-shadow-glow-success-lg: 0 0 24px rgba(76, 175, 80, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4);
252
- $dd-shadow-glow-warning-sm: 0 0 8px rgba(249, 168, 37, 0.4);
253
- $dd-shadow-glow-warning-md: 0 0 16px rgba(249, 168, 37, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
254
- $dd-shadow-glow-warning-lg: 0 0 24px rgba(249, 168, 37, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4);
255
- $dd-shadow-glow-error-sm: 0 0 8px rgba(229, 57, 53, 0.4);
256
- $dd-shadow-glow-error-md: 0 0 16px rgba(229, 57, 53, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
257
- $dd-shadow-glow-error-lg: 0 0 24px rgba(229, 57, 53, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4);
258
- $dd-shadow-glow-info-sm: 0 0 8px rgba(0, 188, 212, 0.4);
259
- $dd-shadow-glow-info-md: 0 0 16px rgba(0, 188, 212, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
260
- $dd-shadow-glow-info-lg: 0 0 24px rgba(0, 188, 212, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4);
261
- $dd-shadow-glow-vip-sm: 0 0 8px rgba(156, 39, 176, 0.4);
262
- $dd-shadow-glow-vip-md: 0 0 16px rgba(156, 39, 176, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
263
- $dd-shadow-glow-vip-lg: 0 0 24px rgba(156, 39, 176, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4);
297
+ $dd-shadow-glow-success-sm: 0 0 8px rgba(76, 175, 80, 0.4) !default;
298
+ $dd-shadow-glow-success-md: 0 0 16px rgba(76, 175, 80, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3) !default;
299
+ $dd-shadow-glow-success-lg: 0 0 24px rgba(76, 175, 80, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4) !default;
300
+ $dd-shadow-glow-warning-sm: 0 0 8px rgba(249, 168, 37, 0.4) !default;
301
+ $dd-shadow-glow-warning-md: 0 0 16px rgba(249, 168, 37, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3) !default;
302
+ $dd-shadow-glow-warning-lg: 0 0 24px rgba(249, 168, 37, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4) !default;
303
+ $dd-shadow-glow-error-sm: 0 0 8px rgba(229, 57, 53, 0.4) !default;
304
+ $dd-shadow-glow-error-md: 0 0 16px rgba(229, 57, 53, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3) !default;
305
+ $dd-shadow-glow-error-lg: 0 0 24px rgba(229, 57, 53, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4) !default;
306
+ $dd-shadow-glow-info-sm: 0 0 8px rgba(0, 188, 212, 0.4) !default;
307
+ $dd-shadow-glow-info-md: 0 0 16px rgba(0, 188, 212, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3) !default;
308
+ $dd-shadow-glow-info-lg: 0 0 24px rgba(0, 188, 212, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4) !default;
309
+ $dd-shadow-glow-vip-sm: 0 0 8px rgba(156, 39, 176, 0.4) !default;
310
+ $dd-shadow-glow-vip-md: 0 0 16px rgba(156, 39, 176, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3) !default;
311
+ $dd-shadow-glow-vip-lg: 0 0 24px rgba(156, 39, 176, 0.5), 0 8px 24px rgba(0, 0, 0, 0.4) !default;
264
312
 
265
313
  // === 渐变 (from css.json gradient) ===
266
314
  // 主渐变:135° 对角,400→600
267
- $dd-gradient-primary: linear-gradient(135deg, $dd-primary-400, $dd-primary-600);
268
- $dd-gradient-accent: linear-gradient(135deg, $dd-accent-400, $dd-accent-600);
269
- $dd-gradient-success: linear-gradient(135deg, $dd-success-400, $dd-success-600);
270
- $dd-gradient-warning: linear-gradient(135deg, $dd-warning-400, $dd-warning-600);
271
- $dd-gradient-error: linear-gradient(135deg, $dd-error-400, $dd-error-600);
272
- $dd-gradient-info: linear-gradient(135deg, $dd-info-400, $dd-info-600);
273
- $dd-gradient-vip: linear-gradient(135deg, $dd-vip-500, $dd-vip-700);
274
- $dd-gradient-neutral: linear-gradient(135deg, $dd-neutral-600, $dd-neutral-800);
315
+ $dd-gradient-primary: linear-gradient(135deg, $dd-primary-400, $dd-primary-600) !default;
316
+ $dd-gradient-accent: linear-gradient(135deg, $dd-accent-400, $dd-accent-600) !default;
317
+ $dd-gradient-success: linear-gradient(135deg, $dd-success-400, $dd-success-600) !default;
318
+ $dd-gradient-warning: linear-gradient(135deg, $dd-warning-400, $dd-warning-600) !default;
319
+ $dd-gradient-error: linear-gradient(135deg, $dd-error-400, $dd-error-600) !default;
320
+ $dd-gradient-info: linear-gradient(135deg, $dd-info-400, $dd-info-600) !default;
321
+ $dd-gradient-vip: linear-gradient(135deg, $dd-vip-500, $dd-vip-700) !default;
322
+ $dd-gradient-neutral: linear-gradient(135deg, $dd-neutral-600, $dd-neutral-800) !default;
275
323
  // 宽幅渐变:135° 对角,300→600/700
276
- $dd-gradient-primary-wide: linear-gradient(135deg, $dd-primary-300, $dd-primary-600);
277
- $dd-gradient-accent-wide: linear-gradient(135deg, $dd-accent-300, $dd-accent-700);
324
+ $dd-gradient-primary-wide: linear-gradient(135deg, $dd-primary-300, $dd-primary-600) !default;
325
+ $dd-gradient-accent-wide: linear-gradient(135deg, $dd-accent-300, $dd-accent-700) !default;
278
326
  // 三段渐变:135° 三段色(金属质感)
279
- $dd-gradient-primary-triple: linear-gradient(135deg, $dd-primary-300 0%, $dd-primary-500 50%, $dd-primary-600 100%);
327
+ $dd-gradient-primary-triple: linear-gradient(135deg, $dd-primary-300 0%, $dd-primary-500 50%, $dd-primary-600 100%) !default;
280
328
  // 垂直渐变:180°
281
- $dd-gradient-primary-v: linear-gradient(180deg, $dd-primary-400, $dd-primary-600);
329
+ $dd-gradient-primary-v: linear-gradient(180deg, $dd-primary-400, $dd-primary-600) !default;
282
330
  // 水平渐变:90°
283
- $dd-gradient-primary-h: linear-gradient(90deg, $dd-primary-400, $dd-primary-600);
284
- $dd-gradient-accent-h: linear-gradient(90deg, $dd-accent-400, $dd-accent-600);
331
+ $dd-gradient-primary-h: linear-gradient(90deg, $dd-primary-400, $dd-primary-600) !default;
332
+ $dd-gradient-accent-h: linear-gradient(90deg, $dd-accent-400, $dd-accent-600) !default;
285
333
  // 文字渐变
286
- $dd-gradient-text-gold: linear-gradient(135deg, $dd-primary-300, $dd-primary-500);
287
- $dd-gradient-text-gold-light: linear-gradient(135deg, $dd-color-white, $dd-primary-200);
288
- $dd-gradient-text-blue: linear-gradient(135deg, $dd-accent-300, $dd-accent-500);
334
+ $dd-gradient-text-gold: linear-gradient(135deg, $dd-primary-300, $dd-primary-500) !default;
335
+ $dd-gradient-text-gold-light: linear-gradient(135deg, $dd-color-white, $dd-primary-200) !default;
336
+ $dd-gradient-text-blue: linear-gradient(135deg, $dd-accent-300, $dd-accent-500) !default;
289
337
  // 装饰径向光斑
290
- $dd-gradient-spot-gold: radial-gradient(ellipse at top, rgba(245, 166, 35, 0.08), transparent 60%);
291
- $dd-gradient-spot-blue: radial-gradient(ellipse at bottom right, rgba(45, 75, 160, 0.08), transparent 60%);
338
+ $dd-gradient-spot-gold: radial-gradient(ellipse at top, rgba(245, 166, 35, 0.08), transparent 60%) !default;
339
+ $dd-gradient-spot-blue: radial-gradient(ellipse at bottom right, rgba(45, 75, 160, 0.08), transparent 60%) !default;
292
340
  // sheen 高光渐变
293
- $dd-gradient-sheen-top: linear-gradient(180deg, $dd-sheen 0%, transparent 100%);
294
- $dd-gradient-sheen-diagonal: linear-gradient(135deg, $dd-sheen 0%, transparent 50%);
341
+ $dd-gradient-sheen-top: linear-gradient(180deg, $dd-sheen 0%, transparent 100%) !default;
342
+ $dd-gradient-sheen-diagonal: linear-gradient(135deg, $dd-sheen 0%, transparent 50%) !default;
295
343
 
296
344
  // === 玻璃拟态 (from colors_and_type.css) ===
297
- $dd-glass-bg: rgba(23, 23, 23, 0.72);
298
- $dd-glass-bg-strong: rgba(23, 23, 23, 0.85);
299
- $dd-glass-bg-solid: rgba(23, 23, 23, 0.95);
300
- $dd-glass-border: rgba(255, 255, 255, 0.08);
301
- $dd-glass-blur-sm: 4px;
302
- $dd-glass-blur-md: 10px;
303
- $dd-glass-blur: 20px;
304
- $dd-glass-blur-lg: 24px;
345
+ $dd-glass-bg: rgba(23, 23, 23, 0.72) !default;
346
+ $dd-glass-bg-strong: rgba(23, 23, 23, 0.85) !default;
347
+ $dd-glass-bg-solid: rgba(23, 23, 23, 0.95) !default;
348
+ $dd-glass-border: rgba(255, 255, 255, 0.08) !default;
349
+ $dd-glass-blur-sm: 4px !default;
350
+ $dd-glass-blur-md: 10px !default;
351
+ $dd-glass-blur: 20px !default;
352
+ $dd-glass-blur-lg: 24px !default;
305
353
 
306
354
  // === 组件特定 (from colors_and_type.css Component-specific) ===
307
- $dd-popup-duration: 0.3s;
308
- $dd-popover-offset: 8px;
309
- $dd-step-inactive-color: $dd-neutral-500;
310
- $dd-step-active-color: $dd-primary-500;
355
+ $dd-popup-duration: 0.3s !default;
356
+ $dd-popover-offset: 8px !default;
357
+ $dd-step-inactive-color: $dd-neutral-500 !default;
358
+ $dd-step-active-color: $dd-primary-500 !default;
311
359
 
312
360
  // === z-index 层级 ===
313
- $dd-z-index-base: 1;
314
- $dd-z-index-sticky: 100;
315
- $dd-z-index-fixed: 1000;
316
- $dd-z-index-overlay: 2000;
317
- $dd-z-index-popup: 2001;
318
- $dd-z-index-modal: 3000;
319
- $dd-z-index-toast: 4000;
320
- $dd-z-index-loading: 5000;
361
+ $dd-z-index-base: 1 !default;
362
+ $dd-z-index-sticky: 100 !default;
363
+ $dd-z-index-fixed: 1000 !default;
364
+ $dd-z-index-overlay: 2000 !default;
365
+ $dd-z-index-popup: 2001 !default;
366
+ $dd-z-index-modal: 3000 !default;
367
+ $dd-z-index-toast: 4000 !default;
368
+ $dd-z-index-loading: 5000 !default;
321
369
  // 全屏裁剪覆盖层:三画布 + 操作条需压过全部全局层级
322
- $dd-z-index-cropper: 100000;
370
+ $dd-z-index-cropper: 100000 !default;
@@ -0,0 +1,36 @@
1
+ // ============================================================
2
+ // DidaoUI-uniapp 主题输出(消费者在 App.vue 全局样式中引入)
3
+ //
4
+ // 引入: App.vue <style lang="scss"> @import '@didaoktv/didaoui-uniapp/scss/theme';
5
+ // 切换: 根节点挂 .dark / .light
6
+ // - H5: document.documentElement.classList.add('light')
7
+ // - 小程序: 页面根节点 :class="themeClass"(变量沿节点树继承进组件)
8
+ // 新主题: 全局样式中 .my-theme { @include dd-theme(( 'primary': #d32f2f, ... )); }
9
+ // 只写 delta,未覆盖变量自动继承默认值;可与 .dark/.light 并列组合。
10
+ // (需 @import '@didaoktv/didaoui-uniapp/scss/theme-tokens' 引入 mixin,或直接写 --dd-* 原生变量)
11
+ // 不引入本文件时,组件靠 var(--dd-x, #{$dd-x}) 的 SCSS 兜底值维持暗色默认。
12
+ // ============================================================
13
+ @import './variables';
14
+ @import './theme-tokens';
15
+
16
+ /* #ifdef H5 */
17
+ :root {
18
+ @include dd-theme($dd-vars-base);
19
+ @include dd-theme($dd-theme-dark);
20
+ }
21
+ /* #endif */
22
+
23
+ /* #ifndef H5 */
24
+ page {
25
+ @include dd-theme($dd-vars-base);
26
+ @include dd-theme($dd-theme-dark);
27
+ }
28
+ /* #endif */
29
+
30
+ .dark {
31
+ @include dd-theme($dd-theme-dark);
32
+ }
33
+
34
+ .light {
35
+ @include dd-theme($dd-theme-light);
36
+ }