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 EyeOpenIcon> = {
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 EyeOpenIcon> = {
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-blue-500/10 via-transparent to-green-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-icon-info/10 to-fm-icon-positive/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-blue-500/30 bg-gradient-to-br from-blue-500/20 to-green-500/20">
90
- <EyeOpenIcon className="h-12 w-12 text-blue-400" />
89
+ <div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-positive/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <EyeOpenIcon className="text-fm-icon-info h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  EyeOpenIcon
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 visibility toggle icon for showing content, password
97
97
  fields, and interactive elements. Features an open eye
98
98
  design that clearly indicates visible or public state.
@@ -104,26 +104,30 @@ const meta: Meta<typeof EyeOpenIcon> = {
104
104
  {/* Stats */}
105
105
  <div className="flex items-center justify-center gap-8 pt-8">
106
106
  <div className="text-center">
107
- <div className="text-3xl font-bold text-blue-300">
107
+ <div className="text-fm-icon-info text-3xl font-bold">
108
108
  Visible
109
109
  </div>
110
- <div className="text-sm text-white/60">Content shown</div>
110
+ <div className="text-fm-tertiary text-sm">
111
+ Content shown
112
+ </div>
111
113
  </div>
112
- <div className="h-8 w-px bg-white/20" />
114
+ <div className="bg-fm-divider-primary h-8 w-px" />
113
115
  <div className="text-center">
114
- <div className="text-3xl font-bold text-green-300">
116
+ <div className="text-fm-icon-positive text-3xl font-bold">
115
117
  Accessible
116
118
  </div>
117
- <div className="text-sm text-white/60">
119
+ <div className="text-fm-tertiary text-sm">
118
120
  Screen reader friendly
119
121
  </div>
120
122
  </div>
121
- <div className="h-8 w-px bg-white/20" />
123
+ <div className="bg-fm-divider-primary h-8 w-px" />
122
124
  <div className="text-center">
123
- <div className="text-3xl font-bold text-indigo-300">
125
+ <div className="text-fm-icon-info text-3xl font-bold">
124
126
  Interactive
125
127
  </div>
126
- <div className="text-sm text-white/60">Toggle states</div>
128
+ <div className="text-fm-tertiary text-sm">
129
+ Toggle states
130
+ </div>
127
131
  </div>
128
132
  </div>
129
133
  </div>
@@ -134,16 +138,16 @@ const meta: Meta<typeof EyeOpenIcon> = {
134
138
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
135
139
  {/* Quick Usage */}
136
140
  <div className="!space-y-8">
137
- <h2 className="text-center text-3xl font-bold !text-white">
141
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
138
142
  Quick Start
139
143
  </h2>
140
144
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
141
145
  <div className="!space-y-4">
142
- <h3 className="text-xl font-semibold !text-blue-300">
146
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
143
147
  Basic Usage
144
148
  </h3>
145
- <div className="rounded-lg bg-black/40 p-4">
146
- <pre className="overflow-x-auto text-sm !text-green-300">
149
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
150
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
147
151
  {`import { EyeOpenIcon } from "@icons/eye-open-icon"
148
152
 
149
153
  function PasswordField() {
@@ -169,19 +173,19 @@ function PasswordField() {
169
173
  </div>
170
174
 
171
175
  <div className="!space-y-4">
172
- <h3 className="text-xl font-semibold !text-blue-300">
176
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
173
177
  Live Preview
174
178
  </h3>
175
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
179
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
176
180
  <div className="relative">
177
181
  <input
178
182
  type="text"
179
183
  placeholder="Visible password"
180
184
  defaultValue="mypassword123"
181
- className="rounded-lg border border-white/20 bg-white/5 px-3 py-2 pr-10 text-white placeholder-white/50"
185
+ className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-3 py-2 pr-10 placeholder-white/50"
182
186
  />
183
- <button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 hover:bg-white/10">
184
- <EyeOpenIcon className="h-5 w-5 text-blue-400" />
187
+ <button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1">
188
+ <EyeOpenIcon className="text-fm-icon-info h-5 w-5" />
185
189
  </button>
186
190
  </div>
187
191
  </div>
@@ -191,118 +195,130 @@ function PasswordField() {
191
195
 
192
196
  {/* Props Documentation */}
193
197
  <div className="!space-y-8">
194
- <h2 className="text-center text-3xl font-bold !text-white">
198
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
195
199
  Props & Configuration
196
200
  </h2>
197
201
 
198
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
199
- <div className="bg-white/5 p-4">
200
- <h3 className="text-xl font-semibold !text-white">Props</h3>
202
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
203
+ <div className="bg-fm-surface-secondary p-4">
204
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
205
+ Props
206
+ </h3>
201
207
  </div>
202
208
  <table className="!my-0 w-full">
203
- <thead className="bg-white/5">
204
- <tr className="border-b border-white/10">
205
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
209
+ <thead className="bg-fm-surface-secondary">
210
+ <tr className="border-fm-divider-secondary border-b">
211
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
206
212
  Prop
207
213
  </th>
208
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
214
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
209
215
  Type
210
216
  </th>
211
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
217
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
212
218
  Default
213
219
  </th>
214
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
220
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
215
221
  Description
216
222
  </th>
217
223
  </tr>
218
224
  </thead>
219
225
  <tbody>
220
226
  {" "}
221
- <tr className="!bg-black/10">
222
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
227
+ <tr className="bg-fm-surface-secondary!">
228
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
223
229
  withAccessibility
224
230
  </td>
225
- <td className="px-6 py-4 text-sm !text-white/70">
231
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
226
232
  boolean
227
233
  </td>
228
- <td className="px-6 py-4 text-sm !text-white/50">
234
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
229
235
  true
230
236
  </td>
231
- <td className="px-6 py-4 text-sm !text-white/70">
237
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
232
238
  Whether to wrap the icon with accessibility feature
233
239
  </td>
234
240
  </tr>
235
- <tr className="border-b border-white/5 !bg-black/10">
236
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
241
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
242
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
237
243
  height
238
244
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/70">
245
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
240
246
  number | string
241
247
  </td>
242
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
243
- <td className="px-6 py-4 text-sm !text-white/70">
248
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
249
+ 24
250
+ </td>
251
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
244
252
  Height of the icon in pixels
245
253
  </td>
246
254
  </tr>
247
- <tr className="border-b border-white/5">
248
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
255
+ <tr className="border-fm-divider-tertiary border-b">
256
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
249
257
  stroke
250
258
  </td>
251
- <td className="px-6 py-4 text-sm !text-white/70">
259
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
252
260
  string
253
261
  </td>
254
- <td className="px-6 py-4 text-sm !text-white/50">
262
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
255
263
  currentColor
256
264
  </td>
257
- <td className="px-6 py-4 text-sm !text-white/70">
265
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
258
266
  Stroke color of the icon
259
267
  </td>
260
268
  </tr>
261
- <tr className="border-b border-white/5 !bg-black/10">
262
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
269
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
270
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
263
271
  strokeWidth
264
272
  </td>
265
- <td className="px-6 py-4 text-sm !text-white/70">
273
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
266
274
  string | number
267
275
  </td>
268
- <td className="px-6 py-4 text-sm !text-white/50">1</td>
269
- <td className="px-6 py-4 text-sm !text-white/70">
276
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
277
+ 1
278
+ </td>
279
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
270
280
  Stroke width of the icon lines
271
281
  </td>
272
282
  </tr>
273
- <tr className="border-b border-white/5">
274
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
283
+ <tr className="border-fm-divider-tertiary border-b">
284
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
275
285
  className
276
286
  </td>
277
- <td className="px-6 py-4 text-sm !text-white/70">
287
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
278
288
  string
279
289
  </td>
280
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
281
- <td className="px-6 py-4 text-sm !text-white/70">
290
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
291
+ -
292
+ </td>
293
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
282
294
  CSS classes for styling (use for overrides)
283
295
  </td>
284
296
  </tr>
285
- <tr className="border-b border-white/5 !bg-black/10">
286
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
297
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
298
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
287
299
  onClick
288
300
  </td>
289
- <td className="px-6 py-4 text-sm !text-white/70">
301
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
290
302
  function
291
303
  </td>
292
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
293
- <td className="px-6 py-4 text-sm !text-white/70">
304
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
305
+ -
306
+ </td>
307
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
294
308
  Click handler for toggle functionality
295
309
  </td>
296
310
  </tr>
297
- <tr className="!bg-black/10">
298
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
311
+ <tr className="bg-fm-surface-secondary!">
312
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
299
313
  ...svgProps
300
314
  </td>
301
- <td className="px-6 py-4 text-sm !text-white/70">
315
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
302
316
  SVGProps
303
317
  </td>
304
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
305
- <td className="px-6 py-4 text-sm !text-white/70">
318
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
319
+ -
320
+ </td>
321
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
306
322
  All standard SVG element props
307
323
  </td>
308
324
  </tr>
@@ -313,50 +329,62 @@ function PasswordField() {
313
329
 
314
330
  {/* Size Variations */}
315
331
  <div className="!space-y-8">
316
- <h2 className="text-center text-3xl font-bold !text-white">
332
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
317
333
  Size Variations
318
334
  </h2>
319
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
335
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
320
336
  <div className="!space-y-6">
321
337
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
322
338
  <div className="!space-y-4">
323
- <h3 className="text-lg font-semibold !text-blue-300">
339
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
324
340
  Standard Sizes
325
341
  </h3>
326
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
342
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
327
343
  <div className="text-center">
328
- <EyeOpenIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
329
- <span className="text-xs text-white/60">12px</span>
344
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
345
+ <span className="text-fm-tertiary text-xs">
346
+ 12px
347
+ </span>
330
348
  </div>
331
349
  <div className="text-center">
332
- <EyeOpenIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
333
- <span className="text-xs text-white/60">16px</span>
350
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
351
+ <span className="text-fm-tertiary text-xs">
352
+ 16px
353
+ </span>
334
354
  </div>
335
355
  <div className="text-center">
336
- <EyeOpenIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
337
- <span className="text-xs text-white/60">20px</span>
356
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
357
+ <span className="text-fm-tertiary text-xs">
358
+ 20px
359
+ </span>
338
360
  </div>
339
361
  <div className="text-center">
340
- <EyeOpenIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
341
- <span className="text-xs text-white/60">24px</span>
362
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
363
+ <span className="text-fm-tertiary text-xs">
364
+ 24px
365
+ </span>
342
366
  </div>
343
367
  <div className="text-center">
344
- <EyeOpenIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
345
- <span className="text-xs text-white/60">32px</span>
368
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
369
+ <span className="text-fm-tertiary text-xs">
370
+ 32px
371
+ </span>
346
372
  </div>
347
373
  <div className="text-center">
348
- <EyeOpenIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
349
- <span className="text-xs text-white/60">48px</span>
374
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
375
+ <span className="text-fm-tertiary text-xs">
376
+ 48px
377
+ </span>
350
378
  </div>
351
379
  </div>
352
380
  </div>
353
381
 
354
382
  <div className="!space-y-4">
355
- <h3 className="text-lg font-semibold !text-blue-300">
383
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
356
384
  Code Example
357
385
  </h3>
358
- <div className="rounded-lg bg-black/40 p-4">
359
- <pre className="overflow-x-auto text-sm !text-cyan-300">
386
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
387
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
360
388
  {`// Small (16px)
361
389
  <EyeOpenIcon className="h-4 w-4 " />
362
390
 
@@ -382,56 +410,56 @@ function PasswordField() {
382
410
 
383
411
  {/* Color Variations */}
384
412
  <div className="!space-y-8">
385
- <h2 className="text-center text-3xl font-bold !text-white">
413
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
386
414
  Color Variations
387
415
  </h2>
388
416
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
389
417
  <div className="!space-y-4">
390
- <h3 className="text-lg font-semibold !text-blue-300">
418
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
391
419
  Semantic Colors
392
420
  </h3>
393
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
421
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
394
422
  <div className="flex items-center gap-4">
395
- <EyeOpenIcon className="h-6 w-6 text-blue-400" />
423
+ <EyeOpenIcon className="text-fm-icon-info h-6 w-6" />
396
424
  <div>
397
- <div className="text-sm font-medium text-white">
425
+ <div className="text-fm-icon-active text-sm font-medium">
398
426
  Default / Visible
399
427
  </div>
400
- <div className="text-xs text-white/60">
401
- text-blue-400
428
+ <div className="text-fm-tertiary text-xs">
429
+ text-fm-icon-info
402
430
  </div>
403
431
  </div>
404
432
  </div>
405
433
  <div className="flex items-center gap-4">
406
- <EyeOpenIcon className="h-6 w-6 text-green-400" />
434
+ <EyeOpenIcon className="text-fm-icon-positive h-6 w-6" />
407
435
  <div>
408
- <div className="text-sm font-medium text-white">
436
+ <div className="text-fm-icon-active text-sm font-medium">
409
437
  Active
410
438
  </div>
411
- <div className="text-xs text-white/60">
412
- text-green-400
439
+ <div className="text-fm-tertiary text-xs">
440
+ text-fm-icon-positive
413
441
  </div>
414
442
  </div>
415
443
  </div>
416
444
  <div className="flex items-center gap-4">
417
- <EyeOpenIcon className="h-6 w-6 text-purple-400" />
445
+ <EyeOpenIcon className="text-fm-secondary-600 h-6 w-6" />
418
446
  <div>
419
- <div className="text-sm font-medium text-white">
447
+ <div className="text-fm-icon-active text-sm font-medium">
420
448
  Interactive
421
449
  </div>
422
- <div className="text-xs text-white/60">
423
- text-purple-400
450
+ <div className="text-fm-tertiary text-xs">
451
+ text-fm-secondary-600
424
452
  </div>
425
453
  </div>
426
454
  </div>
427
455
  <div className="flex items-center gap-4">
428
- <EyeOpenIcon className="h-6 w-6 text-slate-400" />
456
+ <EyeOpenIcon className="text-fm-tertiary h-6 w-6" />
429
457
  <div>
430
- <div className="text-sm font-medium text-white">
458
+ <div className="text-fm-icon-active text-sm font-medium">
431
459
  Neutral
432
460
  </div>
433
- <div className="text-xs text-white/60">
434
- text-slate-400
461
+ <div className="text-fm-tertiary text-xs">
462
+ text-fm-tertiary
435
463
  </div>
436
464
  </div>
437
465
  </div>
@@ -439,11 +467,11 @@ function PasswordField() {
439
467
  </div>
440
468
 
441
469
  <div className="!space-y-4">
442
- <h3 className="text-lg font-semibold !text-blue-300">
470
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
443
471
  Custom Colors
444
472
  </h3>
445
- <div className="rounded-lg bg-black/40 p-4">
446
- <pre className="overflow-x-auto text-sm !text-green-300">
473
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
474
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
447
475
  {`// Using Tailwind classes with
448
476
  <EyeOpenIcon className="h-6 w-6 text-blue-400 " />
449
477
  <EyeOpenIcon className="h-6 w-6 text-green-500 " />
@@ -469,39 +497,39 @@ function PasswordField() {
469
497
 
470
498
  {/* Usage Examples */}
471
499
  <div className="!space-y-8">
472
- <h2 className="text-center text-3xl font-bold !text-white">
500
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
473
501
  Usage Examples
474
502
  </h2>
475
503
 
476
504
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
477
505
  {/* Password Field */}
478
506
  <div className="!space-y-4">
479
- <h3 className="text-lg font-semibold !text-blue-300">
507
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
480
508
  Password Field Toggle
481
509
  </h3>
482
510
  <div className="!space-y-4">
483
511
  <div className="!space-y-2">
484
- <label className="text-sm font-medium !text-white">
512
+ <label className="text-fm-icon-active! text-sm font-medium">
485
513
  Password
486
514
  </label>
487
515
  <div className="relative">
488
516
  <input
489
517
  type="text"
490
- className="w-full rounded-lg border border-white/20 bg-white/5 px-3 py-2 pr-10 !text-white placeholder-white/50 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/20"
518
+ className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-icon-info w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-blue-400/20"
491
519
  placeholder="Enter your password"
492
520
  defaultValue="myvisiblepassword"
493
521
  />
494
- <button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 transition-colors hover:bg-white/10">
495
- <EyeOpenIcon className="h-5 w-5 text-blue-400" />
522
+ <button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 transition-colors">
523
+ <EyeOpenIcon className="text-fm-icon-info h-5 w-5" />
496
524
  </button>
497
525
  </div>
498
- <p className="text-xs !text-white/60">
526
+ <p className="text-fm-tertiary! text-xs">
499
527
  Password is currently visible. Click the eye icon to
500
528
  hide it.
501
529
  </p>
502
530
  </div>
503
- <div className="rounded-lg bg-black/40 p-4">
504
- <pre className="overflow-x-auto text-sm !text-green-300">
531
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
532
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
505
533
  {`// Password visibility toggle
506
534
  const [showPassword, setShowPassword] = useState(true)
507
535
 
@@ -528,32 +556,32 @@ const [showPassword, setShowPassword] = useState(true)
528
556
 
529
557
  {/* Content Reveal */}
530
558
  <div className="!space-y-4">
531
- <h3 className="text-lg font-semibold !text-blue-300">
559
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
532
560
  Content Reveal
533
561
  </h3>
534
562
  <div className="!space-y-4">
535
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
563
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
536
564
  <div className="mb-3 flex items-center justify-between">
537
- <span className="font-medium text-white">
565
+ <span className="text-fm-icon-active font-medium">
538
566
  Protected Content
539
567
  </span>
540
- <button className="flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300">
568
+ <button className="text-fm-icon-info hover:text-fm-icon-info flex items-center gap-2 text-sm">
541
569
  <EyeOpenIcon className="h-4 w-4" />
542
570
  Visible
543
571
  </button>
544
572
  </div>
545
- <div className="rounded-lg border border-blue-500/20 bg-gradient-to-r from-blue-500/10 to-green-500/10 p-6 text-center">
573
+ <div className="border-fm-icon-info/20 from-fm-icon-info/10 to-fm-icon-positive/10 rounded-lg border bg-linear-to-r p-6 text-center">
546
574
  <div className="mb-3 flex items-center justify-center gap-2">
547
- <EyeOpenIcon className="h-6 w-6 text-blue-400" />
548
- <span className="font-medium text-white">
575
+ <EyeOpenIcon className="text-fm-icon-info h-6 w-6" />
576
+ <span className="text-fm-icon-active font-medium">
549
577
  Content is visible
550
578
  </span>
551
579
  </div>
552
- <p className="text-sm !text-white/80">
580
+ <p className="text-fm-icon-active!/80 text-sm">
553
581
  This sensitive information is now displayed. You can
554
582
  view all details below.
555
583
  </p>
556
- <div className="mt-4 rounded bg-black/20 p-3 text-left text-sm text-white/70">
584
+ <div className="bg-fm-surface-secondary text-fm-secondary mt-4 rounded p-3 text-left text-sm">
557
585
  Secret Key: sk_live_123456789
558
586
  <br />
559
587
  API Endpoint: https://api.example.com/v1
@@ -562,8 +590,8 @@ const [showPassword, setShowPassword] = useState(true)
562
590
  </div>
563
591
  </div>
564
592
  </div>
565
- <div className="rounded-lg bg-black/40 p-4">
566
- <pre className="overflow-x-auto text-sm !text-green-300">
593
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
594
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
567
595
  {`// Content reveal with visible state
568
596
  <div className="border border-blue-500/20 bg-gradient-to-r from-blue-500/10 to-green-500/10 p-6 text-center rounded-lg">
569
597
  <div className="flex items-center justify-center gap-2 mb-3">
@@ -581,56 +609,56 @@ const [showPassword, setShowPassword] = useState(true)
581
609
 
582
610
  {/* Visibility Settings */}
583
611
  <div className="!space-y-4">
584
- <h3 className="text-lg font-semibold !text-blue-300">
612
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
585
613
  Visibility Settings
586
614
  </h3>
587
615
  <div className="!space-y-4">
588
616
  <div className="!space-y-3">
589
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-4">
617
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
590
618
  <div className="flex items-center gap-3">
591
- <EyeOpenIcon className="h-5 w-5 text-blue-400" />
619
+ <EyeOpenIcon className="text-fm-icon-info h-5 w-5" />
592
620
  <div>
593
- <div className="text-sm font-medium text-white">
621
+ <div className="text-fm-icon-active text-sm font-medium">
594
622
  Profile Visibility
595
623
  </div>
596
- <div className="text-xs text-white/60">
624
+ <div className="text-fm-tertiary text-xs">
597
625
  Your profile is visible to everyone
598
626
  </div>
599
627
  </div>
600
628
  </div>
601
629
  <div className="flex items-center">
602
- <span className="mr-3 text-xs text-blue-400">
630
+ <span className="text-fm-icon-info mr-3 text-xs">
603
631
  Public
604
632
  </span>
605
- <div className="relative h-6 w-11 rounded-full bg-blue-600">
606
- <div className="absolute top-1 right-1 h-4 w-4 rounded-full bg-white transition-transform"></div>
633
+ <div className="bg-fm-icon-info relative h-6 w-11 rounded-full">
634
+ <div className="bg-fm-surface-contrast absolute top-1 right-1 h-4 w-4 rounded-full transition-transform"></div>
607
635
  </div>
608
636
  </div>
609
637
  </div>
610
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-4">
638
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
611
639
  <div className="flex items-center gap-3">
612
- <EyeOpenIcon className="h-5 w-5 text-green-400" />
640
+ <EyeOpenIcon className="text-fm-icon-positive h-5 w-5" />
613
641
  <div>
614
- <div className="text-sm font-medium text-white">
642
+ <div className="text-fm-icon-active text-sm font-medium">
615
643
  Activity Status
616
644
  </div>
617
- <div className="text-xs text-white/60">
645
+ <div className="text-fm-tertiary text-xs">
618
646
  Show your online status
619
647
  </div>
620
648
  </div>
621
649
  </div>
622
650
  <div className="flex items-center">
623
- <span className="mr-3 text-xs text-green-400">
651
+ <span className="text-fm-icon-positive mr-3 text-xs">
624
652
  Visible
625
653
  </span>
626
- <div className="relative h-6 w-11 rounded-full bg-green-600">
627
- <div className="absolute top-1 right-1 h-4 w-4 rounded-full bg-white transition-transform"></div>
654
+ <div className="bg-fm-icon-positive relative h-6 w-11 rounded-full">
655
+ <div className="bg-fm-surface-contrast absolute top-1 right-1 h-4 w-4 rounded-full transition-transform"></div>
628
656
  </div>
629
657
  </div>
630
658
  </div>
631
659
  </div>
632
- <div className="rounded-lg bg-black/40 p-4">
633
- <pre className="overflow-x-auto text-sm !text-green-300">
660
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
661
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
634
662
  {`// Visibility setting item
635
663
  <div className="flex items-center justify-between p-4 border border-white/10 bg-white/5 rounded-lg">
636
664
  <div className="flex items-center gap-3">
@@ -649,35 +677,35 @@ const [showPassword, setShowPassword] = useState(true)
649
677
 
650
678
  {/* Data Transparency */}
651
679
  <div className="!space-y-4">
652
- <h3 className="text-lg font-semibold !text-blue-300">
680
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
653
681
  Data Transparency
654
682
  </h3>
655
683
  <div className="!space-y-4">
656
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
684
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
657
685
  <div className="flex items-start gap-3">
658
- <EyeOpenIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-blue-400" />
686
+ <EyeOpenIcon className="text-fm-icon-info mt-0.5 h-5 w-5 flex-shrink-0" />
659
687
  <div>
660
- <h4 className="font-medium !text-blue-200">
688
+ <h4 className="text-fm-icon-info! font-medium">
661
689
  Transparent Data Usage
662
690
  </h4>
663
- <p className="text-sm !text-blue-300/80">
691
+ <p className="text-fm-icon-info!/80 text-sm">
664
692
  Your data usage is fully visible and trackable.
665
693
  You can see exactly how your information is being
666
694
  processed.
667
695
  </p>
668
696
  <div className="mt-2 flex gap-2">
669
- <span className="inline-flex items-center rounded bg-blue-500/20 px-2 py-1 text-xs text-blue-300">
697
+ <span className="bg-fm-icon-info/20 text-fm-icon-info inline-flex items-center rounded px-2 py-1 text-xs">
670
698
  Fully transparent
671
699
  </span>
672
- <span className="inline-flex items-center rounded bg-green-500/20 px-2 py-1 text-xs text-green-300">
700
+ <span className="bg-fm-icon-positive/20 text-fm-icon-positive inline-flex items-center rounded px-2 py-1 text-xs">
673
701
  Auditable
674
702
  </span>
675
703
  </div>
676
704
  </div>
677
705
  </div>
678
706
  </div>
679
- <div className="rounded-lg bg-black/40 p-4">
680
- <pre className="overflow-x-auto text-sm !text-green-300">
707
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
708
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
681
709
  {`// Data transparency notice
682
710
  <div className="border border-blue-500/20 bg-blue-500/10 p-4 rounded-lg">
683
711
  <div className="flex items-start gap-3">
@@ -699,64 +727,64 @@ const [showPassword, setShowPassword] = useState(true)
699
727
 
700
728
  {/* Accessibility */}
701
729
  <div className="!space-y-8">
702
- <h2 className="text-center text-3xl font-bold !text-white">
730
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
703
731
  Accessibility Features
704
732
  </h2>
705
733
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
706
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
707
- <h3 className="text-lg font-semibold !text-green-300">
734
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
735
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
708
736
  ✅ Built-in Features
709
737
  </h3>
710
- <ul className="!space-y-2 text-sm !text-white/70">
711
- <li className="!text-white/70">
738
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
739
+ <li className="text-fm-secondary!">
712
740
  Uses Radix UI AccessibleIcon wrapper
713
741
  </li>
714
- <li className="!text-white/70">
742
+ <li className="text-fm-secondary!">
715
743
  Provides screen reader label "Eye Open icon"
716
744
  </li>
717
- <li className="!text-white/70">
745
+ <li className="text-fm-secondary!">
718
746
  Supports keyboard navigation when interactive
719
747
  </li>
720
- <li className="!text-white/70">
748
+ <li className="text-fm-secondary!">
721
749
  Maintains proper color contrast ratios
722
750
  </li>
723
- <li className="!text-white/70">
751
+ <li className="text-fm-secondary!">
724
752
  Scales with user's font size preferences
725
753
  </li>
726
754
  </ul>
727
755
  </div>
728
756
 
729
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
730
- <h3 className="text-lg font-semibold !text-blue-300">
757
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
758
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
731
759
  💡 Best Practices
732
760
  </h3>
733
- <ul className="!space-y-2 text-sm text-white/70">
734
- <li className="!text-white/70">
761
+ <ul className="text-fm-secondary !space-y-2 text-sm">
762
+ <li className="text-fm-secondary!">
735
763
  Always provide clear button labels for toggle actions
736
764
  </li>
737
- <li className="!text-white/70">
765
+ <li className="text-fm-secondary!">
738
766
  Use consistent placement in form fields
739
767
  </li>
740
- <li className="!text-white/70">
768
+ <li className="text-fm-secondary!">
741
769
  Ensure sufficient touch target size (44px minimum)
742
770
  </li>
743
- <li className="!text-white/70">
771
+ <li className="text-fm-secondary!">
744
772
  Provide visible focus states for keyboard users
745
773
  </li>
746
- <li className="!text-white/70">
774
+ <li className="text-fm-secondary!">
747
775
  Consider screen reader announcements for state changes
748
776
  </li>
749
777
  </ul>
750
778
  </div>
751
779
  </div>
752
780
 
753
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
754
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
781
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
782
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
755
783
  Proper ARIA Implementation
756
784
  </h3>
757
785
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
758
- <div className="rounded-lg bg-black/40 p-4">
759
- <pre className="overflow-x-auto text-sm !text-cyan-300">
786
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
787
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
760
788
  {`// Password toggle with proper ARIA
761
789
  <button
762
790
  aria-label={showPassword ? "Hide password" : "Show password"}
@@ -785,13 +813,13 @@ const [showPassword, setShowPassword] = useState(true)
785
813
  </pre>
786
814
  </div>
787
815
  <div className="!space-y-4">
788
- <p className="text-sm !text-white/70">
816
+ <p className="text-fm-secondary! text-sm">
789
817
  When using EyeOpenIcon for interactive elements, always
790
818
  provide descriptive aria-label attributes that explain
791
819
  the current state and what will happen when activated.
792
820
  </p>
793
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
794
- <div className="flex items-center gap-2 text-sm text-blue-200">
821
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
822
+ <div className="text-fm-icon-info flex items-center gap-2 text-sm">
795
823
  <EyeOpenIcon className="h-4 w-4" />
796
824
  <span>
797
825
  Screen readers need context about visibility states
@@ -805,44 +833,54 @@ const [showPassword, setShowPassword] = useState(true)
805
833
 
806
834
  {/* Related Icons */}
807
835
  <div className="!space-y-8">
808
- <h2 className="text-center text-3xl font-bold !text-white">
836
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
809
837
  Related Icons
810
838
  </h2>
811
839
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
812
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
813
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-slate-500/20">
840
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
841
+ <div className="bg-fm-icon-inactive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
814
842
  <span className="text-2xl">🙈</span>
815
843
  </div>
816
844
  <div>
817
- <div className="font-medium text-white">EyeCloseIcon</div>
818
- <div className="text-xs text-white/60">Hide content</div>
845
+ <div className="text-fm-icon-active font-medium">
846
+ EyeCloseIcon
847
+ </div>
848
+ <div className="text-fm-tertiary text-xs">
849
+ Hide content
850
+ </div>
819
851
  </div>
820
852
  </div>
821
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
822
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
853
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
854
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
823
855
  <span className="text-2xl">✅</span>
824
856
  </div>
825
857
  <div>
826
- <div className="font-medium text-white">CheckIcon</div>
827
- <div className="text-xs text-white/60">Verified</div>
858
+ <div className="text-fm-icon-active font-medium">
859
+ CheckIcon
860
+ </div>
861
+ <div className="text-fm-tertiary text-xs">Verified</div>
828
862
  </div>
829
863
  </div>
830
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
831
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
864
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
865
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
832
866
  <span className="text-2xl">🛡️</span>
833
867
  </div>
834
868
  <div>
835
- <div className="font-medium text-white">ShieldIcon</div>
836
- <div className="text-xs text-white/60">Security</div>
869
+ <div className="text-fm-icon-active font-medium">
870
+ ShieldIcon
871
+ </div>
872
+ <div className="text-fm-tertiary text-xs">Security</div>
837
873
  </div>
838
874
  </div>
839
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
840
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
875
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
876
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
841
877
  <span className="text-2xl">⚙️</span>
842
878
  </div>
843
879
  <div>
844
- <div className="font-medium text-white">SettingsIcon</div>
845
- <div className="text-xs text-white/60">Configure</div>
880
+ <div className="text-fm-icon-active font-medium">
881
+ SettingsIcon
882
+ </div>
883
+ <div className="text-fm-tertiary text-xs">Configure</div>
846
884
  </div>
847
885
  </div>
848
886
  </div>
@@ -850,14 +888,14 @@ const [showPassword, setShowPassword] = useState(true)
850
888
  </div>
851
889
 
852
890
  {/* Footer */}
853
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
891
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
854
892
  <div className="!mx-auto max-w-7xl px-6 py-8">
855
893
  <div className="!space-y-4 text-center">
856
- <p className="!text-white/60">
894
+ <p className="text-fm-tertiary!">
857
895
  EyeOpenIcon is part of the Aural UI icon library, built with
858
896
  visibility and accessibility in mind.
859
897
  </p>
860
- <p className="text-sm !text-white/40">
898
+ <p className="text-fm-placeholder! text-sm">
861
899
  All icons use Radix UI's AccessibleIcon for screen reader
862
900
  compatibility and follow WCAG guidelines.
863
901
  </p>
@@ -910,20 +948,20 @@ const storyParameters = {
910
948
  backgrounds: {
911
949
  default: "dark",
912
950
  values: [
913
- { name: "dark", value: "#0a0a0a" },
914
- { name: "darker", value: "#000000" },
951
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
952
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
915
953
  ],
916
954
  },
917
955
  }
918
956
 
919
957
  export const Default: Story = {
920
958
  args: {
921
- className: "h-6 w-6 text-blue-400 ",
959
+ className: "h-6 w-6 text-fm-icon-info ",
922
960
  withAccessibility: true,
923
961
  },
924
962
  parameters: storyParameters,
925
963
  render: (args) => (
926
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
964
+ <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">
927
965
  <EyeOpenIcon {...args} />
928
966
  </div>
929
967
  ),
@@ -940,30 +978,30 @@ export const SizeVariations: Story = {
940
978
  },
941
979
  },
942
980
  render: () => (
943
- <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">
981
+ <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">
944
982
  <div className="text-center">
945
- <EyeOpenIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
946
- <span className="text-xs text-white/60">12px</span>
983
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
984
+ <span className="text-fm-tertiary text-xs">12px</span>
947
985
  </div>
948
986
  <div className="text-center">
949
- <EyeOpenIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
950
- <span className="text-xs text-white/60">16px</span>
987
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
988
+ <span className="text-fm-tertiary text-xs">16px</span>
951
989
  </div>
952
990
  <div className="text-center">
953
- <EyeOpenIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
954
- <span className="text-xs text-white/60">20px</span>
991
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
992
+ <span className="text-fm-tertiary text-xs">20px</span>
955
993
  </div>
956
994
  <div className="text-center">
957
- <EyeOpenIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
958
- <span className="text-xs text-white/60">24px</span>
995
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
996
+ <span className="text-fm-tertiary text-xs">24px</span>
959
997
  </div>
960
998
  <div className="text-center">
961
- <EyeOpenIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
962
- <span className="text-xs text-white/60">32px</span>
999
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
1000
+ <span className="text-fm-tertiary text-xs">32px</span>
963
1001
  </div>
964
1002
  <div className="text-center">
965
- <EyeOpenIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
966
- <span className="text-xs text-white/60">48px</span>
1003
+ <EyeOpenIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
1004
+ <span className="text-fm-tertiary text-xs">48px</span>
967
1005
  </div>
968
1006
  </div>
969
1007
  ),
@@ -980,34 +1018,40 @@ export const ColorVariations: Story = {
980
1018
  },
981
1019
  },
982
1020
  render: () => (
983
- <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">
1021
+ <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">
984
1022
  <div className="text-center">
985
- <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">
986
- <EyeOpenIcon className="h-8 w-8 text-blue-400" />
1023
+ <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">
1024
+ <EyeOpenIcon className="text-fm-icon-info h-8 w-8" />
987
1025
  </div>
988
- <div className="text-sm font-medium text-white">Default</div>
989
- <div className="text-xs text-blue-400">text-blue-400</div>
1026
+ <div className="text-fm-icon-active text-sm font-medium">Default</div>
1027
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
990
1028
  </div>
991
1029
  <div className="text-center">
992
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
993
- <EyeOpenIcon className="h-8 w-8 text-green-400" />
1030
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1031
+ <EyeOpenIcon className="text-fm-icon-positive h-8 w-8" />
1032
+ </div>
1033
+ <div className="text-fm-icon-active text-sm font-medium">Active</div>
1034
+ <div className="text-fm-icon-positive text-xs">
1035
+ text-fm-icon-positive
994
1036
  </div>
995
- <div className="text-sm font-medium text-white">Active</div>
996
- <div className="text-xs text-green-400">text-green-400</div>
997
1037
  </div>
998
1038
  <div className="text-center">
999
- <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">
1000
- <EyeOpenIcon className="h-8 w-8 text-purple-400" />
1039
+ <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">
1040
+ <EyeOpenIcon className="text-fm-secondary-600 h-8 w-8" />
1041
+ </div>
1042
+ <div className="text-fm-icon-active text-sm font-medium">
1043
+ Interactive
1044
+ </div>
1045
+ <div className="text-fm-secondary-600 text-xs">
1046
+ text-fm-secondary-600
1001
1047
  </div>
1002
- <div className="text-sm font-medium text-white">Interactive</div>
1003
- <div className="text-xs text-purple-400">text-purple-400</div>
1004
1048
  </div>
1005
1049
  <div className="text-center">
1006
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-slate-500/30 bg-slate-500/20">
1007
- <EyeOpenIcon className="h-8 w-8 text-slate-400" />
1050
+ <div className="border-fm-divider-primary bg-fm-icon-inactive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1051
+ <EyeOpenIcon className="text-fm-tertiary h-8 w-8" />
1008
1052
  </div>
1009
- <div className="text-sm font-medium text-white">Neutral</div>
1010
- <div className="text-xs text-slate-400">text-slate-400</div>
1053
+ <div className="text-fm-icon-active text-sm font-medium">Neutral</div>
1054
+ <div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
1011
1055
  </div>
1012
1056
  </div>
1013
1057
  ),
@@ -1024,32 +1068,34 @@ export const UsageExamples: Story = {
1024
1068
  },
1025
1069
  },
1026
1070
  render: () => (
1027
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1071
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1028
1072
  {/* Password Field */}
1029
1073
  <div className="!space-y-2">
1030
- <h3 className="text-sm font-medium text-white">
1074
+ <h3 className="text-fm-icon-active text-sm font-medium">
1031
1075
  Password Field Toggle
1032
1076
  </h3>
1033
1077
  <div className="relative">
1034
1078
  <input
1035
1079
  type="text"
1036
- className="w-full rounded-lg border border-white/20 bg-white/5 px-3 py-2 pr-10 text-white placeholder-white/50"
1080
+ className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50"
1037
1081
  placeholder="Enter your password"
1038
1082
  defaultValue="myvisiblepassword"
1039
1083
  />
1040
- <button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 hover:bg-white/10">
1041
- <EyeOpenIcon className="h-5 w-5 text-blue-400" />
1084
+ <button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1">
1085
+ <EyeOpenIcon className="text-fm-icon-info h-5 w-5" />
1042
1086
  </button>
1043
1087
  </div>
1044
1088
  </div>
1045
1089
 
1046
1090
  {/* Content Reveal */}
1047
1091
  <div className="!space-y-2">
1048
- <h3 className="text-sm font-medium text-white">Content Reveal</h3>
1049
- <div className="rounded-lg border border-blue-500/20 bg-gradient-to-r from-blue-500/10 to-green-500/10 p-6 text-center">
1050
- <EyeOpenIcon className="mx-auto mb-3 h-12 w-12 text-blue-400" />
1051
- <p className="text-sm text-white/60">Content is now visible</p>
1052
- <button className="mt-2 text-xs text-blue-400 hover:text-blue-300">
1092
+ <h3 className="text-fm-icon-active text-sm font-medium">
1093
+ Content Reveal
1094
+ </h3>
1095
+ <div className="border-fm-icon-info/20 from-fm-icon-info/10 to-fm-icon-positive/10 rounded-lg border bg-linear-to-r p-6 text-center">
1096
+ <EyeOpenIcon className="text-fm-icon-info mx-auto mb-3 h-12 w-12" />
1097
+ <p className="text-fm-tertiary text-sm">Content is now visible</p>
1098
+ <button className="text-fm-icon-info hover:text-fm-icon-info mt-2 text-xs">
1053
1099
  Hide content
1054
1100
  </button>
1055
1101
  </div>
@@ -1057,22 +1103,24 @@ export const UsageExamples: Story = {
1057
1103
 
1058
1104
  {/* Visibility Settings */}
1059
1105
  <div className="!space-y-2">
1060
- <h3 className="text-sm font-medium text-white">Visibility Settings</h3>
1061
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-4">
1106
+ <h3 className="text-fm-icon-active text-sm font-medium">
1107
+ Visibility Settings
1108
+ </h3>
1109
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
1062
1110
  <div className="flex items-center gap-3">
1063
- <EyeOpenIcon className="h-5 w-5 text-blue-400" />
1111
+ <EyeOpenIcon className="text-fm-icon-info h-5 w-5" />
1064
1112
  <div>
1065
- <div className="text-sm font-medium text-white">
1113
+ <div className="text-fm-icon-active text-sm font-medium">
1066
1114
  Profile Visibility
1067
1115
  </div>
1068
- <div className="text-xs text-white/60">
1116
+ <div className="text-fm-tertiary text-xs">
1069
1117
  Your profile is visible to everyone
1070
1118
  </div>
1071
1119
  </div>
1072
1120
  </div>
1073
1121
  <div className="flex items-center">
1074
- <span className="mr-3 text-xs text-blue-400">Public</span>
1075
- <div className="h-6 w-11 rounded-full bg-blue-600"></div>
1122
+ <span className="text-fm-icon-info mr-3 text-xs">Public</span>
1123
+ <div className="bg-fm-icon-info h-6 w-11 rounded-full"></div>
1076
1124
  </div>
1077
1125
  </div>
1078
1126
  </div>
@@ -1093,12 +1141,12 @@ export const Playground: Story = {
1093
1141
  args: {
1094
1142
  width: 32,
1095
1143
  height: 32,
1096
- className: "text-blue-400 ",
1144
+ className: "text-fm-icon-info ",
1097
1145
  strokeWidth: 1,
1098
1146
  },
1099
1147
  render: (args) => (
1100
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1101
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1148
+ <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">
1149
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1102
1150
  <EyeOpenIcon {...args} />
1103
1151
  </div>
1104
1152
  </div>