aural-ui 3.0.7 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof PhoneIcon> = {
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,57 +40,59 @@ const meta: Meta<typeof PhoneIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-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-violet-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-secondary-500/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-violet-500/20">
89
+ <div className="border-fm-secondary-500/30 from-fm-secondary-500/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
90
  <PhoneIcon className="text-fm-secondary-800 h-12 w-12" />
91
91
  </div>
92
- <h1 className="text-5xl font-bold !text-white">PhoneIcon</h1>
93
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
92
+ <h1 className="text-fm-icon-active! text-5xl font-bold">
93
+ PhoneIcon
94
+ </h1>
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
94
96
  A universal phone icon for communication interfaces.
95
97
  Features the classic mobile phone design, essential for
96
98
  contact lists, call buttons, messaging apps, and any
@@ -101,28 +103,28 @@ const meta: Meta<typeof PhoneIcon> = {
101
103
  {/* Stats */}
102
104
  <div className="flex items-center justify-center gap-8 pt-8">
103
105
  <div className="text-center">
104
- <div className="text-3xl font-bold text-purple-300">
106
+ <div className="text-fm-secondary-600 text-3xl font-bold">
105
107
  Call Action
106
108
  </div>
107
- <div className="text-sm text-white/60">
109
+ <div className="text-fm-tertiary text-sm">
108
110
  Initiate calls
109
111
  </div>
110
112
  </div>
111
- <div className="h-8 w-px bg-white/20" />
113
+ <div className="bg-fm-divider-primary h-8 w-px" />
112
114
  <div className="text-center">
113
- <div className="text-3xl font-bold text-violet-300">
115
+ <div className="text-fm-secondary-600 text-3xl font-bold">
114
116
  Accessible
115
117
  </div>
116
- <div className="text-sm text-white/60">
118
+ <div className="text-fm-tertiary text-sm">
117
119
  Screen reader friendly
118
120
  </div>
119
121
  </div>
120
- <div className="h-8 w-px bg-white/20" />
122
+ <div className="bg-fm-divider-primary h-8 w-px" />
121
123
  <div className="text-center">
122
- <div className="text-3xl font-bold text-fuchsia-300">
124
+ <div className="text-fm-secondary-600 text-3xl font-bold">
123
125
  Universal
124
126
  </div>
125
- <div className="text-sm text-white/60">
127
+ <div className="text-fm-tertiary text-sm">
126
128
  Standard communication icon
127
129
  </div>
128
130
  </div>
@@ -135,16 +137,16 @@ const meta: Meta<typeof PhoneIcon> = {
135
137
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
138
  {/* Quick Usage */}
137
139
  <div className="!space-y-8">
138
- <h2 className="text-center text-3xl font-bold !text-white">
140
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
139
141
  Quick Start
140
142
  </h2>
141
143
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
144
  <div className="!space-y-4">
143
- <h3 className="text-xl font-semibold !text-purple-300">
145
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
144
146
  Basic Usage
145
147
  </h3>
146
- <div className="rounded-lg bg-black/40 p-4">
147
- <pre className="overflow-x-auto text-sm !text-green-300">
148
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
149
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
148
150
  {`import { PhoneIcon } from "@icons/phone-icon"
149
151
 
150
152
  function ContactCard() {
@@ -162,11 +164,11 @@ function ContactCard() {
162
164
  </div>
163
165
 
164
166
  <div className="!space-y-4">
165
- <h3 className="text-xl font-semibold !text-purple-300">
167
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
166
168
  Live Preview
167
169
  </h3>
168
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
169
- <button className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-3 transition-colors hover:bg-purple-500/20">
170
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
171
+ <button className="border-fm-secondary-500/20 bg-fm-secondary-500/10 hover:bg-fm-secondary-500/20 rounded-lg border p-3 transition-colors">
170
172
  <PhoneIcon className="h-6 w-6" />
171
173
  </button>
172
174
  </div>
@@ -176,108 +178,116 @@ function ContactCard() {
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-purple-300">
224
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
225
+ <td className="text-fm-secondary-600! 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">14</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
+ 14
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-purple-300">
238
+ <tr className="border-fm-divider-tertiary border-b">
239
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
234
240
  stroke
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
  #C58AFF
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
  Stroke 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-purple-300">
252
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
253
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
248
254
  strokeWidth
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 | number
252
258
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/50">
259
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
254
260
  1.2
255
261
  </td>
256
- <td className="px-6 py-4 text-sm !text-white/70">
262
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
257
263
  Width of the stroke
258
264
  </td>
259
265
  </tr>
260
- <tr className="border-b border-white/5">
261
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
266
+ <tr className="border-fm-divider-tertiary border-b">
267
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
262
268
  className
263
269
  </td>
264
- <td className="px-6 py-4 text-sm !text-white/70">
270
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
265
271
  string
266
272
  </td>
267
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
268
- <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">
269
277
  CSS classes for styling (use for overrides)
270
278
  </td>
271
279
  </tr>
272
- <tr className="!bg-black/10">
273
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
280
+ <tr className="bg-fm-surface-secondary!">
281
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
274
282
  ...svgProps
275
283
  </td>
276
- <td className="px-6 py-4 text-sm !text-white/70">
284
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
277
285
  SVGProps
278
286
  </td>
279
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
280
- <td className="px-6 py-4 text-sm !text-white/70">
287
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
288
+ -
289
+ </td>
290
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
281
291
  All standard SVG element props
282
292
  </td>
283
293
  </tr>
@@ -288,50 +298,62 @@ function ContactCard() {
288
298
 
289
299
  {/* Size Variations */}
290
300
  <div className="!space-y-8">
291
- <h2 className="text-center text-3xl font-bold !text-white">
301
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
292
302
  Size Variations
293
303
  </h2>
294
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
304
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
295
305
  <div className="!space-y-6">
296
306
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
297
307
  <div className="!space-y-4">
298
- <h3 className="text-lg font-semibold !text-purple-300">
308
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
299
309
  Standard Sizes
300
310
  </h3>
301
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
311
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
302
312
  <div className="text-center">
303
313
  <PhoneIcon className="!mx-auto mb-2 size-3" />
304
- <span className="text-xs text-white/60">12px</span>
314
+ <span className="text-fm-tertiary text-xs">
315
+ 12px
316
+ </span>
305
317
  </div>
306
318
  <div className="text-center">
307
319
  <PhoneIcon className="!mx-auto mb-2 size-4" />
308
- <span className="text-xs text-white/60">16px</span>
320
+ <span className="text-fm-tertiary text-xs">
321
+ 16px
322
+ </span>
309
323
  </div>
310
324
  <div className="text-center">
311
325
  <PhoneIcon className="!mx-auto mb-2 size-5" />
312
- <span className="text-xs text-white/60">20px</span>
326
+ <span className="text-fm-tertiary text-xs">
327
+ 20px
328
+ </span>
313
329
  </div>
314
330
  <div className="text-center">
315
331
  <PhoneIcon className="!mx-auto mb-2 size-6" />
316
- <span className="text-xs text-white/60">24px</span>
332
+ <span className="text-fm-tertiary text-xs">
333
+ 24px
334
+ </span>
317
335
  </div>
318
336
  <div className="text-center">
319
337
  <PhoneIcon className="!mx-auto mb-2 size-8" />
320
- <span className="text-xs text-white/60">32px</span>
338
+ <span className="text-fm-tertiary text-xs">
339
+ 32px
340
+ </span>
321
341
  </div>
322
342
  <div className="text-center">
323
343
  <PhoneIcon className="!mx-auto mb-2 h-12 w-12" />
324
- <span className="text-xs text-white/60">48px</span>
344
+ <span className="text-fm-tertiary text-xs">
345
+ 48px
346
+ </span>
325
347
  </div>
326
348
  </div>
327
349
  </div>
328
350
 
329
351
  <div className="!space-y-4">
330
- <h3 className="text-lg font-semibold !text-purple-300">
352
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
331
353
  Code Example
332
354
  </h3>
333
- <div className="rounded-lg bg-black/40 p-4">
334
- <pre className="overflow-x-auto text-sm !text-cyan-300">
355
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
356
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
335
357
  {`// Small (16px)
336
358
  <PhoneIcon className="size-4" />
337
359
 
@@ -353,54 +375,54 @@ function ContactCard() {
353
375
 
354
376
  {/* Color Variations */}
355
377
  <div className="!space-y-8">
356
- <h2 className="text-center text-3xl font-bold !text-white">
378
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
357
379
  Color Variations
358
380
  </h2>
359
381
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
360
382
  <div className="!space-y-4">
361
- <h3 className="text-lg font-semibold !text-purple-300">
383
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
362
384
  Semantic Colors
363
385
  </h3>
364
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
386
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
365
387
  <div className="flex items-center gap-4">
366
388
  <PhoneIcon className="h-6 w-6" />
367
389
  <div>
368
- <div className="text-sm font-medium text-white">
390
+ <div className="text-fm-icon-active text-sm font-medium">
369
391
  Primary
370
392
  </div>
371
- <div className="text-xs text-white/60"></div>
393
+ <div className="text-fm-tertiary text-xs"></div>
372
394
  </div>
373
395
  </div>
374
396
  <div className="flex items-center gap-4">
375
- <PhoneIcon className="h-6 w-6 text-violet-400" />
397
+ <PhoneIcon className="text-fm-secondary-600 h-6 w-6" />
376
398
  <div>
377
- <div className="text-sm font-medium text-white">
399
+ <div className="text-fm-icon-active text-sm font-medium">
378
400
  Secondary
379
401
  </div>
380
- <div className="text-xs text-white/60">
381
- text-violet-400
402
+ <div className="text-fm-tertiary text-xs">
403
+ text-fm-secondary-600
382
404
  </div>
383
405
  </div>
384
406
  </div>
385
407
  <div className="flex items-center gap-4">
386
- <PhoneIcon className="h-6 w-6 text-fuchsia-400" />
408
+ <PhoneIcon className="text-fm-secondary-600 h-6 w-6" />
387
409
  <div>
388
- <div className="text-sm font-medium text-white">
410
+ <div className="text-fm-icon-active text-sm font-medium">
389
411
  Accent
390
412
  </div>
391
- <div className="text-xs text-white/60">
392
- text-fuchsia-400
413
+ <div className="text-fm-tertiary text-xs">
414
+ text-fm-secondary-600
393
415
  </div>
394
416
  </div>
395
417
  </div>
396
418
  <div className="flex items-center gap-4">
397
- <PhoneIcon className="h-6 w-6 text-white/40" />
419
+ <PhoneIcon className="text-fm-placeholder h-6 w-6" />
398
420
  <div>
399
- <div className="text-sm font-medium text-white">
421
+ <div className="text-fm-icon-active text-sm font-medium">
400
422
  Disabled
401
423
  </div>
402
- <div className="text-xs text-white/60">
403
- text-white/40
424
+ <div className="text-fm-tertiary text-xs">
425
+ text-fm-placeholder
404
426
  </div>
405
427
  </div>
406
428
  </div>
@@ -408,11 +430,11 @@ function ContactCard() {
408
430
  </div>
409
431
 
410
432
  <div className="!space-y-4">
411
- <h3 className="text-lg font-semibold !text-purple-300">
433
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
412
434
  Custom Colors
413
435
  </h3>
414
- <div className="rounded-lg bg-black/40 p-4">
415
- <pre className="overflow-x-auto text-sm !text-green-300">
436
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
437
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
416
438
  {`// Using Tailwind classes
417
439
  <PhoneIcon className="h-6 w-6" />
418
440
  <PhoneIcon className="h-6 w-6 text-violet-500" />
@@ -437,37 +459,37 @@ function ContactCard() {
437
459
 
438
460
  {/* Usage Examples */}
439
461
  <div className="!space-y-8">
440
- <h2 className="text-center text-3xl font-bold !text-white">
462
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
441
463
  Usage Examples
442
464
  </h2>
443
465
 
444
466
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
445
467
  {/* Contact Card */}
446
468
  <div className="!space-y-4">
447
- <h3 className="text-lg font-semibold !text-purple-300">
469
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
448
470
  Contact Card
449
471
  </h3>
450
472
  <div className="!space-y-4">
451
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
473
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
452
474
  <div className="mb-4 flex items-center gap-3">
453
- <div className="h-12 w-12 rounded-full bg-gradient-to-br from-purple-500/20 to-violet-500/20" />
475
+ <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 h-12 w-12 rounded-full bg-linear-to-br" />
454
476
  <div>
455
- <div className="text-sm font-medium !text-white">
477
+ <div className="text-fm-icon-active! text-sm font-medium">
456
478
  John Doe
457
479
  </div>
458
- <div className="text-xs !text-white/60">
480
+ <div className="text-fm-tertiary! text-xs">
459
481
  +1 (555) 123-4567
460
482
  </div>
461
483
  </div>
462
484
  </div>
463
485
  <div className="flex items-center justify-center gap-4">
464
- <button className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-3 transition-colors hover:bg-purple-500/20">
486
+ <button className="border-fm-secondary-500/20 bg-fm-secondary-500/10 hover:bg-fm-secondary-500/20 rounded-lg border p-3 transition-colors">
465
487
  <PhoneIcon className="h-6 w-6" />
466
488
  </button>
467
489
  </div>
468
490
  </div>
469
- <div className="rounded-lg bg-black/40 p-4">
470
- <pre className="overflow-x-auto text-sm !text-green-300">
491
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
492
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
471
493
  {`// Contact card with call button
472
494
  <div className="contact-card">
473
495
  <div className="contact-info">
@@ -491,42 +513,42 @@ function ContactCard() {
491
513
 
492
514
  {/* Call History */}
493
515
  <div className="!space-y-4">
494
- <h3 className="text-lg font-semibold !text-purple-300">
516
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
495
517
  Call History
496
518
  </h3>
497
519
  <div className="!space-y-4">
498
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
520
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
499
521
  <div className="!space-y-3">
500
522
  <div className="flex items-center justify-between">
501
523
  <div>
502
- <div className="text-sm font-medium !text-white">
524
+ <div className="text-fm-icon-active! text-sm font-medium">
503
525
  Jane Smith
504
526
  </div>
505
- <div className="text-xs !text-white/60">
527
+ <div className="text-fm-tertiary! text-xs">
506
528
  Today, 2:30 PM
507
529
  </div>
508
530
  </div>
509
- <button className="rounded-lg p-2 hover:bg-white/10">
531
+ <button className="hover:bg-fm-surface-secondary rounded-lg p-2">
510
532
  <PhoneIcon className="h-5 w-5" />
511
533
  </button>
512
534
  </div>
513
535
  <div className="flex items-center justify-between">
514
536
  <div>
515
- <div className="text-sm font-medium !text-white">
537
+ <div className="text-fm-icon-active! text-sm font-medium">
516
538
  Bob Johnson
517
539
  </div>
518
- <div className="text-xs !text-white/60">
540
+ <div className="text-fm-tertiary! text-xs">
519
541
  Yesterday, 4:15 PM
520
542
  </div>
521
543
  </div>
522
- <button className="rounded-lg p-2 hover:bg-white/10">
544
+ <button className="hover:bg-fm-surface-secondary rounded-lg p-2">
523
545
  <PhoneIcon className="h-5 w-5" />
524
546
  </button>
525
547
  </div>
526
548
  </div>
527
549
  </div>
528
- <div className="rounded-lg bg-black/40 p-4">
529
- <pre className="overflow-x-auto text-sm !text-green-300">
550
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
551
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
530
552
  {`// Call history list
531
553
  <div className="call-history">
532
554
  {calls.map((call) => (
@@ -551,27 +573,27 @@ function ContactCard() {
551
573
 
552
574
  {/* Quick Dial */}
553
575
  <div className="!space-y-4">
554
- <h3 className="text-lg font-semibold !text-purple-300">
576
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
555
577
  Quick Dial
556
578
  </h3>
557
579
  <div className="!space-y-4">
558
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
580
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
559
581
  <div className="mb-4 text-center">
560
- <div className="text-sm font-medium !text-white">
582
+ <div className="text-fm-icon-active! text-sm font-medium">
561
583
  Emergency Contact
562
584
  </div>
563
- <div className="text-xs !text-white/60">
585
+ <div className="text-fm-tertiary! text-xs">
564
586
  Press to call
565
587
  </div>
566
588
  </div>
567
589
  <div className="flex items-center justify-center">
568
- <button className="rounded-full border-2 border-purple-500/30 bg-purple-500/10 p-6 transition-colors hover:bg-purple-500/20">
590
+ <button className="border-fm-secondary-500/30 bg-fm-secondary-500/10 hover:bg-fm-secondary-500/20 rounded-full border-2 p-6 transition-colors">
569
591
  <PhoneIcon className="h-10 w-10" />
570
592
  </button>
571
593
  </div>
572
594
  </div>
573
- <div className="rounded-lg bg-black/40 p-4">
574
- <pre className="overflow-x-auto text-sm !text-green-300">
595
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
596
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
575
597
  {`// Quick dial button
576
598
  <button
577
599
  onClick={initiateCall}
@@ -587,30 +609,30 @@ function ContactCard() {
587
609
 
588
610
  {/* Phone Number Input */}
589
611
  <div className="!space-y-4">
590
- <h3 className="text-lg font-semibold !text-purple-300">
612
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
591
613
  Phone Number Input
592
614
  </h3>
593
615
  <div className="!space-y-4">
594
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
616
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
595
617
  <div className="mb-4">
596
- <label className="mb-2 block text-xs text-white/60">
618
+ <label className="text-fm-tertiary mb-2 block text-xs">
597
619
  Phone Number
598
620
  </label>
599
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-black/20 px-3 py-2">
621
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-3 py-2">
600
622
  <PhoneIcon className="h-4 w-4" />
601
623
  <input
602
624
  type="tel"
603
625
  placeholder="+1 (555) 123-4567"
604
- className="flex-1 bg-transparent text-sm text-white placeholder:text-white/40"
626
+ className="text-fm-icon-active placeholder:text-fm-placeholder flex-1 bg-transparent text-sm"
605
627
  />
606
628
  </div>
607
629
  </div>
608
- <button className="w-full rounded-lg border border-purple-500/20 bg-purple-500/10 px-4 py-2 text-sm transition-colors hover:bg-purple-500/20">
630
+ <button className="border-fm-secondary-500/20 bg-fm-secondary-500/10 hover:bg-fm-secondary-500/20 w-full rounded-lg border px-4 py-2 text-sm transition-colors">
609
631
  Call Now
610
632
  </button>
611
633
  </div>
612
- <div className="rounded-lg bg-black/40 p-4">
613
- <pre className="overflow-x-auto text-sm !text-green-300">
634
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
635
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
614
636
  {`// Phone input with icon
615
637
  <div className="phone-input">
616
638
  <label>Phone Number</label>
@@ -636,68 +658,68 @@ function ContactCard() {
636
658
 
637
659
  {/* Accessibility */}
638
660
  <div className="!space-y-8">
639
- <h2 className="text-center text-3xl font-bold !text-white">
661
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
640
662
  Accessibility Features
641
663
  </h2>
642
664
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
643
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
644
- <h3 className="text-lg font-semibold !text-green-300">
665
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
666
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
645
667
  ✅ Built-in Features
646
668
  </h3>
647
- <ul className="!space-y-2 text-sm !text-white/70">
648
- <li className="!text-white/70">
669
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
670
+ <li className="text-fm-secondary!">
649
671
  Uses Radix UI AccessibleIcon wrapper
650
672
  </li>
651
- <li className="!text-white/70">
673
+ <li className="text-fm-secondary!">
652
674
  Provides screen reader label "Phone icon"
653
675
  </li>
654
- <li className="!text-white/70">
676
+ <li className="text-fm-secondary!">
655
677
  Supports keyboard navigation when interactive
656
678
  </li>
657
- <li className="!text-white/70">
679
+ <li className="text-fm-secondary!">
658
680
  Maintains proper color contrast ratios
659
681
  </li>
660
- <li className="!text-white/70">
682
+ <li className="text-fm-secondary!">
661
683
  Scales with user's font size preferences
662
684
  </li>
663
685
  </ul>
664
686
  </div>
665
687
 
666
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
667
- <h3 className="text-lg font-semibold !text-purple-300">
688
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
689
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
668
690
  💡 Best Practices
669
691
  </h3>
670
- <ul className="!space-y-2 text-sm text-white/70">
671
- <li className="!text-white/70">
692
+ <ul className="text-fm-secondary !space-y-2 text-sm">
693
+ <li className="text-fm-secondary!">
672
694
  Always provide descriptive aria-labels for call buttons
673
695
  </li>
674
- <li className="!text-white/70">
696
+ <li className="text-fm-secondary!">
675
697
  Include phone number in accessible text when possible
676
698
  </li>
677
- <li className="!text-white/70">
699
+ <li className="text-fm-secondary!">
678
700
  Ensure sufficient touch target size (44px minimum)
679
701
  </li>
680
- <li className="!text-white/70">
702
+ <li className="text-fm-secondary!">
681
703
  Provide visible focus states for keyboard users
682
704
  </li>
683
- <li className="!text-white/70">
705
+ <li className="text-fm-secondary!">
684
706
  Consider voice control compatibility
685
707
  </li>
686
708
  </ul>
687
709
  </div>
688
710
  </div>
689
711
 
690
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
691
- <h3 className="mb-4 text-lg font-semibold !text-violet-300">
712
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
713
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
692
714
  Proper ARIA Implementation
693
715
  </h3>
694
716
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
695
- <div className="rounded-lg bg-black/40 p-4">
696
- <pre className="overflow-x-auto text-sm !text-cyan-300">
717
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
718
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
697
719
  {`// Call button with proper ARIA
698
720
  <button
699
721
  aria-label={\`Call \${contactName}\`}
700
- className="p-2 hover:bg-white/10 rounded-lg"
722
+ className="p-2 hover:bg-fm-surface-secondary rounded-lg"
701
723
  onClick={() => makeCall(phoneNumber)}
702
724
  >
703
725
  <PhoneIcon className="h-6 w-6" />
@@ -723,14 +745,14 @@ function ContactCard() {
723
745
  </pre>
724
746
  </div>
725
747
  <div className="!space-y-4">
726
- <p className="text-sm !text-white/70">
748
+ <p className="text-fm-secondary! text-sm">
727
749
  When using PhoneIcon for interactive elements, always
728
750
  provide clear context about who or what will be called,
729
751
  and ensure the phone number is accessible to screen
730
752
  readers.
731
753
  </p>
732
- <div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
733
- <div className="flex items-center gap-2 text-sm text-purple-200">
754
+ <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
755
+ <div className="text-fm-secondary-600 flex items-center gap-2 text-sm">
734
756
  <PhoneIcon className="h-4 w-4" />
735
757
  <span>
736
758
  Screen readers need context about the call
@@ -745,44 +767,56 @@ function ContactCard() {
745
767
 
746
768
  {/* Related Icons */}
747
769
  <div className="!space-y-8">
748
- <h2 className="text-center text-3xl font-bold !text-white">
770
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
749
771
  Related Icons
750
772
  </h2>
751
773
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
752
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
753
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
754
- <span className="!text-2xl !text-white">📧</span>
774
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
775
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
776
+ <span className="text-fm-icon-active! !text-2xl">📧</span>
755
777
  </div>
756
778
  <div>
757
- <div className="font-medium text-white">EmailIcon</div>
758
- <div className="text-xs text-white/60">Send email</div>
779
+ <div className="text-fm-icon-active font-medium">
780
+ EmailIcon
781
+ </div>
782
+ <div className="text-fm-tertiary text-xs">Send email</div>
759
783
  </div>
760
784
  </div>
761
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
762
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
763
- <span className="!text-2xl !text-white">💬</span>
785
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
786
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
787
+ <span className="text-fm-icon-active! !text-2xl">💬</span>
764
788
  </div>
765
789
  <div>
766
- <div className="font-medium text-white">MessageIcon</div>
767
- <div className="text-xs text-white/60">Send message</div>
790
+ <div className="text-fm-icon-active font-medium">
791
+ MessageIcon
792
+ </div>
793
+ <div className="text-fm-tertiary text-xs">
794
+ Send message
795
+ </div>
768
796
  </div>
769
797
  </div>
770
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
771
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
772
- <span className="!text-2xl !text-white">📱</span>
798
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
799
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
800
+ <span className="text-fm-icon-active! !text-2xl">📱</span>
773
801
  </div>
774
802
  <div>
775
- <div className="font-medium text-white">MobileIcon</div>
776
- <div className="text-xs text-white/60">Mobile device</div>
803
+ <div className="text-fm-icon-active font-medium">
804
+ MobileIcon
805
+ </div>
806
+ <div className="text-fm-tertiary text-xs">
807
+ Mobile device
808
+ </div>
777
809
  </div>
778
810
  </div>
779
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
780
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
781
- <span className="!text-2xl !text-white">👤</span>
811
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
812
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
813
+ <span className="text-fm-icon-active! !text-2xl">👤</span>
782
814
  </div>
783
815
  <div>
784
- <div className="font-medium text-white">UserIcon</div>
785
- <div className="text-xs text-white/60">
816
+ <div className="text-fm-icon-active font-medium">
817
+ UserIcon
818
+ </div>
819
+ <div className="text-fm-tertiary text-xs">
786
820
  Contact profile
787
821
  </div>
788
822
  </div>
@@ -792,14 +826,14 @@ function ContactCard() {
792
826
  </div>
793
827
 
794
828
  {/* Footer */}
795
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
829
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
796
830
  <div className="!mx-auto max-w-7xl px-6 py-8">
797
831
  <div className="!space-y-4 text-center">
798
- <p className="!text-white/60">
832
+ <p className="text-fm-tertiary!">
799
833
  PhoneIcon is part of the Aural UI icon library, built with
800
834
  accessibility and communication best practices in mind.
801
835
  </p>
802
- <p className="text-sm !text-white/40">
836
+ <p className="text-fm-placeholder! text-sm">
803
837
  All icons use Radix UI's AccessibleIcon for screen reader
804
838
  compatibility and follow WCAG guidelines.
805
839
  </p>
@@ -852,8 +886,8 @@ const storyParameters = {
852
886
  backgrounds: {
853
887
  default: "dark",
854
888
  values: [
855
- { name: "dark", value: "#0a0a0a" },
856
- { name: "darker", value: "#000000" },
889
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
890
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
857
891
  ],
858
892
  },
859
893
  }
@@ -865,7 +899,7 @@ export const Default: Story = {
865
899
  },
866
900
  parameters: storyParameters,
867
901
  render: (args) => (
868
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
902
+ <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">
869
903
  <PhoneIcon {...args} />
870
904
  </div>
871
905
  ),
@@ -882,30 +916,30 @@ export const SizeVariations: Story = {
882
916
  },
883
917
  },
884
918
  render: () => (
885
- <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">
919
+ <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">
886
920
  <div className="text-center">
887
921
  <PhoneIcon className="!mx-auto mb-2 h-3 w-3" />
888
- <span className="text-xs text-white/60">12px</span>
922
+ <span className="text-fm-tertiary text-xs">12px</span>
889
923
  </div>
890
924
  <div className="text-center">
891
925
  <PhoneIcon className="!mx-auto mb-2 h-4 w-4" />
892
- <span className="text-xs text-white/60">16px</span>
926
+ <span className="text-fm-tertiary text-xs">16px</span>
893
927
  </div>
894
928
  <div className="text-center">
895
929
  <PhoneIcon className="!mx-auto mb-2 h-5 w-5" />
896
- <span className="text-xs text-white/60">20px</span>
930
+ <span className="text-fm-tertiary text-xs">20px</span>
897
931
  </div>
898
932
  <div className="text-center">
899
933
  <PhoneIcon className="!mx-auto mb-2 h-6 w-6" />
900
- <span className="text-xs text-white/60">24px</span>
934
+ <span className="text-fm-tertiary text-xs">24px</span>
901
935
  </div>
902
936
  <div className="text-center">
903
937
  <PhoneIcon className="!mx-auto mb-2 h-8 w-8" />
904
- <span className="text-xs text-white/60">32px</span>
938
+ <span className="text-fm-tertiary text-xs">32px</span>
905
939
  </div>
906
940
  <div className="text-center">
907
941
  <PhoneIcon className="!mx-auto mb-2 h-12 w-12" />
908
- <span className="text-xs text-white/60">48px</span>
942
+ <span className="text-fm-tertiary text-xs">48px</span>
909
943
  </div>
910
944
  </div>
911
945
  ),
@@ -921,34 +955,38 @@ export const ColorVariations: Story = {
921
955
  },
922
956
  },
923
957
  render: () => (
924
- <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">
958
+ <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">
925
959
  <div className="text-center">
926
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
960
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
927
961
  <PhoneIcon className="h-8 w-8" />
928
962
  </div>
929
- <div className="text-sm font-medium text-white">Primary</div>
930
- <div className="text-xs">text-purple-400</div>
963
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
964
+ <div className="text-xs">text-fm-secondary-600</div>
931
965
  </div>
932
966
  <div className="text-center">
933
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-violet-500/30 bg-violet-500/20">
934
- <PhoneIcon className="h-8 w-8 text-violet-400" />
967
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
968
+ <PhoneIcon className="text-fm-secondary-600 h-8 w-8" />
969
+ </div>
970
+ <div className="text-fm-icon-active text-sm font-medium">Secondary</div>
971
+ <div className="text-fm-secondary-600 text-xs">
972
+ text-fm-secondary-600
935
973
  </div>
936
- <div className="text-sm font-medium text-white">Secondary</div>
937
- <div className="text-xs text-violet-400">text-violet-400</div>
938
974
  </div>
939
975
  <div className="text-center">
940
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-fuchsia-500/30 bg-fuchsia-500/20">
941
- <PhoneIcon className="h-8 w-8 text-fuchsia-400" />
976
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
977
+ <PhoneIcon className="text-fm-secondary-600 h-8 w-8" />
978
+ </div>
979
+ <div className="text-fm-icon-active text-sm font-medium">Accent</div>
980
+ <div className="text-fm-secondary-600 text-xs">
981
+ text-fm-secondary-600
942
982
  </div>
943
- <div className="text-sm font-medium text-white">Accent</div>
944
- <div className="text-xs text-fuchsia-400">text-fuchsia-400</div>
945
983
  </div>
946
984
  <div className="text-center">
947
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/10 bg-white/5">
948
- <PhoneIcon className="h-8 w-8 text-white/40" />
985
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
986
+ <PhoneIcon className="text-fm-placeholder h-8 w-8" />
949
987
  </div>
950
- <div className="text-sm font-medium text-white">Disabled</div>
951
- <div className="text-xs text-white/40">text-white/40</div>
988
+ <div className="text-fm-icon-active text-sm font-medium">Disabled</div>
989
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
952
990
  </div>
953
991
  </div>
954
992
  ),
@@ -965,20 +1003,24 @@ export const UsageExamples: Story = {
965
1003
  },
966
1004
  },
967
1005
  render: () => (
968
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1006
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
969
1007
  {/* Contact Card */}
970
1008
  <div className="!space-y-2">
971
- <h3 className="text-sm font-medium text-white">Contact Card</h3>
972
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1009
+ <h3 className="text-fm-icon-active text-sm font-medium">
1010
+ Contact Card
1011
+ </h3>
1012
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
973
1013
  <div className="mb-4 flex items-center gap-3">
974
- <div className="h-12 w-12 rounded-full bg-gradient-to-br from-purple-500/20 to-violet-500/20" />
1014
+ <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 h-12 w-12 rounded-full bg-linear-to-br" />
975
1015
  <div>
976
- <div className="text-sm font-medium text-white">John Doe</div>
977
- <div className="text-xs text-white/60">+1 (555) 123-4567</div>
1016
+ <div className="text-fm-icon-active text-sm font-medium">
1017
+ John Doe
1018
+ </div>
1019
+ <div className="text-fm-tertiary text-xs">+1 (555) 123-4567</div>
978
1020
  </div>
979
1021
  </div>
980
1022
  <div className="flex items-center justify-center gap-4">
981
- <button className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-3 transition-colors hover:bg-purple-500/20">
1023
+ <button className="border-fm-secondary-500/20 bg-fm-secondary-500/10 hover:bg-fm-secondary-500/20 rounded-lg border p-3 transition-colors">
982
1024
  <PhoneIcon className="h-6 w-6" />
983
1025
  </button>
984
1026
  </div>
@@ -987,26 +1029,32 @@ export const UsageExamples: Story = {
987
1029
 
988
1030
  {/* Call History */}
989
1031
  <div className="!space-y-2">
990
- <h3 className="text-sm font-medium text-white">Call History</h3>
991
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1032
+ <h3 className="text-fm-icon-active text-sm font-medium">
1033
+ Call History
1034
+ </h3>
1035
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
992
1036
  <div className="!space-y-3">
993
1037
  <div className="flex items-center justify-between">
994
1038
  <div>
995
- <div className="text-sm font-medium text-white">Jane Smith</div>
996
- <div className="text-xs text-white/60">Today, 2:30 PM</div>
1039
+ <div className="text-fm-icon-active text-sm font-medium">
1040
+ Jane Smith
1041
+ </div>
1042
+ <div className="text-fm-tertiary text-xs">Today, 2:30 PM</div>
997
1043
  </div>
998
- <button className="rounded-lg p-2 hover:bg-white/10">
1044
+ <button className="hover:bg-fm-surface-secondary rounded-lg p-2">
999
1045
  <PhoneIcon className="h-5 w-5" />
1000
1046
  </button>
1001
1047
  </div>
1002
1048
  <div className="flex items-center justify-between">
1003
1049
  <div>
1004
- <div className="text-sm font-medium text-white">
1050
+ <div className="text-fm-icon-active text-sm font-medium">
1005
1051
  Bob Johnson
1006
1052
  </div>
1007
- <div className="text-xs text-white/60">Yesterday, 4:15 PM</div>
1053
+ <div className="text-fm-tertiary text-xs">
1054
+ Yesterday, 4:15 PM
1055
+ </div>
1008
1056
  </div>
1009
- <button className="rounded-lg p-2 hover:bg-white/10">
1057
+ <button className="hover:bg-fm-surface-secondary rounded-lg p-2">
1010
1058
  <PhoneIcon className="h-5 w-5" />
1011
1059
  </button>
1012
1060
  </div>
@@ -1030,11 +1078,11 @@ export const Playground: Story = {
1030
1078
  args: {
1031
1079
  width: 24,
1032
1080
  height: 24,
1033
- className: "text-purple-400",
1081
+ className: "text-fm-secondary-600",
1034
1082
  },
1035
1083
  render: (args) => (
1036
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1037
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1084
+ <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">
1085
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1038
1086
  <PhoneIcon {...args} />
1039
1087
  </div>
1040
1088
  </div>