aural-ui 3.0.7 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof VoicePlayingIcon> = {
11
11
  backgrounds: {
12
12
  default: "dark",
13
13
  values: [
14
- { name: "dark", value: "#0a0a0a" },
15
- { name: "darker", value: "#000000" },
16
- { name: "light", value: "#ffffff" },
14
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
15
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
16
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
17
17
  ],
18
18
  },
19
19
  docs: {
@@ -40,59 +40,59 @@ const meta: Meta<typeof VoicePlayingIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-emerald-900/20 to-gray-900">
83
+ <div className="from-fm-surface-primary via-fm-icon-positive/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
84
84
  {/* Header */}
85
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
- <div className="absolute inset-0 bg-gradient-to-r from-emerald-500/10 via-transparent to-teal-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-icon-positive/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-emerald-500/30 bg-gradient-to-br from-emerald-500/20 to-teal-500/20">
90
- <VoicePlayingIcon className="h-12 w-12 text-emerald-400" />
89
+ <div className="border-fm-icon-positive/30 from-fm-icon-positive/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <VoicePlayingIcon className="text-fm-icon-positive h-12 w-12" />
91
91
  </div>
92
- <h1 className="text-5xl font-bold !text-white">
92
+ <h1 className="text-fm-icon-active! text-5xl font-bold">
93
93
  VoicePlayingIcon
94
94
  </h1>
95
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
96
96
  An animated audio visualizer icon featuring dynamic sound
97
97
  bars that represent active voice playback. Perfect for
98
98
  podcast players, voice message interfaces, audio recording
@@ -103,28 +103,28 @@ const meta: Meta<typeof VoicePlayingIcon> = {
103
103
  {/* Stats */}
104
104
  <div className="flex items-center justify-center gap-8 pt-8">
105
105
  <div className="text-center">
106
- <div className="text-3xl font-bold text-emerald-300">
106
+ <div className="text-fm-icon-positive text-3xl font-bold">
107
107
  Voice Playback
108
108
  </div>
109
- <div className="text-sm text-white/60">
109
+ <div className="text-fm-tertiary text-sm">
110
110
  Audio visualization
111
111
  </div>
112
112
  </div>
113
- <div className="h-8 w-px bg-white/20" />
113
+ <div className="bg-fm-divider-primary h-8 w-px" />
114
114
  <div className="text-center">
115
- <div className="text-3xl font-bold text-teal-300">
115
+ <div className="text-fm-icon-info text-3xl font-bold">
116
116
  Live Activity
117
117
  </div>
118
- <div className="text-sm text-white/60">
118
+ <div className="text-fm-tertiary text-sm">
119
119
  Real-time feedback
120
120
  </div>
121
121
  </div>
122
- <div className="h-8 w-px bg-white/20" />
122
+ <div className="bg-fm-divider-primary h-8 w-px" />
123
123
  <div className="text-center">
124
- <div className="text-3xl font-bold text-cyan-300">
124
+ <div className="text-fm-icon-info text-3xl font-bold">
125
125
  Interactive
126
126
  </div>
127
- <div className="text-sm text-white/60">
127
+ <div className="text-fm-tertiary text-sm">
128
128
  Visual engagement
129
129
  </div>
130
130
  </div>
@@ -137,16 +137,16 @@ const meta: Meta<typeof VoicePlayingIcon> = {
137
137
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
138
138
  {/* Quick Usage */}
139
139
  <div className="!space-y-8">
140
- <h2 className="text-center text-3xl font-bold !text-white">
140
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
141
141
  Quick Start
142
142
  </h2>
143
143
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
144
144
  <div className="!space-y-4">
145
- <h3 className="text-xl font-semibold !text-emerald-300">
145
+ <h3 className="text-fm-icon-positive! text-xl font-semibold">
146
146
  Basic Usage
147
147
  </h3>
148
- <div className="rounded-lg bg-black/40 p-4">
149
- <pre className="overflow-x-auto text-sm !text-green-300">
148
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
149
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
150
150
  {`import { VoicePlayingIcon } from "@icons/voice-playing-icon"
151
151
 
152
152
  function VoiceMessage({ isPlaying }) {
@@ -166,13 +166,13 @@ function VoiceMessage({ isPlaying }) {
166
166
  </div>
167
167
 
168
168
  <div className="!space-y-4">
169
- <h3 className="text-xl font-semibold !text-emerald-300">
169
+ <h3 className="text-fm-icon-positive! text-xl font-semibold">
170
170
  Live Preview
171
171
  </h3>
172
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
173
- <div className="flex items-center gap-3 rounded-lg border border-emerald-500/20 bg-emerald-500/10 px-4 py-2">
174
- <VoicePlayingIcon className="h-5 w-5 text-emerald-400" />
175
- <span className="font-medium text-emerald-300">
172
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
173
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-3 rounded-lg border px-4 py-2">
174
+ <VoicePlayingIcon className="text-fm-icon-positive h-5 w-5" />
175
+ <span className="text-fm-icon-positive font-medium">
176
176
  Now Playing
177
177
  </span>
178
178
  </div>
@@ -183,122 +183,130 @@ function VoiceMessage({ isPlaying }) {
183
183
 
184
184
  {/* Props Documentation */}
185
185
  <div className="!space-y-8">
186
- <h2 className="text-center text-3xl font-bold !text-white">
186
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
187
187
  Props & Configuration
188
188
  </h2>
189
189
 
190
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
191
- <div className="bg-white/5 p-4">
192
- <h3 className="text-xl font-semibold !text-white">Props</h3>
190
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
191
+ <div className="bg-fm-surface-secondary p-4">
192
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
193
+ Props
194
+ </h3>
193
195
  </div>
194
196
  <table className="!my-0 w-full">
195
- <thead className="bg-white/5">
196
- <tr className="border-b border-white/10">
197
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
197
+ <thead className="bg-fm-surface-secondary">
198
+ <tr className="border-fm-divider-secondary border-b">
199
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
198
200
  Prop
199
201
  </th>
200
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
202
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
201
203
  Type
202
204
  </th>
203
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
205
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
204
206
  Default
205
207
  </th>
206
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
208
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
207
209
  Description
208
210
  </th>
209
211
  </tr>
210
212
  </thead>
211
213
  <tbody>
212
214
  {" "}
213
- <tr className="!bg-black/10">
214
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
215
+ <tr className="bg-fm-surface-secondary!">
216
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
215
217
  withAccessibility
216
218
  </td>
217
- <td className="px-6 py-4 text-sm !text-white/70">
219
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
218
220
  boolean
219
221
  </td>
220
- <td className="px-6 py-4 text-sm !text-white/50">
222
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
221
223
  true
222
224
  </td>
223
- <td className="px-6 py-4 text-sm !text-white/70">
225
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
224
226
  Whether to wrap the icon with accessibility feature
225
227
  </td>
226
228
  </tr>
227
- <tr className="border-b border-white/5 !bg-black/10">
228
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
229
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
230
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
229
231
  height
230
232
  </td>
231
- <td className="px-6 py-4 text-sm !text-white/70">
233
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
232
234
  number | string
233
235
  </td>
234
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
235
- <td className="px-6 py-4 text-sm !text-white/70">
236
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
237
+ 24
238
+ </td>
239
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
236
240
  Height of the icon in pixels
237
241
  </td>
238
242
  </tr>
239
- <tr className="border-b border-white/5">
240
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
243
+ <tr className="border-fm-divider-tertiary border-b">
244
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
241
245
  stroke
242
246
  </td>
243
- <td className="px-6 py-4 text-sm !text-white/70">
247
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
244
248
  string
245
249
  </td>
246
- <td className="px-6 py-4 text-sm !text-white/50">
250
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
247
251
  currentColor
248
252
  </td>
249
- <td className="px-6 py-4 text-sm !text-white/70">
253
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
250
254
  Stroke color of the audio bars
251
255
  </td>
252
256
  </tr>
253
- <tr className="border-b border-white/5 !bg-black/10">
254
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
257
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
258
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
255
259
  strokeWidth
256
260
  </td>
257
- <td className="px-6 py-4 text-sm !text-white/70">
261
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
258
262
  string | number
259
263
  </td>
260
- <td className="px-6 py-4 text-sm !text-white/50">
264
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
261
265
  1.5
262
266
  </td>
263
- <td className="px-6 py-4 text-sm !text-white/70">
267
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
264
268
  Width of the audio bar strokes
265
269
  </td>
266
270
  </tr>
267
- <tr className="border-b border-white/5">
268
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
271
+ <tr className="border-fm-divider-tertiary border-b">
272
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
269
273
  strokeLinecap
270
274
  </td>
271
- <td className="px-6 py-4 text-sm !text-white/70">
275
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
272
276
  string
273
277
  </td>
274
- <td className="px-6 py-4 text-sm !text-white/50">
278
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
275
279
  square
276
280
  </td>
277
- <td className="px-6 py-4 text-sm !text-white/70">
281
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
278
282
  Line cap style (square for clean bar edges)
279
283
  </td>
280
284
  </tr>
281
- <tr className="border-b border-white/5 !bg-black/10">
282
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
285
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
286
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
283
287
  className
284
288
  </td>
285
- <td className="px-6 py-4 text-sm !text-white/70">
289
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
286
290
  string
287
291
  </td>
288
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
289
- <td className="px-6 py-4 text-sm !text-white/70">
292
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
293
+ -
294
+ </td>
295
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
290
296
  CSS classes for styling and animations
291
297
  </td>
292
298
  </tr>
293
- <tr className="!bg-black/10">
294
- <td className="px-6 py-4 font-mono text-sm !text-emerald-300">
299
+ <tr className="bg-fm-surface-secondary!">
300
+ <td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
295
301
  ...svgProps
296
302
  </td>
297
- <td className="px-6 py-4 text-sm !text-white/70">
303
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
298
304
  SVGProps
299
305
  </td>
300
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
301
- <td className="px-6 py-4 text-sm !text-white/70">
306
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
307
+ -
308
+ </td>
309
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
302
310
  All standard SVG element props
303
311
  </td>
304
312
  </tr>
@@ -306,8 +314,8 @@ function VoiceMessage({ isPlaying }) {
306
314
  </table>
307
315
  </div>
308
316
 
309
- <div className="rounded-lg border border-emerald-500/20 bg-emerald-500/10 p-4">
310
- <div className="flex items-center gap-2 text-sm text-emerald-200">
317
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
318
+ <div className="text-fm-icon-positive flex items-center gap-2 text-sm">
311
319
  <VoicePlayingIcon className="h-4 w-4" />
312
320
  <span>
313
321
  <strong>Animation Tip:</strong> Use CSS animations or
@@ -320,50 +328,62 @@ function VoiceMessage({ isPlaying }) {
320
328
 
321
329
  {/* Size Variations */}
322
330
  <div className="!space-y-8">
323
- <h2 className="text-center text-3xl font-bold !text-white">
331
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
324
332
  Size Variations
325
333
  </h2>
326
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
334
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
327
335
  <div className="!space-y-6">
328
336
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
329
337
  <div className="!space-y-4">
330
- <h3 className="text-lg font-semibold !text-emerald-300">
338
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
331
339
  Standard Sizes
332
340
  </h3>
333
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
341
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
334
342
  <div className="text-center">
335
- <VoicePlayingIcon className="!mx-auto mb-2 h-3 w-3 text-emerald-400" />
336
- <span className="text-xs text-white/60">12px</span>
343
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
344
+ <span className="text-fm-tertiary text-xs">
345
+ 12px
346
+ </span>
337
347
  </div>
338
348
  <div className="text-center">
339
- <VoicePlayingIcon className="!mx-auto mb-2 h-4 w-4 text-emerald-400" />
340
- <span className="text-xs text-white/60">16px</span>
349
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
350
+ <span className="text-fm-tertiary text-xs">
351
+ 16px
352
+ </span>
341
353
  </div>
342
354
  <div className="text-center">
343
- <VoicePlayingIcon className="!mx-auto mb-2 h-5 w-5 text-emerald-400" />
344
- <span className="text-xs text-white/60">20px</span>
355
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
356
+ <span className="text-fm-tertiary text-xs">
357
+ 20px
358
+ </span>
345
359
  </div>
346
360
  <div className="text-center">
347
- <VoicePlayingIcon className="!mx-auto mb-2 h-6 w-6 text-emerald-400" />
348
- <span className="text-xs text-white/60">24px</span>
361
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
362
+ <span className="text-fm-tertiary text-xs">
363
+ 24px
364
+ </span>
349
365
  </div>
350
366
  <div className="text-center">
351
- <VoicePlayingIcon className="!mx-auto mb-2 h-8 w-8 text-emerald-400" />
352
- <span className="text-xs text-white/60">32px</span>
367
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
368
+ <span className="text-fm-tertiary text-xs">
369
+ 32px
370
+ </span>
353
371
  </div>
354
372
  <div className="text-center">
355
- <VoicePlayingIcon className="!mx-auto mb-2 h-12 w-12 text-emerald-400" />
356
- <span className="text-xs text-white/60">48px</span>
373
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
374
+ <span className="text-fm-tertiary text-xs">
375
+ 48px
376
+ </span>
357
377
  </div>
358
378
  </div>
359
379
  </div>
360
380
 
361
381
  <div className="!space-y-4">
362
- <h3 className="text-lg font-semibold !text-emerald-300">
382
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
363
383
  Code Example
364
384
  </h3>
365
- <div className="rounded-lg bg-black/40 p-4">
366
- <pre className="overflow-x-auto text-sm !text-cyan-300">
385
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
386
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
367
387
  {`// Small (16px) - inline indicators
368
388
  <VoicePlayingIcon className="h-4 w-4" />
369
389
 
@@ -385,56 +405,56 @@ function VoiceMessage({ isPlaying }) {
385
405
 
386
406
  {/* Color Variations */}
387
407
  <div className="!space-y-8">
388
- <h2 className="text-center text-3xl font-bold !text-white">
408
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
389
409
  Color Variations
390
410
  </h2>
391
411
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
392
412
  <div className="!space-y-4">
393
- <h3 className="text-lg font-semibold !text-emerald-300">
413
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
394
414
  Semantic Colors
395
415
  </h3>
396
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
416
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
397
417
  <div className="flex items-center gap-4">
398
- <VoicePlayingIcon className="h-6 w-6 text-emerald-400" />
418
+ <VoicePlayingIcon className="text-fm-icon-positive h-6 w-6" />
399
419
  <div>
400
- <div className="text-sm font-medium text-white">
420
+ <div className="text-fm-icon-active text-sm font-medium">
401
421
  Voice Active
402
422
  </div>
403
- <div className="text-xs text-white/60">
404
- text-emerald-400
423
+ <div className="text-fm-tertiary text-xs">
424
+ text-fm-icon-positive
405
425
  </div>
406
426
  </div>
407
427
  </div>
408
428
  <div className="flex items-center gap-4">
409
- <VoicePlayingIcon className="h-6 w-6 text-blue-400" />
429
+ <VoicePlayingIcon className="text-fm-icon-info h-6 w-6" />
410
430
  <div>
411
- <div className="text-sm font-medium text-white">
431
+ <div className="text-fm-icon-active text-sm font-medium">
412
432
  Audio Playback
413
433
  </div>
414
- <div className="text-xs text-white/60">
415
- text-blue-400
434
+ <div className="text-fm-tertiary text-xs">
435
+ text-fm-icon-info
416
436
  </div>
417
437
  </div>
418
438
  </div>
419
439
  <div className="flex items-center gap-4">
420
- <VoicePlayingIcon className="h-6 w-6 text-purple-400" />
440
+ <VoicePlayingIcon className="text-fm-secondary-600 h-6 w-6" />
421
441
  <div>
422
- <div className="text-sm font-medium text-white">
442
+ <div className="text-fm-icon-active text-sm font-medium">
423
443
  Live Recording
424
444
  </div>
425
- <div className="text-xs text-white/60">
426
- text-purple-400
445
+ <div className="text-fm-tertiary text-xs">
446
+ text-fm-secondary-600
427
447
  </div>
428
448
  </div>
429
449
  </div>
430
450
  <div className="flex items-center gap-4">
431
- <VoicePlayingIcon className="h-6 w-6 text-orange-400" />
451
+ <VoicePlayingIcon className="text-fm-icon-warning h-6 w-6" />
432
452
  <div>
433
- <div className="text-sm font-medium text-white">
453
+ <div className="text-fm-icon-active text-sm font-medium">
434
454
  Music Playing
435
455
  </div>
436
- <div className="text-xs text-white/60">
437
- text-orange-400
456
+ <div className="text-fm-tertiary text-xs">
457
+ text-fm-icon-warning
438
458
  </div>
439
459
  </div>
440
460
  </div>
@@ -442,11 +462,11 @@ function VoiceMessage({ isPlaying }) {
442
462
  </div>
443
463
 
444
464
  <div className="!space-y-4">
445
- <h3 className="text-lg font-semibold !text-emerald-300">
465
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
446
466
  Animation Examples
447
467
  </h3>
448
- <div className="rounded-lg bg-black/40 p-4">
449
- <pre className="overflow-x-auto text-sm !text-green-300">
468
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
469
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
450
470
  {`// Pulsing animation for active voice
451
471
  <VoicePlayingIcon
452
472
  className="h-6 w-6 text-emerald-400 animate-pulse"
@@ -479,105 +499,105 @@ function VoiceMessage({ isPlaying }) {
479
499
 
480
500
  {/* Usage Examples */}
481
501
  <div className="!space-y-8">
482
- <h2 className="text-center text-3xl font-bold !text-white">
502
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
483
503
  Usage Examples
484
504
  </h2>
485
505
 
486
506
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
487
507
  {/* Voice Message Interface */}
488
508
  <div className="!space-y-4">
489
- <h3 className="text-lg font-semibold !text-emerald-300">
509
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
490
510
  Voice Message Player
491
511
  </h3>
492
512
  <div className="!space-y-4">
493
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
513
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
494
514
  <div className="space-y-4">
495
- <div className="flex items-center gap-3 rounded-lg border border-emerald-500/20 bg-emerald-500/10 p-3">
496
- <div className="flex h-10 w-10 items-center justify-center rounded-full bg-emerald-500/20">
515
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-3 rounded-lg border p-3">
516
+ <div className="bg-fm-icon-positive/20 flex h-10 w-10 items-center justify-center rounded-full">
497
517
  <span className="text-sm">👤</span>
498
518
  </div>
499
519
  <div className="flex-1">
500
520
  <div className="mb-1 flex items-center justify-between">
501
- <span className="text-sm font-medium text-white">
521
+ <span className="text-fm-icon-active text-sm font-medium">
502
522
  Sarah Connor
503
523
  </span>
504
- <span className="text-xs text-white/60">
524
+ <span className="text-fm-tertiary text-xs">
505
525
  2:34
506
526
  </span>
507
527
  </div>
508
528
  <div className="flex items-center gap-2">
509
- <button className="rounded border border-emerald-500/30 bg-emerald-500/20 p-1.5 transition-colors hover:bg-emerald-500/30">
510
- <VoicePlayingIcon className="h-4 w-4 text-emerald-400" />
529
+ <button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 hover:bg-fm-icon-positive/30 rounded border p-1.5 transition-colors">
530
+ <VoicePlayingIcon className="text-fm-icon-positive h-4 w-4" />
511
531
  </button>
512
- <div className="h-1 flex-1 overflow-hidden rounded-full bg-white/10">
532
+ <div className="bg-fm-surface-secondary h-1 flex-1 overflow-hidden rounded-full">
513
533
  <div
514
- className="h-full rounded-full bg-emerald-400"
534
+ className="bg-fm-icon-positive h-full rounded-full"
515
535
  style={{ width: "45%" }}
516
536
  ></div>
517
537
  </div>
518
- <span className="text-xs text-emerald-400">
538
+ <span className="text-fm-icon-positive text-xs">
519
539
  0:32
520
540
  </span>
521
541
  </div>
522
542
  </div>
523
543
  </div>
524
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-3">
525
- <div className="flex h-10 w-10 items-center justify-center rounded-full bg-white/10">
544
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
545
+ <div className="bg-fm-surface-secondary flex h-10 w-10 items-center justify-center rounded-full">
526
546
  <span className="text-sm">👤</span>
527
547
  </div>
528
548
  <div className="flex-1">
529
549
  <div className="mb-1 flex items-center justify-between">
530
- <span className="text-sm font-medium text-white">
550
+ <span className="text-fm-icon-active text-sm font-medium">
531
551
  John Smith
532
552
  </span>
533
- <span className="text-xs text-white/60">
553
+ <span className="text-fm-tertiary text-xs">
534
554
  1:45
535
555
  </span>
536
556
  </div>
537
557
  <div className="flex items-center gap-2">
538
- <button className="rounded border border-white/20 bg-white/10 p-1.5 transition-colors hover:bg-white/20">
558
+ <button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded border p-1.5 transition-colors">
539
559
  <div className="relative h-4 w-4">
540
560
  <div className="absolute inset-0 ml-1 border-y-2 border-l-4 border-y-transparent border-l-white"></div>
541
561
  </div>
542
562
  </button>
543
- <div className="h-1 flex-1 rounded-full bg-white/10">
563
+ <div className="bg-fm-surface-secondary h-1 flex-1 rounded-full">
544
564
  <div
545
- className="h-full rounded-full bg-white/20"
565
+ className="bg-fm-divider-primary h-full rounded-full"
546
566
  style={{ width: "0%" }}
547
567
  ></div>
548
568
  </div>
549
- <span className="text-xs text-white/60">
569
+ <span className="text-fm-tertiary text-xs">
550
570
  1:45
551
571
  </span>
552
572
  </div>
553
573
  </div>
554
574
  </div>
555
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-3">
556
- <div className="flex h-10 w-10 items-center justify-center rounded-full bg-white/10">
575
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
576
+ <div className="bg-fm-surface-secondary flex h-10 w-10 items-center justify-center rounded-full">
557
577
  <span className="text-sm">👤</span>
558
578
  </div>
559
579
  <div className="flex-1">
560
580
  <div className="mb-1 flex items-center justify-between">
561
- <span className="text-sm font-medium text-white">
581
+ <span className="text-fm-icon-active text-sm font-medium">
562
582
  Alex Johnson
563
583
  </span>
564
- <span className="text-xs text-white/60">
584
+ <span className="text-fm-tertiary text-xs">
565
585
  0:58
566
586
  </span>
567
587
  </div>
568
588
  <div className="flex items-center gap-2">
569
- <button className="rounded border border-white/20 bg-white/10 p-1.5 transition-colors hover:bg-white/20">
589
+ <button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded border p-1.5 transition-colors">
570
590
  <div className="relative h-4 w-4">
571
591
  <div className="absolute inset-0 ml-1 border-y-2 border-l-4 border-y-transparent border-l-white"></div>
572
592
  </div>
573
593
  </button>
574
- <div className="h-1 flex-1 rounded-full bg-white/10">
594
+ <div className="bg-fm-surface-secondary h-1 flex-1 rounded-full">
575
595
  <div
576
- className="h-full rounded-full bg-white/20"
596
+ className="bg-fm-divider-primary h-full rounded-full"
577
597
  style={{ width: "0%" }}
578
598
  ></div>
579
599
  </div>
580
- <span className="text-xs text-white/60">
600
+ <span className="text-fm-tertiary text-xs">
581
601
  0:58
582
602
  </span>
583
603
  </div>
@@ -585,8 +605,8 @@ function VoiceMessage({ isPlaying }) {
585
605
  </div>
586
606
  </div>
587
607
  </div>
588
- <div className="rounded-lg bg-black/40 p-4">
589
- <pre className="overflow-x-auto text-sm !text-green-300">
608
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
609
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
590
610
  {`// Voice message player with visual feedback
591
611
  <div className="voice-message-list">
592
612
  {voiceMessages.map(message => (
@@ -631,33 +651,33 @@ function VoiceMessage({ isPlaying }) {
631
651
 
632
652
  {/* Podcast Player */}
633
653
  <div className="!space-y-4">
634
- <h3 className="text-lg font-semibold !text-emerald-300">
654
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
635
655
  Podcast Player
636
656
  </h3>
637
657
  <div className="!space-y-4">
638
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
639
- <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
640
- <div className="border-b border-white/10 p-4">
658
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
659
+ <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
660
+ <div className="border-fm-divider-secondary border-b p-4">
641
661
  <div className="flex items-center gap-4">
642
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-gradient-to-br from-purple-500/20 to-blue-500/20">
662
+ <div className="from-fm-secondary-500/20 to-fm-icon-info/20 flex h-16 w-16 items-center justify-center rounded-lg bg-linear-to-br">
643
663
  <span className="text-2xl">🎙️</span>
644
664
  </div>
645
665
  <div className="flex-1">
646
- <h4 className="text-lg font-semibold text-white">
666
+ <h4 className="text-fm-icon-active text-lg font-semibold">
647
667
  Tech Talk Daily
648
668
  </h4>
649
- <p className="text-sm text-white/60">
669
+ <p className="text-fm-tertiary text-sm">
650
670
  Episode 42: AI and the Future
651
671
  </p>
652
672
  <div className="mt-2 flex items-center gap-2">
653
- <VoicePlayingIcon className="h-4 w-4 text-emerald-400" />
654
- <span className="text-xs text-emerald-400">
673
+ <VoicePlayingIcon className="text-fm-icon-positive h-4 w-4" />
674
+ <span className="text-fm-icon-positive text-xs">
655
675
  Now Playing
656
676
  </span>
657
- <span className="text-xs text-white/40">
677
+ <span className="text-fm-placeholder text-xs">
658
678
 
659
679
  </span>
660
- <span className="text-xs text-white/60">
680
+ <span className="text-fm-tertiary text-xs">
661
681
  15:32 / 45:20
662
682
  </span>
663
683
  </div>
@@ -665,35 +685,35 @@ function VoiceMessage({ isPlaying }) {
665
685
  </div>
666
686
  </div>
667
687
  <div className="space-y-4 p-4">
668
- <div className="h-2 w-full overflow-hidden rounded-full bg-white/10">
688
+ <div className="bg-fm-surface-secondary h-2 w-full overflow-hidden rounded-full">
669
689
  <div
670
- className="h-full rounded-full bg-emerald-400"
690
+ className="bg-fm-icon-positive h-full rounded-full"
671
691
  style={{ width: "34%" }}
672
692
  ></div>
673
693
  </div>
674
694
  <div className="flex items-center justify-center gap-4">
675
- <button className="rounded p-2 transition-colors hover:bg-white/10">
676
- <div className="h-5 w-5 -translate-x-1 transform border-l-2 border-white"></div>
695
+ <button className="hover:bg-fm-surface-secondary rounded p-2 transition-colors">
696
+ <div className="border-fm-divider-contrast h-5 w-5 -translate-x-1 transform border-l-2"></div>
677
697
  </button>
678
- <button className="rounded-full border border-emerald-500/30 bg-emerald-500/20 p-3 transition-colors hover:bg-emerald-500/30">
679
- <div className="flex h-6 w-6 items-center justify-center rounded-sm bg-white/20">
680
- <div className="mr-1 h-4 w-1 rounded bg-white"></div>
681
- <div className="h-4 w-1 rounded bg-white"></div>
698
+ <button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 hover:bg-fm-icon-positive/30 rounded-full border p-3 transition-colors">
699
+ <div className="bg-fm-divider-primary flex h-6 w-6 items-center justify-center rounded-sm">
700
+ <div className="bg-fm-surface-contrast mr-1 h-4 w-1 rounded"></div>
701
+ <div className="bg-fm-surface-contrast h-4 w-1 rounded"></div>
682
702
  </div>
683
703
  </button>
684
- <button className="rounded p-2 transition-colors hover:bg-white/10">
685
- <div className="h-5 w-5 translate-x-1 transform border-r-2 border-white"></div>
704
+ <button className="hover:bg-fm-surface-secondary rounded p-2 transition-colors">
705
+ <div className="border-fm-divider-contrast h-5 w-5 translate-x-1 transform border-r-2"></div>
686
706
  </button>
687
707
  </div>
688
- <div className="flex items-center justify-between text-xs text-white/60">
708
+ <div className="text-fm-tertiary flex items-center justify-between text-xs">
689
709
  <span>Previous: Episode 41</span>
690
710
  <span>Next: Episode 43</span>
691
711
  </div>
692
712
  </div>
693
713
  </div>
694
714
  </div>
695
- <div className="rounded-lg bg-black/40 p-4">
696
- <pre className="overflow-x-auto text-sm !text-green-300">
715
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
716
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
697
717
  {`// Podcast player with visual playback indicator
698
718
  <div className="podcast-player">
699
719
  <div className="episode-info">
@@ -738,59 +758,59 @@ function VoiceMessage({ isPlaying }) {
738
758
 
739
759
  {/* Voice Assistant */}
740
760
  <div className="!space-y-4">
741
- <h3 className="text-lg font-semibold !text-emerald-300">
761
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
742
762
  Voice Assistant
743
763
  </h3>
744
764
  <div className="!space-y-4">
745
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
746
- <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
747
- <div className="border-b border-white/10 bg-gradient-to-r from-blue-500/20 to-purple-500/20 p-4">
765
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
766
+ <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
767
+ <div className="border-fm-divider-secondary from-fm-icon-info/20 to-fm-secondary-500/20 border-b bg-linear-to-r p-4">
748
768
  <div className="text-center">
749
- <div className="mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-full bg-white/10">
750
- <VoicePlayingIcon className="h-8 w-8 text-blue-400" />
769
+ <div className="bg-fm-surface-secondary mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-full">
770
+ <VoicePlayingIcon className="text-fm-icon-info h-8 w-8" />
751
771
  </div>
752
- <h4 className="text-lg font-semibold text-white">
772
+ <h4 className="text-fm-icon-active text-lg font-semibold">
753
773
  AI Assistant
754
774
  </h4>
755
- <p className="text-sm text-blue-400">
775
+ <p className="text-fm-icon-info text-sm">
756
776
  Listening and responding...
757
777
  </p>
758
778
  </div>
759
779
  </div>
760
780
  <div className="space-y-3 p-4">
761
- <div className="rounded-lg bg-white/5 p-3">
781
+ <div className="bg-fm-surface-secondary rounded-lg p-3">
762
782
  <div className="mb-2 flex items-center gap-2">
763
- <span className="text-xs text-white/60">
783
+ <span className="text-fm-tertiary text-xs">
764
784
  You said:
765
785
  </span>
766
786
  </div>
767
- <p className="text-sm text-white">
787
+ <p className="text-fm-icon-active text-sm">
768
788
  "What's the weather like today?"
769
789
  </p>
770
790
  </div>
771
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-3">
791
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-3">
772
792
  <div className="mb-2 flex items-center gap-2">
773
- <VoicePlayingIcon className="h-3 w-3 text-blue-400" />
774
- <span className="text-xs text-blue-400">
793
+ <VoicePlayingIcon className="text-fm-icon-info h-3 w-3" />
794
+ <span className="text-fm-icon-info text-xs">
775
795
  Assistant responding:
776
796
  </span>
777
797
  </div>
778
- <p className="text-sm text-white">
798
+ <p className="text-fm-icon-active text-sm">
779
799
  Today's weather is sunny with a high of 72°F and
780
800
  a low of 58°F. Perfect day for outdoor
781
801
  activities!
782
802
  </p>
783
803
  </div>
784
804
  <div className="text-center">
785
- <button className="rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-300 transition-colors hover:bg-blue-500/30">
805
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 rounded-lg border px-4 py-2 transition-colors">
786
806
  Tap to speak again
787
807
  </button>
788
808
  </div>
789
809
  </div>
790
810
  </div>
791
811
  </div>
792
- <div className="rounded-lg bg-black/40 p-4">
793
- <pre className="overflow-x-auto text-sm !text-green-300">
812
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
813
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
794
814
  {`// Voice assistant with speech indicators
795
815
  <div className="voice-assistant">
796
816
  <div className="assistant-avatar">
@@ -837,20 +857,20 @@ function VoiceMessage({ isPlaying }) {
837
857
 
838
858
  {/* Audio Recording */}
839
859
  <div className="!space-y-4">
840
- <h3 className="text-lg font-semibold !text-emerald-300">
860
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
841
861
  Audio Recording Studio
842
862
  </h3>
843
863
  <div className="!space-y-4">
844
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
845
- <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
846
- <div className="border-b border-white/10 bg-white/5 p-4">
864
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
865
+ <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
866
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-b p-4">
847
867
  <div className="flex items-center justify-between">
848
- <h4 className="text-lg font-semibold text-white">
868
+ <h4 className="text-fm-icon-active text-lg font-semibold">
849
869
  Audio Studio
850
870
  </h4>
851
871
  <div className="flex items-center gap-2">
852
- <div className="h-3 w-3 animate-pulse rounded-full bg-red-500"></div>
853
- <span className="text-sm text-red-400">
872
+ <div className="bg-fm-icon-negative h-3 w-3 animate-pulse rounded-full"></div>
873
+ <span className="text-fm-icon-negative text-sm">
854
874
  Recording
855
875
  </span>
856
876
  </div>
@@ -858,61 +878,61 @@ function VoiceMessage({ isPlaying }) {
858
878
  </div>
859
879
  <div className="space-y-4 p-4">
860
880
  <div className="grid grid-cols-4 gap-3">
861
- <div className="rounded-lg border border-green-500/20 bg-green-500/10 p-3 text-center">
862
- <VoicePlayingIcon className="mx-auto mb-2 h-6 w-6 text-green-400" />
863
- <div className="text-xs text-white">
881
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-3 text-center">
882
+ <VoicePlayingIcon className="text-fm-icon-positive mx-auto mb-2 h-6 w-6" />
883
+ <div className="text-fm-icon-active text-xs">
864
884
  Track 1
865
885
  </div>
866
- <div className="text-xs text-green-400">
886
+ <div className="text-fm-icon-positive text-xs">
867
887
  Active
868
888
  </div>
869
889
  </div>
870
- <div className="rounded-lg border border-white/10 bg-white/5 p-3 text-center">
871
- <VoicePlayingIcon className="mx-auto mb-2 h-6 w-6 text-white/40" />
872
- <div className="text-xs text-white">
890
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-3 text-center">
891
+ <VoicePlayingIcon className="text-fm-placeholder mx-auto mb-2 h-6 w-6" />
892
+ <div className="text-fm-icon-active text-xs">
873
893
  Track 2
874
894
  </div>
875
- <div className="text-xs text-white/40">
895
+ <div className="text-fm-placeholder text-xs">
876
896
  Muted
877
897
  </div>
878
898
  </div>
879
- <div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-3 text-center">
880
- <VoicePlayingIcon className="mx-auto mb-2 h-6 w-6 text-purple-400" />
881
- <div className="text-xs text-white">
899
+ <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-3 text-center">
900
+ <VoicePlayingIcon className="text-fm-secondary-600 mx-auto mb-2 h-6 w-6" />
901
+ <div className="text-fm-icon-active text-xs">
882
902
  Track 3
883
903
  </div>
884
- <div className="text-xs text-purple-400">
904
+ <div className="text-fm-secondary-600 text-xs">
885
905
  Monitor
886
906
  </div>
887
907
  </div>
888
- <div className="rounded-lg border border-white/10 bg-white/5 p-3 text-center">
889
- <VoicePlayingIcon className="mx-auto mb-2 h-6 w-6 text-white/40" />
890
- <div className="text-xs text-white">
908
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-3 text-center">
909
+ <VoicePlayingIcon className="text-fm-placeholder mx-auto mb-2 h-6 w-6" />
910
+ <div className="text-fm-icon-active text-xs">
891
911
  Track 4
892
912
  </div>
893
- <div className="text-xs text-white/40">
913
+ <div className="text-fm-placeholder text-xs">
894
914
  Standby
895
915
  </div>
896
916
  </div>
897
917
  </div>
898
918
  <div className="flex items-center justify-between">
899
919
  <div className="flex items-center gap-3">
900
- <button className="rounded border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-400 transition-colors hover:bg-red-500/30">
920
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 rounded border px-4 py-2 transition-colors">
901
921
  Stop Recording
902
922
  </button>
903
- <button className="rounded border border-white/20 bg-white/10 px-4 py-2 text-white transition-colors hover:bg-white/20">
923
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-divider-primary rounded border px-4 py-2 transition-colors">
904
924
  Playback
905
925
  </button>
906
926
  </div>
907
- <div className="text-sm text-white/60">
927
+ <div className="text-fm-tertiary text-sm">
908
928
  Recording: 02:34
909
929
  </div>
910
930
  </div>
911
931
  </div>
912
932
  </div>
913
933
  </div>
914
- <div className="rounded-lg bg-black/40 p-4">
915
- <pre className="overflow-x-auto text-sm !text-green-300">
934
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
935
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
916
936
  {`// Multi-track audio recording studio
917
937
  <div className="audio-studio">
918
938
  <div className="studio-header">
@@ -960,64 +980,64 @@ function VoiceMessage({ isPlaying }) {
960
980
 
961
981
  {/* Accessibility */}
962
982
  <div className="!space-y-8">
963
- <h2 className="text-center text-3xl font-bold !text-white">
983
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
964
984
  Accessibility Features
965
985
  </h2>
966
986
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
967
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
968
- <h3 className="text-lg font-semibold !text-green-300">
987
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
988
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
969
989
  ✅ Built-in Features
970
990
  </h3>
971
- <ul className="!space-y-2 text-sm !text-white/70">
972
- <li className="!text-white/70">
991
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
992
+ <li className="text-fm-secondary!">
973
993
  Uses Radix UI AccessibleIcon wrapper
974
994
  </li>
975
- <li className="!text-white/70">
995
+ <li className="text-fm-secondary!">
976
996
  Provides screen reader label "Voice playing icon"
977
997
  </li>
978
- <li className="!text-white/70">
998
+ <li className="text-fm-secondary!">
979
999
  Supports keyboard navigation when interactive
980
1000
  </li>
981
- <li className="!text-white/70">
1001
+ <li className="text-fm-secondary!">
982
1002
  High contrast colors for visual accessibility
983
1003
  </li>
984
- <li className="!text-white/70">
1004
+ <li className="text-fm-secondary!">
985
1005
  Square strokeLinecap for crisp audio bar appearance
986
1006
  </li>
987
1007
  </ul>
988
1008
  </div>
989
1009
 
990
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
991
- <h3 className="text-lg font-semibold !text-emerald-300">
1010
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
1011
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
992
1012
  💡 Best Practices
993
1013
  </h3>
994
- <ul className="!space-y-2 text-sm text-white/70">
995
- <li className="!text-white/70">
1014
+ <ul className="text-fm-secondary !space-y-2 text-sm">
1015
+ <li className="text-fm-secondary!">
996
1016
  Always announce playback state changes to screen readers
997
1017
  </li>
998
- <li className="!text-white/70">
1018
+ <li className="text-fm-secondary!">
999
1019
  Provide audio level feedback for users with hearing aids
1000
1020
  </li>
1001
- <li className="!text-white/70">
1021
+ <li className="text-fm-secondary!">
1002
1022
  Use consistent animation timing for predictable behavior
1003
1023
  </li>
1004
- <li className="!text-white/70">
1024
+ <li className="text-fm-secondary!">
1005
1025
  Consider reduced motion preferences for animations
1006
1026
  </li>
1007
- <li className="!text-white/70">
1027
+ <li className="text-fm-secondary!">
1008
1028
  Pair with text labels for clearer context
1009
1029
  </li>
1010
1030
  </ul>
1011
1031
  </div>
1012
1032
  </div>
1013
1033
 
1014
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1015
- <h3 className="mb-4 text-lg font-semibold !text-blue-300">
1034
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1035
+ <h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
1016
1036
  Proper ARIA Implementation
1017
1037
  </h3>
1018
1038
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
1019
- <div className="rounded-lg bg-black/40 p-4">
1020
- <pre className="overflow-x-auto text-sm !text-cyan-300">
1039
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
1040
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
1021
1041
  {`// Voice message with playback status
1022
1042
  <div className="voice-message">
1023
1043
  <button
@@ -1093,13 +1113,13 @@ function VoiceMessage({ isPlaying }) {
1093
1113
  </pre>
1094
1114
  </div>
1095
1115
  <div className="!space-y-4">
1096
- <p className="text-sm !text-white/70">
1116
+ <p className="text-fm-secondary! text-sm">
1097
1117
  When using VoicePlayingIcon for audio interfaces, always
1098
1118
  provide clear context about playback state and ensure
1099
1119
  users can understand what audio is currently active.
1100
1120
  </p>
1101
- <div className="rounded-lg border border-emerald-500/20 bg-emerald-500/10 p-4">
1102
- <div className="flex items-center gap-2 text-sm text-emerald-200">
1121
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
1122
+ <div className="text-fm-icon-positive flex items-center gap-2 text-sm">
1103
1123
  <VoicePlayingIcon className="h-4 w-4" />
1104
1124
  <span>
1105
1125
  Use aria-live regions to announce audio state
@@ -1114,50 +1134,60 @@ function VoiceMessage({ isPlaying }) {
1114
1134
 
1115
1135
  {/* Related Icons */}
1116
1136
  <div className="!space-y-8">
1117
- <h2 className="text-center text-3xl font-bold !text-white">
1137
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
1118
1138
  Related Icons
1119
1139
  </h2>
1120
1140
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
1121
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1122
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
1123
- <span className="!text-2xl !text-white">▶️</span>
1141
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1142
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1143
+ <span className="text-fm-icon-active! !text-2xl">▶️</span>
1124
1144
  </div>
1125
1145
  <div>
1126
- <div className="font-medium text-white">PlayIcon</div>
1127
- <div className="text-xs text-white/60">
1146
+ <div className="text-fm-icon-active font-medium">
1147
+ PlayIcon
1148
+ </div>
1149
+ <div className="text-fm-tertiary text-xs">
1128
1150
  Start playback
1129
1151
  </div>
1130
1152
  </div>
1131
1153
  </div>
1132
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1133
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
1134
- <span className="!text-2xl !text-white">⏸️</span>
1154
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1155
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1156
+ <span className="text-fm-icon-active! !text-2xl">⏸️</span>
1135
1157
  </div>
1136
1158
  <div>
1137
- <div className="font-medium text-white">PauseIcon</div>
1138
- <div className="text-xs text-white/60">
1159
+ <div className="text-fm-icon-active font-medium">
1160
+ PauseIcon
1161
+ </div>
1162
+ <div className="text-fm-tertiary text-xs">
1139
1163
  Pause playback
1140
1164
  </div>
1141
1165
  </div>
1142
1166
  </div>
1143
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1144
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
1145
- <span className="!text-2xl !text-white">🎙️</span>
1167
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1168
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1169
+ <span className="text-fm-icon-active! !text-2xl">🎙️</span>
1146
1170
  </div>
1147
1171
  <div>
1148
- <div className="font-medium text-white">
1172
+ <div className="text-fm-icon-active font-medium">
1149
1173
  MicrophoneIcon
1150
1174
  </div>
1151
- <div className="text-xs text-white/60">Voice input</div>
1175
+ <div className="text-fm-tertiary text-xs">
1176
+ Voice input
1177
+ </div>
1152
1178
  </div>
1153
1179
  </div>
1154
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1155
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
1156
- <span className="!text-2xl !text-white">🔊</span>
1180
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1181
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1182
+ <span className="text-fm-icon-active! !text-2xl">🔊</span>
1157
1183
  </div>
1158
1184
  <div>
1159
- <div className="font-medium text-white">VolumeIcon</div>
1160
- <div className="text-xs text-white/60">Audio levels</div>
1185
+ <div className="text-fm-icon-active font-medium">
1186
+ VolumeIcon
1187
+ </div>
1188
+ <div className="text-fm-tertiary text-xs">
1189
+ Audio levels
1190
+ </div>
1161
1191
  </div>
1162
1192
  </div>
1163
1193
  </div>
@@ -1165,15 +1195,15 @@ function VoiceMessage({ isPlaying }) {
1165
1195
  </div>
1166
1196
 
1167
1197
  {/* Footer */}
1168
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
1198
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
1169
1199
  <div className="!mx-auto max-w-7xl px-6 py-8">
1170
1200
  <div className="!space-y-4 text-center">
1171
- <p className="!text-white/60">
1201
+ <p className="text-fm-tertiary!">
1172
1202
  VoicePlayingIcon is part of the Aural UI icon library, built
1173
1203
  with accessibility and audio interface best practices in
1174
1204
  mind.
1175
1205
  </p>
1176
- <p className="text-sm !text-white/40">
1206
+ <p className="text-fm-placeholder! text-sm">
1177
1207
  All icons use Radix UI's AccessibleIcon for screen reader
1178
1208
  compatibility and follow WCAG guidelines for audio controls
1179
1209
  and playback states.
@@ -1232,20 +1262,20 @@ const storyParameters = {
1232
1262
  backgrounds: {
1233
1263
  default: "dark",
1234
1264
  values: [
1235
- { name: "dark", value: "#0a0a0a" },
1236
- { name: "darker", value: "#000000" },
1265
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
1266
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
1237
1267
  ],
1238
1268
  },
1239
1269
  }
1240
1270
 
1241
1271
  export const Default: Story = {
1242
1272
  args: {
1243
- className: "h-8 w-8 text-emerald-400",
1273
+ className: "h-8 w-8 text-fm-icon-positive",
1244
1274
  withAccessibility: true,
1245
1275
  },
1246
1276
  parameters: storyParameters,
1247
1277
  render: (args) => (
1248
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1278
+ <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">
1249
1279
  <VoicePlayingIcon {...args} />
1250
1280
  </div>
1251
1281
  ),
@@ -1262,30 +1292,30 @@ export const SizeVariations: Story = {
1262
1292
  },
1263
1293
  },
1264
1294
  render: () => (
1265
- <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">
1295
+ <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">
1266
1296
  <div className="text-center">
1267
- <VoicePlayingIcon className="!mx-auto mb-2 h-3 w-3 text-emerald-400" />
1268
- <span className="text-xs text-white/60">12px</span>
1297
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
1298
+ <span className="text-fm-tertiary text-xs">12px</span>
1269
1299
  </div>
1270
1300
  <div className="text-center">
1271
- <VoicePlayingIcon className="!mx-auto mb-2 h-4 w-4 text-emerald-400" />
1272
- <span className="text-xs text-white/60">16px</span>
1301
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
1302
+ <span className="text-fm-tertiary text-xs">16px</span>
1273
1303
  </div>
1274
1304
  <div className="text-center">
1275
- <VoicePlayingIcon className="!mx-auto mb-2 h-5 w-5 text-emerald-400" />
1276
- <span className="text-xs text-white/60">20px</span>
1305
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
1306
+ <span className="text-fm-tertiary text-xs">20px</span>
1277
1307
  </div>
1278
1308
  <div className="text-center">
1279
- <VoicePlayingIcon className="!mx-auto mb-2 h-6 w-6 text-emerald-400" />
1280
- <span className="text-xs text-white/60">24px</span>
1309
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
1310
+ <span className="text-fm-tertiary text-xs">24px</span>
1281
1311
  </div>
1282
1312
  <div className="text-center">
1283
- <VoicePlayingIcon className="!mx-auto mb-2 h-8 w-8 text-emerald-400" />
1284
- <span className="text-xs text-white/60">32px</span>
1313
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
1314
+ <span className="text-fm-tertiary text-xs">32px</span>
1285
1315
  </div>
1286
1316
  <div className="text-center">
1287
- <VoicePlayingIcon className="!mx-auto mb-2 h-12 w-12 text-emerald-400" />
1288
- <span className="text-xs text-white/60">48px</span>
1317
+ <VoicePlayingIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
1318
+ <span className="text-fm-tertiary text-xs">48px</span>
1289
1319
  </div>
1290
1320
  </div>
1291
1321
  ),
@@ -1302,34 +1332,46 @@ export const ColorVariations: Story = {
1302
1332
  },
1303
1333
  },
1304
1334
  render: () => (
1305
- <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">
1335
+ <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">
1306
1336
  <div className="text-center">
1307
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-emerald-500/30 bg-emerald-500/20">
1308
- <VoicePlayingIcon className="h-8 w-8 text-emerald-400" />
1337
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1338
+ <VoicePlayingIcon className="text-fm-icon-positive h-8 w-8" />
1339
+ </div>
1340
+ <div className="text-fm-icon-active text-sm font-medium">
1341
+ Voice Active
1342
+ </div>
1343
+ <div className="text-fm-icon-positive text-xs">
1344
+ text-fm-icon-positive
1309
1345
  </div>
1310
- <div className="text-sm font-medium text-white">Voice Active</div>
1311
- <div className="text-xs text-emerald-400">text-emerald-400</div>
1312
1346
  </div>
1313
1347
  <div className="text-center">
1314
- <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">
1315
- <VoicePlayingIcon className="h-8 w-8 text-blue-400" />
1348
+ <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">
1349
+ <VoicePlayingIcon className="text-fm-icon-info h-8 w-8" />
1316
1350
  </div>
1317
- <div className="text-sm font-medium text-white">Audio Playback</div>
1318
- <div className="text-xs text-blue-400">text-blue-400</div>
1351
+ <div className="text-fm-icon-active text-sm font-medium">
1352
+ Audio Playback
1353
+ </div>
1354
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
1319
1355
  </div>
1320
1356
  <div className="text-center">
1321
- <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">
1322
- <VoicePlayingIcon className="h-8 w-8 text-purple-400" />
1357
+ <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">
1358
+ <VoicePlayingIcon className="text-fm-secondary-600 h-8 w-8" />
1359
+ </div>
1360
+ <div className="text-fm-icon-active text-sm font-medium">
1361
+ Live Recording
1362
+ </div>
1363
+ <div className="text-fm-secondary-600 text-xs">
1364
+ text-fm-secondary-600
1323
1365
  </div>
1324
- <div className="text-sm font-medium text-white">Live Recording</div>
1325
- <div className="text-xs text-purple-400">text-purple-400</div>
1326
1366
  </div>
1327
1367
  <div className="text-center">
1328
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-orange-500/30 bg-orange-500/20">
1329
- <VoicePlayingIcon className="h-8 w-8 text-orange-400" />
1368
+ <div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1369
+ <VoicePlayingIcon className="text-fm-icon-warning h-8 w-8" />
1370
+ </div>
1371
+ <div className="text-fm-icon-active text-sm font-medium">
1372
+ Music Playing
1330
1373
  </div>
1331
- <div className="text-sm font-medium text-white">Music Playing</div>
1332
- <div className="text-xs text-orange-400">text-orange-400</div>
1374
+ <div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
1333
1375
  </div>
1334
1376
  </div>
1335
1377
  ),
@@ -1346,25 +1388,27 @@ export const UsageExamples: Story = {
1346
1388
  },
1347
1389
  },
1348
1390
  render: () => (
1349
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1391
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1350
1392
  {/* Voice Message */}
1351
1393
  <div className="!space-y-2">
1352
- <h3 className="text-sm font-medium text-white">Voice Message Player</h3>
1353
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1354
- <div className="flex items-center gap-3 rounded-lg border border-emerald-500/20 bg-emerald-500/10 p-3">
1355
- <button className="rounded border border-emerald-500/30 bg-emerald-500/20 p-1.5 transition-colors hover:bg-emerald-500/30">
1356
- <VoicePlayingIcon className="h-4 w-4 text-emerald-400" />
1394
+ <h3 className="text-fm-icon-active text-sm font-medium">
1395
+ Voice Message Player
1396
+ </h3>
1397
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1398
+ <div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-3 rounded-lg border p-3">
1399
+ <button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 hover:bg-fm-icon-positive/30 rounded border p-1.5 transition-colors">
1400
+ <VoicePlayingIcon className="text-fm-icon-positive h-4 w-4" />
1357
1401
  </button>
1358
1402
  <div className="flex-1">
1359
1403
  <div className="mb-1 flex items-center justify-between">
1360
- <span className="text-sm font-medium text-white">
1404
+ <span className="text-fm-icon-active text-sm font-medium">
1361
1405
  Voice Message
1362
1406
  </span>
1363
- <span className="text-xs text-white/60">2:34</span>
1407
+ <span className="text-fm-tertiary text-xs">2:34</span>
1364
1408
  </div>
1365
- <div className="h-1 overflow-hidden rounded-full bg-white/10">
1409
+ <div className="bg-fm-surface-secondary h-1 overflow-hidden rounded-full">
1366
1410
  <div
1367
- className="h-full rounded-full bg-emerald-400"
1411
+ className="bg-fm-icon-positive h-full rounded-full"
1368
1412
  style={{ width: "45%" }}
1369
1413
  ></div>
1370
1414
  </div>
@@ -1375,20 +1419,24 @@ export const UsageExamples: Story = {
1375
1419
 
1376
1420
  {/* Podcast Player */}
1377
1421
  <div className="!space-y-2">
1378
- <h3 className="text-sm font-medium text-white">Podcast Player</h3>
1379
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1380
- <div className="flex items-center gap-3 rounded border border-white/10 bg-black/30 p-3">
1381
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
1422
+ <h3 className="text-fm-icon-active text-sm font-medium">
1423
+ Podcast Player
1424
+ </h3>
1425
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1426
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded border p-3">
1427
+ <div className="bg-fm-secondary-500/20 flex h-12 w-12 items-center justify-center rounded-lg">
1382
1428
  <span className="text-lg">🎙️</span>
1383
1429
  </div>
1384
1430
  <div className="flex-1">
1385
- <div className="text-sm font-medium text-white">
1431
+ <div className="text-fm-icon-active text-sm font-medium">
1386
1432
  Tech Talk Daily
1387
1433
  </div>
1388
1434
  <div className="mt-1 flex items-center gap-2">
1389
- <VoicePlayingIcon className="h-4 w-4 text-emerald-400" />
1390
- <span className="text-xs text-emerald-400">Now Playing</span>
1391
- <span className="text-xs text-white/60">15:32 / 45:20</span>
1435
+ <VoicePlayingIcon className="text-fm-icon-positive h-4 w-4" />
1436
+ <span className="text-fm-icon-positive text-xs">
1437
+ Now Playing
1438
+ </span>
1439
+ <span className="text-fm-tertiary text-xs">15:32 / 45:20</span>
1392
1440
  </div>
1393
1441
  </div>
1394
1442
  </div>
@@ -1411,12 +1459,12 @@ export const Playground: Story = {
1411
1459
  args: {
1412
1460
  width: 24,
1413
1461
  height: 24,
1414
- className: "text-emerald-400",
1462
+ className: "text-fm-icon-positive",
1415
1463
  strokeLinecap: "square",
1416
1464
  },
1417
1465
  render: (args) => (
1418
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1419
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1466
+ <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">
1467
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1420
1468
  <VoicePlayingIcon {...args} />
1421
1469
  </div>
1422
1470
  </div>