@ryanhelsing/ry-ui 1.0.9 → 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.
- package/.claude/skills/ry-ui-builder/SKILL.md +186 -0
- package/AGENT.md +3 -1
- package/README.md +16 -2
- package/dist/_redirects +1 -0
- package/dist/app.d.ts +2 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/components/ry-testimonial.d.ts +19 -0
- package/dist/components/ry-testimonial.d.ts.map +1 -0
- package/dist/components/ry-theme-panel.d.ts +25 -0
- package/dist/components/ry-theme-panel.d.ts.map +1 -0
- package/dist/core/ry-icons.d.ts.map +1 -1
- package/dist/core/ry-transform.d.ts.map +1 -1
- package/dist/css/ry-structure.css +122 -3
- package/dist/css/ry-theme.css +133 -0
- package/dist/css/ry-tokens.css +4 -26
- package/dist/css/ry-ui.css +259 -29
- package/dist/pages/components.html +1827 -0
- package/dist/pages/landing.html +229 -0
- package/dist/ry-ui.d.ts +2 -0
- package/dist/ry-ui.d.ts.map +1 -1
- package/dist/ry-ui.js +382 -245
- package/dist/ry-ui.js.map +1 -1
- package/docs/components/forms.md +10 -3
- package/examples/starter-local.html +252 -0
- package/examples/starter-minimal.html +252 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/LICENSE.txt +21 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/README.md +7 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/index.html +23 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/style.css +126 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/index.html +5 -0
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/style.scss +161 -0
- package/examples/themes/skeuomorphic/led-controls/LICENSE.txt +21 -0
- package/examples/themes/skeuomorphic/led-controls/README.md +7 -0
- package/examples/themes/skeuomorphic/led-controls/dist/index.html +17 -0
- package/examples/themes/skeuomorphic/led-controls/dist/script.js +27 -0
- package/examples/themes/skeuomorphic/led-controls/dist/style.css +135 -0
- package/examples/themes/skeuomorphic/led-controls/src/index.html +1 -0
- package/examples/themes/skeuomorphic/led-controls/src/script.ts +59 -0
- package/examples/themes/skeuomorphic/led-controls/src/style.scss +253 -0
- package/llms.txt +346 -0
- package/package.json +12 -4
package/dist/css/ry-ui.css
CHANGED
|
@@ -9,33 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
/* ═══════════════════════════════════════════════════════════════
|
|
11
11
|
@property — typed custom properties for animation & type safety
|
|
12
|
+
Note: color tokens are NOT registered here because @property
|
|
13
|
+
prevents light-dark() from re-resolving on dynamic color-scheme
|
|
14
|
+
changes in Firefox. Colors use unregistered custom properties.
|
|
12
15
|
═══════════════════════════════════════════════════════════════ */
|
|
13
16
|
|
|
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-accent { syntax: "<color>"; inherits: true; initial-value: oklch(0.627 0.213 303.9); }
|
|
21
|
-
@property --ry-color-accent-hover { syntax: "<color>"; inherits: true; initial-value: oklch(0.557 0.213 303.9); }
|
|
22
|
-
@property --ry-color-accent-active { syntax: "<color>"; inherits: true; initial-value: oklch(0.497 0.213 303.9); }
|
|
23
|
-
@property --ry-color-success { syntax: "<color>"; inherits: true; initial-value: oklch(0.723 0.192 149.6); }
|
|
24
|
-
@property --ry-color-warning { syntax: "<color>"; inherits: true; initial-value: oklch(0.769 0.165 70.1); }
|
|
25
|
-
@property --ry-color-danger { syntax: "<color>"; inherits: true; initial-value: oklch(0.637 0.208 25.3); }
|
|
26
|
-
@property --ry-color-info { syntax: "<color>"; inherits: true; initial-value: oklch(0.715 0.126 215.2); }
|
|
27
|
-
@property --ry-color-text { syntax: "<color>"; inherits: true; initial-value: oklch(0.279 0.037 260); }
|
|
28
|
-
@property --ry-color-text-muted { syntax: "<color>"; inherits: true; initial-value: oklch(0.554 0.041 257.4); }
|
|
29
|
-
@property --ry-color-text-inverse { syntax: "<color>"; inherits: true; initial-value: oklch(1 0 0); }
|
|
30
|
-
@property --ry-color-bg { syntax: "<color>"; inherits: true; initial-value: oklch(1 0 0); }
|
|
31
|
-
@property --ry-color-bg-subtle { syntax: "<color>"; inherits: true; initial-value: oklch(0.984 0.003 248.2); }
|
|
32
|
-
@property --ry-color-bg-muted { syntax: "<color>"; inherits: true; initial-value: oklch(0.968 0.007 248.1); }
|
|
33
|
-
@property --ry-color-border { syntax: "<color>"; inherits: true; initial-value: oklch(0.929 0.013 255.6); }
|
|
34
|
-
@property --ry-color-border-strong { syntax: "<color>"; inherits: true; initial-value: oklch(0.869 0.02 252.9); }
|
|
35
|
-
@property --ry-color-overlay { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.5); }
|
|
36
|
-
@property --ry-shadow-color { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.1); }
|
|
37
|
-
@property --ry-shadow-color-sm { syntax: "<color>"; inherits: true; initial-value: oklch(0 0 0 / 0.05); }
|
|
38
|
-
|
|
39
17
|
@property --ry-duration-fast { syntax: "<time>"; inherits: true; initial-value: 100ms; }
|
|
40
18
|
@property --ry-duration-normal { syntax: "<time>"; inherits: true; initial-value: 200ms; }
|
|
41
19
|
@property --ry-duration-slow { syntax: "<time>"; inherits: true; initial-value: 300ms; }
|
|
@@ -234,7 +212,7 @@
|
|
|
234
212
|
--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));
|
|
235
213
|
}
|
|
236
214
|
|
|
237
|
-
/* Force light or dark mode */
|
|
215
|
+
/* Force light or dark mode (legacy — theme used to conflate theme + mode) */
|
|
238
216
|
[data-ry-theme="light"] { color-scheme: light; }
|
|
239
217
|
[data-ry-theme="dark"] { color-scheme: dark; }
|
|
240
218
|
|
|
@@ -406,6 +384,26 @@ ry-section:last-child {
|
|
|
406
384
|
margin-block-end: 0;
|
|
407
385
|
}
|
|
408
386
|
|
|
387
|
+
ry-section[narrow] {
|
|
388
|
+
max-inline-size: 48rem;
|
|
389
|
+
margin-inline: auto;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/* Logo bar pattern */
|
|
393
|
+
.ry-logo-bar {
|
|
394
|
+
text-align: center;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.ry-logo-bar p {
|
|
398
|
+
margin: 0 0 var(--ry-space-4, 1rem);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
.ry-logo-bar ry-cluster {
|
|
402
|
+
justify-content: center;
|
|
403
|
+
gap: var(--ry-space-10, 2.5rem);
|
|
404
|
+
flex-wrap: wrap;
|
|
405
|
+
}
|
|
406
|
+
|
|
409
407
|
/* ═══════════════════════════════════════════════════════════════
|
|
410
408
|
GRID
|
|
411
409
|
═══════════════════════════════════════════════════════════════ */
|
|
@@ -2844,12 +2842,14 @@ ry-hero[full-bleed] {
|
|
|
2844
2842
|
ry-stat {
|
|
2845
2843
|
display: flex;
|
|
2846
2844
|
flex-direction: column;
|
|
2845
|
+
align-items: center;
|
|
2846
|
+
text-align: center;
|
|
2847
2847
|
gap: var(--ry-space-1, 0.25rem);
|
|
2848
2848
|
}
|
|
2849
2849
|
|
|
2850
|
-
ry-stat[align="
|
|
2851
|
-
align-items:
|
|
2852
|
-
text-align:
|
|
2850
|
+
ry-stat[align="left"] {
|
|
2851
|
+
align-items: flex-start;
|
|
2852
|
+
text-align: start;
|
|
2853
2853
|
}
|
|
2854
2854
|
|
|
2855
2855
|
ry-stat [data-ry-target="value"] {
|
|
@@ -2984,6 +2984,7 @@ ry-pricing-card ul li {
|
|
|
2984
2984
|
|
|
2985
2985
|
ry-pricing-card :is(ry-button, .ry-btn) {
|
|
2986
2986
|
margin-block-start: auto;
|
|
2987
|
+
width: 100%;
|
|
2987
2988
|
}
|
|
2988
2989
|
|
|
2989
2990
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -3178,6 +3179,102 @@ ry-combobox [data-ry-target="native"] {
|
|
|
3178
3179
|
border: 0;
|
|
3179
3180
|
}
|
|
3180
3181
|
|
|
3182
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
3183
|
+
TESTIMONIAL
|
|
3184
|
+
═══════════════════════════════════════════════════════════════ */
|
|
3185
|
+
|
|
3186
|
+
ry-testimonial {
|
|
3187
|
+
display: flex;
|
|
3188
|
+
flex-direction: column;
|
|
3189
|
+
align-items: center;
|
|
3190
|
+
text-align: center;
|
|
3191
|
+
gap: var(--ry-space-3, 0.75rem);
|
|
3192
|
+
padding: var(--ry-space-6, 1.5rem);
|
|
3193
|
+
}
|
|
3194
|
+
|
|
3195
|
+
ry-testimonial [data-ry-target="avatar"] {
|
|
3196
|
+
width: 4rem;
|
|
3197
|
+
height: 4rem;
|
|
3198
|
+
border-radius: 9999px;
|
|
3199
|
+
overflow: hidden;
|
|
3200
|
+
flex-shrink: 0;
|
|
3201
|
+
}
|
|
3202
|
+
|
|
3203
|
+
ry-testimonial [data-ry-target="avatar"] img {
|
|
3204
|
+
width: 100%;
|
|
3205
|
+
height: 100%;
|
|
3206
|
+
object-fit: cover;
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3209
|
+
ry-testimonial [data-ry-target="quote"] {
|
|
3210
|
+
margin: 0;
|
|
3211
|
+
max-inline-size: 36rem;
|
|
3212
|
+
}
|
|
3213
|
+
|
|
3214
|
+
ry-testimonial [data-ry-target="stars"] {
|
|
3215
|
+
display: flex;
|
|
3216
|
+
gap: var(--ry-space-1, 0.25rem);
|
|
3217
|
+
}
|
|
3218
|
+
|
|
3219
|
+
ry-testimonial [data-ry-target="stars"] svg {
|
|
3220
|
+
width: 16px;
|
|
3221
|
+
height: 16px;
|
|
3222
|
+
}
|
|
3223
|
+
|
|
3224
|
+
ry-testimonial [data-ry-target="attribution"] {
|
|
3225
|
+
display: flex;
|
|
3226
|
+
flex-direction: column;
|
|
3227
|
+
gap: var(--ry-space-1, 0.25rem);
|
|
3228
|
+
}
|
|
3229
|
+
|
|
3230
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
3231
|
+
THEME PANEL
|
|
3232
|
+
═══════════════════════════════════════════════════════════════ */
|
|
3233
|
+
|
|
3234
|
+
ry-theme-panel {
|
|
3235
|
+
position: fixed;
|
|
3236
|
+
inset-block-end: var(--ry-space-4, 1rem);
|
|
3237
|
+
inset-inline-end: var(--ry-space-4, 1rem);
|
|
3238
|
+
z-index: var(--ry-z-fixed, 1000);
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3241
|
+
ry-theme-panel [data-ry-target="panel"] {
|
|
3242
|
+
display: flex;
|
|
3243
|
+
flex-direction: column;
|
|
3244
|
+
gap: var(--ry-space-2, 0.5rem);
|
|
3245
|
+
padding: var(--ry-space-3, 0.75rem);
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
ry-theme-panel [data-ry-target="theme-row"],
|
|
3249
|
+
ry-theme-panel [data-ry-target="mode-row"] {
|
|
3250
|
+
display: flex;
|
|
3251
|
+
align-items: center;
|
|
3252
|
+
gap: var(--ry-space-3, 0.75rem);
|
|
3253
|
+
}
|
|
3254
|
+
|
|
3255
|
+
ry-theme-panel [data-ry-target="theme-options"],
|
|
3256
|
+
ry-theme-panel [data-ry-target="mode-options"] {
|
|
3257
|
+
display: flex;
|
|
3258
|
+
gap: var(--ry-space-1, 0.25rem);
|
|
3259
|
+
}
|
|
3260
|
+
|
|
3261
|
+
ry-theme-panel [data-ry-target="label"] {
|
|
3262
|
+
min-inline-size: 3rem;
|
|
3263
|
+
text-transform: uppercase;
|
|
3264
|
+
letter-spacing: 0.05em;
|
|
3265
|
+
}
|
|
3266
|
+
|
|
3267
|
+
ry-theme-panel [data-ry-target="theme-btn"],
|
|
3268
|
+
ry-theme-panel [data-ry-target="mode-btn"] {
|
|
3269
|
+
padding: var(--ry-space-1, 0.25rem) var(--ry-space-2, 0.5rem);
|
|
3270
|
+
font: inherit;
|
|
3271
|
+
font-size: 0.6875rem;
|
|
3272
|
+
cursor: pointer;
|
|
3273
|
+
border: none;
|
|
3274
|
+
background: none;
|
|
3275
|
+
line-height: 1;
|
|
3276
|
+
}
|
|
3277
|
+
|
|
3181
3278
|
} /* @layer ry-structure */
|
|
3182
3279
|
|
|
3183
3280
|
/**
|
|
@@ -3253,6 +3350,25 @@ ry-header {
|
|
|
3253
3350
|
border-block-end: var(--ry-border-width) solid var(--ry-color-border);
|
|
3254
3351
|
}
|
|
3255
3352
|
|
|
3353
|
+
ry-header strong {
|
|
3354
|
+
font-size: var(--ry-text-xl);
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
ry-header span {
|
|
3358
|
+
color: var(--ry-color-text-muted);
|
|
3359
|
+
}
|
|
3360
|
+
|
|
3361
|
+
ry-header a:not(.ry-btn) {
|
|
3362
|
+
color: var(--ry-color-text-muted);
|
|
3363
|
+
text-decoration: none;
|
|
3364
|
+
font-size: var(--ry-text-sm);
|
|
3365
|
+
transition: color var(--ry-duration-fast);
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
ry-header a:not(.ry-btn):hover {
|
|
3369
|
+
color: var(--ry-color-text);
|
|
3370
|
+
}
|
|
3371
|
+
|
|
3256
3372
|
/* ═══════════════════════════════════════════════════════════════
|
|
3257
3373
|
FOOTER
|
|
3258
3374
|
═══════════════════════════════════════════════════════════════ */
|
|
@@ -3263,6 +3379,16 @@ ry-footer {
|
|
|
3263
3379
|
color: var(--ry-color-text-muted);
|
|
3264
3380
|
}
|
|
3265
3381
|
|
|
3382
|
+
ry-footer a {
|
|
3383
|
+
color: inherit;
|
|
3384
|
+
text-decoration: none;
|
|
3385
|
+
transition: color var(--ry-duration-fast);
|
|
3386
|
+
}
|
|
3387
|
+
|
|
3388
|
+
ry-footer a:hover {
|
|
3389
|
+
color: var(--ry-color-text);
|
|
3390
|
+
}
|
|
3391
|
+
|
|
3266
3392
|
/* ═══════════════════════════════════════════════════════════════
|
|
3267
3393
|
NAV
|
|
3268
3394
|
═══════════════════════════════════════════════════════════════ */
|
|
@@ -5471,4 +5597,108 @@ ry-combobox[data-ry-state="open"] .ry-combobox__input-wrapper {
|
|
|
5471
5597
|
color: var(--ry-color-text-muted);
|
|
5472
5598
|
}
|
|
5473
5599
|
|
|
5600
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
5601
|
+
LOGO BAR
|
|
5602
|
+
═══════════════════════════════════════════════════════════════ */
|
|
5603
|
+
|
|
5604
|
+
.ry-logo-bar p {
|
|
5605
|
+
color: var(--ry-color-text-muted);
|
|
5606
|
+
font-size: var(--ry-text-sm);
|
|
5607
|
+
text-transform: uppercase;
|
|
5608
|
+
letter-spacing: 0.1em;
|
|
5609
|
+
}
|
|
5610
|
+
|
|
5611
|
+
.ry-logo-bar span {
|
|
5612
|
+
font-size: var(--ry-text-2xl);
|
|
5613
|
+
font-weight: var(--ry-font-bold);
|
|
5614
|
+
color: var(--ry-color-text);
|
|
5615
|
+
opacity: 0.5;
|
|
5616
|
+
}
|
|
5617
|
+
|
|
5618
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
5619
|
+
TESTIMONIAL
|
|
5620
|
+
═══════════════════════════════════════════════════════════════ */
|
|
5621
|
+
|
|
5622
|
+
.ry-testimonial__quote {
|
|
5623
|
+
font-size: var(--ry-text-lg);
|
|
5624
|
+
font-style: italic;
|
|
5625
|
+
line-height: var(--ry-leading-relaxed);
|
|
5626
|
+
color: var(--ry-color-text);
|
|
5627
|
+
}
|
|
5628
|
+
|
|
5629
|
+
.ry-testimonial__name {
|
|
5630
|
+
font-weight: var(--ry-font-semibold);
|
|
5631
|
+
color: var(--ry-color-text);
|
|
5632
|
+
}
|
|
5633
|
+
|
|
5634
|
+
.ry-testimonial__role {
|
|
5635
|
+
font-size: var(--ry-text-sm);
|
|
5636
|
+
color: var(--ry-color-text-muted);
|
|
5637
|
+
}
|
|
5638
|
+
|
|
5639
|
+
.ry-testimonial__star {
|
|
5640
|
+
color: var(--ry-color-warning);
|
|
5641
|
+
}
|
|
5642
|
+
|
|
5643
|
+
.ry-testimonial__star svg {
|
|
5644
|
+
fill: var(--ry-color-warning);
|
|
5645
|
+
}
|
|
5646
|
+
|
|
5647
|
+
.ry-testimonial__avatar {
|
|
5648
|
+
background-color: var(--ry-color-bg-muted);
|
|
5649
|
+
border: 2px solid var(--ry-color-border);
|
|
5650
|
+
}
|
|
5651
|
+
|
|
5652
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
5653
|
+
"NONE" THEME — flat, no flourish
|
|
5654
|
+
Default theme minus radii, shadows, and decorative extras.
|
|
5655
|
+
Proves FORM/THEME separation: structure handles all layout.
|
|
5656
|
+
═══════════════════════════════════════════════════════════════ */
|
|
5657
|
+
|
|
5658
|
+
[data-ry-theme="none"] {
|
|
5659
|
+
--ry-radius-sm: 0;
|
|
5660
|
+
--ry-radius-md: 0;
|
|
5661
|
+
--ry-radius-lg: 0;
|
|
5662
|
+
--ry-radius-xl: 0;
|
|
5663
|
+
--ry-radius-2xl: 0;
|
|
5664
|
+
--ry-radius-full: 0;
|
|
5665
|
+
--ry-shadow-sm: none;
|
|
5666
|
+
--ry-shadow-md: none;
|
|
5667
|
+
--ry-shadow-lg: none;
|
|
5668
|
+
--ry-shadow-xl: none;
|
|
5669
|
+
}
|
|
5670
|
+
|
|
5671
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
5672
|
+
THEME PANEL
|
|
5673
|
+
═══════════════════════════════════════════════════════════════ */
|
|
5674
|
+
|
|
5675
|
+
.ry-theme-panel {
|
|
5676
|
+
font-family: var(--ry-font-sans);
|
|
5677
|
+
background-color: var(--ry-color-bg);
|
|
5678
|
+
border-radius: var(--ry-radius-lg);
|
|
5679
|
+
box-shadow: var(--ry-shadow-lg);
|
|
5680
|
+
border: 1px solid var(--ry-color-border);
|
|
5681
|
+
}
|
|
5682
|
+
|
|
5683
|
+
.ry-theme-panel__label {
|
|
5684
|
+
color: var(--ry-color-text-muted);
|
|
5685
|
+
font-weight: 600;
|
|
5686
|
+
font-size: 0.6875rem;
|
|
5687
|
+
}
|
|
5688
|
+
|
|
5689
|
+
.ry-theme-panel__btn {
|
|
5690
|
+
border-radius: var(--ry-radius-sm);
|
|
5691
|
+
color: var(--ry-color-text-muted);
|
|
5692
|
+
transition: background-color var(--ry-duration-fast);
|
|
5693
|
+
}
|
|
5694
|
+
|
|
5695
|
+
.ry-theme-panel__btn:hover {
|
|
5696
|
+
background-color: var(--ry-color-bg-muted);
|
|
5697
|
+
}
|
|
5698
|
+
|
|
5699
|
+
.ry-theme-panel__btn[aria-pressed="true"] {
|
|
5700
|
+
background-color: var(--ry-color-primary);
|
|
5701
|
+
color: var(--ry-color-text-inverse);
|
|
5702
|
+
}
|
|
5703
|
+
|
|
5474
5704
|
} /* @layer ry-theme */
|