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 VideoPlaylistIcon> = {
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 VideoPlaylistIcon> = {
40
40
  background: transparent !important;
41
41
  }
42
42
  body {
43
- background: #0a0a0a !important;
43
+ background: var(--color-fm-surface-primary) !important;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a !important;
46
+ background: var(--color-fm-surface-primary) !important;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent !important;
50
50
  border: none !important;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white !important;
53
+ color: var(--color-fm-icon-active) !important;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) !important;
56
+ color: var(--color-fm-secondary) !important;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) !important;
60
- color: rgba(168, 85, 247, 1) !important;
61
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
59
+ background: var(--color-fm-surface-secondary) !important;
60
+ color: var(--color-fm-secondary-500) !important;
61
+ border: 1px solid var(--color-fm-divider-secondary) !important;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) !important;
65
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
64
+ background: var(--color-fm-surface-secondary) !important;
65
+ border: 1px solid var(--color-fm-divider-secondary) !important;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) !important;
69
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
68
+ background: var(--color-fm-surface-secondary) !important;
69
+ border: 1px solid var(--color-fm-divider-secondary) !important;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) !important;
73
- color: white !important;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
72
+ background: var(--color-fm-surface-secondary) !important;
73
+ color: var(--color-fm-icon-active) !important;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) !important;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
77
+ color: var(--color-fm-secondary) !important;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
83
+ <div className="bg-fm-surface-primary min-h-screen">
84
84
  {/* Header */}
85
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
- <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-indigo-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-secondary-500/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-indigo-500/20">
90
- <VideoPlaylistIcon className="h-12 w-12 text-purple-400" />
89
+ <div className="border-fm-secondary-500/30 from-fm-secondary-500/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  VideoPlaylistIcon
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
  A versatile video playlist icon for media libraries, course
97
97
  content, and video collections. Built with accessibility in
98
98
  mind using Radix UI's AccessibleIcon wrapper.
@@ -101,28 +101,28 @@ const meta: Meta<typeof VideoPlaylistIcon> = {
101
101
  {/* Stats */}
102
102
  <div className="flex items-center justify-center gap-8 pt-8">
103
103
  <div className="text-center">
104
- <div className="text-3xl font-bold text-purple-300">
104
+ <div className="text-fm-secondary-600 text-3xl font-bold">
105
105
  Accessible
106
106
  </div>
107
- <div className="text-sm text-white/60">
107
+ <div className="text-fm-tertiary text-sm">
108
108
  Screen reader friendly
109
109
  </div>
110
110
  </div>
111
- <div className="h-8 w-px bg-white/20" />
111
+ <div className="bg-fm-divider-primary h-8 w-px" />
112
112
  <div className="text-center">
113
- <div className="text-3xl font-bold text-indigo-300">
113
+ <div className="text-fm-icon-info text-3xl font-bold">
114
114
  Scalable
115
115
  </div>
116
- <div className="text-sm text-white/60">
116
+ <div className="text-fm-tertiary text-sm">
117
117
  Any size needed
118
118
  </div>
119
119
  </div>
120
- <div className="h-8 w-px bg-white/20" />
120
+ <div className="bg-fm-divider-primary h-8 w-px" />
121
121
  <div className="text-center">
122
- <div className="text-3xl font-bold text-violet-300">
122
+ <div className="text-fm-secondary-600 text-3xl font-bold">
123
123
  Flexible
124
124
  </div>
125
- <div className="text-sm text-white/60">
125
+ <div className="text-fm-tertiary text-sm">
126
126
  Customizable styling
127
127
  </div>
128
128
  </div>
@@ -135,16 +135,16 @@ const meta: Meta<typeof VideoPlaylistIcon> = {
135
135
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
136
  {/* Quick Usage */}
137
137
  <div className="!space-y-8">
138
- <h2 className="text-center text-3xl font-bold !text-white">
138
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
139
139
  Quick Start
140
140
  </h2>
141
141
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
142
  <div className="!space-y-4">
143
- <h3 className="text-xl font-semibold !text-purple-300">
143
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
144
144
  Basic Usage
145
145
  </h3>
146
- <div className="rounded-lg bg-black/40 p-4">
147
- <pre className="overflow-x-auto text-sm !text-green-300">
146
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
147
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
148
148
  {`import { VideoPlaylistIcon } from "@icons/video-play-list-icon"
149
149
 
150
150
  function MyComponent() {
@@ -157,11 +157,11 @@ function MyComponent() {
157
157
  </div>
158
158
 
159
159
  <div className="!space-y-4">
160
- <h3 className="text-xl font-semibold !text-purple-300">
160
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
161
161
  Live Preview
162
162
  </h3>
163
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
164
- <VideoPlaylistIcon className="h-12 w-12 text-purple-400" />
163
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
164
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-12 w-12" />
165
165
  </div>
166
166
  </div>
167
167
  </div>
@@ -169,122 +169,130 @@ function MyComponent() {
169
169
 
170
170
  {/* Props Documentation */}
171
171
  <div className="!space-y-8">
172
- <h2 className="text-center text-3xl font-bold !text-white">
172
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
173
173
  Props & Configuration
174
174
  </h2>
175
175
 
176
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
177
- <div className="bg-white/5 p-4">
178
- <h3 className="text-xl font-semibold !text-white">Props</h3>
176
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
177
+ <div className="bg-fm-surface-secondary p-4">
178
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
179
+ Props
180
+ </h3>
179
181
  </div>
180
182
  <table className="!my-0 w-full">
181
- <thead className="bg-white/5">
182
- <tr className="border-b border-white/10">
183
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
183
+ <thead className="bg-fm-surface-secondary">
184
+ <tr className="border-fm-divider-secondary border-b">
185
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
184
186
  Prop
185
187
  </th>
186
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
188
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
187
189
  Type
188
190
  </th>
189
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
191
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
190
192
  Default
191
193
  </th>
192
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
194
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
193
195
  Description
194
196
  </th>
195
197
  </tr>
196
198
  </thead>
197
199
  <tbody>
198
200
  {" "}
199
- <tr className="!bg-black/10">
200
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
201
+ <tr className="bg-fm-surface-secondary!">
202
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
201
203
  withAccessibility
202
204
  </td>
203
- <td className="px-6 py-4 text-sm !text-white/70">
205
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
204
206
  boolean
205
207
  </td>
206
- <td className="px-6 py-4 text-sm !text-white/50">
208
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
207
209
  true
208
210
  </td>
209
- <td className="px-6 py-4 text-sm !text-white/70">
211
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
210
212
  Whether to wrap the icon with accessibility feature
211
213
  </td>
212
214
  </tr>
213
- <tr className="border-b border-white/5 !bg-black/10">
214
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
215
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
216
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
215
217
  height
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
  number | string
219
221
  </td>
220
- <td className="px-6 py-4 text-sm !text-white/50">20</td>
221
- <td className="px-6 py-4 text-sm !text-white/70">
222
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
223
+ 20
224
+ </td>
225
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
222
226
  Height of the icon in pixels
223
227
  </td>
224
228
  </tr>
225
- <tr className="border-b border-white/5">
226
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
229
+ <tr className="border-fm-divider-tertiary border-b">
230
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
227
231
  stroke
228
232
  </td>
229
- <td className="px-6 py-4 text-sm !text-white/70">
233
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
230
234
  string
231
235
  </td>
232
- <td className="px-6 py-4 text-sm !text-white/50">
236
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
233
237
  currentColor
234
238
  </td>
235
- <td className="px-6 py-4 text-sm !text-white/70">
239
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
236
240
  Stroke color of the playlist icon
237
241
  </td>
238
242
  </tr>
239
- <tr className="border-b border-white/5 !bg-black/10">
240
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
243
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
244
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
241
245
  strokeWidth
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
  number | 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
  1.25
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
  Width of the stroke line
251
255
  </td>
252
256
  </tr>
253
- <tr className="border-b border-white/5">
254
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
257
+ <tr className="border-fm-divider-tertiary border-b">
258
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
255
259
  strokeLinecap
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
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
  square
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
  Style of line endings
265
269
  </td>
266
270
  </tr>
267
- <tr className="border-b border-white/5 !bg-black/10">
268
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
271
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
272
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
269
273
  className
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">-</td>
275
- <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">
276
282
  CSS classes for styling
277
283
  </td>
278
284
  </tr>
279
- <tr className="!bg-black/10">
280
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
285
+ <tr className="bg-fm-surface-secondary!">
286
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
281
287
  onClick
282
288
  </td>
283
- <td className="px-6 py-4 text-sm !text-white/70">
289
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
284
290
  function
285
291
  </td>
286
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
287
- <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">
288
296
  Click handler for interactions
289
297
  </td>
290
298
  </tr>
@@ -295,21 +303,21 @@ function MyComponent() {
295
303
  {/* Styling Options */}
296
304
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
297
305
  <div className="!space-y-4">
298
- <h3 className="text-lg font-semibold !text-purple-300">
306
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
299
307
  Media Player Styles
300
308
  </h3>
301
309
  <div className="!space-y-4">
302
310
  <div className="flex gap-4">
303
- <button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/20 px-4 py-2 text-purple-200">
311
+ <button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 flex items-center gap-2 rounded-lg border px-4 py-2">
304
312
  <VideoPlaylistIcon className="h-4 w-4" />
305
313
  Playlist
306
314
  </button>
307
- <button className="rounded-lg p-2 text-purple-400 transition-colors hover:bg-purple-500/20">
315
+ <button className="text-fm-secondary-600 hover:bg-fm-secondary-500/20 rounded-lg p-2 transition-colors">
308
316
  <VideoPlaylistIcon className="h-4 w-4" />
309
317
  </button>
310
318
  </div>
311
- <div className="rounded-lg bg-black/40 p-4">
312
- <pre className="overflow-x-auto text-sm !text-green-300">
319
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
320
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
313
321
  {`// Button with text
314
322
  <button className="flex items-center gap-2 bg-purple-500/20 border border-purple-500/30 px-4 py-2 rounded-lg">
315
323
  <VideoPlaylistIcon className="h-4 w-4" />
@@ -326,17 +334,17 @@ function MyComponent() {
326
334
  </div>
327
335
 
328
336
  <div className="!space-y-4">
329
- <h3 className="text-lg font-semibold !text-purple-300">
337
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
330
338
  Color Customization
331
339
  </h3>
332
340
  <div className="!space-y-4">
333
341
  <div className="flex gap-4">
334
- <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
335
- <VideoPlaylistIcon className="h-6 w-6 text-indigo-400" />
336
- <VideoPlaylistIcon className="h-6 w-6 text-violet-400" />
342
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
343
+ <VideoPlaylistIcon className="text-fm-icon-info h-6 w-6" />
344
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
337
345
  </div>
338
- <div className="rounded-lg bg-black/40 p-4">
339
- <pre className="overflow-x-auto text-sm !text-green-300">
346
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
347
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
340
348
  {`// Using Tailwind classes
341
349
  <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
342
350
  <VideoPlaylistIcon className="h-6 w-6 text-indigo-400" />
@@ -362,50 +370,62 @@ function MyComponent() {
362
370
 
363
371
  {/* Size Variations */}
364
372
  <div className="!space-y-8">
365
- <h2 className="text-center text-3xl font-bold !text-white">
373
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
366
374
  Size Variations
367
375
  </h2>
368
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
376
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
369
377
  <div className="!space-y-6">
370
378
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
371
379
  <div className="!space-y-4">
372
- <h3 className="text-lg font-semibold !text-purple-300">
380
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
373
381
  Standard Sizes
374
382
  </h3>
375
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
383
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
376
384
  <div className="text-center">
377
- <VideoPlaylistIcon className="!mx-auto mb-2 h-3 w-3 text-purple-400" />
378
- <span className="text-xs text-white/60">12px</span>
385
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
386
+ <span className="text-fm-tertiary text-xs">
387
+ 12px
388
+ </span>
379
389
  </div>
380
390
  <div className="text-center">
381
- <VideoPlaylistIcon className="!mx-auto mb-2 h-4 w-4 text-purple-400" />
382
- <span className="text-xs text-white/60">16px</span>
391
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
392
+ <span className="text-fm-tertiary text-xs">
393
+ 16px
394
+ </span>
383
395
  </div>
384
396
  <div className="text-center">
385
- <VideoPlaylistIcon className="!mx-auto mb-2 h-5 w-5 text-purple-400" />
386
- <span className="text-xs text-white/60">20px</span>
397
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
398
+ <span className="text-fm-tertiary text-xs">
399
+ 20px
400
+ </span>
387
401
  </div>
388
402
  <div className="text-center">
389
- <VideoPlaylistIcon className="!mx-auto mb-2 h-6 w-6 text-purple-400" />
390
- <span className="text-xs text-white/60">24px</span>
403
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
404
+ <span className="text-fm-tertiary text-xs">
405
+ 24px
406
+ </span>
391
407
  </div>
392
408
  <div className="text-center">
393
- <VideoPlaylistIcon className="!mx-auto mb-2 h-8 w-8 text-purple-400" />
394
- <span className="text-xs text-white/60">32px</span>
409
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
410
+ <span className="text-fm-tertiary text-xs">
411
+ 32px
412
+ </span>
395
413
  </div>
396
414
  <div className="text-center">
397
- <VideoPlaylistIcon className="!mx-auto mb-2 h-12 w-12 text-purple-400" />
398
- <span className="text-xs text-white/60">48px</span>
415
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
416
+ <span className="text-fm-tertiary text-xs">
417
+ 48px
418
+ </span>
399
419
  </div>
400
420
  </div>
401
421
  </div>
402
422
 
403
423
  <div className="!space-y-4">
404
- <h3 className="text-lg font-semibold !text-purple-300">
424
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
405
425
  Code Example
406
426
  </h3>
407
- <div className="rounded-lg bg-black/40 p-4">
408
- <pre className="overflow-x-auto text-sm !text-blue-300">
427
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
428
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
409
429
  {`// Small (16px)
410
430
  <VideoPlaylistIcon className="h-4 w-4" />
411
431
 
@@ -427,56 +447,56 @@ function MyComponent() {
427
447
 
428
448
  {/* Color Variations */}
429
449
  <div className="!space-y-8">
430
- <h2 className="text-center text-3xl font-bold !text-white">
450
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
431
451
  Color Variations
432
452
  </h2>
433
453
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
434
454
  <div className="!space-y-4">
435
- <h3 className="text-lg font-semibold !text-purple-300">
455
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
436
456
  Semantic Colors
437
457
  </h3>
438
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
458
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
439
459
  <div className="flex items-center gap-4">
440
- <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
460
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
441
461
  <div>
442
- <div className="text-sm font-medium text-white">
462
+ <div className="text-fm-icon-active text-sm font-medium">
443
463
  Media
444
464
  </div>
445
- <div className="text-xs text-white/60">
446
- text-purple-400
465
+ <div className="text-fm-tertiary text-xs">
466
+ text-fm-secondary-600
447
467
  </div>
448
468
  </div>
449
469
  </div>
450
470
  <div className="flex items-center gap-4">
451
- <VideoPlaylistIcon className="h-6 w-6 text-indigo-400" />
471
+ <VideoPlaylistIcon className="text-fm-icon-info h-6 w-6" />
452
472
  <div>
453
- <div className="text-sm font-medium text-white">
473
+ <div className="text-fm-icon-active text-sm font-medium">
454
474
  Learning
455
475
  </div>
456
- <div className="text-xs text-white/60">
457
- text-indigo-400
476
+ <div className="text-fm-tertiary text-xs">
477
+ text-fm-icon-info
458
478
  </div>
459
479
  </div>
460
480
  </div>
461
481
  <div className="flex items-center gap-4">
462
- <VideoPlaylistIcon className="h-6 w-6 text-violet-400" />
482
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
463
483
  <div>
464
- <div className="text-sm font-medium text-white">
484
+ <div className="text-fm-icon-active text-sm font-medium">
465
485
  Creative
466
486
  </div>
467
- <div className="text-xs text-white/60">
468
- text-violet-400
487
+ <div className="text-fm-tertiary text-xs">
488
+ text-fm-secondary-600
469
489
  </div>
470
490
  </div>
471
491
  </div>
472
492
  <div className="flex items-center gap-4">
473
- <VideoPlaylistIcon className="h-6 w-6 text-white/40" />
493
+ <VideoPlaylistIcon className="text-fm-placeholder h-6 w-6" />
474
494
  <div>
475
- <div className="text-sm font-medium text-white">
495
+ <div className="text-fm-icon-active text-sm font-medium">
476
496
  Disabled
477
497
  </div>
478
- <div className="text-xs text-white/60">
479
- text-white/40
498
+ <div className="text-fm-tertiary text-xs">
499
+ text-fm-placeholder
480
500
  </div>
481
501
  </div>
482
502
  </div>
@@ -484,11 +504,11 @@ function MyComponent() {
484
504
  </div>
485
505
 
486
506
  <div className="!space-y-4">
487
- <h3 className="text-lg font-semibold !text-purple-300">
507
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
488
508
  Custom Colors
489
509
  </h3>
490
- <div className="rounded-lg bg-black/40 p-4">
491
- <pre className="overflow-x-auto text-sm !text-green-300">
510
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
511
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
492
512
  {`// Using Tailwind classes
493
513
  <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
494
514
  <VideoPlaylistIcon className="h-6 w-6 text-indigo-500" />
@@ -513,47 +533,47 @@ function MyComponent() {
513
533
 
514
534
  {/* Usage Examples */}
515
535
  <div className="!space-y-8">
516
- <h2 className="text-center text-3xl font-bold !text-white">
536
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
517
537
  Usage Examples
518
538
  </h2>
519
539
 
520
540
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
521
541
  {/* Media Player */}
522
542
  <div className="!space-y-4">
523
- <h3 className="text-lg font-semibold !text-purple-300">
543
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
524
544
  Media Player
525
545
  </h3>
526
546
  <div className="!space-y-4">
527
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
547
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
528
548
  <div className="mb-4 flex items-center justify-between">
529
- <h4 className="text-sm font-medium !text-white">
549
+ <h4 className="text-fm-icon-active! text-sm font-medium">
530
550
  Video Player
531
551
  </h4>
532
- <button className="rounded-lg p-2 text-purple-400 transition-colors hover:bg-purple-500/20">
552
+ <button className="text-fm-secondary-600 hover:bg-fm-secondary-500/20 rounded-lg p-2 transition-colors">
533
553
  <VideoPlaylistIcon className="h-4 w-4" />
534
554
  </button>
535
555
  </div>
536
- <div className="mb-3 flex aspect-video items-center justify-center rounded-lg bg-black/60">
556
+ <div className="bg-fm-surface-secondary mb-3 flex aspect-video items-center justify-center rounded-lg">
537
557
  <div className="text-center">
538
- <div className="mb-2 flex h-16 w-16 items-center justify-center rounded-full bg-white/10">
558
+ <div className="bg-fm-surface-secondary mb-2 flex h-16 w-16 items-center justify-center rounded-full">
539
559
  <span className="text-2xl">▶️</span>
540
560
  </div>
541
- <p className="text-sm text-white/60">
561
+ <p className="text-fm-tertiary text-sm">
542
562
  Click to play
543
563
  </p>
544
564
  </div>
545
565
  </div>
546
566
  <div className="flex items-center gap-3">
547
- <span className="text-xs text-white/60">
567
+ <span className="text-fm-tertiary text-xs">
548
568
  0:00 / 10:25
549
569
  </span>
550
- <div className="h-1 flex-1 rounded bg-white/20">
551
- <div className="h-full w-1/4 rounded bg-purple-400"></div>
570
+ <div className="bg-fm-divider-primary h-1 flex-1 rounded">
571
+ <div className="bg-fm-secondary-500 h-full w-1/4 rounded"></div>
552
572
  </div>
553
573
  </div>
554
574
  </div>
555
- <div className="rounded-lg bg-black/40 p-4">
556
- <pre className="overflow-x-auto text-sm !text-green-300">
575
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
576
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
557
577
  {`// Media player with playlist button
558
578
  <div className="flex items-center justify-between">
559
579
  <h4>Video Player</h4>
@@ -568,37 +588,37 @@ function MyComponent() {
568
588
 
569
589
  {/* Course Library */}
570
590
  <div className="!space-y-4">
571
- <h3 className="text-lg font-semibold !text-purple-300">
591
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
572
592
  Course Library
573
593
  </h3>
574
594
  <div className="!space-y-4">
575
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
595
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
576
596
  <div className="mb-3 flex items-center gap-3">
577
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
578
- <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
597
+ <div className="bg-fm-secondary-500/20 flex h-12 w-12 items-center justify-center rounded-lg">
598
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
579
599
  </div>
580
600
  <div className="flex-1">
581
- <h4 className="text-sm font-medium !text-white">
601
+ <h4 className="text-fm-icon-active! text-sm font-medium">
582
602
  React Fundamentals
583
603
  </h4>
584
- <p className="text-xs !text-white/60">
604
+ <p className="text-fm-tertiary! text-xs">
585
605
  12 videos • 3.5 hours
586
606
  </p>
587
607
  </div>
588
- <span className="rounded bg-purple-500/20 px-2 py-1 text-xs text-purple-400">
608
+ <span className="bg-fm-secondary-500/20 text-fm-secondary-600 rounded px-2 py-1 text-xs">
589
609
  Course
590
610
  </span>
591
611
  </div>
592
- <div className="flex items-center gap-2 text-xs text-white/60">
612
+ <div className="text-fm-tertiary flex items-center gap-2 text-xs">
593
613
  <span>Progress:</span>
594
- <div className="h-1 flex-1 rounded bg-white/20">
595
- <div className="h-full w-2/3 rounded bg-purple-400"></div>
614
+ <div className="bg-fm-divider-primary h-1 flex-1 rounded">
615
+ <div className="bg-fm-secondary-500 h-full w-2/3 rounded"></div>
596
616
  </div>
597
617
  <span>67%</span>
598
618
  </div>
599
619
  </div>
600
- <div className="rounded-lg bg-black/40 p-4">
601
- <pre className="overflow-x-auto text-sm !text-green-300">
620
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
621
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
602
622
  {`// Course library item
603
623
  <div className="flex items-center gap-3">
604
624
  <div className="w-12 h-12 bg-purple-500/20 rounded-lg flex items-center justify-center">
@@ -616,34 +636,36 @@ function MyComponent() {
616
636
 
617
637
  {/* Video Collection */}
618
638
  <div className="!space-y-4">
619
- <h3 className="text-lg font-semibold !text-purple-300">
639
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
620
640
  Video Collection
621
641
  </h3>
622
642
  <div className="!space-y-4">
623
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
643
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
624
644
  <div className="grid grid-cols-1 gap-3 md:grid-cols-2">
625
- <div className="rounded border border-white/10 bg-black/30 p-3">
645
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
626
646
  <div className="mb-2 flex items-center gap-2">
627
- <VideoPlaylistIcon className="h-4 w-4 text-purple-400" />
628
- <span className="text-sm font-medium text-white">
647
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-4 w-4" />
648
+ <span className="text-fm-icon-active text-sm font-medium">
629
649
  My Favorites
630
650
  </span>
631
651
  </div>
632
- <p className="text-xs text-white/60">24 videos</p>
652
+ <p className="text-fm-tertiary text-xs">
653
+ 24 videos
654
+ </p>
633
655
  </div>
634
- <div className="rounded border border-white/10 bg-black/30 p-3">
656
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
635
657
  <div className="mb-2 flex items-center gap-2">
636
- <VideoPlaylistIcon className="h-4 w-4 text-indigo-400" />
637
- <span className="text-sm font-medium text-white">
658
+ <VideoPlaylistIcon className="text-fm-icon-info h-4 w-4" />
659
+ <span className="text-fm-icon-active text-sm font-medium">
638
660
  Watch Later
639
661
  </span>
640
662
  </div>
641
- <p className="text-xs text-white/60">8 videos</p>
663
+ <p className="text-fm-tertiary text-xs">8 videos</p>
642
664
  </div>
643
665
  </div>
644
666
  </div>
645
- <div className="rounded-lg bg-black/40 p-4">
646
- <pre className="overflow-x-auto text-sm !text-green-300">
667
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
668
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
647
669
  {`// Video collection grid
648
670
  <div className="flex items-center gap-2">
649
671
  <VideoPlaylistIcon className="h-4 w-4 text-purple-400" />
@@ -656,37 +678,37 @@ function MyComponent() {
656
678
 
657
679
  {/* Navigation Menu */}
658
680
  <div className="!space-y-4">
659
- <h3 className="text-lg font-semibold !text-purple-300">
681
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
660
682
  Navigation Menu
661
683
  </h3>
662
684
  <div className="!space-y-4">
663
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
685
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
664
686
  <nav className="space-y-1">
665
687
  <a
666
688
  href="#"
667
- className="flex items-center gap-3 rounded px-3 py-2 text-sm text-white hover:bg-white/10"
689
+ className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm"
668
690
  >
669
- <span className="text-blue-400">🏠</span>
691
+ <span className="text-fm-icon-info">🏠</span>
670
692
  <span>Home</span>
671
693
  </a>
672
694
  <a
673
695
  href="#"
674
- className="flex items-center gap-3 rounded bg-purple-500/10 px-3 py-2 text-sm text-purple-400"
696
+ className="bg-fm-secondary-500/10 text-fm-secondary-600 flex items-center gap-3 rounded px-3 py-2 text-sm"
675
697
  >
676
698
  <VideoPlaylistIcon className="h-4 w-4" />
677
699
  <span>Playlists</span>
678
700
  </a>
679
701
  <a
680
702
  href="#"
681
- className="flex items-center gap-3 rounded px-3 py-2 text-sm text-white hover:bg-white/10"
703
+ className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm"
682
704
  >
683
- <span className="text-green-400">📚</span>
705
+ <span className="text-fm-icon-positive">📚</span>
684
706
  <span>Library</span>
685
707
  </a>
686
708
  </nav>
687
709
  </div>
688
- <div className="rounded-lg bg-black/40 p-4">
689
- <pre className="overflow-x-auto text-sm !text-green-300">
710
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
711
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
690
712
  {`// Navigation with active state
691
713
  <a href="#" className="flex items-center gap-3 px-3 py-2 text-purple-400 bg-purple-500/10 rounded">
692
714
  <VideoPlaylistIcon className="h-4 w-4" />
@@ -701,64 +723,64 @@ function MyComponent() {
701
723
 
702
724
  {/* Accessibility */}
703
725
  <div className="!space-y-8">
704
- <h2 className="text-center text-3xl font-bold !text-white">
726
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
705
727
  Accessibility Features
706
728
  </h2>
707
729
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
708
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
709
- <h3 className="text-lg font-semibold !text-green-300">
730
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
731
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
710
732
  ✅ Built-in Features
711
733
  </h3>
712
- <ul className="!space-y-2 text-sm !text-white/70">
713
- <li className="!text-white/70">
734
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
735
+ <li className="text-fm-secondary!">
714
736
  Uses Radix UI AccessibleIcon wrapper
715
737
  </li>
716
- <li className="!text-white/70">
738
+ <li className="text-fm-secondary!">
717
739
  Provides screen reader label "Video playlist icon"
718
740
  </li>
719
- <li className="!text-white/70">
741
+ <li className="text-fm-secondary!">
720
742
  Supports keyboard navigation when interactive
721
743
  </li>
722
- <li className="!text-white/70">
744
+ <li className="text-fm-secondary!">
723
745
  Maintains proper color contrast ratios
724
746
  </li>
725
- <li className="!text-white/70">
747
+ <li className="text-fm-secondary!">
726
748
  Scales with user's font size preferences
727
749
  </li>
728
750
  </ul>
729
751
  </div>
730
752
 
731
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
732
- <h3 className="text-lg font-semibold !text-purple-300">
753
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
754
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
733
755
  💡 Best Practices
734
756
  </h3>
735
- <ul className="!space-y-2 text-sm text-white/70">
736
- <li className="!text-white/70">
757
+ <ul className="text-fm-secondary !space-y-2 text-sm">
758
+ <li className="text-fm-secondary!">
737
759
  Always pair with descriptive labels
738
760
  </li>
739
- <li className="!text-white/70">
761
+ <li className="text-fm-secondary!">
740
762
  Provide clear context for playlist content
741
763
  </li>
742
- <li className="!text-white/70">
764
+ <li className="text-fm-secondary!">
743
765
  Ensure sufficient color contrast
744
766
  </li>
745
- <li className="!text-white/70">
767
+ <li className="text-fm-secondary!">
746
768
  Add focus states for interactive elements
747
769
  </li>
748
- <li className="!text-white/70">
770
+ <li className="text-fm-secondary!">
749
771
  Consider providing video counts and duration
750
772
  </li>
751
773
  </ul>
752
774
  </div>
753
775
  </div>
754
776
 
755
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
756
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
777
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
778
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
757
779
  Custom Accessibility Label
758
780
  </h3>
759
781
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
760
- <div className="rounded-lg bg-black/40 p-4">
761
- <pre className="overflow-x-auto text-sm !text-blue-300">
782
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
783
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
762
784
  {`// Custom implementation with specific label
763
785
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
764
786
 
@@ -778,13 +800,13 @@ function CustomVideoPlaylistIcon({ label = "Playlist", ...props }) {
778
800
  </pre>
779
801
  </div>
780
802
  <div className="!space-y-4">
781
- <p className="text-sm !text-white/70">
803
+ <p className="text-fm-secondary! text-sm">
782
804
  For specific contexts, you can wrap the
783
805
  VideoPlaylistIcon with a custom AccessibleIcon component
784
806
  that provides more descriptive labels.
785
807
  </p>
786
- <div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
787
- <div className="flex items-center gap-2 text-sm text-purple-200">
808
+ <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
809
+ <div className="text-fm-secondary-600 flex items-center gap-2 text-sm">
788
810
  <VideoPlaylistIcon className="h-4 w-4" />
789
811
  <span>
790
812
  This approach gives screen readers more context
@@ -798,48 +820,60 @@ function CustomVideoPlaylistIcon({ label = "Playlist", ...props }) {
798
820
 
799
821
  {/* Related Icons */}
800
822
  <div className="!space-y-8">
801
- <h2 className="text-center text-3xl font-bold !text-white">
823
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
802
824
  Related Icons
803
825
  </h2>
804
826
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
805
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
806
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
827
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
828
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
807
829
  <span className="text-2xl">▶️</span>
808
830
  </div>
809
831
  <div>
810
- <div className="font-medium text-white">PlayIcon</div>
811
- <div className="text-xs text-white/60">
832
+ <div className="text-fm-icon-active font-medium">
833
+ PlayIcon
834
+ </div>
835
+ <div className="text-fm-tertiary text-xs">
812
836
  Video playback
813
837
  </div>
814
838
  </div>
815
839
  </div>
816
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
817
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
818
- <span className="!text-2xl !text-white">⏸️</span>
840
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
841
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
842
+ <span className="text-fm-icon-active! !text-2xl">⏸️</span>
819
843
  </div>
820
844
  <div>
821
- <div className="font-medium text-white">PauseIcon</div>
822
- <div className="text-xs text-white/60">
845
+ <div className="text-fm-icon-active font-medium">
846
+ PauseIcon
847
+ </div>
848
+ <div className="text-fm-tertiary text-xs">
823
849
  Pause playback
824
850
  </div>
825
851
  </div>
826
852
  </div>
827
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
828
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
853
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
854
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
829
855
  <span className="text-2xl">📹</span>
830
856
  </div>
831
857
  <div>
832
- <div className="font-medium text-white">VideoIcon</div>
833
- <div className="text-xs text-white/60">Video content</div>
858
+ <div className="text-fm-icon-active font-medium">
859
+ VideoIcon
860
+ </div>
861
+ <div className="text-fm-tertiary text-xs">
862
+ Video content
863
+ </div>
834
864
  </div>
835
865
  </div>
836
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
837
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
866
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
867
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
838
868
  <span className="text-2xl">📚</span>
839
869
  </div>
840
870
  <div>
841
- <div className="font-medium text-white">LibraryIcon</div>
842
- <div className="text-xs text-white/60">Media library</div>
871
+ <div className="text-fm-icon-active font-medium">
872
+ LibraryIcon
873
+ </div>
874
+ <div className="text-fm-tertiary text-xs">
875
+ Media library
876
+ </div>
843
877
  </div>
844
878
  </div>
845
879
  </div>
@@ -847,14 +881,14 @@ function CustomVideoPlaylistIcon({ label = "Playlist", ...props }) {
847
881
  </div>
848
882
 
849
883
  {/* Footer */}
850
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
884
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
851
885
  <div className="!mx-auto max-w-7xl px-6 py-8">
852
886
  <div className="!space-y-4 text-center">
853
- <p className="!text-white/60">
887
+ <p className="text-fm-tertiary!">
854
888
  VideoPlaylistIcon is part of the Aural UI icon library,
855
889
  built with accessibility and consistency in mind.
856
890
  </p>
857
- <p className="text-sm !text-white/40">
891
+ <p className="text-fm-placeholder! text-sm">
858
892
  All icons use Radix UI's AccessibleIcon for screen reader
859
893
  compatibility and follow WCAG guidelines.
860
894
  </p>
@@ -899,8 +933,8 @@ const storyParameters = {
899
933
  backgrounds: {
900
934
  default: "dark",
901
935
  values: [
902
- { name: "dark", value: "#0a0a0a" },
903
- { name: "darker", value: "#000000" },
936
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
937
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
904
938
  ],
905
939
  },
906
940
  }
@@ -909,12 +943,12 @@ export const Default: Story = {
909
943
  args: {
910
944
  width: 20,
911
945
  height: 20,
912
- className: "text-purple-400",
946
+ className: "text-fm-secondary-600",
913
947
  withAccessibility: true,
914
948
  },
915
949
  parameters: storyParameters,
916
950
  render: (args) => (
917
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
951
+ <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">
918
952
  <VideoPlaylistIcon {...args} />
919
953
  </div>
920
954
  ),
@@ -931,30 +965,30 @@ export const SizeVariations: Story = {
931
965
  },
932
966
  },
933
967
  render: () => (
934
- <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">
968
+ <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">
935
969
  <div className="text-center">
936
- <VideoPlaylistIcon className="!mx-auto mb-2 h-3 w-3 text-purple-400" />
937
- <span className="text-xs text-white/60">12px</span>
970
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
971
+ <span className="text-fm-tertiary text-xs">12px</span>
938
972
  </div>
939
973
  <div className="text-center">
940
- <VideoPlaylistIcon className="!mx-auto mb-2 h-4 w-4 text-purple-400" />
941
- <span className="text-xs text-white/60">16px</span>
974
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
975
+ <span className="text-fm-tertiary text-xs">16px</span>
942
976
  </div>
943
977
  <div className="text-center">
944
- <VideoPlaylistIcon className="!mx-auto mb-2 h-5 w-5 text-purple-400" />
945
- <span className="text-xs text-white/60">20px</span>
978
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
979
+ <span className="text-fm-tertiary text-xs">20px</span>
946
980
  </div>
947
981
  <div className="text-center">
948
- <VideoPlaylistIcon className="!mx-auto mb-2 h-6 w-6 text-purple-400" />
949
- <span className="text-xs text-white/60">24px</span>
982
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
983
+ <span className="text-fm-tertiary text-xs">24px</span>
950
984
  </div>
951
985
  <div className="text-center">
952
- <VideoPlaylistIcon className="!mx-auto mb-2 h-8 w-8 text-purple-400" />
953
- <span className="text-xs text-white/60">32px</span>
986
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
987
+ <span className="text-fm-tertiary text-xs">32px</span>
954
988
  </div>
955
989
  <div className="text-center">
956
- <VideoPlaylistIcon className="!mx-auto mb-2 h-12 w-12 text-purple-400" />
957
- <span className="text-xs text-white/60">48px</span>
990
+ <VideoPlaylistIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
991
+ <span className="text-fm-tertiary text-xs">48px</span>
958
992
  </div>
959
993
  </div>
960
994
  ),
@@ -971,34 +1005,38 @@ export const ColorVariations: Story = {
971
1005
  },
972
1006
  },
973
1007
  render: () => (
974
- <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">
1008
+ <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">
975
1009
  <div className="text-center">
976
- <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">
977
- <VideoPlaylistIcon className="h-8 w-8 text-purple-400" />
1010
+ <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">
1011
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-8 w-8" />
1012
+ </div>
1013
+ <div className="text-fm-icon-active text-sm font-medium">Media</div>
1014
+ <div className="text-fm-secondary-600 text-xs">
1015
+ text-fm-secondary-600
978
1016
  </div>
979
- <div className="text-sm font-medium text-white">Media</div>
980
- <div className="text-xs text-purple-400">text-purple-400</div>
981
1017
  </div>
982
1018
  <div className="text-center">
983
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-indigo-500/30 bg-indigo-500/20">
984
- <VideoPlaylistIcon className="h-8 w-8 text-indigo-400" />
1019
+ <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">
1020
+ <VideoPlaylistIcon className="text-fm-icon-info h-8 w-8" />
985
1021
  </div>
986
- <div className="text-sm font-medium text-white">Learning</div>
987
- <div className="text-xs text-indigo-400">text-indigo-400</div>
1022
+ <div className="text-fm-icon-active text-sm font-medium">Learning</div>
1023
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
988
1024
  </div>
989
1025
  <div className="text-center">
990
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-violet-500/30 bg-violet-500/20">
991
- <VideoPlaylistIcon className="h-8 w-8 text-violet-400" />
1026
+ <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">
1027
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-8 w-8" />
1028
+ </div>
1029
+ <div className="text-fm-icon-active text-sm font-medium">Creative</div>
1030
+ <div className="text-fm-secondary-600 text-xs">
1031
+ text-fm-secondary-600
992
1032
  </div>
993
- <div className="text-sm font-medium text-white">Creative</div>
994
- <div className="text-xs text-violet-400">text-violet-400</div>
995
1033
  </div>
996
1034
  <div className="text-center">
997
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/20 bg-white/5">
998
- <VideoPlaylistIcon className="h-8 w-8 text-white/40" />
1035
+ <div className="border-fm-divider-primary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1036
+ <VideoPlaylistIcon className="text-fm-placeholder h-8 w-8" />
999
1037
  </div>
1000
- <div className="text-sm font-medium text-white">Disabled</div>
1001
- <div className="text-xs text-white/40">text-white/40</div>
1038
+ <div className="text-fm-icon-active text-sm font-medium">Disabled</div>
1039
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
1002
1040
  </div>
1003
1041
  </div>
1004
1042
  ),
@@ -1015,23 +1053,27 @@ export const UsageExamples: Story = {
1015
1053
  },
1016
1054
  },
1017
1055
  render: () => (
1018
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1056
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1019
1057
  {/* Media Player */}
1020
1058
  <div className="!space-y-2">
1021
- <h3 className="text-sm font-medium text-white">Media Player</h3>
1022
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1059
+ <h3 className="text-fm-icon-active text-sm font-medium">
1060
+ Media Player
1061
+ </h3>
1062
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1023
1063
  <div className="mb-4 flex items-center justify-between">
1024
- <h4 className="text-sm font-medium !text-white">Video Player</h4>
1025
- <button className="rounded-lg p-2 text-purple-400 transition-colors hover:bg-purple-500/20">
1064
+ <h4 className="text-fm-icon-active! text-sm font-medium">
1065
+ Video Player
1066
+ </h4>
1067
+ <button className="text-fm-secondary-600 hover:bg-fm-secondary-500/20 rounded-lg p-2 transition-colors">
1026
1068
  <VideoPlaylistIcon className="h-4 w-4" />
1027
1069
  </button>
1028
1070
  </div>
1029
- <div className="mb-3 flex aspect-video items-center justify-center rounded-lg bg-black/60">
1071
+ <div className="bg-fm-surface-secondary mb-3 flex aspect-video items-center justify-center rounded-lg">
1030
1072
  <div className="text-center">
1031
- <div className="mb-2 flex h-16 w-16 items-center justify-center rounded-full bg-white/10">
1073
+ <div className="bg-fm-surface-secondary mb-2 flex h-16 w-16 items-center justify-center rounded-full">
1032
1074
  <span className="text-2xl">▶️</span>
1033
1075
  </div>
1034
- <p className="text-sm text-white/60">Click to play</p>
1076
+ <p className="text-fm-tertiary text-sm">Click to play</p>
1035
1077
  </div>
1036
1078
  </div>
1037
1079
  </div>
@@ -1039,19 +1081,21 @@ export const UsageExamples: Story = {
1039
1081
 
1040
1082
  {/* Course Library */}
1041
1083
  <div className="!space-y-2">
1042
- <h3 className="text-sm font-medium text-white">Course Library</h3>
1043
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1084
+ <h3 className="text-fm-icon-active text-sm font-medium">
1085
+ Course Library
1086
+ </h3>
1087
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1044
1088
  <div className="mb-3 flex items-center gap-3">
1045
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
1046
- <VideoPlaylistIcon className="h-6 w-6 text-purple-400" />
1089
+ <div className="bg-fm-secondary-500/20 flex h-12 w-12 items-center justify-center rounded-lg">
1090
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-6 w-6" />
1047
1091
  </div>
1048
1092
  <div className="flex-1">
1049
- <h4 className="text-sm font-medium !text-white">
1093
+ <h4 className="text-fm-icon-active! text-sm font-medium">
1050
1094
  React Fundamentals
1051
1095
  </h4>
1052
- <p className="text-xs !text-white/60">12 videos • 3.5 hours</p>
1096
+ <p className="text-fm-tertiary! text-xs">12 videos • 3.5 hours</p>
1053
1097
  </div>
1054
- <span className="rounded bg-purple-500/20 px-2 py-1 text-xs text-purple-400">
1098
+ <span className="bg-fm-secondary-500/20 text-fm-secondary-600 rounded px-2 py-1 text-xs">
1055
1099
  Course
1056
1100
  </span>
1057
1101
  </div>
@@ -1060,26 +1104,28 @@ export const UsageExamples: Story = {
1060
1104
 
1061
1105
  {/* Video Collection */}
1062
1106
  <div className="!space-y-2">
1063
- <h3 className="text-sm font-medium text-white">Video Collection</h3>
1064
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1107
+ <h3 className="text-fm-icon-active text-sm font-medium">
1108
+ Video Collection
1109
+ </h3>
1110
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1065
1111
  <div className="grid grid-cols-1 gap-3 md:grid-cols-2">
1066
- <div className="rounded border border-white/10 bg-black/30 p-3">
1112
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
1067
1113
  <div className="mb-2 flex items-center gap-2">
1068
- <VideoPlaylistIcon className="h-4 w-4 text-purple-400" />
1069
- <span className="text-sm font-medium text-white">
1114
+ <VideoPlaylistIcon className="text-fm-secondary-600 h-4 w-4" />
1115
+ <span className="text-fm-icon-active text-sm font-medium">
1070
1116
  My Favorites
1071
1117
  </span>
1072
1118
  </div>
1073
- <p className="text-xs text-white/60">24 videos</p>
1119
+ <p className="text-fm-tertiary text-xs">24 videos</p>
1074
1120
  </div>
1075
- <div className="rounded border border-white/10 bg-black/30 p-3">
1121
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
1076
1122
  <div className="mb-2 flex items-center gap-2">
1077
- <VideoPlaylistIcon className="h-4 w-4 text-indigo-400" />
1078
- <span className="text-sm font-medium text-white">
1123
+ <VideoPlaylistIcon className="text-fm-icon-info h-4 w-4" />
1124
+ <span className="text-fm-icon-active text-sm font-medium">
1079
1125
  Watch Later
1080
1126
  </span>
1081
1127
  </div>
1082
- <p className="text-xs text-white/60">8 videos</p>
1128
+ <p className="text-fm-tertiary text-xs">8 videos</p>
1083
1129
  </div>
1084
1130
  </div>
1085
1131
  </div>
@@ -1101,11 +1147,11 @@ export const Playground: Story = {
1101
1147
  args: {
1102
1148
  width: 32,
1103
1149
  height: 32,
1104
- className: "text-purple-400",
1150
+ className: "text-fm-secondary-600",
1105
1151
  },
1106
1152
  render: (args) => (
1107
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1108
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1153
+ <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">
1154
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1109
1155
  <VideoPlaylistIcon {...args} />
1110
1156
  </div>
1111
1157
  </div>