@ryanhelsing/ry-ui 1.0.10 → 1.0.12
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/README.dev.md +302 -0
- package/README.md +460 -199
- package/dist/themes/antigravity.css +56 -0
- package/package.json +3 -5
- package/AGENT.md +0 -492
- package/AGENTS.md +0 -57
- package/examples/starter-local.html +0 -252
- package/examples/starter-minimal.html +0 -252
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/LICENSE.txt +0 -21
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/README.md +0 -7
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/index.html +0 -23
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/dist/style.css +0 -126
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/index.html +0 -5
- package/examples/themes/skeuomorphic/css-dark-neon-led-volume-dial/src/style.scss +0 -161
- package/examples/themes/skeuomorphic/led-controls/LICENSE.txt +0 -21
- package/examples/themes/skeuomorphic/led-controls/README.md +0 -7
- package/examples/themes/skeuomorphic/led-controls/dist/index.html +0 -17
- package/examples/themes/skeuomorphic/led-controls/dist/script.js +0 -27
- package/examples/themes/skeuomorphic/led-controls/dist/style.css +0 -135
- package/examples/themes/skeuomorphic/led-controls/src/index.html +0 -1
- package/examples/themes/skeuomorphic/led-controls/src/script.ts +0 -59
- package/examples/themes/skeuomorphic/led-controls/src/style.scss +0 -253
- package/llms.txt +0 -346
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" data-ry-theme="light">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>ry-ui Starter (Local)</title>
|
|
7
|
-
<link rel="stylesheet" href="../dist/css/ry-ui.css">
|
|
8
|
-
</head>
|
|
9
|
-
<body style="background: var(--ry-color-bg); color: var(--ry-color-text);">
|
|
10
|
-
|
|
11
|
-
<ry-page>
|
|
12
|
-
|
|
13
|
-
<!-- Header with nav and theme toggle -->
|
|
14
|
-
<ry-header sticky>
|
|
15
|
-
<ry-cluster>
|
|
16
|
-
<ry-logo>ry-ui starter</ry-logo>
|
|
17
|
-
<ry-divider vertical></ry-divider>
|
|
18
|
-
<ry-nav>
|
|
19
|
-
<a href="#" aria-current="page">Dashboard</a>
|
|
20
|
-
<a href="#">Settings</a>
|
|
21
|
-
<a href="#">Help</a>
|
|
22
|
-
</ry-nav>
|
|
23
|
-
</ry-cluster>
|
|
24
|
-
<ry-actions>
|
|
25
|
-
<ry-theme-toggle themes="light,dark"></ry-theme-toggle>
|
|
26
|
-
<ry-button variant="ghost" size="sm" drawer="settings-drawer">Settings</ry-button>
|
|
27
|
-
<ry-button size="sm" modal="new-project">New Project</ry-button>
|
|
28
|
-
</ry-actions>
|
|
29
|
-
</ry-header>
|
|
30
|
-
|
|
31
|
-
<ry-main>
|
|
32
|
-
|
|
33
|
-
<!-- Alert banner -->
|
|
34
|
-
<ry-section>
|
|
35
|
-
<ry-alert type="info" dismissible>
|
|
36
|
-
This is a starter template built entirely with ry-ui components. No custom CSS needed.
|
|
37
|
-
</ry-alert>
|
|
38
|
-
</ry-section>
|
|
39
|
-
|
|
40
|
-
<!-- Stats row -->
|
|
41
|
-
<ry-section>
|
|
42
|
-
<h2>Overview</h2>
|
|
43
|
-
<ry-grid cols="4" cols-sm="2">
|
|
44
|
-
<ry-card>
|
|
45
|
-
<ry-stat>
|
|
46
|
-
<span slot="value">1,284</span>
|
|
47
|
-
<span slot="label">Total Users</span>
|
|
48
|
-
</ry-stat>
|
|
49
|
-
</ry-card>
|
|
50
|
-
<ry-card>
|
|
51
|
-
<ry-stat>
|
|
52
|
-
<span slot="value">$12.4k</span>
|
|
53
|
-
<span slot="label">Revenue</span>
|
|
54
|
-
</ry-stat>
|
|
55
|
-
</ry-card>
|
|
56
|
-
<ry-card>
|
|
57
|
-
<ry-stat>
|
|
58
|
-
<span slot="value">98.2%</span>
|
|
59
|
-
<span slot="label">Uptime</span>
|
|
60
|
-
</ry-stat>
|
|
61
|
-
</ry-card>
|
|
62
|
-
<ry-card>
|
|
63
|
-
<ry-stat>
|
|
64
|
-
<span slot="value">42</span>
|
|
65
|
-
<span slot="label">Active Projects</span>
|
|
66
|
-
</ry-stat>
|
|
67
|
-
</ry-card>
|
|
68
|
-
</ry-grid>
|
|
69
|
-
</ry-section>
|
|
70
|
-
|
|
71
|
-
<!-- Tabs section -->
|
|
72
|
-
<ry-section>
|
|
73
|
-
<h2>Project Details</h2>
|
|
74
|
-
<ry-tabs>
|
|
75
|
-
<ry-tab title="Overview" active>
|
|
76
|
-
<ry-stack gap="md">
|
|
77
|
-
<p>This tab shows project overview content. All tab switching is handled by ry-ui automatically.</p>
|
|
78
|
-
<ry-grid cols="2" cols-sm="1">
|
|
79
|
-
<ry-card interactive>
|
|
80
|
-
<h3>Frontend</h3>
|
|
81
|
-
<p>React + TypeScript app deployed to Vercel.</p>
|
|
82
|
-
<ry-badge variant="success">Live</ry-badge>
|
|
83
|
-
</ry-card>
|
|
84
|
-
<ry-card interactive>
|
|
85
|
-
<h3>Backend API</h3>
|
|
86
|
-
<p>Node.js service running on AWS Lambda.</p>
|
|
87
|
-
<ry-badge variant="success">Live</ry-badge>
|
|
88
|
-
</ry-card>
|
|
89
|
-
</ry-grid>
|
|
90
|
-
</ry-stack>
|
|
91
|
-
</ry-tab>
|
|
92
|
-
<ry-tab title="Settings">
|
|
93
|
-
<ry-stack gap="md">
|
|
94
|
-
<ry-field label="Project Name">
|
|
95
|
-
<input type="text" value="My Dashboard" placeholder="Enter project name">
|
|
96
|
-
</ry-field>
|
|
97
|
-
<ry-field label="Region">
|
|
98
|
-
<ry-select placeholder="Select region" name="region" value="us-east">
|
|
99
|
-
<ry-option value="us-east">US East</ry-option>
|
|
100
|
-
<ry-option value="us-west">US West</ry-option>
|
|
101
|
-
<ry-option value="eu-west">EU West</ry-option>
|
|
102
|
-
<ry-option value="ap-south">Asia Pacific</ry-option>
|
|
103
|
-
</ry-select>
|
|
104
|
-
</ry-field>
|
|
105
|
-
<ry-field label="Notifications">
|
|
106
|
-
<ry-switch name="notifications" checked></ry-switch>
|
|
107
|
-
</ry-field>
|
|
108
|
-
<ry-cluster>
|
|
109
|
-
<ry-button variant="primary">Save Changes</ry-button>
|
|
110
|
-
<ry-button variant="ghost">Cancel</ry-button>
|
|
111
|
-
</ry-cluster>
|
|
112
|
-
</ry-stack>
|
|
113
|
-
</ry-tab>
|
|
114
|
-
<ry-tab title="Activity">
|
|
115
|
-
<ry-accordion>
|
|
116
|
-
<ry-accordion-item title="Deploy #42 — Production" open>
|
|
117
|
-
<p>Deployed by alice@team.com at 2:34 PM. All checks passed.</p>
|
|
118
|
-
<ry-badge variant="success">Success</ry-badge>
|
|
119
|
-
</ry-accordion-item>
|
|
120
|
-
<ry-accordion-item title="Deploy #41 — Staging">
|
|
121
|
-
<p>Deployed by bob@team.com at 1:12 PM. Warning: slow migration.</p>
|
|
122
|
-
<ry-badge variant="warning">Warning</ry-badge>
|
|
123
|
-
</ry-accordion-item>
|
|
124
|
-
<ry-accordion-item title="Deploy #40 — Production">
|
|
125
|
-
<p>Rolled back by alice@team.com at 11:05 AM.</p>
|
|
126
|
-
<ry-badge variant="danger">Rolled Back</ry-badge>
|
|
127
|
-
</ry-accordion-item>
|
|
128
|
-
</ry-accordion>
|
|
129
|
-
</ry-tab>
|
|
130
|
-
</ry-tabs>
|
|
131
|
-
</ry-section>
|
|
132
|
-
|
|
133
|
-
<!-- Buttons showcase -->
|
|
134
|
-
<ry-section>
|
|
135
|
-
<h2>Actions</h2>
|
|
136
|
-
<ry-cluster gap="sm">
|
|
137
|
-
<ry-button variant="primary">Primary</ry-button>
|
|
138
|
-
<ry-button variant="secondary">Secondary</ry-button>
|
|
139
|
-
<ry-button variant="outline">Outline</ry-button>
|
|
140
|
-
<ry-button variant="ghost">Ghost</ry-button>
|
|
141
|
-
<ry-button variant="danger">Danger</ry-button>
|
|
142
|
-
<ry-button variant="accent">Accent</ry-button>
|
|
143
|
-
</ry-cluster>
|
|
144
|
-
<br>
|
|
145
|
-
<ry-button-group name="view" value="grid">
|
|
146
|
-
<ry-button value="grid">Grid</ry-button>
|
|
147
|
-
<ry-button value="list">List</ry-button>
|
|
148
|
-
<ry-button value="board">Board</ry-button>
|
|
149
|
-
</ry-button-group>
|
|
150
|
-
</ry-section>
|
|
151
|
-
|
|
152
|
-
<!-- Dropdown + Tooltip -->
|
|
153
|
-
<ry-section>
|
|
154
|
-
<h2>Menus & Tooltips</h2>
|
|
155
|
-
<ry-cluster gap="md">
|
|
156
|
-
<ry-dropdown>
|
|
157
|
-
<ry-button slot="trigger" variant="outline">Actions Menu</ry-button>
|
|
158
|
-
<ry-menu>
|
|
159
|
-
<ry-menu-item>Edit Project</ry-menu-item>
|
|
160
|
-
<ry-menu-item>Duplicate</ry-menu-item>
|
|
161
|
-
<ry-menu-item>Archive</ry-menu-item>
|
|
162
|
-
</ry-menu>
|
|
163
|
-
</ry-dropdown>
|
|
164
|
-
<ry-tooltip content="This button sends a toast notification" position="top">
|
|
165
|
-
<ry-button variant="outline" onclick="RyToast.success('Action completed!')">
|
|
166
|
-
Try Toast
|
|
167
|
-
</ry-button>
|
|
168
|
-
</ry-tooltip>
|
|
169
|
-
<ry-tooltip content="Dangerous action — cannot be undone" position="top">
|
|
170
|
-
<ry-button variant="danger" onclick="RyToast.error('Something went wrong!')">
|
|
171
|
-
Try Error Toast
|
|
172
|
-
</ry-button>
|
|
173
|
-
</ry-tooltip>
|
|
174
|
-
</ry-cluster>
|
|
175
|
-
</ry-section>
|
|
176
|
-
|
|
177
|
-
<!-- Slider -->
|
|
178
|
-
<ry-section>
|
|
179
|
-
<h2>Controls</h2>
|
|
180
|
-
<ry-grid cols="2" cols-sm="1">
|
|
181
|
-
<ry-card>
|
|
182
|
-
<ry-stack gap="sm">
|
|
183
|
-
<strong>Volume</strong>
|
|
184
|
-
<ry-slider min="0" max="100" value="65" step="1" labeled></ry-slider>
|
|
185
|
-
</ry-stack>
|
|
186
|
-
</ry-card>
|
|
187
|
-
<ry-card>
|
|
188
|
-
<ry-stack gap="sm">
|
|
189
|
-
<strong>Price Range</strong>
|
|
190
|
-
<ry-slider range start="20" end="80" min="0" max="100" labeled></ry-slider>
|
|
191
|
-
</ry-stack>
|
|
192
|
-
</ry-card>
|
|
193
|
-
</ry-grid>
|
|
194
|
-
</ry-section>
|
|
195
|
-
|
|
196
|
-
</ry-main>
|
|
197
|
-
|
|
198
|
-
<ry-footer>
|
|
199
|
-
<ry-cluster>
|
|
200
|
-
<span>Built with <a href="https://github.com/ryanhelsing/ry-ui">ry-ui</a> — zero custom CSS</span>
|
|
201
|
-
</ry-cluster>
|
|
202
|
-
</ry-footer>
|
|
203
|
-
|
|
204
|
-
</ry-page>
|
|
205
|
-
|
|
206
|
-
<!-- Modal (triggered by header button) -->
|
|
207
|
-
<ry-modal id="new-project" title="Create New Project">
|
|
208
|
-
<ry-stack gap="md">
|
|
209
|
-
<ry-field label="Project Name">
|
|
210
|
-
<input type="text" placeholder="my-awesome-project">
|
|
211
|
-
</ry-field>
|
|
212
|
-
<ry-field label="Template">
|
|
213
|
-
<ry-select placeholder="Choose template" name="template">
|
|
214
|
-
<ry-option value="blank">Blank</ry-option>
|
|
215
|
-
<ry-option value="dashboard">Dashboard</ry-option>
|
|
216
|
-
<ry-option value="landing">Landing Page</ry-option>
|
|
217
|
-
<ry-option value="docs">Documentation</ry-option>
|
|
218
|
-
</ry-select>
|
|
219
|
-
</ry-field>
|
|
220
|
-
<ry-field label="Private">
|
|
221
|
-
<ry-switch name="private"></ry-switch>
|
|
222
|
-
</ry-field>
|
|
223
|
-
<ry-cluster>
|
|
224
|
-
<ry-button variant="primary" onclick="RyToast.success('Project created!'); document.querySelector('#new-project').close();">Create</ry-button>
|
|
225
|
-
<ry-button variant="ghost" onclick="document.querySelector('#new-project').close();">Cancel</ry-button>
|
|
226
|
-
</ry-cluster>
|
|
227
|
-
</ry-stack>
|
|
228
|
-
</ry-modal>
|
|
229
|
-
|
|
230
|
-
<!-- Drawer (triggered by header button) -->
|
|
231
|
-
<ry-drawer id="settings-drawer" side="right" title="Quick Settings">
|
|
232
|
-
<ry-stack gap="md">
|
|
233
|
-
<ry-field label="Language">
|
|
234
|
-
<ry-select name="language" value="en">
|
|
235
|
-
<ry-option value="en">English</ry-option>
|
|
236
|
-
<ry-option value="es">Spanish</ry-option>
|
|
237
|
-
<ry-option value="fr">French</ry-option>
|
|
238
|
-
</ry-select>
|
|
239
|
-
</ry-field>
|
|
240
|
-
<ry-field label="Email Notifications">
|
|
241
|
-
<ry-switch name="email-notifs" checked></ry-switch>
|
|
242
|
-
</ry-field>
|
|
243
|
-
<ry-field label="Compact Mode">
|
|
244
|
-
<ry-switch name="compact"></ry-switch>
|
|
245
|
-
</ry-field>
|
|
246
|
-
<ry-alert type="info">Changes are saved automatically.</ry-alert>
|
|
247
|
-
</ry-stack>
|
|
248
|
-
</ry-drawer>
|
|
249
|
-
|
|
250
|
-
<script type="module" src="../dist/ry-ui.js"></script>
|
|
251
|
-
</body>
|
|
252
|
-
</html>
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" data-ry-theme="light">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>ry-ui Starter</title>
|
|
7
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ryanhelsing/ry-ui/dist/css/ry-ui.css">
|
|
8
|
-
</head>
|
|
9
|
-
<body style="background: var(--ry-color-bg); color: var(--ry-color-text);">
|
|
10
|
-
|
|
11
|
-
<ry-page>
|
|
12
|
-
|
|
13
|
-
<!-- Header with nav and theme toggle -->
|
|
14
|
-
<ry-header sticky>
|
|
15
|
-
<ry-cluster>
|
|
16
|
-
<ry-logo>ry-ui starter</ry-logo>
|
|
17
|
-
<ry-divider vertical></ry-divider>
|
|
18
|
-
<ry-nav>
|
|
19
|
-
<a href="#" aria-current="page">Dashboard</a>
|
|
20
|
-
<a href="#">Settings</a>
|
|
21
|
-
<a href="#">Help</a>
|
|
22
|
-
</ry-nav>
|
|
23
|
-
</ry-cluster>
|
|
24
|
-
<ry-actions>
|
|
25
|
-
<ry-theme-toggle themes="light,dark"></ry-theme-toggle>
|
|
26
|
-
<ry-button variant="ghost" size="sm" drawer="settings-drawer">Settings</ry-button>
|
|
27
|
-
<ry-button size="sm" modal="new-project">New Project</ry-button>
|
|
28
|
-
</ry-actions>
|
|
29
|
-
</ry-header>
|
|
30
|
-
|
|
31
|
-
<ry-main>
|
|
32
|
-
|
|
33
|
-
<!-- Alert banner -->
|
|
34
|
-
<ry-section>
|
|
35
|
-
<ry-alert type="info" dismissible>
|
|
36
|
-
This is a starter template built entirely with ry-ui components. No custom CSS needed.
|
|
37
|
-
</ry-alert>
|
|
38
|
-
</ry-section>
|
|
39
|
-
|
|
40
|
-
<!-- Stats row -->
|
|
41
|
-
<ry-section>
|
|
42
|
-
<h2>Overview</h2>
|
|
43
|
-
<ry-grid cols="4" cols-sm="2">
|
|
44
|
-
<ry-card>
|
|
45
|
-
<ry-stat>
|
|
46
|
-
<span slot="value">1,284</span>
|
|
47
|
-
<span slot="label">Total Users</span>
|
|
48
|
-
</ry-stat>
|
|
49
|
-
</ry-card>
|
|
50
|
-
<ry-card>
|
|
51
|
-
<ry-stat>
|
|
52
|
-
<span slot="value">$12.4k</span>
|
|
53
|
-
<span slot="label">Revenue</span>
|
|
54
|
-
</ry-stat>
|
|
55
|
-
</ry-card>
|
|
56
|
-
<ry-card>
|
|
57
|
-
<ry-stat>
|
|
58
|
-
<span slot="value">98.2%</span>
|
|
59
|
-
<span slot="label">Uptime</span>
|
|
60
|
-
</ry-stat>
|
|
61
|
-
</ry-card>
|
|
62
|
-
<ry-card>
|
|
63
|
-
<ry-stat>
|
|
64
|
-
<span slot="value">42</span>
|
|
65
|
-
<span slot="label">Active Projects</span>
|
|
66
|
-
</ry-stat>
|
|
67
|
-
</ry-card>
|
|
68
|
-
</ry-grid>
|
|
69
|
-
</ry-section>
|
|
70
|
-
|
|
71
|
-
<!-- Tabs section -->
|
|
72
|
-
<ry-section>
|
|
73
|
-
<h2>Project Details</h2>
|
|
74
|
-
<ry-tabs>
|
|
75
|
-
<ry-tab title="Overview" active>
|
|
76
|
-
<ry-stack gap="md">
|
|
77
|
-
<p>This tab shows project overview content. All tab switching is handled by ry-ui automatically.</p>
|
|
78
|
-
<ry-grid cols="2" cols-sm="1">
|
|
79
|
-
<ry-card interactive>
|
|
80
|
-
<h3>Frontend</h3>
|
|
81
|
-
<p>React + TypeScript app deployed to Vercel.</p>
|
|
82
|
-
<ry-badge variant="success">Live</ry-badge>
|
|
83
|
-
</ry-card>
|
|
84
|
-
<ry-card interactive>
|
|
85
|
-
<h3>Backend API</h3>
|
|
86
|
-
<p>Node.js service running on AWS Lambda.</p>
|
|
87
|
-
<ry-badge variant="success">Live</ry-badge>
|
|
88
|
-
</ry-card>
|
|
89
|
-
</ry-grid>
|
|
90
|
-
</ry-stack>
|
|
91
|
-
</ry-tab>
|
|
92
|
-
<ry-tab title="Settings">
|
|
93
|
-
<ry-stack gap="md">
|
|
94
|
-
<ry-field label="Project Name">
|
|
95
|
-
<input type="text" value="My Dashboard" placeholder="Enter project name">
|
|
96
|
-
</ry-field>
|
|
97
|
-
<ry-field label="Region">
|
|
98
|
-
<ry-select placeholder="Select region" name="region" value="us-east">
|
|
99
|
-
<ry-option value="us-east">US East</ry-option>
|
|
100
|
-
<ry-option value="us-west">US West</ry-option>
|
|
101
|
-
<ry-option value="eu-west">EU West</ry-option>
|
|
102
|
-
<ry-option value="ap-south">Asia Pacific</ry-option>
|
|
103
|
-
</ry-select>
|
|
104
|
-
</ry-field>
|
|
105
|
-
<ry-field label="Notifications">
|
|
106
|
-
<ry-switch name="notifications" checked></ry-switch>
|
|
107
|
-
</ry-field>
|
|
108
|
-
<ry-cluster>
|
|
109
|
-
<ry-button variant="primary">Save Changes</ry-button>
|
|
110
|
-
<ry-button variant="ghost">Cancel</ry-button>
|
|
111
|
-
</ry-cluster>
|
|
112
|
-
</ry-stack>
|
|
113
|
-
</ry-tab>
|
|
114
|
-
<ry-tab title="Activity">
|
|
115
|
-
<ry-accordion>
|
|
116
|
-
<ry-accordion-item title="Deploy #42 — Production" open>
|
|
117
|
-
<p>Deployed by alice@team.com at 2:34 PM. All checks passed.</p>
|
|
118
|
-
<ry-badge variant="success">Success</ry-badge>
|
|
119
|
-
</ry-accordion-item>
|
|
120
|
-
<ry-accordion-item title="Deploy #41 — Staging">
|
|
121
|
-
<p>Deployed by bob@team.com at 1:12 PM. Warning: slow migration.</p>
|
|
122
|
-
<ry-badge variant="warning">Warning</ry-badge>
|
|
123
|
-
</ry-accordion-item>
|
|
124
|
-
<ry-accordion-item title="Deploy #40 — Production">
|
|
125
|
-
<p>Rolled back by alice@team.com at 11:05 AM.</p>
|
|
126
|
-
<ry-badge variant="danger">Rolled Back</ry-badge>
|
|
127
|
-
</ry-accordion-item>
|
|
128
|
-
</ry-accordion>
|
|
129
|
-
</ry-tab>
|
|
130
|
-
</ry-tabs>
|
|
131
|
-
</ry-section>
|
|
132
|
-
|
|
133
|
-
<!-- Buttons showcase -->
|
|
134
|
-
<ry-section>
|
|
135
|
-
<h2>Actions</h2>
|
|
136
|
-
<ry-cluster gap="sm">
|
|
137
|
-
<ry-button variant="primary">Primary</ry-button>
|
|
138
|
-
<ry-button variant="secondary">Secondary</ry-button>
|
|
139
|
-
<ry-button variant="outline">Outline</ry-button>
|
|
140
|
-
<ry-button variant="ghost">Ghost</ry-button>
|
|
141
|
-
<ry-button variant="danger">Danger</ry-button>
|
|
142
|
-
<ry-button variant="accent">Accent</ry-button>
|
|
143
|
-
</ry-cluster>
|
|
144
|
-
<br>
|
|
145
|
-
<ry-button-group name="view" value="grid">
|
|
146
|
-
<ry-button value="grid">Grid</ry-button>
|
|
147
|
-
<ry-button value="list">List</ry-button>
|
|
148
|
-
<ry-button value="board">Board</ry-button>
|
|
149
|
-
</ry-button-group>
|
|
150
|
-
</ry-section>
|
|
151
|
-
|
|
152
|
-
<!-- Dropdown + Tooltip -->
|
|
153
|
-
<ry-section>
|
|
154
|
-
<h2>Menus & Tooltips</h2>
|
|
155
|
-
<ry-cluster gap="md">
|
|
156
|
-
<ry-dropdown>
|
|
157
|
-
<ry-button slot="trigger" variant="outline">Actions Menu</ry-button>
|
|
158
|
-
<ry-menu>
|
|
159
|
-
<ry-menu-item>Edit Project</ry-menu-item>
|
|
160
|
-
<ry-menu-item>Duplicate</ry-menu-item>
|
|
161
|
-
<ry-menu-item>Archive</ry-menu-item>
|
|
162
|
-
</ry-menu>
|
|
163
|
-
</ry-dropdown>
|
|
164
|
-
<ry-tooltip content="This button sends a toast notification" position="top">
|
|
165
|
-
<ry-button variant="outline" onclick="RyToast.success('Action completed!')">
|
|
166
|
-
Try Toast
|
|
167
|
-
</ry-button>
|
|
168
|
-
</ry-tooltip>
|
|
169
|
-
<ry-tooltip content="Dangerous action — cannot be undone" position="top">
|
|
170
|
-
<ry-button variant="danger" onclick="RyToast.error('Something went wrong!')">
|
|
171
|
-
Try Error Toast
|
|
172
|
-
</ry-button>
|
|
173
|
-
</ry-tooltip>
|
|
174
|
-
</ry-cluster>
|
|
175
|
-
</ry-section>
|
|
176
|
-
|
|
177
|
-
<!-- Slider -->
|
|
178
|
-
<ry-section>
|
|
179
|
-
<h2>Controls</h2>
|
|
180
|
-
<ry-grid cols="2" cols-sm="1">
|
|
181
|
-
<ry-card>
|
|
182
|
-
<ry-stack gap="sm">
|
|
183
|
-
<strong>Volume</strong>
|
|
184
|
-
<ry-slider min="0" max="100" value="65" step="1" labeled></ry-slider>
|
|
185
|
-
</ry-stack>
|
|
186
|
-
</ry-card>
|
|
187
|
-
<ry-card>
|
|
188
|
-
<ry-stack gap="sm">
|
|
189
|
-
<strong>Price Range</strong>
|
|
190
|
-
<ry-slider range start="20" end="80" min="0" max="100" labeled></ry-slider>
|
|
191
|
-
</ry-stack>
|
|
192
|
-
</ry-card>
|
|
193
|
-
</ry-grid>
|
|
194
|
-
</ry-section>
|
|
195
|
-
|
|
196
|
-
</ry-main>
|
|
197
|
-
|
|
198
|
-
<ry-footer>
|
|
199
|
-
<ry-cluster>
|
|
200
|
-
<span>Built with <a href="https://github.com/ryanhelsing/ry-ui">ry-ui</a> — zero custom CSS</span>
|
|
201
|
-
</ry-cluster>
|
|
202
|
-
</ry-footer>
|
|
203
|
-
|
|
204
|
-
</ry-page>
|
|
205
|
-
|
|
206
|
-
<!-- Modal (triggered by header button) -->
|
|
207
|
-
<ry-modal id="new-project" title="Create New Project">
|
|
208
|
-
<ry-stack gap="md">
|
|
209
|
-
<ry-field label="Project Name">
|
|
210
|
-
<input type="text" placeholder="my-awesome-project">
|
|
211
|
-
</ry-field>
|
|
212
|
-
<ry-field label="Template">
|
|
213
|
-
<ry-select placeholder="Choose template" name="template">
|
|
214
|
-
<ry-option value="blank">Blank</ry-option>
|
|
215
|
-
<ry-option value="dashboard">Dashboard</ry-option>
|
|
216
|
-
<ry-option value="landing">Landing Page</ry-option>
|
|
217
|
-
<ry-option value="docs">Documentation</ry-option>
|
|
218
|
-
</ry-select>
|
|
219
|
-
</ry-field>
|
|
220
|
-
<ry-field label="Private">
|
|
221
|
-
<ry-switch name="private"></ry-switch>
|
|
222
|
-
</ry-field>
|
|
223
|
-
<ry-cluster>
|
|
224
|
-
<ry-button variant="primary" onclick="RyToast.success('Project created!'); document.querySelector('#new-project').close();">Create</ry-button>
|
|
225
|
-
<ry-button variant="ghost" onclick="document.querySelector('#new-project').close();">Cancel</ry-button>
|
|
226
|
-
</ry-cluster>
|
|
227
|
-
</ry-stack>
|
|
228
|
-
</ry-modal>
|
|
229
|
-
|
|
230
|
-
<!-- Drawer (triggered by header button) -->
|
|
231
|
-
<ry-drawer id="settings-drawer" side="right" title="Quick Settings">
|
|
232
|
-
<ry-stack gap="md">
|
|
233
|
-
<ry-field label="Language">
|
|
234
|
-
<ry-select name="language" value="en">
|
|
235
|
-
<ry-option value="en">English</ry-option>
|
|
236
|
-
<ry-option value="es">Spanish</ry-option>
|
|
237
|
-
<ry-option value="fr">French</ry-option>
|
|
238
|
-
</ry-select>
|
|
239
|
-
</ry-field>
|
|
240
|
-
<ry-field label="Email Notifications">
|
|
241
|
-
<ry-switch name="email-notifs" checked></ry-switch>
|
|
242
|
-
</ry-field>
|
|
243
|
-
<ry-field label="Compact Mode">
|
|
244
|
-
<ry-switch name="compact"></ry-switch>
|
|
245
|
-
</ry-field>
|
|
246
|
-
<ry-alert type="info">Changes are saved automatically.</ry-alert>
|
|
247
|
-
</ry-stack>
|
|
248
|
-
</ry-drawer>
|
|
249
|
-
|
|
250
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@ryanhelsing/ry-ui/dist/ry-ui.js"></script>
|
|
251
|
-
</body>
|
|
252
|
-
</html>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Luke Watts (https://codepen.io/lukewatts/pen/nVQNEK)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# CSS Dark Neon LED Volume Dial
|
|
2
|
-
|
|
3
|
-
A Pen created on CodePen.
|
|
4
|
-
|
|
5
|
-
Original URL: [https://codepen.io/lukewatts/pen/nVQNEK](https://codepen.io/lukewatts/pen/nVQNEK).
|
|
6
|
-
|
|
7
|
-
Yet another 100% CSS control dial...thingy. The LED was NOT easy to do. especially the glow on the inside. Even now it's not right but it'll have to do. If the glow was all around it would be fine but the "slice of pie" shape means there's that sharp edge to deal with. If I think of a better way I'll come back. As it is 4 elements for this effect ain't so bad. I'd challenged myself to do it in three but z-index on ::before and ::afters won't behave. Oh well.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<title>CSS Dark Neon LED Volume Dial</title>
|
|
7
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script>
|
|
8
|
-
|
|
9
|
-
<link rel="stylesheet" href="https://public.codepenassets.com/css/normalize-5.0.0.min.css">
|
|
10
|
-
<link rel="stylesheet" href="./style.css">
|
|
11
|
-
|
|
12
|
-
</head>
|
|
13
|
-
|
|
14
|
-
<body>
|
|
15
|
-
<div class="ring">
|
|
16
|
-
<div class="led"></div>
|
|
17
|
-
<div class="inner-glow"></div>
|
|
18
|
-
<div class="face"></div>
|
|
19
|
-
</div>
|
|
20
|
-
<script src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
|
|
21
|
-
</body>
|
|
22
|
-
|
|
23
|
-
</html>
|