@huyooo/file-explorer-frontend-react 0.4.14 → 0.4.16

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/src/index.css CHANGED
@@ -1,3 +1,184 @@
1
- /* Base styles for file-explorer-frontend-react */
2
- /* This file will be copied to dist/style.css during build */
1
+ /**
2
+ * File Explorer Frontend (React) - 全局主题 token
3
+ *
4
+ * 主题协议(跨项目统一):
5
+ * - 使用 document.documentElement 的 data-theme = light | dark
6
+ * - 默认跟随系统 prefers-color-scheme
7
+ *
8
+ * 说明:
9
+ * - React 组件样式尽量使用 var(--huyooo-*),避免硬编码颜色
10
+ */
3
11
 
12
+ :root {
13
+ color-scheme: light;
14
+
15
+ /* 对齐 ai-chat(light):暖白底 + 中性灰 + 统一蓝主色 */
16
+ --huyooo-bg: #f7f7f4;
17
+ --huyooo-surface: #f2f1ed;
18
+ --huyooo-surface-2: #f0efeb;
19
+ --huyooo-muted: #ebeae5;
20
+ --huyooo-muted-hover: #e6e5e0;
21
+ --huyooo-border: #26251e1a;
22
+ --huyooo-text: #26251eeb;
23
+ --huyooo-text-muted: #26251e99;
24
+ --huyooo-text-disabled: #26251e66;
25
+ --huyooo-primary: #54a9ff;
26
+ --huyooo-focus-ring: rgba(84, 169, 255, 0.18);
27
+ --huyooo-shadow-sm: 0 1px 2px 0 rgba(38, 37, 30, 0.08);
28
+ --huyooo-scrollbar: rgba(38, 37, 30, 0.2);
29
+ --huyooo-scrollbar-hover: rgba(38, 37, 30, 0.3);
30
+ --huyooo-danger: #cf2d56;
31
+ --huyooo-success: #1f8a65;
32
+ --huyooo-warning: rgb(245, 158, 11);
33
+ --huyooo-danger-bg: rgba(207, 45, 86, 0.1);
34
+ --huyooo-danger-border: rgba(207, 45, 86, 0.22);
35
+ --huyooo-success-bg: rgba(31, 138, 101, 0.1);
36
+ --huyooo-success-border: rgba(31, 138, 101, 0.22);
37
+ --huyooo-warning-bg: rgba(255, 251, 235, 0.92);
38
+ --huyooo-warning-border: rgba(253, 230, 138, 0.9);
39
+ --huyooo-overlay: rgba(0, 0, 0, 0.5);
40
+ --huyooo-panel-bg: #f2f1ed;
41
+ --huyooo-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
42
+ --huyooo-code-bg: #f2f1ed;
43
+ --huyooo-code-text: #26251eeb;
44
+ --huyooo-menu-bg: #f2f1ed;
45
+ --huyooo-menu-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
46
+
47
+ /* macOS window control colors (for Window 组件) */
48
+ --huyooo-window-close-bg: rgb(255, 95, 87);
49
+ --huyooo-window-close-border: rgb(224, 68, 62);
50
+ --huyooo-window-minimize-bg: rgb(254, 188, 46);
51
+ --huyooo-window-minimize-border: rgb(216, 158, 36);
52
+ --huyooo-window-maximize-bg: rgb(40, 200, 64);
53
+ --huyooo-window-maximize-border: rgb(26, 171, 41);
54
+ --huyooo-window-control-icon: rgba(0, 0, 0, 0.5);
55
+
56
+ /* media overlay helpers (used in FileGrid video thumbnail) */
57
+ --huyooo-overlay-strong: rgba(0, 0, 0, 0.85);
58
+
59
+ /* on-primary text colors (selected state etc.) */
60
+ --huyooo-on-primary: #ffffff;
61
+ --huyooo-on-primary-muted: rgba(255, 255, 255, 0.8);
62
+
63
+ /* filetype colors (FileInfoDialog / FileIcon) */
64
+ /* 对齐 ai-chat:文件夹/目录用主色 */
65
+ --huyooo-filetype-folder: var(--huyooo-primary);
66
+ --huyooo-filetype-image: #7ec699;
67
+ --huyooo-filetype-video: #c678dd;
68
+ --huyooo-filetype-music: #e06c75;
69
+ --huyooo-filetype-document: #61afef;
70
+ --huyooo-filetype-code: #98c379;
71
+ --huyooo-filetype-archive: #d19a66;
72
+ --huyooo-filetype-file: #abb2bf;
73
+ }
74
+
75
+ @media (prefers-color-scheme: dark) {
76
+ :root {
77
+ color-scheme: dark;
78
+
79
+ /* 对齐 ai-chat(dark):深灰底 + 统一蓝主色 */
80
+ --huyooo-bg: #1e1e1e;
81
+ --huyooo-surface: #1e1e1e;
82
+ --huyooo-surface-2: #252526;
83
+ --huyooo-muted: #2d2d2d;
84
+ --huyooo-muted-hover: #3c3c3c;
85
+ --huyooo-border: #333;
86
+ --huyooo-text: #ccc;
87
+ --huyooo-text-muted: #888;
88
+ --huyooo-text-disabled: #666;
89
+ --huyooo-primary: #54a9ff;
90
+ --huyooo-focus-ring: rgba(84, 169, 255, 0.22);
91
+ --huyooo-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.35);
92
+ --huyooo-scrollbar: rgba(255, 255, 255, 0.2);
93
+ --huyooo-scrollbar-hover: rgba(255, 255, 255, 0.3);
94
+ --huyooo-danger: #cf2d56;
95
+ --huyooo-success: #1f8a65;
96
+ --huyooo-warning: #f59e0b;
97
+ --huyooo-danger-bg: rgba(207, 45, 86, 0.14);
98
+ --huyooo-danger-border: rgba(207, 45, 86, 0.28);
99
+ --huyooo-success-bg: rgba(31, 138, 101, 0.14);
100
+ --huyooo-success-border: rgba(31, 138, 101, 0.28);
101
+ --huyooo-warning-bg: rgba(245, 158, 11, 0.12);
102
+ --huyooo-warning-border: rgba(245, 158, 11, 0.25);
103
+ --huyooo-overlay: rgba(0, 0, 0, 0.6);
104
+ --huyooo-panel-bg: #252526;
105
+ --huyooo-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
106
+ --huyooo-code-bg: #1f2937;
107
+ --huyooo-code-text: #e5e7eb;
108
+ --huyooo-menu-bg: #252526;
109
+ --huyooo-menu-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.45), 0 4px 6px -2px rgba(0, 0, 0, 0.35);
110
+ }
111
+ }
112
+
113
+ :root[data-theme="light"] {
114
+ color-scheme: light;
115
+ /* 显式 light 必须覆盖 prefers-color-scheme: dark 的变量 */
116
+ --huyooo-bg: #f7f7f4;
117
+ --huyooo-surface: #f2f1ed;
118
+ --huyooo-surface-2: #f0efeb;
119
+ --huyooo-muted: #ebeae5;
120
+ --huyooo-muted-hover: #e6e5e0;
121
+ --huyooo-border: #26251e1a;
122
+ --huyooo-text: #26251eeb;
123
+ --huyooo-text-muted: #26251e99;
124
+ --huyooo-text-disabled: #26251e66;
125
+ --huyooo-primary: #54a9ff;
126
+ --huyooo-focus-ring: rgba(84, 169, 255, 0.18);
127
+ --huyooo-shadow-sm: 0 1px 2px 0 rgba(38, 37, 30, 0.08);
128
+ --huyooo-scrollbar: rgba(38, 37, 30, 0.2);
129
+ --huyooo-scrollbar-hover: rgba(38, 37, 30, 0.3);
130
+ --huyooo-danger: #cf2d56;
131
+ --huyooo-success: #1f8a65;
132
+ --huyooo-warning: rgb(245, 158, 11);
133
+ --huyooo-danger-bg: rgba(207, 45, 86, 0.1);
134
+ --huyooo-danger-border: rgba(207, 45, 86, 0.22);
135
+ --huyooo-success-bg: rgba(31, 138, 101, 0.1);
136
+ --huyooo-success-border: rgba(31, 138, 101, 0.22);
137
+ --huyooo-warning-bg: rgba(255, 251, 235, 0.92);
138
+ --huyooo-warning-border: rgba(253, 230, 138, 0.9);
139
+ --huyooo-overlay: rgba(0, 0, 0, 0.5);
140
+ --huyooo-panel-bg: #f2f1ed;
141
+ --huyooo-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
142
+ --huyooo-code-bg: #f2f1ed;
143
+ --huyooo-code-text: #26251eeb;
144
+ --huyooo-menu-bg: #f2f1ed;
145
+ --huyooo-menu-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
146
+ --huyooo-filetype-folder: var(--huyooo-primary);
147
+ }
148
+
149
+ :root[data-theme="dark"] {
150
+ color-scheme: dark;
151
+
152
+ /* 显式 dark 必须覆盖 light 的变量 */
153
+ --huyooo-bg: #1e1e1e;
154
+ --huyooo-surface: #1e1e1e;
155
+ --huyooo-surface-2: #252526;
156
+ --huyooo-muted: #2d2d2d;
157
+ --huyooo-muted-hover: #3c3c3c;
158
+ --huyooo-border: #333;
159
+ --huyooo-text: #ccc;
160
+ --huyooo-text-muted: #888;
161
+ --huyooo-text-disabled: #666;
162
+ --huyooo-primary: #54a9ff;
163
+ --huyooo-focus-ring: rgba(84, 169, 255, 0.22);
164
+ --huyooo-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.35);
165
+ --huyooo-scrollbar: rgba(255, 255, 255, 0.2);
166
+ --huyooo-scrollbar-hover: rgba(255, 255, 255, 0.3);
167
+ --huyooo-danger: #cf2d56;
168
+ --huyooo-success: #1f8a65;
169
+ --huyooo-warning: #f59e0b;
170
+ --huyooo-danger-bg: rgba(207, 45, 86, 0.14);
171
+ --huyooo-danger-border: rgba(207, 45, 86, 0.28);
172
+ --huyooo-success-bg: rgba(31, 138, 101, 0.14);
173
+ --huyooo-success-border: rgba(31, 138, 101, 0.28);
174
+ --huyooo-warning-bg: rgba(245, 158, 11, 0.12);
175
+ --huyooo-warning-border: rgba(245, 158, 11, 0.25);
176
+ --huyooo-overlay: rgba(0, 0, 0, 0.6);
177
+ --huyooo-panel-bg: #252526;
178
+ --huyooo-shadow-lg: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
179
+ --huyooo-code-bg: #1f2937;
180
+ --huyooo-code-text: #e5e7eb;
181
+ --huyooo-menu-bg: #252526;
182
+ --huyooo-menu-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.45), 0 4px 6px -2px rgba(0, 0, 0, 0.35);
183
+ --huyooo-filetype-folder: var(--huyooo-primary);
184
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,6 @@
1
+ // 主题 token(全局 CSS 变量)
2
+ import './index.css';
3
+
1
4
  // Types
2
5
  export * from './types';
3
6