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 AlertIcon> = {
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 AlertIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-primary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-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-blue-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-orange-500/30 bg-gradient-to-br from-orange-500/20 to-red-500/20">
90
- <AlertIcon className="h-12 w-12 text-orange-400" />
89
+ <div className="border-fm-icon-warning/30 from-fm-icon-warning/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
+ <AlertIcon className="text-fm-icon-warning h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  AlertIcon
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 alert icon for warning states, notifications,
97
97
  and attention-grabbing elements. Built with accessibility in
98
98
  mind using Radix UI's AccessibleIcon wrapper.
@@ -101,28 +101,28 @@ const meta: Meta<typeof AlertIcon> = {
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-orange-300">
104
+ <div className="text-fm-icon-active 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-yellow-300">
113
+ <div className="text-fm-icon-active 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-red-300">
122
+ <div className="text-fm-icon-active 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 AlertIcon> = {
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-orange-300">
143
+ <h3 className="text-fm-icon-warning! 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 { AlertIcon } from "@icons/alert-icon"
149
149
 
150
150
  function MyComponent() {
@@ -160,13 +160,15 @@ function MyComponent() {
160
160
  </div>
161
161
 
162
162
  <div className="!space-y-4">
163
- <h3 className="text-xl font-semibold !text-orange-300">
163
+ <h3 className="text-fm-icon-warning! text-xl font-semibold">
164
164
  Live Preview
165
165
  </h3>
166
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
167
- <div className="flex items-center gap-3 rounded-lg border border-orange-500/20 bg-orange-500/10 px-4 py-2">
168
- <AlertIcon className="h-5 w-5 text-orange-400" />
169
- <span className="text-white">Warning message</span>
166
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
167
+ <div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 flex items-center gap-3 rounded-lg border px-4 py-2">
168
+ <AlertIcon className="text-fm-icon-warning h-5 w-5" />
169
+ <span className="text-fm-icon-active">
170
+ Warning message
171
+ </span>
170
172
  </div>
171
173
  </div>
172
174
  </div>
@@ -175,108 +177,116 @@ function MyComponent() {
175
177
 
176
178
  {/* Props Documentation */}
177
179
  <div className="!space-y-8">
178
- <h2 className="text-center text-3xl font-bold !text-white">
180
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
179
181
  Props & Configuration
180
182
  </h2>
181
183
 
182
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
183
- <div className="bg-white/5 p-4">
184
- <h3 className="text-xl font-semibold !text-white">Props</h3>
184
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
185
+ <div className="bg-fm-surface-secondary p-4">
186
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
187
+ Props
188
+ </h3>
185
189
  </div>
186
190
  <table className="!my-0 w-full">
187
- <thead className="bg-white/5">
188
- <tr className="border-b border-white/10">
189
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
191
+ <thead className="bg-fm-surface-secondary">
192
+ <tr className="border-fm-divider-secondary border-b">
193
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
190
194
  Prop
191
195
  </th>
192
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
196
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
193
197
  Type
194
198
  </th>
195
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
199
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
196
200
  Default
197
201
  </th>
198
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
202
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
199
203
  Description
200
204
  </th>
201
205
  </tr>
202
206
  </thead>
203
207
  <tbody>
204
208
  {" "}
205
- <tr className="!bg-black/10">
206
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
209
+ <tr className="bg-fm-surface-secondary!">
210
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
207
211
  withAccessibility
208
212
  </td>
209
- <td className="px-6 py-4 text-sm !text-white/70">
213
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
210
214
  boolean
211
215
  </td>
212
- <td className="px-6 py-4 text-sm !text-white/50">
216
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
213
217
  true
214
218
  </td>
215
- <td className="px-6 py-4 text-sm !text-white/70">
219
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
216
220
  Whether to wrap the icon with accessibility feature
217
221
  </td>
218
222
  </tr>
219
- <tr className="border-b border-white/5 !bg-black/10">
220
- <td className="px-6 py-4 font-mono text-sm !text-orange-300">
223
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
224
+ <td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
221
225
  height
222
226
  </td>
223
- <td className="px-6 py-4 text-sm !text-white/70">
227
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
224
228
  number | string
225
229
  </td>
226
- <td className="px-6 py-4 text-sm !text-white/50">16</td>
227
- <td className="px-6 py-4 text-sm !text-white/70">
230
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
231
+ 16
232
+ </td>
233
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
228
234
  Height of the icon in pixels
229
235
  </td>
230
236
  </tr>
231
- <tr className="border-b border-white/5">
232
- <td className="px-6 py-4 font-mono text-sm !text-orange-300">
237
+ <tr className="border-fm-divider-tertiary border-b">
238
+ <td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
233
239
  fill
234
240
  </td>
235
- <td className="px-6 py-4 text-sm !text-white/70">
241
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
236
242
  string
237
243
  </td>
238
- <td className="px-6 py-4 text-sm !text-white/50">
244
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
239
245
  currentColor
240
246
  </td>
241
- <td className="px-6 py-4 text-sm !text-white/70">
247
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
242
248
  Fill color of the icon
243
249
  </td>
244
250
  </tr>
245
- <tr className="border-b border-white/5 !bg-black/10">
246
- <td className="px-6 py-4 font-mono text-sm !text-orange-300">
251
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
252
+ <td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
247
253
  className
248
254
  </td>
249
- <td className="px-6 py-4 text-sm !text-white/70">
255
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
250
256
  string
251
257
  </td>
252
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
253
- <td className="px-6 py-4 text-sm !text-white/70">
258
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
259
+ -
260
+ </td>
261
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
254
262
  CSS classes for styling
255
263
  </td>
256
264
  </tr>
257
- <tr className="border-b border-white/5">
258
- <td className="px-6 py-4 font-mono text-sm !text-orange-300">
265
+ <tr className="border-fm-divider-tertiary border-b">
266
+ <td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
259
267
  filled
260
268
  </td>
261
- <td className="px-6 py-4 text-sm !text-white/70">
269
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
262
270
  boolean
263
271
  </td>
264
- <td className="px-6 py-4 text-sm !text-white/50">
272
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
265
273
  true
266
274
  </td>
267
- <td className="px-6 py-4 text-sm !text-white/70">
275
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
268
276
  Whether to use filled variant
269
277
  </td>
270
278
  </tr>
271
- <tr className="!bg-black/10">
272
- <td className="px-6 py-4 font-mono text-sm !text-orange-300">
279
+ <tr className="bg-fm-surface-secondary!">
280
+ <td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
273
281
  ...svgProps
274
282
  </td>
275
- <td className="px-6 py-4 text-sm !text-white/70">
283
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
276
284
  SVGProps
277
285
  </td>
278
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
279
- <td className="px-6 py-4 text-sm !text-white/70">
286
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
287
+ -
288
+ </td>
289
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
280
290
  All standard SVG element props
281
291
  </td>
282
292
  </tr>
@@ -287,50 +297,62 @@ function MyComponent() {
287
297
 
288
298
  {/* Size Variations */}
289
299
  <div className="!space-y-8">
290
- <h2 className="text-center text-3xl font-bold !text-white">
300
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
291
301
  Size Variations
292
302
  </h2>
293
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
303
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
294
304
  <div className="!space-y-6">
295
305
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
296
306
  <div className="!space-y-4">
297
- <h3 className="text-lg font-semibold !text-orange-300">
307
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
298
308
  Standard Sizes
299
309
  </h3>
300
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
310
+ <div className="bg-fm-surface-primary flex items-end gap-6 rounded-lg p-6">
301
311
  <div className="text-center">
302
- <AlertIcon className="!mx-auto mb-2 h-3 w-3 text-orange-400" />
303
- <span className="text-xs text-white/60">12px</span>
312
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
313
+ <span className="text-fm-tertiary text-xs">
314
+ 12px
315
+ </span>
304
316
  </div>
305
317
  <div className="text-center">
306
- <AlertIcon className="!mx-auto mb-2 h-4 w-4 text-orange-400" />
307
- <span className="text-xs text-white/60">16px</span>
318
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
319
+ <span className="text-fm-tertiary text-xs">
320
+ 16px
321
+ </span>
308
322
  </div>
309
323
  <div className="text-center">
310
- <AlertIcon className="!mx-auto mb-2 h-5 w-5 text-orange-400" />
311
- <span className="text-xs text-white/60">20px</span>
324
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
325
+ <span className="text-fm-tertiary text-xs">
326
+ 20px
327
+ </span>
312
328
  </div>
313
329
  <div className="text-center">
314
- <AlertIcon className="!mx-auto mb-2 h-6 w-6 text-orange-400" />
315
- <span className="text-xs text-white/60">24px</span>
330
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
331
+ <span className="text-fm-tertiary text-xs">
332
+ 24px
333
+ </span>
316
334
  </div>
317
335
  <div className="text-center">
318
- <AlertIcon className="!mx-auto mb-2 h-8 w-8 text-orange-400" />
319
- <span className="text-xs text-white/60">32px</span>
336
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
337
+ <span className="text-fm-tertiary text-xs">
338
+ 32px
339
+ </span>
320
340
  </div>
321
341
  <div className="text-center">
322
- <AlertIcon className="!mx-auto mb-2 h-12 w-12 text-orange-400" />
323
- <span className="text-xs text-white/60">48px</span>
342
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
343
+ <span className="text-fm-tertiary text-xs">
344
+ 48px
345
+ </span>
324
346
  </div>
325
347
  </div>
326
348
  </div>
327
349
 
328
350
  <div className="!space-y-4">
329
- <h3 className="text-lg font-semibold !text-orange-300">
351
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
330
352
  Code Example
331
353
  </h3>
332
- <div className="rounded-lg bg-black/40 p-4">
333
- <pre className="overflow-x-auto text-sm !text-blue-300">
354
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
355
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
334
356
  {`// Small (16px)
335
357
  <AlertIcon className="h-4 w-4" />
336
358
 
@@ -352,56 +374,56 @@ function MyComponent() {
352
374
 
353
375
  {/* Color Variations */}
354
376
  <div className="!space-y-8">
355
- <h2 className="text-center text-3xl font-bold !text-white">
377
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
356
378
  Color Variations
357
379
  </h2>
358
380
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
359
381
  <div className="!space-y-4">
360
- <h3 className="text-lg font-semibold !text-orange-300">
382
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
361
383
  Semantic Colors
362
384
  </h3>
363
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
385
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
364
386
  <div className="flex items-center gap-4">
365
- <AlertIcon className="h-6 w-6 text-orange-400" />
387
+ <AlertIcon className="text-fm-icon-warning h-6 w-6" />
366
388
  <div>
367
- <div className="text-sm font-medium text-white">
389
+ <div className="text-fm-icon-active text-sm font-medium">
368
390
  Warning
369
391
  </div>
370
- <div className="text-xs text-white/60">
371
- text-orange-400
392
+ <div className="text-fm-tertiary text-xs">
393
+ text-fm-icon-warning
372
394
  </div>
373
395
  </div>
374
396
  </div>
375
397
  <div className="flex items-center gap-4">
376
- <AlertIcon className="h-6 w-6 text-red-400" />
398
+ <AlertIcon className="text-fm-icon-negative h-6 w-6" />
377
399
  <div>
378
- <div className="text-sm font-medium text-white">
400
+ <div className="text-fm-icon-active text-sm font-medium">
379
401
  Danger
380
402
  </div>
381
- <div className="text-xs text-white/60">
382
- text-red-400
403
+ <div className="text-fm-tertiary text-xs">
404
+ text-fm-icon-negative
383
405
  </div>
384
406
  </div>
385
407
  </div>
386
408
  <div className="flex items-center gap-4">
387
- <AlertIcon className="h-6 w-6 text-yellow-400" />
409
+ <AlertIcon className="text-fm-icon-warning h-6 w-6" />
388
410
  <div>
389
- <div className="text-sm font-medium text-white">
411
+ <div className="text-fm-icon-active text-sm font-medium">
390
412
  Caution
391
413
  </div>
392
- <div className="text-xs text-white/60">
393
- text-yellow-400
414
+ <div className="text-fm-tertiary text-xs">
415
+ text-fm-icon-warning
394
416
  </div>
395
417
  </div>
396
418
  </div>
397
419
  <div className="flex items-center gap-4">
398
- <AlertIcon className="h-6 w-6 text-blue-400" />
420
+ <AlertIcon className="text-fm-icon-info h-6 w-6" />
399
421
  <div>
400
- <div className="text-sm font-medium text-white">
422
+ <div className="text-fm-icon-active text-sm font-medium">
401
423
  Info
402
424
  </div>
403
- <div className="text-xs text-white/60">
404
- text-blue-400
425
+ <div className="text-fm-tertiary text-xs">
426
+ text-fm-icon-info
405
427
  </div>
406
428
  </div>
407
429
  </div>
@@ -409,11 +431,11 @@ function MyComponent() {
409
431
  </div>
410
432
 
411
433
  <div className="!space-y-4">
412
- <h3 className="text-lg font-semibold !text-orange-300">
434
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
413
435
  Custom Colors
414
436
  </h3>
415
- <div className="rounded-lg bg-black/40 p-4">
416
- <pre className="overflow-x-auto text-sm !text-green-300">
437
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
438
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
417
439
  {`// Using Tailwind classes
418
440
  <AlertIcon className="h-6 w-6 text-orange-400" />
419
441
  <AlertIcon className="h-6 w-6 text-red-500" />
@@ -438,33 +460,33 @@ function MyComponent() {
438
460
 
439
461
  {/* Usage Examples */}
440
462
  <div className="!space-y-8">
441
- <h2 className="text-center text-3xl font-bold !text-white">
463
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
442
464
  Usage Examples
443
465
  </h2>
444
466
 
445
467
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
446
468
  {/* Alert Banner */}
447
469
  <div className="!space-y-4">
448
- <h3 className="text-lg font-semibold !text-orange-300">
470
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
449
471
  Alert Banner
450
472
  </h3>
451
473
  <div className="!space-y-4">
452
- <div className="rounded-lg border border-orange-500/20 bg-orange-500/10 p-4">
474
+ <div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
453
475
  <div className="flex items-start gap-3">
454
- <AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-orange-400" />
476
+ <AlertIcon className="text-fm-icon-warning mt-0.5 h-5 w-5 flex-shrink-0" />
455
477
  <div>
456
- <h4 className="font-medium !text-orange-200">
478
+ <h4 className="text-fm-icon-warning! font-medium">
457
479
  System Maintenance
458
480
  </h4>
459
- <p className="text-sm !text-orange-300/80">
481
+ <p className="text-fm-icon-warning/80! text-sm">
460
482
  Scheduled maintenance will occur tonight from 2-4
461
483
  AM EST.
462
484
  </p>
463
485
  </div>
464
486
  </div>
465
487
  </div>
466
- <div className="rounded-lg bg-black/40 p-4">
467
- <pre className="overflow-x-auto text-sm !text-green-300">
488
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
489
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
468
490
  {`<div className="border border-orange-500/20 bg-orange-500/10 p-4 rounded-lg">
469
491
  <div className="flex items-start gap-3">
470
492
  <AlertIcon className="h-5 w-5 text-orange-400 mt-0.5 flex-shrink-0" />
@@ -483,30 +505,30 @@ function MyComponent() {
483
505
 
484
506
  {/* Form Validation */}
485
507
  <div className="!space-y-4">
486
- <h3 className="text-lg font-semibold !text-orange-300">
508
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
487
509
  Form Validation
488
510
  </h3>
489
511
  <div className="!space-y-4">
490
512
  <div className="!space-y-2">
491
- <label className="text-sm font-medium !text-white">
513
+ <label className="text-fm-icon-active! text-sm font-medium">
492
514
  Email Address
493
515
  </label>
494
516
  <div className="relative">
495
517
  <input
496
518
  type="email"
497
- className="w-full rounded-lg border border-red-500/50 bg-white/5 px-3 py-2 pr-10 !text-white focus:border-red-500 focus:ring-2 focus:ring-red-500/20"
519
+ className="border-fm-icon-negative/50 bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-icon-negative focus:ring-fm-icon-negative/20 w-full rounded-lg border px-3 py-2 pr-10 focus:ring-2"
498
520
  placeholder="Enter your email"
499
521
  defaultValue="invalid-email"
500
522
  />
501
- <AlertIcon className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2 text-red-400" />
523
+ <AlertIcon className="text-fm-icon-negative absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2" />
502
524
  </div>
503
- <div className="flex items-center gap-2 text-sm text-red-400">
525
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
504
526
  <AlertIcon className="h-4 w-4" />
505
527
  <span>Please enter a valid email address</span>
506
528
  </div>
507
529
  </div>
508
- <div className="rounded-lg bg-black/40 p-4">
509
- <pre className="overflow-x-auto text-sm !text-green-300">
530
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
531
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
510
532
  {`// Input with validation icon
511
533
  <div className="relative">
512
534
  <input className="pr-10 border-red-500/50" />
@@ -525,22 +547,22 @@ function MyComponent() {
525
547
 
526
548
  {/* Button with Icon */}
527
549
  <div className="!space-y-4">
528
- <h3 className="text-lg font-semibold !text-orange-300">
550
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
529
551
  Button Integration
530
552
  </h3>
531
553
  <div className="!space-y-4">
532
554
  <div className="flex gap-4">
533
- <button className="flex items-center gap-2 rounded-lg border border-orange-500/30 bg-orange-500/20 px-4 py-2 text-orange-200 transition-colors hover:bg-orange-500/30">
555
+ <button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
534
556
  <AlertIcon className="h-4 w-4" />
535
557
  Report Issue
536
558
  </button>
537
- <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">
559
+ <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">
538
560
  <AlertIcon className="h-4 w-4" />
539
561
  Delete Account
540
562
  </button>
541
563
  </div>
542
- <div className="rounded-lg bg-black/40 p-4">
543
- <pre className="overflow-x-auto text-sm !text-green-300">
564
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
565
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
544
566
  {`// Warning button
545
567
  <button className="flex items-center gap-2 bg-orange-500/20 border border-orange-500/30 px-4 py-2 rounded-lg">
546
568
  <AlertIcon className="h-4 w-4" />
@@ -559,25 +581,27 @@ function MyComponent() {
559
581
 
560
582
  {/* Tooltip */}
561
583
  <div className="!space-y-4">
562
- <h3 className="text-lg font-semibold !text-orange-300">
584
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
563
585
  Interactive Tooltip
564
586
  </h3>
565
587
  <div className="!space-y-4">
566
588
  <div className="flex items-center gap-2">
567
- <span className="text-white">Storage Usage</span>
589
+ <span className="text-fm-icon-active">
590
+ Storage Usage
591
+ </span>
568
592
  <div className="group relative">
569
- <AlertIcon className="h-4 w-4 cursor-help text-orange-400" />
570
- <div className="invisible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg bg-black/90 px-3 py-2 text-xs text-white shadow-lg group-hover:visible">
593
+ <AlertIcon className="text-fm-icon-warning h-4 w-4 cursor-help" />
594
+ <div className="bg-fm-surface-tertiary text-fm-icon-contrast invisible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg px-3 py-2 text-xs shadow-lg group-hover:visible">
571
595
  <div className="flex items-center gap-2">
572
- <AlertIcon className="h-3 w-3 text-orange-400" />
596
+ <AlertIcon className="text-fm-icon-warning h-3 w-3" />
573
597
  <span>You're approaching your storage limit</span>
574
598
  </div>
575
- <div className="absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-black/90"></div>
599
+ <div className="border-t-fm-surface-tertiary absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent"></div>
576
600
  </div>
577
601
  </div>
578
602
  </div>
579
- <div className="rounded-lg bg-black/40 p-4">
580
- <pre className="overflow-x-auto text-sm !text-green-300">
603
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
604
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
581
605
  {`<div className="group relative">
582
606
  <AlertIcon className="h-4 w-4 text-orange-400 cursor-help" />
583
607
  <div className="invisible group-hover:visible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg bg-black/90 px-3 py-2 text-xs text-white shadow-lg">
@@ -596,64 +620,64 @@ function MyComponent() {
596
620
 
597
621
  {/* Accessibility */}
598
622
  <div className="!space-y-8">
599
- <h2 className="text-center text-3xl font-bold !text-white">
623
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
600
624
  Accessibility Features
601
625
  </h2>
602
626
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
603
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
604
- <h3 className="text-lg font-semibold !text-green-300">
627
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
628
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
605
629
  ✅ Built-in Features
606
630
  </h3>
607
- <ul className="!space-y-2 text-sm !text-white/70">
608
- <li className="!text-white/70">
631
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
632
+ <li className="text-fm-secondary!">
609
633
  Uses Radix UI AccessibleIcon wrapper
610
634
  </li>
611
- <li className="!text-white/70">
635
+ <li className="text-fm-secondary!">
612
636
  Provides screen reader label "Alert icon"
613
637
  </li>
614
- <li className="!text-white/70">
638
+ <li className="text-fm-secondary!">
615
639
  Supports keyboard navigation when interactive
616
640
  </li>
617
- <li className="!text-white/70">
641
+ <li className="text-fm-secondary!">
618
642
  Maintains proper color contrast ratios
619
643
  </li>
620
- <li className="!text-white/70">
644
+ <li className="text-fm-secondary!">
621
645
  Scales with user's font size preferences
622
646
  </li>
623
647
  </ul>
624
648
  </div>
625
649
 
626
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
627
- <h3 className="text-lg font-semibold !text-orange-300">
650
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
651
+ <h3 className="text-fm-icon-warning! text-lg font-semibold">
628
652
  💡 Best Practices
629
653
  </h3>
630
- <ul className="!space-y-2 text-sm text-white/70">
631
- <li className="!text-white/70">
654
+ <ul className="text-fm-secondary !space-y-2 text-sm">
655
+ <li className="text-fm-secondary!">
632
656
  Always pair with descriptive text
633
657
  </li>
634
- <li className="!text-white/70">
658
+ <li className="text-fm-secondary!">
635
659
  Use consistent colors for alert types
636
660
  </li>
637
- <li className="!text-white/70">
661
+ <li className="text-fm-secondary!">
638
662
  Ensure sufficient color contrast
639
663
  </li>
640
- <li className="!text-white/70">
664
+ <li className="text-fm-secondary!">
641
665
  Add focus states for interactive elements
642
666
  </li>
643
- <li className="!text-white/70">
667
+ <li className="text-fm-secondary!">
644
668
  Consider motion sensitivity for animations
645
669
  </li>
646
670
  </ul>
647
671
  </div>
648
672
  </div>
649
673
 
650
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
651
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
674
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
675
+ <h3 className="text-fm-secondary-500! mb-4 text-lg font-semibold">
652
676
  Custom Accessibility Label
653
677
  </h3>
654
678
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
655
- <div className="rounded-lg bg-black/40 p-4">
656
- <pre className="overflow-x-auto text-sm !text-blue-300">
679
+ <div className="bg-fm-surface-primary rounded-lg p-4">
680
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
657
681
  {`// Custom implementation with specific label
658
682
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
659
683
 
@@ -666,20 +690,20 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
666
690
  }
667
691
 
668
692
  // Usage with specific context
669
- <CustomAlertIcon
670
- label="Form validation error"
671
- className="h-4 w-4 text-red-400"
693
+ <CustomAlertIcon
694
+ label="Form validation error"
695
+ className="h-4 w-4 text-red-400"
672
696
  />`}
673
697
  </pre>
674
698
  </div>
675
699
  <div className="!space-y-4">
676
- <p className="text-sm !text-white/70">
700
+ <p className="text-fm-secondary! text-sm">
677
701
  For specific contexts, you can wrap the AlertIcon with a
678
702
  custom AccessibleIcon component that provides more
679
703
  descriptive labels.
680
704
  </p>
681
- <div className="rounded-lg border border-orange-500/20 bg-orange-500/10 p-4">
682
- <div className="flex items-center gap-2 text-sm text-orange-200">
705
+ <div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
706
+ <div className="text-fm-icon-warning flex items-center gap-2 text-sm">
683
707
  <AlertIcon className="h-4 w-4" />
684
708
  <span>
685
709
  This approach gives screen readers more context
@@ -693,48 +717,58 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
693
717
 
694
718
  {/* Related Icons */}
695
719
  <div className="!space-y-8">
696
- <h2 className="text-center text-3xl font-bold !text-white">
720
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
697
721
  Related Icons
698
722
  </h2>
699
723
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
700
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
701
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
724
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
725
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
702
726
  <span className="text-2xl">ℹ️</span>
703
727
  </div>
704
728
  <div>
705
- <div className="font-medium text-white">InfoIcon</div>
706
- <div className="text-xs text-white/60">
729
+ <div className="text-fm-icon-active font-medium">
730
+ InfoIcon
731
+ </div>
732
+ <div className="text-fm-tertiary text-xs">
707
733
  Information states
708
734
  </div>
709
735
  </div>
710
736
  </div>
711
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
712
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
737
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
738
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
713
739
  <span className="text-2xl">✅</span>
714
740
  </div>
715
741
  <div>
716
- <div className="font-medium text-white">CheckIcon</div>
717
- <div className="text-xs text-white/60">
742
+ <div className="text-fm-icon-active font-medium">
743
+ CheckIcon
744
+ </div>
745
+ <div className="text-fm-tertiary text-xs">
718
746
  Success states
719
747
  </div>
720
748
  </div>
721
749
  </div>
722
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
723
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
750
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
751
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
724
752
  <span className="text-2xl">❌</span>
725
753
  </div>
726
754
  <div>
727
- <div className="font-medium text-white">ErrorIcon</div>
728
- <div className="text-xs text-white/60">Error states</div>
755
+ <div className="text-fm-icon-active font-medium">
756
+ ErrorIcon
757
+ </div>
758
+ <div className="text-fm-tertiary text-xs">
759
+ Error states
760
+ </div>
729
761
  </div>
730
762
  </div>
731
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
732
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
763
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
764
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
733
765
  <span className="text-2xl">❓</span>
734
766
  </div>
735
767
  <div>
736
- <div className="font-medium text-white">HelpIcon</div>
737
- <div className="text-xs text-white/60">
768
+ <div className="text-fm-icon-active font-medium">
769
+ HelpIcon
770
+ </div>
771
+ <div className="text-fm-tertiary text-xs">
738
772
  Help & guidance
739
773
  </div>
740
774
  </div>
@@ -744,14 +778,14 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
744
778
  </div>
745
779
 
746
780
  {/* Footer */}
747
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
781
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
748
782
  <div className="!mx-auto max-w-7xl px-6 py-8">
749
783
  <div className="!space-y-4 text-center">
750
- <p className="!text-white/60">
784
+ <p className="text-fm-tertiary!">
751
785
  AlertIcon is part of the Aural UI icon library, built with
752
786
  accessibility and consistency in mind.
753
787
  </p>
754
- <p className="text-sm !text-white/40">
788
+ <p className="text-fm-placeholder! text-sm">
755
789
  All icons use Radix UI's AccessibleIcon for screen reader
756
790
  compatibility and follow WCAG guidelines.
757
791
  </p>
@@ -800,8 +834,8 @@ const storyParameters = {
800
834
  backgrounds: {
801
835
  default: "dark",
802
836
  values: [
803
- { name: "dark", value: "#0a0a0a" },
804
- { name: "darker", value: "#000000" },
837
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
838
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
805
839
  ],
806
840
  },
807
841
  }
@@ -810,12 +844,12 @@ export const Default: Story = {
810
844
  args: {
811
845
  width: 24,
812
846
  height: 24,
813
- className: "text-orange-400",
847
+ className: "text-fm-icon-warning",
814
848
  withAccessibility: true,
815
849
  },
816
850
  parameters: storyParameters,
817
851
  render: (args) => (
818
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
852
+ <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">
819
853
  <AlertIcon {...args} />
820
854
  </div>
821
855
  ),
@@ -832,30 +866,30 @@ export const SizeVariations: Story = {
832
866
  },
833
867
  },
834
868
  render: () => (
835
- <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">
869
+ <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">
836
870
  <div className="text-center">
837
- <AlertIcon className="!mx-auto mb-2 h-3 w-3 text-orange-400" />
838
- <span className="text-xs text-white/60">12px</span>
871
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
872
+ <span className="text-fm-tertiary text-xs">12px</span>
839
873
  </div>
840
874
  <div className="text-center">
841
- <AlertIcon className="!mx-auto mb-2 h-4 w-4 text-orange-400" />
842
- <span className="text-xs text-white/60">16px</span>
875
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
876
+ <span className="text-fm-tertiary text-xs">16px</span>
843
877
  </div>
844
878
  <div className="text-center">
845
- <AlertIcon className="!mx-auto mb-2 h-5 w-5 text-orange-400" />
846
- <span className="text-xs text-white/60">20px</span>
879
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
880
+ <span className="text-fm-tertiary text-xs">20px</span>
847
881
  </div>
848
882
  <div className="text-center">
849
- <AlertIcon className="!mx-auto mb-2 h-6 w-6 text-orange-400" />
850
- <span className="text-xs text-white/60">24px</span>
883
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
884
+ <span className="text-fm-tertiary text-xs">24px</span>
851
885
  </div>
852
886
  <div className="text-center">
853
- <AlertIcon className="!mx-auto mb-2 h-8 w-8 text-orange-400" />
854
- <span className="text-xs text-white/60">32px</span>
887
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
888
+ <span className="text-fm-tertiary text-xs">32px</span>
855
889
  </div>
856
890
  <div className="text-center">
857
- <AlertIcon className="!mx-auto mb-2 h-12 w-12 text-orange-400" />
858
- <span className="text-xs text-white/60">48px</span>
891
+ <AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
892
+ <span className="text-fm-tertiary text-xs">48px</span>
859
893
  </div>
860
894
  </div>
861
895
  ),
@@ -872,34 +906,36 @@ export const ColorVariations: Story = {
872
906
  },
873
907
  },
874
908
  render: () => (
875
- <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">
909
+ <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">
876
910
  <div className="text-center">
877
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-orange-500/30 bg-orange-500/20">
878
- <AlertIcon className="h-8 w-8 text-orange-400" />
911
+ <div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
912
+ <AlertIcon className="text-fm-icon-warning h-8 w-8" />
879
913
  </div>
880
- <div className="text-sm font-medium text-white">Warning</div>
881
- <div className="text-xs text-orange-400">text-orange-400</div>
914
+ <div className="text-fm-icon-active text-sm font-medium">Warning</div>
915
+ <div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
882
916
  </div>
883
917
  <div className="text-center">
884
- <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">
885
- <AlertIcon className="h-8 w-8 text-red-400" />
918
+ <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">
919
+ <AlertIcon className="text-fm-icon-negative h-8 w-8" />
920
+ </div>
921
+ <div className="text-fm-icon-active text-sm font-medium">Danger</div>
922
+ <div className="text-fm-icon-negative text-xs">
923
+ text-fm-icon-negative
886
924
  </div>
887
- <div className="text-sm font-medium text-white">Danger</div>
888
- <div className="text-xs text-red-400">text-red-400</div>
889
925
  </div>
890
926
  <div className="text-center">
891
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-yellow-500/30 bg-yellow-500/20">
892
- <AlertIcon className="h-8 w-8 text-yellow-400" />
927
+ <div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
928
+ <AlertIcon className="text-fm-icon-warning h-8 w-8" />
893
929
  </div>
894
- <div className="text-sm font-medium text-white">Caution</div>
895
- <div className="text-xs text-yellow-400">text-yellow-400</div>
930
+ <div className="text-fm-icon-active text-sm font-medium">Caution</div>
931
+ <div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
896
932
  </div>
897
933
  <div className="text-center">
898
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
899
- <AlertIcon className="h-8 w-8 text-blue-400" />
934
+ <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">
935
+ <AlertIcon className="text-fm-icon-info h-8 w-8" />
900
936
  </div>
901
- <div className="text-sm font-medium text-white">Info</div>
902
- <div className="text-xs text-blue-400">text-blue-400</div>
937
+ <div className="text-fm-icon-active text-sm font-medium">Info</div>
938
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
903
939
  </div>
904
940
  </div>
905
941
  ),
@@ -916,18 +952,20 @@ export const UsageExamples: Story = {
916
952
  },
917
953
  },
918
954
  render: () => (
919
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
955
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
920
956
  {/* Alert Banner */}
921
957
  <div className="!space-y-2">
922
- <h3 className="text-sm font-medium text-white">Alert Banner</h3>
923
- <div className="rounded-lg border border-orange-500/20 bg-orange-500/10 p-4">
958
+ <h3 className="text-fm-icon-active text-sm font-medium">
959
+ Alert Banner
960
+ </h3>
961
+ <div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
924
962
  <div className="flex items-start gap-3">
925
- <AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-orange-400" />
963
+ <AlertIcon className="text-fm-icon-warning mt-0.5 h-5 w-5 flex-shrink-0" />
926
964
  <div>
927
- <h4 className="font-medium text-orange-200">
965
+ <h4 className="text-fm-icon-warning font-medium">
928
966
  System Maintenance
929
967
  </h4>
930
- <p className="text-sm text-orange-300/80">
968
+ <p className="text-fm-icon-warning/80 text-sm">
931
969
  Scheduled maintenance will occur tonight from 2-4 AM EST.
932
970
  </p>
933
971
  </div>
@@ -937,18 +975,20 @@ export const UsageExamples: Story = {
937
975
 
938
976
  {/* Form Validation */}
939
977
  <div className="!space-y-2">
940
- <h3 className="text-sm font-medium text-white">Form Validation</h3>
978
+ <h3 className="text-fm-icon-active text-sm font-medium">
979
+ Form Validation
980
+ </h3>
941
981
  <div className="!space-y-2">
942
982
  <div className="relative">
943
983
  <input
944
984
  type="email"
945
- className="w-full rounded-lg border border-red-500/50 bg-white/5 px-3 py-2 pr-10 text-white placeholder-white/50 focus:border-red-500 focus:ring-2 focus:ring-red-500/20"
985
+ className="border-fm-icon-negative/50 bg-fm-surface-secondary text-fm-icon-active placeholder-fm-placeholder focus:border-fm-icon-negative focus:ring-fm-icon-negative/20 w-full rounded-lg border px-3 py-2 pr-10 focus:ring-2"
946
986
  placeholder="Enter your email"
947
987
  defaultValue="invalid-email"
948
988
  />
949
- <AlertIcon className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2 text-red-400" />
989
+ <AlertIcon className="text-fm-icon-negative absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2" />
950
990
  </div>
951
- <div className="flex items-center gap-2 text-sm text-red-400">
991
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
952
992
  <AlertIcon className="h-4 w-4" />
953
993
  <span>Please enter a valid email address</span>
954
994
  </div>
@@ -957,13 +997,15 @@ export const UsageExamples: Story = {
957
997
 
958
998
  {/* Button Integration */}
959
999
  <div className="!space-y-2">
960
- <h3 className="text-sm font-medium text-white">Button Integration</h3>
1000
+ <h3 className="text-fm-icon-active text-sm font-medium">
1001
+ Button Integration
1002
+ </h3>
961
1003
  <div className="flex gap-4">
962
- <button className="flex items-center gap-2 rounded-lg border border-orange-500/30 bg-orange-500/20 px-4 py-2 text-orange-200 transition-colors hover:bg-orange-500/30">
1004
+ <button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
963
1005
  <AlertIcon className="h-4 w-4" />
964
1006
  Report Issue
965
1007
  </button>
966
- <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">
1008
+ <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">
967
1009
  <AlertIcon className="h-4 w-4" />
968
1010
  Delete Account
969
1011
  </button>
@@ -986,12 +1028,12 @@ export const Playground: Story = {
986
1028
  args: {
987
1029
  width: 32,
988
1030
  height: 32,
989
- className: "text-orange-400",
1031
+ className: "text-fm-icon-warning",
990
1032
  filled: false,
991
1033
  },
992
1034
  render: (args) => (
993
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
994
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1035
+ <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">
1036
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
995
1037
  <AlertIcon {...args} />
996
1038
  </div>
997
1039
  </div>