@owodesign/owoui 0.1.1 → 0.1.3

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.
@@ -12,6 +12,14 @@
12
12
  color: var(--status-notice-icon);
13
13
  }
14
14
 
15
+ .ui-status-notice__title {
16
+ color: var(--ui-text-primary);
17
+ }
18
+
19
+ .ui-status-notice[data-layout="vertical"] .ui-status-notice__title {
20
+ color: var(--status-notice-text);
21
+ }
22
+
15
23
  .ui-status-notice[data-tone="info"] {
16
24
  --status-notice-bg: var(--feedback-info-bg);
17
25
  --status-notice-border: var(--feedback-info-border);
@@ -0,0 +1,33 @@
1
+ .ui-tabs__list {
2
+ --tabs-border: var(--ui-surface-border);
3
+ border-color: var(--tabs-border);
4
+ }
5
+
6
+ .ui-tabs__trigger {
7
+ --tabs-text: var(--ui-text-muted);
8
+ --tabs-hover-text: var(--ui-text-secondary);
9
+ --tabs-active-text: var(--ui-text-primary);
10
+ --tabs-active-border: var(--ui-accent-strong);
11
+ --tabs-active-bg: color-mix(in srgb, var(--ui-accent-soft) 35%, transparent);
12
+ --tabs-ring: var(--ui-control-focus-ring);
13
+ border-bottom-color: transparent;
14
+ color: var(--tabs-text);
15
+ }
16
+
17
+ .ui-tabs__trigger:hover {
18
+ color: var(--tabs-hover-text);
19
+ }
20
+
21
+ .ui-tabs__trigger[data-state="active"] {
22
+ background: var(--tabs-active-bg);
23
+ border-bottom-color: var(--tabs-active-border);
24
+ color: var(--tabs-active-text);
25
+ }
26
+
27
+ .ui-tabs__trigger:focus-visible {
28
+ --tw-ring-color: var(--tabs-ring);
29
+ }
30
+
31
+ .ui-tabs__content {
32
+ color: var(--ui-text-primary);
33
+ }
@@ -0,0 +1,8 @@
1
+ .ui-textarea {
2
+ min-height: calc(1.5em * 3 + 1rem);
3
+ line-height: 1.5;
4
+ }
5
+
6
+ .ui-textarea[data-auto-resize="true"] {
7
+ overflow-y: hidden;
8
+ }
@@ -6,12 +6,17 @@
6
6
  background: var(--tooltip-bg);
7
7
  color: var(--tooltip-text);
8
8
  border: 1px solid var(--tooltip-border);
9
- box-shadow: var(--tooltip-shadow);
9
+ box-shadow:
10
+ 0 0 0 1px color-mix(in srgb, var(--tooltip-border) 55%, transparent),
11
+ var(--tooltip-shadow);
12
+ backdrop-filter: blur(10px);
10
13
  }
11
14
 
12
15
  .ui-tooltip__arrow {
13
16
  color: var(--tooltip-arrow-color);
14
- filter: drop-shadow(0 1px 0 var(--tooltip-border));
17
+ filter:
18
+ drop-shadow(0 1px 0 var(--tooltip-border))
19
+ drop-shadow(0 0 0.5px color-mix(in srgb, var(--tooltip-border) 55%, transparent));
15
20
  }
16
21
 
17
22
  @keyframes tooltip-in {
@@ -0,0 +1,87 @@
1
+ @import "./tokens.css";
2
+
3
+ :root[data-theme="dark"],
4
+ .owoui-theme-dark {
5
+ --color-n900: #fafafa;
6
+ --color-n800: #e4e4e7;
7
+ --color-n700: #d4d4d8;
8
+ --color-n600: #a1a1aa;
9
+ --color-n500: #71717a;
10
+ --color-n400: #3f3f46;
11
+ --color-n300: #27272a;
12
+
13
+ --color-brand-primary: #c6c6c7;
14
+ --color-brand-primary-hover: #d4d4d8;
15
+ --color-brand-accent: #a1a1aa;
16
+
17
+ --color-surface-canvas: #0e0e0e;
18
+ --color-surface-base: #18181b;
19
+ --color-surface-subtle: #1c1c1f;
20
+ --color-surface-raised: #27272a;
21
+ --color-surface-inset: #111113;
22
+ --color-surface-border: rgba(255, 255, 255, 0.12);
23
+ --color-surface-ring: rgba(255, 255, 255, 0.24);
24
+ --color-surface-overlay: rgba(0, 0, 0, 0.6);
25
+
26
+ --color-overlay-soft: rgba(0, 0, 0, 0.32);
27
+ --color-overlay-strong: rgba(0, 0, 0, 0.56);
28
+ --color-highlight-soft: rgba(255, 255, 255, 0.06);
29
+ --color-highlight-sheen: rgba(255, 255, 255, 0.08);
30
+
31
+ --color-text-on-brand: #1a1a1a;
32
+
33
+ --color-code-block-bg: #1e1e22;
34
+ --color-code-block-border: #2d2d32;
35
+ --color-code-block-divider: #27272c;
36
+ --color-code-inline-bg: #27272a;
37
+
38
+ --color-admin-success-bg: rgba(16, 185, 129, 0.15);
39
+ --color-admin-success-border: rgba(16, 185, 129, 0.3);
40
+ --color-admin-success-text: #6ee7b7;
41
+ --color-admin-warning-bg: rgba(245, 158, 11, 0.15);
42
+ --color-admin-warning-border: rgba(245, 158, 11, 0.3);
43
+ --color-admin-warning-text: #fbbf24;
44
+ --color-admin-danger-bg: rgba(239, 68, 68, 0.15);
45
+ --color-admin-danger-border: rgba(239, 68, 68, 0.3);
46
+ --color-admin-danger-text: #fca5a5;
47
+ --color-admin-info-bg: rgba(14, 165, 233, 0.15);
48
+ --color-admin-info-border: rgba(14, 165, 233, 0.3);
49
+ --color-admin-info-text: #7dd3fc;
50
+
51
+ --theme-surface-canvas: var(--color-surface-canvas);
52
+ --theme-surface-base: var(--color-surface-base);
53
+ --theme-surface-subtle: var(--color-surface-subtle);
54
+ --theme-surface-raised: var(--color-surface-raised);
55
+ --theme-surface-inset: var(--color-surface-inset);
56
+ --theme-surface-border: var(--color-surface-border);
57
+ --theme-surface-border-muted: rgba(255, 255, 255, 0.06);
58
+ --theme-surface-border-strong: var(--color-surface-ring);
59
+ --theme-canvas-bg-subtle: #0f0f11;
60
+ --theme-surface-container: #1e1e22;
61
+ --theme-surface-container-high: #252529;
62
+ --theme-surface-container-highest: #2d2d32;
63
+ --theme-text-primary: var(--color-n800);
64
+ --theme-text-secondary: var(--color-n600);
65
+ --theme-text-muted: var(--color-n500);
66
+ --theme-text-on-accent: var(--color-text-on-brand);
67
+ --theme-accent-bg: var(--color-brand-primary);
68
+ --theme-accent-bg-hover: var(--color-brand-primary-hover);
69
+ --theme-accent-bg-muted: color-mix(in srgb, var(--color-brand-primary) 14%, var(--color-surface-base));
70
+ --theme-accent-border: color-mix(in srgb, var(--color-brand-primary) 50%, transparent);
71
+ --theme-success-bg: var(--color-admin-success-bg);
72
+ --theme-success-border: var(--color-admin-success-border);
73
+ --theme-success-text: var(--color-admin-success-text);
74
+ --theme-warning-bg: var(--color-admin-warning-bg);
75
+ --theme-warning-border: var(--color-admin-warning-border);
76
+ --theme-warning-text: var(--color-admin-warning-text);
77
+ --theme-danger-bg: var(--color-admin-danger-bg);
78
+ --theme-danger-bg-emphasis: rgba(239, 68, 68, 0.24);
79
+ --theme-danger-border: var(--color-admin-danger-border);
80
+ --theme-danger-text: var(--color-admin-danger-text);
81
+ --theme-info-bg: var(--color-admin-info-bg);
82
+ --theme-info-border: var(--color-admin-info-border);
83
+ --theme-info-text: var(--color-admin-info-text);
84
+ --theme-control-focus-ring: var(--color-surface-ring);
85
+ --theme-control-focus-ring-offset: var(--color-surface-base);
86
+ }
87
+
@@ -0,0 +1,102 @@
1
+ @import "./styles/tokens.css";
2
+
3
+ /* ================================================================== */
4
+ /* Light theme — all --color-* primitives + --theme-* mappings */
5
+ /* */
6
+ /* :root (bare) is included so light acts as the default when no */
7
+ /* explicit data-theme is set. */
8
+ /* ================================================================== */
9
+
10
+ :root,
11
+ :root[data-theme="light"],
12
+ .owoui-theme-light {
13
+ /* Neutral scale */
14
+ --color-n900: #1a1a1a;
15
+ --color-n800: #2d2d2d;
16
+ --color-n700: #4a4a4a;
17
+ --color-n600: #71717a;
18
+ --color-n500: #a1a1aa;
19
+ --color-n400: #d4d4d8;
20
+ --color-n300: #e4e4e7;
21
+
22
+ /* Brand */
23
+ --color-brand-primary: #1a1a1a;
24
+ --color-brand-primary-hover: #000000;
25
+ --color-brand-accent: #4a4a4a;
26
+
27
+ /* Surfaces */
28
+ --color-surface-canvas: #ffffff;
29
+ --color-surface-base: #ffffff;
30
+ --color-surface-subtle: #fafaf9;
31
+ --color-surface-raised: #ffffff;
32
+ --color-surface-inset: #f5f5f4;
33
+ --color-surface-border: #e5e7eb;
34
+ --color-surface-ring: #d6d3d1;
35
+ --color-surface-overlay: rgba(0, 0, 0, 0.4);
36
+
37
+ /* Overlays & highlights */
38
+ --color-overlay-soft: rgba(244, 238, 230, 0.56);
39
+ --color-overlay-strong: rgba(15, 23, 42, 0.18);
40
+ --color-highlight-soft: rgba(255, 255, 255, 0.56);
41
+ --color-highlight-sheen: rgba(255, 255, 255, 0.34);
42
+
43
+ /* Text on brand */
44
+ --color-text-on-brand: #ffffff;
45
+
46
+ /* Code blocks */
47
+ --color-code-block-bg: #f4f4f5;
48
+ --color-code-block-border: #e4e4e7;
49
+ --color-code-block-divider: #ececed;
50
+ --color-code-inline-bg: #f4f4f5;
51
+
52
+ /* Status */
53
+ --color-admin-success-bg: rgba(16, 185, 129, 0.10);
54
+ --color-admin-success-border: rgba(16, 185, 129, 0.20);
55
+ --color-admin-success-text: #047857;
56
+ --color-admin-warning-bg: rgba(245, 158, 11, 0.10);
57
+ --color-admin-warning-border: rgba(245, 158, 11, 0.20);
58
+ --color-admin-warning-text: #b45309;
59
+ --color-admin-danger-bg: rgba(239, 68, 68, 0.10);
60
+ --color-admin-danger-border: rgba(239, 68, 68, 0.20);
61
+ --color-admin-danger-text: #b91c1c;
62
+ --color-admin-info-bg: rgba(14, 165, 233, 0.10);
63
+ --color-admin-info-border: rgba(14, 165, 233, 0.20);
64
+ --color-admin-info-text: #0369a1;
65
+
66
+ /* ---- Theme semantic mappings (--color-* → --theme-*) ---- */
67
+ --theme-surface-canvas: var(--color-surface-canvas);
68
+ --theme-surface-base: var(--color-surface-base);
69
+ --theme-surface-subtle: var(--color-surface-subtle);
70
+ --theme-surface-raised: var(--color-surface-raised);
71
+ --theme-surface-inset: var(--color-surface-inset);
72
+ --theme-surface-border: var(--color-surface-border);
73
+ --theme-surface-border-muted: rgba(0, 0, 0, 0.06);
74
+ --theme-surface-border-strong: var(--color-surface-ring);
75
+ --theme-canvas-bg-subtle: #f5f5f4;
76
+ --theme-surface-container: #f4f4f5;
77
+ --theme-surface-container-high: #ececed;
78
+ --theme-surface-container-highest: #e4e4e7;
79
+ --theme-text-primary: var(--color-n800);
80
+ --theme-text-secondary: var(--color-n600);
81
+ --theme-text-muted: var(--color-n500);
82
+ --theme-text-on-accent: var(--color-text-on-brand);
83
+ --theme-accent-bg: var(--color-brand-primary);
84
+ --theme-accent-bg-hover: var(--color-brand-primary-hover);
85
+ --theme-accent-bg-muted: color-mix(in srgb, var(--color-brand-primary) 10%, var(--color-surface-base));
86
+ --theme-accent-border: color-mix(in srgb, var(--color-brand-primary) 40%, transparent);
87
+ --theme-success-bg: var(--color-admin-success-bg);
88
+ --theme-success-border: var(--color-admin-success-border);
89
+ --theme-success-text: var(--color-admin-success-text);
90
+ --theme-warning-bg: var(--color-admin-warning-bg);
91
+ --theme-warning-border: var(--color-admin-warning-border);
92
+ --theme-warning-text: var(--color-admin-warning-text);
93
+ --theme-danger-bg: var(--color-admin-danger-bg);
94
+ --theme-danger-bg-emphasis: rgba(239, 68, 68, 0.18);
95
+ --theme-danger-border: var(--color-admin-danger-border);
96
+ --theme-danger-text: var(--color-admin-danger-text);
97
+ --theme-info-bg: var(--color-admin-info-bg);
98
+ --theme-info-border: var(--color-admin-info-border);
99
+ --theme-info-text: var(--color-admin-info-text);
100
+ --theme-control-focus-ring: var(--color-surface-ring);
101
+ --theme-control-focus-ring-offset: var(--color-surface-base);
102
+ }
package/src/dark.css DELETED
@@ -1,70 +0,0 @@
1
- @import "./style.css";
2
-
3
- :root[data-theme="dark"],
4
- .owoui-theme-dark {
5
- /* ── Neutral scale (inverted for dark context) ── */
6
- --color-n900: #fafafa;
7
- --color-n800: #e4e4e7;
8
- --color-n700: #d4d4d8;
9
- --color-n600: #a1a1aa;
10
- --color-n500: #71717a;
11
- --color-n400: #3f3f46;
12
- --color-n300: #27272a;
13
-
14
- /* ── Brand (adjusted for dark background legibility) ── */
15
- --color-brand-primary: #e11d48;
16
- --color-brand-primary-hover: #f43f5e;
17
- --color-brand-accent: #fb7185;
18
-
19
- /* ── Surfaces ── */
20
- --color-surface-canvas: #09090b;
21
- --color-surface-base: #18181b;
22
- --color-surface-subtle: #1c1c1f;
23
- --color-surface-raised: #27272a;
24
- --color-surface-inset: #111113;
25
- --color-surface-border: rgba(255, 255, 255, 0.12);
26
- --color-surface-ring: rgba(255, 255, 255, 0.24);
27
- --color-surface-overlay: rgba(0, 0, 0, 0.6);
28
-
29
- /* ── Overlay & highlight ── */
30
- --color-overlay-soft: rgba(0, 0, 0, 0.32);
31
- --color-overlay-strong: rgba(0, 0, 0, 0.56);
32
- --color-highlight-soft: rgba(255, 255, 255, 0.06);
33
- --color-highlight-sheen: rgba(255, 255, 255, 0.08);
34
-
35
- --color-text-on-brand: #ffffff;
36
-
37
- /* ── Code blocks ── */
38
- --color-code-block-bg: #1e1e22;
39
- --color-code-block-border: #2d2d32;
40
- --color-code-block-divider: #27272c;
41
- --color-code-inline-bg: #27272a;
42
-
43
- /* ── Shadows (deeper for dark context) ── */
44
- --shadow-raised: 0 10px 20px rgba(0, 0, 0, 0.30);
45
- --shadow-popover: 0 18px 40px rgba(0, 0, 0, 0.40);
46
-
47
- /* ── Feedback (lightened text for dark backgrounds) ── */
48
- --color-admin-success-bg: rgba(16, 185, 129, 0.15);
49
- --color-admin-success-border: rgba(16, 185, 129, 0.30);
50
- --color-admin-success-text: #6ee7b7;
51
- --color-admin-warning-bg: rgba(245, 158, 11, 0.15);
52
- --color-admin-warning-border: rgba(245, 158, 11, 0.30);
53
- --color-admin-warning-text: #fbbf24;
54
- --color-admin-danger-bg: rgba(239, 68, 68, 0.15);
55
- --color-admin-danger-border: rgba(239, 68, 68, 0.30);
56
- --color-admin-danger-text: #fca5a5;
57
- --color-admin-info-bg: rgba(14, 165, 233, 0.15);
58
- --color-admin-info-border: rgba(14, 165, 233, 0.30);
59
- --color-admin-info-text: #7dd3fc;
60
-
61
- /* ── New semantic tokens: dark overrides ── */
62
- --ui-canvas-bg-subtle: #0f0f11;
63
- --ui-surface-border-muted: rgba(255, 255, 255, 0.06);
64
- --ui-surface-container: #1e1e22;
65
- --ui-surface-container-high: #252529;
66
- --ui-surface-container-highest: #2d2d32;
67
- --ui-accent-bg-muted: color-mix(in srgb, var(--color-brand-primary) 14%, var(--color-surface-base));
68
- --ui-accent-border: color-mix(in srgb, var(--color-brand-primary) 50%, transparent);
69
- --ui-danger-bg-emphasis: rgba(239, 68, 68, 0.24);
70
- }
package/src/elevated.css DELETED
@@ -1,20 +0,0 @@
1
- @import "./style.css";
2
-
3
- :root,
4
- .owoui-theme-elevated {
5
- --color-surface-canvas: #f4f7fb;
6
- --color-surface-base: rgba(255, 255, 255, 0.88);
7
- --color-surface-subtle: rgba(248, 250, 252, 0.94);
8
- --color-surface-raised: rgba(255, 255, 255, 0.96);
9
- --color-surface-inset: #eef2f7;
10
- --color-surface-border: rgba(148, 163, 184, 0.22);
11
- --color-surface-ring: rgba(59, 130, 246, 0.28);
12
- --color-overlay-soft: rgba(240, 244, 250, 0.62);
13
- --color-overlay-strong: rgba(15, 23, 42, 0.24);
14
- --shadow-raised: 0 16px 40px rgba(15, 23, 42, 0.14);
15
- --shadow-popover: 0 28px 60px rgba(15, 23, 42, 0.18);
16
- --drawer-panel-shadow: 0 28px 60px rgba(15, 23, 42, 0.18);
17
- --select-dropdown-shadow: 0 22px 50px rgba(15, 23, 42, 0.16);
18
- --tooltip-shadow: 0 14px 36px rgba(15, 23, 42, 0.14);
19
- --theme-picker-shadow: 0 24px 56px rgba(15, 23, 42, 0.16);
20
- }
package/src/flat.css DELETED
@@ -1 +0,0 @@
1
- @import "./style.css";
package/src/glass.css DELETED
@@ -1,17 +0,0 @@
1
- @import "./style.css";
2
-
3
- :root,
4
- .owoui-theme-glass {
5
- --color-surface-canvas: linear-gradient(180deg, #edf3ff 0%, #f7fbff 42%, #f2f7fb 100%);
6
- --color-surface-base: rgba(255, 255, 255, 0.62);
7
- --color-surface-subtle: rgba(255, 255, 255, 0.48);
8
- --color-surface-raised: rgba(255, 255, 255, 0.72);
9
- --color-surface-inset: rgba(236, 243, 251, 0.82);
10
- --color-surface-border: rgba(255, 255, 255, 0.42);
11
- --color-surface-ring: rgba(148, 163, 184, 0.28);
12
- --color-overlay-soft: rgba(240, 246, 255, 0.48);
13
- --color-overlay-strong: rgba(15, 23, 42, 0.18);
14
- --shadow-raised: 0 16px 44px rgba(15, 23, 42, 0.10);
15
- --shadow-popover: 0 24px 64px rgba(15, 23, 42, 0.14);
16
- --ui-surface-blur: 18px;
17
- }
@@ -1,34 +0,0 @@
1
- .ui-empty-state {
2
- --empty-state-bg: var(--ui-surface-bg-raised);
3
- --empty-state-border: var(--ui-surface-border);
4
- --empty-state-title: var(--ui-text-primary);
5
- --empty-state-text: var(--ui-text-muted);
6
- --empty-state-icon: var(--ui-text-muted);
7
- background: var(--empty-state-bg);
8
- border-color: var(--empty-state-border);
9
- color: var(--empty-state-text);
10
- }
11
-
12
- .ui-empty-state__icon {
13
- color: var(--empty-state-icon);
14
- }
15
-
16
- .ui-empty-state__title {
17
- color: var(--empty-state-title);
18
- }
19
-
20
- .ui-empty-state[data-tone="notice"] {
21
- --empty-state-bg: var(--ui-info-bg);
22
- --empty-state-border: var(--ui-info-border);
23
- --empty-state-title: var(--ui-info-text);
24
- --empty-state-text: var(--ui-info-text);
25
- --empty-state-icon: var(--ui-info-text);
26
- }
27
-
28
- .ui-empty-state[data-tone="warning"] {
29
- --empty-state-bg: var(--ui-warning-bg);
30
- --empty-state-border: var(--ui-warning-border);
31
- --empty-state-title: var(--ui-warning-text);
32
- --empty-state-text: var(--ui-warning-text);
33
- --empty-state-icon: var(--ui-warning-text);
34
- }