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,1489 @@
1
+ import React from "react"
2
+ import type { Meta, StoryObj } from "@storybook/react"
3
+
4
+ import { ThreadsIcon } from "."
5
+
6
+ const meta: Meta<typeof ThreadsIcon> = {
7
+ title: "Icons/ThreadsIcon",
8
+ component: ThreadsIcon,
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-zinc-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-zinc-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-zinc-500/30 bg-gradient-to-br from-zinc-500/20 to-gray-500/20">
90
+ <ThreadsIcon className="h-12 w-12 text-white" />
91
+ </div>
92
+ <h1 className="text-5xl font-bold !text-white">
93
+ ThreadsIcon
94
+ </h1>
95
+ <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
96
+ The official Threads brand icon featuring the distinctive
97
+ "@" symbol design. Essential for text-based social
98
+ networking, conversation platforms, community engagement,
99
+ discussion threads, and any interface where Threads platform
100
+ connectivity and threaded conversations are featured.
101
+ </p>
102
+
103
+ {/* Stats */}
104
+ <div className="flex items-center justify-center gap-8 pt-8">
105
+ <div className="text-center">
106
+ <div className="text-3xl font-bold text-zinc-300">
107
+ Text Conversations
108
+ </div>
109
+ <div className="text-sm text-white/60">
110
+ Threaded discussions
111
+ </div>
112
+ </div>
113
+ <div className="h-8 w-px bg-white/20" />
114
+ <div className="text-center">
115
+ <div className="text-3xl font-bold text-gray-300">
116
+ Community Platform
117
+ </div>
118
+ <div className="text-sm text-white/60">
119
+ Social networking
120
+ </div>
121
+ </div>
122
+ <div className="h-8 w-px bg-white/20" />
123
+ <div className="text-center">
124
+ <div className="text-3xl font-bold text-neutral-300">
125
+ Meta Ecosystem
126
+ </div>
127
+ <div className="text-sm text-white/60">
128
+ Integrated platform
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ </div>
135
+
136
+ {/* Content */}
137
+ <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
138
+ {/* Quick Usage */}
139
+ <div className="!space-y-8">
140
+ <h2 className="text-center text-3xl font-bold !text-white">
141
+ Quick Start
142
+ </h2>
143
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
144
+ <div className="!space-y-4">
145
+ <h3 className="text-xl font-semibold !text-zinc-300">
146
+ Basic Usage
147
+ </h3>
148
+ <div className="rounded-lg bg-black/40 p-4">
149
+ <pre className="overflow-x-auto text-sm !text-green-300">
150
+ {`import { ThreadsIcon } from "@icons/threads-icon"
151
+
152
+ function SocialShare() {
153
+ return (
154
+ <button
155
+ onClick={shareToThreads}
156
+ className="flex items-center gap-2 p-2 rounded-lg
157
+ bg-black hover:bg-gray-800 border border-gray-700
158
+ transition-colors"
159
+ aria-label="Share on Threads"
160
+ >
161
+ <ThreadsIcon className="h-5 w-5 text-white" />
162
+ <span className="text-white">Share on Threads</span>
163
+ </button>
164
+ )
165
+ }`}
166
+ </pre>
167
+ </div>
168
+ </div>
169
+
170
+ <div className="!space-y-4">
171
+ <h3 className="text-xl font-semibold !text-zinc-300">
172
+ Live Preview
173
+ </h3>
174
+ <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
175
+ <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">
176
+ <ThreadsIcon className="h-5 w-5 text-white" />
177
+ <span className="font-medium text-white">
178
+ Share on Threads
179
+ </span>
180
+ </button>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ </div>
185
+
186
+ {/* Props Documentation */}
187
+ <div className="!space-y-8">
188
+ <h2 className="text-center text-3xl font-bold !text-white">
189
+ Props & Configuration
190
+ </h2>
191
+
192
+ <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
193
+ <div className="bg-white/5 p-4">
194
+ <h3 className="text-xl font-semibold !text-white">Props</h3>
195
+ </div>
196
+ <table className="!my-0 w-full">
197
+ <thead className="bg-white/5">
198
+ <tr className="border-b border-white/10">
199
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ Prop
201
+ </th>
202
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
203
+ Type
204
+ </th>
205
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
206
+ Default
207
+ </th>
208
+ <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
209
+ Description
210
+ </th>
211
+ </tr>
212
+ </thead>
213
+ <tbody>
214
+ <tr className="border-b border-white/5">
215
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
216
+ width
217
+ </td>
218
+ <td className="px-6 py-4 text-sm !text-white/70">
219
+ number | string
220
+ </td>
221
+ <td className="px-6 py-4 text-sm !text-white/50">
222
+ auto
223
+ </td>
224
+ <td className="px-6 py-4 text-sm !text-white/70">
225
+ Width of the icon (maintains aspect ratio)
226
+ </td>
227
+ </tr>
228
+ <tr className="border-b border-white/5 !bg-black/10">
229
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
230
+ height
231
+ </td>
232
+ <td className="px-6 py-4 text-sm !text-white/70">
233
+ number | string
234
+ </td>
235
+ <td className="px-6 py-4 text-sm !text-white/50">
236
+ auto
237
+ </td>
238
+ <td className="px-6 py-4 text-sm !text-white/70">
239
+ Height of the icon (maintains aspect ratio)
240
+ </td>
241
+ </tr>
242
+ <tr className="border-b border-white/5">
243
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
244
+ fill
245
+ </td>
246
+ <td className="px-6 py-4 text-sm !text-white/70">
247
+ string
248
+ </td>
249
+ <td className="px-6 py-4 text-sm !text-white/50">
250
+ currentColor
251
+ </td>
252
+ <td className="px-6 py-4 text-sm !text-white/70">
253
+ Fill color of the Threads "@" symbol
254
+ </td>
255
+ </tr>
256
+ <tr className="border-b border-white/5 !bg-black/10">
257
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
258
+ className
259
+ </td>
260
+ <td className="px-6 py-4 text-sm !text-white/70">
261
+ string
262
+ </td>
263
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
264
+ <td className="px-6 py-4 text-sm !text-white/70">
265
+ CSS classes for styling and sizing
266
+ </td>
267
+ </tr>
268
+ <tr className="border-b border-white/5">
269
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
270
+ onClick
271
+ </td>
272
+ <td className="px-6 py-4 text-sm !text-white/70">
273
+ function
274
+ </td>
275
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
276
+ <td className="px-6 py-4 text-sm !text-white/70">
277
+ Click handler for social interactions
278
+ </td>
279
+ </tr>
280
+ <tr className="!bg-black/10">
281
+ <td className="px-6 py-4 font-mono text-sm !text-zinc-300">
282
+ ...svgProps
283
+ </td>
284
+ <td className="px-6 py-4 text-sm !text-white/70">
285
+ SVGProps
286
+ </td>
287
+ <td className="px-6 py-4 text-sm !text-white/50">-</td>
288
+ <td className="px-6 py-4 text-sm !text-white/70">
289
+ All standard SVG element props
290
+ </td>
291
+ </tr>
292
+ </tbody>
293
+ </table>
294
+ </div>
295
+
296
+ <div className="rounded-lg border border-zinc-500/20 bg-zinc-500/10 p-4">
297
+ <div className="flex items-center gap-2 text-sm text-zinc-200">
298
+ <ThreadsIcon className="h-4 w-4" />
299
+ <span>
300
+ <strong>Brand Guidelines:</strong> Threads typically uses
301
+ black/white monochrome design for clean, text-focused
302
+ branding that emphasizes conversation over visual content.
303
+ </span>
304
+ </div>
305
+ </div>
306
+ </div>
307
+
308
+ {/* Size Variations */}
309
+ <div className="!space-y-8">
310
+ <h2 className="text-center text-3xl font-bold !text-white">
311
+ Size Variations
312
+ </h2>
313
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
314
+ <div className="!space-y-6">
315
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
316
+ <div className="!space-y-4">
317
+ <h3 className="text-lg font-semibold !text-zinc-300">
318
+ Standard Sizes
319
+ </h3>
320
+ <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
321
+ <div className="text-center">
322
+ <ThreadsIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
323
+ <span className="text-xs text-white/60">12px</span>
324
+ </div>
325
+ <div className="text-center">
326
+ <ThreadsIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
327
+ <span className="text-xs text-white/60">16px</span>
328
+ </div>
329
+ <div className="text-center">
330
+ <ThreadsIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
331
+ <span className="text-xs text-white/60">20px</span>
332
+ </div>
333
+ <div className="text-center">
334
+ <ThreadsIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
335
+ <span className="text-xs text-white/60">24px</span>
336
+ </div>
337
+ <div className="text-center">
338
+ <ThreadsIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
339
+ <span className="text-xs text-white/60">32px</span>
340
+ </div>
341
+ <div className="text-center">
342
+ <ThreadsIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
343
+ <span className="text-xs text-white/60">48px</span>
344
+ </div>
345
+ </div>
346
+ </div>
347
+
348
+ <div className="!space-y-4">
349
+ <h3 className="text-lg font-semibold !text-zinc-300">
350
+ Code Example
351
+ </h3>
352
+ <div className="rounded-lg bg-black/40 p-4">
353
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
354
+ {`// Small (16px) - inline social links
355
+ <ThreadsIcon className="h-4 w-4" />
356
+
357
+ // Medium (24px) - standard buttons
358
+ <ThreadsIcon className="h-6 w-6" />
359
+
360
+ // Large (32px) - prominent displays
361
+ <ThreadsIcon className="h-8 w-8" />
362
+
363
+ // Custom size with maintained aspect ratio
364
+ <ThreadsIcon width={40} height={40} />`}
365
+ </pre>
366
+ </div>
367
+ </div>
368
+ </div>
369
+ </div>
370
+ </div>
371
+ </div>
372
+
373
+ {/* Color & Styling */}
374
+ <div className="!space-y-8">
375
+ <h2 className="text-center text-3xl font-bold !text-white">
376
+ Color & Styling
377
+ </h2>
378
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
379
+ <div className="!space-y-4">
380
+ <h3 className="text-lg font-semibold !text-zinc-300">
381
+ Brand Colors
382
+ </h3>
383
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
384
+ <div className="flex items-center gap-4">
385
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
386
+ <ThreadsIcon className="h-6 w-6 text-white" />
387
+ </div>
388
+ <div>
389
+ <div className="text-sm font-medium text-white">
390
+ Official Black
391
+ </div>
392
+ <div className="text-xs text-white/60">
393
+ Primary brand color
394
+ </div>
395
+ </div>
396
+ </div>
397
+ <div className="flex items-center gap-4">
398
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg border border-gray-300 bg-white">
399
+ <ThreadsIcon className="h-6 w-6 text-black" />
400
+ </div>
401
+ <div>
402
+ <div className="text-sm font-medium text-white">
403
+ Inverted White
404
+ </div>
405
+ <div className="text-xs text-white/60">
406
+ Light backgrounds
407
+ </div>
408
+ </div>
409
+ </div>
410
+ <div className="flex items-center gap-4">
411
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-gray-600">
412
+ <ThreadsIcon className="h-6 w-6 text-white" />
413
+ </div>
414
+ <div>
415
+ <div className="text-sm font-medium text-white">
416
+ Neutral Gray
417
+ </div>
418
+ <div className="text-xs text-white/60">
419
+ Subtle integration
420
+ </div>
421
+ </div>
422
+ </div>
423
+ <div className="flex items-center gap-4">
424
+ <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500">
425
+ <ThreadsIcon className="h-6 w-6 text-white" />
426
+ </div>
427
+ <div>
428
+ <div className="text-sm font-medium text-white">
429
+ Accent Color
430
+ </div>
431
+ <div className="text-xs text-white/60">
432
+ Themed integration
433
+ </div>
434
+ </div>
435
+ </div>
436
+ </div>
437
+ </div>
438
+
439
+ <div className="!space-y-4">
440
+ <h3 className="text-lg font-semibold !text-zinc-300">
441
+ Usage Examples
442
+ </h3>
443
+ <div className="rounded-lg bg-black/40 p-4">
444
+ <pre className="overflow-x-auto text-sm !text-green-300">
445
+ {`// Official black on white
446
+ <ThreadsIcon className="h-6 w-6 text-black" />
447
+
448
+ // White on black (official)
449
+ <ThreadsIcon className="h-6 w-6 text-white" />
450
+
451
+ // Inherit parent text color
452
+ <ThreadsIcon className="h-5 w-5" />
453
+
454
+ // Custom themed color
455
+ <ThreadsIcon
456
+ className="h-6 w-6 text-blue-500"
457
+ />
458
+
459
+ // Hover state with transition
460
+ <ThreadsIcon
461
+ className="h-6 w-6 text-gray-400
462
+ hover:text-white transition-colors"
463
+ />
464
+
465
+ // Background with proper contrast
466
+ <div className="bg-black p-2 rounded">
467
+ <ThreadsIcon className="h-6 w-6 text-white" />
468
+ </div>`}
469
+ </pre>
470
+ </div>
471
+ </div>
472
+ </div>
473
+ </div>
474
+
475
+ {/* Usage Examples */}
476
+ <div className="!space-y-8">
477
+ <h2 className="text-center text-3xl font-bold !text-white">
478
+ Usage Examples
479
+ </h2>
480
+
481
+ <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
482
+ {/* Social Share Buttons */}
483
+ <div className="!space-y-4">
484
+ <h3 className="text-lg font-semibold !text-zinc-300">
485
+ Social Share Integration
486
+ </h3>
487
+ <div className="!space-y-4">
488
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
489
+ <div className="space-y-4">
490
+ <h4 className="mb-3 text-sm font-medium text-white">
491
+ Share this post
492
+ </h4>
493
+ <div className="flex flex-wrap gap-3">
494
+ <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">
495
+ <ThreadsIcon className="h-4 w-4 text-white" />
496
+ <span className="text-sm text-white">
497
+ Share on Threads
498
+ </span>
499
+ </button>
500
+ <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">
501
+ <span className="text-sm text-white">𝕏</span>
502
+ <span className="text-sm text-white">
503
+ Share on X
504
+ </span>
505
+ </button>
506
+ <button className="flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 transition-colors hover:bg-blue-700">
507
+ <span className="text-sm text-white">📘</span>
508
+ <span className="text-sm text-white">
509
+ Facebook
510
+ </span>
511
+ </button>
512
+ </div>
513
+ <div className="border-t border-white/10 pt-4">
514
+ <div className="flex items-center gap-3">
515
+ <span className="text-sm text-white/60">
516
+ Follow the conversation:
517
+ </span>
518
+ <div className="flex gap-2">
519
+ <a
520
+ href="#"
521
+ className="rounded border border-gray-700 bg-black p-2 transition-colors hover:bg-gray-800"
522
+ >
523
+ <ThreadsIcon className="h-4 w-4 text-white" />
524
+ </a>
525
+ <a
526
+ href="#"
527
+ className="rounded border border-gray-700 bg-black p-2 transition-colors hover:bg-gray-800"
528
+ >
529
+ <span className="text-sm text-white">𝕏</span>
530
+ </a>
531
+ <a
532
+ href="#"
533
+ className="rounded bg-blue-600 p-2 transition-colors hover:bg-blue-700"
534
+ >
535
+ <span className="text-sm text-white">📘</span>
536
+ </a>
537
+ </div>
538
+ </div>
539
+ </div>
540
+ </div>
541
+ </div>
542
+ <div className="rounded-lg bg-black/40 p-4">
543
+ <pre className="overflow-x-auto text-sm !text-green-300">
544
+ {`// Social sharing component with Threads
545
+ <div className="share-buttons">
546
+ <h4>Share this post</h4>
547
+ <div className="button-group">
548
+ <button
549
+ onClick={() => shareToThreads(postUrl, postTitle)}
550
+ className="share-btn threads-btn"
551
+ >
552
+ <ThreadsIcon className="h-4 w-4 text-white" />
553
+ <span>Share on Threads</span>
554
+ </button>
555
+ <TwitterShareButton />
556
+ <FacebookShareButton />
557
+ </div>
558
+ <div className="follow-section">
559
+ <span>Follow the conversation:</span>
560
+ <div className="social-links">
561
+ <a
562
+ href="https://threads.net/@username"
563
+ className="social-link threads-link"
564
+ aria-label="Follow us on Threads"
565
+ >
566
+ <ThreadsIcon className="h-4 w-4 text-white" />
567
+ </a>
568
+ <TwitterLink />
569
+ <FacebookLink />
570
+ </div>
571
+ </div>
572
+ </div>`}
573
+ </pre>
574
+ </div>
575
+ </div>
576
+ </div>
577
+
578
+ {/* Discussion Thread Widget */}
579
+ <div className="!space-y-4">
580
+ <h3 className="text-lg font-semibold !text-zinc-300">
581
+ Discussion Thread Widget
582
+ </h3>
583
+ <div className="!space-y-4">
584
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
585
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
586
+ <div className="border-b border-white/10 bg-white/5 p-4">
587
+ <div className="flex items-center justify-between">
588
+ <div className="flex items-center gap-3">
589
+ <ThreadsIcon className="h-5 w-5 text-white" />
590
+ <div>
591
+ <h4 className="text-sm font-semibold text-white">
592
+ Latest Discussion
593
+ </h4>
594
+ <p className="text-xs text-white/60">
595
+ Join the conversation on Threads
596
+ </p>
597
+ </div>
598
+ </div>
599
+ <a
600
+ href="#"
601
+ className="text-xs text-zinc-400 transition-colors hover:text-white"
602
+ >
603
+ View Thread
604
+ </a>
605
+ </div>
606
+ </div>
607
+ <div className="space-y-3 p-4">
608
+ <div className="flex gap-3">
609
+ <div className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-white/10">
610
+ <span className="text-xs">👤</span>
611
+ </div>
612
+ <div className="flex-1">
613
+ <div className="mb-1 flex items-center gap-2">
614
+ <span className="text-sm font-medium text-white">
615
+ Alex Chen
616
+ </span>
617
+ <span className="text-xs text-white/40">
618
+ @alexchen
619
+ </span>
620
+ <span className="text-xs text-white/40">
621
+
622
+ </span>
623
+ <span className="text-xs text-white/40">
624
+ 2h
625
+ </span>
626
+ </div>
627
+ <p className="text-sm text-white/80">
628
+ Really excited about the new design system
629
+ updates. The accessibility improvements are
630
+ game-changing! 🎨
631
+ </p>
632
+ <div className="mt-2 flex items-center gap-4">
633
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
634
+ Reply
635
+ </button>
636
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
637
+ 💬 12
638
+ </button>
639
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
640
+ 🔄 8
641
+ </button>
642
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
643
+ ❤️ 24
644
+ </button>
645
+ </div>
646
+ </div>
647
+ </div>
648
+ <div className="flex gap-3">
649
+ <div className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-white/10">
650
+ <span className="text-xs">👤</span>
651
+ </div>
652
+ <div className="flex-1">
653
+ <div className="mb-1 flex items-center gap-2">
654
+ <span className="text-sm font-medium text-white">
655
+ Sarah Kim
656
+ </span>
657
+ <span className="text-xs text-white/40">
658
+ @sarahk
659
+ </span>
660
+ <span className="text-xs text-white/40">
661
+
662
+ </span>
663
+ <span className="text-xs text-white/40">
664
+ 1h
665
+ </span>
666
+ </div>
667
+ <p className="text-sm text-white/80">
668
+ @alexchen Totally agree! The color contrast
669
+ ratios are so much better now. Perfect for our
670
+ vision-impaired users.
671
+ </p>
672
+ <div className="mt-2 flex items-center gap-4">
673
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
674
+ Reply
675
+ </button>
676
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
677
+ 💬 5
678
+ </button>
679
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
680
+ 🔄 3
681
+ </button>
682
+ <button className="text-xs text-white/60 transition-colors hover:text-white">
683
+ ❤️ 15
684
+ </button>
685
+ </div>
686
+ </div>
687
+ </div>
688
+ <div className="border-t border-white/10 pt-3">
689
+ <a
690
+ href="#"
691
+ className="flex items-center gap-2 text-sm text-zinc-400 transition-colors hover:text-white"
692
+ >
693
+ <ThreadsIcon className="h-4 w-4" />
694
+ <span>Continue reading on Threads</span>
695
+ </a>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ </div>
700
+ <div className="rounded-lg bg-black/40 p-4">
701
+ <pre className="overflow-x-auto text-sm !text-green-300">
702
+ {`// Discussion thread widget
703
+ <div className="threads-widget">
704
+ <div className="widget-header">
705
+ <div className="platform-info">
706
+ <ThreadsIcon className="h-5 w-5 text-white" />
707
+ <div className="platform-details">
708
+ <h3>Latest Discussion</h3>
709
+ <p>Join the conversation on Threads</p>
710
+ </div>
711
+ </div>
712
+ <a href={threadsUrl} className="view-thread-link">
713
+ View Thread
714
+ </a>
715
+ </div>
716
+ <div className="thread-posts">
717
+ {threadPosts.map(post => (
718
+ <div key={post.id} className="thread-post">
719
+ <UserAvatar user={post.author} />
720
+ <div className="post-content">
721
+ <PostHeader post={post} />
722
+ <PostText text={post.text} />
723
+ <PostActions
724
+ post={post}
725
+ onReply={handleReply}
726
+ onRepost={handleRepost}
727
+ onLike={handleLike}
728
+ />
729
+ </div>
730
+ </div>
731
+ ))}
732
+ </div>
733
+ <div className="widget-footer">
734
+ <a href={threadsUrl} className="continue-reading">
735
+ <ThreadsIcon className="h-4 w-4" />
736
+ <span>Continue reading on Threads</span>
737
+ </a>
738
+ </div>
739
+ </div>`}
740
+ </pre>
741
+ </div>
742
+ </div>
743
+ </div>
744
+
745
+ {/* Community Profile */}
746
+ <div className="!space-y-4">
747
+ <h3 className="text-lg font-semibold !text-zinc-300">
748
+ Community Profile
749
+ </h3>
750
+ <div className="!space-y-4">
751
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
752
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
753
+ <div className="relative h-32 bg-gradient-to-r from-gray-800 to-zinc-800">
754
+ <div className="absolute -bottom-8 left-6">
755
+ <div className="flex h-16 w-16 items-center justify-center rounded-full border-4 border-black/50 bg-white/10">
756
+ <span className="text-2xl">💬</span>
757
+ </div>
758
+ </div>
759
+ </div>
760
+ <div className="p-6 pt-12">
761
+ <div className="flex items-start justify-between">
762
+ <div>
763
+ <h4 className="text-lg font-semibold text-white">
764
+ Design Community
765
+ </h4>
766
+ <p className="text-sm text-white/60">
767
+ @designcommunity
768
+ </p>
769
+ <p className="mt-2 text-sm text-white/70">
770
+ A space for designers to share ideas, get
771
+ feedback, and discuss the latest trends in
772
+ UI/UX 🎨
773
+ </p>
774
+ </div>
775
+ <button className="rounded-lg bg-white px-4 py-2 font-medium text-black transition-colors hover:bg-gray-100">
776
+ Follow
777
+ </button>
778
+ </div>
779
+ <div className="mt-4 flex items-center gap-6">
780
+ <div className="text-sm">
781
+ <span className="font-medium text-white">
782
+ 2,847
783
+ </span>
784
+ <span className="ml-1 text-white/60">
785
+ Threads
786
+ </span>
787
+ </div>
788
+ <div className="text-sm">
789
+ <span className="font-medium text-white">
790
+ 15.2k
791
+ </span>
792
+ <span className="ml-1 text-white/60">
793
+ Followers
794
+ </span>
795
+ </div>
796
+ <div className="text-sm">
797
+ <span className="font-medium text-white">
798
+ 943
799
+ </span>
800
+ <span className="ml-1 text-white/60">
801
+ Following
802
+ </span>
803
+ </div>
804
+ </div>
805
+ <div className="mt-4 flex items-center gap-4 border-t border-white/10 pt-4">
806
+ <span className="text-sm text-white/60">
807
+ Join the conversation:
808
+ </span>
809
+ <div className="flex gap-2">
810
+ <a
811
+ href="#"
812
+ className="rounded border border-gray-700 bg-black p-2 transition-colors hover:bg-gray-800"
813
+ aria-label="Follow on Threads"
814
+ >
815
+ <ThreadsIcon className="h-4 w-4 text-white" />
816
+ </a>
817
+ <a
818
+ href="#"
819
+ className="rounded bg-blue-500 p-2 transition-colors hover:bg-blue-600"
820
+ aria-label="Connect on Discord"
821
+ >
822
+ <span className="text-sm text-white">🎮</span>
823
+ </a>
824
+ <a
825
+ href="#"
826
+ className="rounded bg-gray-600 p-2 transition-colors hover:bg-gray-700"
827
+ aria-label="View Website"
828
+ >
829
+ <span className="text-sm text-white">🌐</span>
830
+ </a>
831
+ </div>
832
+ </div>
833
+ </div>
834
+ </div>
835
+ </div>
836
+ <div className="rounded-lg bg-black/40 p-4">
837
+ <pre className="overflow-x-auto text-sm !text-green-300">
838
+ {`// Community profile with Threads integration
839
+ <div className="community-profile">
840
+ <div className="profile-header">
841
+ <CoverImage />
842
+ <CommunityAvatar />
843
+ </div>
844
+ <div className="profile-content">
845
+ <div className="community-info">
846
+ <CommunityDetails community={community} />
847
+ <FollowButton communityId={community.id} />
848
+ </div>
849
+ <CommunityStats stats={community.stats} />
850
+ <div className="social-links">
851
+ <span>Join the conversation:</span>
852
+ <div className="link-group">
853
+ <a
854
+ href={community.socialLinks.threads}
855
+ className="social-link threads-link"
856
+ aria-label="Follow on Threads"
857
+ >
858
+ <ThreadsIcon className="h-4 w-4 text-white" />
859
+ </a>
860
+ <DiscordLink url={community.socialLinks.discord} />
861
+ <WebsiteLink url={community.website} />
862
+ </div>
863
+ </div>
864
+ </div>
865
+ </div>`}
866
+ </pre>
867
+ </div>
868
+ </div>
869
+ </div>
870
+
871
+ {/* Text-Based Content Hub */}
872
+ <div className="!space-y-4">
873
+ <h3 className="text-lg font-semibold !text-zinc-300">
874
+ Text-Based Content Hub
875
+ </h3>
876
+ <div className="!space-y-4">
877
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
878
+ <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
879
+ <div className="p-6">
880
+ <div className="mb-6 text-center">
881
+ <h4 className="mb-2 text-xl font-semibold text-white">
882
+ Join the Conversation
883
+ </h4>
884
+ <p className="text-sm text-white/70">
885
+ Share your thoughts and connect with like-minded
886
+ people
887
+ </p>
888
+ </div>
889
+ <div className="mb-6 grid grid-cols-2 gap-4">
890
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
891
+ <div className="mb-3 flex h-12 w-12 items-center justify-center rounded-lg border border-gray-700 bg-black">
892
+ <ThreadsIcon className="h-6 w-6 text-white" />
893
+ </div>
894
+ <h5 className="mb-2 text-sm font-semibold text-white">
895
+ Text Discussions
896
+ </h5>
897
+ <p className="text-xs text-white/60">
898
+ Share your thoughts in threaded conversations
899
+ with the community
900
+ </p>
901
+ </div>
902
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
903
+ <div className="mb-3 flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
904
+ <span className="text-xl">🧵</span>
905
+ </div>
906
+ <h5 className="mb-2 text-sm font-semibold text-white">
907
+ Follow Threads
908
+ </h5>
909
+ <p className="text-xs text-white/60">
910
+ Stay updated on conversations that matter to
911
+ you
912
+ </p>
913
+ </div>
914
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
915
+ <div className="mb-3 flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
916
+ <span className="text-xl">🔗</span>
917
+ </div>
918
+ <h5 className="mb-2 text-sm font-semibold text-white">
919
+ Share Ideas
920
+ </h5>
921
+ <p className="text-xs text-white/60">
922
+ Connect your content across different
923
+ platforms
924
+ </p>
925
+ </div>
926
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
927
+ <div className="mb-3 flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
928
+ <span className="text-xl">👥</span>
929
+ </div>
930
+ <h5 className="mb-2 text-sm font-semibold text-white">
931
+ Build Community
932
+ </h5>
933
+ <p className="text-xs text-white/60">
934
+ Create meaningful connections through
935
+ authentic conversations
936
+ </p>
937
+ </div>
938
+ </div>
939
+ <div className="text-center">
940
+ <a
941
+ href="#"
942
+ className="inline-flex items-center gap-2 rounded-lg border border-gray-700 bg-black px-6 py-3 font-medium text-white transition-colors hover:bg-gray-800"
943
+ >
944
+ <ThreadsIcon className="h-5 w-5" />
945
+ <span>Start a Thread</span>
946
+ </a>
947
+ </div>
948
+ </div>
949
+ </div>
950
+ </div>
951
+ <div className="rounded-lg bg-black/40 p-4">
952
+ <pre className="overflow-x-auto text-sm !text-green-300">
953
+ {`// Text-based content hub with Threads integration
954
+ <div className="content-hub">
955
+ <div className="hub-header">
956
+ <h2>Join the Conversation</h2>
957
+ <p>Share your thoughts and connect with like-minded people</p>
958
+ </div>
959
+ <div className="feature-grid">
960
+ <div className="feature-card threads-feature">
961
+ <div className="feature-icon">
962
+ <ThreadsIcon className="h-6 w-6 text-white" />
963
+ </div>
964
+ <h3>Text Discussions</h3>
965
+ <p>Share your thoughts in threaded conversations with the community</p>
966
+ </div>
967
+ <FollowThreadsFeature />
968
+ <ShareIdeasFeature />
969
+ <BuildCommunityFeature />
970
+ </div>
971
+ <div className="cta-section">
972
+ <a
973
+ href={threadsCreateUrl}
974
+ className="cta-button threads-cta"
975
+ >
976
+ <ThreadsIcon className="h-5 w-5" />
977
+ <span>Start a Thread</span>
978
+ </a>
979
+ </div>
980
+ </div>`}
981
+ </pre>
982
+ </div>
983
+ </div>
984
+ </div>
985
+ </div>
986
+ </div>
987
+
988
+ {/* Accessibility */}
989
+ <div className="!space-y-8">
990
+ <h2 className="text-center text-3xl font-bold !text-white">
991
+ Accessibility Features
992
+ </h2>
993
+ <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
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-green-300">
996
+ ✅ Built-in Features
997
+ </h3>
998
+ <ul className="!space-y-2 text-sm !text-white/70">
999
+ <li className="!text-white/70">
1000
+ Uses Radix UI AccessibleIcon wrapper
1001
+ </li>
1002
+ <li className="!text-white/70">
1003
+ Provides screen reader label "Threads icon"
1004
+ </li>
1005
+ <li className="!text-white/70">
1006
+ Supports keyboard navigation when interactive
1007
+ </li>
1008
+ <li className="!text-white/70">
1009
+ High contrast design for visibility
1010
+ </li>
1011
+ <li className="!text-white/70">
1012
+ Maintains aspect ratio across all sizes
1013
+ </li>
1014
+ </ul>
1015
+ </div>
1016
+
1017
+ <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
1018
+ <h3 className="text-lg font-semibold !text-zinc-300">
1019
+ 💡 Best Practices
1020
+ </h3>
1021
+ <ul className="!space-y-2 text-sm text-white/70">
1022
+ <li className="!text-white/70">
1023
+ Always provide descriptive aria-labels for Threads
1024
+ actions
1025
+ </li>
1026
+ <li className="!text-white/70">
1027
+ Use Threads' text-focused branding consistently
1028
+ </li>
1029
+ <li className="!text-white/70">
1030
+ Ensure sufficient contrast with monochrome design
1031
+ </li>
1032
+ <li className="!text-white/70">
1033
+ Include external link indicators for Threads URLs
1034
+ </li>
1035
+ <li className="!text-white/70">
1036
+ Consider conversation context in related features
1037
+ </li>
1038
+ </ul>
1039
+ </div>
1040
+ </div>
1041
+
1042
+ <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1043
+ <h3 className="mb-4 text-lg font-semibold !text-blue-300">
1044
+ Proper ARIA Implementation
1045
+ </h3>
1046
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
1047
+ <div className="rounded-lg bg-black/40 p-4">
1048
+ <pre className="overflow-x-auto text-sm !text-cyan-300">
1049
+ {`// Threads profile link
1050
+ <a
1051
+ href="https://threads.net/@username"
1052
+ className="threads-link"
1053
+ aria-label="Follow @username on Threads"
1054
+ target="_blank"
1055
+ rel="noopener noreferrer"
1056
+ >
1057
+ <ThreadsIcon className="h-5 w-5 text-white" />
1058
+ </a>
1059
+
1060
+ // Discussion thread widget
1061
+ <div className="threads-widget">
1062
+ <h2 id="discussion-title">Latest Discussion</h2>
1063
+ <div
1064
+ className="thread-posts"
1065
+ role="feed"
1066
+ aria-labelledby="discussion-title"
1067
+ >
1068
+ {posts.map(post => (
1069
+ <article
1070
+ key={post.id}
1071
+ aria-label={post.author.name + " posted: " + post.text}
1072
+ >
1073
+ <PostContent post={post} />
1074
+ </article>
1075
+ ))}
1076
+ </div>
1077
+ <a
1078
+ href={threadsUrl}
1079
+ aria-label="Continue reading this discussion on Threads"
1080
+ >
1081
+ <ThreadsIcon className="h-4 w-4" />
1082
+ <span>Continue reading on Threads</span>
1083
+ </a>
1084
+ </div>
1085
+
1086
+ // Share to Threads button
1087
+ <button
1088
+ onClick={shareToThreads}
1089
+ className="share-btn"
1090
+ aria-label="Share this content to Threads"
1091
+ >
1092
+ <ThreadsIcon className="h-4 w-4" />
1093
+ <span>Share on Threads</span>
1094
+ </button>
1095
+
1096
+ // Community profile with Threads emphasis
1097
+ <div className="community-profile">
1098
+ <div className="profile-header">
1099
+ <h1>{community.name}</h1>
1100
+ <div className="community-social">
1101
+ <a
1102
+ href={community.threads}
1103
+ className="primary-social-link"
1104
+ aria-label={"Join " + community.name + " community on Threads"}
1105
+ >
1106
+ <ThreadsIcon className="h-5 w-5" />
1107
+ <span className="sr-only">Primary discussion platform</span>
1108
+ </a>
1109
+ </div>
1110
+ </div>
1111
+ </div>
1112
+
1113
+ // Thread creation widget
1114
+ <div
1115
+ className="thread-composer"
1116
+ role="form"
1117
+ aria-label="Create a new thread"
1118
+ >
1119
+ <textarea
1120
+ aria-label="What's on your mind?"
1121
+ placeholder="Start a thread..."
1122
+ />
1123
+ <button
1124
+ type="submit"
1125
+ aria-label="Post thread to Threads"
1126
+ >
1127
+ <ThreadsIcon className="h-4 w-4" />
1128
+ <span>Post Thread</span>
1129
+ </button>
1130
+ </div>`}
1131
+ </pre>
1132
+ </div>
1133
+ <div className="!space-y-4">
1134
+ <p className="text-sm !text-white/70">
1135
+ When using ThreadsIcon for conversation integration,
1136
+ always provide clear context about the discussion topic
1137
+ and ensure users understand the threading nature of the
1138
+ platform.
1139
+ </p>
1140
+ <div className="rounded-lg border border-zinc-500/20 bg-zinc-500/10 p-4">
1141
+ <div className="flex items-center gap-2 text-sm text-zinc-200">
1142
+ <ThreadsIcon className="h-4 w-4" />
1143
+ <span>
1144
+ Consider conversation flow and threading context for
1145
+ screen readers
1146
+ </span>
1147
+ </div>
1148
+ </div>
1149
+ </div>
1150
+ </div>
1151
+ </div>
1152
+ </div>
1153
+
1154
+ {/* Related Icons */}
1155
+ <div className="!space-y-8">
1156
+ <h2 className="text-center text-3xl font-bold !text-white">
1157
+ Related Icons
1158
+ </h2>
1159
+ <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
1160
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1161
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-black">
1162
+ <span className="!text-2xl !text-white">𝕏</span>
1163
+ </div>
1164
+ <div>
1165
+ <div className="font-medium text-white">TwitterXIcon</div>
1166
+ <div className="text-xs text-white/60">
1167
+ Social network
1168
+ </div>
1169
+ </div>
1170
+ </div>
1171
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1172
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-gradient-to-br from-pink-500 via-purple-500 to-orange-500">
1173
+ <span className="!text-2xl !text-white">📷</span>
1174
+ </div>
1175
+ <div>
1176
+ <div className="font-medium text-white">
1177
+ InstagramIcon
1178
+ </div>
1179
+ <div className="text-xs text-white/60">
1180
+ Visual content
1181
+ </div>
1182
+ </div>
1183
+ </div>
1184
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1185
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
1186
+ <span className="!text-2xl !text-white">📘</span>
1187
+ </div>
1188
+ <div>
1189
+ <div className="font-medium text-white">FacebookIcon</div>
1190
+ <div className="text-xs text-white/60">
1191
+ Social platform
1192
+ </div>
1193
+ </div>
1194
+ </div>
1195
+ <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1196
+ <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-600/20">
1197
+ <span className="!text-2xl !text-white">💼</span>
1198
+ </div>
1199
+ <div>
1200
+ <div className="font-medium text-white">LinkedInIcon</div>
1201
+ <div className="text-xs text-white/60">
1202
+ Professional network
1203
+ </div>
1204
+ </div>
1205
+ </div>
1206
+ </div>
1207
+ </div>
1208
+ </div>
1209
+
1210
+ {/* Footer */}
1211
+ <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
1212
+ <div className="!mx-auto max-w-7xl px-6 py-8">
1213
+ <div className="!space-y-4 text-center">
1214
+ <p className="!text-white/60">
1215
+ ThreadsIcon is part of the Aural UI icon library, built with
1216
+ accessibility and conversation platform integration best
1217
+ practices in mind.
1218
+ </p>
1219
+ <p className="text-sm !text-white/40">
1220
+ All icons use Radix UI's AccessibleIcon for screen reader
1221
+ compatibility and follow WCAG guidelines for social platform
1222
+ recognition and conversation accessibility.
1223
+ </p>
1224
+ </div>
1225
+ </div>
1226
+ </div>
1227
+ </div>
1228
+ </>
1229
+ ),
1230
+ },
1231
+ },
1232
+ tags: ["autodocs"],
1233
+ argTypes: {
1234
+ width: {
1235
+ control: { type: "range", min: 8, max: 96, step: 2 },
1236
+ description: "Width of the icon (maintains aspect ratio)",
1237
+ },
1238
+ height: {
1239
+ control: { type: "range", min: 8, max: 96, step: 2 },
1240
+ description: "Height of the icon (maintains aspect ratio)",
1241
+ },
1242
+ fill: {
1243
+ control: "color",
1244
+ description: "Fill color of the Threads @ symbol",
1245
+ },
1246
+ className: {
1247
+ control: "text",
1248
+ description: "CSS classes for styling and sizing",
1249
+ },
1250
+ onClick: {
1251
+ action: "clicked",
1252
+ description: "Click handler for social interactions",
1253
+ },
1254
+ },
1255
+ }
1256
+
1257
+ export default meta
1258
+ type Story = StoryObj<typeof ThreadsIcon>
1259
+
1260
+ // Story parameters for consistent dark theme
1261
+ const storyParameters = {
1262
+ backgrounds: {
1263
+ default: "dark",
1264
+ values: [
1265
+ { name: "dark", value: "#0a0a0a" },
1266
+ { name: "darker", value: "#000000" },
1267
+ ],
1268
+ },
1269
+ }
1270
+
1271
+ export const Default: Story = {
1272
+ args: {
1273
+ className: "h-8 w-8 text-white",
1274
+ },
1275
+ parameters: storyParameters,
1276
+ render: (args) => (
1277
+ <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1278
+ <ThreadsIcon {...args} />
1279
+ </div>
1280
+ ),
1281
+ }
1282
+
1283
+ export const SizeVariations: Story = {
1284
+ parameters: {
1285
+ ...storyParameters,
1286
+ docs: {
1287
+ description: {
1288
+ story:
1289
+ "ThreadsIcon in different sizes, from small inline social links to large conversation displays.",
1290
+ },
1291
+ },
1292
+ },
1293
+ render: () => (
1294
+ <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">
1295
+ <div className="text-center">
1296
+ <ThreadsIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
1297
+ <span className="text-xs text-white/60">12px</span>
1298
+ </div>
1299
+ <div className="text-center">
1300
+ <ThreadsIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
1301
+ <span className="text-xs text-white/60">16px</span>
1302
+ </div>
1303
+ <div className="text-center">
1304
+ <ThreadsIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
1305
+ <span className="text-xs text-white/60">20px</span>
1306
+ </div>
1307
+ <div className="text-center">
1308
+ <ThreadsIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
1309
+ <span className="text-xs text-white/60">24px</span>
1310
+ </div>
1311
+ <div className="text-center">
1312
+ <ThreadsIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
1313
+ <span className="text-xs text-white/60">32px</span>
1314
+ </div>
1315
+ <div className="text-center">
1316
+ <ThreadsIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
1317
+ <span className="text-xs text-white/60">48px</span>
1318
+ </div>
1319
+ </div>
1320
+ ),
1321
+ }
1322
+
1323
+ export const BrandColors: Story = {
1324
+ parameters: {
1325
+ ...storyParameters,
1326
+ docs: {
1327
+ description: {
1328
+ story:
1329
+ "ThreadsIcon in different brand-compliant colors for various design contexts.",
1330
+ },
1331
+ },
1332
+ },
1333
+ render: () => (
1334
+ <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">
1335
+ <div className="text-center">
1336
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-black">
1337
+ <ThreadsIcon className="h-8 w-8 text-white" />
1338
+ </div>
1339
+ <div className="text-sm font-medium text-white">Official Black</div>
1340
+ <div className="text-xs text-white/60">Primary brand</div>
1341
+ </div>
1342
+ <div className="text-center">
1343
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-300 bg-white">
1344
+ <ThreadsIcon className="h-8 w-8 text-black" />
1345
+ </div>
1346
+ <div className="text-sm font-medium text-white">Inverted White</div>
1347
+ <div className="text-xs text-white/60">Light backgrounds</div>
1348
+ </div>
1349
+ <div className="text-center">
1350
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-600">
1351
+ <ThreadsIcon className="h-8 w-8 text-white" />
1352
+ </div>
1353
+ <div className="text-sm font-medium text-white">Neutral Gray</div>
1354
+ <div className="text-xs text-white/60">Subtle integration</div>
1355
+ </div>
1356
+ <div className="text-center">
1357
+ <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-blue-500">
1358
+ <ThreadsIcon className="h-8 w-8 text-white" />
1359
+ </div>
1360
+ <div className="text-sm font-medium text-white">Accent Color</div>
1361
+ <div className="text-xs text-white/60">Themed integration</div>
1362
+ </div>
1363
+ </div>
1364
+ ),
1365
+ }
1366
+
1367
+ export const UsageExamples: Story = {
1368
+ parameters: {
1369
+ ...storyParameters,
1370
+ docs: {
1371
+ description: {
1372
+ story:
1373
+ "Real-world usage examples showing ThreadsIcon in different conversation and social media contexts.",
1374
+ },
1375
+ },
1376
+ },
1377
+ render: () => (
1378
+ <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1379
+ {/* Share Button */}
1380
+ <div className="!space-y-2">
1381
+ <h3 className="text-sm font-medium text-white">Social Share Button</h3>
1382
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1383
+ <div className="flex gap-3">
1384
+ <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">
1385
+ <ThreadsIcon className="h-4 w-4 text-white" />
1386
+ <span className="text-sm text-white">Share on Threads</span>
1387
+ </button>
1388
+ <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">
1389
+ <span className="text-sm text-white">𝕏</span>
1390
+ <span className="text-sm text-white">Share on X</span>
1391
+ </button>
1392
+ </div>
1393
+ </div>
1394
+ </div>
1395
+
1396
+ {/* Discussion Widget */}
1397
+ <div className="!space-y-2">
1398
+ <h3 className="text-sm font-medium text-white">
1399
+ Discussion Thread Widget
1400
+ </h3>
1401
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1402
+ <div className="mb-3 flex items-center justify-between">
1403
+ <div className="flex items-center gap-2">
1404
+ <ThreadsIcon className="h-4 w-4 text-white" />
1405
+ <span className="text-sm font-medium text-white">
1406
+ Latest Discussion
1407
+ </span>
1408
+ </div>
1409
+ <a
1410
+ href="#"
1411
+ className="text-xs text-zinc-400 transition-colors hover:text-white"
1412
+ >
1413
+ View Thread
1414
+ </a>
1415
+ </div>
1416
+ <div className="space-y-2">
1417
+ <div className="flex gap-2">
1418
+ <div className="flex h-6 w-6 items-center justify-center rounded-full bg-white/10">
1419
+ <span className="text-xs">👤</span>
1420
+ </div>
1421
+ <div className="flex-1">
1422
+ <div className="text-xs text-white/60">Alex Chen • 2h</div>
1423
+ <div className="text-sm text-white/80">
1424
+ Really excited about the new updates! 🎨
1425
+ </div>
1426
+ </div>
1427
+ </div>
1428
+ </div>
1429
+ </div>
1430
+ </div>
1431
+
1432
+ {/* Social Links */}
1433
+ <div className="!space-y-2">
1434
+ <h3 className="text-sm font-medium text-white">Social Media Links</h3>
1435
+ <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1436
+ <div className="flex items-center gap-3">
1437
+ <span className="text-sm text-white/60">
1438
+ Follow the conversation:
1439
+ </span>
1440
+ <div className="flex gap-2">
1441
+ <a
1442
+ href="#"
1443
+ className="rounded border border-gray-700 bg-black p-2 transition-colors hover:bg-gray-800"
1444
+ >
1445
+ <ThreadsIcon className="h-4 w-4 text-white" />
1446
+ </a>
1447
+ <a
1448
+ href="#"
1449
+ className="rounded border border-gray-700 bg-black p-2 transition-colors hover:bg-gray-800"
1450
+ >
1451
+ <span className="text-sm text-white">𝕏</span>
1452
+ </a>
1453
+ <a
1454
+ href="#"
1455
+ className="rounded bg-blue-600 p-2 transition-colors hover:bg-blue-700"
1456
+ >
1457
+ <span className="text-sm text-white">📘</span>
1458
+ </a>
1459
+ </div>
1460
+ </div>
1461
+ </div>
1462
+ </div>
1463
+ </div>
1464
+ ),
1465
+ }
1466
+
1467
+ export const Playground: Story = {
1468
+ parameters: {
1469
+ ...storyParameters,
1470
+ docs: {
1471
+ description: {
1472
+ story:
1473
+ "Interactive playground to experiment with different ThreadsIcon configurations.",
1474
+ },
1475
+ },
1476
+ },
1477
+ args: {
1478
+ width: 24,
1479
+ height: 24,
1480
+ className: "text-white",
1481
+ },
1482
+ render: (args) => (
1483
+ <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1484
+ <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1485
+ <ThreadsIcon {...args} />
1486
+ </div>
1487
+ </div>
1488
+ ),
1489
+ }