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
@@ -12,9 +12,9 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
12
12
  backgrounds: {
13
13
  default: "dark",
14
14
  values: [
15
- { name: "dark", value: "#0a0a0a" },
16
- { name: "darker", value: "#000000" },
17
- { name: "light", value: "#ffffff" },
15
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
16
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
17
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
18
18
  ],
19
19
  },
20
20
  docs: {
@@ -41,42 +41,42 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
41
41
  background: transparent !important;
42
42
  }
43
43
  body {
44
- background: #0a0a0a !important;
44
+ background: var(--color-fm-surface-primary) !important;
45
45
  }
46
46
  #storybook-docs {
47
- background: #0a0a0a !important;
47
+ background: var(--color-fm-surface-primary) !important;
48
48
  }
49
49
  .sbdocs-preview {
50
50
  background: transparent !important;
51
51
  border: none !important;
52
52
  }
53
53
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
54
- color: white !important;
54
+ color: var(--color-fm-icon-active) !important;
55
55
  }
56
56
  .sbdocs-p, .sbdocs-li {
57
- color: rgba(255, 255, 255, 0.7) !important;
57
+ color: var(--color-fm-secondary) !important;
58
58
  }
59
59
  .sbdocs-code {
60
- background: rgba(255, 255, 255, 0.1) !important;
61
- color: rgba(168, 85, 247, 1) !important;
62
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
60
+ background: var(--color-fm-surface-secondary) !important;
61
+ color: var(--color-fm-secondary-500) !important;
62
+ border: 1px solid var(--color-fm-divider-secondary) !important;
63
63
  }
64
64
  .sbdocs-pre {
65
- background: rgba(0, 0, 0, 0.4) !important;
66
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
65
+ background: var(--color-fm-surface-secondary) !important;
66
+ border: 1px solid var(--color-fm-divider-secondary) !important;
67
67
  }
68
68
  .sbdocs-table {
69
- background: rgba(255, 255, 255, 0.05) !important;
70
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
69
+ background: var(--color-fm-surface-secondary) !important;
70
+ border: 1px solid var(--color-fm-divider-secondary) !important;
71
71
  }
72
72
  .sbdocs-table th {
73
- background: rgba(255, 255, 255, 0.05) !important;
74
- color: white !important;
75
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
73
+ background: var(--color-fm-surface-secondary) !important;
74
+ color: var(--color-fm-icon-active) !important;
75
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
76
76
  }
77
77
  .sbdocs-table td {
78
- color: rgba(255, 255, 255, 0.7) !important;
79
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
78
+ color: var(--color-fm-secondary) !important;
79
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
80
80
  }
81
81
  @keyframes search-pulse {
82
82
  0%, 100% { transform: scale(1); opacity: 1; }
@@ -102,17 +102,17 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
102
102
  `}
103
103
  </style>
104
104
 
105
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-900/20 to-gray-900">
105
+ <div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
106
106
  {/* Header */}
107
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
108
- <div className="absolute inset-0 bg-gradient-to-r from-blue-500/10 via-transparent to-purple-500/10" />
107
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
108
+ <div className="from-fm-icon-info/10 to-fm-secondary-500/10 absolute inset-0 bg-linear-to-r via-transparent" />
109
109
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
110
110
  <div className="!space-y-6 text-center">
111
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20">
112
- <SpinnerSolidIcon className="h-12 w-12 text-blue-400" />
111
+ <div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
112
+ <SpinnerSolidIcon className="text-fm-icon-info h-12 w-12" />
113
113
  </div>
114
- <h1 className="!text-white">SpinnerSolidIcon</h1>
115
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white">
114
+ <h1 className="text-fm-icon-active!">SpinnerSolidIcon</h1>
115
+ <p className="text-fm-icon-active! !mx-auto max-w-3xl text-xl leading-relaxed">
116
116
  A clean and minimal spinner icon for loading states,
117
117
  asynchronous actions, and content transitions. Perfect for
118
118
  indicating progress in a subtle and elegant way.
@@ -121,26 +121,28 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
121
121
  {/* Stats */}
122
122
  <div className="flex items-center justify-center gap-8 pt-8">
123
123
  <div className="text-center">
124
- <div className="text-3xl font-bold text-blue-300">
124
+ <div className="text-fm-icon-info text-3xl font-bold">
125
125
  Minimal
126
126
  </div>
127
- <div className="text-sm text-white/80">Clean Design</div>
127
+ <div className="text-fm-icon-active/80 text-sm">
128
+ Clean Design
129
+ </div>
128
130
  </div>
129
- <div className="h-8 w-px bg-white/20" />
131
+ <div className="bg-fm-divider-primary h-8 w-px" />
130
132
  <div className="text-center">
131
- <div className="text-3xl font-bold text-purple-300">
133
+ <div className="text-fm-secondary-600 text-3xl font-bold">
132
134
  Accessible
133
135
  </div>
134
- <div className="text-sm text-white/80">
136
+ <div className="text-fm-icon-active/80 text-sm">
135
137
  Screen Reader Ready
136
138
  </div>
137
139
  </div>
138
- <div className="h-8 w-px bg-white/20" />
140
+ <div className="bg-fm-divider-primary h-8 w-px" />
139
141
  <div className="text-center">
140
- <div className="text-3xl font-bold text-green-300">
142
+ <div className="text-fm-icon-positive text-3xl font-bold">
141
143
  Versatile
142
144
  </div>
143
- <div className="text-sm text-white/80">
145
+ <div className="text-fm-icon-active/80 text-sm">
144
146
  Multiple Sizes
145
147
  </div>
146
148
  </div>
@@ -153,35 +155,35 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
153
155
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
154
156
  {/* Features */}
155
157
  <div className="!space-y-8">
156
- <h3 className="text-center text-2xl font-bold !text-white">
158
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
157
159
  Key Features
158
160
  </h3>
159
161
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
160
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
162
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
161
163
  <div className="text-3xl">🎨</div>
162
- <h4 className="text-lg font-semibold !text-white">
164
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
163
165
  Clean Design
164
166
  </h4>
165
- <p className="text-sm !text-white/80">
167
+ <p className="text-fm-icon-active!/80 text-sm">
166
168
  Minimal and elegant spinner design that fits any interface
167
169
  </p>
168
170
  </div>
169
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
171
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
170
172
  <div className="text-3xl">♿</div>
171
- <h4 className="text-lg font-semibold !text-white">
173
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
172
174
  Accessibility
173
175
  </h4>
174
- <p className="text-sm !text-white/80">
176
+ <p className="text-fm-icon-active!/80 text-sm">
175
177
  Built with Radix UI's AccessibleIcon for screen reader
176
178
  support
177
179
  </p>
178
180
  </div>
179
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
181
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
180
182
  <div className="text-3xl">⚡</div>
181
- <h4 className="text-lg font-semibold !text-white">
183
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
182
184
  Performance
183
185
  </h4>
184
- <p className="text-sm !text-white/80">
186
+ <p className="text-fm-icon-active!/80 text-sm">
185
187
  Optimized SVG rendering with minimal DOM impact
186
188
  </p>
187
189
  </div>
@@ -190,17 +192,17 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
190
192
 
191
193
  {/* API Reference */}
192
194
  <div className="!space-y-8">
193
- <h3 className="text-center text-2xl font-bold !text-white">
195
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
194
196
  API Reference
195
197
  </h3>
196
198
 
197
199
  {/* Component Signature */}
198
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
199
- <h4 className="mb-4 text-lg font-semibold !text-blue-300">
200
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
201
+ <h4 className="text-fm-icon-info! mb-4 text-lg font-semibold">
200
202
  Component Signature
201
203
  </h4>
202
- <div className="rounded-lg bg-black/40 p-4">
203
- <pre className="text-sm !text-green-300">
204
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
205
+ <pre className="text-fm-icon-positive! text-sm">
204
206
  {`import { SpinnerSolidIcon } from "@/ui/icons/spinner-solid-icon"
205
207
 
206
208
  <SpinnerSolidIcon className="h-6 w-6 animate-spin" />`}
@@ -209,61 +211,69 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
209
211
  </div>
210
212
 
211
213
  {/* Props Table */}
212
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
213
- <div className="bg-white/5 p-4">
214
- <h3 className="text-xl font-semibold !text-white">Props</h3>
214
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
215
+ <div className="bg-fm-surface-secondary p-4">
216
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
217
+ Props
218
+ </h3>
215
219
  </div>
216
220
  <table className="!my-0 w-full">
217
- <thead className="bg-white/5">
218
- <tr className="border-b border-white/10">
219
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
221
+ <thead className="bg-fm-surface-secondary">
222
+ <tr className="border-fm-divider-secondary border-b">
223
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
220
224
  Prop
221
225
  </th>
222
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
226
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
223
227
  Type
224
228
  </th>
225
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
229
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
226
230
  Default
227
231
  </th>
228
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
232
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
229
233
  Description
230
234
  </th>
231
235
  </tr>
232
236
  </thead>
233
237
  <tbody>
234
- <tr className="border-b border-white/5">
235
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
238
+ <tr className="border-fm-divider-tertiary border-b">
239
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
236
240
  width
237
241
  </td>
238
- <td className="px-6 py-4 text-sm !text-white/70">
242
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
239
243
  number | string
240
244
  </td>
241
- <td className="px-6 py-4 text-sm !text-white/50">16</td>
242
- <td className="px-6 py-4 text-sm !text-white/70">
245
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
246
+ 16
247
+ </td>
248
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
243
249
  Width of the icon in pixels
244
250
  </td>
245
251
  </tr>
246
- <tr className="border-b border-white/5 !bg-black/10">
247
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
252
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
253
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
248
254
  height
249
255
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/70">
256
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
251
257
  number | string
252
258
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/50">16</td>
254
- <td className="px-6 py-4 text-sm !text-white/70">
259
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
260
+ 16
261
+ </td>
262
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
255
263
  Height of the icon in pixels
256
264
  </td>
257
265
  </tr>
258
- <tr className="!bg-black/10">
259
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
266
+ <tr className="bg-fm-surface-secondary!">
267
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
260
268
  className
261
269
  </td>
262
- <td className="px-6 py-4 text-sm !text-white/70">
270
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
263
271
  string
264
272
  </td>
265
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
266
- <td className="px-6 py-4 text-sm !text-white/70">
273
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
274
+ -
275
+ </td>
276
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
267
277
  CSS classes for styling
268
278
  </td>
269
279
  </tr>
@@ -273,64 +283,64 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
273
283
 
274
284
  {/* Accessibility */}
275
285
  <div className="!space-y-8">
276
- <h2 className="text-center text-3xl font-bold !text-white">
286
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
277
287
  Accessibility Features
278
288
  </h2>
279
289
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
280
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
281
- <h3 className="text-lg font-semibold !text-green-300">
290
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
291
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
282
292
  ✅ Built-in Features
283
293
  </h3>
284
- <ul className="!space-y-2 text-sm !text-white/70">
285
- <li className="!text-white/70">
294
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
295
+ <li className="text-fm-secondary!">
286
296
  Uses Radix UI AccessibleIcon wrapper
287
297
  </li>
288
- <li className="!text-white/70">
298
+ <li className="text-fm-secondary!">
289
299
  Provides screen reader label "Spinner Solid icon"
290
300
  </li>
291
- <li className="!text-white/70">
301
+ <li className="text-fm-secondary!">
292
302
  Supports keyboard navigation when interactive
293
303
  </li>
294
- <li className="!text-white/70">
304
+ <li className="text-fm-secondary!">
295
305
  Maintains proper color contrast ratios
296
306
  </li>
297
- <li className="!text-white/70">
307
+ <li className="text-fm-secondary!">
298
308
  Scales with user's font size preferences
299
309
  </li>
300
310
  </ul>
301
311
  </div>
302
312
 
303
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
304
- <h3 className="text-lg font-semibold !text-red-300">
313
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
314
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
305
315
  💡 Best Practices
306
316
  </h3>
307
- <ul className="!space-y-2 text-sm text-white/70">
308
- <li className="!text-white/70">
317
+ <ul className="text-fm-secondary !space-y-2 text-sm">
318
+ <li className="text-fm-secondary!">
309
319
  Always pair with descriptive text
310
320
  </li>
311
- <li className="!text-white/70">
321
+ <li className="text-fm-secondary!">
312
322
  Provide a text fallback for screen readers{" "}
313
323
  </li>
314
- <li className="!text-white/70">
324
+ <li className="text-fm-secondary!">
315
325
  Ensure sufficient color contrast
316
326
  </li>
317
- <li className="!text-white/70">
327
+ <li className="text-fm-secondary!">
318
328
  Respect reduced motion user preferences{" "}
319
329
  </li>
320
- <li className="!text-white/70">
330
+ <li className="text-fm-secondary!">
321
331
  Ensure spinner indicates real loading action{" "}
322
332
  </li>
323
333
  </ul>
324
334
  </div>
325
335
  </div>
326
336
 
327
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
328
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
337
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
338
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
329
339
  Custom Accessibility Label
330
340
  </h3>
331
341
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
332
- <div className="rounded-lg bg-black/40 p-4">
333
- <pre className="overflow-x-auto text-sm !text-blue-300">
342
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
343
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
334
344
  {`// Custom implementation with specific label
335
345
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
336
346
 
@@ -350,13 +360,13 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
350
360
  </pre>
351
361
  </div>
352
362
  <div className="!space-y-4">
353
- <p className="text-sm !text-white/70">
363
+ <p className="text-fm-secondary! text-sm">
354
364
  For specific contexts, you can wrap the SpinnerSolid
355
365
  with a custom AccessibleIcon component that provides
356
366
  more descriptive labels.
357
367
  </p>
358
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
359
- <div className="flex items-center gap-2 text-sm text-red-200">
368
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
369
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
360
370
  <SpinnerSolidIcon className="h-4 w-4" />
361
371
  <span>
362
372
  This approach gives screen readers more context
@@ -369,54 +379,60 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
369
379
  </div>
370
380
  {/* Related Icons */}
371
381
  <div className="!space-y-8">
372
- <h2 className="text-center text-3xl font-bold !text-white">
382
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
373
383
  Related Icons
374
384
  </h2>
375
385
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
376
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
377
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-neutral-900">
386
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
387
+ <div className="bg-fm-surface-primary !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
378
388
  <SpinnerGradientIcon className="size-8 animate-spin" />
379
389
  </div>
380
390
  <div>
381
- <div className="font-medium text-white">
391
+ <div className="text-fm-icon-active font-medium">
382
392
  Spinner Gradient
383
393
  </div>
384
- <div className="text-xs text-white/60">
394
+ <div className="text-fm-tertiary text-xs">
385
395
  Solid Gradient loading spinner{" "}
386
396
  </div>
387
397
  </div>
388
398
  </div>
389
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
390
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
391
- <span className="!text-2xl !text-white">+</span>
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-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
401
+ <span className="text-fm-icon-active! !text-2xl">
402
+ +
403
+ </span>
392
404
  </div>
393
405
  <div>
394
- <div className="font-medium text-white">AddIcon</div>
395
- <div className="text-xs text-white/60">
406
+ <div className="text-fm-icon-active font-medium">
407
+ AddIcon
408
+ </div>
409
+ <div className="text-fm-tertiary text-xs">
396
410
  Create operations
397
411
  </div>
398
412
  </div>
399
413
  </div>
400
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
401
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
414
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
415
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
402
416
  <span className="text-2xl">📁</span>
403
417
  </div>
404
418
  <div>
405
- <div className="font-medium text-white">FolderIcon</div>
406
- <div className="text-xs text-white/60">
419
+ <div className="text-fm-icon-active font-medium">
420
+ FolderIcon
421
+ </div>
422
+ <div className="text-fm-tertiary text-xs">
407
423
  File management
408
424
  </div>
409
425
  </div>
410
426
  </div>
411
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
412
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
427
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
428
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
413
429
  <span className="text-2xl">⚙️</span>
414
430
  </div>
415
431
  <div>
416
- <div className="font-medium text-white">
432
+ <div className="text-fm-icon-active font-medium">
417
433
  SettingsIcon
418
434
  </div>
419
- <div className="text-xs text-white/60">
435
+ <div className="text-fm-tertiary text-xs">
420
436
  Configuration
421
437
  </div>
422
438
  </div>
@@ -424,14 +440,14 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
424
440
  </div>
425
441
  </div>
426
442
  {/* Footer */}
427
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
443
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
428
444
  <div className="!mx-auto max-w-7xl px-6 py-8">
429
445
  <div className="!space-y-4 text-center">
430
- <p className="!text-white/60">
446
+ <p className="text-fm-tertiary!">
431
447
  Spinner Solid icons are part of the Aural UI icon
432
448
  library, optimized for accessibility and responsiveness.
433
449
  </p>
434
- <p className="text-sm !text-white/40">
450
+ <p className="text-fm-placeholder! text-sm">
435
451
  All icons use Radix UI's AccessibleIcon for screen
436
452
  reader compatibility and follow WCAG guidelines.
437
453
  </p>
@@ -456,8 +472,8 @@ const storyParameters = {
456
472
  backgrounds: {
457
473
  default: "dark",
458
474
  values: [
459
- { name: "dark", value: "#0a0a0a" },
460
- { name: "darker", value: "#000000" },
475
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
476
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
461
477
  ],
462
478
  },
463
479
  }
@@ -466,11 +482,11 @@ export const Default: Story = {
466
482
  args: {
467
483
  width: 24,
468
484
  height: 24,
469
- className: "text-blue-400",
485
+ className: "text-fm-icon-info",
470
486
  },
471
487
  parameters: storyParameters,
472
488
  render: (args) => (
473
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
489
+ <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">
474
490
  <SpinnerSolidIcon {...args} className="animate-spin" />
475
491
  </div>
476
492
  ),
@@ -487,30 +503,30 @@ export const SizeVariations: Story = {
487
503
  },
488
504
  },
489
505
  render: () => (
490
- <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">
506
+ <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">
491
507
  <div className="text-center">
492
- <SpinnerSolidIcon className="!mx-auto mb-2 h-3 w-3 animate-spin text-blue-400" />
493
- <span className="text-xs text-white/60">12px</span>
508
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3 animate-spin" />
509
+ <span className="text-fm-tertiary text-xs">12px</span>
494
510
  </div>
495
511
  <div className="text-center">
496
- <SpinnerSolidIcon className="!mx-auto mb-2 h-4 w-4 animate-spin text-blue-400" />
497
- <span className="text-xs text-white/60">16px</span>
512
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4 animate-spin" />
513
+ <span className="text-fm-tertiary text-xs">16px</span>
498
514
  </div>
499
515
  <div className="text-center">
500
- <SpinnerSolidIcon className="!mx-auto mb-2 h-5 w-5 animate-spin text-blue-400" />
501
- <span className="text-xs text-white/60">20px</span>
516
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5 animate-spin" />
517
+ <span className="text-fm-tertiary text-xs">20px</span>
502
518
  </div>
503
519
  <div className="text-center">
504
- <SpinnerSolidIcon className="!mx-auto mb-2 h-6 w-6 animate-spin text-blue-400" />
505
- <span className="text-xs text-white/60">24px</span>
520
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6 animate-spin" />
521
+ <span className="text-fm-tertiary text-xs">24px</span>
506
522
  </div>
507
523
  <div className="text-center">
508
- <SpinnerSolidIcon className="!mx-auto mb-2 h-8 w-8 animate-spin text-blue-400" />
509
- <span className="text-xs text-white/60">32px</span>
524
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8 animate-spin" />
525
+ <span className="text-fm-tertiary text-xs">32px</span>
510
526
  </div>
511
527
  <div className="text-center">
512
- <SpinnerSolidIcon className="!mx-auto mb-2 h-12 w-12 animate-spin text-blue-400" />
513
- <span className="text-xs text-white/60">48px</span>
528
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12 animate-spin" />
529
+ <span className="text-fm-tertiary text-xs">48px</span>
514
530
  </div>
515
531
  </div>
516
532
  ),
@@ -527,34 +543,36 @@ export const ColorVariations: Story = {
527
543
  },
528
544
  },
529
545
  render: () => (
530
- <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">
546
+ <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">
531
547
  <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
- <SpinnerSolidIcon className="h-8 w-8 animate-spin text-blue-400" />
548
+ <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">
549
+ <SpinnerSolidIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
534
550
  </div>
535
- <div className="text-sm font-medium text-white">Primary</div>
536
- <div className="text-xs text-blue-400">text-blue-400</div>
551
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
552
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
537
553
  </div>
538
554
  <div className="text-center">
539
- <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">
540
- <SpinnerSolidIcon className="h-8 w-8 animate-spin text-purple-400" />
555
+ <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">
556
+ <SpinnerSolidIcon className="text-fm-secondary-600 h-8 w-8 animate-spin" />
557
+ </div>
558
+ <div className="text-fm-icon-active text-sm font-medium">Secondary</div>
559
+ <div className="text-fm-secondary-600 text-xs">
560
+ text-fm-secondary-600
541
561
  </div>
542
- <div className="text-sm font-medium text-white">Secondary</div>
543
- <div className="text-xs text-purple-400">text-purple-400</div>
544
562
  </div>
545
563
  <div className="text-center">
546
- <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">
547
- <SpinnerSolidIcon className="h-8 w-8 animate-spin text-cyan-400" />
564
+ <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">
565
+ <SpinnerSolidIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
548
566
  </div>
549
- <div className="text-sm font-medium text-white">Info</div>
550
- <div className="text-xs text-cyan-400">text-cyan-400</div>
567
+ <div className="text-fm-icon-active text-sm font-medium">Info</div>
568
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
551
569
  </div>
552
570
  <div className="text-center">
553
- <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">
554
- <SpinnerSolidIcon className="h-8 w-8 animate-spin text-gray-400" />
571
+ <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">
572
+ <SpinnerSolidIcon className="text-fm-placeholder h-8 w-8 animate-spin" />
555
573
  </div>
556
- <div className="text-sm font-medium text-white">Muted</div>
557
- <div className="text-xs text-gray-400">text-gray-400</div>
574
+ <div className="text-fm-icon-active text-sm font-medium">Muted</div>
575
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
558
576
  </div>
559
577
  </div>
560
578
  ),
@@ -571,16 +589,18 @@ export const UsageExamples: Story = {
571
589
  },
572
590
  },
573
591
  render: () => (
574
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
592
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
575
593
  {/* Loading Button */}
576
594
  <div className="!space-y-2">
577
- <h3 className="text-sm font-medium text-white">Loading Button</h3>
595
+ <h3 className="text-fm-icon-active text-sm font-medium">
596
+ Loading Button
597
+ </h3>
578
598
  <div className="flex gap-4">
579
- <button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
599
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
580
600
  <SpinnerSolidIcon className="h-4 w-4 animate-spin" />
581
601
  Loading...
582
602
  </button>
583
- <button className="flex h-10 w-10 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20 text-blue-200 transition-colors hover:bg-blue-500/30">
603
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
584
604
  <SpinnerSolidIcon className="h-5 w-5 animate-spin" />
585
605
  </button>
586
606
  </div>
@@ -588,28 +608,32 @@ export const UsageExamples: Story = {
588
608
 
589
609
  {/* Loading State */}
590
610
  <div className="!space-y-2">
591
- <h3 className="text-sm font-medium text-white">Loading State</h3>
592
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
611
+ <h3 className="text-fm-icon-active text-sm font-medium">
612
+ Loading State
613
+ </h3>
614
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
593
615
  <div className="text-center">
594
- <SpinnerSolidIcon className="!mx-auto mb-4 h-12 w-12 animate-spin text-blue-400" />
595
- <div className="text-sm text-white/60">Loading content...</div>
616
+ <SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12 animate-spin" />
617
+ <div className="text-fm-tertiary text-sm">Loading content...</div>
596
618
  </div>
597
619
  </div>
598
620
  </div>
599
621
 
600
622
  {/* Form Loading */}
601
623
  <div className="!space-y-2">
602
- <h3 className="text-sm font-medium text-white">Form Loading</h3>
603
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
624
+ <h3 className="text-fm-icon-active text-sm font-medium">
625
+ Form Loading
626
+ </h3>
627
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
604
628
  <div className="mb-4">
605
- <label className="mb-2 block text-sm text-white/60">Email</label>
629
+ <label className="text-fm-tertiary mb-2 block text-sm">Email</label>
606
630
  <input
607
631
  type="email"
608
- className="w-full rounded-lg border border-white/20 bg-white/10 px-4 py-2 text-white placeholder-white/50"
632
+ 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"
609
633
  placeholder="Enter your email"
610
634
  />
611
635
  </div>
612
- <button className="flex w-full items-center justify-center gap-2 rounded-lg bg-blue-500/20 px-4 py-2 text-blue-200">
636
+ <button className="bg-fm-icon-info/20 text-fm-icon-info flex w-full items-center justify-center gap-2 rounded-lg px-4 py-2">
613
637
  <SpinnerSolidIcon className="h-4 w-4 animate-spin" />
614
638
  Submitting...
615
639
  </button>
@@ -632,11 +656,11 @@ export const Playground: Story = {
632
656
  args: {
633
657
  width: 32,
634
658
  height: 32,
635
- className: "text-blue-400",
659
+ className: "text-fm-icon-info",
636
660
  },
637
661
  render: (args) => (
638
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
639
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
662
+ <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">
663
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
640
664
  <SpinnerSolidIcon {...args} className="animate-spin" />
641
665
  </div>
642
666
  </div>