@ryanhelsing/ry-ui 1.0.8 → 1.0.10

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 (41) hide show
  1. package/.claude/skills/ry-ui-builder/SKILL.md +186 -0
  2. package/AGENT.md +3 -1
  3. package/README.md +16 -2
  4. package/dist/_redirects +1 -0
  5. package/dist/app.d.ts +2 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/components/ry-testimonial.d.ts +19 -0
  8. package/dist/components/ry-testimonial.d.ts.map +1 -0
  9. package/dist/components/ry-theme-panel.d.ts +25 -0
  10. package/dist/components/ry-theme-panel.d.ts.map +1 -0
  11. package/dist/core/ry-icons.d.ts.map +1 -1
  12. package/dist/core/ry-transform.d.ts.map +1 -1
  13. package/dist/css/ry-structure.css +123 -3
  14. package/dist/css/ry-theme.css +141 -2
  15. package/dist/css/ry-tokens.css +4 -26
  16. package/dist/css/ry-ui.css +268 -31
  17. package/dist/pages/components.html +1827 -0
  18. package/dist/pages/landing.html +229 -0
  19. package/dist/ry-ui.d.ts +2 -0
  20. package/dist/ry-ui.d.ts.map +1 -1
  21. package/dist/ry-ui.js +382 -245
  22. package/dist/ry-ui.js.map +1 -1
  23. package/docs/components/forms.md +10 -3
  24. package/examples/starter-local.html +252 -0
  25. package/examples/starter-minimal.html +252 -0
  26. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/LICENSE.txt +21 -0
  27. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/README.md +7 -0
  28. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/index.html +23 -0
  29. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/style.css +126 -0
  30. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/index.html +5 -0
  31. package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/style.scss +161 -0
  32. package/examples/themes/skeuomorphic/led-controls/LICENSE.txt +21 -0
  33. package/examples/themes/skeuomorphic/led-controls/README.md +7 -0
  34. package/examples/themes/skeuomorphic/led-controls/dist/index.html +17 -0
  35. package/examples/themes/skeuomorphic/led-controls/dist/script.js +27 -0
  36. package/examples/themes/skeuomorphic/led-controls/dist/style.css +135 -0
  37. package/examples/themes/skeuomorphic/led-controls/src/index.html +1 -0
  38. package/examples/themes/skeuomorphic/led-controls/src/script.ts +59 -0
  39. package/examples/themes/skeuomorphic/led-controls/src/style.scss +253 -0
  40. package/llms.txt +346 -0
  41. package/package.json +12 -4
@@ -0,0 +1,229 @@
1
+ <ry>
2
+
3
+ <page>
4
+
5
+ <!-- ═══ HEADER ═══ -->
6
+ <header sticky>
7
+ <cluster>
8
+ <strong>ry-ui</strong>
9
+ </cluster>
10
+ <cluster>
11
+ <a href="/demos">Demos</a>
12
+ <a href="#features">Features</a>
13
+ <a href="#pricing">Pricing</a>
14
+ <a href="#faq">FAQ</a>
15
+ <ry-button variant="outline" size="sm">Sign In</ry-button>
16
+ <ry-button size="sm">Get Started</ry-button>
17
+ </cluster>
18
+ </header>
19
+
20
+ <main>
21
+
22
+ <!-- ═══ HERO ═══ -->
23
+ <hero align="center" size="lg">
24
+ <ry-badge>Open Source</ry-badge>
25
+ <h1>Build apps faster with<br>universal components</h1>
26
+ <p>Framework-agnostic, Light DOM web components. Write once in HTML/CSS/JS. Deploy everywhere. No decisions to make. No architecture to debate.</p>
27
+ <cluster>
28
+ <ry-button size="lg">Get Started Free</ry-button>
29
+ <ry-button variant="outline" size="lg">View on GitHub</ry-button>
30
+ </cluster>
31
+ </hero>
32
+
33
+ <!-- ═══ STATS ═══ -->
34
+ <section>
35
+ <grid cols="4">
36
+ <stat>
37
+ <span slot="value">32</span>
38
+ <span slot="label">Components</span>
39
+ </stat>
40
+ <stat>
41
+ <span slot="value">7KB</span>
42
+ <span slot="label">Gzipped</span>
43
+ </stat>
44
+ <stat>
45
+ <span slot="value">0</span>
46
+ <span slot="label">Dependencies</span>
47
+ </stat>
48
+ <stat>
49
+ <span slot="value">3</span>
50
+ <span slot="label">Themes</span>
51
+ </stat>
52
+ </grid>
53
+ </section>
54
+
55
+ <!-- ═══ LOGO BAR ═══ -->
56
+ <section class="ry-logo-bar">
57
+ <p>Trusted by teams at</p>
58
+ <cluster>
59
+ <span>Acme</span>
60
+ <span>Globex</span>
61
+ <span>Initech</span>
62
+ <span>Umbrella</span>
63
+ <span>Stark</span>
64
+ </cluster>
65
+ </section>
66
+
67
+ <!-- ═══ FEATURES ═══ -->
68
+ <section id="features">
69
+ <hero align="center" size="sm">
70
+ <h2>Everything you need, nothing you don't</h2>
71
+ <p>Every app is a composition of the same finite primitives. We built them all — so you never have to again.</p>
72
+ </hero>
73
+
74
+ <feature-grid cols="3">
75
+ <feature icon="star" align="center">
76
+ <h3>Zero Dependencies</h3>
77
+ <p>Pure web standards. No framework lock-in, no build step required, no node_modules bloat.</p>
78
+ </feature>
79
+ <feature icon="moon" align="center">
80
+ <h3>Dark Mode Built In</h3>
81
+ <p>Every component supports light and dark mode out of the box via CSS custom properties.</p>
82
+ </feature>
83
+ <feature icon="settings" align="center">
84
+ <h3>Fully Themeable</h3>
85
+ <p>Swap the entire visual layer without touching structure or behavior. Three independent layers.</p>
86
+ </feature>
87
+ <feature icon="check" align="center">
88
+ <h3>Accessible</h3>
89
+ <p>Keyboard navigation, ARIA attributes, and focus management handled for every component.</p>
90
+ </feature>
91
+ <feature icon="download" align="center">
92
+ <h3>Light DOM</h3>
93
+ <p>No Shadow DOM. Your CSS works. Your selectors work. Inspect and style anything.</p>
94
+ </feature>
95
+ <feature icon="heart" align="center">
96
+ <h3>Developer Friendly</h3>
97
+ <p>Clean API, strict TypeScript, comprehensive docs. Read the source in minutes.</p>
98
+ </feature>
99
+ </feature-grid>
100
+ </section>
101
+
102
+ <!-- ═══ TESTIMONIALS ═══ -->
103
+ <section>
104
+ <hero align="center" size="sm">
105
+ <h2>Loved by developers</h2>
106
+ <p>Teams ship faster when they stop reinventing the same UI primitives.</p>
107
+ </hero>
108
+
109
+ <grid cols="3">
110
+ <testimonial stars="5">
111
+ <img slot="avatar" src="https://i.pravatar.cc/128?img=1" alt="Sarah Chen">
112
+ <blockquote>We rebuilt our entire admin dashboard in a weekend. The component library just works — no fighting with frameworks.</blockquote>
113
+ <span slot="name">Sarah Chen</span>
114
+ <span slot="role">CTO, Acme Corp</span>
115
+ </testimonial>
116
+ <testimonial stars="5">
117
+ <img slot="avatar" src="https://i.pravatar.cc/128?img=3" alt="Marcus Johnson">
118
+ <blockquote>Finally, components that don't force you into a specific framework. We use these across React, Vue, and vanilla JS projects.</blockquote>
119
+ <span slot="name">Marcus Johnson</span>
120
+ <span slot="role">Lead Engineer, StartupCo</span>
121
+ </testimonial>
122
+ <testimonial stars="5">
123
+ <img slot="avatar" src="https://i.pravatar.cc/128?img=5" alt="Emily Park">
124
+ <blockquote>The FORM/THEME separation is brilliant. Our design team can iterate on visuals without touching any JavaScript.</blockquote>
125
+ <span slot="name">Emily Park</span>
126
+ <span slot="role">Design Lead, BigCo</span>
127
+ </testimonial>
128
+ </grid>
129
+ </section>
130
+
131
+ <!-- ═══ PRICING ═══ -->
132
+ <section id="pricing">
133
+ <hero align="center" size="sm">
134
+ <h2>Simple, transparent pricing</h2>
135
+ <p>Start free. Scale when you're ready.</p>
136
+ </hero>
137
+
138
+ <pricing>
139
+ <pricing-card>
140
+ <h3>Starter</h3>
141
+ <div slot="price">$0<span>/mo</span></div>
142
+ <ul class="ry-check-list">
143
+ <li>All components</li>
144
+ <li>3 themes included</li>
145
+ <li>Community support</li>
146
+ <li>MIT licensed</li>
147
+ </ul>
148
+ <ry-button variant="outline">Get Started</ry-button>
149
+ </pricing-card>
150
+ <pricing-card featured>
151
+ <h3>Pro</h3>
152
+ <div slot="price">$29<span>/mo</span></div>
153
+ <ul class="ry-check-list">
154
+ <li>Everything in Starter</li>
155
+ <li>Premium themes</li>
156
+ <li>Priority support</li>
157
+ <li>Custom theme builder</li>
158
+ <li>Figma kit</li>
159
+ </ul>
160
+ <ry-button>Choose Pro</ry-button>
161
+ </pricing-card>
162
+ <pricing-card>
163
+ <h3>Enterprise</h3>
164
+ <div slot="price">Custom</div>
165
+ <ul class="ry-check-list">
166
+ <li>Everything in Pro</li>
167
+ <li>Dedicated support</li>
168
+ <li>Custom components</li>
169
+ <li>SLA guarantee</li>
170
+ <li>On-premise option</li>
171
+ </ul>
172
+ <ry-button variant="outline">Contact Sales</ry-button>
173
+ </pricing-card>
174
+ </pricing>
175
+ </section>
176
+
177
+ <!-- ═══ FAQ ═══ -->
178
+ <section id="faq" narrow>
179
+ <hero align="center" size="sm">
180
+ <h2>Frequently asked questions</h2>
181
+ </hero>
182
+
183
+ <accordion>
184
+ <accordion-item title="Do I need a framework to use ry-ui?">
185
+ No. ry-ui components are vanilla web components that work in any HTML page. They also work seamlessly inside React, Vue, Svelte, Angular, or any other framework.
186
+ </accordion-item>
187
+ <accordion-item title="How does theming work?">
188
+ Every component has three independent layers: Function (JS behavior), Form (CSS layout), and Theme (CSS visuals). You can swap the entire theme without touching layout or behavior. Themes are just CSS files that override design tokens.
189
+ </accordion-item>
190
+ <accordion-item title="Is ry-ui accessible?">
191
+ Yes. All interactive components include proper ARIA attributes, keyboard navigation, and focus management. We follow WAI-ARIA patterns for every component.
192
+ </accordion-item>
193
+ <accordion-item title="Can I use my own CSS framework alongside ry-ui?">
194
+ Absolutely. ry-ui uses Light DOM (no Shadow DOM), so your existing CSS selectors and frameworks work as expected. You can load only the structure CSS and bring your own visual theme.
195
+ </accordion-item>
196
+ <accordion-item title="What's the bundle size?">
197
+ The full JS bundle is ~32KB (7KB gzipped) with zero dependencies. CSS is similarly lightweight. You're shipping less code than most icon libraries.
198
+ </accordion-item>
199
+ </accordion>
200
+ </section>
201
+
202
+ <!-- ═══ BOTTOM CTA ═══ -->
203
+ <hero align="center" size="lg">
204
+ <h2>Ready to build?</h2>
205
+ <p>Stop reinventing UI primitives. Start shipping.</p>
206
+ <cluster>
207
+ <ry-button size="lg">Get Started Free</ry-button>
208
+ <ry-button variant="outline" size="lg">Read the Docs</ry-button>
209
+ </cluster>
210
+ </hero>
211
+
212
+ </main>
213
+
214
+ <!-- ═══ FOOTER ═══ -->
215
+ <footer>
216
+ <cluster>
217
+ <span>&copy; 2026 ry-ui. MIT License.</span>
218
+ </cluster>
219
+ <cluster>
220
+ <a href="#">GitHub</a>
221
+ <a href="#">Docs</a>
222
+ <a href="#">NPM</a>
223
+ </cluster>
224
+ </footer>
225
+
226
+ </page>
227
+
228
+ <ry-theme-panel></ry-theme-panel>
229
+
package/dist/ry-ui.d.ts CHANGED
@@ -60,6 +60,8 @@ export { RyStat } from './components/ry-stat.js';
60
60
  export { RyFeature, RyFeatureGrid } from './components/ry-feature.js';
61
61
  export { RyPricing, RyPricingCard } from './components/ry-pricing.js';
62
62
  export { RyCarousel } from './components/ry-carousel.js';
63
+ export { RyThemePanel } from './components/ry-theme-panel.js';
64
+ export { RyTestimonial } from './components/ry-testimonial.js';
63
65
  export { getIcon, registerIcon, registerIcons, getIconNames } from './core/ry-icons.js';
64
66
  import { RyToast as _RyToast } from './components/ry-toast.js';
65
67
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"ry-ui.d.ts","sourceRoot":"","sources":["../src/ts/ry-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ry-ui.d.ts","sourceRoot":"","sources":["../src/ts/ry-ui.ts"],"names":[],"mappings":"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"}