@ryanhelsing/ry-ui 1.0.4 → 1.0.5
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/AGENT.md +30 -1
- package/dist/components/ry-card.d.ts +17 -0
- package/dist/components/ry-card.d.ts.map +1 -0
- package/dist/css/ry-structure.css +17 -0
- package/dist/css/ry-theme.css +12 -0
- package/dist/css/ry-ui.css +29 -0
- package/dist/ry-ui.d.ts +1 -0
- package/dist/ry-ui.d.ts.map +1 -1
- package/dist/ry-ui.js +125 -110
- package/dist/ry-ui.js.map +1 -1
- package/docs/components/layout.md +26 -1
- package/package.json +1 -1
package/AGENT.md
CHANGED
|
@@ -85,7 +85,7 @@ Wrap markup in `<ry>` to use unprefixed tags:
|
|
|
85
85
|
|
|
86
86
|
| Component | Key Attributes | Description |
|
|
87
87
|
|-----------|---------------|-------------|
|
|
88
|
-
| `<ry-card>` |
|
|
88
|
+
| `<ry-card>` | `interactive`, `href` | Card container. All cards lift on hover. `interactive` adds click/keyboard + primary border hover. `href` navigates on click |
|
|
89
89
|
| `<ry-badge>` | `variant="primary\|success\|warning\|danger\|accent"` | Pill badge. Arbitrary color: `style="--ry-badge-color: #8B5CF6"` |
|
|
90
90
|
| `<ry-alert>` | `type="info\|success\|warning\|danger"` | Alert box with optional `[slot="title"]` |
|
|
91
91
|
| `<ry-field>` | `label`, `error`, `hint` | Form field wrapper. See [Forms](#forms) |
|
|
@@ -200,6 +200,35 @@ document.querySelector('ry-button-group').addEventListener('ry:change', e => {
|
|
|
200
200
|
<ry-button size="lg">Large</ry-button>
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
### Interactive Card Grid
|
|
204
|
+
|
|
205
|
+
```html
|
|
206
|
+
<!-- Clickable card grid (e.g., demo index, dashboard) -->
|
|
207
|
+
<ry-grid cols="3">
|
|
208
|
+
<ry-card interactive href="/demos/goap">
|
|
209
|
+
<h3>GOAP</h3>
|
|
210
|
+
<p>Goal-Oriented Action Planning</p>
|
|
211
|
+
</ry-card>
|
|
212
|
+
<ry-card interactive href="/demos/fsm">
|
|
213
|
+
<h3>FSM</h3>
|
|
214
|
+
<p>Finite State Machine</p>
|
|
215
|
+
</ry-card>
|
|
216
|
+
<ry-card interactive href="/demos/bt">
|
|
217
|
+
<h3>Behavior Trees</h3>
|
|
218
|
+
<p>Hierarchical task planning</p>
|
|
219
|
+
</ry-card>
|
|
220
|
+
</ry-grid>
|
|
221
|
+
|
|
222
|
+
<!-- Listen for clicks -->
|
|
223
|
+
<script>
|
|
224
|
+
document.querySelectorAll('ry-card[interactive]').forEach(card => {
|
|
225
|
+
card.addEventListener('ry:click', () => console.log('clicked', card.getAttribute('href')));
|
|
226
|
+
});
|
|
227
|
+
</script>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
All cards hover-lift by default. `interactive` adds: cursor pointer, stronger lift, primary border on hover, keyboard (Tab/Enter/Space), and `ry:click` event.
|
|
231
|
+
|
|
203
232
|
### Badge with Arbitrary Color
|
|
204
233
|
|
|
205
234
|
```html
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <ry-card>
|
|
3
|
+
*
|
|
4
|
+
* Card container. CSS-only by default.
|
|
5
|
+
* Add `interactive` attribute for clickable cards with href navigation.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* <ry-card>Static content</ry-card>
|
|
9
|
+
* <ry-card interactive href="/demos/goap">Clickable card</ry-card>
|
|
10
|
+
* <ry-card interactive>Emits ry:click on click</ry-card>
|
|
11
|
+
*/
|
|
12
|
+
import { RyElement } from '../core/ry-element.js';
|
|
13
|
+
export declare class RyCard extends RyElement {
|
|
14
|
+
#private;
|
|
15
|
+
setup(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ry-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ry-card.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,MAAO,SAAQ,SAAS;;IACnC,KAAK,IAAI,IAAI;CA8Bd"}
|
|
@@ -823,6 +823,23 @@ ry-card {
|
|
|
823
823
|
display: block;
|
|
824
824
|
padding: var(--ry-space-6, 1.5rem);
|
|
825
825
|
container-type: inline-size;
|
|
826
|
+
transition: transform var(--ry-duration-fast, 100ms) var(--ry-ease, ease);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
ry-card:hover {
|
|
830
|
+
transform: translateY(-2px);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
ry-card[interactive] {
|
|
834
|
+
cursor: pointer;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
ry-card[interactive]:hover {
|
|
838
|
+
transform: translateY(-3px);
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
ry-card[interactive]:active {
|
|
842
|
+
transform: translateY(0);
|
|
826
843
|
}
|
|
827
844
|
|
|
828
845
|
ry-card h3 {
|
package/dist/css/ry-theme.css
CHANGED
|
@@ -680,6 +680,18 @@ ry-card {
|
|
|
680
680
|
border: var(--ry-border-width) solid var(--ry-color-border);
|
|
681
681
|
border-radius: var(--ry-radius-lg);
|
|
682
682
|
box-shadow: var(--ry-shadow-sm);
|
|
683
|
+
transition: border-color var(--ry-duration-fast) var(--ry-ease),
|
|
684
|
+
box-shadow var(--ry-duration-fast) var(--ry-ease);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
ry-card:hover {
|
|
688
|
+
border-color: var(--ry-color-border-strong);
|
|
689
|
+
box-shadow: var(--ry-shadow-md);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
ry-card[interactive]:hover {
|
|
693
|
+
border-color: var(--ry-color-primary);
|
|
694
|
+
box-shadow: var(--ry-shadow-lg);
|
|
683
695
|
}
|
|
684
696
|
|
|
685
697
|
ry-card h3 {
|
package/dist/css/ry-ui.css
CHANGED
|
@@ -1065,6 +1065,23 @@ ry-card {
|
|
|
1065
1065
|
display: block;
|
|
1066
1066
|
padding: var(--ry-space-6, 1.5rem);
|
|
1067
1067
|
container-type: inline-size;
|
|
1068
|
+
transition: transform var(--ry-duration-fast, 100ms) var(--ry-ease, ease);
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
ry-card:hover {
|
|
1072
|
+
transform: translateY(-2px);
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
ry-card[interactive] {
|
|
1076
|
+
cursor: pointer;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
ry-card[interactive]:hover {
|
|
1080
|
+
transform: translateY(-3px);
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
ry-card[interactive]:active {
|
|
1084
|
+
transform: translateY(0);
|
|
1068
1085
|
}
|
|
1069
1086
|
|
|
1070
1087
|
ry-card h3 {
|
|
@@ -3733,6 +3750,18 @@ ry-card {
|
|
|
3733
3750
|
border: var(--ry-border-width) solid var(--ry-color-border);
|
|
3734
3751
|
border-radius: var(--ry-radius-lg);
|
|
3735
3752
|
box-shadow: var(--ry-shadow-sm);
|
|
3753
|
+
transition: border-color var(--ry-duration-fast) var(--ry-ease),
|
|
3754
|
+
box-shadow var(--ry-duration-fast) var(--ry-ease);
|
|
3755
|
+
}
|
|
3756
|
+
|
|
3757
|
+
ry-card:hover {
|
|
3758
|
+
border-color: var(--ry-color-border-strong);
|
|
3759
|
+
box-shadow: var(--ry-shadow-md);
|
|
3760
|
+
}
|
|
3761
|
+
|
|
3762
|
+
ry-card[interactive]:hover {
|
|
3763
|
+
border-color: var(--ry-color-primary);
|
|
3764
|
+
box-shadow: var(--ry-shadow-lg);
|
|
3736
3765
|
}
|
|
3737
3766
|
|
|
3738
3767
|
ry-card h3 {
|
package/dist/ry-ui.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export { RyButton } from './components/ry-button.js';
|
|
|
30
30
|
export { RyButtonGroup } from './components/ry-button-group.js';
|
|
31
31
|
export { RySplit } from './components/ry-split.js';
|
|
32
32
|
export { RyThemeToggle } from './components/ry-theme-toggle.js';
|
|
33
|
+
export { RyCard } from './components/ry-card.js';
|
|
33
34
|
export { RyAlert } from './components/ry-alert.js';
|
|
34
35
|
export { RyField } from './components/ry-field.js';
|
|
35
36
|
export { RySwitch } from './components/ry-switch.js';
|
package/dist/ry-ui.d.ts.map
CHANGED
|
@@ -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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"}
|