aural-ui 3.0.6 → 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 (169) 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/clamp-lines/ClampLines.stories.tsx +25 -0
  9. package/dist/components/clamp-lines/index.tsx +6 -1
  10. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  11. package/dist/components/command/Command.stories.tsx +52 -38
  12. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  13. package/dist/components/divider/Divider.stories.tsx +86 -60
  14. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  15. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  16. package/dist/components/drawer/index.tsx +3 -3
  17. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  18. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  19. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  20. package/dist/components/input/Input.stories.tsx +2 -2
  21. package/dist/components/input/index.tsx +2 -0
  22. package/dist/components/label/Label.stories.tsx +10 -10
  23. package/dist/components/list/List.stories.tsx +58 -44
  24. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  25. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  26. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  27. package/dist/components/overlay/index.tsx +4 -4
  28. package/dist/components/popover/Popover.stories.tsx +132 -106
  29. package/dist/components/radio/Radio.stories.tsx +2 -2
  30. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  31. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  32. package/dist/components/search/Search.stories.tsx +81 -59
  33. package/dist/components/select/Select.stories.tsx +3 -1
  34. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  35. package/dist/components/slider/Slider.stories.tsx +71 -47
  36. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  37. package/dist/components/switch/Switch.stories.tsx +12 -12
  38. package/dist/components/table/Table.stories.tsx +8 -6
  39. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  40. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  41. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  42. package/dist/components/toast/Toast.stories.tsx +51 -45
  43. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  44. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  45. package/dist/icons/Icons.stories.tsx +2 -2
  46. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  47. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  48. package/dist/icons/all-icons.tsx +97 -81
  49. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  50. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  51. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  52. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  53. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  54. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  55. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  56. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  57. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  58. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  59. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  60. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  61. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  62. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  63. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  64. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  65. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  66. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  67. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  68. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  69. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  70. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  71. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  72. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  73. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  74. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  75. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  76. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  77. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  78. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  79. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  80. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  81. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  82. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  83. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  84. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  85. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  86. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  87. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  88. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  89. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  90. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  91. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  92. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  93. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  94. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  95. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  96. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  97. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  98. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  99. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  100. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  101. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  102. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  103. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  104. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  105. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  106. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  107. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  108. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  109. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  110. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  111. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  112. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  113. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  114. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  115. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  116. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  117. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  118. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  119. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  120. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  121. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  122. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  123. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  124. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  125. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  126. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  127. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  128. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  129. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  130. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  131. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  132. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  133. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  134. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  135. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  136. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  137. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  138. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  139. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  140. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  141. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  142. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  143. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  144. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  145. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  146. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  147. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  148. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  149. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  150. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  151. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  152. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  153. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  154. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  155. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  156. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  157. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  158. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  159. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  160. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  161. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  162. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  163. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  164. package/dist/index.cjs +84 -84
  165. package/dist/index.js +84 -84
  166. package/dist/styles/aural-all-theme.css +1222 -0
  167. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  168. package/dist/styles/aural-light-theme.css +1047 -0
  169. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof YoutubeIcon> = {
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 YoutubeIcon> = {
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-red-900/20 to-gray-900">
83
+ <div className="from-fm-surface-primary via-fm-icon-negative/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-red-500/10 via-white/5 to-red-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-negative/10 to-fm-icon-negative/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-red-500/30 bg-gradient-to-br from-red-500/20 to-red-600/20">
90
- <YoutubeIcon className="h-12 w-12 text-red-400" />
89
+ <div className="border-fm-icon-negative/30 from-fm-icon-negative/20 to-fm-icon-negative/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <YoutubeIcon className="text-fm-icon-negative h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  YoutubeIcon
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
  The iconic YouTube logo for video content, social media
97
97
  integration, and multimedia features. Built with
98
98
  accessibility in mind using Radix UI's AccessibleIcon
@@ -102,28 +102,28 @@ const meta: Meta<typeof YoutubeIcon> = {
102
102
  {/* Stats */}
103
103
  <div className="flex items-center justify-center gap-8 pt-8">
104
104
  <div className="text-center">
105
- <div className="text-3xl font-bold text-red-300">
105
+ <div className="text-fm-icon-negative text-3xl font-bold">
106
106
  Accessible
107
107
  </div>
108
- <div className="text-sm text-white/60">
108
+ <div className="text-fm-tertiary text-sm">
109
109
  Screen reader friendly
110
110
  </div>
111
111
  </div>
112
- <div className="h-8 w-px bg-white/20" />
112
+ <div className="bg-fm-divider-primary h-8 w-px" />
113
113
  <div className="text-center">
114
- <div className="text-3xl font-bold text-white">
114
+ <div className="text-fm-icon-active text-3xl font-bold">
115
115
  Scalable
116
116
  </div>
117
- <div className="text-sm text-white/60">
117
+ <div className="text-fm-tertiary text-sm">
118
118
  Any size needed
119
119
  </div>
120
120
  </div>
121
- <div className="h-8 w-px bg-white/20" />
121
+ <div className="bg-fm-divider-primary h-8 w-px" />
122
122
  <div className="text-center">
123
- <div className="text-3xl font-bold text-purple-300">
123
+ <div className="text-fm-secondary-600 text-3xl font-bold">
124
124
  Flexible
125
125
  </div>
126
- <div className="text-sm text-white/60">
126
+ <div className="text-fm-tertiary text-sm">
127
127
  Customizable styling
128
128
  </div>
129
129
  </div>
@@ -136,16 +136,16 @@ const meta: Meta<typeof YoutubeIcon> = {
136
136
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
137
  {/* Quick Usage */}
138
138
  <div className="!space-y-8">
139
- <h2 className="text-center text-3xl font-bold !text-white">
139
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
140
140
  Quick Start
141
141
  </h2>
142
142
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
143
  <div className="!space-y-4">
144
- <h3 className="text-xl font-semibold !text-red-300">
144
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
145
145
  Basic Usage
146
146
  </h3>
147
- <div className="rounded-lg bg-black/40 p-4">
148
- <pre className="overflow-x-auto text-sm !text-green-300">
147
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
148
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
149
149
  {`import { YoutubeIcon } from "@icons/youtube-icon"
150
150
 
151
151
  function VideoCard() {
@@ -161,13 +161,15 @@ function VideoCard() {
161
161
  </div>
162
162
 
163
163
  <div className="!space-y-4">
164
- <h3 className="text-xl font-semibold !text-red-300">
164
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
165
165
  Live Preview
166
166
  </h3>
167
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
168
- <button className="flex items-center gap-3 rounded-lg border border-red-500/20 bg-red-500/10 px-4 py-2 transition-colors hover:bg-red-500/20">
169
- <YoutubeIcon className="h-5 w-5 text-red-400" />
170
- <span className="text-white">Watch on YouTube</span>
167
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
168
+ <button className="border-fm-icon-negative/20 bg-fm-icon-negative/10 hover:bg-fm-icon-negative/20 flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
169
+ <YoutubeIcon className="text-fm-icon-negative h-5 w-5" />
170
+ <span className="text-fm-icon-active">
171
+ Watch on YouTube
172
+ </span>
171
173
  </button>
172
174
  </div>
173
175
  </div>
@@ -176,94 +178,102 @@ function VideoCard() {
176
178
 
177
179
  {/* Props Documentation */}
178
180
  <div className="!space-y-8">
179
- <h2 className="text-center text-3xl font-bold !text-white">
181
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
180
182
  Props & Configuration
181
183
  </h2>
182
184
 
183
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
184
- <div className="bg-white/5 p-4">
185
- <h3 className="text-xl font-semibold !text-white">Props</h3>
185
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
186
+ <div className="bg-fm-surface-secondary p-4">
187
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
188
+ Props
189
+ </h3>
186
190
  </div>
187
191
  <table className="!my-0 w-full">
188
- <thead className="bg-white/5">
189
- <tr className="border-b border-white/10">
190
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
192
+ <thead className="bg-fm-surface-secondary">
193
+ <tr className="border-fm-divider-secondary border-b">
194
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
191
195
  Prop
192
196
  </th>
193
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
197
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
194
198
  Type
195
199
  </th>
196
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
197
201
  Default
198
202
  </th>
199
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
203
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
200
204
  Description
201
205
  </th>
202
206
  </tr>
203
207
  </thead>
204
208
  <tbody>
205
209
  {" "}
206
- <tr className="!bg-black/10">
207
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
210
+ <tr className="bg-fm-surface-secondary!">
211
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
208
212
  withAccessibility
209
213
  </td>
210
- <td className="px-6 py-4 text-sm !text-white/70">
214
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
211
215
  boolean
212
216
  </td>
213
- <td className="px-6 py-4 text-sm !text-white/50">
217
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
214
218
  true
215
219
  </td>
216
- <td className="px-6 py-4 text-sm !text-white/70">
220
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
217
221
  Whether to wrap the icon with accessibility feature
218
222
  </td>
219
223
  </tr>
220
- <tr className="border-b border-white/5 !bg-black/10">
221
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
224
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
225
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
222
226
  height
223
227
  </td>
224
- <td className="px-6 py-4 text-sm !text-white/70">
228
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
225
229
  number | string
226
230
  </td>
227
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
228
- <td className="px-6 py-4 text-sm !text-white/70">
231
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
232
+ 24
233
+ </td>
234
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
229
235
  Height of the icon in pixels
230
236
  </td>
231
237
  </tr>
232
- <tr className="border-b border-white/5">
233
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
238
+ <tr className="border-fm-divider-tertiary border-b">
239
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
234
240
  fill
235
241
  </td>
236
- <td className="px-6 py-4 text-sm !text-white/70">
242
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
237
243
  string
238
244
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/50">
245
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
240
246
  currentColor
241
247
  </td>
242
- <td className="px-6 py-4 text-sm !text-white/70">
248
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
243
249
  Fill color of the icon
244
250
  </td>
245
251
  </tr>
246
- <tr className="border-b border-white/5 !bg-black/10">
247
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
252
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
253
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
248
254
  className
249
255
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/70">
256
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
251
257
  string
252
258
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
254
- <td className="px-6 py-4 text-sm !text-white/70">
259
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
260
+ -
261
+ </td>
262
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
255
263
  CSS classes for styling
256
264
  </td>
257
265
  </tr>
258
- <tr className="!bg-black/10">
259
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
266
+ <tr className="bg-fm-surface-secondary!">
267
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
260
268
  ...svgProps
261
269
  </td>
262
- <td className="px-6 py-4 text-sm !text-white/70">
270
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
263
271
  SVGProps
264
272
  </td>
265
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
266
- <td className="px-6 py-4 text-sm !text-white/70">
273
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
274
+ -
275
+ </td>
276
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
267
277
  All standard SVG element props
268
278
  </td>
269
279
  </tr>
@@ -274,50 +284,62 @@ function VideoCard() {
274
284
 
275
285
  {/* Size Variations */}
276
286
  <div className="!space-y-8">
277
- <h2 className="text-center text-3xl font-bold !text-white">
287
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
278
288
  Size Variations
279
289
  </h2>
280
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
290
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
281
291
  <div className="!space-y-6">
282
292
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
283
293
  <div className="!space-y-4">
284
- <h3 className="text-lg font-semibold !text-red-300">
294
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
285
295
  Standard Sizes
286
296
  </h3>
287
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
297
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
288
298
  <div className="text-center">
289
- <YoutubeIcon className="!mx-auto mb-2 h-3 w-3 text-red-400" />
290
- <span className="text-xs text-white/60">12px</span>
299
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
300
+ <span className="text-fm-tertiary text-xs">
301
+ 12px
302
+ </span>
291
303
  </div>
292
304
  <div className="text-center">
293
- <YoutubeIcon className="!mx-auto mb-2 h-4 w-4 text-red-400" />
294
- <span className="text-xs text-white/60">16px</span>
305
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
306
+ <span className="text-fm-tertiary text-xs">
307
+ 16px
308
+ </span>
295
309
  </div>
296
310
  <div className="text-center">
297
- <YoutubeIcon className="!mx-auto mb-2 h-5 w-5 text-red-400" />
298
- <span className="text-xs text-white/60">20px</span>
311
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
312
+ <span className="text-fm-tertiary text-xs">
313
+ 20px
314
+ </span>
299
315
  </div>
300
316
  <div className="text-center">
301
- <YoutubeIcon className="!mx-auto mb-2 h-6 w-6 text-red-400" />
302
- <span className="text-xs text-white/60">24px</span>
317
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
318
+ <span className="text-fm-tertiary text-xs">
319
+ 24px
320
+ </span>
303
321
  </div>
304
322
  <div className="text-center">
305
- <YoutubeIcon className="!mx-auto mb-2 h-8 w-8 text-red-400" />
306
- <span className="text-xs text-white/60">32px</span>
323
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
324
+ <span className="text-fm-tertiary text-xs">
325
+ 32px
326
+ </span>
307
327
  </div>
308
328
  <div className="text-center">
309
- <YoutubeIcon className="!mx-auto mb-2 h-12 w-12 text-red-400" />
310
- <span className="text-xs text-white/60">48px</span>
329
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
330
+ <span className="text-fm-tertiary text-xs">
331
+ 48px
332
+ </span>
311
333
  </div>
312
334
  </div>
313
335
  </div>
314
336
 
315
337
  <div className="!space-y-4">
316
- <h3 className="text-lg font-semibold !text-red-300">
338
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
317
339
  Code Example
318
340
  </h3>
319
- <div className="rounded-lg bg-black/40 p-4">
320
- <pre className="overflow-x-auto text-sm !text-blue-300">
341
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
342
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
321
343
  {`// Small (16px)
322
344
  <YoutubeIcon className="h-4 w-4" />
323
345
 
@@ -339,56 +361,56 @@ function VideoCard() {
339
361
 
340
362
  {/* Color Variations */}
341
363
  <div className="!space-y-8">
342
- <h2 className="text-center text-3xl font-bold !text-white">
364
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
343
365
  Color Variations
344
366
  </h2>
345
367
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
346
368
  <div className="!space-y-4">
347
- <h3 className="text-lg font-semibold !text-red-300">
369
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
348
370
  Brand Colors
349
371
  </h3>
350
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
372
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
351
373
  <div className="flex items-center gap-4">
352
- <YoutubeIcon className="h-6 w-6 text-red-500" />
374
+ <YoutubeIcon className="text-fm-icon-negative h-6 w-6" />
353
375
  <div>
354
- <div className="text-sm font-medium text-white">
376
+ <div className="text-fm-icon-active text-sm font-medium">
355
377
  YouTube Red
356
378
  </div>
357
- <div className="text-xs text-white/60">
358
- text-red-500
379
+ <div className="text-fm-tertiary text-xs">
380
+ text-fm-icon-negative
359
381
  </div>
360
382
  </div>
361
383
  </div>
362
384
  <div className="flex items-center gap-4">
363
- <YoutubeIcon className="h-6 w-6 text-red-400" />
385
+ <YoutubeIcon className="text-fm-icon-negative h-6 w-6" />
364
386
  <div>
365
- <div className="text-sm font-medium text-white">
387
+ <div className="text-fm-icon-active text-sm font-medium">
366
388
  Light Red
367
389
  </div>
368
- <div className="text-xs text-white/60">
369
- text-red-400
390
+ <div className="text-fm-tertiary text-xs">
391
+ text-fm-icon-negative
370
392
  </div>
371
393
  </div>
372
394
  </div>
373
395
  <div className="flex items-center gap-4">
374
- <YoutubeIcon className="h-6 w-6 text-white" />
396
+ <YoutubeIcon className="text-fm-icon-active h-6 w-6" />
375
397
  <div>
376
- <div className="text-sm font-medium text-white">
398
+ <div className="text-fm-icon-active text-sm font-medium">
377
399
  White
378
400
  </div>
379
- <div className="text-xs text-white/60">
380
- text-white
401
+ <div className="text-fm-tertiary text-xs">
402
+ text-fm-icon-active
381
403
  </div>
382
404
  </div>
383
405
  </div>
384
406
  <div className="flex items-center gap-4">
385
- <YoutubeIcon className="h-6 w-6 text-gray-400" />
407
+ <YoutubeIcon className="text-fm-placeholder h-6 w-6" />
386
408
  <div>
387
- <div className="text-sm font-medium text-white">
409
+ <div className="text-fm-icon-active text-sm font-medium">
388
410
  Neutral
389
411
  </div>
390
- <div className="text-xs text-white/60">
391
- text-gray-400
412
+ <div className="text-fm-tertiary text-xs">
413
+ text-fm-placeholder
392
414
  </div>
393
415
  </div>
394
416
  </div>
@@ -396,11 +418,11 @@ function VideoCard() {
396
418
  </div>
397
419
 
398
420
  <div className="!space-y-4">
399
- <h3 className="text-lg font-semibold !text-red-300">
421
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
400
422
  Custom Colors
401
423
  </h3>
402
- <div className="rounded-lg bg-black/40 p-4">
403
- <pre className="overflow-x-auto text-sm !text-green-300">
424
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
425
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
404
426
  {`// Using Tailwind classes
405
427
  <YoutubeIcon className="h-6 w-6 text-red-500" />
406
428
  <YoutubeIcon className="h-6 w-6 text-white" />
@@ -425,29 +447,29 @@ function VideoCard() {
425
447
 
426
448
  {/* Usage Examples */}
427
449
  <div className="!space-y-8">
428
- <h2 className="text-center text-3xl font-bold !text-white">
450
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
429
451
  Usage Examples
430
452
  </h2>
431
453
 
432
454
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
433
455
  {/* Video Actions */}
434
456
  <div className="!space-y-4">
435
- <h3 className="text-lg font-semibold !text-red-300">
457
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
436
458
  Video Actions
437
459
  </h3>
438
460
  <div className="!space-y-4">
439
461
  <div className="flex gap-4">
440
- <button className="flex items-center gap-2 rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-200 transition-colors hover:bg-red-500/30">
462
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
441
463
  <YoutubeIcon className="h-4 w-4" />
442
464
  Watch on YouTube
443
465
  </button>
444
- <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-3 py-2 text-white transition-colors hover:bg-white/10">
466
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
445
467
  <YoutubeIcon className="h-4 w-4" />
446
468
  Share
447
469
  </button>
448
470
  </div>
449
- <div className="rounded-lg bg-black/40 p-4">
450
- <pre className="overflow-x-auto text-sm !text-green-300">
471
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
472
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
451
473
  {`// Primary YouTube button
452
474
  <button className="flex items-center gap-2 bg-red-500/20 border border-red-500/30 px-4 py-2 rounded-lg">
453
475
  <YoutubeIcon className="h-4 w-4" />
@@ -466,32 +488,32 @@ function VideoCard() {
466
488
 
467
489
  {/* Video Card */}
468
490
  <div className="!space-y-4">
469
- <h3 className="text-lg font-semibold !text-red-300">
491
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
470
492
  Video Card
471
493
  </h3>
472
494
  <div className="!space-y-4">
473
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
495
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
474
496
  <div className="flex items-center justify-between">
475
497
  <div className="flex items-center gap-3">
476
- <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-red-500/20">
477
- <YoutubeIcon className="h-5 w-5 text-red-400" />
498
+ <div className="bg-fm-icon-negative/20 flex h-10 w-10 items-center justify-center rounded-lg">
499
+ <YoutubeIcon className="text-fm-icon-negative h-5 w-5" />
478
500
  </div>
479
501
  <div>
480
- <div className="text-sm font-medium text-white">
502
+ <div className="text-fm-icon-active text-sm font-medium">
481
503
  Introduction to React
482
504
  </div>
483
- <div className="text-xs text-white/60">
505
+ <div className="text-fm-tertiary text-xs">
484
506
  15:30 • 2.5M views
485
507
  </div>
486
508
  </div>
487
509
  </div>
488
- <button className="rounded-lg p-2 text-gray-400 transition-colors hover:bg-red-500/20 hover:text-red-400">
510
+ <button className="text-fm-placeholder hover:bg-fm-icon-negative/20 hover:text-fm-icon-negative rounded-lg p-2 transition-colors">
489
511
  <YoutubeIcon className="h-4 w-4" />
490
512
  </button>
491
513
  </div>
492
514
  </div>
493
- <div className="rounded-lg bg-black/40 p-4">
494
- <pre className="overflow-x-auto text-sm !text-green-300">
515
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
516
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
495
517
  {`<div className="flex items-center justify-between">
496
518
  <div className="flex items-center gap-3">
497
519
  <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-red-500/20">
@@ -513,36 +535,36 @@ function VideoCard() {
513
535
 
514
536
  {/* Channel Subscribe */}
515
537
  <div className="!space-y-4">
516
- <h3 className="text-lg font-semibold !text-red-300">
538
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
517
539
  Channel Subscribe
518
540
  </h3>
519
541
  <div className="!space-y-4">
520
- <div className="rounded-lg border border-red-500/20 bg-red-500/5 p-6">
542
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/5 rounded-lg border p-6">
521
543
  <div className="flex items-start gap-4">
522
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
523
- <YoutubeIcon className="h-6 w-6 text-red-400" />
544
+ <div className="bg-fm-icon-negative/20 flex h-12 w-12 items-center justify-center rounded-lg">
545
+ <YoutubeIcon className="text-fm-icon-negative h-6 w-6" />
524
546
  </div>
525
547
  <div className="flex-1">
526
- <h4 className="mb-2 font-medium !text-white">
548
+ <h4 className="text-fm-icon-active! mb-2 font-medium">
527
549
  TechTalks Channel
528
550
  </h4>
529
- <p className="mb-4 text-sm !text-white/70">
551
+ <p className="text-fm-secondary! mb-4 text-sm">
530
552
  Subscribe for the latest tech tutorials and
531
553
  programming guides.
532
554
  </p>
533
555
  <div className="flex gap-3">
534
- <button className="rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-sm text-red-200">
556
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative rounded-lg border px-4 py-2 text-sm">
535
557
  Subscribe
536
558
  </button>
537
- <button className="rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-sm text-white">
559
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2 text-sm">
538
560
  Visit Channel
539
561
  </button>
540
562
  </div>
541
563
  </div>
542
564
  </div>
543
565
  </div>
544
- <div className="rounded-lg bg-black/40 p-4">
545
- <pre className="overflow-x-auto text-sm !text-green-300">
566
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
567
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
546
568
  {`<div className="border border-red-500/20 bg-red-500/5 p-6 rounded-lg">
547
569
  <div className="flex items-start gap-4">
548
570
  <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
@@ -564,29 +586,33 @@ function VideoCard() {
564
586
 
565
587
  {/* Social Links */}
566
588
  <div className="!space-y-4">
567
- <h3 className="text-lg font-semibold !text-red-300">
589
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
568
590
  Social Media Links
569
591
  </h3>
570
592
  <div className="!space-y-4">
571
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4">
572
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
573
- <YoutubeIcon className="h-4 w-4 text-red-400" />
574
- <span className="text-white">YouTube Channel</span>
575
- <span className="ml-auto text-xs text-white/60">
593
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
594
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
595
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
596
+ <span className="text-fm-icon-active">
597
+ YouTube Channel
598
+ </span>
599
+ <span className="text-fm-tertiary ml-auto text-xs">
576
600
  External
577
601
  </span>
578
602
  </div>
579
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
580
- <YoutubeIcon className="h-4 w-4 text-red-400" />
581
- <span className="text-white">Latest Videos</span>
603
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
604
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
605
+ <span className="text-fm-icon-active">
606
+ Latest Videos
607
+ </span>
582
608
  </div>
583
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
584
- <YoutubeIcon className="h-4 w-4 text-red-400" />
585
- <span className="text-white">Playlists</span>
609
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
610
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
611
+ <span className="text-fm-icon-active">Playlists</span>
586
612
  </div>
587
613
  </div>
588
- <div className="rounded-lg bg-black/40 p-4">
589
- <pre className="overflow-x-auto text-sm !text-green-300">
614
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
615
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
590
616
  {`// Social media navigation
591
617
  <div className="flex items-center gap-3 px-3 py-2 text-sm hover:bg-white/10 rounded">
592
618
  <YoutubeIcon className="h-4 w-4 text-red-400" />
@@ -602,64 +628,64 @@ function VideoCard() {
602
628
 
603
629
  {/* Accessibility */}
604
630
  <div className="!space-y-8">
605
- <h2 className="text-center text-3xl font-bold !text-white">
631
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
606
632
  Accessibility Features
607
633
  </h2>
608
634
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
609
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
610
- <h3 className="text-lg font-semibold !text-green-300">
635
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
636
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
611
637
  ✅ Built-in Features
612
638
  </h3>
613
- <ul className="!space-y-2 text-sm !text-white/70">
614
- <li className="!text-white/70">
639
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
640
+ <li className="text-fm-secondary!">
615
641
  Uses Radix UI AccessibleIcon wrapper
616
642
  </li>
617
- <li className="!text-white/70">
643
+ <li className="text-fm-secondary!">
618
644
  Provides screen reader label "Youtube icon"
619
645
  </li>
620
- <li className="!text-white/70">
646
+ <li className="text-fm-secondary!">
621
647
  Supports keyboard navigation when interactive
622
648
  </li>
623
- <li className="!text-white/70">
649
+ <li className="text-fm-secondary!">
624
650
  Maintains proper color contrast ratios
625
651
  </li>
626
- <li className="!text-white/70">
652
+ <li className="text-fm-secondary!">
627
653
  Scales with user's font size preferences
628
654
  </li>
629
655
  </ul>
630
656
  </div>
631
657
 
632
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
633
- <h3 className="text-lg font-semibold !text-red-300">
658
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
659
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
634
660
  💡 Best Practices
635
661
  </h3>
636
- <ul className="!space-y-2 text-sm text-white/70">
637
- <li className="!text-white/70">
662
+ <ul className="text-fm-secondary !space-y-2 text-sm">
663
+ <li className="text-fm-secondary!">
638
664
  Always pair with descriptive text for actions
639
665
  </li>
640
- <li className="!text-white/70">
666
+ <li className="text-fm-secondary!">
641
667
  Use YouTube's brand red for authenticity
642
668
  </li>
643
- <li className="!text-white/70">
669
+ <li className="text-fm-secondary!">
644
670
  Ensure sufficient color contrast on backgrounds
645
671
  </li>
646
- <li className="!text-white/70">
672
+ <li className="text-fm-secondary!">
647
673
  Add focus states for interactive elements
648
674
  </li>
649
- <li className="!text-white/70">
675
+ <li className="text-fm-secondary!">
650
676
  Follow YouTube's brand guidelines for usage
651
677
  </li>
652
678
  </ul>
653
679
  </div>
654
680
  </div>
655
681
 
656
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
657
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
682
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
683
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
658
684
  Custom Accessibility Label
659
685
  </h3>
660
686
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
661
- <div className="rounded-lg bg-black/40 p-4">
662
- <pre className="overflow-x-auto text-sm !text-blue-300">
687
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
688
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
663
689
  {`// Custom implementation with specific label
664
690
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
665
691
 
@@ -679,14 +705,14 @@ function CustomYoutubeIcon({ label = "YouTube", ...props }) {
679
705
  </pre>
680
706
  </div>
681
707
  <div className="!space-y-4">
682
- <p className="text-sm !text-white/70">
708
+ <p className="text-fm-secondary! text-sm">
683
709
  For specific contexts, you can wrap the YoutubeIcon with
684
710
  a custom AccessibleIcon component that provides more
685
711
  descriptive labels for video actions and platform
686
712
  navigation.
687
713
  </p>
688
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
689
- <div className="flex items-center gap-2 text-sm text-red-200">
714
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
715
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
690
716
  <YoutubeIcon className="h-4 w-4" />
691
717
  <span>
692
718
  This approach gives screen readers more context
@@ -700,46 +726,58 @@ function CustomYoutubeIcon({ label = "YouTube", ...props }) {
700
726
 
701
727
  {/* Related Icons */}
702
728
  <div className="!space-y-8">
703
- <h2 className="text-center text-3xl font-bold !text-white">
729
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
704
730
  Related Icons
705
731
  </h2>
706
732
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
707
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
708
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
733
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
734
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
709
735
  <span className="text-2xl">▶️</span>
710
736
  </div>
711
737
  <div>
712
- <div className="font-medium text-white">PlayIcon</div>
713
- <div className="text-xs text-white/60">
738
+ <div className="text-fm-icon-active font-medium">
739
+ PlayIcon
740
+ </div>
741
+ <div className="text-fm-tertiary text-xs">
714
742
  Video playback
715
743
  </div>
716
744
  </div>
717
745
  </div>
718
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
719
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
746
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
747
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
720
748
  <span className="text-2xl">🎥</span>
721
749
  </div>
722
750
  <div>
723
- <div className="font-medium text-white">VideoIcon</div>
724
- <div className="text-xs text-white/60">Video content</div>
751
+ <div className="text-fm-icon-active font-medium">
752
+ VideoIcon
753
+ </div>
754
+ <div className="text-fm-tertiary text-xs">
755
+ Video content
756
+ </div>
725
757
  </div>
726
758
  </div>
727
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
728
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
759
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
760
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
729
761
  <span className="text-2xl">🔗</span>
730
762
  </div>
731
763
  <div>
732
- <div className="font-medium text-white">ShareIcon</div>
733
- <div className="text-xs text-white/60">Share content</div>
764
+ <div className="text-fm-icon-active font-medium">
765
+ ShareIcon
766
+ </div>
767
+ <div className="text-fm-tertiary text-xs">
768
+ Share content
769
+ </div>
734
770
  </div>
735
771
  </div>
736
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
737
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
772
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
773
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
738
774
  <span className="text-2xl">📺</span>
739
775
  </div>
740
776
  <div>
741
- <div className="font-medium text-white">ChannelIcon</div>
742
- <div className="text-xs text-white/60">
777
+ <div className="text-fm-icon-active font-medium">
778
+ ChannelIcon
779
+ </div>
780
+ <div className="text-fm-tertiary text-xs">
743
781
  Channel content
744
782
  </div>
745
783
  </div>
@@ -749,14 +787,14 @@ function CustomYoutubeIcon({ label = "YouTube", ...props }) {
749
787
  </div>
750
788
 
751
789
  {/* Footer */}
752
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
790
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
753
791
  <div className="!mx-auto max-w-7xl px-6 py-8">
754
792
  <div className="!space-y-4 text-center">
755
- <p className="!text-white/60">
793
+ <p className="text-fm-tertiary!">
756
794
  YoutubeIcon is part of the Aural UI icon library, built with
757
795
  accessibility and brand consistency in mind.
758
796
  </p>
759
- <p className="text-sm !text-white/40">
797
+ <p className="text-fm-placeholder! text-sm">
760
798
  All icons use Radix UI's AccessibleIcon for screen reader
761
799
  compatibility and follow WCAG guidelines.
762
800
  </p>
@@ -801,8 +839,8 @@ const storyParameters = {
801
839
  backgrounds: {
802
840
  default: "dark",
803
841
  values: [
804
- { name: "dark", value: "#0a0a0a" },
805
- { name: "darker", value: "#000000" },
842
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
843
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
806
844
  ],
807
845
  },
808
846
  }
@@ -811,12 +849,12 @@ export const Default: Story = {
811
849
  args: {
812
850
  width: 24,
813
851
  height: 24,
814
- className: "text-red-500",
852
+ className: "text-fm-icon-negative",
815
853
  withAccessibility: true,
816
854
  },
817
855
  parameters: storyParameters,
818
856
  render: (args) => (
819
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
857
+ <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">
820
858
  <YoutubeIcon {...args} />
821
859
  </div>
822
860
  ),
@@ -833,30 +871,30 @@ export const SizeVariations: Story = {
833
871
  },
834
872
  },
835
873
  render: () => (
836
- <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">
874
+ <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">
837
875
  <div className="text-center">
838
- <YoutubeIcon className="!mx-auto mb-2 h-3 w-3 text-red-400" />
839
- <span className="text-xs text-white/60">12px</span>
876
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
877
+ <span className="text-fm-tertiary text-xs">12px</span>
840
878
  </div>
841
879
  <div className="text-center">
842
- <YoutubeIcon className="!mx-auto mb-2 h-4 w-4 text-red-400" />
843
- <span className="text-xs text-white/60">16px</span>
880
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
881
+ <span className="text-fm-tertiary text-xs">16px</span>
844
882
  </div>
845
883
  <div className="text-center">
846
- <YoutubeIcon className="!mx-auto mb-2 h-5 w-5 text-red-400" />
847
- <span className="text-xs text-white/60">20px</span>
884
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
885
+ <span className="text-fm-tertiary text-xs">20px</span>
848
886
  </div>
849
887
  <div className="text-center">
850
- <YoutubeIcon className="!mx-auto mb-2 h-6 w-6 text-red-400" />
851
- <span className="text-xs text-white/60">24px</span>
888
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
889
+ <span className="text-fm-tertiary text-xs">24px</span>
852
890
  </div>
853
891
  <div className="text-center">
854
- <YoutubeIcon className="!mx-auto mb-2 h-8 w-8 text-red-400" />
855
- <span className="text-xs text-white/60">32px</span>
892
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
893
+ <span className="text-fm-tertiary text-xs">32px</span>
856
894
  </div>
857
895
  <div className="text-center">
858
- <YoutubeIcon className="!mx-auto mb-2 h-12 w-12 text-red-400" />
859
- <span className="text-xs text-white/60">48px</span>
896
+ <YoutubeIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
897
+ <span className="text-fm-tertiary text-xs">48px</span>
860
898
  </div>
861
899
  </div>
862
900
  ),
@@ -873,34 +911,40 @@ export const ColorVariations: Story = {
873
911
  },
874
912
  },
875
913
  render: () => (
876
- <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">
914
+ <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">
877
915
  <div className="text-center">
878
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
879
- <YoutubeIcon className="h-8 w-8 text-red-500" />
916
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
917
+ <YoutubeIcon className="text-fm-icon-negative h-8 w-8" />
918
+ </div>
919
+ <div className="text-fm-icon-active text-sm font-medium">
920
+ YouTube Red
921
+ </div>
922
+ <div className="text-fm-icon-negative text-xs">
923
+ text-fm-icon-negative
880
924
  </div>
881
- <div className="text-sm font-medium text-white">YouTube Red</div>
882
- <div className="text-xs text-red-400">text-red-500</div>
883
925
  </div>
884
926
  <div className="text-center">
885
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-400/30 bg-red-400/20">
886
- <YoutubeIcon className="h-8 w-8 text-red-400" />
927
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
928
+ <YoutubeIcon className="text-fm-icon-negative h-8 w-8" />
929
+ </div>
930
+ <div className="text-fm-icon-active text-sm font-medium">Light Red</div>
931
+ <div className="text-fm-icon-negative text-xs">
932
+ text-fm-icon-negative
887
933
  </div>
888
- <div className="text-sm font-medium text-white">Light Red</div>
889
- <div className="text-xs text-red-400">text-red-400</div>
890
934
  </div>
891
935
  <div className="text-center">
892
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/30 bg-white/20">
893
- <YoutubeIcon className="h-8 w-8 text-white" />
936
+ <div className="border-fm-divider-primary bg-fm-divider-primary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
937
+ <YoutubeIcon className="text-fm-icon-active h-8 w-8" />
894
938
  </div>
895
- <div className="text-sm font-medium text-white">White</div>
896
- <div className="text-xs text-white/60">text-white</div>
939
+ <div className="text-fm-icon-active text-sm font-medium">White</div>
940
+ <div className="text-fm-tertiary text-xs">text-fm-icon-active</div>
897
941
  </div>
898
942
  <div className="text-center">
899
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
900
- <YoutubeIcon className="h-8 w-8 text-gray-400" />
943
+ <div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
944
+ <YoutubeIcon className="text-fm-placeholder h-8 w-8" />
901
945
  </div>
902
- <div className="text-sm font-medium text-white">Neutral</div>
903
- <div className="text-xs text-gray-400">text-gray-400</div>
946
+ <div className="text-fm-icon-active text-sm font-medium">Neutral</div>
947
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
904
948
  </div>
905
949
  </div>
906
950
  ),
@@ -917,16 +961,18 @@ export const UsageExamples: Story = {
917
961
  },
918
962
  },
919
963
  render: () => (
920
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
964
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
921
965
  {/* Video Actions */}
922
966
  <div className="!space-y-2">
923
- <h3 className="text-sm font-medium text-white">Video Actions</h3>
967
+ <h3 className="text-fm-icon-active text-sm font-medium">
968
+ Video Actions
969
+ </h3>
924
970
  <div className="flex gap-4">
925
- <button className="flex items-center gap-2 rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-200 transition-colors hover:bg-red-500/30">
971
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
926
972
  <YoutubeIcon className="h-4 w-4" />
927
973
  Watch on YouTube
928
974
  </button>
929
- <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-3 py-2 text-white transition-colors hover:bg-white/10">
975
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
930
976
  <YoutubeIcon className="h-4 w-4" />
931
977
  Share
932
978
  </button>
@@ -935,21 +981,23 @@ export const UsageExamples: Story = {
935
981
 
936
982
  {/* Video Card */}
937
983
  <div className="!space-y-2">
938
- <h3 className="text-sm font-medium text-white">Video Card</h3>
939
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
984
+ <h3 className="text-fm-icon-active text-sm font-medium">Video Card</h3>
985
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
940
986
  <div className="flex items-center justify-between">
941
987
  <div className="flex items-center gap-3">
942
- <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-red-500/20">
943
- <YoutubeIcon className="h-5 w-5 text-red-400" />
988
+ <div className="bg-fm-icon-negative/20 flex h-10 w-10 items-center justify-center rounded-lg">
989
+ <YoutubeIcon className="text-fm-icon-negative h-5 w-5" />
944
990
  </div>
945
991
  <div>
946
- <div className="text-sm font-medium text-white">
992
+ <div className="text-fm-icon-active text-sm font-medium">
947
993
  Introduction to React
948
994
  </div>
949
- <div className="text-xs text-white/60">15:30 • 2.5M views</div>
995
+ <div className="text-fm-tertiary text-xs">
996
+ 15:30 • 2.5M views
997
+ </div>
950
998
  </div>
951
999
  </div>
952
- <button className="rounded-lg p-2 text-gray-400 transition-colors hover:bg-red-500/20 hover:text-red-400">
1000
+ <button className="text-fm-placeholder hover:bg-fm-icon-negative/20 hover:text-fm-icon-negative rounded-lg p-2 transition-colors">
953
1001
  <YoutubeIcon className="h-4 w-4" />
954
1002
  </button>
955
1003
  </div>
@@ -958,20 +1006,22 @@ export const UsageExamples: Story = {
958
1006
 
959
1007
  {/* Social Links */}
960
1008
  <div className="!space-y-2">
961
- <h3 className="text-sm font-medium text-white">Social Media Links</h3>
962
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4">
963
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
964
- <YoutubeIcon className="h-4 w-4 text-red-400" />
965
- <span className="text-white">YouTube Channel</span>
966
- <span className="ml-auto text-xs text-white/60">External</span>
1009
+ <h3 className="text-fm-icon-active text-sm font-medium">
1010
+ Social Media Links
1011
+ </h3>
1012
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
1013
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
1014
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
1015
+ <span className="text-fm-icon-active">YouTube Channel</span>
1016
+ <span className="text-fm-tertiary ml-auto text-xs">External</span>
967
1017
  </div>
968
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
969
- <YoutubeIcon className="h-4 w-4 text-red-400" />
970
- <span className="text-white">Latest Videos</span>
1018
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
1019
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
1020
+ <span className="text-fm-icon-active">Latest Videos</span>
971
1021
  </div>
972
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm hover:bg-white/10">
973
- <YoutubeIcon className="h-4 w-4 text-red-400" />
974
- <span className="text-white">Playlists</span>
1022
+ <div className="hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
1023
+ <YoutubeIcon className="text-fm-icon-negative h-4 w-4" />
1024
+ <span className="text-fm-icon-active">Playlists</span>
975
1025
  </div>
976
1026
  </div>
977
1027
  </div>
@@ -992,11 +1042,11 @@ export const Playground: Story = {
992
1042
  args: {
993
1043
  width: 32,
994
1044
  height: 32,
995
- className: "text-red-500",
1045
+ className: "text-fm-icon-negative",
996
1046
  },
997
1047
  render: (args) => (
998
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
999
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1048
+ <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">
1049
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1000
1050
  <YoutubeIcon {...args} />
1001
1051
  </div>
1002
1052
  </div>