aural-ui 2.1.0 → 2.1.1
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/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +952 -0
- package/dist/icons/apple-logo-icon/index.tsx +26 -0
- package/dist/icons/apple-logo-icon/meta.ts +8 -0
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +1008 -0
- package/dist/icons/arrow-left-icon/index.tsx +24 -0
- package/dist/icons/arrow-left-icon/meta.ts +8 -0
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +1050 -0
- package/dist/icons/backward-ten-seconds-icon/index.tsx +35 -0
- package/dist/icons/backward-ten-seconds-icon/meta.ts +8 -0
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +1271 -0
- package/dist/icons/camera-icon/index.tsx +22 -0
- package/dist/icons/camera-icon/meta.ts +8 -0
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +1382 -0
- package/dist/icons/coin-icon/index.tsx +36 -0
- package/dist/icons/coin-icon/meta.ts +8 -0
- package/dist/icons/email-icon/EmailIcon.stories.tsx +995 -0
- package/dist/icons/email-icon/index.tsx +22 -0
- package/dist/icons/email-icon/meta.ts +8 -0
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +1167 -0
- package/dist/icons/expand-icon/index.tsx +22 -0
- package/dist/icons/expand-icon/meta.ts +8 -0
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +1054 -0
- package/dist/icons/forward-ten-seconds-icon/index.tsx +33 -0
- package/dist/icons/forward-ten-seconds-icon/meta.ts +8 -0
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +1004 -0
- package/dist/icons/google-logo-icon/index.tsx +34 -0
- package/dist/icons/google-logo-icon/meta.ts +8 -0
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +1080 -0
- package/dist/icons/heart-icon/index.tsx +21 -0
- package/dist/icons/heart-icon/meta.ts +8 -0
- package/dist/icons/index.ts +32 -4
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +1020 -0
- package/dist/icons/indian-flag-icon/index.tsx +46 -0
- package/dist/icons/indian-flag-icon/meta.ts +8 -0
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +1449 -0
- package/dist/icons/instagram-icon/index.tsx +17 -0
- package/dist/icons/instagram-icon/meta.ts +8 -0
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +1582 -0
- package/dist/icons/linked-in-icon/index.tsx +17 -0
- package/dist/icons/linked-in-icon/meta.ts +8 -0
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +1214 -0
- package/dist/icons/minimize-icon/index.tsx +22 -0
- package/dist/icons/minimize-icon/meta.ts +8 -0
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +1060 -0
- package/dist/icons/pause-icon/index.tsx +30 -0
- package/dist/icons/pause-icon/meta.ts +8 -0
- package/dist/icons/share-icon/ShareIcon.stories.tsx +1081 -0
- package/dist/icons/share-icon/index.tsx +22 -0
- package/dist/icons/share-icon/meta.ts +8 -0
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +1047 -0
- package/dist/icons/skip-backward-icon/index.tsx +29 -0
- package/dist/icons/skip-backward-icon/meta.ts +8 -0
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +1049 -0
- package/dist/icons/skip-forward-icon/index.tsx +29 -0
- package/dist/icons/skip-forward-icon/meta.ts +8 -0
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +1020 -0
- package/dist/icons/store-coin-icon/index.tsx +35 -0
- package/dist/icons/store-coin-icon/meta.ts +8 -0
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +1489 -0
- package/dist/icons/threads-icon/index.tsx +17 -0
- package/dist/icons/threads-icon/meta.ts +8 -0
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +1463 -0
- package/dist/icons/twitter-x-icon/index.tsx +17 -0
- package/dist/icons/twitter-x-icon/meta.ts +8 -0
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +1105 -0
- package/dist/icons/video-play-list-icon/index.tsx +22 -0
- package/dist/icons/video-play-list-icon/meta.ts +8 -0
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +1416 -0
- package/dist/icons/voice-playing-icon/index.tsx +24 -0
- package/dist/icons/voice-playing-icon/meta.ts +8 -0
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +1230 -0
- package/dist/icons/volume-full-icon/index.tsx +25 -0
- package/dist/icons/volume-full-icon/meta.ts +8 -0
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +1153 -0
- package/dist/icons/volume-half-icon/index.tsx +25 -0
- package/dist/icons/volume-half-icon/meta.ts +8 -0
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +1144 -0
- package/dist/icons/volume-off-icon/index.tsx +26 -0
- package/dist/icons/volume-off-icon/meta.ts +8 -0
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +1106 -0
- package/dist/icons/warning-icon/index.tsx +27 -0
- package/dist/icons/warning-icon/meta.ts +8 -0
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +996 -0
- package/dist/icons/youtube-icon/index.tsx +24 -0
- package/dist/icons/youtube-icon/meta.ts +8 -0
- package/dist/index.js +1 -1
- package/dist/styles/aural-theme.css +9 -0
- package/package.json +1 -1
|
@@ -0,0 +1,1382 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
|
|
4
|
+
import { CoinIcon } from "."
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof CoinIcon> = {
|
|
7
|
+
title: "Icons/CoinIcon",
|
|
8
|
+
component: CoinIcon,
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: "fullscreen",
|
|
11
|
+
backgrounds: {
|
|
12
|
+
default: "dark",
|
|
13
|
+
values: [
|
|
14
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
15
|
+
{ name: "darker", value: "#000000" },
|
|
16
|
+
{ name: "light", value: "#ffffff" },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
docs: {
|
|
20
|
+
page: () => (
|
|
21
|
+
<>
|
|
22
|
+
{/* Override default docs styling */}
|
|
23
|
+
<style>
|
|
24
|
+
{`
|
|
25
|
+
.sbdocs-wrapper {
|
|
26
|
+
padding: 0 ;
|
|
27
|
+
max-width: none ;
|
|
28
|
+
background: transparent ;
|
|
29
|
+
}
|
|
30
|
+
.sbdocs-content {
|
|
31
|
+
max-width: none ;
|
|
32
|
+
padding: 0 ;
|
|
33
|
+
margin: 0 ;
|
|
34
|
+
background: transparent ;
|
|
35
|
+
}
|
|
36
|
+
.docs-story {
|
|
37
|
+
background: transparent ;
|
|
38
|
+
}
|
|
39
|
+
.sbdocs {
|
|
40
|
+
background: transparent ;
|
|
41
|
+
}
|
|
42
|
+
body {
|
|
43
|
+
background: #0a0a0a ;
|
|
44
|
+
}
|
|
45
|
+
#storybook-docs {
|
|
46
|
+
background: #0a0a0a ;
|
|
47
|
+
}
|
|
48
|
+
.sbdocs-preview {
|
|
49
|
+
background: transparent ;
|
|
50
|
+
border: none ;
|
|
51
|
+
}
|
|
52
|
+
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
+
color: white ;
|
|
54
|
+
}
|
|
55
|
+
.sbdocs-p, .sbdocs-li {
|
|
56
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
57
|
+
}
|
|
58
|
+
.sbdocs-code {
|
|
59
|
+
background: rgba(255, 255, 255, 0.1) ;
|
|
60
|
+
color: rgba(168, 85, 247, 1) ;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
62
|
+
}
|
|
63
|
+
.sbdocs-pre {
|
|
64
|
+
background: rgba(0, 0, 0, 0.4) ;
|
|
65
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
66
|
+
}
|
|
67
|
+
.sbdocs-table {
|
|
68
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
69
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
70
|
+
}
|
|
71
|
+
.sbdocs-table th {
|
|
72
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
73
|
+
color: white ;
|
|
74
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
75
|
+
}
|
|
76
|
+
.sbdocs-table td {
|
|
77
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
78
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
|
|
79
|
+
}
|
|
80
|
+
`}
|
|
81
|
+
</style>
|
|
82
|
+
|
|
83
|
+
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-yellow-900/20 to-gray-900">
|
|
84
|
+
{/* Header */}
|
|
85
|
+
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
86
|
+
<div className="absolute inset-0 bg-gradient-to-r from-yellow-500/10 via-transparent to-amber-500/10" />
|
|
87
|
+
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
+
<div className="!space-y-6 text-center">
|
|
89
|
+
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-yellow-500/30 bg-gradient-to-br from-yellow-500/20 to-amber-500/20">
|
|
90
|
+
<CoinIcon className="h-12 w-12" />
|
|
91
|
+
</div>
|
|
92
|
+
<h1 className="text-5xl font-bold !text-white">CoinIcon</h1>
|
|
93
|
+
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
94
|
+
A golden coin icon with authentic metallic shine and
|
|
95
|
+
dimensional depth. Perfect for financial applications,
|
|
96
|
+
reward systems, gaming interfaces, e-commerce platforms, and
|
|
97
|
+
any interface where currency, earnings, or value
|
|
98
|
+
representation is needed.
|
|
99
|
+
</p>
|
|
100
|
+
|
|
101
|
+
{/* Stats */}
|
|
102
|
+
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
|
+
<div className="text-center">
|
|
104
|
+
<div className="text-3xl font-bold text-yellow-300">
|
|
105
|
+
Currency
|
|
106
|
+
</div>
|
|
107
|
+
<div className="text-sm text-white/60">
|
|
108
|
+
Financial value
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div className="h-8 w-px bg-white/20" />
|
|
112
|
+
<div className="text-center">
|
|
113
|
+
<div className="text-3xl font-bold text-amber-300">
|
|
114
|
+
Rewards
|
|
115
|
+
</div>
|
|
116
|
+
<div className="text-sm text-white/60">
|
|
117
|
+
Achievement system
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
<div className="h-8 w-px bg-white/20" />
|
|
121
|
+
<div className="text-center">
|
|
122
|
+
<div className="text-3xl font-bold text-orange-300">
|
|
123
|
+
Premium
|
|
124
|
+
</div>
|
|
125
|
+
<div className="text-sm text-white/60">
|
|
126
|
+
Golden standard
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
{/* Content */}
|
|
135
|
+
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
|
+
{/* Quick Usage */}
|
|
137
|
+
<div className="!space-y-8">
|
|
138
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
139
|
+
Quick Start
|
|
140
|
+
</h2>
|
|
141
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
|
+
<div className="!space-y-4">
|
|
143
|
+
<h3 className="text-xl font-semibold !text-yellow-300">
|
|
144
|
+
Basic Usage
|
|
145
|
+
</h3>
|
|
146
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
147
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
148
|
+
{`import { CoinIcon } from "@icons/coin-icon"
|
|
149
|
+
|
|
150
|
+
function WalletBalance() {
|
|
151
|
+
return (
|
|
152
|
+
<div className="flex items-center gap-2">
|
|
153
|
+
<CoinIcon className="h-5 w-5" />
|
|
154
|
+
<span className="text-yellow-400">{balance} coins</span>
|
|
155
|
+
</div>
|
|
156
|
+
)
|
|
157
|
+
}`}
|
|
158
|
+
</pre>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div className="!space-y-4">
|
|
163
|
+
<h3 className="text-xl font-semibold !text-yellow-300">
|
|
164
|
+
Live Preview
|
|
165
|
+
</h3>
|
|
166
|
+
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
167
|
+
<div className="flex items-center gap-3 rounded-lg border border-yellow-500/20 bg-yellow-500/10 px-4 py-2">
|
|
168
|
+
<CoinIcon className="h-5 w-5" />
|
|
169
|
+
<span className="font-medium text-yellow-300">
|
|
170
|
+
1,247 coins
|
|
171
|
+
</span>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
{/* Props Documentation */}
|
|
179
|
+
<div className="!space-y-8">
|
|
180
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
181
|
+
Props & Configuration
|
|
182
|
+
</h2>
|
|
183
|
+
|
|
184
|
+
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
185
|
+
<div className="bg-white/5 p-4">
|
|
186
|
+
<h3 className="text-xl font-semibold !text-white">Props</h3>
|
|
187
|
+
</div>
|
|
188
|
+
<table className="!my-0 w-full">
|
|
189
|
+
<thead className="bg-white/5">
|
|
190
|
+
<tr className="border-b border-white/10">
|
|
191
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
192
|
+
Prop
|
|
193
|
+
</th>
|
|
194
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
195
|
+
Type
|
|
196
|
+
</th>
|
|
197
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
198
|
+
Default
|
|
199
|
+
</th>
|
|
200
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
201
|
+
Description
|
|
202
|
+
</th>
|
|
203
|
+
</tr>
|
|
204
|
+
</thead>
|
|
205
|
+
<tbody>
|
|
206
|
+
<tr className="border-b border-white/5">
|
|
207
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
208
|
+
width
|
|
209
|
+
</td>
|
|
210
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
211
|
+
number | string
|
|
212
|
+
</td>
|
|
213
|
+
<td className="px-6 py-4 text-sm !text-white/50">24</td>
|
|
214
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
215
|
+
Width of the icon in pixels
|
|
216
|
+
</td>
|
|
217
|
+
</tr>
|
|
218
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
219
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
220
|
+
height
|
|
221
|
+
</td>
|
|
222
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
223
|
+
number | string
|
|
224
|
+
</td>
|
|
225
|
+
<td className="px-6 py-4 text-sm !text-white/50">24</td>
|
|
226
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
227
|
+
Height of the icon in pixels
|
|
228
|
+
</td>
|
|
229
|
+
</tr>
|
|
230
|
+
<tr className="border-b border-white/5">
|
|
231
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
232
|
+
className
|
|
233
|
+
</td>
|
|
234
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
235
|
+
string
|
|
236
|
+
</td>
|
|
237
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
238
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
239
|
+
CSS classes for styling (use for size overrides)
|
|
240
|
+
</td>
|
|
241
|
+
</tr>
|
|
242
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
243
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
244
|
+
style
|
|
245
|
+
</td>
|
|
246
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
247
|
+
CSSProperties
|
|
248
|
+
</td>
|
|
249
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
250
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
251
|
+
Inline styles (avoid changing fill colors)
|
|
252
|
+
</td>
|
|
253
|
+
</tr>
|
|
254
|
+
<tr className="border-b border-white/5">
|
|
255
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
256
|
+
onClick
|
|
257
|
+
</td>
|
|
258
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
259
|
+
function
|
|
260
|
+
</td>
|
|
261
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
262
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
+
Click handler for interactive use
|
|
264
|
+
</td>
|
|
265
|
+
</tr>
|
|
266
|
+
<tr className="!bg-black/10">
|
|
267
|
+
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
268
|
+
...svgProps
|
|
269
|
+
</td>
|
|
270
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
271
|
+
SVGProps
|
|
272
|
+
</td>
|
|
273
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
274
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
275
|
+
All standard SVG element props
|
|
276
|
+
</td>
|
|
277
|
+
</tr>
|
|
278
|
+
</tbody>
|
|
279
|
+
</table>
|
|
280
|
+
</div>
|
|
281
|
+
|
|
282
|
+
<div className="rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-4">
|
|
283
|
+
<div className="flex items-center gap-2 text-sm text-yellow-200">
|
|
284
|
+
<CoinIcon className="h-4 w-4" />
|
|
285
|
+
<span>
|
|
286
|
+
<strong>Note:</strong> CoinIcon uses predefined fill
|
|
287
|
+
colors for authentic golden appearance. Avoid overriding
|
|
288
|
+
fill colors to maintain visual consistency.
|
|
289
|
+
</span>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
{/* Size Variations */}
|
|
295
|
+
<div className="!space-y-8">
|
|
296
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
297
|
+
Size Variations
|
|
298
|
+
</h2>
|
|
299
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
300
|
+
<div className="!space-y-6">
|
|
301
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
302
|
+
<div className="!space-y-4">
|
|
303
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
304
|
+
Standard Sizes
|
|
305
|
+
</h3>
|
|
306
|
+
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
307
|
+
<div className="text-center">
|
|
308
|
+
<CoinIcon className="!mx-auto mb-2 h-3 w-3" />
|
|
309
|
+
<span className="text-xs text-white/60">12px</span>
|
|
310
|
+
</div>
|
|
311
|
+
<div className="text-center">
|
|
312
|
+
<CoinIcon className="!mx-auto mb-2 h-4 w-4" />
|
|
313
|
+
<span className="text-xs text-white/60">16px</span>
|
|
314
|
+
</div>
|
|
315
|
+
<div className="text-center">
|
|
316
|
+
<CoinIcon className="!mx-auto mb-2 h-5 w-5" />
|
|
317
|
+
<span className="text-xs text-white/60">20px</span>
|
|
318
|
+
</div>
|
|
319
|
+
<div className="text-center">
|
|
320
|
+
<CoinIcon className="!mx-auto mb-2 h-6 w-6" />
|
|
321
|
+
<span className="text-xs text-white/60">24px</span>
|
|
322
|
+
</div>
|
|
323
|
+
<div className="text-center">
|
|
324
|
+
<CoinIcon className="!mx-auto mb-2 h-8 w-8" />
|
|
325
|
+
<span className="text-xs text-white/60">32px</span>
|
|
326
|
+
</div>
|
|
327
|
+
<div className="text-center">
|
|
328
|
+
<CoinIcon className="!mx-auto mb-2 h-12 w-12" />
|
|
329
|
+
<span className="text-xs text-white/60">48px</span>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<div className="!space-y-4">
|
|
335
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
336
|
+
Code Example
|
|
337
|
+
</h3>
|
|
338
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
339
|
+
<pre className="overflow-x-auto text-sm !text-cyan-300">
|
|
340
|
+
{`// Small (16px) - inline currency
|
|
341
|
+
<CoinIcon className="h-4 w-4" />
|
|
342
|
+
|
|
343
|
+
// Medium (24px) - standard interface
|
|
344
|
+
<CoinIcon className="h-6 w-6" />
|
|
345
|
+
|
|
346
|
+
// Large (32px) - prominent displays
|
|
347
|
+
<CoinIcon className="h-8 w-8" />
|
|
348
|
+
|
|
349
|
+
// Custom size
|
|
350
|
+
<CoinIcon width={40} height={40} />`}
|
|
351
|
+
</pre>
|
|
352
|
+
</div>
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
|
|
359
|
+
{/* Color & Design */}
|
|
360
|
+
<div className="!space-y-8">
|
|
361
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
362
|
+
Design & Styling
|
|
363
|
+
</h2>
|
|
364
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
365
|
+
<div className="!space-y-4">
|
|
366
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
367
|
+
Built-in Golden Design
|
|
368
|
+
</h3>
|
|
369
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
370
|
+
<div className="flex items-center gap-4">
|
|
371
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black/30">
|
|
372
|
+
<CoinIcon className="h-8 w-8" />
|
|
373
|
+
</div>
|
|
374
|
+
<div>
|
|
375
|
+
<div className="text-sm font-medium text-white">
|
|
376
|
+
Authentic Golden Color
|
|
377
|
+
</div>
|
|
378
|
+
<div className="text-xs text-white/60">
|
|
379
|
+
#FFB340 base with shine overlay
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
</div>
|
|
383
|
+
<div className="flex items-center gap-4">
|
|
384
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-white/5">
|
|
385
|
+
<CoinIcon className="h-8 w-8" />
|
|
386
|
+
</div>
|
|
387
|
+
<div>
|
|
388
|
+
<div className="text-sm font-medium text-white">
|
|
389
|
+
Dimensional Shine
|
|
390
|
+
</div>
|
|
391
|
+
<div className="text-xs text-white/60">
|
|
392
|
+
#FFF5C6 highlight for depth
|
|
393
|
+
</div>
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
<div className="flex items-center gap-4">
|
|
397
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-yellow-500/10">
|
|
398
|
+
<CoinIcon className="h-8 w-8" />
|
|
399
|
+
</div>
|
|
400
|
+
<div>
|
|
401
|
+
<div className="text-sm font-medium text-white">
|
|
402
|
+
Currency Symbol
|
|
403
|
+
</div>
|
|
404
|
+
<div className="text-xs text-white/60">
|
|
405
|
+
#FFFAE8 detail for recognition
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
</div>
|
|
410
|
+
</div>
|
|
411
|
+
|
|
412
|
+
<div className="!space-y-4">
|
|
413
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
414
|
+
Usage Guidelines
|
|
415
|
+
</h3>
|
|
416
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
417
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
418
|
+
{`// Recommended usage
|
|
419
|
+
<CoinIcon className="h-5 w-5" />
|
|
420
|
+
|
|
421
|
+
// With balance display
|
|
422
|
+
<div className="flex items-center gap-2">
|
|
423
|
+
<CoinIcon className="h-4 w-4" />
|
|
424
|
+
<span className="text-yellow-400">1,247</span>
|
|
425
|
+
</div>
|
|
426
|
+
|
|
427
|
+
// Interactive coin button
|
|
428
|
+
<button
|
|
429
|
+
className="flex items-center gap-2 p-2 rounded-lg
|
|
430
|
+
hover:bg-yellow-500/10 transition-colors"
|
|
431
|
+
>
|
|
432
|
+
<CoinIcon className="h-5 w-5" />
|
|
433
|
+
<span>Earn Coins</span>
|
|
434
|
+
</button>
|
|
435
|
+
|
|
436
|
+
// Avoid overriding colors
|
|
437
|
+
// ❌ Don't do this:
|
|
438
|
+
<CoinIcon style={{ fill: 'red' }} />
|
|
439
|
+
|
|
440
|
+
// ✅ Use as designed:
|
|
441
|
+
<CoinIcon className="h-6 w-6" />`}
|
|
442
|
+
</pre>
|
|
443
|
+
</div>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
</div>
|
|
447
|
+
|
|
448
|
+
{/* Usage Examples */}
|
|
449
|
+
<div className="!space-y-8">
|
|
450
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
451
|
+
Usage Examples
|
|
452
|
+
</h2>
|
|
453
|
+
|
|
454
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
455
|
+
{/* Wallet Interface */}
|
|
456
|
+
<div className="!space-y-4">
|
|
457
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
458
|
+
Digital Wallet
|
|
459
|
+
</h3>
|
|
460
|
+
<div className="!space-y-4">
|
|
461
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
462
|
+
<div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
|
|
463
|
+
<div className="border-b border-white/10 bg-gradient-to-r from-yellow-500/20 to-amber-500/20 p-4">
|
|
464
|
+
<div className="flex items-center justify-between">
|
|
465
|
+
<div>
|
|
466
|
+
<h4 className="text-lg font-semibold text-white">
|
|
467
|
+
My Wallet
|
|
468
|
+
</h4>
|
|
469
|
+
<p className="text-sm text-white/60">
|
|
470
|
+
Digital currency balance
|
|
471
|
+
</p>
|
|
472
|
+
</div>
|
|
473
|
+
<div className="flex items-center gap-2">
|
|
474
|
+
<CoinIcon className="h-6 w-6" />
|
|
475
|
+
<span className="text-xl font-bold text-yellow-300">
|
|
476
|
+
2,847
|
|
477
|
+
</span>
|
|
478
|
+
</div>
|
|
479
|
+
</div>
|
|
480
|
+
</div>
|
|
481
|
+
<div className="space-y-4 p-4">
|
|
482
|
+
<div className="flex items-center justify-between">
|
|
483
|
+
<div className="flex items-center gap-3">
|
|
484
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-green-500/20">
|
|
485
|
+
<span className="text-sm text-green-400">
|
|
486
|
+
+
|
|
487
|
+
</span>
|
|
488
|
+
</div>
|
|
489
|
+
<div>
|
|
490
|
+
<div className="text-sm font-medium text-white">
|
|
491
|
+
Daily Bonus
|
|
492
|
+
</div>
|
|
493
|
+
<div className="text-xs text-white/60">
|
|
494
|
+
Earned today
|
|
495
|
+
</div>
|
|
496
|
+
</div>
|
|
497
|
+
</div>
|
|
498
|
+
<div className="flex items-center gap-1">
|
|
499
|
+
<CoinIcon className="h-4 w-4" />
|
|
500
|
+
<span className="font-medium text-green-400">
|
|
501
|
+
+50
|
|
502
|
+
</span>
|
|
503
|
+
</div>
|
|
504
|
+
</div>
|
|
505
|
+
<div className="flex items-center justify-between">
|
|
506
|
+
<div className="flex items-center gap-3">
|
|
507
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-blue-500/20">
|
|
508
|
+
<span className="text-sm text-blue-400">
|
|
509
|
+
🎯
|
|
510
|
+
</span>
|
|
511
|
+
</div>
|
|
512
|
+
<div>
|
|
513
|
+
<div className="text-sm font-medium text-white">
|
|
514
|
+
Quest Reward
|
|
515
|
+
</div>
|
|
516
|
+
<div className="text-xs text-white/60">
|
|
517
|
+
Challenge completed
|
|
518
|
+
</div>
|
|
519
|
+
</div>
|
|
520
|
+
</div>
|
|
521
|
+
<div className="flex items-center gap-1">
|
|
522
|
+
<CoinIcon className="h-4 w-4" />
|
|
523
|
+
<span className="font-medium text-blue-400">
|
|
524
|
+
+125
|
|
525
|
+
</span>
|
|
526
|
+
</div>
|
|
527
|
+
</div>
|
|
528
|
+
<div className="flex items-center justify-between">
|
|
529
|
+
<div className="flex items-center gap-3">
|
|
530
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-red-500/20">
|
|
531
|
+
<span className="text-sm text-red-400">
|
|
532
|
+
-
|
|
533
|
+
</span>
|
|
534
|
+
</div>
|
|
535
|
+
<div>
|
|
536
|
+
<div className="text-sm font-medium text-white">
|
|
537
|
+
Store Purchase
|
|
538
|
+
</div>
|
|
539
|
+
<div className="text-xs text-white/60">
|
|
540
|
+
Power-up bought
|
|
541
|
+
</div>
|
|
542
|
+
</div>
|
|
543
|
+
</div>
|
|
544
|
+
<div className="flex items-center gap-1">
|
|
545
|
+
<CoinIcon className="h-4 w-4" />
|
|
546
|
+
<span className="font-medium text-red-400">
|
|
547
|
+
-75
|
|
548
|
+
</span>
|
|
549
|
+
</div>
|
|
550
|
+
</div>
|
|
551
|
+
</div>
|
|
552
|
+
</div>
|
|
553
|
+
</div>
|
|
554
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
555
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
556
|
+
{`// Digital wallet interface
|
|
557
|
+
<div className="wallet-header">
|
|
558
|
+
<div className="wallet-info">
|
|
559
|
+
<h3>My Wallet</h3>
|
|
560
|
+
<p>Digital currency balance</p>
|
|
561
|
+
</div>
|
|
562
|
+
<div className="balance-display">
|
|
563
|
+
<CoinIcon className="h-6 w-6" />
|
|
564
|
+
<span className="balance">{balance}</span>
|
|
565
|
+
</div>
|
|
566
|
+
</div>
|
|
567
|
+
<div className="transaction-list">
|
|
568
|
+
{transactions.map(transaction => (
|
|
569
|
+
<div key={transaction.id} className="transaction-item">
|
|
570
|
+
<TransactionIcon type={transaction.type} />
|
|
571
|
+
<TransactionDetails transaction={transaction} />
|
|
572
|
+
<div className="coin-amount">
|
|
573
|
+
<CoinIcon className="h-4 w-4" />
|
|
574
|
+
<span className={transaction.type === 'earned' ? 'text-green' : 'text-red'}>
|
|
575
|
+
{transaction.type === 'earned' ? '+' : '-'}{transaction.amount}
|
|
576
|
+
</span>
|
|
577
|
+
</div>
|
|
578
|
+
</div>
|
|
579
|
+
))}
|
|
580
|
+
</div>`}
|
|
581
|
+
</pre>
|
|
582
|
+
</div>
|
|
583
|
+
</div>
|
|
584
|
+
</div>
|
|
585
|
+
|
|
586
|
+
{/* Game Store */}
|
|
587
|
+
<div className="!space-y-4">
|
|
588
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
589
|
+
Game Store
|
|
590
|
+
</h3>
|
|
591
|
+
<div className="!space-y-4">
|
|
592
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
593
|
+
<div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
|
|
594
|
+
<div className="border-b border-white/10 bg-white/5 p-4">
|
|
595
|
+
<div className="flex items-center justify-between">
|
|
596
|
+
<h4 className="text-lg font-semibold text-white">
|
|
597
|
+
Item Shop
|
|
598
|
+
</h4>
|
|
599
|
+
<div className="flex items-center gap-2 rounded-lg border border-yellow-500/30 bg-yellow-500/20 px-3 py-1">
|
|
600
|
+
<CoinIcon className="h-4 w-4" />
|
|
601
|
+
<span className="font-medium text-yellow-300">
|
|
602
|
+
2,847
|
|
603
|
+
</span>
|
|
604
|
+
</div>
|
|
605
|
+
</div>
|
|
606
|
+
</div>
|
|
607
|
+
<div className="grid grid-cols-2 gap-3 p-4">
|
|
608
|
+
<div className="rounded-lg border border-white/10 bg-black/30 p-3">
|
|
609
|
+
<div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-purple-500/20">
|
|
610
|
+
<span className="text-2xl">⚔️</span>
|
|
611
|
+
</div>
|
|
612
|
+
<div className="mb-1 text-sm font-medium text-white">
|
|
613
|
+
Epic Sword
|
|
614
|
+
</div>
|
|
615
|
+
<div className="flex items-center justify-between">
|
|
616
|
+
<div className="flex items-center gap-1">
|
|
617
|
+
<CoinIcon className="h-3 w-3" />
|
|
618
|
+
<span className="text-xs text-yellow-400">
|
|
619
|
+
500
|
|
620
|
+
</span>
|
|
621
|
+
</div>
|
|
622
|
+
<button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
|
|
623
|
+
Buy
|
|
624
|
+
</button>
|
|
625
|
+
</div>
|
|
626
|
+
</div>
|
|
627
|
+
<div className="rounded-lg border border-white/10 bg-black/30 p-3">
|
|
628
|
+
<div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-blue-500/20">
|
|
629
|
+
<span className="text-2xl">🛡️</span>
|
|
630
|
+
</div>
|
|
631
|
+
<div className="mb-1 text-sm font-medium text-white">
|
|
632
|
+
Magic Shield
|
|
633
|
+
</div>
|
|
634
|
+
<div className="flex items-center justify-between">
|
|
635
|
+
<div className="flex items-center gap-1">
|
|
636
|
+
<CoinIcon className="h-3 w-3" />
|
|
637
|
+
<span className="text-xs text-yellow-400">
|
|
638
|
+
350
|
|
639
|
+
</span>
|
|
640
|
+
</div>
|
|
641
|
+
<button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
|
|
642
|
+
Buy
|
|
643
|
+
</button>
|
|
644
|
+
</div>
|
|
645
|
+
</div>
|
|
646
|
+
<div className="rounded-lg border border-white/10 bg-black/30 p-3">
|
|
647
|
+
<div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-green-500/20">
|
|
648
|
+
<span className="text-2xl">🧪</span>
|
|
649
|
+
</div>
|
|
650
|
+
<div className="mb-1 text-sm font-medium text-white">
|
|
651
|
+
Health Potion
|
|
652
|
+
</div>
|
|
653
|
+
<div className="flex items-center justify-between">
|
|
654
|
+
<div className="flex items-center gap-1">
|
|
655
|
+
<CoinIcon className="h-3 w-3" />
|
|
656
|
+
<span className="text-xs text-yellow-400">
|
|
657
|
+
25
|
|
658
|
+
</span>
|
|
659
|
+
</div>
|
|
660
|
+
<button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-2 py-1 text-xs text-yellow-300 transition-colors hover:bg-yellow-500/30">
|
|
661
|
+
Buy
|
|
662
|
+
</button>
|
|
663
|
+
</div>
|
|
664
|
+
</div>
|
|
665
|
+
<div className="rounded-lg border border-white/10 bg-black/30 p-3">
|
|
666
|
+
<div className="mb-2 flex aspect-square w-full items-center justify-center rounded bg-red-500/20">
|
|
667
|
+
<span className="text-2xl">💎</span>
|
|
668
|
+
</div>
|
|
669
|
+
<div className="mb-1 text-sm font-medium text-white">
|
|
670
|
+
Rare Gem
|
|
671
|
+
</div>
|
|
672
|
+
<div className="flex items-center justify-between">
|
|
673
|
+
<div className="flex items-center gap-1">
|
|
674
|
+
<CoinIcon className="h-3 w-3" />
|
|
675
|
+
<span className="text-xs text-yellow-400">
|
|
676
|
+
1,200
|
|
677
|
+
</span>
|
|
678
|
+
</div>
|
|
679
|
+
<button className="rounded border border-red-500/30 bg-red-500/20 px-2 py-1 text-xs text-red-300">
|
|
680
|
+
Insufficient
|
|
681
|
+
</button>
|
|
682
|
+
</div>
|
|
683
|
+
</div>
|
|
684
|
+
</div>
|
|
685
|
+
</div>
|
|
686
|
+
</div>
|
|
687
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
688
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
689
|
+
{`// Game store with coin pricing
|
|
690
|
+
<div className="store-header">
|
|
691
|
+
<h3>Item Shop</h3>
|
|
692
|
+
<div className="player-balance">
|
|
693
|
+
<CoinIcon className="h-4 w-4" />
|
|
694
|
+
<span>{playerCoins}</span>
|
|
695
|
+
</div>
|
|
696
|
+
</div>
|
|
697
|
+
<div className="item-grid">
|
|
698
|
+
{storeItems.map(item => (
|
|
699
|
+
<div key={item.id} className="store-item">
|
|
700
|
+
<ItemIcon item={item} />
|
|
701
|
+
<div className="item-name">{item.name}</div>
|
|
702
|
+
<div className="item-footer">
|
|
703
|
+
<div className="item-price">
|
|
704
|
+
<CoinIcon className="h-3 w-3" />
|
|
705
|
+
<span>{item.price}</span>
|
|
706
|
+
</div>
|
|
707
|
+
<button
|
|
708
|
+
className={playerCoins >= item.price ? 'buy-btn' : 'insufficient-btn'}
|
|
709
|
+
disabled={playerCoins < item.price}
|
|
710
|
+
onClick={() => purchaseItem(item)}
|
|
711
|
+
>
|
|
712
|
+
{playerCoins >= item.price ? 'Buy' : 'Insufficient'}
|
|
713
|
+
</button>
|
|
714
|
+
</div>
|
|
715
|
+
</div>
|
|
716
|
+
))}
|
|
717
|
+
</div>`}
|
|
718
|
+
</pre>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
</div>
|
|
722
|
+
|
|
723
|
+
{/* Rewards Dashboard */}
|
|
724
|
+
<div className="!space-y-4">
|
|
725
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
726
|
+
Rewards Dashboard
|
|
727
|
+
</h3>
|
|
728
|
+
<div className="!space-y-4">
|
|
729
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
730
|
+
<div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
|
|
731
|
+
<div className="border-b border-white/10 bg-gradient-to-r from-purple-500/20 to-yellow-500/20 p-4">
|
|
732
|
+
<h4 className="mb-2 text-lg font-semibold text-white">
|
|
733
|
+
Daily Challenges
|
|
734
|
+
</h4>
|
|
735
|
+
<div className="text-sm text-white/60">
|
|
736
|
+
Complete tasks to earn coins
|
|
737
|
+
</div>
|
|
738
|
+
</div>
|
|
739
|
+
<div className="space-y-3 p-4">
|
|
740
|
+
<div className="flex items-center justify-between rounded-lg border border-green-500/20 bg-green-500/10 p-3">
|
|
741
|
+
<div className="flex items-center gap-3">
|
|
742
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-green-500/20">
|
|
743
|
+
<span className="text-sm text-green-400">
|
|
744
|
+
✓
|
|
745
|
+
</span>
|
|
746
|
+
</div>
|
|
747
|
+
<div>
|
|
748
|
+
<div className="text-sm font-medium text-white">
|
|
749
|
+
Login Streak
|
|
750
|
+
</div>
|
|
751
|
+
<div className="text-xs text-green-400">
|
|
752
|
+
Completed
|
|
753
|
+
</div>
|
|
754
|
+
</div>
|
|
755
|
+
</div>
|
|
756
|
+
<div className="flex items-center gap-1">
|
|
757
|
+
<CoinIcon className="h-4 w-4" />
|
|
758
|
+
<span className="font-medium text-green-400">
|
|
759
|
+
+10
|
|
760
|
+
</span>
|
|
761
|
+
</div>
|
|
762
|
+
</div>
|
|
763
|
+
<div className="flex items-center justify-between rounded-lg border border-blue-500/20 bg-blue-500/10 p-3">
|
|
764
|
+
<div className="flex items-center gap-3">
|
|
765
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-blue-500/20">
|
|
766
|
+
<span className="text-sm text-blue-400">
|
|
767
|
+
2/3
|
|
768
|
+
</span>
|
|
769
|
+
</div>
|
|
770
|
+
<div>
|
|
771
|
+
<div className="text-sm font-medium text-white">
|
|
772
|
+
Share Content
|
|
773
|
+
</div>
|
|
774
|
+
<div className="text-xs text-blue-400">
|
|
775
|
+
2 of 3 shares
|
|
776
|
+
</div>
|
|
777
|
+
</div>
|
|
778
|
+
</div>
|
|
779
|
+
<div className="flex items-center gap-1">
|
|
780
|
+
<CoinIcon className="h-4 w-4" />
|
|
781
|
+
<span className="font-medium text-yellow-400">
|
|
782
|
+
25
|
|
783
|
+
</span>
|
|
784
|
+
</div>
|
|
785
|
+
</div>
|
|
786
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
787
|
+
<div className="flex items-center gap-3">
|
|
788
|
+
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-white/10">
|
|
789
|
+
<span className="text-sm text-white/60">
|
|
790
|
+
0/5
|
|
791
|
+
</span>
|
|
792
|
+
</div>
|
|
793
|
+
<div>
|
|
794
|
+
<div className="text-sm font-medium text-white">
|
|
795
|
+
Invite Friends
|
|
796
|
+
</div>
|
|
797
|
+
<div className="text-xs text-white/60">
|
|
798
|
+
0 of 5 invites
|
|
799
|
+
</div>
|
|
800
|
+
</div>
|
|
801
|
+
</div>
|
|
802
|
+
<div className="flex items-center gap-1">
|
|
803
|
+
<CoinIcon className="h-4 w-4" />
|
|
804
|
+
<span className="font-medium text-yellow-400">
|
|
805
|
+
100
|
|
806
|
+
</span>
|
|
807
|
+
</div>
|
|
808
|
+
</div>
|
|
809
|
+
</div>
|
|
810
|
+
</div>
|
|
811
|
+
</div>
|
|
812
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
813
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
814
|
+
{`// Rewards and challenges dashboard
|
|
815
|
+
<div className="challenges-dashboard">
|
|
816
|
+
<div className="dashboard-header">
|
|
817
|
+
<h3>Daily Challenges</h3>
|
|
818
|
+
<p>Complete tasks to earn coins</p>
|
|
819
|
+
</div>
|
|
820
|
+
<div className="challenges-list">
|
|
821
|
+
{challenges.map(challenge => (
|
|
822
|
+
<div
|
|
823
|
+
key={challenge.id}
|
|
824
|
+
className={challenge.completed ? 'challenge-completed' : 'challenge-active'}
|
|
825
|
+
>
|
|
826
|
+
<ChallengeIcon
|
|
827
|
+
progress={challenge.progress}
|
|
828
|
+
total={challenge.total}
|
|
829
|
+
completed={challenge.completed}
|
|
830
|
+
/>
|
|
831
|
+
<div className="challenge-info">
|
|
832
|
+
<div className="challenge-title">{challenge.title}</div>
|
|
833
|
+
<div className="challenge-progress">
|
|
834
|
+
{challenge.progress} of {challenge.total} {challenge.unit}
|
|
835
|
+
</div>
|
|
836
|
+
</div>
|
|
837
|
+
<div className="challenge-reward">
|
|
838
|
+
<CoinIcon className="h-4 w-4" />
|
|
839
|
+
<span className="reward-amount">{challenge.reward}</span>
|
|
840
|
+
</div>
|
|
841
|
+
</div>
|
|
842
|
+
))}
|
|
843
|
+
</div>
|
|
844
|
+
</div>`}
|
|
845
|
+
</pre>
|
|
846
|
+
</div>
|
|
847
|
+
</div>
|
|
848
|
+
</div>
|
|
849
|
+
|
|
850
|
+
{/* E-commerce Pricing */}
|
|
851
|
+
<div className="!space-y-4">
|
|
852
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
853
|
+
E-commerce Integration
|
|
854
|
+
</h3>
|
|
855
|
+
<div className="!space-y-4">
|
|
856
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
857
|
+
<div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
|
|
858
|
+
<div className="border-b border-white/10 bg-white/5 p-4">
|
|
859
|
+
<h4 className="text-lg font-semibold text-white">
|
|
860
|
+
Premium Membership
|
|
861
|
+
</h4>
|
|
862
|
+
<p className="text-sm text-white/60">
|
|
863
|
+
Unlock exclusive features and benefits
|
|
864
|
+
</p>
|
|
865
|
+
</div>
|
|
866
|
+
<div className="space-y-4 p-6">
|
|
867
|
+
<div className="grid grid-cols-3 gap-4">
|
|
868
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
869
|
+
<div className="mb-1 text-2xl font-bold text-white">
|
|
870
|
+
Basic
|
|
871
|
+
</div>
|
|
872
|
+
<div className="mb-2 flex items-center justify-center gap-1">
|
|
873
|
+
<CoinIcon className="h-4 w-4" />
|
|
874
|
+
<span className="font-medium text-yellow-400">
|
|
875
|
+
Free
|
|
876
|
+
</span>
|
|
877
|
+
</div>
|
|
878
|
+
<ul className="space-y-1 text-xs text-white/60">
|
|
879
|
+
<li>Limited features</li>
|
|
880
|
+
<li>Basic support</li>
|
|
881
|
+
</ul>
|
|
882
|
+
</div>
|
|
883
|
+
<div className="rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-4 text-center">
|
|
884
|
+
<div className="mb-1 text-2xl font-bold text-white">
|
|
885
|
+
Pro
|
|
886
|
+
</div>
|
|
887
|
+
<div className="mb-2 flex items-center justify-center gap-1">
|
|
888
|
+
<CoinIcon className="h-4 w-4" />
|
|
889
|
+
<span className="font-medium text-yellow-400">
|
|
890
|
+
299/mo
|
|
891
|
+
</span>
|
|
892
|
+
</div>
|
|
893
|
+
<ul className="space-y-1 text-xs text-white/60">
|
|
894
|
+
<li>Advanced features</li>
|
|
895
|
+
<li>Priority support</li>
|
|
896
|
+
</ul>
|
|
897
|
+
</div>
|
|
898
|
+
<div className="rounded-lg border border-purple-500/30 bg-purple-500/10 p-4 text-center">
|
|
899
|
+
<div className="mb-1 text-2xl font-bold text-white">
|
|
900
|
+
Enterprise
|
|
901
|
+
</div>
|
|
902
|
+
<div className="mb-2 flex items-center justify-center gap-1">
|
|
903
|
+
<CoinIcon className="h-4 w-4" />
|
|
904
|
+
<span className="font-medium text-yellow-400">
|
|
905
|
+
999/mo
|
|
906
|
+
</span>
|
|
907
|
+
</div>
|
|
908
|
+
<ul className="space-y-1 text-xs text-white/60">
|
|
909
|
+
<li>All features</li>
|
|
910
|
+
<li>24/7 support</li>
|
|
911
|
+
</ul>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<div className="text-center">
|
|
915
|
+
<button className="rounded-lg border border-yellow-500/30 bg-yellow-500/20 px-6 py-2 text-yellow-300 transition-colors hover:bg-yellow-500/30">
|
|
916
|
+
Choose Plan
|
|
917
|
+
</button>
|
|
918
|
+
</div>
|
|
919
|
+
</div>
|
|
920
|
+
</div>
|
|
921
|
+
</div>
|
|
922
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
923
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
924
|
+
{`// E-commerce pricing with coin display
|
|
925
|
+
<div className="pricing-plans">
|
|
926
|
+
<div className="pricing-header">
|
|
927
|
+
<h3>Premium Membership</h3>
|
|
928
|
+
<p>Unlock exclusive features and benefits</p>
|
|
929
|
+
</div>
|
|
930
|
+
<div className="plans-grid">
|
|
931
|
+
{pricingPlans.map(plan => (
|
|
932
|
+
<div
|
|
933
|
+
key={plan.id}
|
|
934
|
+
className={plan.featured ? 'plan-featured' : 'plan-standard'}
|
|
935
|
+
>
|
|
936
|
+
<div className="plan-name">{plan.name}</div>
|
|
937
|
+
<div className="plan-price">
|
|
938
|
+
<CoinIcon className="h-4 w-4" />
|
|
939
|
+
<span className="price-amount">
|
|
940
|
+
{plan.price === 0 ? 'Free' : plan.price + '/mo'}
|
|
941
|
+
</span>
|
|
942
|
+
</div>
|
|
943
|
+
<ul className="plan-features">
|
|
944
|
+
{plan.features.map(feature => (
|
|
945
|
+
<li key={feature}>{feature}</li>
|
|
946
|
+
))}
|
|
947
|
+
</ul>
|
|
948
|
+
<button
|
|
949
|
+
className="plan-cta"
|
|
950
|
+
onClick={() => selectPlan(plan)}
|
|
951
|
+
>
|
|
952
|
+
Choose Plan
|
|
953
|
+
</button>
|
|
954
|
+
</div>
|
|
955
|
+
))}
|
|
956
|
+
</div>
|
|
957
|
+
</div>`}
|
|
958
|
+
</pre>
|
|
959
|
+
</div>
|
|
960
|
+
</div>
|
|
961
|
+
</div>
|
|
962
|
+
</div>
|
|
963
|
+
</div>
|
|
964
|
+
|
|
965
|
+
{/* Accessibility */}
|
|
966
|
+
<div className="!space-y-8">
|
|
967
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
968
|
+
Accessibility Features
|
|
969
|
+
</h2>
|
|
970
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
971
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
972
|
+
<h3 className="text-lg font-semibold !text-green-300">
|
|
973
|
+
✅ Built-in Features
|
|
974
|
+
</h3>
|
|
975
|
+
<ul className="!space-y-2 text-sm !text-white/70">
|
|
976
|
+
<li className="!text-white/70">
|
|
977
|
+
Uses Radix UI AccessibleIcon wrapper
|
|
978
|
+
</li>
|
|
979
|
+
<li className="!text-white/70">
|
|
980
|
+
Provides screen reader label "Coin icon"
|
|
981
|
+
</li>
|
|
982
|
+
<li className="!text-white/70">
|
|
983
|
+
Supports keyboard navigation when interactive
|
|
984
|
+
</li>
|
|
985
|
+
<li className="!text-white/70">
|
|
986
|
+
High contrast golden colors for visibility
|
|
987
|
+
</li>
|
|
988
|
+
<li className="!text-white/70">
|
|
989
|
+
Consistent visual design across all sizes
|
|
990
|
+
</li>
|
|
991
|
+
</ul>
|
|
992
|
+
</div>
|
|
993
|
+
|
|
994
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
995
|
+
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
996
|
+
💡 Best Practices
|
|
997
|
+
</h3>
|
|
998
|
+
<ul className="!space-y-2 text-sm text-white/70">
|
|
999
|
+
<li className="!text-white/70">
|
|
1000
|
+
Always pair with numerical values for context
|
|
1001
|
+
</li>
|
|
1002
|
+
<li className="!text-white/70">
|
|
1003
|
+
Use consistent coin terminology across the interface
|
|
1004
|
+
</li>
|
|
1005
|
+
<li className="!text-white/70">
|
|
1006
|
+
Provide clear labels for coin-based interactions
|
|
1007
|
+
</li>
|
|
1008
|
+
<li className="!text-white/70">
|
|
1009
|
+
Consider currency exchange rates for international users
|
|
1010
|
+
</li>
|
|
1011
|
+
<li className="!text-white/70">
|
|
1012
|
+
Implement proper error handling for insufficient funds
|
|
1013
|
+
</li>
|
|
1014
|
+
</ul>
|
|
1015
|
+
</div>
|
|
1016
|
+
</div>
|
|
1017
|
+
|
|
1018
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
1019
|
+
<h3 className="mb-4 text-lg font-semibold !text-blue-300">
|
|
1020
|
+
Proper ARIA Implementation
|
|
1021
|
+
</h3>
|
|
1022
|
+
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
1023
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
1024
|
+
<pre className="overflow-x-auto text-sm !text-cyan-300">
|
|
1025
|
+
{`// Wallet balance display
|
|
1026
|
+
<div className="balance-display">
|
|
1027
|
+
<CoinIcon
|
|
1028
|
+
className="h-5 w-5"
|
|
1029
|
+
aria-hidden="true"
|
|
1030
|
+
/>
|
|
1031
|
+
<span
|
|
1032
|
+
aria-label={balance + " coins in wallet"}
|
|
1033
|
+
className="balance-amount"
|
|
1034
|
+
>
|
|
1035
|
+
{balance}
|
|
1036
|
+
</span>
|
|
1037
|
+
</div>
|
|
1038
|
+
|
|
1039
|
+
// Interactive coin button
|
|
1040
|
+
<button
|
|
1041
|
+
aria-label={"Purchase item for " + price + " coins"}
|
|
1042
|
+
aria-describedby="coin-balance"
|
|
1043
|
+
onClick={handlePurchase}
|
|
1044
|
+
disabled={balance < price}
|
|
1045
|
+
>
|
|
1046
|
+
<CoinIcon className="h-4 w-4" />
|
|
1047
|
+
<span>{price}</span>
|
|
1048
|
+
</button>
|
|
1049
|
+
<div id="coin-balance" className="sr-only">
|
|
1050
|
+
Current balance: {balance} coins
|
|
1051
|
+
</div>
|
|
1052
|
+
|
|
1053
|
+
// Reward notification
|
|
1054
|
+
<div
|
|
1055
|
+
role="alert"
|
|
1056
|
+
aria-live="polite"
|
|
1057
|
+
className="reward-notification"
|
|
1058
|
+
>
|
|
1059
|
+
<CoinIcon className="h-4 w-4" />
|
|
1060
|
+
<span>You earned {rewardAmount} coins!</span>
|
|
1061
|
+
</div>
|
|
1062
|
+
|
|
1063
|
+
// Store item pricing
|
|
1064
|
+
<div className="store-item">
|
|
1065
|
+
<ItemImage />
|
|
1066
|
+
<div className="item-details">
|
|
1067
|
+
<h3>{item.name}</h3>
|
|
1068
|
+
<div
|
|
1069
|
+
className="item-price"
|
|
1070
|
+
aria-label={"Price: " + item.price + " coins"}
|
|
1071
|
+
>
|
|
1072
|
+
<CoinIcon className="h-3 w-3" />
|
|
1073
|
+
<span>{item.price}</span>
|
|
1074
|
+
</div>
|
|
1075
|
+
</div>
|
|
1076
|
+
</div>`}
|
|
1077
|
+
</pre>
|
|
1078
|
+
</div>
|
|
1079
|
+
<div className="!space-y-4">
|
|
1080
|
+
<p className="text-sm !text-white/70">
|
|
1081
|
+
When using CoinIcon for financial displays, always
|
|
1082
|
+
provide clear context about the currency value and
|
|
1083
|
+
ensure users understand the monetary implications of
|
|
1084
|
+
their actions.
|
|
1085
|
+
</p>
|
|
1086
|
+
<div className="rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-4">
|
|
1087
|
+
<div className="flex items-center gap-2 text-sm text-yellow-200">
|
|
1088
|
+
<CoinIcon className="h-4 w-4" />
|
|
1089
|
+
<span>
|
|
1090
|
+
Always announce balance changes and transaction
|
|
1091
|
+
results to screen readers
|
|
1092
|
+
</span>
|
|
1093
|
+
</div>
|
|
1094
|
+
</div>
|
|
1095
|
+
</div>
|
|
1096
|
+
</div>
|
|
1097
|
+
</div>
|
|
1098
|
+
</div>
|
|
1099
|
+
|
|
1100
|
+
{/* Related Icons */}
|
|
1101
|
+
<div className="!space-y-8">
|
|
1102
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
1103
|
+
Related Icons
|
|
1104
|
+
</h2>
|
|
1105
|
+
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
1106
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
1107
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
1108
|
+
<span className="!text-2xl !text-white">💳</span>
|
|
1109
|
+
</div>
|
|
1110
|
+
<div>
|
|
1111
|
+
<div className="font-medium text-white">
|
|
1112
|
+
CreditCardIcon
|
|
1113
|
+
</div>
|
|
1114
|
+
<div className="text-xs text-white/60">
|
|
1115
|
+
Payment method
|
|
1116
|
+
</div>
|
|
1117
|
+
</div>
|
|
1118
|
+
</div>
|
|
1119
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
1120
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
1121
|
+
<span className="!text-2xl !text-white">💰</span>
|
|
1122
|
+
</div>
|
|
1123
|
+
<div>
|
|
1124
|
+
<div className="font-medium text-white">WalletIcon</div>
|
|
1125
|
+
<div className="text-xs text-white/60">
|
|
1126
|
+
Digital wallet
|
|
1127
|
+
</div>
|
|
1128
|
+
</div>
|
|
1129
|
+
</div>
|
|
1130
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
1131
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
1132
|
+
<span className="!text-2xl !text-white">🏆</span>
|
|
1133
|
+
</div>
|
|
1134
|
+
<div>
|
|
1135
|
+
<div className="font-medium text-white">TrophyIcon</div>
|
|
1136
|
+
<div className="text-xs text-white/60">
|
|
1137
|
+
Achievement reward
|
|
1138
|
+
</div>
|
|
1139
|
+
</div>
|
|
1140
|
+
</div>
|
|
1141
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
1142
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
|
|
1143
|
+
<span className="!text-2xl !text-white">🛒</span>
|
|
1144
|
+
</div>
|
|
1145
|
+
<div>
|
|
1146
|
+
<div className="font-medium text-white">ShoppingIcon</div>
|
|
1147
|
+
<div className="text-xs text-white/60">
|
|
1148
|
+
Purchase items
|
|
1149
|
+
</div>
|
|
1150
|
+
</div>
|
|
1151
|
+
</div>
|
|
1152
|
+
</div>
|
|
1153
|
+
</div>
|
|
1154
|
+
</div>
|
|
1155
|
+
|
|
1156
|
+
{/* Footer */}
|
|
1157
|
+
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
1158
|
+
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
1159
|
+
<div className="!space-y-4 text-center">
|
|
1160
|
+
<p className="!text-white/60">
|
|
1161
|
+
CoinIcon is part of the Aural UI icon library, built with
|
|
1162
|
+
accessibility and financial interface best practices in
|
|
1163
|
+
mind.
|
|
1164
|
+
</p>
|
|
1165
|
+
<p className="text-sm !text-white/40">
|
|
1166
|
+
All icons use Radix UI's AccessibleIcon for screen reader
|
|
1167
|
+
compatibility and follow WCAG guidelines for monetary
|
|
1168
|
+
displays and transaction interfaces.
|
|
1169
|
+
</p>
|
|
1170
|
+
</div>
|
|
1171
|
+
</div>
|
|
1172
|
+
</div>
|
|
1173
|
+
</div>
|
|
1174
|
+
</>
|
|
1175
|
+
),
|
|
1176
|
+
},
|
|
1177
|
+
},
|
|
1178
|
+
tags: ["autodocs"],
|
|
1179
|
+
argTypes: {
|
|
1180
|
+
width: {
|
|
1181
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1182
|
+
description: "Width of the icon in pixels",
|
|
1183
|
+
},
|
|
1184
|
+
height: {
|
|
1185
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1186
|
+
description: "Height of the icon in pixels",
|
|
1187
|
+
},
|
|
1188
|
+
className: {
|
|
1189
|
+
control: "text",
|
|
1190
|
+
description: "CSS classes for styling (use for size overrides)",
|
|
1191
|
+
},
|
|
1192
|
+
onClick: {
|
|
1193
|
+
action: "clicked",
|
|
1194
|
+
description: "Click handler for interactive use",
|
|
1195
|
+
},
|
|
1196
|
+
},
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
export default meta
|
|
1200
|
+
type Story = StoryObj<typeof CoinIcon>
|
|
1201
|
+
|
|
1202
|
+
// Story parameters for consistent dark theme
|
|
1203
|
+
const storyParameters = {
|
|
1204
|
+
backgrounds: {
|
|
1205
|
+
default: "dark",
|
|
1206
|
+
values: [
|
|
1207
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
1208
|
+
{ name: "darker", value: "#000000" },
|
|
1209
|
+
],
|
|
1210
|
+
},
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
export const Default: Story = {
|
|
1214
|
+
args: {
|
|
1215
|
+
className: "h-8 w-8",
|
|
1216
|
+
},
|
|
1217
|
+
parameters: storyParameters,
|
|
1218
|
+
render: (args) => (
|
|
1219
|
+
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1220
|
+
<CoinIcon {...args} />
|
|
1221
|
+
</div>
|
|
1222
|
+
),
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
export const SizeVariations: Story = {
|
|
1226
|
+
parameters: {
|
|
1227
|
+
...storyParameters,
|
|
1228
|
+
docs: {
|
|
1229
|
+
description: {
|
|
1230
|
+
story:
|
|
1231
|
+
"CoinIcon in different sizes, from small inline currency displays to large wallet interfaces.",
|
|
1232
|
+
},
|
|
1233
|
+
},
|
|
1234
|
+
},
|
|
1235
|
+
render: () => (
|
|
1236
|
+
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1237
|
+
<div className="text-center">
|
|
1238
|
+
<CoinIcon className="!mx-auto mb-2 h-3 w-3" />
|
|
1239
|
+
<span className="text-xs text-white/60">12px</span>
|
|
1240
|
+
</div>
|
|
1241
|
+
<div className="text-center">
|
|
1242
|
+
<CoinIcon className="!mx-auto mb-2 h-4 w-4" />
|
|
1243
|
+
<span className="text-xs text-white/60">16px</span>
|
|
1244
|
+
</div>
|
|
1245
|
+
<div className="text-center">
|
|
1246
|
+
<CoinIcon className="!mx-auto mb-2 h-5 w-5" />
|
|
1247
|
+
<span className="text-xs text-white/60">20px</span>
|
|
1248
|
+
</div>
|
|
1249
|
+
<div className="text-center">
|
|
1250
|
+
<CoinIcon className="!mx-auto mb-2 h-6 w-6" />
|
|
1251
|
+
<span className="text-xs text-white/60">24px</span>
|
|
1252
|
+
</div>
|
|
1253
|
+
<div className="text-center">
|
|
1254
|
+
<CoinIcon className="!mx-auto mb-2 h-8 w-8" />
|
|
1255
|
+
<span className="text-xs text-white/60">32px</span>
|
|
1256
|
+
</div>
|
|
1257
|
+
<div className="text-center">
|
|
1258
|
+
<CoinIcon className="!mx-auto mb-2 h-12 w-12" />
|
|
1259
|
+
<span className="text-xs text-white/60">48px</span>
|
|
1260
|
+
</div>
|
|
1261
|
+
</div>
|
|
1262
|
+
),
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
export const ContextualUsage: Story = {
|
|
1266
|
+
parameters: {
|
|
1267
|
+
...storyParameters,
|
|
1268
|
+
docs: {
|
|
1269
|
+
description: {
|
|
1270
|
+
story:
|
|
1271
|
+
"CoinIcon in different contextual applications showing its built-in golden design.",
|
|
1272
|
+
},
|
|
1273
|
+
},
|
|
1274
|
+
},
|
|
1275
|
+
render: () => (
|
|
1276
|
+
<div className="grid min-h-dvh grid-cols-1 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-3">
|
|
1277
|
+
<div className="text-center">
|
|
1278
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-yellow-500/30 bg-yellow-500/20">
|
|
1279
|
+
<CoinIcon className="h-8 w-8" />
|
|
1280
|
+
</div>
|
|
1281
|
+
<div className="text-sm font-medium text-white">Wallet Balance</div>
|
|
1282
|
+
<div className="text-xs text-yellow-400">Currency display</div>
|
|
1283
|
+
</div>
|
|
1284
|
+
<div className="text-center">
|
|
1285
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-amber-500/30 bg-amber-500/20">
|
|
1286
|
+
<CoinIcon className="h-8 w-8" />
|
|
1287
|
+
</div>
|
|
1288
|
+
<div className="text-sm font-medium text-white">Store Pricing</div>
|
|
1289
|
+
<div className="text-xs text-amber-400">E-commerce value</div>
|
|
1290
|
+
</div>
|
|
1291
|
+
<div className="text-center">
|
|
1292
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-orange-500/30 bg-orange-500/20">
|
|
1293
|
+
<CoinIcon className="h-8 w-8" />
|
|
1294
|
+
</div>
|
|
1295
|
+
<div className="text-sm font-medium text-white">Game Rewards</div>
|
|
1296
|
+
<div className="text-xs text-orange-400">Achievement system</div>
|
|
1297
|
+
</div>
|
|
1298
|
+
</div>
|
|
1299
|
+
),
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
export const UsageExamples: Story = {
|
|
1303
|
+
parameters: {
|
|
1304
|
+
...storyParameters,
|
|
1305
|
+
docs: {
|
|
1306
|
+
description: {
|
|
1307
|
+
story:
|
|
1308
|
+
"Real-world usage examples showing CoinIcon in different financial and gaming contexts.",
|
|
1309
|
+
},
|
|
1310
|
+
},
|
|
1311
|
+
},
|
|
1312
|
+
render: () => (
|
|
1313
|
+
<div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1314
|
+
{/* Wallet Display */}
|
|
1315
|
+
<div className="!space-y-2">
|
|
1316
|
+
<h3 className="text-sm font-medium text-white">
|
|
1317
|
+
Digital Wallet Balance
|
|
1318
|
+
</h3>
|
|
1319
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
1320
|
+
<div className="flex items-center justify-between rounded border border-yellow-500/30 bg-gradient-to-r from-yellow-500/20 to-amber-500/20 p-3">
|
|
1321
|
+
<span className="font-medium text-white">Current Balance</span>
|
|
1322
|
+
<div className="flex items-center gap-2">
|
|
1323
|
+
<CoinIcon className="h-5 w-5" />
|
|
1324
|
+
<span className="text-lg font-bold text-yellow-300">2,847</span>
|
|
1325
|
+
</div>
|
|
1326
|
+
</div>
|
|
1327
|
+
</div>
|
|
1328
|
+
</div>
|
|
1329
|
+
|
|
1330
|
+
{/* Store Item */}
|
|
1331
|
+
<div className="!space-y-2">
|
|
1332
|
+
<h3 className="text-sm font-medium text-white">Store Item Pricing</h3>
|
|
1333
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
1334
|
+
<div className="flex items-center justify-between rounded border border-white/10 bg-black/30 p-3">
|
|
1335
|
+
<div className="flex items-center gap-3">
|
|
1336
|
+
<div className="flex h-10 w-10 items-center justify-center rounded-lg bg-purple-500/20">
|
|
1337
|
+
<span>⚔️</span>
|
|
1338
|
+
</div>
|
|
1339
|
+
<div>
|
|
1340
|
+
<div className="text-sm font-medium text-white">Epic Sword</div>
|
|
1341
|
+
<div className="text-xs text-white/60">Legendary weapon</div>
|
|
1342
|
+
</div>
|
|
1343
|
+
</div>
|
|
1344
|
+
<div className="flex items-center gap-2">
|
|
1345
|
+
<div className="flex items-center gap-1">
|
|
1346
|
+
<CoinIcon className="h-4 w-4" />
|
|
1347
|
+
<span className="font-medium text-yellow-400">500</span>
|
|
1348
|
+
</div>
|
|
1349
|
+
<button className="rounded border border-yellow-500/30 bg-yellow-500/20 px-3 py-1 text-sm text-yellow-300 transition-colors hover:bg-yellow-500/30">
|
|
1350
|
+
Buy
|
|
1351
|
+
</button>
|
|
1352
|
+
</div>
|
|
1353
|
+
</div>
|
|
1354
|
+
</div>
|
|
1355
|
+
</div>
|
|
1356
|
+
</div>
|
|
1357
|
+
),
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
export const Playground: Story = {
|
|
1361
|
+
parameters: {
|
|
1362
|
+
...storyParameters,
|
|
1363
|
+
docs: {
|
|
1364
|
+
description: {
|
|
1365
|
+
story:
|
|
1366
|
+
"Interactive playground to experiment with different CoinIcon configurations.",
|
|
1367
|
+
},
|
|
1368
|
+
},
|
|
1369
|
+
},
|
|
1370
|
+
args: {
|
|
1371
|
+
width: 24,
|
|
1372
|
+
height: 24,
|
|
1373
|
+
className: "",
|
|
1374
|
+
},
|
|
1375
|
+
render: (args) => (
|
|
1376
|
+
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1377
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
1378
|
+
<CoinIcon {...args} />
|
|
1379
|
+
</div>
|
|
1380
|
+
</div>
|
|
1381
|
+
),
|
|
1382
|
+
}
|