@ryanhelsing/ry-ui 1.0.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.
Files changed (63) hide show
  1. package/README.md +223 -0
  2. package/dist/components/ry-accordion.d.ts +24 -0
  3. package/dist/components/ry-accordion.d.ts.map +1 -0
  4. package/dist/components/ry-alert.d.ts +19 -0
  5. package/dist/components/ry-alert.d.ts.map +1 -0
  6. package/dist/components/ry-button.d.ts +19 -0
  7. package/dist/components/ry-button.d.ts.map +1 -0
  8. package/dist/components/ry-code.d.ts +27 -0
  9. package/dist/components/ry-code.d.ts.map +1 -0
  10. package/dist/components/ry-color-input.d.ts +28 -0
  11. package/dist/components/ry-color-input.d.ts.map +1 -0
  12. package/dist/components/ry-color-picker.d.ts +52 -0
  13. package/dist/components/ry-color-picker.d.ts.map +1 -0
  14. package/dist/components/ry-drawer.d.ts +28 -0
  15. package/dist/components/ry-drawer.d.ts.map +1 -0
  16. package/dist/components/ry-dropdown.d.ts +24 -0
  17. package/dist/components/ry-dropdown.d.ts.map +1 -0
  18. package/dist/components/ry-example.d.ts +23 -0
  19. package/dist/components/ry-example.d.ts.map +1 -0
  20. package/dist/components/ry-field.d.ts +18 -0
  21. package/dist/components/ry-field.d.ts.map +1 -0
  22. package/dist/components/ry-icon.d.ts +27 -0
  23. package/dist/components/ry-icon.d.ts.map +1 -0
  24. package/dist/components/ry-knob.d.ts +27 -0
  25. package/dist/components/ry-knob.d.ts.map +1 -0
  26. package/dist/components/ry-modal.d.ts +23 -0
  27. package/dist/components/ry-modal.d.ts.map +1 -0
  28. package/dist/components/ry-select.d.ts +29 -0
  29. package/dist/components/ry-select.d.ts.map +1 -0
  30. package/dist/components/ry-slider.d.ts +30 -0
  31. package/dist/components/ry-slider.d.ts.map +1 -0
  32. package/dist/components/ry-switch.d.ts +22 -0
  33. package/dist/components/ry-switch.d.ts.map +1 -0
  34. package/dist/components/ry-tabs.d.ts +21 -0
  35. package/dist/components/ry-tabs.d.ts.map +1 -0
  36. package/dist/components/ry-theme-toggle.d.ts +21 -0
  37. package/dist/components/ry-theme-toggle.d.ts.map +1 -0
  38. package/dist/components/ry-toast.d.ts +31 -0
  39. package/dist/components/ry-toast.d.ts.map +1 -0
  40. package/dist/components/ry-toggle-button.d.ts +31 -0
  41. package/dist/components/ry-toggle-button.d.ts.map +1 -0
  42. package/dist/components/ry-tooltip.d.ts +23 -0
  43. package/dist/components/ry-tooltip.d.ts.map +1 -0
  44. package/dist/core/ry-element.d.ts +66 -0
  45. package/dist/core/ry-element.d.ts.map +1 -0
  46. package/dist/core/ry-icons.d.ts +38 -0
  47. package/dist/core/ry-icons.d.ts.map +1 -0
  48. package/dist/core/ry-transform.d.ts +35 -0
  49. package/dist/core/ry-transform.d.ts.map +1 -0
  50. package/dist/css/ry-base.css +155 -0
  51. package/dist/css/ry-components.css +1195 -0
  52. package/dist/css/ry-layout.css +240 -0
  53. package/dist/css/ry-structure.css +1737 -0
  54. package/dist/css/ry-theme.css +1433 -0
  55. package/dist/css/ry-tokens.css +145 -0
  56. package/dist/css/ry-ui.css +1207 -0
  57. package/dist/ry-ui.d.ts +54 -0
  58. package/dist/ry-ui.d.ts.map +1 -0
  59. package/dist/ry-ui.js +2433 -0
  60. package/dist/ry-ui.js.map +1 -0
  61. package/dist/types.d.ts +33 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/package.json +40 -0
@@ -0,0 +1,240 @@
1
+ /**
2
+ * ry-ui Layout Primitives
3
+ *
4
+ * Pure CSS layout components.
5
+ * No JavaScript required.
6
+ */
7
+
8
+ /* ═══════════════════════════════════════════════════════════════
9
+ PAGE
10
+ ═══════════════════════════════════════════════════════════════ */
11
+
12
+ ry-page {
13
+ display: flex;
14
+ flex-direction: column;
15
+ min-height: 100vh;
16
+ min-height: 100dvh;
17
+ }
18
+
19
+ /* ═══════════════════════════════════════════════════════════════
20
+ HEADER
21
+ ═══════════════════════════════════════════════════════════════ */
22
+
23
+ ry-header {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ gap: var(--ry-space-4);
28
+ padding: var(--ry-space-4) var(--ry-space-6);
29
+ background-color: var(--ry-color-bg);
30
+ border-bottom: var(--ry-border-width) solid var(--ry-color-border);
31
+ }
32
+
33
+ /* ═══════════════════════════════════════════════════════════════
34
+ MAIN
35
+ ═══════════════════════════════════════════════════════════════ */
36
+
37
+ ry-main {
38
+ flex: 1;
39
+ width: 100%;
40
+ max-width: 1200px;
41
+ margin: 0 auto;
42
+ padding: var(--ry-space-8) var(--ry-space-6);
43
+ }
44
+
45
+ /* ═══════════════════════════════════════════════════════════════
46
+ FOOTER
47
+ ═══════════════════════════════════════════════════════════════ */
48
+
49
+ ry-footer {
50
+ padding: var(--ry-space-6);
51
+ background-color: var(--ry-color-bg-subtle);
52
+ border-top: var(--ry-border-width) solid var(--ry-color-border);
53
+ text-align: center;
54
+ color: var(--ry-color-text-muted);
55
+ }
56
+
57
+ /* ═══════════════════════════════════════════════════════════════
58
+ SECTION
59
+ ═══════════════════════════════════════════════════════════════ */
60
+
61
+ ry-section {
62
+ margin-bottom: var(--ry-space-12);
63
+ }
64
+
65
+ ry-section:last-child {
66
+ margin-bottom: 0;
67
+ }
68
+
69
+ /* ═══════════════════════════════════════════════════════════════
70
+ GRID
71
+ ═══════════════════════════════════════════════════════════════ */
72
+
73
+ ry-grid {
74
+ display: grid;
75
+ gap: var(--ry-space-4);
76
+ }
77
+
78
+ /* Column variants */
79
+ ry-grid[cols="1"] { grid-template-columns: 1fr; }
80
+ ry-grid[cols="2"] { grid-template-columns: repeat(2, 1fr); }
81
+ ry-grid[cols="3"] { grid-template-columns: repeat(3, 1fr); }
82
+ ry-grid[cols="4"] { grid-template-columns: repeat(4, 1fr); }
83
+ ry-grid[cols="5"] { grid-template-columns: repeat(5, 1fr); }
84
+ ry-grid[cols="6"] { grid-template-columns: repeat(6, 1fr); }
85
+
86
+ /* Responsive: stack on small screens */
87
+ @media (max-width: 640px) {
88
+ ry-grid[cols="2"],
89
+ ry-grid[cols="3"],
90
+ ry-grid[cols="4"],
91
+ ry-grid[cols="5"],
92
+ ry-grid[cols="6"] {
93
+ grid-template-columns: 1fr;
94
+ }
95
+ }
96
+
97
+ @media (min-width: 641px) and (max-width: 1024px) {
98
+ ry-grid[cols="3"],
99
+ ry-grid[cols="4"],
100
+ ry-grid[cols="5"],
101
+ ry-grid[cols="6"] {
102
+ grid-template-columns: repeat(2, 1fr);
103
+ }
104
+ }
105
+
106
+ /* ═══════════════════════════════════════════════════════════════
107
+ STACK (vertical)
108
+ ═══════════════════════════════════════════════════════════════ */
109
+
110
+ ry-stack {
111
+ display: flex;
112
+ flex-direction: column;
113
+ gap: var(--ry-space-4);
114
+ }
115
+
116
+ ry-stack[gap="sm"] { gap: var(--ry-space-2); }
117
+ ry-stack[gap="md"] { gap: var(--ry-space-4); }
118
+ ry-stack[gap="lg"] { gap: var(--ry-space-6); }
119
+ ry-stack[gap="xl"] { gap: var(--ry-space-8); }
120
+
121
+ /* ═══════════════════════════════════════════════════════════════
122
+ CLUSTER (horizontal, wraps)
123
+ ═══════════════════════════════════════════════════════════════ */
124
+
125
+ ry-cluster {
126
+ display: flex;
127
+ flex-wrap: wrap;
128
+ align-items: center;
129
+ gap: var(--ry-space-3);
130
+ }
131
+
132
+ ry-cluster[gap="sm"] { gap: var(--ry-space-2); }
133
+ ry-cluster[gap="md"] { gap: var(--ry-space-3); }
134
+ ry-cluster[gap="lg"] { gap: var(--ry-space-4); }
135
+
136
+ /* ═══════════════════════════════════════════════════════════════
137
+ SPLIT (two columns: content + sidebar)
138
+ ═══════════════════════════════════════════════════════════════ */
139
+
140
+ ry-split {
141
+ display: flex;
142
+ gap: var(--ry-space-6);
143
+ }
144
+
145
+ ry-split > :first-child {
146
+ flex: 1;
147
+ }
148
+
149
+ ry-split > :last-child {
150
+ flex-shrink: 0;
151
+ width: 300px;
152
+ }
153
+
154
+ @media (max-width: 768px) {
155
+ ry-split {
156
+ flex-direction: column;
157
+ }
158
+
159
+ ry-split > :last-child {
160
+ width: 100%;
161
+ }
162
+ }
163
+
164
+ /* ═══════════════════════════════════════════════════════════════
165
+ CENTER
166
+ ═══════════════════════════════════════════════════════════════ */
167
+
168
+ ry-center {
169
+ display: flex;
170
+ flex-direction: column;
171
+ align-items: center;
172
+ justify-content: center;
173
+ text-align: center;
174
+ }
175
+
176
+ /* ═══════════════════════════════════════════════════════════════
177
+ NAV
178
+ ═══════════════════════════════════════════════════════════════ */
179
+
180
+ ry-nav {
181
+ display: flex;
182
+ align-items: center;
183
+ gap: var(--ry-space-4);
184
+ }
185
+
186
+ ry-nav a {
187
+ color: var(--ry-color-text-muted);
188
+ text-decoration: none;
189
+ font-size: var(--ry-text-sm);
190
+ font-weight: var(--ry-font-medium);
191
+ transition: color var(--ry-duration-fast) var(--ry-ease);
192
+ }
193
+
194
+ ry-nav a:hover {
195
+ color: var(--ry-color-text);
196
+ }
197
+
198
+ ry-nav a[aria-current="page"] {
199
+ color: var(--ry-color-primary);
200
+ }
201
+
202
+ /* ═══════════════════════════════════════════════════════════════
203
+ LOGO
204
+ ═══════════════════════════════════════════════════════════════ */
205
+
206
+ ry-logo {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ font-size: var(--ry-text-xl);
210
+ font-weight: var(--ry-font-bold);
211
+ color: var(--ry-color-text);
212
+ }
213
+
214
+ /* ═══════════════════════════════════════════════════════════════
215
+ ACTIONS (button group)
216
+ ═══════════════════════════════════════════════════════════════ */
217
+
218
+ ry-actions {
219
+ display: flex;
220
+ align-items: center;
221
+ gap: var(--ry-space-2);
222
+ }
223
+
224
+ /* ═══════════════════════════════════════════════════════════════
225
+ DIVIDER
226
+ ═══════════════════════════════════════════════════════════════ */
227
+
228
+ ry-divider {
229
+ display: block;
230
+ height: 1px;
231
+ margin: var(--ry-space-4) 0;
232
+ background-color: var(--ry-color-border);
233
+ }
234
+
235
+ ry-divider[vertical] {
236
+ width: 1px;
237
+ height: auto;
238
+ align-self: stretch;
239
+ margin: 0 var(--ry-space-4);
240
+ }