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.
Files changed (88) hide show
  1. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +952 -0
  2. package/dist/icons/apple-logo-icon/index.tsx +26 -0
  3. package/dist/icons/apple-logo-icon/meta.ts +8 -0
  4. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +1008 -0
  5. package/dist/icons/arrow-left-icon/index.tsx +24 -0
  6. package/dist/icons/arrow-left-icon/meta.ts +8 -0
  7. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +1050 -0
  8. package/dist/icons/backward-ten-seconds-icon/index.tsx +35 -0
  9. package/dist/icons/backward-ten-seconds-icon/meta.ts +8 -0
  10. package/dist/icons/camera-icon/CameraIcon.stories.tsx +1271 -0
  11. package/dist/icons/camera-icon/index.tsx +22 -0
  12. package/dist/icons/camera-icon/meta.ts +8 -0
  13. package/dist/icons/coin-icon/CoinIcon.stories.tsx +1382 -0
  14. package/dist/icons/coin-icon/index.tsx +36 -0
  15. package/dist/icons/coin-icon/meta.ts +8 -0
  16. package/dist/icons/email-icon/EmailIcon.stories.tsx +995 -0
  17. package/dist/icons/email-icon/index.tsx +22 -0
  18. package/dist/icons/email-icon/meta.ts +8 -0
  19. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +1167 -0
  20. package/dist/icons/expand-icon/index.tsx +22 -0
  21. package/dist/icons/expand-icon/meta.ts +8 -0
  22. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +1054 -0
  23. package/dist/icons/forward-ten-seconds-icon/index.tsx +33 -0
  24. package/dist/icons/forward-ten-seconds-icon/meta.ts +8 -0
  25. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +1004 -0
  26. package/dist/icons/google-logo-icon/index.tsx +34 -0
  27. package/dist/icons/google-logo-icon/meta.ts +8 -0
  28. package/dist/icons/heart-icon/HeartIcon.stories.tsx +1080 -0
  29. package/dist/icons/heart-icon/index.tsx +21 -0
  30. package/dist/icons/heart-icon/meta.ts +8 -0
  31. package/dist/icons/index.ts +32 -4
  32. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +1020 -0
  33. package/dist/icons/indian-flag-icon/index.tsx +46 -0
  34. package/dist/icons/indian-flag-icon/meta.ts +8 -0
  35. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +1449 -0
  36. package/dist/icons/instagram-icon/index.tsx +17 -0
  37. package/dist/icons/instagram-icon/meta.ts +8 -0
  38. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +1582 -0
  39. package/dist/icons/linked-in-icon/index.tsx +17 -0
  40. package/dist/icons/linked-in-icon/meta.ts +8 -0
  41. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +1214 -0
  42. package/dist/icons/minimize-icon/index.tsx +22 -0
  43. package/dist/icons/minimize-icon/meta.ts +8 -0
  44. package/dist/icons/pause-icon/PauseIcon.stories.tsx +1060 -0
  45. package/dist/icons/pause-icon/index.tsx +30 -0
  46. package/dist/icons/pause-icon/meta.ts +8 -0
  47. package/dist/icons/share-icon/ShareIcon.stories.tsx +1081 -0
  48. package/dist/icons/share-icon/index.tsx +22 -0
  49. package/dist/icons/share-icon/meta.ts +8 -0
  50. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +1047 -0
  51. package/dist/icons/skip-backward-icon/index.tsx +29 -0
  52. package/dist/icons/skip-backward-icon/meta.ts +8 -0
  53. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +1049 -0
  54. package/dist/icons/skip-forward-icon/index.tsx +29 -0
  55. package/dist/icons/skip-forward-icon/meta.ts +8 -0
  56. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +1020 -0
  57. package/dist/icons/store-coin-icon/index.tsx +35 -0
  58. package/dist/icons/store-coin-icon/meta.ts +8 -0
  59. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +1489 -0
  60. package/dist/icons/threads-icon/index.tsx +17 -0
  61. package/dist/icons/threads-icon/meta.ts +8 -0
  62. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +1463 -0
  63. package/dist/icons/twitter-x-icon/index.tsx +17 -0
  64. package/dist/icons/twitter-x-icon/meta.ts +8 -0
  65. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +1105 -0
  66. package/dist/icons/video-play-list-icon/index.tsx +22 -0
  67. package/dist/icons/video-play-list-icon/meta.ts +8 -0
  68. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +1416 -0
  69. package/dist/icons/voice-playing-icon/index.tsx +24 -0
  70. package/dist/icons/voice-playing-icon/meta.ts +8 -0
  71. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +1230 -0
  72. package/dist/icons/volume-full-icon/index.tsx +25 -0
  73. package/dist/icons/volume-full-icon/meta.ts +8 -0
  74. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +1153 -0
  75. package/dist/icons/volume-half-icon/index.tsx +25 -0
  76. package/dist/icons/volume-half-icon/meta.ts +8 -0
  77. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +1144 -0
  78. package/dist/icons/volume-off-icon/index.tsx +26 -0
  79. package/dist/icons/volume-off-icon/meta.ts +8 -0
  80. package/dist/icons/warning-icon/WarningIcon.stories.tsx +1106 -0
  81. package/dist/icons/warning-icon/index.tsx +27 -0
  82. package/dist/icons/warning-icon/meta.ts +8 -0
  83. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +996 -0
  84. package/dist/icons/youtube-icon/index.tsx +24 -0
  85. package/dist/icons/youtube-icon/meta.ts +8 -0
  86. package/dist/index.js +1 -1
  87. package/dist/styles/aural-theme.css +9 -0
  88. package/package.json +1 -1
@@ -0,0 +1,1463 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { TwitterXIcon } from "."
5
+
6
+ const meta: Meta<typeof TwitterXIcon> = {
7
+ title: "Icons/TwitterXIcon",
8
+ component: TwitterXIcon,
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-slate-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-slate-500/10 via-transparent to-gray-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-slate-500/30 bg-gradient-to-br from-slate-500/20 to-gray-500/20">
90
+ <TwitterXIcon className="h-12 w-12 text-white" />
91
+ </div>
92
+ <h1 className="text-5xl font-bold !text-white">
93
+ TwitterXIcon
94
+ </h1>
95
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
96
+ The official Twitter X brand icon featuring the distinctive
97
+ "X" logo. Essential for social media integration, sharing
98
+ buttons, profile links, social login options, and any
99
+ interface where Twitter/X platform connectivity is needed.
100
+ </p>
101
+
102
+ {/* Stats */}
103
+ <div className="flex items-center justify-center gap-8 pt-8">
104
+ <div className="text-center">
105
+ <div className="text-3xl font-bold text-slate-300">
106
+ Social Media
107
+ </div>
108
+ <div className="text-sm text-white/60">
109
+ Platform integration
110
+ </div>
111
+ </div>
112
+ <div className="h-8 w-px bg-white/20" />
113
+ <div className="text-center">
114
+ <div className="text-3xl font-bold text-gray-300">
115
+ Brand Recognition
116
+ </div>
117
+ <div className="text-sm text-white/60">
118
+ Official identity
119
+ </div>
120
+ </div>
121
+ <div className="h-8 w-px bg-white/20" />
122
+ <div className="text-center">
123
+ <div className="text-3xl font-bold text-zinc-300">
124
+ Universal
125
+ </div>
126
+ <div className="text-sm text-white/60">
127
+ Global platform
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+
135
+ {/* Content */}
136
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
+ {/* Quick Usage */}
138
+ <div className="!space-y-8">
139
+ <h2 className="text-center text-3xl font-bold !text-white">
140
+ Quick Start
141
+ </h2>
142
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
+ <div className="!space-y-4">
144
+ <h3 className="text-xl font-semibold !text-slate-300">
145
+ Basic Usage
146
+ </h3>
147
+ <div className="rounded-lg bg-black/40 p-4">
148
+ <pre className="overflow-x-auto text-sm !text-green-300">
149
+ {`import { TwitterXIcon } from "@icons/twitter-x-icon"
150
+
151
+ function ShareButton() {
152
+ return (
153
+ <button
154
+ onClick={shareOnTwitter}
155
+ className="flex items-center gap-2 p-2 rounded-lg
156
+ bg-black hover:bg-gray-800 transition-colors"
157
+ >
158
+ <TwitterXIcon className="h-5 w-5 text-white" />
159
+ <span className="text-white">Share on X</span>
160
+ </button>
161
+ )
162
+ }`}
163
+ </pre>
164
+ </div>
165
+ </div>
166
+
167
+ <div className="!space-y-4">
168
+ <h3 className="text-xl font-semibold !text-slate-300">
169
+ Live Preview
170
+ </h3>
171
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
172
+ <button className="flex items-center gap-2 rounded-lg border border-slate-500/20 bg-black px-4 py-2 transition-colors hover:bg-gray-800">
173
+ <TwitterXIcon className="h-5 w-5 text-white" />
174
+ <span className="font-medium text-white">
175
+ Share on X
176
+ </span>
177
+ </button>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ </div>
182
+
183
+ {/* Props Documentation */}
184
+ <div className="!space-y-8">
185
+ <h2 className="text-center text-3xl font-bold !text-white">
186
+ Props & Configuration
187
+ </h2>
188
+
189
+ <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
190
+ <div className="bg-white/5 p-4">
191
+ <h3 className="text-xl font-semibold !text-white">Props</h3>
192
+ </div>
193
+ <table className="!my-0 w-full">
194
+ <thead className="bg-white/5">
195
+ <tr className="border-b border-white/10">
196
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
197
+ Prop
198
+ </th>
199
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ Type
201
+ </th>
202
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
203
+ Default
204
+ </th>
205
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
206
+ Description
207
+ </th>
208
+ </tr>
209
+ </thead>
210
+ <tbody>
211
+ <tr className="border-b border-white/5">
212
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
213
+ width
214
+ </td>
215
+ <td className="px-6 py-4 text-sm !text-white/70">
216
+ number | string
217
+ </td>
218
+ <td className="px-6 py-4 text-sm !text-white/50">
219
+ auto
220
+ </td>
221
+ <td className="px-6 py-4 text-sm !text-white/70">
222
+ Width of the icon (maintains aspect ratio)
223
+ </td>
224
+ </tr>
225
+ <tr className="border-b border-white/5 !bg-black/10">
226
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
227
+ height
228
+ </td>
229
+ <td className="px-6 py-4 text-sm !text-white/70">
230
+ number | string
231
+ </td>
232
+ <td className="px-6 py-4 text-sm !text-white/50">
233
+ auto
234
+ </td>
235
+ <td className="px-6 py-4 text-sm !text-white/70">
236
+ Height of the icon (maintains aspect ratio)
237
+ </td>
238
+ </tr>
239
+ <tr className="border-b border-white/5">
240
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
241
+ fill
242
+ </td>
243
+ <td className="px-6 py-4 text-sm !text-white/70">
244
+ string
245
+ </td>
246
+ <td className="px-6 py-4 text-sm !text-white/50">
247
+ currentColor
248
+ </td>
249
+ <td className="px-6 py-4 text-sm !text-white/70">
250
+ Fill color of the X logo
251
+ </td>
252
+ </tr>
253
+ <tr className="border-b border-white/5 !bg-black/10">
254
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
255
+ className
256
+ </td>
257
+ <td className="px-6 py-4 text-sm !text-white/70">
258
+ string
259
+ </td>
260
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
261
+ <td className="px-6 py-4 text-sm !text-white/70">
262
+ CSS classes for styling and sizing
263
+ </td>
264
+ </tr>
265
+ <tr className="border-b border-white/5">
266
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
267
+ onClick
268
+ </td>
269
+ <td className="px-6 py-4 text-sm !text-white/70">
270
+ function
271
+ </td>
272
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
273
+ <td className="px-6 py-4 text-sm !text-white/70">
274
+ Click handler for social interactions
275
+ </td>
276
+ </tr>
277
+ <tr className="!bg-black/10">
278
+ <td className="px-6 py-4 font-mono text-sm !text-slate-300">
279
+ ...svgProps
280
+ </td>
281
+ <td className="px-6 py-4 text-sm !text-white/70">
282
+ SVGProps
283
+ </td>
284
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
285
+ <td className="px-6 py-4 text-sm !text-white/70">
286
+ All standard SVG element props
287
+ </td>
288
+ </tr>
289
+ </tbody>
290
+ </table>
291
+ </div>
292
+
293
+ <div className="rounded-lg border border-slate-500/20 bg-slate-500/10 p-4">
294
+ <div className="flex items-center gap-2 text-sm text-slate-200">
295
+ <TwitterXIcon className="h-4 w-4" />
296
+ <span>
297
+ <strong>Brand Guidelines:</strong> Follow Twitter/X's
298
+ official brand guidelines when using this icon, especially
299
+ regarding size, spacing, and color usage.
300
+ </span>
301
+ </div>
302
+ </div>
303
+ </div>
304
+
305
+ {/* Size Variations */}
306
+ <div className="!space-y-8">
307
+ <h2 className="text-center text-3xl font-bold !text-white">
308
+ Size Variations
309
+ </h2>
310
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
311
+ <div className="!space-y-6">
312
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
313
+ <div className="!space-y-4">
314
+ <h3 className="text-lg font-semibold !text-slate-300">
315
+ Standard Sizes
316
+ </h3>
317
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
318
+ <div className="text-center">
319
+ <TwitterXIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
320
+ <span className="text-xs text-white/60">12px</span>
321
+ </div>
322
+ <div className="text-center">
323
+ <TwitterXIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
324
+ <span className="text-xs text-white/60">16px</span>
325
+ </div>
326
+ <div className="text-center">
327
+ <TwitterXIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
328
+ <span className="text-xs text-white/60">20px</span>
329
+ </div>
330
+ <div className="text-center">
331
+ <TwitterXIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
332
+ <span className="text-xs text-white/60">24px</span>
333
+ </div>
334
+ <div className="text-center">
335
+ <TwitterXIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
336
+ <span className="text-xs text-white/60">32px</span>
337
+ </div>
338
+ <div className="text-center">
339
+ <TwitterXIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
340
+ <span className="text-xs text-white/60">48px</span>
341
+ </div>
342
+ </div>
343
+ </div>
344
+
345
+ <div className="!space-y-4">
346
+ <h3 className="text-lg font-semibold !text-slate-300">
347
+ Code Example
348
+ </h3>
349
+ <div className="rounded-lg bg-black/40 p-4">
350
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
351
+ {`// Small (16px) - inline social links
352
+ <TwitterXIcon className="h-4 w-4" />
353
+
354
+ // Medium (24px) - standard buttons
355
+ <TwitterXIcon className="h-6 w-6" />
356
+
357
+ // Large (32px) - prominent displays
358
+ <TwitterXIcon className="h-8 w-8" />
359
+
360
+ // Custom size with maintained aspect ratio
361
+ <TwitterXIcon width={40} height={40} />`}
362
+ </pre>
363
+ </div>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+ {/* Color & Styling */}
371
+ <div className="!space-y-8">
372
+ <h2 className="text-center text-3xl font-bold !text-white">
373
+ Color & Styling
374
+ </h2>
375
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
376
+ <div className="!space-y-4">
377
+ <h3 className="text-lg font-semibold !text-slate-300">
378
+ Brand Colors
379
+ </h3>
380
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
381
+ <div className="flex items-center gap-4">
382
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
383
+ <TwitterXIcon className="h-6 w-6 text-white" />
384
+ </div>
385
+ <div>
386
+ <div className="text-sm font-medium text-white">
387
+ Official Black
388
+ </div>
389
+ <div className="text-xs text-white/60">
390
+ Primary brand color
391
+ </div>
392
+ </div>
393
+ </div>
394
+ <div className="flex items-center gap-4">
395
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg border border-gray-300 bg-white">
396
+ <TwitterXIcon className="h-6 w-6 text-black" />
397
+ </div>
398
+ <div>
399
+ <div className="text-sm font-medium text-white">
400
+ Inverted White
401
+ </div>
402
+ <div className="text-xs text-white/60">
403
+ Light backgrounds
404
+ </div>
405
+ </div>
406
+ </div>
407
+ <div className="flex items-center gap-4">
408
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-gray-600">
409
+ <TwitterXIcon className="h-6 w-6 text-white" />
410
+ </div>
411
+ <div>
412
+ <div className="text-sm font-medium text-white">
413
+ Neutral Gray
414
+ </div>
415
+ <div className="text-xs text-white/60">
416
+ Subtle integration
417
+ </div>
418
+ </div>
419
+ </div>
420
+ <div className="flex items-center gap-4">
421
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500">
422
+ <TwitterXIcon className="h-6 w-6 text-white" />
423
+ </div>
424
+ <div>
425
+ <div className="text-sm font-medium text-white">
426
+ Accent Color
427
+ </div>
428
+ <div className="text-xs text-white/60">
429
+ Themed integration
430
+ </div>
431
+ </div>
432
+ </div>
433
+ </div>
434
+ </div>
435
+
436
+ <div className="!space-y-4">
437
+ <h3 className="text-lg font-semibold !text-slate-300">
438
+ Usage Examples
439
+ </h3>
440
+ <div className="rounded-lg bg-black/40 p-4">
441
+ <pre className="overflow-x-auto text-sm !text-green-300">
442
+ {`// Official black on white
443
+ <TwitterXIcon className="h-6 w-6 text-black" />
444
+
445
+ // White on black (official)
446
+ <TwitterXIcon className="h-6 w-6 text-white" />
447
+
448
+ // Inherit parent text color
449
+ <TwitterXIcon className="h-5 w-5" />
450
+
451
+ // Custom themed color
452
+ <TwitterXIcon
453
+ className="h-6 w-6 text-blue-500"
454
+ />
455
+
456
+ // Hover state with transition
457
+ <TwitterXIcon
458
+ className="h-6 w-6 text-gray-400
459
+ hover:text-white transition-colors"
460
+ />
461
+
462
+ // Background with proper contrast
463
+ <div className="bg-black p-2 rounded">
464
+ <TwitterXIcon className="h-6 w-6 text-white" />
465
+ </div>`}
466
+ </pre>
467
+ </div>
468
+ </div>
469
+ </div>
470
+ </div>
471
+
472
+ {/* Usage Examples */}
473
+ <div className="!space-y-8">
474
+ <h2 className="text-center text-3xl font-bold !text-white">
475
+ Usage Examples
476
+ </h2>
477
+
478
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
479
+ {/* Social Share Buttons */}
480
+ <div className="!space-y-4">
481
+ <h3 className="text-lg font-semibold !text-slate-300">
482
+ Social Share Buttons
483
+ </h3>
484
+ <div className="!space-y-4">
485
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
486
+ <div className="space-y-4">
487
+ <h4 className="mb-3 text-sm font-medium text-white">
488
+ Share this article
489
+ </h4>
490
+ <div className="flex flex-wrap gap-3">
491
+ <button className="flex items-center gap-2 rounded-lg border border-gray-700 bg-black px-4 py-2 transition-colors hover:bg-gray-800">
492
+ <TwitterXIcon className="h-4 w-4 text-white" />
493
+ <span className="text-sm text-white">
494
+ Share on X
495
+ </span>
496
+ </button>
497
+ <button className="flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 transition-colors hover:bg-blue-700">
498
+ <span className="text-sm text-white">📘</span>
499
+ <span className="text-sm text-white">
500
+ Facebook
501
+ </span>
502
+ </button>
503
+ <button className="flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 transition-colors hover:bg-blue-600">
504
+ <span className="text-sm text-white">💼</span>
505
+ <span className="text-sm text-white">
506
+ LinkedIn
507
+ </span>
508
+ </button>
509
+ </div>
510
+ <div className="border-t border-white/10 pt-4">
511
+ <div className="flex items-center gap-3">
512
+ <span className="text-sm text-white/60">
513
+ Follow us:
514
+ </span>
515
+ <div className="flex gap-2">
516
+ <a
517
+ href="#"
518
+ className="rounded bg-black p-2 transition-colors hover:bg-gray-800"
519
+ >
520
+ <TwitterXIcon className="h-4 w-4 text-white" />
521
+ </a>
522
+ <a
523
+ href="#"
524
+ className="rounded bg-blue-600 p-2 transition-colors hover:bg-blue-700"
525
+ >
526
+ <span className="text-sm text-white">📘</span>
527
+ </a>
528
+ <a
529
+ href="#"
530
+ className="rounded bg-red-600 p-2 transition-colors hover:bg-red-700"
531
+ >
532
+ <span className="text-sm text-white">📺</span>
533
+ </a>
534
+ </div>
535
+ </div>
536
+ </div>
537
+ </div>
538
+ </div>
539
+ <div className="rounded-lg bg-black/40 p-4">
540
+ <pre className="overflow-x-auto text-sm !text-green-300">
541
+ {`// Social sharing component
542
+ <div className="share-buttons">
543
+ <h4>Share this article</h4>
544
+ <div className="button-group">
545
+ <button
546
+ onClick={() => shareOnTwitter(articleUrl, articleTitle)}
547
+ className="share-btn twitter-btn"
548
+ >
549
+ <TwitterXIcon className="h-4 w-4 text-white" />
550
+ <span>Share on X</span>
551
+ </button>
552
+ <FacebookShareButton />
553
+ <LinkedInShareButton />
554
+ </div>
555
+ <div className="follow-section">
556
+ <span>Follow us:</span>
557
+ <div className="social-links">
558
+ <a
559
+ href="https://x.com/yourhandle"
560
+ className="social-link twitter-link"
561
+ aria-label="Follow us on X"
562
+ >
563
+ <TwitterXIcon className="h-4 w-4 text-white" />
564
+ </a>
565
+ <FacebookLink />
566
+ <YouTubeLink />
567
+ </div>
568
+ </div>
569
+ </div>`}
570
+ </pre>
571
+ </div>
572
+ </div>
573
+ </div>
574
+
575
+ {/* Social Login */}
576
+ <div className="!space-y-4">
577
+ <h3 className="text-lg font-semibold !text-slate-300">
578
+ Social Authentication
579
+ </h3>
580
+ <div className="!space-y-4">
581
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
582
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
583
+ <div className="border-b border-white/10 bg-white/5 p-6">
584
+ <h4 className="mb-2 text-center text-xl font-semibold text-white">
585
+ Welcome Back
586
+ </h4>
587
+ <p className="text-center text-sm text-white/60">
588
+ Sign in to your account
589
+ </p>
590
+ </div>
591
+ <div className="space-y-4 p-6">
592
+ <button className="flex w-full items-center justify-center gap-3 rounded-lg border border-gray-700 bg-black px-4 py-3 transition-colors hover:bg-gray-800">
593
+ <TwitterXIcon className="h-5 w-5 text-white" />
594
+ <span className="font-medium text-white">
595
+ Continue with X
596
+ </span>
597
+ </button>
598
+ <button className="flex w-full items-center justify-center gap-3 rounded-lg border border-gray-300 bg-white px-4 py-3 transition-colors hover:bg-gray-50">
599
+ <span className="text-xl">🔍</span>
600
+ <span className="font-medium text-gray-700">
601
+ Continue with Google
602
+ </span>
603
+ </button>
604
+ <button className="flex w-full items-center justify-center gap-3 rounded-lg bg-blue-600 px-4 py-3 transition-colors hover:bg-blue-700">
605
+ <span className="text-xl text-white">📘</span>
606
+ <span className="font-medium text-white">
607
+ Continue with Facebook
608
+ </span>
609
+ </button>
610
+ <div className="relative">
611
+ <div className="absolute inset-0 flex items-center">
612
+ <div className="w-full border-t border-white/20"></div>
613
+ </div>
614
+ <div className="relative flex justify-center text-sm">
615
+ <span className="bg-black/50 px-2 text-white/60">
616
+ or continue with email
617
+ </span>
618
+ </div>
619
+ </div>
620
+ <div className="space-y-3">
621
+ <input
622
+ type="email"
623
+ placeholder="Email address"
624
+ className="w-full rounded-lg border border-white/20 bg-white/10 px-3 py-2 text-white placeholder-white/60"
625
+ />
626
+ <input
627
+ type="password"
628
+ placeholder="Password"
629
+ className="w-full rounded-lg border border-white/20 bg-white/10 px-3 py-2 text-white placeholder-white/60"
630
+ />
631
+ <button className="w-full rounded-lg bg-blue-600 py-2 font-medium text-white transition-colors hover:bg-blue-700">
632
+ Sign In
633
+ </button>
634
+ </div>
635
+ </div>
636
+ </div>
637
+ </div>
638
+ <div className="rounded-lg bg-black/40 p-4">
639
+ <pre className="overflow-x-auto text-sm !text-green-300">
640
+ {`// Social authentication options
641
+ <div className="auth-container">
642
+ <div className="auth-header">
643
+ <h2>Welcome Back</h2>
644
+ <p>Sign in to your account</p>
645
+ </div>
646
+ <div className="social-auth">
647
+ <button
648
+ onClick={signInWithTwitter}
649
+ className="social-auth-btn twitter-auth"
650
+ aria-label="Sign in with X (formerly Twitter)"
651
+ >
652
+ <TwitterXIcon className="h-5 w-5 text-white" />
653
+ <span>Continue with X</span>
654
+ </button>
655
+ <GoogleAuthButton />
656
+ <FacebookAuthButton />
657
+ </div>
658
+ <div className="auth-divider">
659
+ <span>or continue with email</span>
660
+ </div>
661
+ <EmailAuthForm />
662
+ </div>`}
663
+ </pre>
664
+ </div>
665
+ </div>
666
+ </div>
667
+
668
+ {/* Profile Links */}
669
+ <div className="!space-y-4">
670
+ <h3 className="text-lg font-semibold !text-slate-300">
671
+ Profile Social Links
672
+ </h3>
673
+ <div className="!space-y-4">
674
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
675
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
676
+ <div className="relative h-32 bg-gradient-to-r from-blue-500/20 to-purple-500/20">
677
+ <div className="absolute -bottom-8 left-6">
678
+ <div className="flex h-16 w-16 items-center justify-center rounded-full border-4 border-black/50 bg-white/10">
679
+ <span className="text-2xl">👤</span>
680
+ </div>
681
+ </div>
682
+ </div>
683
+ <div className="p-6 pt-12">
684
+ <div className="flex items-start justify-between">
685
+ <div>
686
+ <h4 className="text-lg font-semibold text-white">
687
+ Sarah Johnson
688
+ </h4>
689
+ <p className="text-sm text-white/60">
690
+ @sarahjohnson
691
+ </p>
692
+ <p className="mt-2 text-sm text-white/70">
693
+ Product Designer passionate about creating
694
+ intuitive user experiences
695
+ </p>
696
+ </div>
697
+ <button className="rounded-lg bg-white px-4 py-2 font-medium text-black transition-colors hover:bg-gray-100">
698
+ Follow
699
+ </button>
700
+ </div>
701
+ <div className="mt-4 flex items-center gap-4">
702
+ <div className="flex items-center gap-2 text-sm text-white/60">
703
+ <span>📍</span>
704
+ <span>San Francisco, CA</span>
705
+ </div>
706
+ <div className="flex items-center gap-2 text-sm text-white/60">
707
+ <span>📅</span>
708
+ <span>Joined March 2020</span>
709
+ </div>
710
+ </div>
711
+ <div className="mt-4 flex items-center gap-6">
712
+ <div className="text-sm">
713
+ <span className="font-medium text-white">
714
+ 1,234
715
+ </span>
716
+ <span className="ml-1 text-white/60">
717
+ Following
718
+ </span>
719
+ </div>
720
+ <div className="text-sm">
721
+ <span className="font-medium text-white">
722
+ 5,678
723
+ </span>
724
+ <span className="ml-1 text-white/60">
725
+ Followers
726
+ </span>
727
+ </div>
728
+ </div>
729
+ <div className="mt-4 flex items-center gap-3 border-t border-white/10 pt-4">
730
+ <span className="text-sm text-white/60">
731
+ Connect:
732
+ </span>
733
+ <div className="flex gap-2">
734
+ <a
735
+ href="#"
736
+ className="rounded bg-black p-2 transition-colors hover:bg-gray-800"
737
+ aria-label="Follow on X"
738
+ >
739
+ <TwitterXIcon className="h-4 w-4 text-white" />
740
+ </a>
741
+ <a
742
+ href="#"
743
+ className="rounded bg-blue-500 p-2 transition-colors hover:bg-blue-600"
744
+ aria-label="Connect on LinkedIn"
745
+ >
746
+ <span className="text-sm text-white">💼</span>
747
+ </a>
748
+ <a
749
+ href="#"
750
+ className="rounded bg-gray-600 p-2 transition-colors hover:bg-gray-700"
751
+ aria-label="View GitHub"
752
+ >
753
+ <span className="text-sm text-white">🐙</span>
754
+ </a>
755
+ <a
756
+ href="#"
757
+ className="rounded bg-pink-500 p-2 transition-colors hover:bg-pink-600"
758
+ aria-label="View Dribbble"
759
+ >
760
+ <span className="text-sm text-white">🏀</span>
761
+ </a>
762
+ </div>
763
+ </div>
764
+ </div>
765
+ </div>
766
+ </div>
767
+ <div className="rounded-lg bg-black/40 p-4">
768
+ <pre className="overflow-x-auto text-sm !text-green-300">
769
+ {`// User profile with social links
770
+ <div className="user-profile">
771
+ <div className="profile-header">
772
+ <CoverImage />
773
+ <ProfileAvatar />
774
+ </div>
775
+ <div className="profile-content">
776
+ <div className="profile-info">
777
+ <UserDetails user={user} />
778
+ <FollowButton userId={user.id} />
779
+ </div>
780
+ <ProfileStats stats={user.stats} />
781
+ <div className="social-links">
782
+ <span>Connect:</span>
783
+ <div className="link-group">
784
+ {user.socialLinks.twitter && (
785
+ <a
786
+ href={user.socialLinks.twitter}
787
+ className="social-link twitter-link"
788
+ aria-label="Follow on X"
789
+ >
790
+ <TwitterXIcon className="h-4 w-4 text-white" />
791
+ </a>
792
+ )}
793
+ <LinkedInLink url={user.socialLinks.linkedin} />
794
+ <GitHubLink url={user.socialLinks.github} />
795
+ <DribbbleLink url={user.socialLinks.dribbble} />
796
+ </div>
797
+ </div>
798
+ </div>
799
+ </div>`}
800
+ </pre>
801
+ </div>
802
+ </div>
803
+ </div>
804
+
805
+ {/* Website Footer */}
806
+ <div className="!space-y-4">
807
+ <h3 className="text-lg font-semibold !text-slate-300">
808
+ Website Footer
809
+ </h3>
810
+ <div className="!space-y-4">
811
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
812
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
813
+ <div className="p-8">
814
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-4">
815
+ <div className="md:col-span-2">
816
+ <h4 className="mb-4 text-lg font-semibold text-white">
817
+ Company Name
818
+ </h4>
819
+ <p className="mb-4 max-w-md text-sm text-white/70">
820
+ Building the future of digital experiences
821
+ with cutting-edge technology and innovative
822
+ design solutions.
823
+ </p>
824
+ <div className="flex items-center gap-3">
825
+ <span className="text-sm text-white/60">
826
+ Follow us:
827
+ </span>
828
+ <div className="flex gap-2">
829
+ <a
830
+ href="#"
831
+ className="rounded bg-black p-2 transition-colors hover:bg-gray-800"
832
+ aria-label="Follow on X"
833
+ >
834
+ <TwitterXIcon className="h-4 w-4 text-white" />
835
+ </a>
836
+ <a
837
+ href="#"
838
+ className="rounded bg-blue-600 p-2 transition-colors hover:bg-blue-700"
839
+ aria-label="Like on Facebook"
840
+ >
841
+ <span className="text-sm text-white">
842
+ 📘
843
+ </span>
844
+ </a>
845
+ <a
846
+ href="#"
847
+ className="rounded bg-blue-500 p-2 transition-colors hover:bg-blue-600"
848
+ aria-label="Connect on LinkedIn"
849
+ >
850
+ <span className="text-sm text-white">
851
+ 💼
852
+ </span>
853
+ </a>
854
+ <a
855
+ href="#"
856
+ className="rounded bg-red-600 p-2 transition-colors hover:bg-red-700"
857
+ aria-label="Subscribe on YouTube"
858
+ >
859
+ <span className="text-sm text-white">
860
+ 📺
861
+ </span>
862
+ </a>
863
+ </div>
864
+ </div>
865
+ </div>
866
+ <div>
867
+ <h5 className="mb-3 text-sm font-semibold text-white">
868
+ Product
869
+ </h5>
870
+ <ul className="space-y-2 text-sm text-white/60">
871
+ <li>
872
+ <a
873
+ href="#"
874
+ className="transition-colors hover:text-white"
875
+ >
876
+ Features
877
+ </a>
878
+ </li>
879
+ <li>
880
+ <a
881
+ href="#"
882
+ className="transition-colors hover:text-white"
883
+ >
884
+ Pricing
885
+ </a>
886
+ </li>
887
+ <li>
888
+ <a
889
+ href="#"
890
+ className="transition-colors hover:text-white"
891
+ >
892
+ Documentation
893
+ </a>
894
+ </li>
895
+ <li>
896
+ <a
897
+ href="#"
898
+ className="transition-colors hover:text-white"
899
+ >
900
+ API
901
+ </a>
902
+ </li>
903
+ </ul>
904
+ </div>
905
+ <div>
906
+ <h5 className="mb-3 text-sm font-semibold text-white">
907
+ Company
908
+ </h5>
909
+ <ul className="space-y-2 text-sm text-white/60">
910
+ <li>
911
+ <a
912
+ href="#"
913
+ className="transition-colors hover:text-white"
914
+ >
915
+ About
916
+ </a>
917
+ </li>
918
+ <li>
919
+ <a
920
+ href="#"
921
+ className="transition-colors hover:text-white"
922
+ >
923
+ Blog
924
+ </a>
925
+ </li>
926
+ <li>
927
+ <a
928
+ href="#"
929
+ className="transition-colors hover:text-white"
930
+ >
931
+ Careers
932
+ </a>
933
+ </li>
934
+ <li>
935
+ <a
936
+ href="#"
937
+ className="transition-colors hover:text-white"
938
+ >
939
+ Contact
940
+ </a>
941
+ </li>
942
+ </ul>
943
+ </div>
944
+ </div>
945
+ <div className="mt-8 flex flex-col items-center justify-between border-t border-white/10 pt-8 md:flex-row">
946
+ <p className="text-sm text-white/60">
947
+ © 2024 Company Name. All rights reserved.
948
+ </p>
949
+ <div className="mt-4 flex gap-4 md:mt-0">
950
+ <a
951
+ href="#"
952
+ className="text-sm text-white/60 transition-colors hover:text-white"
953
+ >
954
+ Privacy Policy
955
+ </a>
956
+ <a
957
+ href="#"
958
+ className="text-sm text-white/60 transition-colors hover:text-white"
959
+ >
960
+ Terms of Service
961
+ </a>
962
+ <a
963
+ href="#"
964
+ className="text-sm text-white/60 transition-colors hover:text-white"
965
+ >
966
+ Cookie Policy
967
+ </a>
968
+ </div>
969
+ </div>
970
+ </div>
971
+ </div>
972
+ </div>
973
+ <div className="rounded-lg bg-black/40 p-4">
974
+ <pre className="overflow-x-auto text-sm !text-green-300">
975
+ {`// Website footer with social links
976
+ <footer className="site-footer">
977
+ <div className="footer-content">
978
+ <div className="footer-brand">
979
+ <h4>Company Name</h4>
980
+ <p>Building the future of digital experiences...</p>
981
+ <div className="social-follow">
982
+ <span>Follow us:</span>
983
+ <div className="social-icons">
984
+ <a
985
+ href="https://x.com/company"
986
+ className="social-icon twitter-icon"
987
+ aria-label="Follow on X"
988
+ >
989
+ <TwitterXIcon className="h-4 w-4 text-white" />
990
+ </a>
991
+ <FacebookIcon />
992
+ <LinkedInIcon />
993
+ <YouTubeIcon />
994
+ </div>
995
+ </div>
996
+ </div>
997
+ <FooterNavigation />
998
+ </div>
999
+ <FooterBottom />
1000
+ </footer>`}
1001
+ </pre>
1002
+ </div>
1003
+ </div>
1004
+ </div>
1005
+ </div>
1006
+ </div>
1007
+
1008
+ {/* Accessibility */}
1009
+ <div className="!space-y-8">
1010
+ <h2 className="text-center text-3xl font-bold !text-white">
1011
+ Accessibility Features
1012
+ </h2>
1013
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
1014
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
1015
+ <h3 className="text-lg font-semibold !text-green-300">
1016
+ ✅ Built-in Features
1017
+ </h3>
1018
+ <ul className="!space-y-2 text-sm !text-white/70">
1019
+ <li className="!text-white/70">
1020
+ Uses Radix UI AccessibleIcon wrapper
1021
+ </li>
1022
+ <li className="!text-white/70">
1023
+ Provides screen reader label "Twitter X icon"
1024
+ </li>
1025
+ <li className="!text-white/70">
1026
+ Supports keyboard navigation when interactive
1027
+ </li>
1028
+ <li className="!text-white/70">
1029
+ High contrast design for visibility
1030
+ </li>
1031
+ <li className="!text-white/70">
1032
+ Maintains aspect ratio across all sizes
1033
+ </li>
1034
+ </ul>
1035
+ </div>
1036
+
1037
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
1038
+ <h3 className="text-lg font-semibold !text-slate-300">
1039
+ 💡 Best Practices
1040
+ </h3>
1041
+ <ul className="!space-y-2 text-sm text-white/70">
1042
+ <li className="!text-white/70">
1043
+ Always provide descriptive aria-labels for social
1044
+ actions
1045
+ </li>
1046
+ <li className="!text-white/70">
1047
+ Follow official Twitter/X brand guidelines
1048
+ </li>
1049
+ <li className="!text-white/70">
1050
+ Ensure sufficient contrast ratios for visibility
1051
+ </li>
1052
+ <li className="!text-white/70">
1053
+ Use consistent sizing across social media icons
1054
+ </li>
1055
+ <li className="!text-white/70">
1056
+ Provide text alternatives when icons are standalone
1057
+ </li>
1058
+ </ul>
1059
+ </div>
1060
+ </div>
1061
+
1062
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1063
+ <h3 className="mb-4 text-lg font-semibold !text-blue-300">
1064
+ Proper ARIA Implementation
1065
+ </h3>
1066
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
1067
+ <div className="rounded-lg bg-black/40 p-4">
1068
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
1069
+ {`// Social share button
1070
+ <button
1071
+ onClick={shareOnTwitter}
1072
+ className="share-button"
1073
+ aria-label="Share this article on X (formerly Twitter)"
1074
+ >
1075
+ <TwitterXIcon className="h-4 w-4 text-white" />
1076
+ <span>Share on X</span>
1077
+ </button>
1078
+
1079
+ // Social login
1080
+ <button
1081
+ onClick={signInWithTwitter}
1082
+ className="auth-button"
1083
+ aria-label="Sign in with X (formerly Twitter)"
1084
+ >
1085
+ <TwitterXIcon className="h-5 w-5 text-white" />
1086
+ <span>Continue with X</span>
1087
+ </button>
1088
+
1089
+ // Profile social link
1090
+ <a
1091
+ href="https://x.com/username"
1092
+ className="social-link"
1093
+ aria-label="Follow @username on X"
1094
+ target="_blank"
1095
+ rel="noopener noreferrer"
1096
+ >
1097
+ <TwitterXIcon className="h-4 w-4 text-white" />
1098
+ </a>
1099
+
1100
+ // Footer social icon with text
1101
+ <div className="social-links">
1102
+ <span className="sr-only">Follow us on social media:</span>
1103
+ <a
1104
+ href="https://x.com/company"
1105
+ aria-label="Follow Company on X"
1106
+ >
1107
+ <TwitterXIcon className="h-4 w-4" />
1108
+ </a>
1109
+ <a
1110
+ href="https://facebook.com/company"
1111
+ aria-label="Like Company on Facebook"
1112
+ >
1113
+ <FacebookIcon className="h-4 w-4" />
1114
+ </a>
1115
+ </div>
1116
+
1117
+ // Share modal with multiple options
1118
+ <div
1119
+ role="dialog"
1120
+ aria-labelledby="share-title"
1121
+ aria-describedby="share-description"
1122
+ >
1123
+ <h2 id="share-title">Share this content</h2>
1124
+ <p id="share-description">Choose a platform to share on</p>
1125
+ <div className="share-options">
1126
+ <button aria-label="Share on X (formerly Twitter)">
1127
+ <TwitterXIcon className="h-5 w-5" />
1128
+ <span>X</span>
1129
+ </button>
1130
+ </div>
1131
+ </div>`}
1132
+ </pre>
1133
+ </div>
1134
+ <div className="!space-y-4">
1135
+ <p className="text-sm !text-white/70">
1136
+ When using TwitterXIcon for social integration, always
1137
+ provide clear context about the action and destination
1138
+ platform. Include proper external link indicators when
1139
+ applicable.
1140
+ </p>
1141
+ <div className="rounded-lg border border-slate-500/20 bg-slate-500/10 p-4">
1142
+ <div className="flex items-center gap-2 text-sm text-slate-200">
1143
+ <TwitterXIcon className="h-4 w-4" />
1144
+ <span>
1145
+ Use "X (formerly Twitter)" in aria-labels during the
1146
+ brand transition period
1147
+ </span>
1148
+ </div>
1149
+ </div>
1150
+ </div>
1151
+ </div>
1152
+ </div>
1153
+ </div>
1154
+
1155
+ {/* Related Icons */}
1156
+ <div className="!space-y-8">
1157
+ <h2 className="text-center text-3xl font-bold !text-white">
1158
+ Related Icons
1159
+ </h2>
1160
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
1161
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1162
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
1163
+ <span className="!text-2xl !text-white">📘</span>
1164
+ </div>
1165
+ <div>
1166
+ <div className="font-medium text-white">FacebookIcon</div>
1167
+ <div className="text-xs text-white/60">
1168
+ Social platform
1169
+ </div>
1170
+ </div>
1171
+ </div>
1172
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1173
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-600/20">
1174
+ <span className="!text-2xl !text-white">💼</span>
1175
+ </div>
1176
+ <div>
1177
+ <div className="font-medium text-white">LinkedInIcon</div>
1178
+ <div className="text-xs text-white/60">
1179
+ Professional network
1180
+ </div>
1181
+ </div>
1182
+ </div>
1183
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1184
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
1185
+ <span className="!text-2xl !text-white">📺</span>
1186
+ </div>
1187
+ <div>
1188
+ <div className="font-medium text-white">YouTubeIcon</div>
1189
+ <div className="text-xs text-white/60">
1190
+ Video platform
1191
+ </div>
1192
+ </div>
1193
+ </div>
1194
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1195
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
1196
+ <span className="!text-2xl !text-white">📷</span>
1197
+ </div>
1198
+ <div>
1199
+ <div className="font-medium text-white">
1200
+ InstagramIcon
1201
+ </div>
1202
+ <div className="text-xs text-white/60">Photo sharing</div>
1203
+ </div>
1204
+ </div>
1205
+ </div>
1206
+ </div>
1207
+ </div>
1208
+
1209
+ {/* Footer */}
1210
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
1211
+ <div className="!mx-auto max-w-7xl px-6 py-8">
1212
+ <div className="!space-y-4 text-center">
1213
+ <p className="!text-white/60">
1214
+ TwitterXIcon is part of the Aural UI icon library, built
1215
+ with accessibility and social media integration best
1216
+ practices in mind.
1217
+ </p>
1218
+ <p className="text-sm !text-white/40">
1219
+ All icons use Radix UI's AccessibleIcon for screen reader
1220
+ compatibility and follow WCAG guidelines for social platform
1221
+ recognition and brand consistency.
1222
+ </p>
1223
+ </div>
1224
+ </div>
1225
+ </div>
1226
+ </div>
1227
+ </>
1228
+ ),
1229
+ },
1230
+ },
1231
+ tags: ["autodocs"],
1232
+ argTypes: {
1233
+ width: {
1234
+ control: { type: "range", min: 8, max: 96, step: 2 },
1235
+ description: "Width of the icon (maintains aspect ratio)",
1236
+ },
1237
+ height: {
1238
+ control: { type: "range", min: 8, max: 96, step: 2 },
1239
+ description: "Height of the icon (maintains aspect ratio)",
1240
+ },
1241
+ fill: {
1242
+ control: "color",
1243
+ description: "Fill color of the X logo",
1244
+ },
1245
+ className: {
1246
+ control: "text",
1247
+ description: "CSS classes for styling and sizing",
1248
+ },
1249
+ onClick: {
1250
+ action: "clicked",
1251
+ description: "Click handler for social interactions",
1252
+ },
1253
+ },
1254
+ }
1255
+
1256
+ export default meta
1257
+ type Story = StoryObj<typeof TwitterXIcon>
1258
+
1259
+ // Story parameters for consistent dark theme
1260
+ const storyParameters = {
1261
+ backgrounds: {
1262
+ default: "dark",
1263
+ values: [
1264
+ { name: "dark", value: "#0a0a0a" },
1265
+ { name: "darker", value: "#000000" },
1266
+ ],
1267
+ },
1268
+ }
1269
+
1270
+ export const Default: Story = {
1271
+ args: {
1272
+ className: "h-8 w-8 text-white",
1273
+ },
1274
+ parameters: storyParameters,
1275
+ render: (args) => (
1276
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1277
+ <TwitterXIcon {...args} />
1278
+ </div>
1279
+ ),
1280
+ }
1281
+
1282
+ export const SizeVariations: Story = {
1283
+ parameters: {
1284
+ ...storyParameters,
1285
+ docs: {
1286
+ description: {
1287
+ story:
1288
+ "TwitterXIcon in different sizes, from small inline social links to large brand displays.",
1289
+ },
1290
+ },
1291
+ },
1292
+ render: () => (
1293
+ <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">
1294
+ <div className="text-center">
1295
+ <TwitterXIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
1296
+ <span className="text-xs text-white/60">12px</span>
1297
+ </div>
1298
+ <div className="text-center">
1299
+ <TwitterXIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
1300
+ <span className="text-xs text-white/60">16px</span>
1301
+ </div>
1302
+ <div className="text-center">
1303
+ <TwitterXIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
1304
+ <span className="text-xs text-white/60">20px</span>
1305
+ </div>
1306
+ <div className="text-center">
1307
+ <TwitterXIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
1308
+ <span className="text-xs text-white/60">24px</span>
1309
+ </div>
1310
+ <div className="text-center">
1311
+ <TwitterXIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
1312
+ <span className="text-xs text-white/60">32px</span>
1313
+ </div>
1314
+ <div className="text-center">
1315
+ <TwitterXIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
1316
+ <span className="text-xs text-white/60">48px</span>
1317
+ </div>
1318
+ </div>
1319
+ ),
1320
+ }
1321
+
1322
+ export const BrandColors: Story = {
1323
+ parameters: {
1324
+ ...storyParameters,
1325
+ docs: {
1326
+ description: {
1327
+ story:
1328
+ "TwitterXIcon in different brand-compliant colors for various design contexts.",
1329
+ },
1330
+ },
1331
+ },
1332
+ render: () => (
1333
+ <div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
1334
+ <div className="text-center">
1335
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-black">
1336
+ <TwitterXIcon className="h-8 w-8 text-white" />
1337
+ </div>
1338
+ <div className="text-sm font-medium text-white">Official Black</div>
1339
+ <div className="text-xs text-white/60">Primary brand</div>
1340
+ </div>
1341
+ <div className="text-center">
1342
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-300 bg-white">
1343
+ <TwitterXIcon className="h-8 w-8 text-black" />
1344
+ </div>
1345
+ <div className="text-sm font-medium text-white">Inverted White</div>
1346
+ <div className="text-xs text-white/60">Light backgrounds</div>
1347
+ </div>
1348
+ <div className="text-center">
1349
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-600">
1350
+ <TwitterXIcon className="h-8 w-8 text-white" />
1351
+ </div>
1352
+ <div className="text-sm font-medium text-white">Neutral Gray</div>
1353
+ <div className="text-xs text-white/60">Subtle integration</div>
1354
+ </div>
1355
+ <div className="text-center">
1356
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-blue-500">
1357
+ <TwitterXIcon className="h-8 w-8 text-white" />
1358
+ </div>
1359
+ <div className="text-sm font-medium text-white">Accent Color</div>
1360
+ <div className="text-xs text-white/60">Themed integration</div>
1361
+ </div>
1362
+ </div>
1363
+ ),
1364
+ }
1365
+
1366
+ export const UsageExamples: Story = {
1367
+ parameters: {
1368
+ ...storyParameters,
1369
+ docs: {
1370
+ description: {
1371
+ story:
1372
+ "Real-world usage examples showing TwitterXIcon in different social media contexts.",
1373
+ },
1374
+ },
1375
+ },
1376
+ render: () => (
1377
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1378
+ {/* Share Button */}
1379
+ <div className="!space-y-2">
1380
+ <h3 className="text-sm font-medium text-white">Social Share Button</h3>
1381
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1382
+ <div className="flex gap-3">
1383
+ <button className="flex items-center gap-2 rounded-lg border border-gray-700 bg-black px-4 py-2 transition-colors hover:bg-gray-800">
1384
+ <TwitterXIcon className="h-4 w-4 text-white" />
1385
+ <span className="text-sm text-white">Share on X</span>
1386
+ </button>
1387
+ <button className="flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 transition-colors hover:bg-blue-700">
1388
+ <span className="text-sm text-white">📘</span>
1389
+ <span className="text-sm text-white">Facebook</span>
1390
+ </button>
1391
+ </div>
1392
+ </div>
1393
+ </div>
1394
+
1395
+ {/* Social Auth */}
1396
+ <div className="!space-y-2">
1397
+ <h3 className="text-sm font-medium text-white">
1398
+ Social Authentication
1399
+ </h3>
1400
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1401
+ <button className="flex w-full items-center justify-center gap-3 rounded-lg border border-gray-700 bg-black px-4 py-3 transition-colors hover:bg-gray-800">
1402
+ <TwitterXIcon className="h-5 w-5 text-white" />
1403
+ <span className="font-medium text-white">Continue with X</span>
1404
+ </button>
1405
+ </div>
1406
+ </div>
1407
+
1408
+ {/* Footer Links */}
1409
+ <div className="!space-y-2">
1410
+ <h3 className="text-sm font-medium text-white">Footer Social Links</h3>
1411
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1412
+ <div className="flex items-center gap-3">
1413
+ <span className="text-sm text-white/60">Follow us:</span>
1414
+ <div className="flex gap-2">
1415
+ <a
1416
+ href="#"
1417
+ className="rounded bg-black p-2 transition-colors hover:bg-gray-800"
1418
+ >
1419
+ <TwitterXIcon className="h-4 w-4 text-white" />
1420
+ </a>
1421
+ <a
1422
+ href="#"
1423
+ className="rounded bg-blue-600 p-2 transition-colors hover:bg-blue-700"
1424
+ >
1425
+ <span className="text-sm text-white">📘</span>
1426
+ </a>
1427
+ <a
1428
+ href="#"
1429
+ className="rounded bg-red-600 p-2 transition-colors hover:bg-red-700"
1430
+ >
1431
+ <span className="text-sm text-white">📺</span>
1432
+ </a>
1433
+ </div>
1434
+ </div>
1435
+ </div>
1436
+ </div>
1437
+ </div>
1438
+ ),
1439
+ }
1440
+
1441
+ export const Playground: Story = {
1442
+ parameters: {
1443
+ ...storyParameters,
1444
+ docs: {
1445
+ description: {
1446
+ story:
1447
+ "Interactive playground to experiment with different TwitterXIcon configurations.",
1448
+ },
1449
+ },
1450
+ },
1451
+ args: {
1452
+ width: 24,
1453
+ height: 24,
1454
+ className: "text-white",
1455
+ },
1456
+ render: (args) => (
1457
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1458
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1459
+ <TwitterXIcon {...args} />
1460
+ </div>
1461
+ </div>
1462
+ ),
1463
+ }