aural-ui 3.0.6 → 4.0.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 (169) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
  9. package/dist/components/clamp-lines/index.tsx +6 -1
  10. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  11. package/dist/components/command/Command.stories.tsx +52 -38
  12. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  13. package/dist/components/divider/Divider.stories.tsx +86 -60
  14. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  15. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  16. package/dist/components/drawer/index.tsx +3 -3
  17. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  18. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  19. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  20. package/dist/components/input/Input.stories.tsx +2 -2
  21. package/dist/components/input/index.tsx +2 -0
  22. package/dist/components/label/Label.stories.tsx +10 -10
  23. package/dist/components/list/List.stories.tsx +58 -44
  24. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  25. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  26. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  27. package/dist/components/overlay/index.tsx +4 -4
  28. package/dist/components/popover/Popover.stories.tsx +132 -106
  29. package/dist/components/radio/Radio.stories.tsx +2 -2
  30. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  31. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  32. package/dist/components/search/Search.stories.tsx +81 -59
  33. package/dist/components/select/Select.stories.tsx +3 -1
  34. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  35. package/dist/components/slider/Slider.stories.tsx +71 -47
  36. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  37. package/dist/components/switch/Switch.stories.tsx +12 -12
  38. package/dist/components/table/Table.stories.tsx +8 -6
  39. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  40. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  41. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  42. package/dist/components/toast/Toast.stories.tsx +51 -45
  43. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  44. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  45. package/dist/icons/Icons.stories.tsx +2 -2
  46. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  47. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  48. package/dist/icons/all-icons.tsx +97 -81
  49. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  50. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  51. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  52. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  53. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  54. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  55. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  56. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  57. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  58. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  59. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  60. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  61. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  62. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  63. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  64. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  65. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  66. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  67. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  68. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  69. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  70. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  71. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  72. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  73. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  74. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  75. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  76. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  77. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  78. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  79. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  80. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  81. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  82. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  83. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  84. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  85. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  86. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  87. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  88. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  89. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  90. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  91. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  92. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  93. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  94. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  95. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  96. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  97. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  98. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  99. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  100. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  101. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  102. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  103. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  104. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  105. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  106. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  107. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  108. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  109. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  110. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  111. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  112. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  113. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  114. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  115. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  116. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  117. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  118. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  119. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  120. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  121. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  122. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  123. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  124. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  125. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  126. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  127. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  128. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  129. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  130. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  131. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  132. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  133. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  134. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  135. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  136. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  137. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  138. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  139. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  140. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  141. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  142. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  143. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  144. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  145. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  146. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  147. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  148. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  149. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  150. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  151. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  152. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  153. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  154. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  155. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  156. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  157. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  158. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  159. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  160. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  161. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  162. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  163. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  164. package/dist/index.cjs +84 -84
  165. package/dist/index.js +84 -84
  166. package/dist/styles/aural-all-theme.css +1222 -0
  167. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  168. package/dist/styles/aural-light-theme.css +1047 -0
  169. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
11
11
  backgrounds: {
12
12
  default: "dark",
13
13
  values: [
14
- { name: "dark", value: "#0a0a0a" },
15
- { name: "darker", value: "#000000" },
16
- { name: "light", value: "#ffffff" },
14
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
15
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
16
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
17
17
  ],
18
18
  },
19
19
  docs: {
@@ -47,59 +47,59 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
47
47
  background: transparent !important;
48
48
  }
49
49
  body {
50
- background: #0a0a0a !important;
50
+ background: var(--color-fm-surface-primary) !important;
51
51
  }
52
52
  #storybook-docs {
53
- background: #0a0a0a !important;
53
+ background: var(--color-fm-surface-primary) !important;
54
54
  }
55
55
  .sbdocs-preview {
56
56
  background: transparent !important;
57
57
  border: none !important;
58
58
  }
59
59
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
60
- color: white !important;
60
+ color: var(--color-fm-icon-active) !important;
61
61
  }
62
62
  .sbdocs-p, .sbdocs-li {
63
- color: rgba(255, 255, 255, 0.7) !important;
63
+ color: var(--color-fm-secondary) !important;
64
64
  }
65
65
  .sbdocs-code {
66
- background: rgba(255, 255, 255, 0.1) !important;
67
- color: rgba(168, 85, 247, 1) !important;
68
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
66
+ background: var(--color-fm-surface-secondary) !important;
67
+ color: var(--color-fm-secondary-500) !important;
68
+ border: 1px solid var(--color-fm-divider-secondary) !important;
69
69
  }
70
70
  .sbdocs-pre {
71
- background: rgba(0, 0, 0, 0.4) !important;
72
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
71
+ background: var(--color-fm-surface-secondary) !important;
72
+ border: 1px solid var(--color-fm-divider-secondary) !important;
73
73
  }
74
74
  .sbdocs-table {
75
- background: rgba(255, 255, 255, 0.05) !important;
76
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
75
+ background: var(--color-fm-surface-secondary) !important;
76
+ border: 1px solid var(--color-fm-divider-secondary) !important;
77
77
  }
78
78
  .sbdocs-table th {
79
- background: rgba(255, 255, 255, 0.05) !important;
80
- color: white !important;
81
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
79
+ background: var(--color-fm-surface-secondary) !important;
80
+ color: var(--color-fm-icon-active) !important;
81
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
82
82
  }
83
83
  .sbdocs-table td {
84
- color: rgba(255, 255, 255, 0.7) !important;
85
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
84
+ color: var(--color-fm-secondary) !important;
85
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
86
86
  }
87
87
  `}
88
88
  </style>
89
89
 
90
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-indigo-900/20 to-gray-900">
90
+ <div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
91
91
  {/* Header */}
92
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
93
- <div className="absolute inset-0 bg-gradient-to-r from-indigo-500/10 via-transparent to-cyan-500/10" />
92
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
93
+ <div className="from-fm-icon-info/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
94
94
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
95
95
  <div className="!space-y-6 text-center">
96
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-indigo-500/30 bg-gradient-to-br from-indigo-500/20 to-cyan-500/20">
97
- <ImageAvatarSparkleIcon className="h-12 w-12 text-indigo-400" />
96
+ <div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
97
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-12 w-12" />
98
98
  </div>
99
- <h1 className="text-5xl font-bold !text-white">
99
+ <h1 className="text-fm-icon-active! text-5xl font-bold">
100
100
  ImageAvatarSparkleIcon
101
101
  </h1>
102
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
102
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
103
103
  An image avatar icon with sparkle elements representing user
104
104
  profiles with enhanced visual appeal. Perfect for user
105
105
  interfaces, profile displays, and avatar representations.
@@ -108,26 +108,28 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
108
108
  {/* Stats */}
109
109
  <div className="mx-auto flex items-center justify-center gap-8">
110
110
  <div className="text-center">
111
- <div className="text-3xl font-bold text-indigo-300">
111
+ <div className="text-fm-icon-info text-3xl font-bold">
112
112
  Avatar
113
113
  </div>
114
- <div className="text-sm text-white/80">User profile</div>
114
+ <div className="text-fm-icon-active/80 text-sm">
115
+ User profile
116
+ </div>
115
117
  </div>
116
- <div className="h-8 w-px bg-white/20" />
118
+ <div className="bg-fm-divider-primary h-8 w-px" />
117
119
  <div className="text-center">
118
- <div className="text-3xl font-bold text-cyan-300">
120
+ <div className="text-fm-icon-info text-3xl font-bold">
119
121
  Sparkle
120
122
  </div>
121
- <div className="text-sm text-white/80">
123
+ <div className="text-fm-icon-active/80 text-sm">
122
124
  Enhanced visual
123
125
  </div>
124
126
  </div>
125
- <div className="h-8 w-px bg-white/20" />
127
+ <div className="bg-fm-divider-primary h-8 w-px" />
126
128
  <div className="text-center">
127
- <div className="text-3xl font-bold text-blue-300">
129
+ <div className="text-fm-icon-info text-3xl font-bold">
128
130
  Accessible
129
131
  </div>
130
- <div className="text-sm text-white/80">
132
+ <div className="text-fm-icon-active/80 text-sm">
131
133
  Screen reader support
132
134
  </div>
133
135
  </div>
@@ -140,34 +142,34 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
140
142
  <div className="!mx-auto flex max-w-7xl flex-col gap-6 space-y-16 px-6 py-16">
141
143
  {/* Features */}
142
144
  <div className="!space-y-8">
143
- <h3 className="text-center text-2xl font-bold !text-white">
145
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
144
146
  Key Features
145
147
  </h3>
146
148
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
147
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
149
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
148
150
  <div className="text-3xl">👤</div>
149
- <h4 className="text-lg font-semibold !text-white">
151
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
150
152
  Avatar Icon
151
153
  </h4>
152
- <p className="text-sm !text-white/80">
154
+ <p className="text-fm-icon-active!/80 text-sm">
153
155
  Clear representation of user profiles
154
156
  </p>
155
157
  </div>
156
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
158
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
157
159
  <div className="text-3xl">✨</div>
158
- <h4 className="text-lg font-semibold !text-white">
160
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
159
161
  Sparkle Effect
160
162
  </h4>
161
- <p className="text-sm !text-white/80">
163
+ <p className="text-fm-icon-active!/80 text-sm">
162
164
  Enhanced visual appeal with sparkles
163
165
  </p>
164
166
  </div>
165
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
167
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
166
168
  <div className="text-3xl">♿</div>
167
- <h4 className="text-lg font-semibold !text-white">
169
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
168
170
  Accessibility
169
171
  </h4>
170
- <p className="text-sm !text-white/80">
172
+ <p className="text-fm-icon-active!/80 text-sm">
171
173
  Built with screen reader support
172
174
  </p>
173
175
  </div>
@@ -176,43 +178,45 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
176
178
 
177
179
  {/* API Reference */}
178
180
  <div className="!space-y-8">
179
- <h3 className="text-center text-2xl font-bold !text-white">
181
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
180
182
  API Reference
181
183
  </h3>
182
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
183
- <div className="bg-white/5 p-4">
184
- <h4 className="text-lg font-semibold !text-white">Props</h4>
184
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
185
+ <div className="bg-fm-surface-secondary p-4">
186
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
187
+ Props
188
+ </h4>
185
189
  </div>
186
190
  <table className="!my-0 w-full">
187
- <thead className="bg-white/5">
188
- <tr className="border-b border-white/10">
189
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
191
+ <thead className="bg-fm-surface-secondary">
192
+ <tr className="border-fm-divider-secondary border-b">
193
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
190
194
  Prop
191
195
  </th>
192
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
196
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
193
197
  Type
194
198
  </th>
195
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
199
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
196
200
  Default
197
201
  </th>
198
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
202
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
199
203
  Description
200
204
  </th>
201
205
  </tr>
202
206
  </thead>
203
207
  <tbody>
204
208
  {" "}
205
- <tr className="!bg-black/10">
206
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
209
+ <tr className="bg-fm-surface-secondary!">
210
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
207
211
  withAccessibility
208
212
  </td>
209
- <td className="px-6 py-4 text-sm !text-white/70">
213
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
210
214
  boolean
211
215
  </td>
212
- <td className="px-6 py-4 text-sm !text-white/50">
216
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
213
217
  true
214
218
  </td>
215
- <td className="px-6 py-4 text-sm !text-white/70">
219
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
216
220
  Whether to wrap the icon with accessibility feature
217
221
  </td>
218
222
  </tr>
@@ -223,17 +227,17 @@ const meta: Meta<typeof ImageAvatarSparkleIcon> = {
223
227
 
224
228
  {/* Usage Examples */}
225
229
  <div className="!space-y-8">
226
- <h3 className="text-center text-2xl font-bold !text-white">
230
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
227
231
  Usage Examples
228
232
  </h3>
229
233
 
230
234
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
231
235
  <div className="space-y-4">
232
- <h4 className="text-lg font-semibold !text-indigo-300">
236
+ <h4 className="text-fm-icon-info! text-lg font-semibold">
233
237
  Basic Usage
234
238
  </h4>
235
- <div className="rounded-lg bg-black/40 p-4">
236
- <pre className="overflow-x-auto text-sm !text-green-300">
239
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
240
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
237
241
  {`import { ImageAvatarSparkleIcon } from "@/components/ui/icons/image-avatar-sparkle-icon"
238
242
 
239
243
  function UserProfile() {
@@ -249,12 +253,12 @@ function UserProfile() {
249
253
  </div>
250
254
 
251
255
  <div className="space-y-4">
252
- <h4 className="text-lg font-semibold !text-indigo-300">
256
+ <h4 className="text-fm-icon-info! text-lg font-semibold">
253
257
  Live Preview
254
258
  </h4>
255
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
256
- <div className="flex items-center gap-2 rounded-lg border border-indigo-500/20 bg-indigo-500/10 px-4 py-2 text-white">
257
- <ImageAvatarSparkleIcon className="h-6 w-6 text-indigo-400" />
259
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
260
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 text-fm-icon-active flex items-center gap-2 rounded-lg border px-4 py-2">
261
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-6 w-6" />
258
262
  <span>User Profile</span>
259
263
  </div>
260
264
  </div>
@@ -264,50 +268,62 @@ function UserProfile() {
264
268
 
265
269
  {/* Size Examples */}
266
270
  <div className="!space-y-8">
267
- <h3 className="text-center text-2xl font-bold !text-white">
271
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
268
272
  Size Examples
269
273
  </h3>
270
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
274
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
271
275
  <div className="!space-y-6">
272
276
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
273
277
  <div className="!space-y-4">
274
- <h3 className="text-lg font-semibold !text-indigo-300">
278
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
275
279
  Standard Sizes
276
280
  </h3>
277
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
281
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
278
282
  <div className="text-center">
279
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-3 w-3 text-indigo-400" />
280
- <span className="text-xs text-white/60">12px</span>
283
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
284
+ <span className="text-fm-tertiary text-xs">
285
+ 12px
286
+ </span>
281
287
  </div>
282
288
  <div className="text-center">
283
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-4 w-4 text-indigo-400" />
284
- <span className="text-xs text-white/60">16px</span>
289
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
290
+ <span className="text-fm-tertiary text-xs">
291
+ 16px
292
+ </span>
285
293
  </div>
286
294
  <div className="text-center">
287
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-5 w-5 text-indigo-400" />
288
- <span className="text-xs text-white/60">20px</span>
295
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
296
+ <span className="text-fm-tertiary text-xs">
297
+ 20px
298
+ </span>
289
299
  </div>
290
300
  <div className="text-center">
291
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-6 w-6 text-indigo-400" />
292
- <span className="text-xs text-white/60">24px</span>
301
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
302
+ <span className="text-fm-tertiary text-xs">
303
+ 24px
304
+ </span>
293
305
  </div>
294
306
  <div className="text-center">
295
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-8 w-8 text-indigo-400" />
296
- <span className="text-xs text-white/60">32px</span>
307
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
308
+ <span className="text-fm-tertiary text-xs">
309
+ 32px
310
+ </span>
297
311
  </div>
298
312
  <div className="text-center">
299
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-12 w-12 text-indigo-400" />
300
- <span className="text-xs text-white/60">48px</span>
313
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
314
+ <span className="text-fm-tertiary text-xs">
315
+ 48px
316
+ </span>
301
317
  </div>
302
318
  </div>
303
319
  </div>
304
320
 
305
321
  <div className="!space-y-4">
306
- <h3 className="text-lg font-semibold !text-indigo-300">
322
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
307
323
  Code Example
308
324
  </h3>
309
- <div className="rounded-lg bg-black/40 p-4">
310
- <pre className="overflow-x-auto text-sm !text-green-300">
325
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
326
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
311
327
  {`// Small (16px)
312
328
  <ImageAvatarSparkleIcon className="h-4 w-4 text-indigo-400" />
313
329
 
@@ -333,34 +349,34 @@ function UserProfile() {
333
349
 
334
350
  {/* Common Use Cases */}
335
351
  <div className="!space-y-8">
336
- <h3 className="text-center text-2xl font-bold !text-white">
352
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
337
353
  Common Use Cases
338
354
  </h3>
339
355
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
340
- <div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
356
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
341
357
  <div className="text-2xl">👤</div>
342
- <h4 className="text-lg font-semibold !text-white">
358
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
343
359
  User Profiles
344
360
  </h4>
345
- <p className="text-sm !text-white/80">
361
+ <p className="text-fm-icon-active!/80 text-sm">
346
362
  Profile displays and user interfaces
347
363
  </p>
348
364
  </div>
349
- <div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
365
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
350
366
  <div className="text-2xl">✨</div>
351
- <h4 className="text-lg font-semibold !text-white">
367
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
352
368
  Premium Users
353
369
  </h4>
354
- <p className="text-sm !text-white/80">
370
+ <p className="text-fm-icon-active!/80 text-sm">
355
371
  Highlighting premium or special users
356
372
  </p>
357
373
  </div>
358
- <div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
374
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
359
375
  <div className="text-2xl">🎨</div>
360
- <h4 className="text-lg font-semibold !text-white">
376
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
361
377
  Avatar Selection
362
378
  </h4>
363
- <p className="text-sm !text-white/80">
379
+ <p className="text-fm-icon-active!/80 text-sm">
364
380
  Avatar picker interfaces
365
381
  </p>
366
382
  </div>
@@ -369,50 +385,50 @@ function UserProfile() {
369
385
 
370
386
  {/* Best Practices */}
371
387
  <div className="!space-y-8">
372
- <h3 className="text-center text-2xl font-bold !text-white">
388
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
373
389
  Best Practices
374
390
  </h3>
375
391
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2">
376
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
377
- <h4 className="text-lg font-semibold !text-emerald-300">
392
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
393
+ <h4 className="text-fm-icon-positive! text-lg font-semibold">
378
394
  ✅ Do
379
395
  </h4>
380
- <ul className="space-y-2 text-sm !text-white/80">
381
- <li className="!text-white/80">
396
+ <ul className="text-fm-icon-active!/80 space-y-2 text-sm">
397
+ <li className="text-fm-icon-active!/80">
382
398
  Use appropriate sizes for different contexts
383
399
  </li>
384
- <li className="!text-white/80">
400
+ <li className="text-fm-icon-active!/80">
385
401
  Choose colors that match your UI theme
386
402
  </li>
387
- <li className="!text-white/80">
403
+ <li className="text-fm-icon-active!/80">
388
404
  Provide clear labels for icon buttons
389
405
  </li>
390
- <li className="!text-white/80">
406
+ <li className="text-fm-icon-active!/80">
391
407
  Use consistent styling across your app
392
408
  </li>
393
- <li className="!text-white/80">
409
+ <li className="text-fm-icon-active!/80">
394
410
  Consider accessibility in all implementations
395
411
  </li>
396
412
  </ul>
397
413
  </div>
398
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
399
- <h4 className="text-lg font-semibold !text-red-300">
414
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
415
+ <h4 className="text-fm-icon-negative! text-lg font-semibold">
400
416
  ❌ Don't
401
417
  </h4>
402
- <ul className="space-y-2 text-sm !text-white/80">
403
- <li className="!text-white/80">
418
+ <ul className="text-fm-icon-active!/80 space-y-2 text-sm">
419
+ <li className="text-fm-icon-active!/80">
404
420
  Use multiple icon styles in the same view
405
421
  </li>
406
- <li className="!text-white/80">
422
+ <li className="text-fm-icon-active!/80">
407
423
  Overuse the icon in navigation
408
424
  </li>
409
- <li className="!text-white/80">
425
+ <li className="text-fm-icon-active!/80">
410
426
  Use inappropriate sizes for the context
411
427
  </li>
412
- <li className="!text-white/80">
428
+ <li className="text-fm-icon-active!/80">
413
429
  Forget to add hover states
414
430
  </li>
415
- <li className="!text-white/80">
431
+ <li className="text-fm-icon-active!/80">
416
432
  Ignore accessibility requirements
417
433
  </li>
418
434
  </ul>
@@ -422,14 +438,14 @@ function UserProfile() {
422
438
  </div>
423
439
 
424
440
  {/* Footer */}
425
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
441
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
426
442
  <div className="!mx-auto max-w-7xl px-6 py-8">
427
443
  <div className="!space-y-4 text-center">
428
- <p className="!text-white/60">
444
+ <p className="text-fm-tertiary!">
429
445
  ImageAvatarSparkleIcon is part of the Aural UI icon library,
430
446
  designed for user profiles and avatar interfaces.
431
447
  </p>
432
- <p className="text-sm !text-white/40">
448
+ <p className="text-fm-placeholder! text-sm">
433
449
  Perfect for user management, profile displays, avatar
434
450
  selection, and any interface requiring enhanced avatar
435
451
  representation.
@@ -471,8 +487,8 @@ const storyParameters = {
471
487
  backgrounds: {
472
488
  default: "dark",
473
489
  values: [
474
- { name: "dark", value: "#0a0a0a" },
475
- { name: "darker", value: "#000000" },
490
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
491
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
476
492
  ],
477
493
  },
478
494
  }
@@ -481,12 +497,12 @@ export const Default: Story = {
481
497
  args: {
482
498
  width: 24,
483
499
  height: 24,
484
- className: "text-indigo-400",
500
+ className: "text-fm-icon-info",
485
501
  withAccessibility: true,
486
502
  },
487
503
  parameters: storyParameters,
488
504
  render: (args) => (
489
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
505
+ <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">
490
506
  <ImageAvatarSparkleIcon {...args} />
491
507
  </div>
492
508
  ),
@@ -503,30 +519,30 @@ export const SizeVariations: Story = {
503
519
  },
504
520
  },
505
521
  render: () => (
506
- <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">
522
+ <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">
507
523
  <div className="text-center">
508
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-3 w-3 text-indigo-400" />
509
- <span className="text-xs text-white/60">12px</span>
524
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
525
+ <span className="text-fm-tertiary text-xs">12px</span>
510
526
  </div>
511
527
  <div className="text-center">
512
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-4 w-4 text-indigo-400" />
513
- <span className="text-xs text-white/60">16px</span>
528
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
529
+ <span className="text-fm-tertiary text-xs">16px</span>
514
530
  </div>
515
531
  <div className="text-center">
516
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-5 w-5 text-indigo-400" />
517
- <span className="text-xs text-white/60">20px</span>
532
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
533
+ <span className="text-fm-tertiary text-xs">20px</span>
518
534
  </div>
519
535
  <div className="text-center">
520
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-6 w-6 text-indigo-400" />
521
- <span className="text-xs text-white/60">24px</span>
536
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
537
+ <span className="text-fm-tertiary text-xs">24px</span>
522
538
  </div>
523
539
  <div className="text-center">
524
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-8 w-8 text-indigo-400" />
525
- <span className="text-xs text-white/60">32px</span>
540
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
541
+ <span className="text-fm-tertiary text-xs">32px</span>
526
542
  </div>
527
543
  <div className="text-center">
528
- <ImageAvatarSparkleIcon className="!mx-auto mb-2 h-12 w-12 text-indigo-400" />
529
- <span className="text-xs text-white/60">48px</span>
544
+ <ImageAvatarSparkleIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
545
+ <span className="text-fm-tertiary text-xs">48px</span>
530
546
  </div>
531
547
  </div>
532
548
  ),
@@ -543,96 +559,116 @@ export const ColorVariations: Story = {
543
559
  },
544
560
  },
545
561
  render: () => (
546
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
562
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
547
563
  <div className="!space-y-4">
548
- <h3 className="text-center text-lg font-semibold !text-white">
564
+ <h3 className="text-fm-icon-active! text-center text-lg font-semibold">
549
565
  Standard Colors
550
566
  </h3>
551
567
  <div className="flex flex-wrap items-center justify-center gap-8">
552
568
  <div className="text-center">
553
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-indigo-500/30 bg-indigo-500/20">
554
- <ImageAvatarSparkleIcon className="h-8 w-8 text-indigo-400" />
569
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
570
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-8 w-8" />
571
+ </div>
572
+ <div className="text-fm-icon-active text-sm font-medium">
573
+ Indigo
555
574
  </div>
556
- <div className="text-sm font-medium text-white">Indigo</div>
557
- <div className="text-xs text-indigo-400">text-indigo-400</div>
575
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
558
576
  </div>
559
577
  <div className="text-center">
560
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
561
- <ImageAvatarSparkleIcon className="h-8 w-8 text-purple-400" />
578
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
579
+ <ImageAvatarSparkleIcon className="text-fm-secondary-600 h-8 w-8" />
580
+ </div>
581
+ <div className="text-fm-icon-active text-sm font-medium">
582
+ Purple
583
+ </div>
584
+ <div className="text-fm-secondary-600 text-xs">
585
+ text-fm-secondary-600
562
586
  </div>
563
- <div className="text-sm font-medium text-white">Purple</div>
564
- <div className="text-xs text-purple-400">text-purple-400</div>
565
587
  </div>
566
588
  <div className="text-center">
567
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
568
- <ImageAvatarSparkleIcon className="h-8 w-8 text-green-400" />
589
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
590
+ <ImageAvatarSparkleIcon className="text-fm-icon-positive h-8 w-8" />
591
+ </div>
592
+ <div className="text-fm-icon-active text-sm font-medium">Green</div>
593
+ <div className="text-fm-icon-positive text-xs">
594
+ text-fm-icon-positive
569
595
  </div>
570
- <div className="text-sm font-medium text-white">Green</div>
571
- <div className="text-xs text-green-400">text-green-400</div>
572
596
  </div>
573
597
  <div className="text-center">
574
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
575
- <ImageAvatarSparkleIcon className="h-8 w-8 text-red-400" />
598
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
599
+ <ImageAvatarSparkleIcon className="text-fm-icon-negative h-8 w-8" />
600
+ </div>
601
+ <div className="text-fm-icon-active text-sm font-medium">Red</div>
602
+ <div className="text-fm-icon-negative text-xs">
603
+ text-fm-icon-negative
576
604
  </div>
577
- <div className="text-sm font-medium text-white">Red</div>
578
- <div className="text-xs text-red-400">text-red-400</div>
579
605
  </div>
580
606
  <div className="text-center">
581
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-yellow-500/30 bg-yellow-500/20">
582
- <ImageAvatarSparkleIcon className="h-8 w-8 text-yellow-400" />
607
+ <div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
608
+ <ImageAvatarSparkleIcon className="text-fm-icon-warning h-8 w-8" />
609
+ </div>
610
+ <div className="text-fm-icon-active text-sm font-medium">
611
+ Yellow
612
+ </div>
613
+ <div className="text-fm-icon-warning text-xs">
614
+ text-fm-icon-warning
583
615
  </div>
584
- <div className="text-sm font-medium text-white">Yellow</div>
585
- <div className="text-xs text-yellow-400">text-yellow-400</div>
586
616
  </div>
587
617
  <div className="text-center">
588
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
589
- <ImageAvatarSparkleIcon className="h-8 w-8 text-blue-400" />
618
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
619
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-8 w-8" />
590
620
  </div>
591
- <div className="text-sm font-medium text-white">Blue</div>
592
- <div className="text-xs text-blue-400">text-blue-400</div>
621
+ <div className="text-fm-icon-active text-sm font-medium">Blue</div>
622
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
593
623
  </div>
594
624
  <div className="text-center">
595
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-cyan-500/30 bg-cyan-500/20">
596
- <ImageAvatarSparkleIcon className="h-8 w-8 text-cyan-400" />
625
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
626
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-8 w-8" />
597
627
  </div>
598
- <div className="text-sm font-medium text-white">Cyan</div>
599
- <div className="text-xs text-cyan-400">text-cyan-400</div>
628
+ <div className="text-fm-icon-active text-sm font-medium">Cyan</div>
629
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
600
630
  </div>
601
631
  <div className="text-center">
602
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/30 bg-white/10">
603
- <ImageAvatarSparkleIcon className="h-8 w-8 text-white" />
632
+ <div className="border-fm-divider-primary bg-fm-surface-secondary mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
633
+ <ImageAvatarSparkleIcon className="text-fm-icon-active h-8 w-8" />
604
634
  </div>
605
- <div className="text-sm font-medium text-white">White</div>
606
- <div className="text-xs text-white/60">text-white</div>
635
+ <div className="text-fm-icon-active text-sm font-medium">White</div>
636
+ <div className="text-fm-tertiary text-xs">text-fm-icon-active</div>
607
637
  </div>
608
638
  </div>
609
639
  </div>
610
640
  <div className="!space-y-4">
611
- <h3 className="text-center text-lg font-semibold !text-white">
641
+ <h3 className="text-fm-icon-active! text-center text-lg font-semibold">
612
642
  Design System Colors
613
643
  </h3>
614
644
  <div className="flex flex-wrap items-center justify-center gap-8">
615
645
  <div className="text-center">
616
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/20 bg-white/5">
646
+ <div className="border-fm-divider-primary bg-fm-surface-secondary mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
617
647
  <ImageAvatarSparkleIcon className="text-fm-primary h-8 w-8" />
618
648
  </div>
619
- <div className="text-sm font-medium text-white">Primary</div>
649
+ <div className="text-fm-icon-active text-sm font-medium">
650
+ Primary
651
+ </div>
620
652
  <div className="text-fm-primary text-xs">text-fm-primary</div>
621
653
  </div>
622
654
  <div className="text-center">
623
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/20 bg-white/5">
655
+ <div className="border-fm-divider-primary bg-fm-surface-secondary mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
624
656
  <ImageAvatarSparkleIcon className="text-fm-secondary-500 h-8 w-8" />
625
657
  </div>
626
- <div className="text-sm font-medium text-white">Secondary</div>
658
+ <div className="text-fm-icon-active text-sm font-medium">
659
+ Secondary
660
+ </div>
627
661
  <div className="text-fm-secondary-500 text-xs">
628
662
  text-fm-secondary-500
629
663
  </div>
630
664
  </div>
631
665
  <div className="text-center">
632
- <div className="mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/20 bg-white/5">
666
+ <div className="border-fm-divider-primary bg-fm-surface-secondary mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
633
667
  <ImageAvatarSparkleIcon className="text-fm-neutral-800 h-8 w-8" />
634
668
  </div>
635
- <div className="text-sm font-medium text-white">Neutral</div>
669
+ <div className="text-fm-icon-active text-sm font-medium">
670
+ Neutral
671
+ </div>
636
672
  <div className="text-fm-neutral-800 text-xs">
637
673
  text-fm-neutral-800
638
674
  </div>
@@ -654,69 +690,69 @@ export const UsageExamples: Story = {
654
690
  },
655
691
  },
656
692
  render: () => (
657
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
693
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
658
694
  <div className="!space-y-4">
659
- <h3 className="text-center text-lg font-semibold !text-white">
695
+ <h3 className="text-fm-icon-active! text-center text-lg font-semibold">
660
696
  Profile Buttons
661
697
  </h3>
662
698
  <div className="flex flex-wrap items-center justify-center gap-4">
663
- <button className="flex items-center gap-2 rounded-lg border border-indigo-500/20 bg-indigo-500/10 px-4 py-2 text-white transition-colors hover:bg-indigo-500/20">
664
- <ImageAvatarSparkleIcon className="h-4 w-4 text-indigo-400" />
699
+ <button className="border-fm-icon-info/20 bg-fm-icon-info/10 text-fm-icon-active hover:bg-fm-icon-info/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
700
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-4 w-4" />
665
701
  <span>View Profile</span>
666
702
  </button>
667
- <button className="flex items-center gap-2 rounded-lg border border-purple-500/20 bg-purple-500/10 px-4 py-2 text-white transition-colors hover:bg-purple-500/20">
668
- <ImageAvatarSparkleIcon className="h-4 w-4 text-purple-400" />
703
+ <button className="border-fm-secondary-500/20 bg-fm-secondary-500/10 text-fm-icon-active hover:bg-fm-secondary-500/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
704
+ <ImageAvatarSparkleIcon className="text-fm-secondary-600 h-4 w-4" />
669
705
  <span>Edit Profile</span>
670
706
  </button>
671
- <button className="flex items-center gap-2 rounded-lg border border-green-500/20 bg-green-500/10 px-4 py-2 text-white transition-colors hover:bg-green-500/20">
672
- <ImageAvatarSparkleIcon className="h-4 w-4 text-green-400" />
707
+ <button className="border-fm-icon-positive/20 bg-fm-icon-positive/10 text-fm-icon-active hover:bg-fm-icon-positive/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
708
+ <ImageAvatarSparkleIcon className="text-fm-icon-positive h-4 w-4" />
673
709
  <span>Settings</span>
674
710
  </button>
675
- <button className="flex items-center gap-2 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-4 py-2 text-white transition-colors hover:bg-cyan-500/20">
676
- <ImageAvatarSparkleIcon className="h-4 w-4 text-cyan-400" />
711
+ <button className="border-fm-icon-info/20 bg-fm-icon-info/10 text-fm-icon-active hover:bg-fm-icon-info/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
712
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-4 w-4" />
677
713
  <span>New Profile</span>
678
714
  </button>
679
715
  </div>
680
716
  </div>
681
717
  <div className="!space-y-4">
682
- <h3 className="text-center text-lg font-semibold !text-white">
718
+ <h3 className="text-fm-icon-active! text-center text-lg font-semibold">
683
719
  User List Items
684
720
  </h3>
685
721
  <div className="flex flex-wrap items-center justify-center gap-4">
686
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2">
687
- <ImageAvatarSparkleIcon className="h-5 w-5 text-green-400" />
688
- <span className="text-white/80">Premium User</span>
722
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2">
723
+ <ImageAvatarSparkleIcon className="text-fm-icon-positive h-5 w-5" />
724
+ <span className="text-fm-icon-active/80">Premium User</span>
689
725
  </div>
690
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2">
691
- <ImageAvatarSparkleIcon className="h-5 w-5 text-blue-400" />
692
- <span className="text-white/80">Standard User</span>
726
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2">
727
+ <ImageAvatarSparkleIcon className="text-fm-icon-info h-5 w-5" />
728
+ <span className="text-fm-icon-active/80">Standard User</span>
693
729
  </div>
694
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2">
695
- <ImageAvatarSparkleIcon className="h-5 w-5 text-purple-400" />
696
- <span className="text-white/80">VIP User</span>
730
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2">
731
+ <ImageAvatarSparkleIcon className="text-fm-secondary-600 h-5 w-5" />
732
+ <span className="text-fm-icon-active/80">VIP User</span>
697
733
  </div>
698
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2">
699
- <ImageAvatarSparkleIcon className="h-5 w-5 text-yellow-400" />
700
- <span className="text-white/80">Guest User</span>
734
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2">
735
+ <ImageAvatarSparkleIcon className="text-fm-icon-warning h-5 w-5" />
736
+ <span className="text-fm-icon-active/80">Guest User</span>
701
737
  </div>
702
738
  </div>
703
739
  </div>
704
740
  <div className="!space-y-4">
705
- <h3 className="text-center text-lg font-semibold !text-white">
741
+ <h3 className="text-fm-icon-active! text-center text-lg font-semibold">
706
742
  Status Indicators
707
743
  </h3>
708
744
  <div className="flex flex-wrap items-center justify-center gap-4">
709
- <div className="flex items-center gap-2 rounded-lg border border-green-500/20 bg-green-500/10 px-4 py-2">
710
- <ImageAvatarSparkleIcon className="h-5 w-5 text-green-400" />
711
- <span className="text-white">Active</span>
745
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-2 rounded-lg border px-4 py-2">
746
+ <ImageAvatarSparkleIcon className="text-fm-icon-positive h-5 w-5" />
747
+ <span className="text-fm-icon-active">Active</span>
712
748
  </div>
713
- <div className="flex items-center gap-2 rounded-lg border border-yellow-500/20 bg-yellow-500/10 px-4 py-2">
714
- <ImageAvatarSparkleIcon className="h-5 w-5 text-yellow-400" />
715
- <span className="text-white">Pending</span>
749
+ <div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 flex items-center gap-2 rounded-lg border px-4 py-2">
750
+ <ImageAvatarSparkleIcon className="text-fm-icon-warning h-5 w-5" />
751
+ <span className="text-fm-icon-active">Pending</span>
716
752
  </div>
717
- <div className="flex items-center gap-2 rounded-lg border border-red-500/20 bg-red-500/10 px-4 py-2">
718
- <ImageAvatarSparkleIcon className="h-5 w-5 text-red-400" />
719
- <span className="text-white">Inactive</span>
753
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 flex items-center gap-2 rounded-lg border px-4 py-2">
754
+ <ImageAvatarSparkleIcon className="text-fm-icon-negative h-5 w-5" />
755
+ <span className="text-fm-icon-active">Inactive</span>
720
756
  </div>
721
757
  </div>
722
758
  </div>
@@ -737,11 +773,11 @@ export const Playground: Story = {
737
773
  args: {
738
774
  width: 32,
739
775
  height: 32,
740
- className: "text-indigo-400",
776
+ className: "text-fm-icon-info",
741
777
  },
742
778
  render: (args) => (
743
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
744
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
779
+ <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">
780
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
745
781
  <ImageAvatarSparkleIcon {...args} />
746
782
  </div>
747
783
  </div>