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 SpinnerSolidNeutralIcon> = {
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 SpinnerSolidNeutralIcon> = {
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 spin-neutral {
82
82
  from { transform: rotate(0deg); }
@@ -102,17 +102,19 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
102
102
  `}
103
103
  </style>
104
104
 
105
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-neutral-900/20 to-gray-900">
105
+ <div className="from-fm-surface-primary via-fm-surface-primary/20 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-neutral-500/10 via-transparent to-gray-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-surface-secondary/10 to-fm-surface-tertiary/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-neutral-500/30 bg-gradient-to-br from-neutral-500/20 to-gray-500/20">
111
+ <div className="border-fm-divider-primary from-fm-surface-secondary/20 to-fm-surface-tertiary/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
112
112
  <SpinnerSolidNeutralIcon className="h-12 w-12" />
113
113
  </div>
114
- <h1 className="!text-white">SpinnerSolidNeutralIcon</h1>
115
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white">
114
+ <h1 className="text-fm-icon-active!">
115
+ SpinnerSolidNeutralIcon
116
+ </h1>
117
+ <p className="text-fm-icon-active! !mx-auto max-w-3xl text-xl leading-relaxed">
116
118
  A neutral-themed spinner icon with gradient styling for
117
119
  loading states, asynchronous actions, and content
118
120
  transitions. Features a sophisticated conic gradient design
@@ -122,26 +124,28 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
122
124
  {/* Stats */}
123
125
  <div className="flex items-center justify-center gap-8 pt-8">
124
126
  <div className="text-center">
125
- <div className="text-3xl font-bold text-neutral-300">
127
+ <div className="text-fm-secondary text-3xl font-bold">
126
128
  Gradient
127
129
  </div>
128
- <div className="text-sm text-white/80">Conic Design</div>
130
+ <div className="text-fm-icon-active/80 text-sm">
131
+ Conic Design
132
+ </div>
129
133
  </div>
130
- <div className="h-8 w-px bg-white/20" />
134
+ <div className="bg-fm-divider-primary h-8 w-px" />
131
135
  <div className="text-center">
132
- <div className="text-3xl font-bold text-gray-300">
136
+ <div className="text-fm-secondary text-3xl font-bold">
133
137
  Neutral
134
138
  </div>
135
- <div className="text-sm text-white/80">
139
+ <div className="text-fm-icon-active/80 text-sm">
136
140
  Theme Agnostic
137
141
  </div>
138
142
  </div>
139
- <div className="h-8 w-px bg-white/20" />
143
+ <div className="bg-fm-divider-primary h-8 w-px" />
140
144
  <div className="text-center">
141
- <div className="text-3xl font-bold text-white">
145
+ <div className="text-fm-icon-active text-3xl font-bold">
142
146
  Accessible
143
147
  </div>
144
- <div className="text-sm text-white/80">
148
+ <div className="text-fm-icon-active/80 text-sm">
145
149
  Screen Reader Ready
146
150
  </div>
147
151
  </div>
@@ -154,35 +158,35 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
154
158
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
155
159
  {/* Features */}
156
160
  <div className="!space-y-8">
157
- <h3 className="text-center text-2xl font-bold !text-white">
161
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
158
162
  Key Features
159
163
  </h3>
160
164
  <div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
161
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
165
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
162
166
  <div className="text-3xl">🌀</div>
163
- <h4 className="text-lg font-semibold !text-white">
167
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
164
168
  Gradient Design
165
169
  </h4>
166
- <p className="text-sm !text-white/80">
170
+ <p className="text-fm-icon-active!/80 text-sm">
167
171
  Sophisticated conic gradient that creates smooth visual
168
172
  motion
169
173
  </p>
170
174
  </div>
171
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
175
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
172
176
  <div className="text-3xl">⚪</div>
173
- <h4 className="text-lg font-semibold !text-white">
177
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
174
178
  Neutral Theme
175
179
  </h4>
176
- <p className="text-sm !text-white/80">
180
+ <p className="text-fm-icon-active!/80 text-sm">
177
181
  Works seamlessly with any color scheme or design system
178
182
  </p>
179
183
  </div>
180
- <div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
184
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
181
185
  <div className="text-3xl">♿</div>
182
- <h4 className="text-lg font-semibold !text-white">
186
+ <h4 className="text-fm-icon-active! text-lg font-semibold">
183
187
  Accessibility
184
188
  </h4>
185
- <p className="text-sm !text-white/80">
189
+ <p className="text-fm-icon-active!/80 text-sm">
186
190
  Built with Radix UI's AccessibleIcon for screen reader
187
191
  support
188
192
  </p>
@@ -192,17 +196,17 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
192
196
 
193
197
  {/* API Reference */}
194
198
  <div className="!space-y-8">
195
- <h3 className="text-center text-2xl font-bold !text-white">
199
+ <h3 className="text-fm-icon-active! text-center text-2xl font-bold">
196
200
  API Reference
197
201
  </h3>
198
202
 
199
203
  {/* Component Signature */}
200
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
201
- <h4 className="mb-4 text-lg font-semibold !text-neutral-300">
204
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
205
+ <h4 className="text-fm-secondary! mb-4 text-lg font-semibold">
202
206
  Component Signature
203
207
  </h4>
204
- <div className="rounded-lg bg-black/40 p-4">
205
- <pre className="text-sm !text-green-300">
208
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
209
+ <pre className="text-fm-icon-positive! text-sm">
206
210
  {`import { SpinnerSolidNeutralIcon } from "@/ui/icons/spinner-solid-neutral-icon"
207
211
 
208
212
  <SpinnerSolidNeutralIcon className="h-6 w-6 animate-spin" />`}
@@ -211,64 +215,70 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
211
215
  </div>
212
216
 
213
217
  {/* Props Table */}
214
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
215
- <div className="bg-white/5 p-4">
216
- <h3 className="text-xl font-semibold !text-white">Props</h3>
218
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
219
+ <div className="bg-fm-surface-secondary p-4">
220
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
221
+ Props
222
+ </h3>
217
223
  </div>
218
224
  <table className="!my-0 w-full">
219
- <thead className="bg-white/5">
220
- <tr className="border-b border-white/10">
221
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
225
+ <thead className="bg-fm-surface-secondary">
226
+ <tr className="border-fm-divider-secondary border-b">
227
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
222
228
  Prop
223
229
  </th>
224
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
230
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
225
231
  Type
226
232
  </th>
227
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
233
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
228
234
  Default
229
235
  </th>
230
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
236
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
231
237
  Description
232
238
  </th>
233
239
  </tr>
234
240
  </thead>
235
241
  <tbody>
236
242
  {" "}
237
- <tr className="!bg-black/10">
238
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
243
+ <tr className="bg-fm-surface-secondary!">
244
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
239
245
  withAccessibility
240
246
  </td>
241
- <td className="px-6 py-4 text-sm !text-white/70">
247
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
242
248
  boolean
243
249
  </td>
244
- <td className="px-6 py-4 text-sm !text-white/50">
250
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
245
251
  true
246
252
  </td>
247
- <td className="px-6 py-4 text-sm !text-white/70">
253
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
248
254
  Whether to wrap the icon with accessibility feature
249
255
  </td>
250
256
  </tr>
251
- <tr className="border-b border-white/5 !bg-black/10">
252
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
257
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
258
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
253
259
  height
254
260
  </td>
255
- <td className="px-6 py-4 text-sm !text-white/70">
261
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
256
262
  number | string
257
263
  </td>
258
- <td className="px-6 py-4 text-sm !text-white/50">64</td>
259
- <td className="px-6 py-4 text-sm !text-white/70">
264
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
265
+ 64
266
+ </td>
267
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
260
268
  Height of the icon in pixels
261
269
  </td>
262
270
  </tr>
263
- <tr className="!bg-black/10">
264
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
271
+ <tr className="bg-fm-surface-secondary!">
272
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
265
273
  className
266
274
  </td>
267
- <td className="px-6 py-4 text-sm !text-white/70">
275
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
268
276
  string
269
277
  </td>
270
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
271
- <td className="px-6 py-4 text-sm !text-white/70">
278
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
279
+ -
280
+ </td>
281
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
272
282
  CSS classes for styling
273
283
  </td>
274
284
  </tr>
@@ -278,65 +288,65 @@ const meta: Meta<typeof SpinnerSolidNeutralIcon> = {
278
288
 
279
289
  {/* Accessibility */}
280
290
  <div className="!space-y-8">
281
- <h2 className="text-center text-3xl font-bold !text-white">
291
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
282
292
  Accessibility Features
283
293
  </h2>
284
294
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
285
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
286
- <h3 className="text-lg font-semibold !text-green-300">
295
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
296
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
287
297
  ✅ Built-in Features
288
298
  </h3>
289
- <ul className="!space-y-2 text-sm !text-white/70">
290
- <li className="!text-white/70">
299
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
300
+ <li className="text-fm-secondary!">
291
301
  Uses Radix UI AccessibleIcon wrapper
292
302
  </li>
293
- <li className="!text-white/70">
303
+ <li className="text-fm-secondary!">
294
304
  Provides screen reader label "Spinner Solid Neutral
295
305
  Icon"
296
306
  </li>
297
- <li className="!text-white/70">
307
+ <li className="text-fm-secondary!">
298
308
  Supports keyboard navigation when interactive
299
309
  </li>
300
- <li className="!text-white/70">
310
+ <li className="text-fm-secondary!">
301
311
  Maintains proper color contrast ratios
302
312
  </li>
303
- <li className="!text-white/70">
313
+ <li className="text-fm-secondary!">
304
314
  Scales with user's font size preferences
305
315
  </li>
306
316
  </ul>
307
317
  </div>
308
318
 
309
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
310
- <h3 className="text-lg font-semibold !text-yellow-300">
319
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
320
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
311
321
  💡 Best Practices
312
322
  </h3>
313
- <ul className="!space-y-2 text-sm text-white/70">
314
- <li className="!text-white/70">
323
+ <ul className="text-fm-secondary !space-y-2 text-sm">
324
+ <li className="text-fm-secondary!">
315
325
  Always pair with descriptive loading text
316
326
  </li>
317
- <li className="!text-white/70">
327
+ <li className="text-fm-secondary!">
318
328
  Provide context about what's loading
319
329
  </li>
320
- <li className="!text-white/70">
330
+ <li className="text-fm-secondary!">
321
331
  Ensure sufficient color contrast on backgrounds
322
332
  </li>
323
- <li className="!text-white/70">
333
+ <li className="text-fm-secondary!">
324
334
  Respect reduced motion user preferences
325
335
  </li>
326
- <li className="!text-white/70">
336
+ <li className="text-fm-secondary!">
327
337
  Use appropriate size for the context
328
338
  </li>
329
339
  </ul>
330
340
  </div>
331
341
  </div>
332
342
 
333
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
334
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
343
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
344
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
335
345
  Custom Accessibility Label
336
346
  </h3>
337
347
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
338
- <div className="rounded-lg bg-black/40 p-4">
339
- <pre className="overflow-x-auto text-sm !text-blue-300">
348
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
349
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
340
350
  {`// Custom implementation with specific label
341
351
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
342
352
 
@@ -356,13 +366,13 @@ function CustomSpinnerIcon({ label = "Loading", ...props }) {
356
366
  </pre>
357
367
  </div>
358
368
  <div className="!space-y-4">
359
- <p className="text-sm !text-white/70">
369
+ <p className="text-fm-secondary! text-sm">
360
370
  For specific contexts, you can wrap the
361
371
  SpinnerSolidNeutralIcon with a custom AccessibleIcon
362
372
  component that provides more descriptive labels.
363
373
  </p>
364
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
365
- <div className="flex items-center gap-2 text-sm text-blue-200">
374
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
375
+ <div className="text-fm-icon-info flex items-center gap-2 text-sm">
366
376
  <SpinnerSolidNeutralIcon className="h-4 w-4 animate-spin" />
367
377
  <span>
368
378
  This approach gives screen readers more context
@@ -376,52 +386,62 @@ function CustomSpinnerIcon({ label = "Loading", ...props }) {
376
386
 
377
387
  {/* Related Icons */}
378
388
  <div className="!space-y-8">
379
- <h2 className="text-center text-3xl font-bold !text-white">
389
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
380
390
  Related Icons
381
391
  </h2>
382
392
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
383
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
384
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-900/20">
385
- <SpinnerSolidIcon className="h-8 w-8 animate-spin text-blue-400" />
393
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
394
+ <div className="bg-fm-icon-info/10 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
395
+ <SpinnerSolidIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
386
396
  </div>
387
397
  <div>
388
- <div className="font-medium text-white">
398
+ <div className="text-fm-icon-active font-medium">
389
399
  Spinner Solid
390
400
  </div>
391
- <div className="text-xs text-white/60">
401
+ <div className="text-fm-tertiary text-xs">
392
402
  Basic solid spinner
393
403
  </div>
394
404
  </div>
395
405
  </div>
396
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
397
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
398
- <span className="!text-2xl !text-white">✓</span>
406
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
407
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
408
+ <span className="text-fm-icon-active! !text-2xl">
409
+
410
+ </span>
399
411
  </div>
400
412
  <div>
401
- <div className="font-medium text-white">CheckIcon</div>
402
- <div className="text-xs text-white/60">
413
+ <div className="text-fm-icon-active font-medium">
414
+ CheckIcon
415
+ </div>
416
+ <div className="text-fm-tertiary text-xs">
403
417
  Success states
404
418
  </div>
405
419
  </div>
406
420
  </div>
407
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
408
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
421
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
422
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
409
423
  <span className="text-2xl">⚠️</span>
410
424
  </div>
411
425
  <div>
412
- <div className="font-medium text-white">AlertIcon</div>
413
- <div className="text-xs text-white/60">
426
+ <div className="text-fm-icon-active font-medium">
427
+ AlertIcon
428
+ </div>
429
+ <div className="text-fm-tertiary text-xs">
414
430
  Warning states
415
431
  </div>
416
432
  </div>
417
433
  </div>
418
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
419
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
420
- <span className="!text-2xl !text-white">✕</span>
434
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
435
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
436
+ <span className="text-fm-icon-active! !text-2xl">
437
+
438
+ </span>
421
439
  </div>
422
440
  <div>
423
- <div className="font-medium text-white">ErrorIcon</div>
424
- <div className="text-xs text-white/60">
441
+ <div className="text-fm-icon-active font-medium">
442
+ ErrorIcon
443
+ </div>
444
+ <div className="text-fm-tertiary text-xs">
425
445
  Error states
426
446
  </div>
427
447
  </div>
@@ -430,15 +450,15 @@ function CustomSpinnerIcon({ label = "Loading", ...props }) {
430
450
  </div>
431
451
 
432
452
  {/* Footer */}
433
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
453
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
434
454
  <div className="!mx-auto max-w-7xl px-6 py-8">
435
455
  <div className="!space-y-4 text-center">
436
- <p className="!text-white/60">
456
+ <p className="text-fm-tertiary!">
437
457
  SpinnerSolidNeutralIcon is part of the Aural UI icon
438
458
  library, optimized for accessibility and neutral
439
459
  theming.
440
460
  </p>
441
- <p className="text-sm !text-white/40">
461
+ <p className="text-fm-placeholder! text-sm">
442
462
  All icons use Radix UI's AccessibleIcon for screen
443
463
  reader compatibility and follow WCAG guidelines.
444
464
  </p>
@@ -463,8 +483,8 @@ const storyParameters = {
463
483
  backgrounds: {
464
484
  default: "dark",
465
485
  values: [
466
- { name: "dark", value: "#0a0a0a" },
467
- { name: "darker", value: "#000000" },
486
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
487
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
468
488
  ],
469
489
  },
470
490
  }
@@ -478,7 +498,7 @@ export const Default: Story = {
478
498
  },
479
499
  parameters: storyParameters,
480
500
  render: (args) => (
481
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
501
+ <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">
482
502
  <SpinnerSolidNeutralIcon {...args} className="animate-spin" />
483
503
  </div>
484
504
  ),
@@ -495,30 +515,30 @@ export const SizeVariations: Story = {
495
515
  },
496
516
  },
497
517
  render: () => (
498
- <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">
518
+ <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">
499
519
  <div className="text-center">
500
520
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-4 w-4 animate-spin" />
501
- <span className="text-xs text-white/60">16px</span>
521
+ <span className="text-fm-tertiary text-xs">16px</span>
502
522
  </div>
503
523
  <div className="text-center">
504
524
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-6 w-6 animate-spin" />
505
- <span className="text-xs text-white/60">24px</span>
525
+ <span className="text-fm-tertiary text-xs">24px</span>
506
526
  </div>
507
527
  <div className="text-center">
508
528
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-8 w-8 animate-spin" />
509
- <span className="text-xs text-white/60">32px</span>
529
+ <span className="text-fm-tertiary text-xs">32px</span>
510
530
  </div>
511
531
  <div className="text-center">
512
532
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-12 w-12 animate-spin" />
513
- <span className="text-xs text-white/60">48px</span>
533
+ <span className="text-fm-tertiary text-xs">48px</span>
514
534
  </div>
515
535
  <div className="text-center">
516
536
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-16 w-16 animate-spin" />
517
- <span className="text-xs text-white/60">64px</span>
537
+ <span className="text-fm-tertiary text-xs">64px</span>
518
538
  </div>
519
539
  <div className="text-center">
520
540
  <SpinnerSolidNeutralIcon className="!mx-auto mb-2 h-20 w-20 animate-spin" />
521
- <span className="text-xs text-white/60">80px</span>
541
+ <span className="text-fm-tertiary text-xs">80px</span>
522
542
  </div>
523
543
  </div>
524
544
  ),
@@ -535,27 +555,29 @@ export const AnimationVariations: Story = {
535
555
  },
536
556
  },
537
557
  render: () => (
538
- <div className="grid min-h-dvh grid-cols-1 items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-3">
558
+ <div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-1 items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8 md:grid-cols-3">
539
559
  <div className="text-center">
540
- <div className="!mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border border-white/10 bg-white/5">
560
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border">
541
561
  <SpinnerSolidNeutralIcon className="h-12 w-12 animate-spin" />
542
562
  </div>
543
- <div className="text-sm font-medium text-white">Standard Spin</div>
544
- <div className="text-xs text-white/60">animate-spin</div>
563
+ <div className="text-fm-icon-active text-sm font-medium">
564
+ Standard Spin
565
+ </div>
566
+ <div className="text-fm-tertiary text-xs">animate-spin</div>
545
567
  </div>
546
568
  <div className="text-center">
547
- <div className="!mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border border-white/10 bg-white/5">
569
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border">
548
570
  <SpinnerSolidNeutralIcon className="animate-neutral-pulse h-12 w-12" />
549
571
  </div>
550
- <div className="text-sm font-medium text-white">Pulse</div>
551
- <div className="text-xs text-white/60">animate-neutral-pulse</div>
572
+ <div className="text-fm-icon-active text-sm font-medium">Pulse</div>
573
+ <div className="text-fm-tertiary text-xs">animate-neutral-pulse</div>
552
574
  </div>
553
575
  <div className="text-center">
554
- <div className="!mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border border-white/10 bg-white/5">
576
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-4 flex h-20 w-20 items-center justify-center rounded-lg border">
555
577
  <SpinnerSolidNeutralIcon className="animate-neutral-glow h-12 w-12" />
556
578
  </div>
557
- <div className="text-sm font-medium text-white">Glow</div>
558
- <div className="text-xs text-white/60">animate-neutral-glow</div>
579
+ <div className="text-fm-icon-active text-sm font-medium">Glow</div>
580
+ <div className="text-fm-tertiary text-xs">animate-neutral-glow</div>
559
581
  </div>
560
582
  </div>
561
583
  ),
@@ -572,34 +594,38 @@ export const BackgroundVariations: Story = {
572
594
  },
573
595
  },
574
596
  render: () => (
575
- <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">
597
+ <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">
576
598
  <div className="text-center">
577
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-black">
599
+ <div className="bg-fm-surface-primary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
578
600
  <SpinnerSolidNeutralIcon className="h-10 w-10 animate-spin" />
579
601
  </div>
580
- <div className="text-sm font-medium text-white">Black</div>
581
- <div className="text-xs text-white/60">bg-black</div>
602
+ <div className="text-fm-icon-active text-sm font-medium">Black</div>
603
+ <div className="text-fm-tertiary text-xs">bg-fm-surface-primary</div>
582
604
  </div>
583
605
  <div className="text-center">
584
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-800">
606
+ <div className="bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
585
607
  <SpinnerSolidNeutralIcon className="h-10 w-10 animate-spin" />
586
608
  </div>
587
- <div className="text-sm font-medium text-white">Dark Gray</div>
588
- <div className="text-xs text-white/60">bg-gray-800</div>
609
+ <div className="text-fm-icon-active text-sm font-medium">Dark Gray</div>
610
+ <div className="text-fm-tertiary text-xs">bg-fm-surface-secondary</div>
589
611
  </div>
590
612
  <div className="text-center">
591
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-600">
613
+ <div className="bg-fm-surface-tertiary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
592
614
  <SpinnerSolidNeutralIcon className="h-10 w-10 animate-spin" />
593
615
  </div>
594
- <div className="text-sm font-medium text-white">Medium Gray</div>
595
- <div className="text-xs text-white/60">bg-gray-600</div>
616
+ <div className="text-fm-icon-active text-sm font-medium">
617
+ Medium Gray
618
+ </div>
619
+ <div className="text-fm-tertiary text-xs">bg-fm-surface-tertiary</div>
596
620
  </div>
597
621
  <div className="text-center">
598
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-400">
622
+ <div className="bg-fm-surface-tertiary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
599
623
  <SpinnerSolidNeutralIcon className="h-10 w-10 animate-spin" />
600
624
  </div>
601
- <div className="text-sm font-medium text-white">Light Gray</div>
602
- <div className="text-xs text-white/60">bg-gray-400</div>
625
+ <div className="text-fm-icon-active text-sm font-medium">
626
+ Light Gray
627
+ </div>
628
+ <div className="text-fm-tertiary text-xs">bg-fm-surface-tertiary</div>
603
629
  </div>
604
630
  </div>
605
631
  ),
@@ -616,16 +642,18 @@ export const UsageExamples: Story = {
616
642
  },
617
643
  },
618
644
  render: () => (
619
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
645
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
620
646
  {/* Loading Button */}
621
647
  <div className="!space-y-2">
622
- <h3 className="text-sm font-medium text-white">Loading Button</h3>
648
+ <h3 className="text-fm-icon-active text-sm font-medium">
649
+ Loading Button
650
+ </h3>
623
651
  <div className="flex gap-4">
624
- <button className="flex items-center gap-2 rounded-lg border border-neutral-500/30 bg-neutral-500/20 px-4 py-2 text-neutral-200 transition-colors hover:bg-neutral-500/30">
652
+ <button className="border-fm-divider-primary bg-fm-surface-secondary/20 text-fm-secondary hover:bg-fm-surface-secondary/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
625
653
  <SpinnerSolidNeutralIcon className="h-4 w-4 animate-spin" />
626
654
  Loading...
627
655
  </button>
628
- <button className="flex h-10 w-10 items-center justify-center rounded-lg border border-neutral-500/30 bg-neutral-500/20 text-neutral-200 transition-colors hover:bg-neutral-500/30">
656
+ <button className="border-fm-divider-primary bg-fm-surface-secondary/20 text-fm-secondary hover:bg-fm-surface-secondary/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
629
657
  <SpinnerSolidNeutralIcon className="h-5 w-5 animate-spin" />
630
658
  </button>
631
659
  </div>
@@ -633,47 +661,51 @@ export const UsageExamples: Story = {
633
661
 
634
662
  {/* Loading State */}
635
663
  <div className="!space-y-2">
636
- <h3 className="text-sm font-medium text-white">Loading State</h3>
637
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
664
+ <h3 className="text-fm-icon-active text-sm font-medium">
665
+ Loading State
666
+ </h3>
667
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
638
668
  <div className="text-center">
639
669
  <SpinnerSolidNeutralIcon className="!mx-auto mb-4 h-16 w-16 animate-spin" />
640
- <div className="text-sm text-white/60">Loading content...</div>
670
+ <div className="text-fm-tertiary text-sm">Loading content...</div>
641
671
  </div>
642
672
  </div>
643
673
  </div>
644
674
 
645
675
  {/* Card Loading */}
646
676
  <div className="!space-y-2">
647
- <h3 className="text-sm font-medium text-white">Card Loading</h3>
677
+ <h3 className="text-fm-icon-active text-sm font-medium">
678
+ Card Loading
679
+ </h3>
648
680
  <div className="grid gap-4 md:grid-cols-3">
649
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
681
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
650
682
  <div className="mb-4 flex items-center justify-center">
651
683
  <SpinnerSolidNeutralIcon className="h-8 w-8 animate-spin" />
652
684
  </div>
653
685
  <div className="space-y-2">
654
- <div className="h-4 rounded bg-white/10"></div>
655
- <div className="h-4 rounded bg-white/10"></div>
656
- <div className="h-4 w-3/4 rounded bg-white/10"></div>
686
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
687
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
688
+ <div className="bg-fm-surface-secondary h-4 w-3/4 rounded"></div>
657
689
  </div>
658
690
  </div>
659
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
691
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
660
692
  <div className="mb-4 flex items-center justify-center">
661
693
  <SpinnerSolidNeutralIcon className="h-8 w-8 animate-spin" />
662
694
  </div>
663
695
  <div className="space-y-2">
664
- <div className="h-4 rounded bg-white/10"></div>
665
- <div className="h-4 rounded bg-white/10"></div>
666
- <div className="h-4 w-2/3 rounded bg-white/10"></div>
696
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
697
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
698
+ <div className="bg-fm-surface-secondary h-4 w-2/3 rounded"></div>
667
699
  </div>
668
700
  </div>
669
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
701
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
670
702
  <div className="mb-4 flex items-center justify-center">
671
703
  <SpinnerSolidNeutralIcon className="h-8 w-8 animate-spin" />
672
704
  </div>
673
705
  <div className="space-y-2">
674
- <div className="h-4 rounded bg-white/10"></div>
675
- <div className="h-4 rounded bg-white/10"></div>
676
- <div className="h-4 w-4/5 rounded bg-white/10"></div>
706
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
707
+ <div className="bg-fm-surface-secondary h-4 rounded"></div>
708
+ <div className="bg-fm-surface-secondary h-4 w-4/5 rounded"></div>
677
709
  </div>
678
710
  </div>
679
711
  </div>
@@ -681,9 +713,11 @@ export const UsageExamples: Story = {
681
713
 
682
714
  {/* Inline Loading */}
683
715
  <div className="!space-y-2">
684
- <h3 className="text-sm font-medium text-white">Inline Loading</h3>
685
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
686
- <div className="flex items-center gap-2 text-white/80">
716
+ <h3 className="text-fm-icon-active text-sm font-medium">
717
+ Inline Loading
718
+ </h3>
719
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
720
+ <div className="text-fm-icon-active/80 flex items-center gap-2">
687
721
  <SpinnerSolidNeutralIcon className="h-4 w-4 animate-spin" />
688
722
  <span>Saving changes...</span>
689
723
  </div>
@@ -727,15 +761,15 @@ export const Playground: Story = {
727
761
  },
728
762
  },
729
763
  render: (args) => (
730
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
731
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
764
+ <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">
765
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
732
766
  <div className="mb-4 text-center">
733
767
  <SpinnerSolidNeutralIcon
734
768
  {...args}
735
769
  className={`animate-spin ${args.className || ""}`}
736
770
  />
737
771
  </div>
738
- <div className="text-center text-xs text-white/60">
772
+ <div className="text-fm-tertiary text-center text-xs">
739
773
  {args.width}×{args.height}px
740
774
  </div>
741
775
  </div>