codexly-ui 0.1.21 → 0.1.23

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.
@@ -1,3 +1,3 @@
1
- /* Fonts are loaded dynamically by ClxThemeService via <link> injection.
2
- Roboto is the default — preloaded here so the app renders before JS executes. */
3
- @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');
1
+ /* Fonts are loaded dynamically by ClxThemeService via <link> injection.
2
+ Roboto is the default — preloaded here so the app renders before JS executes. */
3
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');
@@ -1,43 +1,34 @@
1
- /* ── Global font ─────────────────────────────────────────────────────────── */
2
- *, *::before, *::after { font-family: var(--clx-font-body); }
3
-
4
- /* ── Backdrop base ───────────────────────────────────────────────────────── */
5
- .clx-modal-backdrop,
6
- .clx-alert-backdrop {
7
- animation: clx-backdrop-in 220ms ease forwards;
8
- }
9
-
10
- @keyframes clx-backdrop-in {
11
- from { opacity: 0; }
12
- to { opacity: 1; }
13
- }
14
-
15
- /* ── Modal backdrop ─────────────────────────────────────────────────────── */
16
- .clx-modal-backdrop {
17
- background-color: rgba(15, 23, 42, 0.40);
18
- backdrop-filter: blur(4px);
19
- -webkit-backdrop-filter: blur(4px);
20
- }
21
-
22
- /* ── Alert backdrop ──────────────────────────────────────────────────────── */
23
- .clx-alert-backdrop {
24
- background-color: rgba(15, 23, 42, 0.45);
25
- backdrop-filter: blur(6px);
26
- -webkit-backdrop-filter: blur(6px);
27
- }
28
-
29
-
30
- /* ── Suppress transitions during window resize ───────────────────────────── */
31
- html.clx-resizing *, html.clx-resizing *::before, html.clx-resizing *::after {
32
- transition: none !important;
33
- animation: none !important;
34
- }
35
-
36
- /* ── Scrollbar ───────────────────────────────────────────────────────────── */
37
- ::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; }
38
- ::-webkit-scrollbar-track { background-color: transparent; }
39
- ::-webkit-scrollbar-thumb {
40
- background-color: var(--clx-primary);
41
- border-radius: 0.5rem;
42
- }
43
- ::-webkit-scrollbar-thumb:hover { background-color: var(--clx-primary); }
1
+ /* ── Backdrop base ───────────────────────────────────────────────────────── */
2
+ .clx-modal-backdrop,
3
+ .clx-alert-backdrop {
4
+ animation: clx-backdrop-in 220ms ease forwards;
5
+ }
6
+
7
+ @keyframes clx-backdrop-in {
8
+ from { opacity: 0; }
9
+ to { opacity: 1; }
10
+ }
11
+
12
+ /* ── Modal backdrop ─────────────────────────────────────────────────────── */
13
+ .clx-modal-backdrop {
14
+ background-color: rgba(15, 23, 42, 0.40);
15
+ backdrop-filter: blur(4px);
16
+ -webkit-backdrop-filter: blur(4px);
17
+ }
18
+
19
+ /* ── Alert backdrop ──────────────────────────────────────────────────────── */
20
+ .clx-alert-backdrop {
21
+ background-color: rgba(15, 23, 42, 0.45);
22
+ backdrop-filter: blur(6px);
23
+ -webkit-backdrop-filter: blur(6px);
24
+ }
25
+
26
+
27
+ /* ── Scrollbar ───────────────────────────────────────────────────────────── */
28
+ ::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; }
29
+ ::-webkit-scrollbar-track { background-color: transparent; }
30
+ ::-webkit-scrollbar-thumb {
31
+ background-color: var(--clx-primary-light);
32
+ border-radius: 0.5rem;
33
+ }
34
+ ::-webkit-scrollbar-thumb:hover { background-color: var(--clx-primary); }
@@ -1,7 +1,26 @@
1
- /* ── Safelist: all color shades for dynamic class binding ── */
1
+ /* ── Safelist: dynamic class binding for resolveColor()/parseColorInput() ──
2
+ These are the ONLY class shapes resolveColor() (lib/types/clx-color.types.ts)
3
+ ever emits. Keep this list in sync with that function — do not widen it
4
+ back to a full color x prefix x opacity cross product, that generated
5
+ ~16,000 classes (4.5MB+ of compiled CSS) and made resize/reflow style
6
+ recalculation extremely expensive. ── */
2
7
  @source inline("shadow-none shadow-sm shadow-md shadow-lg shadow-xl shadow-2xl");
3
- @source inline("{bg,hover:bg,ring,hover:ring,focus:ring,focus-within:ring,hover:border,border,focus:border,focus-within:border,text}-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}{/10,/20,/25,/50,/75,}");
8
+
9
+ /* plain (no opacity) tokens: bg, bgSubtle, text, textSubtle, border, borderLight,
10
+ hoverBg, hoverText*, hoverBorder*, focus:border, focus-within:border, focus-visible:ring */
11
+ @source inline("{bg,text,border,hover:bg,hover:text,hover:border,focus:border,focus-within:border,focus-visible:ring}-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}");
12
+
13
+ /* hoverBgMuted: hover:bg-{c}-{s}/10 */
14
+ @source inline("hover:bg-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/10");
15
+
16
+ /* focus/focus-within ring: focus:ring-{c}-{s}/20, focus-within:ring-{c}-{s}/20 */
17
+ @source inline("{focus:ring,focus-within:ring}-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/20");
18
+
19
+ /* ring (default): ring-{c}-{s}/30 */
20
+ @source inline("ring-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/30");
21
+
22
+ /* 'white' special-case tokens (WHITE_TOKENS in clx-color.types.ts) */
4
23
  @source inline("{bg,hover:bg,focus:ring,focus-within:ring,border,focus:border,focus-within:border,hover:border,border-t}-{white,black,transparent}");
5
- @source inline("border-white/30 border-t-white");
24
+ @source inline("border-white/30 border-t-white bg-white/10 bg-white/30 bg-white/80 border-white/20 border-white/50 border-white/80 text-white/60 text-white/70 ring-white/30 ring-white/40 ring-white/20 hover:bg-gray-100 text-gray-900");
6
25
  @source inline("text-{black,white}");
7
26
  @source inline("focus:ring-2 focus-within:ring-2 ring-2");
@@ -1,96 +1,96 @@
1
- /* ── Font registrations ───────────────────────────────────────────────────── */
2
- @theme {
3
- --font-material-symbols-outlined: 'Material Symbols Outlined';
4
- }
5
-
6
- /* ── Font body variable (overridden dynamically by ClxThemeService) ───────── */
7
- :root {
8
- --clx-font-body: 'Roboto', ui-sans-serif, system-ui, sans-serif;
9
- }
10
-
11
- /* ── Light theme (default) ────────────────────────────────────────────────── */
12
- :root {
13
- color-scheme: light;
14
-
15
- /* ── App background ── */
16
- --clx-bg: #f8fafc; /* slate-50 */
17
-
18
- /* ── Surface (cards, modals, inputs, dropdowns) ── */
19
- --clx-surface: #ffffff;
20
- --clx-surface-2: #f8fafc; /* slate-50 — card/modal header+footer, disabled bg */
21
- --clx-surface-3: #f1f5f9; /* slate-100 — hover rows, icon wraps */
22
-
23
- /* ── Text ── */
24
- --clx-text: #0f172a; /* slate-900 — body text */
25
- --clx-text-label: #475569; /* slate-600 — field labels */
26
- --clx-text-muted: #64748b; /* slate-500 — secondary text, body in alerts */
27
- --clx-text-subtle: #94a3b8; /* slate-400 — hints, placeholders, idle nav */
28
- --clx-text-faint: #cbd5e1; /* slate-300 — out-of-range calendar days */
29
-
30
- /* ── Borders ── */
31
- --clx-border: #e2e8f0; /* slate-200 — default input/card border */
32
- --clx-border-soft: #f1f5f9; /* slate-100 — card/modal header-footer divider */
33
-
34
- /* ── Backdrops ── */
35
- --clx-backdrop-modal: rgba(15, 23, 42, 0.40);
36
- --clx-backdrop-alert: rgba(15, 23, 42, 0.45);
37
-
38
- /* ── Scrollbar ── */
39
- --clx-scrollbar: #cbd5e1; /* slate-300 */
40
- --clx-scrollbar-hover: #94a3b8; /* slate-400 */
41
-
42
- /* ── Theme accents (overridden dynamically by ClxThemeService) ── */
43
- --clx-secondary: #64748b; /* slate-500 */
44
- --clx-secondary-light: #f1f5f9; /* slate-100 */
45
- }
46
-
47
- /* ── Dark theme ───────────────────────────────────────────────────────────── */
48
- [data-clx-theme="dark"] {
49
- color-scheme: dark;
50
-
51
- /* ── App background ── */
52
- --clx-bg: #020617; /* slate-950 */
53
-
54
- /* ── Surface ── */
55
- --clx-surface: #0f172a; /* slate-900 */
56
- --clx-surface-2: #1e293b; /* slate-800 — card/modal header+footer, disabled bg */
57
- --clx-surface-3: #334155; /* slate-700 — hover rows, icon wraps */
58
-
59
- /* ── Text ── */
60
- --clx-text: #f1f5f9; /* slate-100 */
61
- --clx-text-label: #cbd5e1; /* slate-300 */
62
- --clx-text-muted: #94a3b8; /* slate-400 */
63
- --clx-text-subtle: #64748b; /* slate-500 */
64
- --clx-text-faint: #475569; /* slate-600 */
65
-
66
- /* ── Borders ── */
67
- --clx-border: #334155; /* slate-700 */
68
- --clx-border-soft: #1e293b; /* slate-800 */
69
-
70
- /* ── Backdrops ── */
71
- --clx-backdrop-modal: rgba(2, 6, 23, 0.65);
72
- --clx-backdrop-alert: rgba(2, 6, 23, 0.70);
73
-
74
- /* ── Scrollbar ── */
75
- --clx-scrollbar: #334155; /* slate-700 */
76
- --clx-scrollbar-hover: #475569; /* slate-600 */
77
- }
78
-
79
- /* ── Tailwind v4: registrar vars como colores utilitarios ─────────────────── */
80
- @theme inline {
81
- --color-clx-bg: var(--clx-bg);
82
- --color-clx-surface: var(--clx-surface);
83
- --color-clx-surface-2: var(--clx-surface-2);
84
- --color-clx-surface-3: var(--clx-surface-3);
85
- --color-clx-text: var(--clx-text);
86
- --color-clx-text-label: var(--clx-text-label);
87
- --color-clx-text-muted: var(--clx-text-muted);
88
- --color-clx-text-subtle: var(--clx-text-subtle);
89
- --color-clx-text-faint: var(--clx-text-faint);
90
- --color-clx-border: var(--clx-border);
91
- --color-clx-border-soft: var(--clx-border-soft);
92
- --color-clx-primary: var(--clx-primary);
93
- --color-clx-primary-light: var(--clx-primary-light);
94
- --color-clx-secondary: var(--clx-secondary);
95
- --color-clx-secondary-light: var(--clx-secondary-light);
96
- }
1
+ /* ── Font registrations ───────────────────────────────────────────────────── */
2
+ @theme {
3
+ --font-material-symbols-outlined: 'Material Symbols Outlined';
4
+ }
5
+
6
+ /* ── Font body variable (overridden dynamically by ClxThemeService) ───────── */
7
+ :root {
8
+ --clx-font-body: 'Roboto', ui-sans-serif, system-ui, sans-serif;
9
+ }
10
+
11
+ /* ── Light theme (default) ────────────────────────────────────────────────── */
12
+ :root {
13
+ color-scheme: light;
14
+
15
+ /* ── App background ── */
16
+ --clx-bg: #f8fafc; /* slate-50 */
17
+
18
+ /* ── Surface (cards, modals, inputs, dropdowns) ── */
19
+ --clx-surface: #ffffff;
20
+ --clx-surface-2: #f8fafc; /* slate-50 — card/modal header+footer, disabled bg */
21
+ --clx-surface-3: #f1f5f9; /* slate-100 — hover rows, icon wraps */
22
+
23
+ /* ── Text ── */
24
+ --clx-text: #0f172a; /* slate-900 — body text */
25
+ --clx-text-label: #475569; /* slate-600 — field labels */
26
+ --clx-text-muted: #64748b; /* slate-500 — secondary text, body in alerts */
27
+ --clx-text-subtle: #94a3b8; /* slate-400 — hints, placeholders, idle nav */
28
+ --clx-text-faint: #cbd5e1; /* slate-300 — out-of-range calendar days */
29
+
30
+ /* ── Borders ── */
31
+ --clx-border: #e2e8f0; /* slate-200 — default input/card border */
32
+ --clx-border-soft: #f1f5f9; /* slate-100 — card/modal header-footer divider */
33
+
34
+ /* ── Backdrops ── */
35
+ --clx-backdrop-modal: rgba(15, 23, 42, 0.40);
36
+ --clx-backdrop-alert: rgba(15, 23, 42, 0.45);
37
+
38
+ /* ── Scrollbar ── */
39
+ --clx-scrollbar: #cbd5e1; /* slate-300 */
40
+ --clx-scrollbar-hover: #94a3b8; /* slate-400 */
41
+
42
+ /* ── Theme accents (overridden dynamically by ClxThemeService) ── */
43
+ --clx-secondary: #64748b; /* slate-500 */
44
+ --clx-secondary-light: #f1f5f9; /* slate-100 */
45
+ }
46
+
47
+ /* ── Dark theme ───────────────────────────────────────────────────────────── */
48
+ [data-clx-theme="dark"] {
49
+ color-scheme: dark;
50
+
51
+ /* ── App background ── */
52
+ --clx-bg: #020617; /* slate-950 */
53
+
54
+ /* ── Surface ── */
55
+ --clx-surface: #0f172a; /* slate-900 */
56
+ --clx-surface-2: #1e293b; /* slate-800 — card/modal header+footer, disabled bg */
57
+ --clx-surface-3: #334155; /* slate-700 — hover rows, icon wraps */
58
+
59
+ /* ── Text ── */
60
+ --clx-text: #f1f5f9; /* slate-100 */
61
+ --clx-text-label: #cbd5e1; /* slate-300 */
62
+ --clx-text-muted: #94a3b8; /* slate-400 */
63
+ --clx-text-subtle: #64748b; /* slate-500 */
64
+ --clx-text-faint: #475569; /* slate-600 */
65
+
66
+ /* ── Borders ── */
67
+ --clx-border: #334155; /* slate-700 */
68
+ --clx-border-soft: #1e293b; /* slate-800 */
69
+
70
+ /* ── Backdrops ── */
71
+ --clx-backdrop-modal: rgba(2, 6, 23, 0.65);
72
+ --clx-backdrop-alert: rgba(2, 6, 23, 0.70);
73
+
74
+ /* ── Scrollbar ── */
75
+ --clx-scrollbar: #334155; /* slate-700 */
76
+ --clx-scrollbar-hover: #475569; /* slate-600 */
77
+ }
78
+
79
+ /* ── Tailwind v4: registrar vars como colores utilitarios ─────────────────── */
80
+ @theme inline {
81
+ --color-clx-bg: var(--clx-bg);
82
+ --color-clx-surface: var(--clx-surface);
83
+ --color-clx-surface-2: var(--clx-surface-2);
84
+ --color-clx-surface-3: var(--clx-surface-3);
85
+ --color-clx-text: var(--clx-text);
86
+ --color-clx-text-label: var(--clx-text-label);
87
+ --color-clx-text-muted: var(--clx-text-muted);
88
+ --color-clx-text-subtle: var(--clx-text-subtle);
89
+ --color-clx-text-faint: var(--clx-text-faint);
90
+ --color-clx-border: var(--clx-border);
91
+ --color-clx-border-soft: var(--clx-border-soft);
92
+ --color-clx-primary: var(--clx-primary);
93
+ --color-clx-primary-light: var(--clx-primary-light);
94
+ --color-clx-secondary: var(--clx-secondary);
95
+ --color-clx-secondary-light: var(--clx-secondary-light);
96
+ }