@ryanhelsing/ry-ui 1.0.2 → 1.0.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.
Files changed (51) hide show
  1. package/AGENTS.md +56 -0
  2. package/README.md +26 -1
  3. package/dist/components/ry-carousel.d.ts +21 -0
  4. package/dist/components/ry-carousel.d.ts.map +1 -0
  5. package/dist/components/ry-feature.d.ts +21 -0
  6. package/dist/components/ry-feature.d.ts.map +1 -0
  7. package/dist/components/ry-hero.d.ts +16 -0
  8. package/dist/components/ry-hero.d.ts.map +1 -0
  9. package/dist/components/ry-number-select.d.ts.map +1 -1
  10. package/dist/components/ry-pricing.d.ts +21 -0
  11. package/dist/components/ry-pricing.d.ts.map +1 -0
  12. package/dist/components/ry-select.d.ts +8 -1
  13. package/dist/components/ry-select.d.ts.map +1 -1
  14. package/dist/components/ry-stat.d.ts +17 -0
  15. package/dist/components/ry-stat.d.ts.map +1 -0
  16. package/dist/components/ry-tag-input.d.ts +18 -0
  17. package/dist/components/ry-tag-input.d.ts.map +1 -0
  18. package/dist/components/ry-tag.d.ts +19 -0
  19. package/dist/components/ry-tag.d.ts.map +1 -0
  20. package/dist/core/ry-transform.d.ts.map +1 -1
  21. package/dist/css/ry-structure.css +620 -148
  22. package/dist/css/ry-theme.css +456 -180
  23. package/dist/css/ry-tokens.css +112 -24
  24. package/dist/css/ry-ui.css +4708 -1059
  25. package/dist/ry-ui.d.ts +7 -0
  26. package/dist/ry-ui.d.ts.map +1 -1
  27. package/dist/ry-ui.js +1071 -713
  28. package/dist/ry-ui.js.map +1 -1
  29. package/dist/themes/dark.css +7 -90
  30. package/dist/themes/light.css +6 -35
  31. package/dist/themes/ocean.css +22 -26
  32. package/docs/components/accordion.md +31 -0
  33. package/docs/components/button.md +65 -0
  34. package/docs/components/color.md +84 -0
  35. package/docs/components/display.md +69 -0
  36. package/docs/components/drawer.md +36 -0
  37. package/docs/components/dropdown.md +33 -0
  38. package/docs/components/forms.md +86 -0
  39. package/docs/components/knob.md +42 -0
  40. package/docs/components/layout.md +189 -0
  41. package/docs/components/modal.md +38 -0
  42. package/docs/components/number-select.md +42 -0
  43. package/docs/components/slider.md +48 -0
  44. package/docs/components/tabs.md +30 -0
  45. package/docs/components/theme-toggle.md +36 -0
  46. package/docs/components/toast.md +27 -0
  47. package/docs/components/tooltip.md +14 -0
  48. package/docs/components/tree.md +46 -0
  49. package/docs/theming.md +182 -0
  50. package/package.json +5 -3
  51. package/USING_CDN.md +0 -591
@@ -2,46 +2,126 @@
2
2
  * ry-ui Design Tokens
3
3
  *
4
4
  * These CSS custom properties define the visual language.
5
+ * color-scheme: light dark enables OS preference detection.
6
+ * light-dark() embeds both values — no separate dark.css needed.
5
7
  * Override in your theme file to customize.
6
8
  */
7
9
 
10
+ /* ═══════════════════════════════════════════════════════════════
11
+ @property — typed custom properties for animation & type safety
12
+ ═══════════════════════════════════════════════════════════════ */
13
+
14
+ @property --ry-color-primary { syntax: "<color>"; inherits: true; initial-value: oklch(0.623 0.188 259.8); }
15
+ @property --ry-color-primary-hover { syntax: "<color>"; inherits: true; initial-value: oklch(0.546 0.215 262.9); }
16
+ @property --ry-color-primary-active { syntax: "<color>"; inherits: true; initial-value: oklch(0.488 0.217 264.4); }
17
+ @property --ry-color-secondary { syntax: "<color>"; inherits: true; initial-value: oklch(0.554 0.041 257.4); }
18
+ @property --ry-color-secondary-hover { syntax: "<color>"; inherits: true; initial-value: oklch(0.446 0.037 257.3); }
19
+ @property --ry-color-secondary-active { syntax: "<color>"; inherits: true; initial-value: oklch(0.372 0.039 257.3); }
20
+ @property --ry-color-success { syntax: "<color>"; inherits: true; initial-value: oklch(0.723 0.192 149.6); }
21
+ @property --ry-color-warning { syntax: "<color>"; inherits: true; initial-value: oklch(0.769 0.165 70.1); }
22
+ @property --ry-color-danger { syntax: "<color>"; inherits: true; initial-value: oklch(0.637 0.208 25.3); }
23
+ @property --ry-color-info { syntax: "<color>"; inherits: true; initial-value: oklch(0.715 0.126 215.2); }
24
+ @property --ry-color-text { syntax: "<color>"; inherits: true; initial-value: oklch(0.279 0.037 260); }
25
+ @property --ry-color-text-muted { syntax: "<color>"; inherits: true; initial-value: oklch(0.554 0.041 257.4); }
26
+ @property --ry-color-text-inverse { syntax: "<color>"; inherits: true; initial-value: oklch(1 0 0); }
27
+ @property --ry-color-bg { syntax: "<color>"; inherits: true; initial-value: oklch(1 0 0); }
28
+ @property --ry-color-bg-subtle { syntax: "<color>"; inherits: true; initial-value: oklch(0.984 0.003 248.2); }
29
+ @property --ry-color-bg-muted { syntax: "<color>"; inherits: true; initial-value: oklch(0.968 0.007 248.1); }
30
+ @property --ry-color-border { syntax: "<color>"; inherits: true; initial-value: oklch(0.929 0.013 255.6); }
31
+ @property --ry-color-border-strong { syntax: "<color>"; inherits: true; initial-value: oklch(0.869 0.02 252.9); }
32
+ @property --ry-color-overlay { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.5); }
33
+ @property --ry-shadow-color { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.1); }
34
+ @property --ry-shadow-color-sm { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.05); }
35
+
36
+ @property --ry-duration-fast { syntax: "<time>"; inherits: true; initial-value: 100ms; }
37
+ @property --ry-duration-normal { syntax: "<time>"; inherits: true; initial-value: 200ms; }
38
+ @property --ry-duration-slow { syntax: "<time>"; inherits: true; initial-value: 300ms; }
39
+
40
+ @property --ry-space-1 { syntax: "<length>"; inherits: true; initial-value: 0.25rem; }
41
+ @property --ry-space-2 { syntax: "<length>"; inherits: true; initial-value: 0.5rem; }
42
+ @property --ry-space-3 { syntax: "<length>"; inherits: true; initial-value: 0.75rem; }
43
+ @property --ry-space-4 { syntax: "<length>"; inherits: true; initial-value: 1rem; }
44
+ @property --ry-space-6 { syntax: "<length>"; inherits: true; initial-value: 1.5rem; }
45
+ @property --ry-space-8 { syntax: "<length>"; inherits: true; initial-value: 2rem; }
46
+
47
+ @layer ry-tokens, ry-structure, ry-theme;
48
+
49
+ @layer ry-tokens {
8
50
  :root {
51
+ color-scheme: light dark;
52
+
9
53
  /* ═══════════════════════════════════════════════════════════════
10
54
  COLORS
11
55
  ═══════════════════════════════════════════════════════════════ */
12
56
 
13
57
  /* Primary */
14
- --ry-color-primary: #3b82f6;
15
- --ry-color-primary-hover: #2563eb;
16
- --ry-color-primary-active: #1d4ed8;
58
+ --ry-color-primary: light-dark(oklch(0.623 0.188 259.8), oklch(0.714 0.143 254.6));
59
+ --ry-color-primary-hover: light-dark(oklch(0.546 0.215 262.9), oklch(0.623 0.188 259.8));
60
+ --ry-color-primary-active: light-dark(oklch(0.488 0.217 264.4), oklch(0.546 0.215 262.9));
17
61
 
18
62
  /* Secondary */
19
- --ry-color-secondary: #64748b;
20
- --ry-color-secondary-hover: #475569;
21
- --ry-color-secondary-active: #334155;
63
+ --ry-color-secondary: light-dark(oklch(0.554 0.041 257.4), oklch(0.711 0.035 256.8));
64
+ --ry-color-secondary-hover: light-dark(oklch(0.446 0.037 257.3), oklch(0.869 0.02 252.9));
65
+ --ry-color-secondary-active: light-dark(oklch(0.372 0.039 257.3), oklch(0.929 0.013 255.6));
22
66
 
23
67
  /* Semantic */
24
- --ry-color-success: #22c55e;
25
- --ry-color-warning: #f59e0b;
26
- --ry-color-danger: #ef4444;
27
- --ry-color-info: #06b6d4;
68
+ --ry-color-success: oklch(0.723 0.192 149.6);
69
+ --ry-color-warning: oklch(0.769 0.165 70.1);
70
+ --ry-color-danger: oklch(0.637 0.208 25.3);
71
+ --ry-color-danger-hover: oklch(0.577 0.215 27.3);
72
+ --ry-color-info: oklch(0.715 0.126 215.2);
73
+
74
+ /* Semantic backgrounds & text (for alerts, badges) */
75
+ --ry-color-info-bg: light-dark(oklch(0.984 0.019 201.1), oklch(0.398 0.066 227.4));
76
+ --ry-color-info-text: light-dark(oklch(0.52 0.094 223.1), oklch(0.917 0.077 205.1));
77
+ --ry-color-success-bg: light-dark(oklch(0.982 0.018 156.1), oklch(0.393 0.09 152.6));
78
+ --ry-color-success-text: light-dark(oklch(0.527 0.137 150.1), oklch(0.925 0.081 156.1));
79
+ --ry-color-warning-bg: light-dark(oklch(0.987 0.021 95.3), oklch(0.414 0.105 45.9));
80
+ --ry-color-warning-text: light-dark(oklch(0.555 0.145 49), oklch(0.962 0.058 95.6));
81
+ --ry-color-danger-bg: light-dark(oklch(0.971 0.013 17), oklch(0.396 0.133 25.7));
82
+ --ry-color-danger-text: light-dark(oklch(0.505 0.19 27.5), oklch(0.885 0.059 18.3));
28
83
 
29
84
  /* Text */
30
- --ry-color-text: #1e293b;
31
- --ry-color-text-muted: #64748b;
32
- --ry-color-text-inverse: #ffffff;
85
+ --ry-color-text: light-dark(oklch(0.279 0.037 260), oklch(0.968 0.007 248.1));
86
+ --ry-color-text-muted: light-dark(oklch(0.554 0.041 257.4), oklch(0.711 0.035 256.8));
87
+ --ry-color-text-inverse: light-dark(oklch(1 0 0), oklch(0.208 0.04 265.8));
33
88
 
34
89
  /* Background */
35
- --ry-color-bg: #ffffff;
36
- --ry-color-bg-subtle: #f8fafc;
37
- --ry-color-bg-muted: #f1f5f9;
90
+ --ry-color-bg: light-dark(oklch(1 0 0), oklch(0.208 0.04 265.8));
91
+ --ry-color-bg-subtle: light-dark(oklch(0.984 0.003 248.2), oklch(0.279 0.037 260));
92
+ --ry-color-bg-muted: light-dark(oklch(0.968 0.007 248.1), oklch(0.372 0.039 257.3));
38
93
 
39
94
  /* Border */
40
- --ry-color-border: #e2e8f0;
41
- --ry-color-border-strong: #cbd5e1;
95
+ --ry-color-border: light-dark(oklch(0.929 0.013 255.6), oklch(0.372 0.039 257.3));
96
+ --ry-color-border-strong: light-dark(oklch(0.869 0.02 252.9), oklch(0.446 0.037 257.3));
42
97
 
43
98
  /* Overlay */
44
- --ry-color-overlay: rgba(0, 0, 0, 0.5);
99
+ --ry-color-overlay: light-dark(oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.7));
100
+
101
+ /* ═══════════════════════════════════════════════════════════════
102
+ CODE SYNTAX
103
+ ═══════════════════════════════════════════════════════════════ */
104
+
105
+ --ry-code-bg: light-dark(oklch(0.978 0.003 248.2), oklch(0.208 0.04 265.8));
106
+ --ry-code-header-bg: light-dark(oklch(0.947 0.007 248.1), oklch(0.279 0.037 260));
107
+ --ry-code-text-color: light-dark(oklch(0.279 0.013 253.1), oklch(0.968 0.007 248.1));
108
+ --ry-code-title-color: light-dark(oklch(0.485 0.02 251.1), oklch(0.711 0.035 256.8));
109
+ --ry-code-icon-color: light-dark(oklch(0.666 0.018 251), oklch(0.554 0.041 257.4));
110
+ --ry-code-icon-hover-bg: light-dark(oklch(0.876 0.012 248.1), oklch(0.372 0.039 257.3));
111
+ --ry-code-icon-hover-color: light-dark(oklch(0.279 0.013 253.1), oklch(0.968 0.007 248.1));
112
+ --ry-code-line-number-color: light-dark(oklch(0.666 0.018 251 / 0.6), oklch(0.446 0.037 257.3 / 0.6));
113
+ --ry-code-line-border-color: light-dark(oklch(0.876 0.012 248.1), oklch(0.372 0.039 257.3));
114
+ --ry-code-color-preview-border: light-dark(oklch(0.279 0.013 253.1 / 0.3), oklch(0.968 0.007 248.1 / 0.3));
115
+ --ry-code-keyword: light-dark(oklch(0.552 0.205 24.5), oklch(0.637 0.208 25.3));
116
+ --ry-code-property: light-dark(oklch(0.451 0.164 258.2), oklch(0.714 0.143 254.6));
117
+ --ry-code-value: light-dark(oklch(0.321 0.108 259.1), oklch(0.769 0.165 70.1));
118
+ --ry-code-string: light-dark(oklch(0.321 0.108 259.1), oklch(0.723 0.192 149.6));
119
+ --ry-code-number: light-dark(oklch(0.451 0.164 258.2), oklch(0.769 0.165 70.1));
120
+ --ry-code-comment: light-dark(oklch(0.565 0.019 251), oklch(0.711 0.035 256.8));
121
+ --ry-code-selector: light-dark(oklch(0.439 0.118 148.1), oklch(0.715 0.126 215.2));
122
+ --ry-code-punctuation: light-dark(oklch(0.279 0.013 253.1), oklch(0.711 0.035 256.8));
123
+ --ry-code-tag: light-dark(oklch(0.439 0.118 148.1), oklch(0.715 0.126 215.2));
124
+ --ry-code-attribute: light-dark(oklch(0.451 0.164 258.2), oklch(0.714 0.143 254.6));
45
125
 
46
126
  /* ═══════════════════════════════════════════════════════════════
47
127
  TYPOGRAPHY
@@ -107,10 +187,12 @@
107
187
  SHADOWS
108
188
  ═══════════════════════════════════════════════════════════════ */
109
189
 
110
- --ry-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
111
- --ry-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
112
- --ry-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
113
- --ry-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
190
+ --ry-shadow-color: light-dark(oklch(0 0 0 / 0.1), oklch(0 0 0 / 0.4));
191
+ --ry-shadow-color-sm: light-dark(oklch(0 0 0 / 0.05), oklch(0 0 0 / 0.3));
192
+ --ry-shadow-sm: 0 1px 2px 0 var(--ry-shadow-color-sm);
193
+ --ry-shadow-md: 0 4px 6px -1px var(--ry-shadow-color), 0 2px 4px -2px var(--ry-shadow-color);
194
+ --ry-shadow-lg: 0 10px 15px -3px var(--ry-shadow-color), 0 4px 6px -4px var(--ry-shadow-color);
195
+ --ry-shadow-xl: 0 20px 25px -5px var(--ry-shadow-color), 0 8px 10px -6px var(--ry-shadow-color);
114
196
 
115
197
  /* ═══════════════════════════════════════════════════════════════
116
198
  TRANSITIONS
@@ -141,5 +223,11 @@
141
223
  FOCUS
142
224
  ═══════════════════════════════════════════════════════════════ */
143
225
 
144
- --ry-focus-ring: 0 0 0 3px rgba(59, 130, 246, 0.5);
226
+ --ry-focus-ring: 0 0 0 3px light-dark(oklch(0.623 0.188 259.8 / 0.5), oklch(0.714 0.143 254.6 / 0.5));
145
227
  }
228
+
229
+ /* Force light or dark mode */
230
+ [data-ry-theme="light"] { color-scheme: light; }
231
+ [data-ry-theme="dark"] { color-scheme: dark; }
232
+
233
+ } /* @layer ry-tokens */