wx-sky-ui 1.0.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 (235) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +138 -0
  3. package/miniprogram_dist/action-sheet/index.d.ts +0 -0
  4. package/miniprogram_dist/action-sheet/index.js +67 -0
  5. package/miniprogram_dist/action-sheet/index.js.map +1 -0
  6. package/miniprogram_dist/action-sheet/index.json +6 -0
  7. package/miniprogram_dist/action-sheet/index.wxml +62 -0
  8. package/miniprogram_dist/action-sheet/index.wxss +227 -0
  9. package/miniprogram_dist/action-sheet/index.wxss.map +1 -0
  10. package/miniprogram_dist/badge/index.d.ts +0 -0
  11. package/miniprogram_dist/badge/index.js +114 -0
  12. package/miniprogram_dist/badge/index.js.map +1 -0
  13. package/miniprogram_dist/badge/index.json +6 -0
  14. package/miniprogram_dist/badge/index.wxml +16 -0
  15. package/miniprogram_dist/badge/index.wxss +105 -0
  16. package/miniprogram_dist/badge/index.wxss.map +1 -0
  17. package/miniprogram_dist/button/index.d.ts +0 -0
  18. package/miniprogram_dist/button/index.js +140 -0
  19. package/miniprogram_dist/button/index.js.map +1 -0
  20. package/miniprogram_dist/button/index.json +6 -0
  21. package/miniprogram_dist/button/index.wxml +28 -0
  22. package/miniprogram_dist/button/index.wxss +211 -0
  23. package/miniprogram_dist/button/index.wxss.map +1 -0
  24. package/miniprogram_dist/cell/index.d.ts +0 -0
  25. package/miniprogram_dist/cell/index.js +55 -0
  26. package/miniprogram_dist/cell/index.js.map +1 -0
  27. package/miniprogram_dist/cell/index.json +6 -0
  28. package/miniprogram_dist/cell/index.wxml +37 -0
  29. package/miniprogram_dist/cell/index.wxss +82 -0
  30. package/miniprogram_dist/cell/index.wxss.map +1 -0
  31. package/miniprogram_dist/checkbox/index.d.ts +0 -0
  32. package/miniprogram_dist/checkbox/index.js +50 -0
  33. package/miniprogram_dist/checkbox/index.js.map +1 -0
  34. package/miniprogram_dist/checkbox/index.json +6 -0
  35. package/miniprogram_dist/checkbox/index.wxml +16 -0
  36. package/miniprogram_dist/checkbox/index.wxss +87 -0
  37. package/miniprogram_dist/checkbox/index.wxss.map +1 -0
  38. package/miniprogram_dist/common/utils/index.d.ts +22 -0
  39. package/miniprogram_dist/common/utils/index.js +46 -0
  40. package/miniprogram_dist/common/utils/index.js.map +1 -0
  41. package/miniprogram_dist/datetime-picker/calendar.d.ts +1 -0
  42. package/miniprogram_dist/datetime-picker/calendar.js +424 -0
  43. package/miniprogram_dist/datetime-picker/calendar.js.map +1 -0
  44. package/miniprogram_dist/datetime-picker/calendar.json +8 -0
  45. package/miniprogram_dist/datetime-picker/calendar.wxml +86 -0
  46. package/miniprogram_dist/datetime-picker/calendar.wxss +352 -0
  47. package/miniprogram_dist/datetime-picker/calendar.wxss.map +1 -0
  48. package/miniprogram_dist/datetime-picker/index.d.ts +1 -0
  49. package/miniprogram_dist/datetime-picker/index.js +672 -0
  50. package/miniprogram_dist/datetime-picker/index.js.map +1 -0
  51. package/miniprogram_dist/datetime-picker/index.json +9 -0
  52. package/miniprogram_dist/datetime-picker/index.wxml +125 -0
  53. package/miniprogram_dist/datetime-picker/index.wxss +243 -0
  54. package/miniprogram_dist/datetime-picker/index.wxss.map +1 -0
  55. package/miniprogram_dist/datetime-picker/time-picker.d.ts +0 -0
  56. package/miniprogram_dist/datetime-picker/time-picker.js +83 -0
  57. package/miniprogram_dist/datetime-picker/time-picker.js.map +1 -0
  58. package/miniprogram_dist/datetime-picker/time-picker.json +6 -0
  59. package/miniprogram_dist/datetime-picker/time-picker.wxml +36 -0
  60. package/miniprogram_dist/datetime-picker/time-picker.wxss +75 -0
  61. package/miniprogram_dist/datetime-picker/time-picker.wxss.map +1 -0
  62. package/miniprogram_dist/datetime-picker/util.d.ts +172 -0
  63. package/miniprogram_dist/datetime-picker/util.js +404 -0
  64. package/miniprogram_dist/datetime-picker/util.js.map +1 -0
  65. package/miniprogram_dist/dialog/index.d.ts +0 -0
  66. package/miniprogram_dist/dialog/index.js +81 -0
  67. package/miniprogram_dist/dialog/index.js.map +1 -0
  68. package/miniprogram_dist/dialog/index.json +6 -0
  69. package/miniprogram_dist/dialog/index.wxml +55 -0
  70. package/miniprogram_dist/dialog/index.wxss +143 -0
  71. package/miniprogram_dist/dialog/index.wxss.map +1 -0
  72. package/miniprogram_dist/dropdown-select/index.d.ts +4 -0
  73. package/miniprogram_dist/dropdown-select/index.js +84 -0
  74. package/miniprogram_dist/dropdown-select/index.js.map +1 -0
  75. package/miniprogram_dist/dropdown-select/index.json +6 -0
  76. package/miniprogram_dist/dropdown-select/index.wxml +42 -0
  77. package/miniprogram_dist/dropdown-select/index.wxss +189 -0
  78. package/miniprogram_dist/dropdown-select/index.wxss.map +1 -0
  79. package/miniprogram_dist/editor/index.d.ts +0 -0
  80. package/miniprogram_dist/editor/index.js +254 -0
  81. package/miniprogram_dist/editor/index.js.map +1 -0
  82. package/miniprogram_dist/editor/index.json +6 -0
  83. package/miniprogram_dist/editor/index.wxml +142 -0
  84. package/miniprogram_dist/editor/index.wxss +613 -0
  85. package/miniprogram_dist/editor/index.wxss.map +1 -0
  86. package/miniprogram_dist/float-button/index.d.ts +0 -0
  87. package/miniprogram_dist/float-button/index.js +281 -0
  88. package/miniprogram_dist/float-button/index.js.map +1 -0
  89. package/miniprogram_dist/float-button/index.json +8 -0
  90. package/miniprogram_dist/float-button/index.wxml +68 -0
  91. package/miniprogram_dist/float-button/index.wxss +119 -0
  92. package/miniprogram_dist/float-button/index.wxss.map +1 -0
  93. package/miniprogram_dist/html-renderer/index.d.ts +1 -0
  94. package/miniprogram_dist/html-renderer/index.js +74 -0
  95. package/miniprogram_dist/html-renderer/index.js.map +1 -0
  96. package/miniprogram_dist/html-renderer/index.json +6 -0
  97. package/miniprogram_dist/html-renderer/index.wxml +79 -0
  98. package/miniprogram_dist/html-renderer/index.wxss +200 -0
  99. package/miniprogram_dist/html-renderer/index.wxss.map +1 -0
  100. package/miniprogram_dist/html-renderer/parser.d.ts +12 -0
  101. package/miniprogram_dist/html-renderer/parser.js +103 -0
  102. package/miniprogram_dist/html-renderer/parser.js.map +1 -0
  103. package/miniprogram_dist/icon/index.d.ts +1 -0
  104. package/miniprogram_dist/icon/index.js +231 -0
  105. package/miniprogram_dist/icon/index.js.map +1 -0
  106. package/miniprogram_dist/icon/index.json +6 -0
  107. package/miniprogram_dist/icon/index.wxml +13 -0
  108. package/miniprogram_dist/icon/index.wxss +14 -0
  109. package/miniprogram_dist/icon/index.wxss.map +1 -0
  110. package/miniprogram_dist/icon/presets.d.ts +7 -0
  111. package/miniprogram_dist/icon/presets.js +68 -0
  112. package/miniprogram_dist/icon/presets.js.map +1 -0
  113. package/miniprogram_dist/index.d.ts +6 -0
  114. package/miniprogram_dist/index.js +9 -0
  115. package/miniprogram_dist/index.js.map +1 -0
  116. package/miniprogram_dist/input/index.d.ts +0 -0
  117. package/miniprogram_dist/input/index.js +137 -0
  118. package/miniprogram_dist/input/index.js.map +1 -0
  119. package/miniprogram_dist/input/index.json +6 -0
  120. package/miniprogram_dist/input/index.wxml +57 -0
  121. package/miniprogram_dist/input/index.wxss +331 -0
  122. package/miniprogram_dist/input/index.wxss.map +1 -0
  123. package/miniprogram_dist/nav-bar/index.d.ts +0 -0
  124. package/miniprogram_dist/nav-bar/index.js +162 -0
  125. package/miniprogram_dist/nav-bar/index.js.map +1 -0
  126. package/miniprogram_dist/nav-bar/index.json +9 -0
  127. package/miniprogram_dist/nav-bar/index.wxml +46 -0
  128. package/miniprogram_dist/nav-bar/index.wxss +160 -0
  129. package/miniprogram_dist/nav-bar/index.wxss.map +1 -0
  130. package/miniprogram_dist/popup-select/index.d.ts +4 -0
  131. package/miniprogram_dist/popup-select/index.js +70 -0
  132. package/miniprogram_dist/popup-select/index.js.map +1 -0
  133. package/miniprogram_dist/popup-select/index.json +6 -0
  134. package/miniprogram_dist/popup-select/index.wxml +48 -0
  135. package/miniprogram_dist/popup-select/index.wxss +184 -0
  136. package/miniprogram_dist/popup-select/index.wxss.map +1 -0
  137. package/miniprogram_dist/progress/index.d.ts +0 -0
  138. package/miniprogram_dist/progress/index.js +120 -0
  139. package/miniprogram_dist/progress/index.js.map +1 -0
  140. package/miniprogram_dist/progress/index.json +6 -0
  141. package/miniprogram_dist/progress/index.wxml +31 -0
  142. package/miniprogram_dist/progress/index.wxss +163 -0
  143. package/miniprogram_dist/progress/index.wxss.map +1 -0
  144. package/miniprogram_dist/radio/index.d.ts +0 -0
  145. package/miniprogram_dist/radio/index.js +52 -0
  146. package/miniprogram_dist/radio/index.js.map +1 -0
  147. package/miniprogram_dist/radio/index.json +6 -0
  148. package/miniprogram_dist/radio/index.wxml +16 -0
  149. package/miniprogram_dist/radio/index.wxss +62 -0
  150. package/miniprogram_dist/radio/index.wxss.map +1 -0
  151. package/miniprogram_dist/rate/index.d.ts +0 -0
  152. package/miniprogram_dist/rate/index.js +128 -0
  153. package/miniprogram_dist/rate/index.js.map +1 -0
  154. package/miniprogram_dist/rate/index.json +6 -0
  155. package/miniprogram_dist/rate/index.wxml +31 -0
  156. package/miniprogram_dist/rate/index.wxss +89 -0
  157. package/miniprogram_dist/rate/index.wxss.map +1 -0
  158. package/miniprogram_dist/select-input/index.d.ts +0 -0
  159. package/miniprogram_dist/select-input/index.js +116 -0
  160. package/miniprogram_dist/select-input/index.js.map +1 -0
  161. package/miniprogram_dist/select-input/index.json +6 -0
  162. package/miniprogram_dist/select-input/index.wxml +43 -0
  163. package/miniprogram_dist/select-input/index.wxss +143 -0
  164. package/miniprogram_dist/select-input/index.wxss.map +1 -0
  165. package/miniprogram_dist/skeleton/index.d.ts +0 -0
  166. package/miniprogram_dist/skeleton/index.js +102 -0
  167. package/miniprogram_dist/skeleton/index.js.map +1 -0
  168. package/miniprogram_dist/skeleton/index.json +6 -0
  169. package/miniprogram_dist/skeleton/index.wxml +40 -0
  170. package/miniprogram_dist/skeleton/index.wxss +103 -0
  171. package/miniprogram_dist/skeleton/index.wxss.map +1 -0
  172. package/miniprogram_dist/slider/index.d.ts +0 -0
  173. package/miniprogram_dist/slider/index.js +180 -0
  174. package/miniprogram_dist/slider/index.js.map +1 -0
  175. package/miniprogram_dist/slider/index.json +6 -0
  176. package/miniprogram_dist/slider/index.wxml +38 -0
  177. package/miniprogram_dist/slider/index.wxss +132 -0
  178. package/miniprogram_dist/slider/index.wxss.map +1 -0
  179. package/miniprogram_dist/subsection/index.d.ts +0 -0
  180. package/miniprogram_dist/subsection/index.js +85 -0
  181. package/miniprogram_dist/subsection/index.js.map +1 -0
  182. package/miniprogram_dist/subsection/index.json +6 -0
  183. package/miniprogram_dist/subsection/index.wxml +55 -0
  184. package/miniprogram_dist/subsection/index.wxss +150 -0
  185. package/miniprogram_dist/subsection/index.wxss.map +1 -0
  186. package/miniprogram_dist/swipe-cell/index.d.ts +0 -0
  187. package/miniprogram_dist/swipe-cell/index.js +91 -0
  188. package/miniprogram_dist/swipe-cell/index.js.map +1 -0
  189. package/miniprogram_dist/swipe-cell/index.json +6 -0
  190. package/miniprogram_dist/swipe-cell/index.wxml +30 -0
  191. package/miniprogram_dist/swipe-cell/index.wxss +42 -0
  192. package/miniprogram_dist/swipe-cell/index.wxss.map +1 -0
  193. package/miniprogram_dist/swiper/index.d.ts +0 -0
  194. package/miniprogram_dist/swiper/index.js +82 -0
  195. package/miniprogram_dist/swiper/index.js.map +1 -0
  196. package/miniprogram_dist/swiper/index.json +6 -0
  197. package/miniprogram_dist/swiper/index.wxml +53 -0
  198. package/miniprogram_dist/swiper/index.wxss +123 -0
  199. package/miniprogram_dist/swiper/index.wxss.map +1 -0
  200. package/miniprogram_dist/switch/index.d.ts +0 -0
  201. package/miniprogram_dist/switch/index.js +53 -0
  202. package/miniprogram_dist/switch/index.js.map +1 -0
  203. package/miniprogram_dist/switch/index.json +6 -0
  204. package/miniprogram_dist/switch/index.wxml +21 -0
  205. package/miniprogram_dist/switch/index.wxss +198 -0
  206. package/miniprogram_dist/switch/index.wxss.map +1 -0
  207. package/miniprogram_dist/tag/index.d.ts +0 -0
  208. package/miniprogram_dist/tag/index.js +114 -0
  209. package/miniprogram_dist/tag/index.js.map +1 -0
  210. package/miniprogram_dist/tag/index.json +6 -0
  211. package/miniprogram_dist/tag/index.wxml +19 -0
  212. package/miniprogram_dist/tag/index.wxss +182 -0
  213. package/miniprogram_dist/tag/index.wxss.map +1 -0
  214. package/miniprogram_dist/textarea/index.d.ts +0 -0
  215. package/miniprogram_dist/textarea/index.js +143 -0
  216. package/miniprogram_dist/textarea/index.js.map +1 -0
  217. package/miniprogram_dist/textarea/index.json +6 -0
  218. package/miniprogram_dist/textarea/index.wxml +59 -0
  219. package/miniprogram_dist/textarea/index.wxss +242 -0
  220. package/miniprogram_dist/textarea/index.wxss.map +1 -0
  221. package/miniprogram_dist/toast/index.d.ts +0 -0
  222. package/miniprogram_dist/toast/index.js +92 -0
  223. package/miniprogram_dist/toast/index.js.map +1 -0
  224. package/miniprogram_dist/toast/index.json +8 -0
  225. package/miniprogram_dist/toast/index.wxml +30 -0
  226. package/miniprogram_dist/toast/index.wxss +116 -0
  227. package/miniprogram_dist/toast/index.wxss.map +1 -0
  228. package/miniprogram_dist/uploader/index.d.ts +8 -0
  229. package/miniprogram_dist/uploader/index.js +192 -0
  230. package/miniprogram_dist/uploader/index.js.map +1 -0
  231. package/miniprogram_dist/uploader/index.json +8 -0
  232. package/miniprogram_dist/uploader/index.wxml +88 -0
  233. package/miniprogram_dist/uploader/index.wxss +179 -0
  234. package/miniprogram_dist/uploader/index.wxss.map +1 -0
  235. package/package.json +70 -0
@@ -0,0 +1,613 @@
1
+ @charset "UTF-8";
2
+ /* ========================================== */
3
+ /* Skyline-UI Editor 富文本编辑器组件样式 */
4
+ /* ========================================== */
5
+ .sky-editor {
6
+ display: block;
7
+ width: 100%;
8
+ box-sizing: border-box;
9
+ /* 编辑器白底容器 */
10
+ }
11
+ .sky-editor .sky-editor__container {
12
+ width: 100%;
13
+ min-height: 480rpx;
14
+ background-color: #ffffff;
15
+ border: 1px solid #e9ecef;
16
+ border-radius: 16rpx;
17
+ padding: 24rpx 30rpx;
18
+ box-sizing: border-box;
19
+ box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.005);
20
+ }
21
+ .sky-editor {
22
+ /* 输入核心区域 */
23
+ }
24
+ .sky-editor .sky-editor__input {
25
+ width: 100%;
26
+ height: 100%;
27
+ min-height: 430rpx;
28
+ font-size: 28rpx;
29
+ line-height: 1.68;
30
+ color: #343a40;
31
+ }
32
+ .sky-editor {
33
+ /* 键盘平滑避让安全占位 */
34
+ }
35
+ .sky-editor .sky-editor__safe-padding {
36
+ width: 100%;
37
+ transition: height 150ms cubic-bezier(0.25, 1, 0.5, 1);
38
+ }
39
+ .sky-editor {
40
+ /* ==================== 高档悬浮毛玻璃工具栏 (100% 溢出可见) ==================== */
41
+ }
42
+ .sky-editor .sky-editor__toolbar {
43
+ position: fixed;
44
+ left: 30rpx;
45
+ right: 30rpx;
46
+ height: 88rpx;
47
+ border-radius: 44rpx;
48
+ z-index: 99;
49
+ /* 采用高保真 backdrop-filter 毛玻璃滤镜,高雅通透 */
50
+ backdrop-filter: blur(20px);
51
+ -webkit-backdrop-filter: blur(20px);
52
+ background-color: rgba(255, 255, 255, 0.86);
53
+ border: 1px solid rgba(255, 255, 255, 0.6);
54
+ /* 必须强制溢出可见,确保上方调色气泡绝不被隐藏裁剪 */
55
+ overflow: visible !important;
56
+ /* 多重极弱环境阴影 */
57
+ box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.06), 0 1rpx 3rpx rgba(0, 0, 0, 0.02);
58
+ /* 工具栏入场与隐藏的阻尼缩现动画 */
59
+ opacity: 0;
60
+ transform: translateY(30rpx) scale(0.95);
61
+ transition: opacity 250ms cubic-bezier(0.25, 1, 0.5, 1), transform 250ms cubic-bezier(0.175, 0.885, 0.32, 1.15), bottom 150ms cubic-bezier(0.25, 1, 0.5, 1);
62
+ }
63
+ .sky-editor .sky-editor__toolbar.sky-editor__toolbar--visible {
64
+ opacity: 1;
65
+ transform: translateY(0) scale(1);
66
+ }
67
+ .sky-editor {
68
+ /* 均匀平铺的工具项容器 (无 scroll-view 裁剪) */
69
+ }
70
+ .sky-editor .sky-editor__toolbar-content {
71
+ display: flex;
72
+ flex-direction: row;
73
+ align-items: center;
74
+ justify-content: space-between; /* 完美自适应平铺 9 个操作按钮 */
75
+ width: 100%;
76
+ height: 100%;
77
+ padding: 0 26rpx;
78
+ box-sizing: border-box;
79
+ overflow: visible !important;
80
+ }
81
+ .sky-editor {
82
+ /* 编辑器操作按键单项 (微调至 54rpx 确保无滚动平铺) */
83
+ }
84
+ .sky-editor .sky-editor__tool-item {
85
+ width: 54rpx;
86
+ height: 54rpx;
87
+ border-radius: 50%;
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ color: #495057;
92
+ flex-shrink: 0;
93
+ box-sizing: border-box;
94
+ overflow: visible !important;
95
+ transition: all 120ms ease;
96
+ }
97
+ .sky-editor .sky-editor__tool-item:active {
98
+ background-color: rgba(0, 0, 0, 0.06);
99
+ }
100
+ .sky-editor .sky-editor__tool-item--active {
101
+ color: hsl(250, 85%, 55%) !important;
102
+ background-color: hsl(250, 85%, 95%) !important;
103
+ }
104
+ .sky-editor {
105
+ /* ==================== 莫兰迪微型调色盘气泡面板 ==================== */
106
+ }
107
+ .sky-editor .sky-editor__color-picker {
108
+ position: absolute;
109
+ bottom: 78rpx; /* 微调距离,贴紧工具项 */
110
+ left: 50%;
111
+ transform: translateX(-50%);
112
+ z-index: 100;
113
+ display: grid;
114
+ grid-template-columns: repeat(8, 1fr);
115
+ gap: 14rpx;
116
+ padding: 16rpx;
117
+ border-radius: 24rpx;
118
+ width: max-content;
119
+ backdrop-filter: blur(20px);
120
+ -webkit-backdrop-filter: blur(20px);
121
+ background-color: rgba(255, 255, 255, 0.96);
122
+ border: 1px solid rgba(0, 0, 0, 0.08);
123
+ box-shadow: 0 12rpx 36rpx rgba(0, 0, 0, 0.12);
124
+ /* 弹性出场阻尼 */
125
+ animation: picker-bounce-anim 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
126
+ /* 气泡底角小尖角 */
127
+ }
128
+ .sky-editor .sky-editor__color-picker::after {
129
+ content: "";
130
+ position: absolute;
131
+ bottom: -12rpx;
132
+ left: 50%;
133
+ transform: translateX(-50%);
134
+ border-width: 6rpx;
135
+ border-style: solid;
136
+ border-color: rgba(255, 255, 255, 0.96) transparent transparent transparent;
137
+ }
138
+ .sky-editor .color-dot {
139
+ width: 32rpx;
140
+ height: 32rpx;
141
+ border-radius: 50%;
142
+ box-sizing: border-box;
143
+ border: 2rpx solid rgba(0, 0, 0, 0.08);
144
+ transition: all 120ms ease;
145
+ }
146
+ .sky-editor .color-dot:active {
147
+ transform: scale(0.8);
148
+ }
149
+ .sky-editor .color-dot--active {
150
+ transform: scale(1.15);
151
+ box-shadow: 0 0 0 2rpx hsl(250, 85%, 55%);
152
+ }
153
+ .sky-editor {
154
+ /* ==================== 胶囊字号选择气泡面板 ==================== */
155
+ }
156
+ .sky-editor .sky-editor__font-size-picker {
157
+ position: absolute;
158
+ bottom: 78rpx;
159
+ left: 50%;
160
+ transform: translateX(-50%);
161
+ z-index: 100;
162
+ display: grid;
163
+ grid-template-columns: repeat(4, 1fr);
164
+ gap: 12rpx;
165
+ padding: 16rpx;
166
+ border-radius: 24rpx;
167
+ width: max-content;
168
+ backdrop-filter: blur(20px);
169
+ -webkit-backdrop-filter: blur(20px);
170
+ background-color: rgba(255, 255, 255, 0.96);
171
+ border: 1px solid rgba(0, 0, 0, 0.08);
172
+ box-shadow: 0 12rpx 36rpx rgba(0, 0, 0, 0.12);
173
+ /* 弹性出场阻尼 */
174
+ animation: picker-bounce-anim 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
175
+ /* 气泡底角小尖角 */
176
+ }
177
+ .sky-editor .sky-editor__font-size-picker::after {
178
+ content: "";
179
+ position: absolute;
180
+ bottom: -12rpx;
181
+ left: 50%;
182
+ transform: translateX(-50%);
183
+ border-width: 6rpx;
184
+ border-style: solid;
185
+ border-color: rgba(255, 255, 255, 0.96) transparent transparent transparent;
186
+ }
187
+ .sky-editor .font-size-btn {
188
+ font-size: 20rpx;
189
+ color: #495057;
190
+ padding: 6rpx 14rpx;
191
+ border-radius: 12rpx;
192
+ background-color: rgba(0, 0, 0, 0.04);
193
+ transition: all 120ms ease;
194
+ white-space: nowrap;
195
+ min-width: 76rpx;
196
+ text-align: center;
197
+ box-sizing: border-box;
198
+ }
199
+ .sky-editor .font-size-btn:active {
200
+ transform: scale(0.9);
201
+ }
202
+ .sky-editor .font-size-btn--active {
203
+ color: #ffffff;
204
+ background-color: hsl(250, 85%, 55%);
205
+ font-weight: bold;
206
+ }
207
+ .sky-editor {
208
+ /* ==================== 纯 CSS 精绘高保真图标 ==================== */
209
+ /* 1. Bold 加粗 */
210
+ }
211
+ .sky-editor .icon-bold {
212
+ width: 16rpx;
213
+ height: 22rpx;
214
+ border: 2rpx solid #495057;
215
+ border-radius: 3px 6px 6px 3px;
216
+ position: relative;
217
+ box-sizing: border-box;
218
+ }
219
+ .sky-editor .icon-bold::after {
220
+ content: "";
221
+ position: absolute;
222
+ left: -2rpx;
223
+ top: 8rpx;
224
+ right: -2rpx;
225
+ height: 2rpx;
226
+ background-color: #495057;
227
+ }
228
+ .sky-editor {
229
+ /* 2. Italic 斜体 */
230
+ }
231
+ .sky-editor .icon-italic {
232
+ width: 16rpx;
233
+ height: 22rpx;
234
+ position: relative;
235
+ box-sizing: border-box;
236
+ }
237
+ .sky-editor .icon-italic::before {
238
+ content: "";
239
+ position: absolute;
240
+ width: 2rpx;
241
+ height: 22rpx;
242
+ background-color: #495057;
243
+ left: 7rpx;
244
+ transform: rotate(15deg);
245
+ }
246
+ .sky-editor .icon-italic::after {
247
+ content: "";
248
+ position: absolute;
249
+ width: 12rpx;
250
+ height: 2rpx;
251
+ background-color: #495057;
252
+ top: 0;
253
+ left: 4rpx;
254
+ box-shadow: 0 20rpx 0 #495057;
255
+ }
256
+ .sky-editor {
257
+ /* 3. Underline 下划线 */
258
+ }
259
+ .sky-editor .icon-underline {
260
+ width: 16rpx;
261
+ height: 22rpx;
262
+ position: relative;
263
+ box-sizing: border-box;
264
+ }
265
+ .sky-editor .icon-underline::before {
266
+ content: "";
267
+ position: absolute;
268
+ left: 0;
269
+ top: 0;
270
+ width: 16rpx;
271
+ height: 14rpx;
272
+ border: 2rpx solid #495057;
273
+ border-top: none;
274
+ border-radius: 0 0 8rpx 8rpx;
275
+ box-sizing: border-box;
276
+ }
277
+ .sky-editor .icon-underline::after {
278
+ content: "";
279
+ position: absolute;
280
+ left: -2rpx;
281
+ bottom: 2rpx;
282
+ width: 20rpx;
283
+ height: 2rpx;
284
+ background-color: #495057;
285
+ }
286
+ .sky-editor {
287
+ /* 3.2. FontSize 字体大小 (纯 CSS 精绘高保真大 A 小 A 组合图标) */
288
+ }
289
+ .sky-editor .icon-font-size {
290
+ width: 26rpx;
291
+ height: 22rpx;
292
+ position: relative;
293
+ box-sizing: border-box;
294
+ /* 左侧大 A 符号 */
295
+ }
296
+ .sky-editor .icon-font-size::before {
297
+ content: "";
298
+ position: absolute;
299
+ left: 0;
300
+ top: 2rpx;
301
+ width: 14rpx;
302
+ height: 18rpx;
303
+ border-left: 2rpx solid #495057;
304
+ border-right: 2rpx solid #495057;
305
+ border-top: 2rpx solid #495057;
306
+ border-top-left-radius: 7rpx;
307
+ border-top-right-radius: 7rpx;
308
+ background: linear-gradient(to bottom, transparent 9rpx, #495057 9rpx, #495057 11rpx, transparent 11rpx);
309
+ box-sizing: border-box;
310
+ }
311
+ .sky-editor .icon-font-size {
312
+ /* 右侧小 A 符号 */
313
+ }
314
+ .sky-editor .icon-font-size::after {
315
+ content: "";
316
+ position: absolute;
317
+ right: 0;
318
+ bottom: 2rpx;
319
+ width: 10rpx;
320
+ height: 12rpx;
321
+ border-left: 2rpx solid #495057;
322
+ border-right: 2rpx solid #495057;
323
+ border-top: 2rpx solid #495057;
324
+ border-top-left-radius: 5rpx;
325
+ border-top-right-radius: 5rpx;
326
+ background: linear-gradient(to bottom, transparent 5rpx, #495057 5rpx, #495057 7rpx, transparent 7rpx);
327
+ box-sizing: border-box;
328
+ }
329
+ .sky-editor {
330
+ /* 3.5. Color 字体颜色 (重构为挺拔、极具高辨识度的手绘大写 A 图标) */
331
+ }
332
+ .sky-editor .icon-color {
333
+ width: 22rpx;
334
+ height: 22rpx;
335
+ position: relative;
336
+ box-sizing: border-box;
337
+ /* 通过大倾角圆角,使其自然过渡为 A 字形的尖顶拱门 */
338
+ }
339
+ .sky-editor .icon-color::before {
340
+ content: "";
341
+ position: absolute;
342
+ left: 2rpx;
343
+ top: 0;
344
+ width: 18rpx;
345
+ height: 18rpx;
346
+ border-left: 2.5rpx solid #495057;
347
+ border-right: 2.5rpx solid #495057;
348
+ border-top: 2.5rpx solid #495057;
349
+ border-top-left-radius: 9rpx;
350
+ border-top-right-radius: 9rpx;
351
+ box-sizing: border-box;
352
+ }
353
+ .sky-editor .icon-color {
354
+ /* A 的中间一小横 */
355
+ }
356
+ .sky-editor .icon-color::after {
357
+ content: "";
358
+ position: absolute;
359
+ left: 4rpx;
360
+ top: 10rpx;
361
+ width: 14rpx;
362
+ height: 2rpx;
363
+ background-color: #495057;
364
+ }
365
+ .sky-editor .icon-color {
366
+ /* 底部动态彩色小横杠 */
367
+ }
368
+ .sky-editor .icon-color .icon-color-bar {
369
+ position: absolute;
370
+ left: 1rpx;
371
+ bottom: 0;
372
+ width: 20rpx;
373
+ height: 4rpx;
374
+ border-radius: 1px;
375
+ transition: background-color 150ms ease;
376
+ }
377
+ .sky-editor {
378
+ /* 4. 左对齐 */
379
+ }
380
+ .sky-editor .icon-align-left {
381
+ width: 22rpx;
382
+ height: 18rpx;
383
+ position: relative;
384
+ box-sizing: border-box;
385
+ }
386
+ .sky-editor .icon-align-left::before {
387
+ content: "";
388
+ position: absolute;
389
+ left: 0;
390
+ top: 0;
391
+ width: 22rpx;
392
+ height: 2rpx;
393
+ background-color: #495057;
394
+ box-shadow: 0 5rpx 0 #495057, 0 10rpx 0 #495057, 0 15rpx 0 #495057;
395
+ }
396
+ .sky-editor .icon-align-left::after {
397
+ content: "";
398
+ position: absolute;
399
+ left: 0;
400
+ top: 5rpx;
401
+ width: 14rpx;
402
+ height: 2rpx;
403
+ background-color: #495057;
404
+ box-shadow: 0 10rpx 0 #495057;
405
+ }
406
+ .sky-editor {
407
+ /* 5. 居中对齐 */
408
+ }
409
+ .sky-editor .icon-align-center {
410
+ width: 22rpx;
411
+ height: 18rpx;
412
+ position: relative;
413
+ box-sizing: border-box;
414
+ }
415
+ .sky-editor .icon-align-center::before {
416
+ content: "";
417
+ position: absolute;
418
+ left: 0;
419
+ top: 0;
420
+ width: 22rpx;
421
+ height: 2rpx;
422
+ background-color: #495057;
423
+ box-shadow: 0 10rpx 0 #495057;
424
+ }
425
+ .sky-editor .icon-align-center::after {
426
+ content: "";
427
+ position: absolute;
428
+ left: 4rpx;
429
+ top: 5rpx;
430
+ width: 14rpx;
431
+ height: 2rpx;
432
+ background-color: #495057;
433
+ box-shadow: 0 10rpx 0 #495057;
434
+ }
435
+ .sky-editor {
436
+ /* 6. 右对齐 */
437
+ }
438
+ .sky-editor .icon-align-right {
439
+ width: 22rpx;
440
+ height: 18rpx;
441
+ position: relative;
442
+ box-sizing: border-box;
443
+ }
444
+ .sky-editor .icon-align-right::before {
445
+ content: "";
446
+ position: absolute;
447
+ right: 0;
448
+ top: 0;
449
+ width: 22rpx;
450
+ height: 2rpx;
451
+ background-color: #495057;
452
+ box-shadow: 0 5rpx 0 #495057, 0 10rpx 0 #495057, 0 15rpx 0 #495057;
453
+ }
454
+ .sky-editor .icon-align-right::after {
455
+ content: "";
456
+ position: absolute;
457
+ right: 0;
458
+ top: 5rpx;
459
+ width: 14rpx;
460
+ height: 2rpx;
461
+ background-color: #495057;
462
+ box-shadow: 0 10rpx 0 #495057;
463
+ }
464
+ .sky-editor {
465
+ /* 7. Image 图片 */
466
+ }
467
+ .sky-editor .icon-image {
468
+ width: 22rpx;
469
+ height: 18rpx;
470
+ border: 2rpx solid #495057;
471
+ border-radius: 2px;
472
+ position: relative;
473
+ box-sizing: border-box;
474
+ overflow: hidden;
475
+ }
476
+ .sky-editor .icon-image::before {
477
+ content: "";
478
+ position: absolute;
479
+ width: 12rpx;
480
+ height: 12rpx;
481
+ border: 2rpx solid #495057;
482
+ transform: rotate(45deg);
483
+ bottom: -6rpx;
484
+ left: 2rpx;
485
+ box-sizing: border-box;
486
+ }
487
+ .sky-editor .icon-image::after {
488
+ content: "";
489
+ position: absolute;
490
+ width: 4rpx;
491
+ height: 4rpx;
492
+ border-radius: 50%;
493
+ background-color: #495057;
494
+ top: 3rpx;
495
+ right: 4rpx;
496
+ }
497
+ .sky-editor {
498
+ /* 8. Clear 清除格式 */
499
+ }
500
+ .sky-editor .icon-clear {
501
+ width: 22rpx;
502
+ height: 18rpx;
503
+ position: relative;
504
+ box-sizing: border-box;
505
+ /* 扫把柄 */
506
+ }
507
+ .sky-editor .icon-clear::before {
508
+ content: "";
509
+ position: absolute;
510
+ width: 2rpx;
511
+ height: 12rpx;
512
+ background-color: #495057;
513
+ left: 10rpx;
514
+ top: 0;
515
+ transform: rotate(25deg);
516
+ }
517
+ .sky-editor .icon-clear {
518
+ /* 扫把头 */
519
+ }
520
+ .sky-editor .icon-clear::after {
521
+ content: "";
522
+ position: absolute;
523
+ width: 14rpx;
524
+ height: 8rpx;
525
+ border: 2rpx solid #495057;
526
+ border-top: none;
527
+ border-radius: 0 0 3px 3px;
528
+ left: 4rpx;
529
+ bottom: 0;
530
+ box-sizing: border-box;
531
+ }
532
+ .sky-editor {
533
+ /* ==================== 激活态强制覆写为高亮品牌蓝紫 ==================== */
534
+ }
535
+ .sky-editor .sky-editor__tool-item--active .icon-font-size::before {
536
+ border-color: hsl(250, 85%, 55%) !important;
537
+ background: linear-gradient(to bottom, transparent 9rpx, hsl(250, 85%, 55%) 9rpx, hsl(250, 85%, 55%) 11rpx, transparent 11rpx) !important;
538
+ }
539
+ .sky-editor .sky-editor__tool-item--active .icon-font-size::after {
540
+ border-color: hsl(250, 85%, 55%) !important;
541
+ background: linear-gradient(to bottom, transparent 5rpx, hsl(250, 85%, 55%) 5rpx, hsl(250, 85%, 55%) 7rpx, transparent 7rpx) !important;
542
+ }
543
+ .sky-editor .sky-editor__tool-item--active .icon-bold {
544
+ border-color: hsl(250, 85%, 55%) !important;
545
+ }
546
+ .sky-editor .sky-editor__tool-item--active .icon-bold::after {
547
+ background-color: hsl(250, 85%, 55%) !important;
548
+ }
549
+ .sky-editor .sky-editor__tool-item--active .icon-italic::before {
550
+ background-color: hsl(250, 85%, 55%) !important;
551
+ }
552
+ .sky-editor .sky-editor__tool-item--active .icon-italic::after {
553
+ background-color: hsl(250, 85%, 55%) !important;
554
+ box-shadow: 0 20rpx 0 hsl(250, 85%, 55%) !important;
555
+ }
556
+ .sky-editor .sky-editor__tool-item--active .icon-underline::before {
557
+ border-color: hsl(250, 85%, 55%) !important;
558
+ }
559
+ .sky-editor .sky-editor__tool-item--active .icon-underline::after {
560
+ background-color: hsl(250, 85%, 55%) !important;
561
+ }
562
+ .sky-editor .sky-editor__tool-item--active .icon-color::before {
563
+ border-color: hsl(250, 85%, 55%) !important;
564
+ }
565
+ .sky-editor .sky-editor__tool-item--active .icon-color::after {
566
+ background-color: hsl(250, 85%, 55%) !important;
567
+ }
568
+ .sky-editor .sky-editor__tool-item--active .icon-align-left::before {
569
+ background-color: hsl(250, 85%, 55%) !important;
570
+ box-shadow: 0 5rpx 0 hsl(250, 85%, 55%), 0 10rpx 0 hsl(250, 85%, 55%), 0 15rpx 0 hsl(250, 85%, 55%) !important;
571
+ }
572
+ .sky-editor .sky-editor__tool-item--active .icon-align-left::after {
573
+ background-color: hsl(250, 85%, 55%) !important;
574
+ box-shadow: 0 10rpx 0 hsl(250, 85%, 55%) !important;
575
+ }
576
+ .sky-editor .sky-editor__tool-item--active .icon-align-center::before {
577
+ background-color: hsl(250, 85%, 55%) !important;
578
+ box-shadow: 0 10rpx 0 hsl(250, 85%, 55%) !important;
579
+ }
580
+ .sky-editor .sky-editor__tool-item--active .icon-align-center::after {
581
+ background-color: hsl(250, 85%, 55%) !important;
582
+ box-shadow: 0 10rpx 0 hsl(250, 85%, 55%) !important;
583
+ }
584
+ .sky-editor .sky-editor__tool-item--active .icon-align-right::before {
585
+ background-color: hsl(250, 85%, 55%) !important;
586
+ box-shadow: 0 5rpx 0 hsl(250, 85%, 55%), 0 10rpx 0 hsl(250, 85%, 55%), 0 15rpx 0 hsl(250, 85%, 55%) !important;
587
+ }
588
+ .sky-editor .sky-editor__tool-item--active .icon-align-right::after {
589
+ background-color: hsl(250, 85%, 55%) !important;
590
+ box-shadow: 0 10rpx 0 hsl(250, 85%, 55%) !important;
591
+ }
592
+
593
+ /* ==================== 气泡面板弹性入场阻尼 ==================== */
594
+ @keyframes picker-bounce-anim {
595
+ from {
596
+ opacity: 0;
597
+ transform: translateX(-50%) translateY(12rpx) scale(0.85);
598
+ }
599
+ to {
600
+ opacity: 1;
601
+ transform: translateX(-50%) translateY(0) scale(1);
602
+ }
603
+ }
604
+ @keyframes picker-bounce-anim-safari {
605
+ from {
606
+ opacity: 0;
607
+ transform: translateX(-50%) translateY(12rpx) scale(0.85);
608
+ }
609
+ to {
610
+ opacity: 1;
611
+ transform: translateX(-50%) translateY(0) scale(1);
612
+ }
613
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["editor/index.scss","common/style/theme.scss"],"names":[],"mappings":";AAGA;AACA;AACA;AAEA;EACE;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA,kBC4Bc;ED3Bd;EACA;EACA;EACA;EACA;;AAdJ;AAiBE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA,OCqBe;;AD7CnB;AA2BE;;AACA;EACE;EACA;;AA9BJ;AAiCE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;AAGA;EACA;EACA;EACA;;AAIA;EACE;EACA;;AAhEN;AAoEE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AA9EJ;AAiFE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OC7Ce;ED8Cf;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;EACA;;AAtGN;AA0GE;;AACA;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AA7JN;AAiKE;;AACA;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA,OC5Je;ED6Jf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE,OClLY;EDmLZ,kBCtNc;EDuNd;;AAzNN;AA6NE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCnMa;;AD5CnB;AAmPE;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA,kBCnNa;EDoNb;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA,kBC7Na;ED8Nb;EACA;EAEA;;AA7QN;AAiRE;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBChQa;;AD5CnB;AAgTE;;AACA;EACE;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AApBJ;AAuBE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAtVN;AA0VE;;AACA;EACE;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAnBJ;AAsBE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBC7Ua;;AD+SjB;AAiCE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AApYN;AAwYE;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBC1Wa;ED2Wb;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCvXa;EDwXb;;AApaN;AAwaE;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBC1Ya;ED2Yb;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCrZa;EDsZb;;AAlcN;AAscE;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCxaa;EDyab;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCrba;EDsbb;;AAleN;AAseE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA,kBCtda;EDudb;EACA;;AApgBN;AAwgBE;;AACA;EACE;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA,kBCzea;ED0eb;EACA;EACA;;AAfJ;AAkBE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAtiBN;AA0iBE;;AAGI;EACE;EACA;;AAEF;EACE;EACA;;AAGJ;EACE;;AACA;EAAW;;AAGX;EAAY;;AACZ;EAAW;EAAiD;;AAG5D;EAAY;;AACZ;EAAW;;AAGX;EAAY;;AACZ;EAAW;;AAGX;EACE;EACA;;AAEF;EACE;EACA;;AAIF;EACE;EACA;;AAEF;EACE;EACA;;AAIF;EACE;EACA;;AAEF;EACE;EACA;;;AAMR;AACA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAGJ;EACE;IACE;IACA;;EAEF;IACE;IACA","file":"index.wxss","sourcesContent":["@use \"../common/style/theme.scss\" as *;\n@use \"../common/style/mixins.scss\" as *;\n\n/* ========================================== */\n/* Skyline-UI Editor 富文本编辑器组件样式 */\n/* ========================================== */\n\n.sky-editor {\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n /* 编辑器白底容器 */\n .sky-editor__container {\n width: 100%;\n min-height: 480rpx;\n background-color: $sky-color-white;\n border: 1px solid $sky-color-gray-3;\n border-radius: 16rpx;\n padding: 24rpx 30rpx;\n box-sizing: border-box;\n box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.005);\n }\n\n /* 输入核心区域 */\n .sky-editor__input {\n width: 100%;\n height: 100%;\n min-height: 430rpx;\n font-size: 28rpx;\n line-height: 1.68;\n color: $sky-color-gray-8;\n }\n\n /* 键盘平滑避让安全占位 */\n .sky-editor__safe-padding {\n width: 100%;\n transition: height 150ms cubic-bezier(0.25, 1, 0.5, 1);\n }\n\n /* ==================== 高档悬浮毛玻璃工具栏 (100% 溢出可见) ==================== */\n .sky-editor__toolbar {\n position: fixed;\n left: 30rpx;\n right: 30rpx;\n height: 88rpx;\n border-radius: 44rpx;\n z-index: 99;\n \n /* 采用高保真 backdrop-filter 毛玻璃滤镜,高雅通透 */\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background-color: rgba(255, 255, 255, 0.86);\n border: 1px solid rgba(255, 255, 255, 0.6);\n \n /* 必须强制溢出可见,确保上方调色气泡绝不被隐藏裁剪 */\n overflow: visible !important;\n \n /* 多重极弱环境阴影 */\n box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.06),\n 0 1rpx 3rpx rgba(0, 0, 0, 0.02);\n \n /* 工具栏入场与隐藏的阻尼缩现动画 */\n opacity: 0;\n transform: translateY(30rpx) scale(0.95);\n transition: opacity 250ms cubic-bezier(0.25, 1, 0.5, 1),\n transform 250ms cubic-bezier(0.175, 0.885, 0.32, 1.15),\n bottom 150ms cubic-bezier(0.25, 1, 0.5, 1);\n \n &.sky-editor__toolbar--visible {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n /* 均匀平铺的工具项容器 (无 scroll-view 裁剪) */\n .sky-editor__toolbar-content {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between; /* 完美自适应平铺 9 个操作按钮 */\n width: 100%;\n height: 100%;\n padding: 0 26rpx;\n box-sizing: border-box;\n overflow: visible !important;\n }\n\n /* 编辑器操作按键单项 (微调至 54rpx 确保无滚动平铺) */\n .sky-editor__tool-item {\n width: 54rpx;\n height: 54rpx;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $sky-color-gray-7;\n flex-shrink: 0;\n box-sizing: border-box;\n overflow: visible !important;\n \n transition: all 120ms ease;\n \n &:active {\n background-color: rgba(0, 0, 0, 0.06);\n }\n \n &--active {\n color: $sky-color-primary !important;\n background-color: $sky-color-primary-light !important;\n }\n }\n\n /* ==================== 莫兰迪微型调色盘气泡面板 ==================== */\n .sky-editor__color-picker {\n position: absolute;\n bottom: 78rpx; /* 微调距离,贴紧工具项 */\n left: 50%;\n transform: translateX(-50%);\n z-index: 100;\n \n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 14rpx;\n padding: 16rpx;\n border-radius: 24rpx;\n width: max-content;\n \n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background-color: rgba(255, 255, 255, 0.96);\n border: 1px solid rgba(0, 0, 0, 0.08);\n box-shadow: 0 12rpx 36rpx rgba(0, 0, 0, 0.12);\n \n /* 弹性出场阻尼 */\n animation: picker-bounce-anim 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n\n /* 气泡底角小尖角 */\n &::after {\n content: \"\";\n position: absolute;\n bottom: -12rpx;\n left: 50%;\n transform: translateX(-50%);\n border-width: 6rpx;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.96) transparent transparent transparent;\n }\n }\n\n .color-dot {\n width: 32rpx;\n height: 32rpx;\n border-radius: 50%;\n box-sizing: border-box;\n border: 2rpx solid rgba(0, 0, 0, 0.08);\n transition: all 120ms ease;\n \n &:active {\n transform: scale(0.8);\n }\n\n &--active {\n transform: scale(1.15);\n box-shadow: 0 0 0 2rpx $sky-color-primary;\n }\n }\n\n /* ==================== 胶囊字号选择气泡面板 ==================== */\n .sky-editor__font-size-picker {\n position: absolute;\n bottom: 78rpx;\n left: 50%;\n transform: translateX(-50%);\n z-index: 100;\n \n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12rpx;\n padding: 16rpx;\n border-radius: 24rpx;\n width: max-content;\n \n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background-color: rgba(255, 255, 255, 0.96);\n border: 1px solid rgba(0, 0, 0, 0.08);\n box-shadow: 0 12rpx 36rpx rgba(0, 0, 0, 0.12);\n \n /* 弹性出场阻尼 */\n animation: picker-bounce-anim 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n\n /* 气泡底角小尖角 */\n &::after {\n content: \"\";\n position: absolute;\n bottom: -12rpx;\n left: 50%;\n transform: translateX(-50%);\n border-width: 6rpx;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.96) transparent transparent transparent;\n }\n }\n\n .font-size-btn {\n font-size: 20rpx;\n color: $sky-color-gray-7;\n padding: 6rpx 14rpx;\n border-radius: 12rpx;\n background-color: rgba(0, 0, 0, 0.04);\n transition: all 120ms ease;\n white-space: nowrap;\n min-width: 76rpx;\n text-align: center;\n box-sizing: border-box;\n \n &:active {\n transform: scale(0.9);\n }\n \n &--active {\n color: $sky-color-white;\n background-color: $sky-color-primary;\n font-weight: bold;\n }\n }\n\n /* ==================== 纯 CSS 精绘高保真图标 ==================== */\n \n /* 1. Bold 加粗 */\n .icon-bold {\n width: 16rpx;\n height: 22rpx;\n border: 2rpx solid $sky-color-gray-7;\n border-radius: 3px 6px 6px 3px;\n position: relative;\n box-sizing: border-box;\n \n &::after {\n content: \"\";\n position: absolute;\n left: -2rpx;\n top: 8rpx;\n right: -2rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n }\n }\n\n /* 2. Italic 斜体 */\n .icon-italic {\n width: 16rpx;\n height: 22rpx;\n position: relative;\n box-sizing: border-box;\n \n &::before {\n content: \"\";\n position: absolute;\n width: 2rpx;\n height: 22rpx;\n background-color: $sky-color-gray-7;\n left: 7rpx;\n transform: rotate(15deg);\n }\n \n &::after {\n content: \"\";\n position: absolute;\n width: 12rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n top: 0;\n left: 4rpx;\n \n box-shadow: 0 20rpx 0 $sky-color-gray-7;\n }\n }\n\n /* 3. Underline 下划线 */\n .icon-underline {\n width: 16rpx;\n height: 22rpx;\n position: relative;\n box-sizing: border-box;\n \n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 16rpx;\n height: 14rpx;\n border: 2rpx solid $sky-color-gray-7;\n border-top: none;\n border-radius: 0 0 8rpx 8rpx;\n box-sizing: border-box;\n }\n \n &::after {\n content: \"\";\n position: absolute;\n left: -2rpx;\n bottom: 2rpx;\n width: 20rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n }\n }\n\n /* 3.2. FontSize 字体大小 (纯 CSS 精绘高保真大 A 小 A 组合图标) */\n .icon-font-size {\n width: 26rpx;\n height: 22rpx;\n position: relative;\n box-sizing: border-box;\n \n /* 左侧大 A 符号 */\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 2rpx;\n width: 14rpx;\n height: 18rpx;\n border-left: 2rpx solid $sky-color-gray-7;\n border-right: 2rpx solid $sky-color-gray-7;\n border-top: 2rpx solid $sky-color-gray-7;\n border-top-left-radius: 7rpx;\n border-top-right-radius: 7rpx;\n background: linear-gradient(to bottom, transparent 9rpx, $sky-color-gray-7 9rpx, $sky-color-gray-7 11rpx, transparent 11rpx);\n box-sizing: border-box;\n }\n \n /* 右侧小 A 符号 */\n &::after {\n content: \"\";\n position: absolute;\n right: 0;\n bottom: 2rpx;\n width: 10rpx;\n height: 12rpx;\n border-left: 2rpx solid $sky-color-gray-7;\n border-right: 2rpx solid $sky-color-gray-7;\n border-top: 2rpx solid $sky-color-gray-7;\n border-top-left-radius: 5rpx;\n border-top-right-radius: 5rpx;\n background: linear-gradient(to bottom, transparent 5rpx, $sky-color-gray-7 5rpx, $sky-color-gray-7 7rpx, transparent 7rpx);\n box-sizing: border-box;\n }\n }\n\n /* 3.5. Color 字体颜色 (重构为挺拔、极具高辨识度的手绘大写 A 图标) */\n .icon-color {\n width: 22rpx;\n height: 22rpx;\n position: relative;\n box-sizing: border-box;\n \n /* 通过大倾角圆角,使其自然过渡为 A 字形的尖顶拱门 */\n &::before {\n content: \"\";\n position: absolute;\n left: 2rpx;\n top: 0;\n width: 18rpx;\n height: 18rpx;\n border-left: 2.5rpx solid $sky-color-gray-7;\n border-right: 2.5rpx solid $sky-color-gray-7;\n border-top: 2.5rpx solid $sky-color-gray-7;\n border-top-left-radius: 9rpx;\n border-top-right-radius: 9rpx;\n box-sizing: border-box;\n }\n \n /* A 的中间一小横 */\n &::after {\n content: \"\";\n position: absolute;\n left: 4rpx;\n top: 10rpx;\n width: 14rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n }\n\n /* 底部动态彩色小横杠 */\n .icon-color-bar {\n position: absolute;\n left: 1rpx;\n bottom: 0;\n width: 20rpx;\n height: 4rpx;\n border-radius: 1px;\n transition: background-color 150ms ease;\n }\n }\n\n /* 4. 左对齐 */\n .icon-align-left {\n width: 22rpx;\n height: 18rpx;\n position: relative;\n box-sizing: border-box;\n \n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 22rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 5rpx 0 $sky-color-gray-7,\n 0 10rpx 0 $sky-color-gray-7,\n 0 15rpx 0 $sky-color-gray-7;\n }\n \n &::after {\n content: \"\";\n position: absolute;\n left: 0;\n top: 5rpx;\n width: 14rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 10rpx 0 $sky-color-gray-7;\n }\n }\n\n /* 5. 居中对齐 */\n .icon-align-center {\n width: 22rpx;\n height: 18rpx;\n position: relative;\n box-sizing: border-box;\n \n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 22rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 10rpx 0 $sky-color-gray-7;\n }\n \n &::after {\n content: \"\";\n position: absolute;\n left: 4rpx;\n top: 5rpx;\n width: 14rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 10rpx 0 $sky-color-gray-7;\n }\n }\n\n /* 6. 右对齐 */\n .icon-align-right {\n width: 22rpx;\n height: 18rpx;\n position: relative;\n box-sizing: border-box;\n \n &::before {\n content: \"\";\n position: absolute;\n right: 0;\n top: 0;\n width: 22rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 5rpx 0 $sky-color-gray-7,\n 0 10rpx 0 $sky-color-gray-7,\n 0 15rpx 0 $sky-color-gray-7;\n }\n \n &::after {\n content: \"\";\n position: absolute;\n right: 0;\n top: 5rpx;\n width: 14rpx;\n height: 2rpx;\n background-color: $sky-color-gray-7;\n box-shadow: 0 10rpx 0 $sky-color-gray-7;\n }\n }\n\n /* 7. Image 图片 */\n .icon-image {\n width: 22rpx;\n height: 18rpx;\n border: 2rpx solid $sky-color-gray-7;\n border-radius: 2px;\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n \n &::before {\n content: \"\";\n position: absolute;\n width: 12rpx;\n height: 12rpx;\n border: 2rpx solid $sky-color-gray-7;\n transform: rotate(45deg);\n bottom: -6rpx;\n left: 2rpx;\n box-sizing: border-box;\n }\n \n &::after {\n content: \"\";\n position: absolute;\n width: 4rpx;\n height: 4rpx;\n border-radius: 50%;\n background-color: $sky-color-gray-7;\n top: 3rpx;\n right: 4rpx;\n }\n }\n\n /* 8. Clear 清除格式 */\n .icon-clear {\n width: 22rpx;\n height: 18rpx;\n position: relative;\n box-sizing: border-box;\n \n /* 扫把柄 */\n &::before {\n content: \"\";\n position: absolute;\n width: 2rpx;\n height: 12rpx;\n background-color: $sky-color-gray-7;\n left: 10rpx;\n top: 0;\n transform: rotate(25deg);\n }\n \n /* 扫把头 */\n &::after {\n content: \"\";\n position: absolute;\n width: 14rpx;\n height: 8rpx;\n border: 2rpx solid $sky-color-gray-7;\n border-top: none;\n border-radius: 0 0 3px 3px;\n left: 4rpx;\n bottom: 0;\n box-sizing: border-box;\n }\n }\n\n /* ==================== 激活态强制覆写为高亮品牌蓝紫 ==================== */\n .sky-editor__tool-item--active {\n .icon-font-size {\n &::before {\n border-color: $sky-color-primary !important;\n background: linear-gradient(to bottom, transparent 9rpx, $sky-color-primary 9rpx, $sky-color-primary 11rpx, transparent 11rpx) !important;\n }\n &::after {\n border-color: $sky-color-primary !important;\n background: linear-gradient(to bottom, transparent 5rpx, $sky-color-primary 5rpx, $sky-color-primary 7rpx, transparent 7rpx) !important;\n }\n }\n .icon-bold {\n border-color: $sky-color-primary !important;\n &::after { background-color: $sky-color-primary !important; }\n }\n .icon-italic {\n &::before { background-color: $sky-color-primary !important; }\n &::after { background-color: $sky-color-primary !important; box-shadow: 0 20rpx 0 $sky-color-primary !important; }\n }\n .icon-underline {\n &::before { border-color: $sky-color-primary !important; }\n &::after { background-color: $sky-color-primary !important; }\n }\n .icon-color {\n &::before { border-color: $sky-color-primary !important; }\n &::after { background-color: $sky-color-primary !important; }\n }\n .icon-align-left {\n &::before {\n background-color: $sky-color-primary !important;\n box-shadow: 0 5rpx 0 $sky-color-primary, 0 10rpx 0 $sky-color-primary, 0 15rpx 0 $sky-color-primary !important;\n }\n &::after {\n background-color: $sky-color-primary !important;\n box-shadow: 0 10rpx 0 $sky-color-primary !important;\n }\n }\n .icon-align-center {\n &::before {\n background-color: $sky-color-primary !important;\n box-shadow: 0 10rpx 0 $sky-color-primary !important;\n }\n &::after {\n background-color: $sky-color-primary !important;\n box-shadow: 0 10rpx 0 $sky-color-primary !important;\n }\n }\n .icon-align-right {\n &::before {\n background-color: $sky-color-primary !important;\n box-shadow: 0 5rpx 0 $sky-color-primary, 0 10rpx 0 $sky-color-primary, 0 15rpx 0 $sky-color-primary !important;\n }\n &::after {\n background-color: $sky-color-primary !important;\n box-shadow: 0 10rpx 0 $sky-color-primary !important;\n }\n }\n }\n}\n\n/* ==================== 气泡面板弹性入场阻尼 ==================== */\n@keyframes picker-bounce-anim {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(12rpx) scale(0.85);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0) scale(1);\n }\n}\n@keyframes picker-bounce-anim-safari {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(12rpx) scale(0.85);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0) scale(1);\n }\n}\n","// ==========================================\r\n// Skyline-UI 极具质感的现代设计系统 (SCSS)\r\n// ==========================================\r\n\r\n// --- 品牌色体系 (HSL Tailored Colors) ---\r\n$sky-brand-h: 250; // 主品牌色相 (优雅深紫/蓝色调)\r\n$sky-brand-s: 85%;\r\n$sky-brand-l: 55%;\r\n\r\n$sky-color-primary: hsl($sky-brand-h, $sky-brand-s, $sky-brand-l);\r\n$sky-color-primary-hover: hsl($sky-brand-h, $sky-brand-s, $sky-brand-l - 8%);\r\n$sky-color-primary-active: hsl($sky-brand-h, $sky-brand-s, $sky-brand-l - 15%);\r\n$sky-color-primary-light: hsl($sky-brand-h, $sky-brand-s, 95%);\r\n\r\n// 辅助色体系 (意图表达)\r\n$sky-color-success: hsl(150, 80%, 40%);\r\n$sky-color-success-active: hsl(150, 80%, 32%);\r\n$sky-color-success-light: hsl(150, 80%, 96%);\r\n\r\n$sky-color-warning: hsl(35, 90%, 50%);\r\n$sky-color-warning-active: hsl(35, 90%, 42%);\r\n$sky-color-warning-light: hsl(35, 90%, 96%);\r\n\r\n$sky-color-danger: hsl(355, 85%, 55%);\r\n$sky-color-danger-active: hsl(355, 85%, 45%);\r\n$sky-color-danger-light: hsl(355, 85%, 96%);\r\n\r\n$sky-color-info: hsl(200, 85%, 50%);\r\n$sky-color-info-active: hsl(200, 85%, 42%);\r\n$sky-color-info-light: hsl(200, 85%, 96%);\r\n\r\n// --- Tag 标签组件专用色系 (莫兰迪低饱和) ---\r\n$sky-tag-blue: #edf2ff;\r\n$sky-tag-blue-text: #3b5bdb;\r\n$sky-tag-green: #ebfbee;\r\n$sky-tag-green-text: #2b8a3e;\r\n$sky-tag-yellow: #fff9db;\r\n$sky-tag-yellow-text: #f08c00;\r\n$sky-tag-red: #ffeef0;\r\n$sky-tag-red-text: #fa5252;\r\n$sky-tag-info: #e7f5ff;\r\n$sky-tag-info-text: #1c7ed6;\r\n\r\n// --- 纯净的中性色调 (Sleek Grays) ---\r\n$sky-color-white: #ffffff;\r\n$sky-color-gray-1: #f8f9fa; // 极浅背景\r\n$sky-color-gray-2: #f1f3f5; // 浅灰背景\r\n$sky-color-gray-3: #e9ecef; // 边框线/失效态\r\n$sky-color-gray-4: #dee2e6;\r\n$sky-color-gray-5: #adb5bd; // 提示文本\r\n$sky-color-gray-6: #868e96;\r\n$sky-color-gray-7: #495057; // 次级文本\r\n$sky-color-gray-8: #343a40;\r\n$sky-color-gray-9: #212529; // 主级文本\r\n\r\n// --- 阴影系统 (Premium Shadows) ---\r\n$sky-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.04);\r\n$sky-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);\r\n$sky-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);\r\n$sky-shadow-primary: 0 4px 14px rgba(100, 80, 240, 0.2);\r\n\r\n// --- 圆角规范 (Borders) ---\r\n$sky-border-radius-xs: 4rpx;\r\n$sky-border-radius-sm: 8rpx;\r\n$sky-border-radius-md: 12rpx;\r\n$sky-border-radius-lg: 20rpx;\r\n$sky-border-radius-round: 9999rpx;\r\n\r\n// --- 字体与字号规范 (Typography) ---\r\n$sky-font-family: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, Roboto, sans-serif;\r\n$sky-font-size-xs: 20rpx;\r\n$sky-font-size-sm: 24rpx;\r\n$sky-font-size-md: 28rpx;\r\n$sky-font-size-lg: 32rpx;\r\n$sky-font-size-xl: 36rpx;\r\n\r\n// --- 动效与过渡 (Transitions) ---\r\n$sky-transition-duration: 200ms;\r\n$sky-transition-timing: cubic-bezier(0.4, 0, 0.2, 1);\r\n\r\n// --- 间距规范 (Spacing) ---\r\n$sky-spacing-xs: 8rpx;\r\n$sky-spacing-sm: 16rpx;\r\n$sky-spacing-md: 24rpx;\r\n$sky-spacing-lg: 32rpx;\r\n$sky-spacing-xl: 48rpx;\r\n\r\n// --- 组件高度规范 (Component Heights) ---\r\n$sky-height-sm: 56rpx;\r\n$sky-height-md: 72rpx;\r\n$sky-height-lg: 88rpx;\r\n$sky-height-xl: 96rpx;\r\n\r\n// --- 层级规范 (Z-Index) ---\r\n$sky-z-dropdown: 100;\r\n$sky-z-fixed: 500;\r\n$sky-z-popup: 1000;\r\n$sky-z-toast: 2000;\r\n"]}
File without changes