aural-ui 4.0.1 → 4.2.0

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 (175) hide show
  1. package/README.md +8 -1
  2. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1228
  3. package/dist/components/avatar/Avatar.stories.tsx +219 -235
  4. package/dist/components/badge/Badge.stories.tsx +379 -116
  5. package/dist/components/banner/Banner.stories.tsx +445 -391
  6. package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
  7. package/dist/components/button/Button.stories.tsx +585 -230
  8. package/dist/components/card/Card.stories.tsx +619 -301
  9. package/dist/components/char-count/CharCount.stories.tsx +350 -248
  10. package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
  11. package/dist/components/chip/Chip.stories.tsx +362 -168
  12. package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -636
  13. package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
  14. package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
  15. package/dist/components/command/Command.stories.tsx +530 -867
  16. package/dist/components/dialog/Dialog.stories.tsx +501 -950
  17. package/dist/components/divider/Divider.stories.tsx +264 -527
  18. package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
  19. package/dist/components/drawer/Drawer.stories.tsx +659 -1023
  20. package/dist/components/dropdown/Dropdown.stories.tsx +643 -1028
  21. package/dist/components/form/Form.stories.tsx +560 -274
  22. package/dist/components/helper-text/HelperText.stories.tsx +199 -200
  23. package/dist/components/hover-card/HoverCard.stories.tsx +318 -1254
  24. package/dist/components/icon-button/IconButton.stories.tsx +837 -194
  25. package/dist/components/if-else/if-else.stories.tsx +370 -83
  26. package/dist/components/input/Input.stories.tsx +436 -368
  27. package/dist/components/label/Label.stories.tsx +156 -154
  28. package/dist/components/list/List.stories.tsx +484 -835
  29. package/dist/components/marquee/Marquee.stories.tsx +356 -712
  30. package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -422
  31. package/dist/components/overlay/Overlay.stories.tsx +452 -824
  32. package/dist/components/pagination/Pagination.stories.tsx +721 -210
  33. package/dist/components/popover/Popover.stories.tsx +481 -896
  34. package/dist/components/radio/Radio.stories.tsx +432 -124
  35. package/dist/components/resizable/Resizable.stories.tsx +495 -799
  36. package/dist/components/scroll-area/ScrollArea.stories.tsx +383 -1059
  37. package/dist/components/search/Search.stories.tsx +312 -595
  38. package/dist/components/select/Select.stories.tsx +684 -789
  39. package/dist/components/sheet/Sheet.stories.tsx +671 -950
  40. package/dist/components/skelton/Skelton.stories.tsx +230 -764
  41. package/dist/components/slider/Slider.stories.tsx +383 -760
  42. package/dist/components/stepper/Stepper.stories.tsx +371 -514
  43. package/dist/components/switch/Switch.stories.tsx +461 -208
  44. package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
  45. package/dist/components/table/Table.stories.tsx +770 -916
  46. package/dist/components/tabs/Tabs.stories.tsx +458 -1455
  47. package/dist/components/tag/Tag.stories.tsx +714 -542
  48. package/dist/components/textarea/TextArea.stories.tsx +621 -562
  49. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -154
  50. package/dist/components/toast/Toast.stories.tsx +452 -1339
  51. package/dist/components/toggle/Toggle.stories.tsx +488 -931
  52. package/dist/components/tooltip/Tooltip.stories.tsx +344 -1388
  53. package/dist/components/typography/Typography.stories.tsx +406 -89
  54. package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
  55. package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
  56. package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
  57. package/dist/icons/Icons.stories.tsx +0 -12
  58. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +223 -1060
  59. package/dist/icons/alert-icon/AlertIcon.stories.tsx +106 -968
  60. package/dist/icons/all-icons.tsx +37 -16
  61. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +137 -1010
  62. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +145 -935
  63. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +132 -1046
  64. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +134 -986
  65. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +135 -1028
  66. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +133 -971
  67. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +145 -1123
  68. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +143 -1252
  69. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +123 -632
  70. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +141 -1223
  71. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +164 -1018
  72. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +121 -1236
  73. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +121 -1213
  74. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +116 -893
  75. package/dist/icons/camera-icon/CameraIcon.stories.tsx +109 -1254
  76. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +114 -975
  77. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +157 -994
  78. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +160 -992
  79. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +140 -970
  80. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +126 -993
  81. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +144 -987
  82. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +141 -1007
  83. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +147 -1187
  84. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +110 -476
  85. package/dist/icons/coin-icon/CoinIcon.stories.tsx +120 -1364
  86. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +113 -1360
  87. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +111 -942
  88. package/dist/icons/command-icon/CommandIcon.stories.tsx +124 -1087
  89. package/dist/icons/copy-icon/CopyIcon.stories.tsx +119 -996
  90. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +144 -1046
  91. package/dist/icons/cross-icon/CrossIcon.stories.tsx +136 -999
  92. package/dist/icons/download-icon/DownloadIcon.stories.tsx +123 -857
  93. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +121 -1080
  94. package/dist/icons/email-icon/EmailIcon.stories.tsx +112 -979
  95. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +109 -1146
  96. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +141 -1068
  97. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +140 -1081
  98. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +124 -1050
  99. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +123 -1091
  100. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +122 -633
  101. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +116 -1087
  102. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +166 -1020
  103. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +112 -1182
  104. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +112 -1155
  105. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +127 -325
  106. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +142 -985
  107. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +116 -1217
  108. package/dist/icons/head-icon/HeadIcon.stories.tsx +108 -953
  109. package/dist/icons/heart-icon/HeartIcon.stories.tsx +117 -1060
  110. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +116 -716
  111. package/dist/icons/image-icon/ImageIcon.stories.tsx +102 -1164
  112. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +108 -1233
  113. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +133 -1289
  114. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +155 -1012
  115. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +158 -1438
  116. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +121 -1011
  117. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +116 -981
  118. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +116 -979
  119. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +105 -1252
  120. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +151 -1554
  121. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +107 -1227
  122. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +116 -707
  123. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +119 -1226
  124. package/dist/icons/message-icon/MessageIcon.stories.tsx +111 -557
  125. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +112 -1198
  126. package/dist/icons/moon-icon/MoonIcon.stories.tsx +117 -557
  127. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +106 -1235
  128. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +112 -1185
  129. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +116 -1012
  130. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +108 -1137
  131. package/dist/icons/notes-icon/NotesIcon.stories.tsx +116 -1138
  132. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +106 -1146
  133. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +119 -719
  134. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +110 -999
  135. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +109 -912
  136. package/dist/icons/pause-icon/PauseIcon.stories.tsx +110 -1041
  137. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +112 -1109
  138. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +112 -1023
  139. package/dist/icons/plus-icon/PlusIcon.stories.tsx +103 -1132
  140. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +104 -870
  141. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +99 -476
  142. package/dist/icons/search-icon/SearchIcon.stories.tsx +108 -1161
  143. package/dist/icons/setting-icon/SettingIcon.stories.tsx +104 -1009
  144. package/dist/icons/share-icon/ShareIcon.stories.tsx +117 -1064
  145. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +114 -974
  146. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +134 -1160
  147. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +169 -1017
  148. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +161 -1016
  149. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +102 -1001
  150. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +155 -593
  151. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +155 -608
  152. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +142 -712
  153. package/dist/icons/star-icon/StarIcon.stories.tsx +120 -946
  154. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +109 -1013
  155. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +113 -891
  156. package/dist/icons/sun-icon/SunIcon.stories.tsx +117 -864
  157. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +113 -989
  158. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +120 -1027
  159. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +153 -1476
  160. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +143 -1187
  161. package/dist/icons/tick-icon/TickIcon.stories.tsx +142 -1322
  162. package/dist/icons/trash-icon/TrashIcon.stories.tsx +105 -970
  163. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +154 -1457
  164. package/dist/icons/upload-icon/UploadIcon.stories.tsx +112 -930
  165. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +115 -1019
  166. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +122 -1092
  167. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +120 -1401
  168. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +107 -1212
  169. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +109 -1122
  170. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +112 -1124
  171. package/dist/icons/warning-icon/WarningIcon.stories.tsx +119 -1083
  172. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +158 -983
  173. package/dist/index.cjs +90 -90
  174. package/dist/index.js +90 -90
  175. package/package.json +8 -3
@@ -1,6 +1,20 @@
1
1
  import React from "react"
2
2
  import type { Meta, StoryObj } from "@storybook/react-vite"
3
3
 
4
+ import { LinkedInIcon } from "src/ui/icons/linked-in-icon"
5
+ import { ThreadsIcon } from "src/ui/icons/threads-icon"
6
+ import { TwitterXIcon } from "src/ui/icons/twitter-x-icon"
7
+ import { YoutubeIcon } from "src/ui/icons/youtube-icon"
8
+ import {
9
+ IconBrandColors,
10
+ IconDefaultCanvas,
11
+ IconPlaygroundCanvas,
12
+ IconSizeVariations,
13
+ IconUsageCanvas,
14
+ IconUsageSection,
15
+ } from "src/ui/story-spec/icons/icon-story-canvas"
16
+ import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
17
+
4
18
  import { InstagramIcon } from "."
5
19
 
6
20
  const meta: Meta<typeof InstagramIcon> = {
@@ -18,1241 +32,71 @@ const meta: Meta<typeof InstagramIcon> = {
18
32
  },
19
33
  docs: {
20
34
  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: var(--color-fm-surface-primary) ;
44
- }
45
- #storybook-docs {
46
- background: var(--color-fm-surface-primary) ;
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: var(--color-fm-icon-active) ;
54
- }
55
- .sbdocs-p, .sbdocs-li {
56
- color: var(--color-fm-secondary) ;
57
- }
58
- .sbdocs-code {
59
- background: var(--color-fm-surface-secondary) ;
60
- color: var(--color-fm-secondary-500) ;
61
- border: 1px solid var(--color-fm-divider-secondary) ;
62
- }
63
- .sbdocs-pre {
64
- background: var(--color-fm-surface-secondary) ;
65
- border: 1px solid var(--color-fm-divider-secondary) ;
66
- }
67
- .sbdocs-table {
68
- background: var(--color-fm-surface-secondary) ;
69
- border: 1px solid var(--color-fm-divider-secondary) ;
70
- }
71
- .sbdocs-table th {
72
- background: var(--color-fm-surface-secondary) ;
73
- color: var(--color-fm-icon-active) ;
74
- border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
- }
76
- .sbdocs-table td {
77
- color: var(--color-fm-secondary) ;
78
- border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
- }
80
- `}
81
- </style>
82
-
83
- <div className="from-fm-surface-primary via-fm-secondary-500/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
84
- {/* Header */}
85
- <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
- <div className="from-fm-secondary-500/10 via-fm-secondary-500/10 to-fm-icon-warning/10 absolute inset-0 bg-linear-to-r" />
87
- <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
- <div className="!space-y-6 text-center">
89
- <div className="border-fm-secondary-500/30 from-fm-secondary-500/20 via-fm-secondary-500/20 to-fm-icon-warning/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
- <InstagramIcon className="text-fm-icon-active h-12 w-12" />
91
- </div>
92
- <h1 className="text-fm-icon-active! text-5xl font-bold">
93
- InstagramIcon
94
- </h1>
95
- <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
96
- The official Instagram brand icon featuring the iconic
97
- camera design. Essential for photo sharing integration,
98
- social media buttons, profile links, visual content
99
- promotion, and any interface where Instagram platform
100
- connectivity and brand recognition is needed.
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-fm-secondary-600 text-3xl font-bold">
107
- Visual Content
108
- </div>
109
- <div className="text-fm-tertiary text-sm">
110
- Photo & video sharing
111
- </div>
112
- </div>
113
- <div className="bg-fm-divider-primary h-8 w-px" />
114
- <div className="text-center">
115
- <div className="text-fm-secondary-600 text-3xl font-bold">
116
- Creative Platform
117
- </div>
118
- <div className="text-fm-tertiary text-sm">
119
- Artistic expression
120
- </div>
121
- </div>
122
- <div className="bg-fm-divider-primary h-8 w-px" />
123
- <div className="text-center">
124
- <div className="text-fm-icon-warning text-3xl font-bold">
125
- Brand Identity
126
- </div>
127
- <div className="text-fm-tertiary text-sm">
128
- Visual storytelling
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-fm-icon-active! text-center text-3xl font-bold">
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-fm-secondary-600! text-xl font-semibold">
146
- Basic Usage
147
- </h3>
148
- <div className="bg-fm-surface-secondary rounded-lg p-4">
149
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
150
- {`import { InstagramIcon } from "@icons/instagram-icon"
151
-
152
- function SocialLinks() {
35
+ <AuralIconDocsPage
36
+ accentToken="warning"
37
+ features={[
38
+ { title: "Brand Mark", description: "Instagram identity icon" },
39
+ {
40
+ title: "Social Media",
41
+ description: "Share and connect links",
42
+ },
43
+ { title: "Accessible", description: "ARIA-ready by default" },
44
+ ]}
45
+ quickStart={{
46
+ codeExample: `import { InstagramIcon } from "src/ui/icons/instagram-icon"
47
+
48
+ function InstagramLink() {
153
49
  return (
154
- <a
155
- href="https://instagram.com/username"
156
- className="p-3 rounded-lg bg-gradient-to-br
157
- from-pink-500 via-purple-500 to-orange-500
158
- hover:from-pink-600 hover:to-orange-600
159
- transition-all duration-300"
160
- aria-label="Follow us on Instagram"
161
- >
162
- <InstagramIcon className="h-5 w-5 text-white" />
50
+ <a href="https://instagram.com/creator" target="_blank">
51
+ <InstagramIcon className="h-5 w-5 text-fm-icon-active" />
163
52
  </a>
164
53
  )
165
- }`}
166
- </pre>
167
- </div>
168
- </div>
169
-
170
- <div className="!space-y-4">
171
- <h3 className="text-fm-secondary-600! text-xl font-semibold">
172
- Live Preview
173
- </h3>
174
- <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
175
- <a
176
- href="#"
177
- className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning hover:from-fm-secondary-600 hover:to-fm-icon-warning rounded-lg bg-linear-to-br p-3 transition-all duration-300"
178
- >
179
- <InstagramIcon className="text-fm-icon-active h-5 w-5" />
180
- </a>
181
- </div>
182
- </div>
183
- </div>
184
- </div>
185
-
186
- {/* Props Documentation */}
187
- <div className="!space-y-8">
188
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
189
- Props & Configuration
190
- </h2>
191
-
192
- <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
193
- <div className="bg-fm-surface-secondary p-4">
194
- <h3 className="text-fm-icon-active! text-xl font-semibold">
195
- Props
196
- </h3>
197
- </div>
198
- <table className="!my-0 w-full">
199
- <thead className="bg-fm-surface-secondary">
200
- <tr className="border-fm-divider-secondary border-b">
201
- <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
202
- Prop
203
- </th>
204
- <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
205
- Type
206
- </th>
207
- <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
208
- Default
209
- </th>
210
- <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
211
- Description
212
- </th>
213
- </tr>
214
- </thead>
215
- <tbody>
216
- {" "}
217
- <tr className="bg-fm-surface-secondary!">
218
- <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
219
- withAccessibility
220
- </td>
221
- <td className="text-fm-secondary! px-6 py-4 text-sm">
222
- boolean
223
- </td>
224
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
225
- true
226
- </td>
227
- <td className="text-fm-secondary! px-6 py-4 text-sm">
228
- Whether to wrap the icon with accessibility feature
229
- </td>
230
- </tr>
231
- <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
232
- <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
233
- height
234
- </td>
235
- <td className="text-fm-secondary! px-6 py-4 text-sm">
236
- number | string
237
- </td>
238
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
239
- auto
240
- </td>
241
- <td className="text-fm-secondary! px-6 py-4 text-sm">
242
- Height of the icon (maintains aspect ratio)
243
- </td>
244
- </tr>
245
- <tr className="border-fm-divider-tertiary border-b">
246
- <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
247
- fill
248
- </td>
249
- <td className="text-fm-secondary! px-6 py-4 text-sm">
250
- string
251
- </td>
252
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
253
- currentColor
254
- </td>
255
- <td className="text-fm-secondary! px-6 py-4 text-sm">
256
- Fill color of the Instagram camera icon
257
- </td>
258
- </tr>
259
- <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
260
- <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
261
- className
262
- </td>
263
- <td className="text-fm-secondary! px-6 py-4 text-sm">
264
- string
265
- </td>
266
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
267
- -
268
- </td>
269
- <td className="text-fm-secondary! px-6 py-4 text-sm">
270
- CSS classes for styling and sizing
271
- </td>
272
- </tr>
273
- <tr className="border-fm-divider-tertiary border-b">
274
- <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
275
- onClick
276
- </td>
277
- <td className="text-fm-secondary! px-6 py-4 text-sm">
278
- function
279
- </td>
280
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
281
- -
282
- </td>
283
- <td className="text-fm-secondary! px-6 py-4 text-sm">
284
- Click handler for social interactions
285
- </td>
286
- </tr>
287
- <tr className="bg-fm-surface-secondary!">
288
- <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
289
- ...svgProps
290
- </td>
291
- <td className="text-fm-secondary! px-6 py-4 text-sm">
292
- SVGProps
293
- </td>
294
- <td className="text-fm-placeholder! px-6 py-4 text-sm">
295
- -
296
- </td>
297
- <td className="text-fm-secondary! px-6 py-4 text-sm">
298
- All standard SVG element props
299
- </td>
300
- </tr>
301
- </tbody>
302
- </table>
303
- </div>
304
-
305
- <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
306
- <div className="text-fm-secondary-600 flex items-center gap-2 text-sm">
307
- <InstagramIcon className="h-4 w-4" />
308
- <span>
309
- <strong>Brand Guidelines:</strong> Use Instagram's
310
- signature gradient colors (pink, purple, orange) for
311
- optimal brand recognition and consistency.
312
- </span>
313
- </div>
314
- </div>
315
- </div>
316
-
317
- {/* Size Variations */}
318
- <div className="!space-y-8">
319
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
320
- Size Variations
321
- </h2>
322
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
323
- <div className="!space-y-6">
324
- <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
325
- <div className="!space-y-4">
326
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
327
- Standard Sizes
328
- </h3>
329
- <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
330
- <div className="text-center">
331
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
332
- <span className="text-fm-tertiary text-xs">
333
- 12px
334
- </span>
335
- </div>
336
- <div className="text-center">
337
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
338
- <span className="text-fm-tertiary text-xs">
339
- 16px
340
- </span>
341
- </div>
342
- <div className="text-center">
343
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
344
- <span className="text-fm-tertiary text-xs">
345
- 20px
346
- </span>
347
- </div>
348
- <div className="text-center">
349
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
350
- <span className="text-fm-tertiary text-xs">
351
- 24px
352
- </span>
353
- </div>
354
- <div className="text-center">
355
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
356
- <span className="text-fm-tertiary text-xs">
357
- 32px
358
- </span>
359
- </div>
360
- <div className="text-center">
361
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
362
- <span className="text-fm-tertiary text-xs">
363
- 48px
364
- </span>
365
- </div>
366
- </div>
367
- </div>
368
-
369
- <div className="!space-y-4">
370
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
371
- Code Example
372
- </h3>
373
- <div className="bg-fm-surface-secondary rounded-lg p-4">
374
- <pre className="text-fm-icon-info! overflow-x-auto text-sm">
375
- {`// Small (16px) - inline social links
376
- <InstagramIcon className="h-4 w-4" />
377
-
378
- // Medium (24px) - standard buttons
379
- <InstagramIcon className="h-6 w-6" />
380
-
381
- // Large (32px) - prominent displays
382
- <InstagramIcon className="h-8 w-8" />
383
-
384
- // Custom size with maintained aspect ratio
385
- <InstagramIcon width={40} height={40} />`}
386
- </pre>
387
- </div>
388
- </div>
389
- </div>
390
- </div>
391
- </div>
392
- </div>
393
-
394
- {/* Color & Styling */}
395
- <div className="!space-y-8">
396
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
397
- Color & Styling
398
- </h2>
399
- <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
400
- <div className="!space-y-4">
401
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
402
- Brand Colors & Gradients
403
- </h3>
404
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
405
- <div className="flex items-center gap-4">
406
- <div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning flex h-12 w-12 items-center justify-center rounded-lg bg-linear-to-br">
407
- <InstagramIcon className="text-fm-icon-active h-6 w-6" />
408
- </div>
409
- <div>
410
- <div className="text-fm-icon-active text-sm font-medium">
411
- Official Gradient
412
- </div>
413
- <div className="text-fm-tertiary text-xs">
414
- Pink to purple to orange
415
- </div>
416
- </div>
417
- </div>
418
- <div className="flex items-center gap-4">
419
- <div className="bg-fm-secondary-500 flex h-12 w-12 items-center justify-center rounded-lg">
420
- <InstagramIcon className="text-fm-icon-active h-6 w-6" />
421
- </div>
422
- <div>
423
- <div className="text-fm-icon-active text-sm font-medium">
424
- Pink Monochrome
425
- </div>
426
- <div className="text-fm-tertiary text-xs">
427
- Single brand color
428
- </div>
429
- </div>
430
- </div>
431
- <div className="flex items-center gap-4">
432
- <div className="border-fm-divider-primary bg-fm-surface-contrast flex h-12 w-12 items-center justify-center rounded-lg border">
433
- <InstagramIcon className="text-fm-icon-active h-6 w-6" />
434
- </div>
435
- <div>
436
- <div className="text-fm-icon-active text-sm font-medium">
437
- Monochrome Black
438
- </div>
439
- <div className="text-fm-tertiary text-xs">
440
- Light backgrounds
441
- </div>
442
- </div>
443
- </div>
444
- <div className="flex items-center gap-4">
445
- <div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-lg">
446
- <InstagramIcon className="text-fm-icon-active h-6 w-6" />
447
- </div>
448
- <div>
449
- <div className="text-fm-icon-active text-sm font-medium">
450
- Monochrome White
451
- </div>
452
- <div className="text-fm-tertiary text-xs">
453
- Dark backgrounds
454
- </div>
455
- </div>
456
- </div>
457
- </div>
458
- </div>
459
-
460
- <div className="!space-y-4">
461
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
462
- Gradient Examples
463
- </h3>
464
- <div className="bg-fm-surface-secondary rounded-lg p-4">
465
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
466
- {`// Official Instagram gradient background
467
- <div className="bg-gradient-to-br from-pink-500
468
- via-purple-500 to-orange-500 p-3 rounded-lg">
469
- <InstagramIcon className="h-6 w-6 text-white" />
470
- </div>
471
-
472
- // Alternative gradient
473
- <div className="bg-gradient-to-r from-pink-400
474
- to-orange-400 p-3 rounded-lg">
475
- <InstagramIcon className="h-6 w-6 text-white" />
476
- </div>
477
-
478
- // Monochrome with hover gradient
479
- <div className="bg-gray-800 hover:bg-gradient-to-br
480
- hover:from-pink-500 hover:to-orange-500
481
- p-3 rounded-lg transition-all duration-300">
482
- <InstagramIcon className="h-6 w-6 text-white" />
483
- </div>
484
-
485
- // Icon with gradient text color (using CSS)
486
- <InstagramIcon
487
- className="h-6 w-6 bg-gradient-to-r from-pink-500
488
- to-orange-500 bg-clip-text text-transparent"
489
- />
490
-
491
- // Inherit parent color
492
- <InstagramIcon className="h-6 w-6" />`}
493
- </pre>
494
- </div>
495
- </div>
496
- </div>
497
- </div>
498
-
499
- {/* Usage Examples */}
500
- <div className="!space-y-8">
501
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
502
- Usage Examples
503
- </h2>
504
-
505
- <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
506
- {/* Social Media Cards */}
507
- <div className="!space-y-4">
508
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
509
- Social Media Cards
510
- </h3>
511
- <div className="!space-y-4">
512
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
513
- <div className="space-y-4">
514
- <h4 className="text-fm-icon-active mb-4 text-sm font-medium">
515
- Follow us on social media
516
- </h4>
517
- <div className="grid grid-cols-2 gap-4">
518
- <a href="#" className="group block">
519
- <div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning rounded-lg bg-linear-to-br p-4 transition-transform group-hover:scale-105">
520
- <div className="flex items-center gap-3">
521
- <InstagramIcon className="text-fm-icon-active h-6 w-6 flex-shrink-0" />
522
- <div>
523
- <div className="text-fm-icon-active text-sm font-semibold">
524
- Instagram
525
- </div>
526
- <div className="text-fm-icon-active/80 text-xs">
527
- @ourcompany
528
- </div>
529
- </div>
530
- </div>
531
- <div className="text-fm-icon-active/90 mt-3 text-xs">
532
- Behind-the-scenes content and daily updates
533
- </div>
534
- <div className="text-fm-icon-active mt-2 text-xs font-medium">
535
- 15.2k followers
536
- </div>
537
- </div>
538
- </a>
539
- <a href="#" className="group block">
540
- <div className="border-fm-divider-contrast bg-fm-surface-primary group-hover:border-fm-divider-primary group-hover:bg-fm-surface-primary rounded-lg border p-4 transition-all">
541
- <div className="flex items-center gap-3">
542
- <div className="flex h-6 w-6 items-center justify-center">
543
- <span className="text-fm-icon-active text-lg">
544
- 𝕏
545
- </span>
546
- </div>
547
- <div>
548
- <div className="text-fm-icon-active text-sm font-semibold">
549
- X (Twitter)
550
- </div>
551
- <div className="text-fm-tertiary text-xs">
552
- @ourcompany
553
- </div>
554
- </div>
555
- </div>
556
- <div className="text-fm-secondary mt-3 text-xs">
557
- News, updates, and community discussions
558
- </div>
559
- <div className="text-fm-icon-active mt-2 text-xs font-medium">
560
- 8.7k followers
561
- </div>
562
- </div>
563
- </a>
564
- </div>
565
- <div className="border-fm-divider-secondary border-t pt-4">
566
- <div className="flex items-center justify-center gap-4">
567
- <a
568
- href="#"
569
- className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning rounded-lg bg-linear-to-br p-3 transition-transform hover:scale-110"
570
- >
571
- <InstagramIcon className="text-fm-icon-active h-5 w-5" />
572
- </a>
573
- <a
574
- href="#"
575
- className="border-fm-divider-contrast bg-fm-surface-primary rounded-lg border p-3 transition-transform hover:scale-110"
576
- >
577
- <span className="text-fm-icon-active text-lg">
578
- 𝕏
579
- </span>
580
- </a>
581
- <a
582
- href="#"
583
- className="bg-fm-icon-info rounded-lg p-3 transition-transform hover:scale-110"
584
- >
585
- <span className="text-fm-icon-active text-lg">
586
- 📘
587
- </span>
588
- </a>
589
- <a
590
- href="#"
591
- className="bg-fm-icon-info rounded-lg p-3 transition-transform hover:scale-110"
592
- >
593
- <span className="text-fm-icon-active text-lg">
594
- 💼
595
- </span>
596
- </a>
597
- </div>
598
- </div>
599
- </div>
600
- </div>
601
- <div className="bg-fm-surface-secondary rounded-lg p-4">
602
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
603
- {`// Social media cards component
604
- <div className="social-media-cards">
605
- <h4>Follow us on social media</h4>
606
- <div className="cards-grid">
607
- <a href={instagramUrl} className="instagram-card">
608
- <div className="card-content gradient-bg">
609
- <div className="card-header">
610
- <InstagramIcon className="h-6 w-6 text-white" />
611
- <div className="platform-info">
612
- <div className="platform-name">Instagram</div>
613
- <div className="platform-handle">@ourcompany</div>
614
- </div>
615
- </div>
616
- <div className="card-description">
617
- Behind-the-scenes content and daily updates
618
- </div>
619
- <div className="follower-count">15.2k followers</div>
620
- </div>
621
- </a>
622
- <TwitterCard />
623
- </div>
624
- <SocialIconRow />
625
- </div>`}
626
- </pre>
627
- </div>
628
- </div>
629
- </div>
630
-
631
- {/* Photo Gallery Integration */}
632
- <div className="!space-y-4">
633
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
634
- Photo Gallery Integration
635
- </h3>
636
- <div className="!space-y-4">
637
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
638
- <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
639
- <div className="border-fm-divider-secondary bg-fm-surface-secondary border-b p-4">
640
- <div className="flex items-center justify-between">
641
- <h4 className="text-fm-icon-active text-lg font-semibold">
642
- Latest from Instagram
643
- </h4>
644
- <a
645
- href="#"
646
- className="from-fm-secondary-500 to-fm-icon-warning text-fm-icon-active hover:from-fm-secondary-600 hover:to-fm-icon-warning flex items-center gap-2 rounded-full bg-linear-to-r px-3 py-1 text-sm transition-colors"
647
- >
648
- <InstagramIcon className="h-4 w-4" />
649
- <span>View All</span>
650
- </a>
651
- </div>
652
- </div>
653
- <div className="p-4">
654
- <div className="grid grid-cols-3 gap-3">
655
- <div className="from-fm-icon-info/20 to-fm-secondary-500/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
656
- <span className="text-2xl">🌅</span>
657
- </div>
658
- <div className="from-fm-icon-positive/20 to-fm-icon-info/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
659
- <span className="text-2xl">🌿</span>
660
- </div>
661
- <div className="from-fm-icon-warning/20 to-fm-icon-warning/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
662
- <span className="text-2xl">☕</span>
663
- </div>
664
- <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
665
- <span className="text-2xl">🎨</span>
666
- </div>
667
- <div className="from-fm-icon-negative/20 to-fm-secondary-500/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
668
- <span className="text-2xl">🌺</span>
669
- </div>
670
- <div className="from-fm-icon-info/20 to-fm-icon-info/20 flex aspect-square items-center justify-center rounded-lg bg-linear-to-br">
671
- <span className="text-2xl">🌊</span>
672
- </div>
673
- </div>
674
- <div className="mt-4 text-center">
675
- <a
676
- href="#"
677
- className="text-fm-secondary-600 hover:text-fm-secondary-600 text-sm transition-colors"
678
- >
679
- @ourcompany • 245 posts
680
- </a>
681
- </div>
682
- </div>
683
- </div>
684
- </div>
685
- <div className="bg-fm-surface-secondary rounded-lg p-4">
686
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
687
- {`// Instagram gallery feed widget
688
- <div className="instagram-gallery">
689
- <div className="gallery-header">
690
- <h3>Latest from Instagram</h3>
691
- <a
692
- href={instagramUrl}
693
- className="view-all-btn"
694
- >
695
- <InstagramIcon className="h-4 w-4" />
696
- <span>View All</span>
697
- </a>
698
- </div>
699
- <div className="photo-grid">
700
- {instagramPosts.map(post => (
701
- <a
702
- key={post.id}
703
- href={post.permalink}
704
- className="photo-item"
705
- target="_blank"
706
- rel="noopener noreferrer"
707
- >
708
- <img
709
- src={post.media_url}
710
- alt={post.caption}
711
- className="photo-image"
54
+ }`,
55
+ livePreview: (
56
+ <a href="#" target="_blank" rel="noreferrer">
57
+ <InstagramIcon className="text-fm-icon-active h-6 w-6" />
58
+ </a>
59
+ ),
60
+ }}
61
+ relatedIcons={[
62
+ {
63
+ name: "LinkedInIcon",
64
+ description: "LinkedIn brand mark",
65
+ icon: LinkedInIcon,
66
+ accentToken: "info",
67
+ },
68
+ {
69
+ name: "ThreadsIcon",
70
+ description: "Threads brand mark",
71
+ icon: ThreadsIcon,
72
+ accentToken: "positive",
73
+ },
74
+ {
75
+ name: "TwitterXIcon",
76
+ description: "X (Twitter) brand mark",
77
+ icon: TwitterXIcon,
78
+ accentToken: "warning",
79
+ },
80
+ {
81
+ name: "YoutubeIcon",
82
+ description: "YouTube brand mark",
83
+ icon: YoutubeIcon,
84
+ accentToken: "negative",
85
+ },
86
+ ]}
712
87
  />
713
- <div className="photo-overlay">
714
- <InstagramIcon className="h-5 w-5 text-white" />
715
- </div>
716
- </a>
717
- ))}
718
- </div>
719
- <div className="gallery-footer">
720
- <a href={instagramUrl}>@{instagramHandle} • {postCount} posts</a>
721
- </div>
722
- </div>`}
723
- </pre>
724
- </div>
725
- </div>
726
- </div>
727
-
728
- {/* Profile Bio Section */}
729
- <div className="!space-y-4">
730
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
731
- Creator Profile Bio
732
- </h3>
733
- <div className="!space-y-4">
734
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
735
- <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
736
- <div className="from-fm-secondary-500/20 via-fm-secondary-500/20 to-fm-icon-warning/20 relative h-32 bg-linear-to-r">
737
- <div className="absolute -bottom-8 left-6">
738
- <div className="border-fm-divider-secondary from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning flex h-16 w-16 items-center justify-center rounded-full border-4 bg-linear-to-br">
739
- <span className="text-2xl">📸</span>
740
- </div>
741
- </div>
742
- </div>
743
- <div className="p-6 pt-12">
744
- <div className="flex items-start justify-between">
745
- <div>
746
- <h4 className="text-fm-icon-active text-lg font-semibold">
747
- Alex Thompson
748
- </h4>
749
- <p className="text-fm-tertiary text-sm">
750
- @alexcreates
751
- </p>
752
- <p className="text-fm-secondary mt-2 max-w-sm text-sm">
753
- Visual storyteller & photographer capturing
754
- life's beautiful moments 📷✨
755
- </p>
756
- </div>
757
- <button className="from-fm-secondary-500 to-fm-icon-warning text-fm-icon-active hover:from-fm-secondary-600 hover:to-fm-icon-warning rounded-lg bg-linear-to-r px-4 py-2 font-medium transition-colors">
758
- Follow
759
- </button>
760
- </div>
761
- <div className="mt-4 flex items-center gap-6">
762
- <div className="text-sm">
763
- <span className="text-fm-icon-active font-medium">
764
- 1,847
765
- </span>
766
- <span className="text-fm-tertiary ml-1">
767
- Posts
768
- </span>
769
- </div>
770
- <div className="text-sm">
771
- <span className="text-fm-icon-active font-medium">
772
- 52.1k
773
- </span>
774
- <span className="text-fm-tertiary ml-1">
775
- Followers
776
- </span>
777
- </div>
778
- <div className="text-sm">
779
- <span className="text-fm-icon-active font-medium">
780
- 943
781
- </span>
782
- <span className="text-fm-tertiary ml-1">
783
- Following
784
- </span>
785
- </div>
786
- </div>
787
- <div className="border-fm-divider-secondary mt-4 flex items-center gap-4 border-t pt-4">
788
- <span className="text-fm-tertiary text-sm">
789
- Connect:
790
- </span>
791
- <div className="flex gap-2">
792
- <a
793
- href="#"
794
- className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning rounded bg-linear-to-br p-2 transition-transform hover:scale-110"
795
- aria-label="Follow on Instagram"
796
- >
797
- <InstagramIcon className="text-fm-icon-active h-4 w-4" />
798
- </a>
799
- <a
800
- href="#"
801
- className="bg-fm-icon-negative hover:bg-fm-icon-negative rounded p-2 transition-colors"
802
- aria-label="Subscribe on YouTube"
803
- >
804
- <span className="text-fm-icon-active text-sm">
805
- 📺
806
- </span>
807
- </a>
808
- <a
809
- href="#"
810
- className="bg-fm-secondary-500 hover:bg-fm-secondary-600 rounded p-2 transition-colors"
811
- aria-label="View TikTok"
812
- >
813
- <span className="text-fm-icon-active text-sm">
814
- 🎵
815
- </span>
816
- </a>
817
- <a
818
- href="#"
819
- className="bg-fm-surface-tertiary hover:bg-fm-surface-secondary rounded p-2 transition-colors"
820
- aria-label="Portfolio Website"
821
- >
822
- <span className="text-fm-icon-active text-sm">
823
- 🌐
824
- </span>
825
- </a>
826
- </div>
827
- </div>
828
- </div>
829
- </div>
830
- </div>
831
- <div className="bg-fm-surface-secondary rounded-lg p-4">
832
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
833
- {`// Creator profile with Instagram prominence
834
- <div className="creator-profile">
835
- <div className="profile-header">
836
- <CoverImage gradient="instagram" />
837
- <ProfileAvatar gradient="instagram" />
838
- </div>
839
- <div className="profile-content">
840
- <div className="profile-info">
841
- <CreatorDetails creator={creator} />
842
- <FollowButton creatorId={creator.id} />
843
- </div>
844
- <ProfileStats stats={creator.stats} />
845
- <div className="social-links">
846
- <span>Connect:</span>
847
- <div className="link-group">
848
- <a
849
- href={creator.socialLinks.instagram}
850
- className="social-link instagram-link gradient-bg"
851
- aria-label="Follow on Instagram"
852
- >
853
- <InstagramIcon className="h-4 w-4 text-white" />
854
- </a>
855
- <YouTubeLink url={creator.socialLinks.youtube} />
856
- <TikTokLink url={creator.socialLinks.tiktok} />
857
- <WebsiteLink url={creator.website} />
858
- </div>
859
- </div>
860
- </div>
861
- </div>`}
862
- </pre>
863
- </div>
864
- </div>
865
- </div>
866
-
867
- {/* Brand Showcase */}
868
- <div className="!space-y-4">
869
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
870
- Brand Visual Showcase
871
- </h3>
872
- <div className="!space-y-4">
873
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
874
- <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
875
- <div className="p-6">
876
- <div className="mb-6 text-center">
877
- <h4 className="text-fm-icon-active mb-2 text-xl font-semibold">
878
- Share Your Story
879
- </h4>
880
- <p className="text-fm-secondary text-sm">
881
- Show the world your brand's visual journey
882
- </p>
883
- </div>
884
- <div className="mb-6 grid grid-cols-2 gap-4">
885
- <div className="border-fm-secondary-500/20 from-fm-secondary-500/10 to-fm-icon-warning/10 rounded-lg border bg-linear-to-br p-4">
886
- <div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning mb-3 flex h-12 w-12 items-center justify-center rounded-lg bg-linear-to-br">
887
- <InstagramIcon className="text-fm-icon-active h-6 w-6" />
888
- </div>
889
- <h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
890
- Visual Content
891
- </h5>
892
- <p className="text-fm-tertiary text-xs">
893
- Share photos, stories, and reels to showcase
894
- your brand personality
895
- </p>
896
- </div>
897
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
898
- <div className="bg-fm-secondary-500/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
899
- <span className="text-xl">👥</span>
900
- </div>
901
- <h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
902
- Community
903
- </h5>
904
- <p className="text-fm-tertiary text-xs">
905
- Build meaningful connections with your
906
- audience through visual storytelling
907
- </p>
908
- </div>
909
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
910
- <div className="bg-fm-icon-warning/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
911
- <span className="text-xl">📈</span>
912
- </div>
913
- <h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
914
- Growth
915
- </h5>
916
- <p className="text-fm-tertiary text-xs">
917
- Reach new audiences and grow your brand
918
- presence organically
919
- </p>
920
- </div>
921
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
922
- <div className="bg-fm-icon-info/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
923
- <span className="text-xl">✨</span>
924
- </div>
925
- <h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
926
- Inspiration
927
- </h5>
928
- <p className="text-fm-tertiary text-xs">
929
- Inspire others with authentic content that
930
- reflects your values
931
- </p>
932
- </div>
933
- </div>
934
- <div className="text-center">
935
- <a
936
- href="#"
937
- className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning text-fm-icon-active hover:from-fm-secondary-600 hover:to-fm-icon-warning inline-flex items-center gap-2 rounded-lg bg-linear-to-r px-6 py-3 font-medium transition-colors"
938
- >
939
- <InstagramIcon className="h-5 w-5" />
940
- <span>Get Started on Instagram</span>
941
- </a>
942
- </div>
943
- </div>
944
- </div>
945
- </div>
946
- <div className="bg-fm-surface-secondary rounded-lg p-4">
947
- <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
948
- {`// Brand showcase with Instagram integration
949
- <div className="brand-showcase">
950
- <div className="showcase-header">
951
- <h2>Share Your Story</h2>
952
- <p>Show the world your brand's visual journey</p>
953
- </div>
954
- <div className="feature-grid">
955
- <div className="feature-card instagram-feature">
956
- <div className="feature-icon gradient-bg">
957
- <InstagramIcon className="h-6 w-6 text-white" />
958
- </div>
959
- <h3>Visual Content</h3>
960
- <p>Share photos, stories, and reels to showcase your brand personality</p>
961
- </div>
962
- <CommunityFeature />
963
- <GrowthFeature />
964
- <InspirationFeature />
965
- </div>
966
- <div className="cta-section">
967
- <a
968
- href={instagramSignUpUrl}
969
- className="cta-button gradient-bg"
970
- >
971
- <InstagramIcon className="h-5 w-5" />
972
- <span>Get Started on Instagram</span>
973
- </a>
974
- </div>
975
- </div>`}
976
- </pre>
977
- </div>
978
- </div>
979
- </div>
980
- </div>
981
- </div>
982
-
983
- {/* Accessibility */}
984
- <div className="!space-y-8">
985
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
986
- Accessibility Features
987
- </h2>
988
- <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
989
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
990
- <h3 className="text-fm-icon-positive! text-lg font-semibold">
991
- ✅ Built-in Features
992
- </h3>
993
- <ul className="text-fm-secondary! !space-y-2 text-sm">
994
- <li className="text-fm-secondary!">
995
- Uses Radix UI AccessibleIcon wrapper
996
- </li>
997
- <li className="text-fm-secondary!">
998
- Provides screen reader label "Instagram icon"
999
- </li>
1000
- <li className="text-fm-secondary!">
1001
- Supports keyboard navigation when interactive
1002
- </li>
1003
- <li className="text-fm-secondary!">
1004
- High contrast design for visibility
1005
- </li>
1006
- <li className="text-fm-secondary!">
1007
- Maintains aspect ratio across all sizes
1008
- </li>
1009
- </ul>
1010
- </div>
1011
-
1012
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
1013
- <h3 className="text-fm-secondary-600! text-lg font-semibold">
1014
- 💡 Best Practices
1015
- </h3>
1016
- <ul className="text-fm-secondary !space-y-2 text-sm">
1017
- <li className="text-fm-secondary!">
1018
- Always provide descriptive aria-labels for Instagram
1019
- actions
1020
- </li>
1021
- <li className="text-fm-secondary!">
1022
- Use Instagram's official gradient colors for brand
1023
- consistency
1024
- </li>
1025
- <li className="text-fm-secondary!">
1026
- Ensure sufficient contrast with gradient backgrounds
1027
- </li>
1028
- <li className="text-fm-secondary!">
1029
- Include external link indicators for Instagram URLs
1030
- </li>
1031
- <li className="text-fm-secondary!">
1032
- Consider visual content accessibility in related
1033
- features
1034
- </li>
1035
- </ul>
1036
- </div>
1037
- </div>
1038
-
1039
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1040
- <h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
1041
- Proper ARIA Implementation
1042
- </h3>
1043
- <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
1044
- <div className="bg-fm-surface-secondary rounded-lg p-4">
1045
- <pre className="text-fm-icon-info! overflow-x-auto text-sm">
1046
- {`// Instagram profile link
1047
- <a
1048
- href="https://instagram.com/username"
1049
- className="instagram-link"
1050
- aria-label="Follow @username on Instagram"
1051
- target="_blank"
1052
- rel="noopener noreferrer"
1053
- >
1054
- <InstagramIcon className="h-5 w-5 text-white" />
1055
- </a>
1056
-
1057
- // Photo gallery with Instagram integration
1058
- <div className="instagram-gallery">
1059
- <h2 id="gallery-title">Latest from Instagram</h2>
1060
- <div
1061
- className="photo-grid"
1062
- role="grid"
1063
- aria-labelledby="gallery-title"
1064
- >
1065
- {photos.map(photo => (
1066
- <a
1067
- key={photo.id}
1068
- href={photo.permalink}
1069
- role="gridcell"
1070
- aria-label={photo.alt_text || photo.caption}
1071
- target="_blank"
1072
- rel="noopener noreferrer"
1073
- >
1074
- <img src={photo.thumbnail} alt={photo.alt_text} />
1075
- <InstagramIcon className="overlay-icon" aria-hidden="true" />
1076
- </a>
1077
- ))}
1078
- </div>
1079
- </div>
1080
-
1081
- // Social media card
1082
- <div className="social-card instagram-card">
1083
- <a
1084
- href={instagramUrl}
1085
- aria-describedby="instagram-desc"
1086
- >
1087
- <InstagramIcon className="h-6 w-6" />
1088
- <div className="platform-info">
1089
- <div className="platform-name">Instagram</div>
1090
- <div className="platform-handle">@company</div>
1091
- </div>
1092
- </a>
1093
- <div id="instagram-desc" className="sr-only">
1094
- Follow our Instagram for behind-the-scenes content and daily updates
1095
- </div>
1096
- </div>
1097
-
1098
- // Share to Instagram button
1099
- <button
1100
- onClick={shareToInstagram}
1101
- className="share-btn"
1102
- aria-label="Share this content to Instagram Stories"
1103
- >
1104
- <InstagramIcon className="h-4 w-4" />
1105
- <span>Share to Stories</span>
1106
- </button>
1107
-
1108
- // Creator profile with Instagram prominence
1109
- <div className="creator-profile">
1110
- <div className="profile-header">
1111
- <h1>{creator.name}</h1>
1112
- <div className="creator-social">
1113
- <a
1114
- href={creator.instagram}
1115
- className="primary-social-link"
1116
- aria-label={"Follow " + creator.name + " on Instagram"}
1117
- >
1118
- <InstagramIcon className="h-5 w-5" />
1119
- <span className="sr-only">Primary social platform</span>
1120
- </a>
1121
- </div>
1122
- </div>
1123
- </div>`}
1124
- </pre>
1125
- </div>
1126
- <div className="!space-y-4">
1127
- <p className="text-fm-secondary! text-sm">
1128
- When using InstagramIcon for visual content integration,
1129
- always provide proper alt text for images and clear
1130
- context about visual content accessibility for users
1131
- with visual impairments.
1132
- </p>
1133
- <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
1134
- <div className="text-fm-secondary-600 flex items-center gap-2 text-sm">
1135
- <InstagramIcon className="h-4 w-4" />
1136
- <span>
1137
- Consider image descriptions and alt text when
1138
- integrating Instagram content
1139
- </span>
1140
- </div>
1141
- </div>
1142
- </div>
1143
- </div>
1144
- </div>
1145
- </div>
1146
-
1147
- {/* Related Icons */}
1148
- <div className="!space-y-8">
1149
- <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
1150
- Related Icons
1151
- </h2>
1152
- <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
1153
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1154
- <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1155
- <span className="text-fm-icon-active! !text-2xl">📘</span>
1156
- </div>
1157
- <div>
1158
- <div className="text-fm-icon-active font-medium">
1159
- FacebookIcon
1160
- </div>
1161
- <div className="text-fm-tertiary text-xs">
1162
- Social platform
1163
- </div>
1164
- </div>
1165
- </div>
1166
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1167
- <div className="bg-fm-surface-primary !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1168
- <span className="text-fm-icon-active! !text-2xl">𝕏</span>
1169
- </div>
1170
- <div>
1171
- <div className="text-fm-icon-active font-medium">
1172
- TwitterXIcon
1173
- </div>
1174
- <div className="text-fm-tertiary text-xs">
1175
- Social network
1176
- </div>
1177
- </div>
1178
- </div>
1179
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1180
- <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1181
- <span className="text-fm-icon-active! !text-2xl">📺</span>
1182
- </div>
1183
- <div>
1184
- <div className="text-fm-icon-active font-medium">
1185
- YouTubeIcon
1186
- </div>
1187
- <div className="text-fm-tertiary text-xs">
1188
- Video platform
1189
- </div>
1190
- </div>
1191
- </div>
1192
- <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1193
- <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1194
- <span className="text-fm-icon-active! !text-2xl">🎵</span>
1195
- </div>
1196
- <div>
1197
- <div className="text-fm-icon-active font-medium">
1198
- TikTokIcon
1199
- </div>
1200
- <div className="text-fm-tertiary text-xs">
1201
- Short video
1202
- </div>
1203
- </div>
1204
- </div>
1205
- </div>
1206
- </div>
1207
- </div>
1208
-
1209
- {/* Footer */}
1210
- <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t 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-fm-tertiary!">
1214
- InstagramIcon is part of the Aural UI icon library, built
1215
- with accessibility and visual content integration best
1216
- practices in mind.
1217
- </p>
1218
- <p className="text-fm-placeholder! text-sm">
1219
- All icons use Radix UI's AccessibleIcon for screen reader
1220
- compatibility and follow WCAG guidelines for social media
1221
- recognition and visual content accessibility.
1222
- </p>
1223
- </div>
1224
- </div>
1225
- </div>
1226
- </div>
1227
- </>
1228
88
  ),
1229
89
  },
1230
90
  },
1231
91
  tags: ["autodocs"],
1232
92
  argTypes: {
1233
- width: {
1234
- control: { type: "range", min: 8, max: 96, step: 2 },
1235
- description: "Width of the icon (maintains aspect ratio)",
1236
- },
1237
- withAccessibility: {
1238
- control: "boolean",
1239
- description: "Whether to wrap the icon with accessibility features",
1240
- },
1241
- height: {
1242
- control: { type: "range", min: 8, max: 96, step: 2 },
1243
- description: "Height of the icon (maintains aspect ratio)",
1244
- },
1245
- fill: {
1246
- control: "color",
1247
- description: "Fill color of the Instagram camera icon",
1248
- },
1249
93
  className: {
1250
94
  control: "text",
1251
- description: "CSS classes for styling and sizing",
95
+ description: "CSS classes including color token",
1252
96
  },
1253
- onClick: {
1254
- action: "clicked",
1255
- description: "Click handler for social interactions",
97
+ withAccessibility: {
98
+ control: "boolean",
99
+ description: "Wrap with accessibility label",
1256
100
  },
1257
101
  },
1258
102
  }
@@ -1260,252 +104,128 @@ function SocialLinks() {
1260
104
  export default meta
1261
105
  type Story = StoryObj<typeof InstagramIcon>
1262
106
 
1263
- // Story parameters for consistent dark theme
1264
- const storyParameters = {
1265
- backgrounds: {
1266
- default: "dark",
1267
- values: [
1268
- { name: "dark", value: "var(--color-fm-surface-primary)" },
1269
- { name: "darker", value: "var(--color-fm-neutral-0)" },
1270
- ],
1271
- },
1272
- }
1273
-
1274
107
  export const Default: Story = {
1275
108
  args: {
1276
- className: "h-8 w-8 text-fm-secondary-600",
109
+ className: "h-6 w-6 text-fm-icon-active",
1277
110
  withAccessibility: true,
1278
111
  },
1279
- parameters: storyParameters,
1280
112
  render: (args) => (
1281
- <div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
113
+ <IconDefaultCanvas>
1282
114
  <InstagramIcon {...args} />
1283
- </div>
115
+ </IconDefaultCanvas>
1284
116
  ),
1285
117
  }
1286
118
 
1287
119
  export const SizeVariations: Story = {
1288
- parameters: {
1289
- ...storyParameters,
1290
- docs: {
1291
- description: {
1292
- story:
1293
- "InstagramIcon in different sizes, from small inline social links to large brand displays.",
1294
- },
1295
- },
1296
- },
1297
- render: () => (
1298
- <div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8">
1299
- <div className="text-center">
1300
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
1301
- <span className="text-fm-tertiary text-xs">12px</span>
1302
- </div>
1303
- <div className="text-center">
1304
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
1305
- <span className="text-fm-tertiary text-xs">16px</span>
1306
- </div>
1307
- <div className="text-center">
1308
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
1309
- <span className="text-fm-tertiary text-xs">20px</span>
1310
- </div>
1311
- <div className="text-center">
1312
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
1313
- <span className="text-fm-tertiary text-xs">24px</span>
1314
- </div>
1315
- <div className="text-center">
1316
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
1317
- <span className="text-fm-tertiary text-xs">32px</span>
1318
- </div>
1319
- <div className="text-center">
1320
- <InstagramIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
1321
- <span className="text-fm-tertiary text-xs">48px</span>
1322
- </div>
1323
- </div>
1324
- ),
120
+ render: () => <IconSizeVariations icon={InstagramIcon} />,
1325
121
  }
1326
122
 
1327
- export const BrandGradients: Story = {
1328
- parameters: {
1329
- ...storyParameters,
1330
- docs: {
1331
- description: {
1332
- story:
1333
- "InstagramIcon with Instagram's signature gradient colors and brand-compliant styling.",
1334
- },
1335
- },
1336
- },
123
+ export const BrandColors: Story = {
1337
124
  render: () => (
1338
- <div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
1339
- <div className="text-center">
1340
- <div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-linear-to-br">
1341
- <InstagramIcon className="text-fm-icon-active h-8 w-8" />
1342
- </div>
1343
- <div className="text-fm-icon-active text-sm font-medium">
1344
- Official Gradient
1345
- </div>
1346
- <div className="text-fm-secondary-600 text-xs">Pink to orange</div>
1347
- </div>
1348
- <div className="text-center">
1349
- <div className="bg-fm-secondary-500 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
1350
- <InstagramIcon className="text-fm-icon-active h-8 w-8" />
1351
- </div>
1352
- <div className="text-fm-icon-active text-sm font-medium">
1353
- Pink Monochrome
1354
- </div>
1355
- <div className="text-fm-secondary-600 text-xs">Single brand color</div>
1356
- </div>
1357
- <div className="text-center">
1358
- <div className="border-fm-divider-primary bg-fm-surface-contrast !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1359
- <InstagramIcon className="text-fm-icon-active h-8 w-8" />
1360
- </div>
1361
- <div className="text-fm-icon-active text-sm font-medium">
1362
- Monochrome Black
1363
- </div>
1364
- <div className="text-fm-tertiary text-xs">Light backgrounds</div>
1365
- </div>
1366
- <div className="text-center">
1367
- <div className="bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
1368
- <InstagramIcon className="text-fm-icon-active h-8 w-8" />
1369
- </div>
1370
- <div className="text-fm-icon-active text-sm font-medium">
1371
- Monochrome White
1372
- </div>
1373
- <div className="text-fm-tertiary text-xs">Dark backgrounds</div>
1374
- </div>
1375
- </div>
125
+ <IconBrandColors
126
+ icon={InstagramIcon}
127
+ variants={[
128
+ {
129
+ label: "Brand Gradient",
130
+ description: "Recommended",
131
+ cardClassName: "h-24 w-24",
132
+ cardStyle: {
133
+ background:
134
+ "linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%)",
135
+ },
136
+ iconClassName: "h-8 w-8 text-white",
137
+ },
138
+ {
139
+ label: "Light Background",
140
+ description: "Alternate",
141
+ cardClassName:
142
+ "border-fm-divider-secondary h-24 w-24 border bg-white",
143
+ iconClassName: "h-8 w-8 text-black",
144
+ },
145
+ {
146
+ label: "Primary Surface",
147
+ description: "Theme surface",
148
+ cardClassName: "bg-fm-surface-primary h-24 w-24",
149
+ iconClassName: "h-8 w-8 text-white",
150
+ },
151
+ {
152
+ label: "Transparent",
153
+ description: "Original mark",
154
+ cardClassName:
155
+ "border-fm-divider-contrast h-24 w-24 border bg-transparent",
156
+ iconClassName: "h-8 w-8 text-white",
157
+ },
158
+ ]}
159
+ />
1376
160
  ),
1377
161
  }
1378
162
 
1379
163
  export const UsageExamples: Story = {
1380
- parameters: {
1381
- ...storyParameters,
1382
- docs: {
1383
- description: {
1384
- story:
1385
- "Real-world usage examples showing InstagramIcon in different visual content and social media contexts.",
1386
- },
1387
- },
1388
- },
1389
164
  render: () => (
1390
- <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1391
- {/* Social Media Card */}
1392
- <div className="!space-y-2">
1393
- <h3 className="text-fm-icon-active text-sm font-medium">
1394
- Social Media Card
1395
- </h3>
1396
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1397
- <div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning rounded-lg bg-linear-to-br p-4">
1398
- <div className="flex items-center gap-3">
1399
- <InstagramIcon className="text-fm-icon-active h-6 w-6 flex-shrink-0" />
1400
- <div>
1401
- <div className="text-fm-icon-active text-sm font-semibold">
1402
- Instagram
1403
- </div>
1404
- <div className="text-fm-icon-active/80 text-xs">
1405
- @ourcompany
1406
- </div>
1407
- </div>
1408
- </div>
1409
- <div className="text-fm-icon-active/90 mt-3 text-xs">
1410
- Behind-the-scenes content and daily updates
1411
- </div>
1412
- <div className="text-fm-icon-active mt-2 text-xs font-medium">
1413
- 15.2k followers
1414
- </div>
1415
- </div>
1416
- </div>
1417
- </div>
1418
-
1419
- {/* Photo Gallery */}
1420
- <div className="!space-y-2">
1421
- <h3 className="text-fm-icon-active text-sm font-medium">
1422
- Instagram Gallery Widget
1423
- </h3>
1424
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1425
- <div className="mb-4 flex items-center justify-between">
1426
- <h4 className="text-fm-icon-active text-sm font-semibold">
1427
- Latest from Instagram
1428
- </h4>
1429
- <a
1430
- href="#"
1431
- className="from-fm-secondary-500 to-fm-icon-warning text-fm-icon-active hover:from-fm-secondary-600 hover:to-fm-icon-warning flex items-center gap-2 rounded-full bg-linear-to-r px-3 py-1 text-xs transition-colors"
1432
- >
1433
- <InstagramIcon className="h-3 w-3" />
1434
- <span>View All</span>
1435
- </a>
1436
- </div>
1437
- <div className="grid grid-cols-4 gap-2">
1438
- <div className="from-fm-icon-info/20 to-fm-secondary-500/20 flex aspect-square items-center justify-center rounded bg-linear-to-br">
1439
- <span className="text-lg">🌅</span>
1440
- </div>
1441
- <div className="from-fm-icon-positive/20 to-fm-icon-info/20 flex aspect-square items-center justify-center rounded bg-linear-to-br">
1442
- <span className="text-lg">🌿</span>
1443
- </div>
1444
- <div className="from-fm-icon-warning/20 to-fm-icon-warning/20 flex aspect-square items-center justify-center rounded bg-linear-to-br">
1445
- <span className="text-lg">☕</span>
1446
- </div>
1447
- <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 flex aspect-square items-center justify-center rounded bg-linear-to-br">
1448
- <span className="text-lg">🎨</span>
1449
- </div>
1450
- </div>
1451
- </div>
1452
- </div>
1453
-
1454
- {/* Social Links */}
1455
- <div className="!space-y-2">
1456
- <h3 className="text-fm-icon-active text-sm font-medium">
1457
- Social Media Links
1458
- </h3>
1459
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1460
- <div className="flex items-center gap-3">
1461
- <span className="text-fm-tertiary text-sm">Follow us:</span>
1462
- <div className="flex gap-2">
1463
- <a
1464
- href="#"
1465
- className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning rounded bg-linear-to-br p-2 transition-transform hover:scale-110"
1466
- >
1467
- <InstagramIcon className="text-fm-icon-active h-4 w-4" />
1468
- </a>
1469
- <a
1470
- href="#"
1471
- className="border-fm-divider-contrast bg-fm-surface-primary rounded border p-2 transition-transform hover:scale-110"
1472
- >
1473
- <span className="text-fm-icon-active text-sm">𝕏</span>
1474
- </a>
165
+ <IconUsageCanvas>
166
+ <IconUsageSection title="Social Follow Button">
167
+ <button
168
+ className="flex items-center gap-2 rounded-xl px-4 py-2 text-white"
169
+ style={{
170
+ background:
171
+ "linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%)",
172
+ }}
173
+ >
174
+ <InstagramIcon className="h-4 w-4 text-white" />
175
+ <span className="font-fm-text text-sm font-medium">
176
+ Follow on Instagram
177
+ </span>
178
+ </button>
179
+ </IconUsageSection>
180
+
181
+ <IconUsageSection title="Social Links Row">
182
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center justify-center gap-4 rounded-xl border p-4">
183
+ {[InstagramIcon, LinkedInIcon, TwitterXIcon, YoutubeIcon].map(
184
+ (Icon, i) => (
1475
185
  <a
186
+ key={i}
1476
187
  href="#"
1477
- className="bg-fm-icon-negative rounded p-2 transition-transform hover:scale-110"
188
+ className="border-fm-divider-secondary flex h-10 w-10 items-center justify-center rounded-xl border"
189
+ target="_blank"
190
+ rel="noreferrer"
1478
191
  >
1479
- <span className="text-fm-icon-active text-sm">📺</span>
192
+ <Icon className="text-fm-icon-active h-5 w-5" />
1480
193
  </a>
194
+ )
195
+ )}
196
+ </div>
197
+ </IconUsageSection>
198
+
199
+ <IconUsageSection title="Creator Profile">
200
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm rounded-xl border p-4">
201
+ <div className="flex items-center gap-3">
202
+ <div className="bg-fm-divider-secondary h-12 w-12 rounded-full" />
203
+ <div className="flex-1">
204
+ <div className="text-fm-primary font-fm-text text-sm font-medium">
205
+ Pocket FM
206
+ </div>
207
+ <div className="text-fm-secondary font-fm-text text-xs">
208
+ Audio entertainment
209
+ </div>
1481
210
  </div>
211
+ <a href="#" target="_blank" rel="noreferrer" aria-label="Instagram">
212
+ <InstagramIcon className="text-fm-icon-inactive h-5 w-5" />
213
+ </a>
1482
214
  </div>
1483
215
  </div>
1484
- </div>
1485
- </div>
216
+ </IconUsageSection>
217
+ </IconUsageCanvas>
1486
218
  ),
1487
219
  }
1488
220
 
1489
221
  export const Playground: Story = {
1490
- parameters: {
1491
- ...storyParameters,
1492
- docs: {
1493
- description: {
1494
- story:
1495
- "Interactive playground to experiment with different InstagramIcon configurations.",
1496
- },
1497
- },
1498
- },
1499
222
  args: {
1500
- width: 24,
1501
- height: 24,
1502
- className: "text-fm-secondary-600",
223
+ className: "h-8 w-8 text-fm-icon-active",
224
+ withAccessibility: true,
1503
225
  },
1504
226
  render: (args) => (
1505
- <div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
1506
- <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1507
- <InstagramIcon {...args} />
1508
- </div>
1509
- </div>
227
+ <IconPlaygroundCanvas>
228
+ <InstagramIcon {...args} />
229
+ </IconPlaygroundCanvas>
1510
230
  ),
1511
231
  }