aural-ui 3.0.7 → 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 (166) 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/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
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: {
@@ -40,57 +40,57 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
40
40
  background: transparent !important;
41
41
  }
42
42
  body {
43
- background: #0a0a0a !important;
43
+ background: var(--color-fm-surface-primary) !important;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a !important;
46
+ background: var(--color-fm-surface-primary) !important;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent !important;
50
50
  border: none !important;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white !important;
53
+ color: var(--color-fm-icon-active) !important;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) !important;
56
+ color: var(--color-fm-secondary) !important;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) !important;
60
- color: rgba(168, 85, 247, 1) !important;
61
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
59
+ background: var(--color-fm-surface-secondary) !important;
60
+ color: var(--color-fm-secondary-500) !important;
61
+ border: 1px solid var(--color-fm-divider-secondary) !important;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) !important;
65
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
64
+ background: var(--color-fm-surface-secondary) !important;
65
+ border: 1px solid var(--color-fm-divider-secondary) !important;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) !important;
69
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
68
+ background: var(--color-fm-surface-secondary) !important;
69
+ border: 1px solid var(--color-fm-divider-secondary) !important;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) !important;
73
- color: white !important;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
72
+ background: var(--color-fm-surface-secondary) !important;
73
+ color: var(--color-fm-icon-active) !important;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) !important;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
77
+ color: var(--color-fm-secondary) !important;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
83
+ <div className="bg-fm-surface-primary min-h-screen">
84
84
  {/* Header */}
85
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
- <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
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 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-blue-500/20">
90
- <SpinnerGradientIcon className="h-12 w-12 text-purple-400" />
89
+ <div className="border-fm-secondary-500/30 from-fm-secondary-500/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <SpinnerGradientIcon className="text-fm-secondary-600 h-12 w-12" />
91
91
  </div>
92
- <h1 className="!text-white">SpinnerGradientIcon</h1>
93
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white">
92
+ <h1 className="text-fm-icon-active!">SpinnerGradientIcon</h1>
93
+ <p className="text-fm-icon-active! !mx-auto max-w-3xl text-xl leading-relaxed">
94
94
  A dynamic gradient spinner icon for loading states,
95
95
  asynchronous actions, and content transitions. Features a
96
96
  beautiful gradient animation that smoothly transitions
@@ -100,28 +100,30 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
100
100
  {/* Stats */}
101
101
  <div className="flex items-center justify-center gap-8 pt-8">
102
102
  <div className="text-center">
103
- <div className="text-3xl font-bold text-purple-300">
103
+ <div className="text-fm-secondary-600 text-3xl font-bold">
104
104
  Smooth
105
105
  </div>
106
- <div className="text-sm text-white/80">
106
+ <div className="text-fm-icon-active/80 text-sm">
107
107
  Gradient Animation
108
108
  </div>
109
109
  </div>
110
- <div className="h-8 w-px bg-white/20" />
110
+ <div className="bg-fm-divider-primary h-8 w-px" />
111
111
  <div className="text-center">
112
- <div className="text-3xl font-bold text-blue-300">
112
+ <div className="text-fm-icon-info text-3xl font-bold">
113
113
  Accessible
114
114
  </div>
115
- <div className="text-sm text-white/80">
115
+ <div className="text-fm-icon-active/80 text-sm">
116
116
  Screen Reader Ready
117
117
  </div>
118
118
  </div>
119
- <div className="h-8 w-px bg-white/20" />
119
+ <div className="bg-fm-divider-primary h-8 w-px" />
120
120
  <div className="text-center">
121
- <div className="text-3xl font-bold text-green-300">
121
+ <div className="text-fm-icon-positive text-3xl font-bold">
122
122
  Customizable
123
123
  </div>
124
- <div className="text-sm text-white/80">Size & Colors</div>
124
+ <div className="text-fm-icon-active/80 text-sm">
125
+ Size & Colors
126
+ </div>
125
127
  </div>
126
128
  </div>
127
129
  </div>
@@ -132,36 +134,36 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
132
134
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
133
135
  {/* Features */}
134
136
  <div className="!space-y-8">
135
- <h3 className="text-center text-2xl font-bold !text-white">
137
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
136
138
  Key Features
137
139
  </h3>
138
140
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
139
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
141
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
140
142
  <div className="text-3xl">🎨</div>
141
- <h4 className="text-lg font-semibold !text-white">
143
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
142
144
  Gradient Animation
143
145
  </h4>
144
- <p className="text-sm !text-white/80">
146
+ <p className="text-fm-icon-active!/80 text-sm">
145
147
  Smooth color transitions between primary, secondary, and
146
148
  neutral colors
147
149
  </p>
148
150
  </div>
149
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
151
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
150
152
  <div className="text-3xl">♿</div>
151
- <h4 className="text-lg font-semibold !text-white">
153
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
152
154
  Accessibility
153
155
  </h4>
154
- <p className="text-sm !text-white/80">
156
+ <p className="text-fm-icon-active!/80 text-sm">
155
157
  Built with Radix UI's AccessibleIcon for screen reader
156
158
  support
157
159
  </p>
158
160
  </div>
159
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
161
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
160
162
  <div className="text-3xl">⚡</div>
161
- <h4 className="text-lg font-semibold !text-white">
163
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
162
164
  Performance
163
165
  </h4>
164
- <p className="text-sm !text-white/80">
166
+ <p className="text-fm-icon-active!/80 text-sm">
165
167
  Optimized SVG rendering with minimal DOM impact
166
168
  </p>
167
169
  </div>
@@ -170,17 +172,17 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
170
172
 
171
173
  {/* API Reference */}
172
174
  <div className="!space-y-8">
173
- <h3 className="text-center text-2xl font-bold !text-white">
175
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
174
176
  API Reference
175
177
  </h3>
176
178
 
177
179
  {/* Component Signature */}
178
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
179
- <h4 className="mb-4 text-lg font-semibold !text-purple-300">
180
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
181
+ <h4 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
180
182
  Component Signature
181
183
  </h4>
182
- <div className="rounded-lg bg-black/40 p-4">
183
- <pre className="text-sm !text-blue-300">
184
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
185
+ <pre className="text-fm-icon-info! text-sm">
184
186
  {`import { SpinnerGradientIcon } from "@/ui/icons/spinner-gradient-icon"
185
187
 
186
188
  <SpinnerGradientIcon className="h-6 w-6 animate-spin" />`}
@@ -190,73 +192,73 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
190
192
 
191
193
  {/* Props Table */}
192
194
  <div className="!space-y-8">
193
- <h2 className="text-center text-3xl font-bold !text-white">
195
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
194
196
  Props & Configuration
195
197
  </h2>
196
198
 
197
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
198
- <div className="bg-white/5 p-4">
199
- <h3 className="text-xl font-semibold !text-white">
199
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
200
+ <div className="bg-fm-surface-secondary p-4">
201
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
200
202
  Props
201
203
  </h3>
202
204
  </div>
203
205
  <table className="!my-0 w-full">
204
- <thead className="bg-white/5">
205
- <tr className="border-b border-white/10">
206
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
206
+ <thead className="bg-fm-surface-secondary">
207
+ <tr className="border-fm-divider-secondary border-b">
208
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
207
209
  Prop
208
210
  </th>
209
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
211
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
210
212
  Type
211
213
  </th>
212
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
214
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
213
215
  Default
214
216
  </th>
215
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
217
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
216
218
  Description
217
219
  </th>
218
220
  </tr>
219
221
  </thead>
220
222
  <tbody>
221
- <tr className="border-b border-white/5">
222
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
223
+ <tr className="border-fm-divider-tertiary border-b">
224
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
223
225
  width
224
226
  </td>
225
- <td className="px-6 py-4 text-sm !text-white/70">
227
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
226
228
  number | string
227
229
  </td>
228
- <td className="px-6 py-4 text-sm !text-white/50">
230
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
229
231
  16
230
232
  </td>
231
- <td className="px-6 py-4 text-sm !text-white/70">
233
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
232
234
  Width of the icon in pixels
233
235
  </td>
234
236
  </tr>
235
- <tr className="border-b border-white/5 !bg-black/10">
236
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
237
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
238
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
237
239
  height
238
240
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/70">
241
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
240
242
  number | string
241
243
  </td>
242
- <td className="px-6 py-4 text-sm !text-white/50">
244
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
243
245
  16
244
246
  </td>
245
- <td className="px-6 py-4 text-sm !text-white/70">
247
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
246
248
  Height of the icon in pixels
247
249
  </td>
248
250
  </tr>
249
- <tr className="!bg-black/10">
250
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
251
+ <tr className="bg-fm-surface-secondary!">
252
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
251
253
  className
252
254
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/70">
255
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
254
256
  string
255
257
  </td>
256
- <td className="px-6 py-4 text-sm !text-white/50">
258
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
257
259
  -
258
260
  </td>
259
- <td className="px-6 py-4 text-sm !text-white/70">
261
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
260
262
  CSS classes for styling
261
263
  </td>
262
264
  </tr>
@@ -266,64 +268,64 @@ const meta: Meta<typeof SpinnerGradientIcon> = {
266
268
  </div>
267
269
  {/* Accessibility */}
268
270
  <div className="!space-y-8">
269
- <h2 className="text-center text-3xl font-bold !text-white">
271
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
270
272
  Accessibility Features
271
273
  </h2>
272
274
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
273
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
274
- <h3 className="text-lg font-semibold !text-green-300">
275
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
276
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
275
277
  ✅ Built-in Features
276
278
  </h3>
277
- <ul className="!space-y-2 text-sm !text-white/70">
278
- <li className="!text-white/70">
279
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
280
+ <li className="text-fm-secondary!">
279
281
  Uses Radix UI AccessibleIcon wrapper
280
282
  </li>
281
- <li className="!text-white/70">
283
+ <li className="text-fm-secondary!">
282
284
  Provides screen reader label "Spinner Gradient icon"
283
285
  </li>
284
- <li className="!text-white/70">
286
+ <li className="text-fm-secondary!">
285
287
  Supports keyboard navigation when interactive
286
288
  </li>
287
- <li className="!text-white/70">
289
+ <li className="text-fm-secondary!">
288
290
  Maintains proper color contrast ratios
289
291
  </li>
290
- <li className="!text-white/70">
292
+ <li className="text-fm-secondary!">
291
293
  Scales with user's font size preferences
292
294
  </li>
293
295
  </ul>
294
296
  </div>
295
297
 
296
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
297
- <h3 className="text-lg font-semibold !text-red-300">
298
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
299
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
298
300
  💡 Best Practices
299
301
  </h3>
300
- <ul className="!space-y-2 text-sm text-white/70">
301
- <li className="!text-white/70">
302
+ <ul className="text-fm-secondary !space-y-2 text-sm">
303
+ <li className="text-fm-secondary!">
302
304
  Always pair with descriptive text
303
305
  </li>
304
- <li className="!text-white/70">
306
+ <li className="text-fm-secondary!">
305
307
  Provide a text fallback for screen readers{" "}
306
308
  </li>
307
- <li className="!text-white/70">
309
+ <li className="text-fm-secondary!">
308
310
  Ensure sufficient color contrast
309
311
  </li>
310
- <li className="!text-white/70">
312
+ <li className="text-fm-secondary!">
311
313
  Respect reduced motion user preferences{" "}
312
314
  </li>
313
- <li className="!text-white/70">
315
+ <li className="text-fm-secondary!">
314
316
  Ensure spinner indicates real loading action{" "}
315
317
  </li>
316
318
  </ul>
317
319
  </div>
318
320
  </div>
319
321
 
320
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
321
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
322
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
323
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
322
324
  Custom Accessibility Label
323
325
  </h3>
324
326
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
325
- <div className="rounded-lg bg-black/40 p-4">
326
- <pre className="overflow-x-auto text-sm !text-blue-300">
327
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
328
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
327
329
  {`// Custom implementation with specific label
328
330
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
329
331
 
@@ -343,13 +345,13 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
343
345
  </pre>
344
346
  </div>
345
347
  <div className="!space-y-4">
346
- <p className="text-sm !text-white/70">
348
+ <p className="text-fm-secondary! text-sm">
347
349
  For specific contexts, you can wrap the
348
350
  SpinnerGradient with a custom AccessibleIcon component
349
351
  that provides more descriptive labels.
350
352
  </p>
351
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
352
- <div className="flex items-center gap-2 text-sm text-red-200">
353
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
354
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
353
355
  <SpinnerGradientIcon className="h-4 w-4" />
354
356
  <span>
355
357
  This approach gives screen readers more context
@@ -362,54 +364,60 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
362
364
  </div>
363
365
  {/* Related Icons */}
364
366
  <div className="!space-y-8">
365
- <h2 className="text-center text-3xl font-bold !text-white">
367
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
366
368
  Related Icons
367
369
  </h2>
368
370
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
369
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
370
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
371
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
372
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
371
373
  <span className="animate-spin text-2xl">⭕</span>
372
374
  </div>
373
375
  <div>
374
- <div className="font-medium text-white">
376
+ <div className="text-fm-icon-active font-medium">
375
377
  SpinnerSolid
376
378
  </div>
377
- <div className="text-xs text-white/60">
379
+ <div className="text-fm-tertiary text-xs">
378
380
  Solid fill loading spinner{" "}
379
381
  </div>
380
382
  </div>
381
383
  </div>
382
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
383
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
384
- <span className="!text-2xl !text-white">+</span>
384
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
385
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
386
+ <span className="text-fm-icon-active! !text-2xl">
387
+ +
388
+ </span>
385
389
  </div>
386
390
  <div>
387
- <div className="font-medium text-white">AddIcon</div>
388
- <div className="text-xs text-white/60">
391
+ <div className="text-fm-icon-active font-medium">
392
+ AddIcon
393
+ </div>
394
+ <div className="text-fm-tertiary text-xs">
389
395
  Create operations
390
396
  </div>
391
397
  </div>
392
398
  </div>
393
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
394
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
399
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
400
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
395
401
  <span className="text-2xl">📁</span>
396
402
  </div>
397
403
  <div>
398
- <div className="font-medium text-white">FolderIcon</div>
399
- <div className="text-xs text-white/60">
404
+ <div className="text-fm-icon-active font-medium">
405
+ FolderIcon
406
+ </div>
407
+ <div className="text-fm-tertiary text-xs">
400
408
  File management
401
409
  </div>
402
410
  </div>
403
411
  </div>
404
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
405
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
412
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
413
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
406
414
  <span className="text-2xl">⚙️</span>
407
415
  </div>
408
416
  <div>
409
- <div className="font-medium text-white">
417
+ <div className="text-fm-icon-active font-medium">
410
418
  SettingsIcon
411
419
  </div>
412
- <div className="text-xs text-white/60">
420
+ <div className="text-fm-tertiary text-xs">
413
421
  Configuration
414
422
  </div>
415
423
  </div>
@@ -417,14 +425,14 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
417
425
  </div>
418
426
  </div>
419
427
  {/* Footer */}
420
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
428
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
421
429
  <div className="!mx-auto max-w-7xl px-6 py-8">
422
430
  <div className="!space-y-4 text-center">
423
- <p className="!text-white/60">
431
+ <p className="text-fm-tertiary!">
424
432
  Spinner Gradient icons are part of the Aural UI icon
425
433
  library, optimized for accessibility and responsiveness.
426
434
  </p>
427
- <p className="text-sm !text-white/40">
435
+ <p className="text-fm-placeholder! text-sm">
428
436
  All icons use Radix UI's AccessibleIcon for screen
429
437
  reader compatibility and follow WCAG guidelines.
430
438
  </p>
@@ -449,8 +457,8 @@ const storyParameters = {
449
457
  backgrounds: {
450
458
  default: "dark",
451
459
  values: [
452
- { name: "dark", value: "#0a0a0a" },
453
- { name: "darker", value: "#000000" },
460
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
461
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
454
462
  ],
455
463
  },
456
464
  }
@@ -459,11 +467,11 @@ export const Default: Story = {
459
467
  args: {
460
468
  width: 24,
461
469
  height: 24,
462
- className: "text-purple-400",
470
+ className: "text-fm-secondary-600",
463
471
  },
464
472
  parameters: storyParameters,
465
473
  render: (args) => (
466
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
474
+ <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">
467
475
  <SpinnerGradientIcon {...args} className="animate-spin" />
468
476
  </div>
469
477
  ),
@@ -480,30 +488,30 @@ export const SizeVariations: Story = {
480
488
  },
481
489
  },
482
490
  render: () => (
483
- <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">
491
+ <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">
484
492
  <div className="text-center">
485
- <SpinnerGradientIcon className="!mx-auto mb-2 h-3 w-3 animate-spin text-purple-400" />
486
- <span className="text-xs text-white/60">12px</span>
493
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3 animate-spin" />
494
+ <span className="text-fm-tertiary text-xs">12px</span>
487
495
  </div>
488
496
  <div className="text-center">
489
- <SpinnerGradientIcon className="!mx-auto mb-2 h-4 w-4 animate-spin text-purple-400" />
490
- <span className="text-xs text-white/60">16px</span>
497
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4 animate-spin" />
498
+ <span className="text-fm-tertiary text-xs">16px</span>
491
499
  </div>
492
500
  <div className="text-center">
493
- <SpinnerGradientIcon className="!mx-auto mb-2 h-5 w-5 animate-spin text-purple-400" />
494
- <span className="text-xs text-white/60">20px</span>
501
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5 animate-spin" />
502
+ <span className="text-fm-tertiary text-xs">20px</span>
495
503
  </div>
496
504
  <div className="text-center">
497
- <SpinnerGradientIcon className="!mx-auto mb-2 h-6 w-6 animate-spin text-purple-400" />
498
- <span className="text-xs text-white/60">24px</span>
505
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6 animate-spin" />
506
+ <span className="text-fm-tertiary text-xs">24px</span>
499
507
  </div>
500
508
  <div className="text-center">
501
- <SpinnerGradientIcon className="!mx-auto mb-2 h-8 w-8 animate-spin text-purple-400" />
502
- <span className="text-xs text-white/60">32px</span>
509
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8 animate-spin" />
510
+ <span className="text-fm-tertiary text-xs">32px</span>
503
511
  </div>
504
512
  <div className="text-center">
505
- <SpinnerGradientIcon className="!mx-auto mb-2 h-12 w-12 animate-spin text-purple-400" />
506
- <span className="text-xs text-white/60">48px</span>
513
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12 animate-spin" />
514
+ <span className="text-fm-tertiary text-xs">48px</span>
507
515
  </div>
508
516
  </div>
509
517
  ),
@@ -520,34 +528,36 @@ export const ColorVariations: Story = {
520
528
  },
521
529
  },
522
530
  render: () => (
523
- <div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
531
+ <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">
524
532
  <div className="text-center">
525
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
526
- <SpinnerGradientIcon className="h-8 w-8 animate-spin text-purple-400" />
533
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
534
+ <SpinnerGradientIcon className="text-fm-secondary-600 h-8 w-8 animate-spin" />
535
+ </div>
536
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
537
+ <div className="text-fm-secondary-600 text-xs">
538
+ text-fm-secondary-600
527
539
  </div>
528
- <div className="text-sm font-medium text-white">Primary</div>
529
- <div className="text-xs text-purple-400">text-purple-400</div>
530
540
  </div>
531
541
  <div className="text-center">
532
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
533
- <SpinnerGradientIcon className="h-8 w-8 animate-spin text-blue-400" />
542
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
543
+ <SpinnerGradientIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
534
544
  </div>
535
- <div className="text-sm font-medium text-white">Secondary</div>
536
- <div className="text-xs text-blue-400">text-blue-400</div>
545
+ <div className="text-fm-icon-active text-sm font-medium">Secondary</div>
546
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
537
547
  </div>
538
548
  <div className="text-center">
539
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-cyan-500/30 bg-cyan-500/20">
540
- <SpinnerGradientIcon className="h-8 w-8 animate-spin text-cyan-400" />
549
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
550
+ <SpinnerGradientIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
541
551
  </div>
542
- <div className="text-sm font-medium text-white">Info</div>
543
- <div className="text-xs text-cyan-400">text-cyan-400</div>
552
+ <div className="text-fm-icon-active text-sm font-medium">Info</div>
553
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
544
554
  </div>
545
555
  <div className="text-center">
546
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
547
- <SpinnerGradientIcon className="h-8 w-8 animate-spin text-gray-400" />
556
+ <div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
557
+ <SpinnerGradientIcon className="text-fm-placeholder h-8 w-8 animate-spin" />
548
558
  </div>
549
- <div className="text-sm font-medium text-white">Muted</div>
550
- <div className="text-xs text-gray-400">text-gray-400</div>
559
+ <div className="text-fm-icon-active text-sm font-medium">Muted</div>
560
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
551
561
  </div>
552
562
  </div>
553
563
  ),
@@ -564,16 +574,18 @@ export const UsageExamples: Story = {
564
574
  },
565
575
  },
566
576
  render: () => (
567
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
577
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
568
578
  {/* Loading Button */}
569
579
  <div className="!space-y-2">
570
- <h3 className="text-sm font-medium text-white">Loading Button</h3>
580
+ <h3 className="text-fm-icon-active text-sm font-medium">
581
+ Loading Button
582
+ </h3>
571
583
  <div className="flex gap-4">
572
- <button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/20 px-4 py-2 text-purple-200 transition-colors hover:bg-purple-500/30">
584
+ <button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
573
585
  <SpinnerGradientIcon className="h-4 w-4 animate-spin" />
574
586
  Loading...
575
587
  </button>
576
- <button className="flex h-10 w-10 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20 text-purple-200 transition-colors hover:bg-purple-500/30">
588
+ <button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
577
589
  <SpinnerGradientIcon className="h-5 w-5 animate-spin" />
578
590
  </button>
579
591
  </div>
@@ -581,28 +593,32 @@ export const UsageExamples: Story = {
581
593
 
582
594
  {/* Loading State */}
583
595
  <div className="!space-y-2">
584
- <h3 className="text-sm font-medium text-white">Loading State</h3>
585
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
596
+ <h3 className="text-fm-icon-active text-sm font-medium">
597
+ Loading State
598
+ </h3>
599
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
586
600
  <div className="text-center">
587
- <SpinnerGradientIcon className="!mx-auto mb-4 h-12 w-12 animate-spin text-purple-400" />
588
- <div className="text-sm text-white/60">Loading content...</div>
601
+ <SpinnerGradientIcon className="text-fm-secondary-600 !mx-auto mb-4 h-12 w-12 animate-spin" />
602
+ <div className="text-fm-tertiary text-sm">Loading content...</div>
589
603
  </div>
590
604
  </div>
591
605
  </div>
592
606
 
593
607
  {/* Form Loading */}
594
608
  <div className="!space-y-2">
595
- <h3 className="text-sm font-medium text-white">Form Loading</h3>
596
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
609
+ <h3 className="text-fm-icon-active text-sm font-medium">
610
+ Form Loading
611
+ </h3>
612
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
597
613
  <div className="mb-4">
598
- <label className="mb-2 block text-sm text-white/60">Email</label>
614
+ <label className="text-fm-tertiary mb-2 block text-sm">Email</label>
599
615
  <input
600
616
  type="email"
601
- className="w-full rounded-lg border border-white/20 bg-white/10 px-4 py-2 text-white placeholder-white/50"
617
+ className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active w-full rounded-lg border px-4 py-2 placeholder-white/50"
602
618
  placeholder="Enter your email"
603
619
  />
604
620
  </div>
605
- <button className="flex w-full items-center justify-center gap-2 rounded-lg bg-purple-500/20 px-4 py-2 text-purple-200">
621
+ <button className="bg-fm-secondary-500/20 text-fm-secondary-600 flex w-full items-center justify-center gap-2 rounded-lg px-4 py-2">
606
622
  <SpinnerGradientIcon className="h-4 w-4 animate-spin" />
607
623
  Submitting...
608
624
  </button>
@@ -625,11 +641,11 @@ export const Playground: Story = {
625
641
  args: {
626
642
  width: 32,
627
643
  height: 32,
628
- className: "text-purple-400",
644
+ className: "text-fm-secondary-600",
629
645
  },
630
646
  render: (args) => (
631
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
632
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
647
+ <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">
648
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
633
649
  <SpinnerGradientIcon {...args} className="animate-spin" />
634
650
  </div>
635
651
  </div>