@arc-lo/ui 0.2.0 → 0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arc-lo/ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "AI-native design system components — built on Radix, extended for AI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
package/styles.css CHANGED
@@ -4,13 +4,18 @@
4
4
  * Usage:
5
5
  * @import "tailwindcss";
6
6
  * @import "@arc-lo/ui/styles.css";
7
+ *
8
+ * Themes: add a data-theme attribute to switch accent colors.
9
+ * <html data-theme="violet">
10
+ * Available: noir (default), violet, ocean, forest, sunset, rose
7
11
  */
8
12
 
9
- /* ─── Light theme (default) ───────────────────────────────────────── */
13
+ /* ─── Light theme (default — noir) ────────────────────────────────── */
10
14
  :root {
11
- --arclo-accent: #6C5CE7;
12
- --arclo-accent-hover: #5A4BD1;
13
- --arclo-accent-bright: rgb(167, 139, 250);
15
+ --arclo-accent: #1a1a1a;
16
+ --arclo-accent-hover: #333333;
17
+ --arclo-accent-bright: #555555;
18
+ --arclo-accent-fg: #ffffff;
14
19
  --arclo-surface: #ffffff;
15
20
  --arclo-surface-secondary: #f9fafb;
16
21
  --arclo-border: #e5e7eb;
@@ -22,16 +27,50 @@
22
27
  --arclo-warning: #f59e0b;
23
28
  --arclo-warning-surface: #fffbeb;
24
29
  --arclo-radius: 0.75rem;
30
+ --arclo-hover-bg: rgba(0, 0, 0, 0.06);
31
+ }
32
+
33
+ /* ─── Color themes (light mode accents) ───────────────────────────── */
34
+ [data-theme="violet"] {
35
+ --arclo-accent: #6C5CE7;
36
+ --arclo-accent-hover: #5A4BD1;
37
+ --arclo-accent-bright: #a78bfa;
38
+ --arclo-accent-fg: #ffffff;
39
+ }
40
+
41
+ [data-theme="ocean"] {
42
+ --arclo-accent: #0ea5e9;
43
+ --arclo-accent-hover: #0284c7;
44
+ --arclo-accent-bright: #38bdf8;
45
+ --arclo-accent-fg: #ffffff;
25
46
  }
26
47
 
27
- /* ─── Dark theme (prefers-color-scheme) ───────────────────────────── */
48
+ [data-theme="forest"] {
49
+ --arclo-accent: #10b981;
50
+ --arclo-accent-hover: #059669;
51
+ --arclo-accent-bright: #34d399;
52
+ --arclo-accent-fg: #ffffff;
53
+ }
54
+
55
+ [data-theme="sunset"] {
56
+ --arclo-accent: #f97316;
57
+ --arclo-accent-hover: #ea580c;
58
+ --arclo-accent-bright: #fb923c;
59
+ --arclo-accent-fg: #ffffff;
60
+ }
61
+
62
+ [data-theme="rose"] {
63
+ --arclo-accent: #f43f5e;
64
+ --arclo-accent-hover: #e11d48;
65
+ --arclo-accent-bright: #fb7185;
66
+ --arclo-accent-fg: #ffffff;
67
+ }
68
+
69
+ /* ─── Dark mode surfaces (prefers-color-scheme) ───────────────────── */
28
70
  @media (prefers-color-scheme: dark) {
29
71
  :root:not(.light) {
30
- --arclo-accent: #a78bfa;
31
- --arclo-accent-hover: #8b6ff7;
32
- --arclo-accent-bright: rgb(196, 181, 253);
33
- --arclo-surface: #1a1a2e;
34
- --arclo-surface-secondary: #16213e;
72
+ --arclo-surface: #0f0f1a;
73
+ --arclo-surface-secondary: #1a1a2e;
35
74
  --arclo-border: #2d2d44;
36
75
  --arclo-text: #e2e8f0;
37
76
  --arclo-text-secondary: #94a3b8;
@@ -40,16 +79,14 @@
40
79
  --arclo-error-surface: #451a1a;
41
80
  --arclo-warning: #fbbf24;
42
81
  --arclo-warning-surface: #452a1a;
82
+ --arclo-hover-bg: rgba(255, 255, 255, 0.08);
43
83
  }
44
84
  }
45
85
 
46
- /* ─── Dark theme (class-based) ────────────────────────────────────── */
86
+ /* ─── Dark mode surfaces (class-based) ────────────────────────────── */
47
87
  .dark {
48
- --arclo-accent: #a78bfa;
49
- --arclo-accent-hover: #8b6ff7;
50
- --arclo-accent-bright: rgb(196, 181, 253);
51
- --arclo-surface: #1a1a2e;
52
- --arclo-surface-secondary: #16213e;
88
+ --arclo-surface: #0f0f1a;
89
+ --arclo-surface-secondary: #1a1a2e;
53
90
  --arclo-border: #2d2d44;
54
91
  --arclo-text: #e2e8f0;
55
92
  --arclo-text-secondary: #94a3b8;
@@ -58,13 +95,143 @@
58
95
  --arclo-error-surface: #451a1a;
59
96
  --arclo-warning: #fbbf24;
60
97
  --arclo-warning-surface: #452a1a;
98
+ --arclo-hover-bg: rgba(255, 255, 255, 0.08);
99
+ }
100
+
101
+ /* ─── Dark mode accent overrides per theme ────────────────────────── */
102
+ /* Noir dark: white accent with dark text */
103
+ .dark:not([data-theme]),
104
+ .dark[data-theme="noir"] {
105
+ --arclo-accent: #ffffff;
106
+ --arclo-accent-hover: #e2e8f0;
107
+ --arclo-accent-bright: #f1f5f9;
108
+ --arclo-accent-fg: #0f0f1a;
109
+ }
110
+
111
+ @media (prefers-color-scheme: dark) {
112
+ :root:not(.light):not([data-theme]),
113
+ :root:not(.light)[data-theme="noir"] {
114
+ --arclo-accent: #ffffff;
115
+ --arclo-accent-hover: #e2e8f0;
116
+ --arclo-accent-bright: #f1f5f9;
117
+ --arclo-accent-fg: #0f0f1a;
118
+ }
119
+ }
120
+
121
+ /* Violet dark */
122
+ .dark[data-theme="violet"] {
123
+ --arclo-accent: #a78bfa;
124
+ --arclo-accent-hover: #8b6ff7;
125
+ --arclo-accent-bright: #c4b5fd;
126
+ --arclo-accent-fg: #ffffff;
127
+ }
128
+
129
+ @media (prefers-color-scheme: dark) {
130
+ :root:not(.light)[data-theme="violet"] {
131
+ --arclo-accent: #a78bfa;
132
+ --arclo-accent-hover: #8b6ff7;
133
+ --arclo-accent-bright: #c4b5fd;
134
+ --arclo-accent-fg: #ffffff;
135
+ }
136
+ }
137
+
138
+ /* Ocean dark */
139
+ .dark[data-theme="ocean"] {
140
+ --arclo-accent: #38bdf8;
141
+ --arclo-accent-hover: #7dd3fc;
142
+ --arclo-accent-bright: #bae6fd;
143
+ --arclo-accent-fg: #0f0f1a;
144
+ }
145
+
146
+ @media (prefers-color-scheme: dark) {
147
+ :root:not(.light)[data-theme="ocean"] {
148
+ --arclo-accent: #38bdf8;
149
+ --arclo-accent-hover: #7dd3fc;
150
+ --arclo-accent-bright: #bae6fd;
151
+ --arclo-accent-fg: #0f0f1a;
152
+ }
153
+ }
154
+
155
+ /* Forest dark */
156
+ .dark[data-theme="forest"] {
157
+ --arclo-accent: #34d399;
158
+ --arclo-accent-hover: #6ee7b7;
159
+ --arclo-accent-bright: #a7f3d0;
160
+ --arclo-accent-fg: #0f0f1a;
161
+ }
162
+
163
+ @media (prefers-color-scheme: dark) {
164
+ :root:not(.light)[data-theme="forest"] {
165
+ --arclo-accent: #34d399;
166
+ --arclo-accent-hover: #6ee7b7;
167
+ --arclo-accent-bright: #a7f3d0;
168
+ --arclo-accent-fg: #0f0f1a;
169
+ }
170
+ }
171
+
172
+ /* Sunset dark */
173
+ .dark[data-theme="sunset"] {
174
+ --arclo-accent: #fb923c;
175
+ --arclo-accent-hover: #fdba74;
176
+ --arclo-accent-bright: #fed7aa;
177
+ --arclo-accent-fg: #0f0f1a;
178
+ }
179
+
180
+ @media (prefers-color-scheme: dark) {
181
+ :root:not(.light)[data-theme="sunset"] {
182
+ --arclo-accent: #fb923c;
183
+ --arclo-accent-hover: #fdba74;
184
+ --arclo-accent-bright: #fed7aa;
185
+ --arclo-accent-fg: #0f0f1a;
186
+ }
187
+ }
188
+
189
+ /* Rose dark */
190
+ .dark[data-theme="rose"] {
191
+ --arclo-accent: #fb7185;
192
+ --arclo-accent-hover: #fda4af;
193
+ --arclo-accent-bright: #fecdd3;
194
+ --arclo-accent-fg: #ffffff;
195
+ }
196
+
197
+ @media (prefers-color-scheme: dark) {
198
+ :root:not(.light)[data-theme="rose"] {
199
+ --arclo-accent: #fb7185;
200
+ --arclo-accent-hover: #fda4af;
201
+ --arclo-accent-bright: #fecdd3;
202
+ --arclo-accent-fg: #ffffff;
203
+ }
61
204
  }
62
205
 
63
206
  /* ─── Component styles ────────────────────────────────────────────── */
64
207
  .arclo-feedback-btn:hover {
65
- background-color: var(--arclo-surface-secondary, #f9fafb);
208
+ background-color: var(--arclo-hover-bg, rgba(0, 0, 0, 0.06));
209
+ }
210
+
211
+ .arclo-feedback-btn:not([aria-pressed="true"]):hover {
66
212
  color: var(--arclo-text-secondary, #6b7280);
67
213
  }
68
214
 
215
+ .arclo-prompt-input::-webkit-scrollbar {
216
+ display: none;
217
+ }
218
+
219
+ .arclo-prompt-input::placeholder {
220
+ color: var(--arclo-text-muted, #9ca3af);
221
+ }
222
+
223
+ .arclo-chat-messages::-webkit-scrollbar {
224
+ width: 6px;
225
+ }
226
+
227
+ .arclo-chat-messages::-webkit-scrollbar-track {
228
+ background: transparent;
229
+ }
230
+
231
+ .arclo-chat-messages::-webkit-scrollbar-thumb {
232
+ background-color: var(--arclo-border, #e5e7eb);
233
+ border-radius: 3px;
234
+ }
235
+
69
236
  /* ─── Tailwind utility scanning ───────────────────────────────────── */
70
237
  @source "./dist";