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 GoogleLogoIcon> = {
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 GoogleLogoIcon> = {
40
40
  background: transparent !important;
41
41
  }
42
42
  body {
43
- background: #0a0a0a !important;
43
+ background: var(--color-fm-surface-primary) !important;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a !important;
46
+ background: var(--color-fm-surface-primary) !important;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent !important;
50
50
  border: none !important;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white !important;
53
+ color: var(--color-fm-icon-active) !important;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) !important;
56
+ color: var(--color-fm-secondary) !important;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) !important;
60
- color: rgba(168, 85, 247, 1) !important;
61
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
59
+ background: var(--color-fm-surface-secondary) !important;
60
+ color: var(--color-fm-secondary-500) !important;
61
+ border: 1px solid var(--color-fm-divider-secondary) !important;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) !important;
65
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
64
+ background: var(--color-fm-surface-secondary) !important;
65
+ border: 1px solid var(--color-fm-divider-secondary) !important;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) !important;
69
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
68
+ background: var(--color-fm-surface-secondary) !important;
69
+ border: 1px solid var(--color-fm-divider-secondary) !important;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) !important;
73
- color: white !important;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
72
+ background: var(--color-fm-surface-secondary) !important;
73
+ color: var(--color-fm-icon-active) !important;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) !important;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
77
+ color: var(--color-fm-secondary) !important;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-red-900/20 to-gray-900">
83
+ <div className="from-fm-surface-primary via-fm-icon-negative/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
84
84
  {/* Header */}
85
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
- <div className="absolute inset-0 bg-gradient-to-r from-red-500/10 via-yellow-500/10 to-blue-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-icon-negative/10 via-fm-icon-warning/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r" />
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-gray-500/30 bg-gradient-to-br from-red-500/20 via-yellow-500/20 to-blue-500/20">
89
+ <div className="border-fm-divider-primary from-fm-icon-negative/20 via-fm-icon-warning/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
90
  <GoogleLogoIcon className="h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  GoogleLogoIcon
94
94
  </h1>
95
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
96
96
  The iconic Google logo for authentication, platform
97
97
  integration, and service identification. Built with
98
98
  accessibility in mind using Radix UI's AccessibleIcon
@@ -102,28 +102,28 @@ const meta: Meta<typeof GoogleLogoIcon> = {
102
102
  {/* Stats */}
103
103
  <div className="flex items-center justify-center gap-8 pt-8">
104
104
  <div className="text-center">
105
- <div className="text-3xl font-bold text-red-300">
105
+ <div className="text-fm-icon-negative text-3xl font-bold">
106
106
  Accessible
107
107
  </div>
108
- <div className="text-sm text-white/60">
108
+ <div className="text-fm-tertiary text-sm">
109
109
  Screen reader friendly
110
110
  </div>
111
111
  </div>
112
- <div className="h-8 w-px bg-white/20" />
112
+ <div className="bg-fm-divider-primary h-8 w-px" />
113
113
  <div className="text-center">
114
- <div className="text-3xl font-bold text-yellow-300">
114
+ <div className="text-fm-icon-warning text-3xl font-bold">
115
115
  Scalable
116
116
  </div>
117
- <div className="text-sm text-white/60">
117
+ <div className="text-fm-tertiary text-sm">
118
118
  Any size needed
119
119
  </div>
120
120
  </div>
121
- <div className="h-8 w-px bg-white/20" />
121
+ <div className="bg-fm-divider-primary h-8 w-px" />
122
122
  <div className="text-center">
123
- <div className="text-3xl font-bold text-blue-300">
123
+ <div className="text-fm-icon-info text-3xl font-bold">
124
124
  Flexible
125
125
  </div>
126
- <div className="text-sm text-white/60">
126
+ <div className="text-fm-tertiary text-sm">
127
127
  Customizable styling
128
128
  </div>
129
129
  </div>
@@ -136,16 +136,16 @@ const meta: Meta<typeof GoogleLogoIcon> = {
136
136
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
137
  {/* Quick Usage */}
138
138
  <div className="!space-y-8">
139
- <h2 className="text-center text-3xl font-bold !text-white">
139
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
140
140
  Quick Start
141
141
  </h2>
142
142
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
143
  <div className="!space-y-4">
144
- <h3 className="text-xl font-semibold !text-red-300">
144
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
145
145
  Basic Usage
146
146
  </h3>
147
- <div className="rounded-lg bg-black/40 p-4">
148
- <pre className="overflow-x-auto text-sm !text-green-300">
147
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
148
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
149
149
  {`import { GoogleLogoIcon } from "@icons/google-logo-icon"
150
150
 
151
151
  function LoginPage() {
@@ -161,11 +161,11 @@ function LoginPage() {
161
161
  </div>
162
162
 
163
163
  <div className="!space-y-4">
164
- <h3 className="text-xl font-semibold !text-red-300">
164
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
165
165
  Live Preview
166
166
  </h3>
167
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
168
- <button className="flex items-center gap-3 rounded-lg border border-gray-300 bg-white px-6 py-3 text-gray-700 transition-colors hover:bg-gray-50">
167
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
168
+ <button className="border-fm-divider-primary bg-fm-surface-contrast text-fm-primary hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-6 py-3 transition-colors">
169
169
  <GoogleLogoIcon className="h-5 w-5" />
170
170
  <span>Sign in with Google</span>
171
171
  </button>
@@ -176,94 +176,102 @@ function LoginPage() {
176
176
 
177
177
  {/* Props Documentation */}
178
178
  <div className="!space-y-8">
179
- <h2 className="text-center text-3xl font-bold !text-white">
179
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
180
180
  Props & Configuration
181
181
  </h2>
182
182
 
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>
183
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
184
+ <div className="bg-fm-surface-secondary p-4">
185
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
186
+ Props
187
+ </h3>
186
188
  </div>
187
189
  <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">
190
+ <thead className="bg-fm-surface-secondary">
191
+ <tr className="border-fm-divider-secondary border-b">
192
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
191
193
  Prop
192
194
  </th>
193
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
195
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
194
196
  Type
195
197
  </th>
196
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
198
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
197
199
  Default
198
200
  </th>
199
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
201
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
200
202
  Description
201
203
  </th>
202
204
  </tr>
203
205
  </thead>
204
206
  <tbody>
205
207
  {" "}
206
- <tr className="!bg-black/10">
207
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
208
+ <tr className="bg-fm-surface-secondary!">
209
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
208
210
  withAccessibility
209
211
  </td>
210
- <td className="px-6 py-4 text-sm !text-white/70">
212
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
211
213
  boolean
212
214
  </td>
213
- <td className="px-6 py-4 text-sm !text-white/50">
215
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
214
216
  true
215
217
  </td>
216
- <td className="px-6 py-4 text-sm !text-white/70">
218
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
217
219
  Whether to wrap the icon with accessibility feature
218
220
  </td>
219
221
  </tr>
220
- <tr className="border-b border-white/5 !bg-black/10">
221
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
222
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
223
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
222
224
  height
223
225
  </td>
224
- <td className="px-6 py-4 text-sm !text-white/70">
226
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
225
227
  number | string
226
228
  </td>
227
- <td className="px-6 py-4 text-sm !text-white/50">20</td>
228
- <td className="px-6 py-4 text-sm !text-white/70">
229
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
230
+ 20
231
+ </td>
232
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
229
233
  Height of the icon in pixels
230
234
  </td>
231
235
  </tr>
232
- <tr className="border-b border-white/5">
233
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
236
+ <tr className="border-fm-divider-tertiary border-b">
237
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
234
238
  fill
235
239
  </td>
236
- <td className="px-6 py-4 text-sm !text-white/70">
240
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
237
241
  string
238
242
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/50">
243
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
240
244
  Google colors
241
245
  </td>
242
- <td className="px-6 py-4 text-sm !text-white/70">
246
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
243
247
  Fill color of the icon paths
244
248
  </td>
245
249
  </tr>
246
- <tr className="border-b border-white/5 !bg-black/10">
247
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
250
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
251
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
248
252
  className
249
253
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/70">
254
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
251
255
  string
252
256
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
254
- <td className="px-6 py-4 text-sm !text-white/70">
257
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
258
+ -
259
+ </td>
260
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
255
261
  CSS classes for styling
256
262
  </td>
257
263
  </tr>
258
- <tr className="!bg-black/10">
259
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
264
+ <tr className="bg-fm-surface-secondary!">
265
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
260
266
  ...svgProps
261
267
  </td>
262
- <td className="px-6 py-4 text-sm !text-white/70">
268
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
263
269
  SVGProps
264
270
  </td>
265
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
266
- <td className="px-6 py-4 text-sm !text-white/70">
271
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
272
+ -
273
+ </td>
274
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
267
275
  All standard SVG element props
268
276
  </td>
269
277
  </tr>
@@ -274,50 +282,62 @@ function LoginPage() {
274
282
 
275
283
  {/* Size Variations */}
276
284
  <div className="!space-y-8">
277
- <h2 className="text-center text-3xl font-bold !text-white">
285
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
278
286
  Size Variations
279
287
  </h2>
280
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
288
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
281
289
  <div className="!space-y-6">
282
290
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
283
291
  <div className="!space-y-4">
284
- <h3 className="text-lg font-semibold !text-red-300">
292
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
285
293
  Standard Sizes
286
294
  </h3>
287
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
295
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
288
296
  <div className="text-center">
289
297
  <GoogleLogoIcon className="!mx-auto mb-2 h-3 w-3" />
290
- <span className="text-xs text-white/60">12px</span>
298
+ <span className="text-fm-tertiary text-xs">
299
+ 12px
300
+ </span>
291
301
  </div>
292
302
  <div className="text-center">
293
303
  <GoogleLogoIcon className="!mx-auto mb-2 h-4 w-4" />
294
- <span className="text-xs text-white/60">16px</span>
304
+ <span className="text-fm-tertiary text-xs">
305
+ 16px
306
+ </span>
295
307
  </div>
296
308
  <div className="text-center">
297
309
  <GoogleLogoIcon className="!mx-auto mb-2 h-5 w-5" />
298
- <span className="text-xs text-white/60">20px</span>
310
+ <span className="text-fm-tertiary text-xs">
311
+ 20px
312
+ </span>
299
313
  </div>
300
314
  <div className="text-center">
301
315
  <GoogleLogoIcon className="!mx-auto mb-2 h-6 w-6" />
302
- <span className="text-xs text-white/60">24px</span>
316
+ <span className="text-fm-tertiary text-xs">
317
+ 24px
318
+ </span>
303
319
  </div>
304
320
  <div className="text-center">
305
321
  <GoogleLogoIcon className="!mx-auto mb-2 h-8 w-8" />
306
- <span className="text-xs text-white/60">32px</span>
322
+ <span className="text-fm-tertiary text-xs">
323
+ 32px
324
+ </span>
307
325
  </div>
308
326
  <div className="text-center">
309
327
  <GoogleLogoIcon className="!mx-auto mb-2 h-12 w-12" />
310
- <span className="text-xs text-white/60">48px</span>
328
+ <span className="text-fm-tertiary text-xs">
329
+ 48px
330
+ </span>
311
331
  </div>
312
332
  </div>
313
333
  </div>
314
334
 
315
335
  <div className="!space-y-4">
316
- <h3 className="text-lg font-semibold !text-red-300">
336
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
317
337
  Code Example
318
338
  </h3>
319
- <div className="rounded-lg bg-black/40 p-4">
320
- <pre className="overflow-x-auto text-sm !text-blue-300">
339
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
340
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
321
341
  {`// Small (16px)
322
342
  <GoogleLogoIcon className="h-4 w-4" />
323
343
 
@@ -339,61 +359,61 @@ function LoginPage() {
339
359
 
340
360
  {/* Color Variations */}
341
361
  <div className="!space-y-8">
342
- <h2 className="text-center text-3xl font-bold !text-white">
362
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
343
363
  Color Variations
344
364
  </h2>
345
365
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
346
366
  <div className="!space-y-4">
347
- <h3 className="text-lg font-semibold !text-red-300">
367
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
348
368
  Brand Colors
349
369
  </h3>
350
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
370
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
351
371
  <div className="flex items-center gap-4">
352
372
  <GoogleLogoIcon className="h-6 w-6" />
353
373
  <div>
354
- <div className="text-sm font-medium text-white">
374
+ <div className="text-fm-icon-active text-sm font-medium">
355
375
  Original Google Colors
356
376
  </div>
357
- <div className="text-xs text-white/60">
377
+ <div className="text-fm-tertiary text-xs">
358
378
  Default multicolor
359
379
  </div>
360
380
  </div>
361
381
  </div>
362
382
  <div className="flex items-center gap-4">
363
- <div className="flex h-6 w-6 items-center justify-center rounded bg-white">
383
+ <div className="bg-fm-surface-contrast flex h-6 w-6 items-center justify-center rounded">
364
384
  <GoogleLogoIcon className="h-5 w-5" />
365
385
  </div>
366
386
  <div>
367
- <div className="text-sm font-medium text-white">
387
+ <div className="text-fm-icon-active text-sm font-medium">
368
388
  On White Background
369
389
  </div>
370
- <div className="text-xs text-white/60">
390
+ <div className="text-fm-tertiary text-xs">
371
391
  Optimal contrast
372
392
  </div>
373
393
  </div>
374
394
  </div>
375
395
  <div className="flex items-center gap-4">
376
- <div className="flex h-6 w-6 items-center justify-center rounded bg-gray-100">
396
+ <div className="bg-fm-surface-secondary flex h-6 w-6 items-center justify-center rounded">
377
397
  <GoogleLogoIcon className="h-5 w-5" />
378
398
  </div>
379
399
  <div>
380
- <div className="text-sm font-medium text-white">
400
+ <div className="text-fm-icon-active text-sm font-medium">
381
401
  On Light Background
382
402
  </div>
383
- <div className="text-xs text-white/60">
403
+ <div className="text-fm-tertiary text-xs">
384
404
  Light gray surface
385
405
  </div>
386
406
  </div>
387
407
  </div>
388
408
  <div className="flex items-center gap-4">
389
- <div className="flex h-6 w-6 items-center justify-center rounded bg-gray-800">
409
+ <div className="bg-fm-surface-secondary flex h-6 w-6 items-center justify-center rounded">
390
410
  <GoogleLogoIcon className="h-5 w-5" />
391
411
  </div>
392
412
  <div>
393
- <div className="text-sm font-medium text-white">
413
+ <div className="text-fm-icon-active text-sm font-medium">
394
414
  On Dark Background
395
415
  </div>
396
- <div className="text-xs text-white/60">
416
+ <div className="text-fm-tertiary text-xs">
397
417
  Dark surface adaptation
398
418
  </div>
399
419
  </div>
@@ -402,11 +422,11 @@ function LoginPage() {
402
422
  </div>
403
423
 
404
424
  <div className="!space-y-4">
405
- <h3 className="text-lg font-semibold !text-red-300">
425
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
406
426
  Implementation Notes
407
427
  </h3>
408
- <div className="rounded-lg bg-black/40 p-4">
409
- <pre className="overflow-x-auto text-sm !text-green-300">
428
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
429
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
410
430
  {`// Google logo uses specific brand colors
411
431
  // Red: #E94335, Green: #34A753
412
432
  // Blue: #4285F3, Yellow: #FABB04
@@ -433,29 +453,29 @@ function LoginPage() {
433
453
 
434
454
  {/* Usage Examples */}
435
455
  <div className="!space-y-8">
436
- <h2 className="text-center text-3xl font-bold !text-white">
456
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
437
457
  Usage Examples
438
458
  </h2>
439
459
 
440
460
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
441
461
  {/* Authentication Button */}
442
462
  <div className="!space-y-4">
443
- <h3 className="text-lg font-semibold !text-red-300">
463
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
444
464
  Authentication Button
445
465
  </h3>
446
466
  <div className="!space-y-4">
447
467
  <div className="flex gap-4">
448
- <button className="flex items-center gap-3 rounded-lg border border-gray-300 bg-white px-6 py-3 text-gray-700 transition-colors hover:bg-gray-50">
468
+ <button className="border-fm-divider-primary bg-fm-surface-contrast text-fm-primary hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-6 py-3 transition-colors">
449
469
  <GoogleLogoIcon className="h-5 w-5" />
450
470
  Sign in with Google
451
471
  </button>
452
- <button className="flex items-center gap-3 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
472
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
453
473
  <GoogleLogoIcon className="h-4 w-4" />
454
474
  Continue
455
475
  </button>
456
476
  </div>
457
- <div className="rounded-lg bg-black/40 p-4">
458
- <pre className="overflow-x-auto text-sm !text-green-300">
477
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
478
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
459
479
  {`// Primary Google authentication button
460
480
  <button className="flex items-center gap-3 bg-white border border-gray-300 px-6 py-3 rounded-lg text-gray-700">
461
481
  <GoogleLogoIcon className="h-5 w-5" />
@@ -474,30 +494,30 @@ function LoginPage() {
474
494
 
475
495
  {/* Service Integration */}
476
496
  <div className="!space-y-4">
477
- <h3 className="text-lg font-semibold !text-red-300">
497
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
478
498
  Service Integration
479
499
  </h3>
480
500
  <div className="!space-y-4">
481
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
501
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
482
502
  <div className="flex items-center justify-between">
483
503
  <div className="flex items-center gap-4">
484
- <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-white">
504
+ <div className="bg-fm-surface-contrast flex h-10 w-10 items-center justify-center rounded-lg">
485
505
  <GoogleLogoIcon className="h-6 w-6" />
486
506
  </div>
487
507
  <div>
488
- <div className="font-medium text-white">
508
+ <div className="text-fm-icon-active font-medium">
489
509
  Google Drive
490
510
  </div>
491
- <div className="text-sm text-white/60">
511
+ <div className="text-fm-tertiary text-sm">
492
512
  Connected to your account
493
513
  </div>
494
514
  </div>
495
515
  </div>
496
- <div className="h-2 w-2 rounded-full bg-green-400"></div>
516
+ <div className="bg-fm-icon-positive h-2 w-2 rounded-full"></div>
497
517
  </div>
498
518
  </div>
499
- <div className="rounded-lg bg-black/40 p-4">
500
- <pre className="overflow-x-auto text-sm !text-green-300">
519
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
520
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
501
521
  {`<div className="flex items-center justify-between">
502
522
  <div className="flex items-center gap-4">
503
523
  <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-white">
@@ -517,28 +537,28 @@ function LoginPage() {
517
537
 
518
538
  {/* Account Selector */}
519
539
  <div className="!space-y-4">
520
- <h3 className="text-lg font-semibold !text-red-300">
540
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
521
541
  Account Selector
522
542
  </h3>
523
543
  <div className="!space-y-4">
524
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
544
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
525
545
  <div className="space-y-3">
526
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
546
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
527
547
  <GoogleLogoIcon className="h-5 w-5" />
528
548
  <div className="flex-1">
529
- <div className="text-sm font-medium text-white">
549
+ <div className="text-fm-icon-active text-sm font-medium">
530
550
  john@gmail.com
531
551
  </div>
532
- <div className="text-xs text-white/60">
552
+ <div className="text-fm-tertiary text-xs">
533
553
  Personal account
534
554
  </div>
535
555
  </div>
536
- <div className="h-2 w-2 rounded-full bg-blue-400"></div>
556
+ <div className="bg-fm-icon-info h-2 w-2 rounded-full"></div>
537
557
  </div>
538
558
  </div>
539
559
  </div>
540
- <div className="rounded-lg bg-black/40 p-4">
541
- <pre className="overflow-x-auto text-sm !text-green-300">
560
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
561
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
542
562
  {`<div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
543
563
  <GoogleLogoIcon className="h-5 w-5" />
544
564
  <div className="flex-1">
@@ -554,30 +574,30 @@ function LoginPage() {
554
574
 
555
575
  {/* Integration Card */}
556
576
  <div className="!space-y-4">
557
- <h3 className="text-lg font-semibold !text-red-300">
577
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
558
578
  Integration Card
559
579
  </h3>
560
580
  <div className="!space-y-4">
561
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
581
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
562
582
  <div className="!space-y-4 text-center">
563
- <div className="!mx-auto flex h-16 w-16 items-center justify-center rounded-lg bg-white">
583
+ <div className="bg-fm-surface-contrast !mx-auto flex h-16 w-16 items-center justify-center rounded-lg">
564
584
  <GoogleLogoIcon className="h-8 w-8" />
565
585
  </div>
566
586
  <div className="!space-y-2">
567
- <h4 className="font-medium !text-white">
587
+ <h4 className="text-fm-icon-active! font-medium">
568
588
  Connect Google Workspace
569
589
  </h4>
570
- <p className="text-sm !text-white/70">
590
+ <p className="text-fm-secondary! text-sm">
571
591
  Sync your Google Calendar, Drive, and Gmail
572
592
  </p>
573
593
  </div>
574
- <button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
594
+ <button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 text-sm transition-colors">
575
595
  Connect Now
576
596
  </button>
577
597
  </div>
578
598
  </div>
579
- <div className="rounded-lg bg-black/40 p-4">
580
- <pre className="overflow-x-auto text-sm !text-green-300">
599
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
600
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
581
601
  {`<div className="text-center">
582
602
  <div className="mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-lg bg-white">
583
603
  <GoogleLogoIcon className="h-8 w-8" />
@@ -599,64 +619,64 @@ function LoginPage() {
599
619
 
600
620
  {/* Accessibility */}
601
621
  <div className="!space-y-8">
602
- <h2 className="text-center text-3xl font-bold !text-white">
622
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
603
623
  Accessibility Features
604
624
  </h2>
605
625
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
606
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
607
- <h3 className="text-lg font-semibold !text-green-300">
626
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
627
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
608
628
  ✅ Built-in Features
609
629
  </h3>
610
- <ul className="!space-y-2 text-sm !text-white/70">
611
- <li className="!text-white/70">
630
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
631
+ <li className="text-fm-secondary!">
612
632
  Uses Radix UI AccessibleIcon wrapper
613
633
  </li>
614
- <li className="!text-white/70">
634
+ <li className="text-fm-secondary!">
615
635
  Provides screen reader label "Google logo"
616
636
  </li>
617
- <li className="!text-white/70">
637
+ <li className="text-fm-secondary!">
618
638
  Supports keyboard navigation when interactive
619
639
  </li>
620
- <li className="!text-white/70">
640
+ <li className="text-fm-secondary!">
621
641
  Maintains proper color contrast ratios
622
642
  </li>
623
- <li className="!text-white/70">
643
+ <li className="text-fm-secondary!">
624
644
  Scales with user's font size preferences
625
645
  </li>
626
646
  </ul>
627
647
  </div>
628
648
 
629
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
630
- <h3 className="text-lg font-semibold !text-red-300">
649
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
650
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
631
651
  💡 Best Practices
632
652
  </h3>
633
- <ul className="!space-y-2 text-sm text-white/70">
634
- <li className="!text-white/70">
653
+ <ul className="text-fm-secondary !space-y-2 text-sm">
654
+ <li className="text-fm-secondary!">
635
655
  Always pair with descriptive text for actions
636
656
  </li>
637
- <li className="!text-white/70">
657
+ <li className="text-fm-secondary!">
638
658
  Use white backgrounds for optimal contrast
639
659
  </li>
640
- <li className="!text-white/70">
660
+ <li className="text-fm-secondary!">
641
661
  Ensure sufficient spacing around the logo
642
662
  </li>
643
- <li className="!text-white/70">
663
+ <li className="text-fm-secondary!">
644
664
  Add focus states for interactive elements
645
665
  </li>
646
- <li className="!text-white/70">
666
+ <li className="text-fm-secondary!">
647
667
  Follow Google's brand guidelines for usage
648
668
  </li>
649
669
  </ul>
650
670
  </div>
651
671
  </div>
652
672
 
653
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
654
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
673
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
674
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
655
675
  Custom Accessibility Label
656
676
  </h3>
657
677
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
658
- <div className="rounded-lg bg-black/40 p-4">
659
- <pre className="overflow-x-auto text-sm !text-blue-300">
678
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
679
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
660
680
  {`// Custom implementation with specific label
661
681
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
662
682
 
@@ -676,14 +696,14 @@ function CustomGoogleIcon({ label = "Google", ...props }) {
676
696
  </pre>
677
697
  </div>
678
698
  <div className="!space-y-4">
679
- <p className="text-sm !text-white/70">
699
+ <p className="text-fm-secondary! text-sm">
680
700
  For specific contexts, you can wrap the GoogleLogoIcon
681
701
  with a custom AccessibleIcon component that provides
682
702
  more descriptive labels for authentication or service
683
703
  integration.
684
704
  </p>
685
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
686
- <div className="flex items-center gap-2 text-sm text-red-200">
705
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
706
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
687
707
  <GoogleLogoIcon className="h-4 w-4" />
688
708
  <span>
689
709
  This approach gives screen readers more context
@@ -697,48 +717,60 @@ function CustomGoogleIcon({ label = "Google", ...props }) {
697
717
 
698
718
  {/* Related Icons */}
699
719
  <div className="!space-y-8">
700
- <h2 className="text-center text-3xl font-bold !text-white">
720
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
701
721
  Related Icons
702
722
  </h2>
703
723
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
704
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
705
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
724
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
725
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
706
726
  <span className="text-2xl">🔐</span>
707
727
  </div>
708
728
  <div>
709
- <div className="font-medium text-white">LoginIcon</div>
710
- <div className="text-xs text-white/60">
729
+ <div className="text-fm-icon-active font-medium">
730
+ LoginIcon
731
+ </div>
732
+ <div className="text-fm-tertiary text-xs">
711
733
  Authentication
712
734
  </div>
713
735
  </div>
714
736
  </div>
715
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
716
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
737
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
738
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
717
739
  <span className="text-2xl">👤</span>
718
740
  </div>
719
741
  <div>
720
- <div className="font-medium text-white">UserIcon</div>
721
- <div className="text-xs text-white/60">User profile</div>
742
+ <div className="text-fm-icon-active font-medium">
743
+ UserIcon
744
+ </div>
745
+ <div className="text-fm-tertiary text-xs">
746
+ User profile
747
+ </div>
722
748
  </div>
723
749
  </div>
724
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
725
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
750
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
751
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
726
752
  <span className="text-2xl">☁️</span>
727
753
  </div>
728
754
  <div>
729
- <div className="font-medium text-white">CloudIcon</div>
730
- <div className="text-xs text-white/60">
755
+ <div className="text-fm-icon-active font-medium">
756
+ CloudIcon
757
+ </div>
758
+ <div className="text-fm-tertiary text-xs">
731
759
  Cloud services
732
760
  </div>
733
761
  </div>
734
762
  </div>
735
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
736
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
763
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
764
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
737
765
  <span className="text-2xl">🔗</span>
738
766
  </div>
739
767
  <div>
740
- <div className="font-medium text-white">LinkIcon</div>
741
- <div className="text-xs text-white/60">Integration</div>
768
+ <div className="text-fm-icon-active font-medium">
769
+ LinkIcon
770
+ </div>
771
+ <div className="text-fm-tertiary text-xs">
772
+ Integration
773
+ </div>
742
774
  </div>
743
775
  </div>
744
776
  </div>
@@ -746,14 +778,14 @@ function CustomGoogleIcon({ label = "Google", ...props }) {
746
778
  </div>
747
779
 
748
780
  {/* Footer */}
749
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
781
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
750
782
  <div className="!mx-auto max-w-7xl px-6 py-8">
751
783
  <div className="!space-y-4 text-center">
752
- <p className="!text-white/60">
784
+ <p className="text-fm-tertiary!">
753
785
  GoogleLogoIcon is part of the Aural UI icon library, built
754
786
  with accessibility and brand consistency in mind.
755
787
  </p>
756
- <p className="text-sm !text-white/40">
788
+ <p className="text-fm-placeholder! text-sm">
757
789
  All icons use Radix UI's AccessibleIcon for screen reader
758
790
  compatibility and follow WCAG guidelines.
759
791
  </p>
@@ -794,8 +826,8 @@ const storyParameters = {
794
826
  backgrounds: {
795
827
  default: "dark",
796
828
  values: [
797
- { name: "dark", value: "#0a0a0a" },
798
- { name: "darker", value: "#000000" },
829
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
830
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
799
831
  ],
800
832
  },
801
833
  }
@@ -809,8 +841,8 @@ export const Default: Story = {
809
841
  },
810
842
  parameters: storyParameters,
811
843
  render: (args) => (
812
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
813
- <div className="rounded-lg bg-white p-4">
844
+ <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">
845
+ <div className="bg-fm-surface-contrast rounded-lg p-4">
814
846
  <GoogleLogoIcon {...args} />
815
847
  </div>
816
848
  </div>
@@ -828,42 +860,42 @@ export const SizeVariations: Story = {
828
860
  },
829
861
  },
830
862
  render: () => (
831
- <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">
863
+ <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">
832
864
  <div className="text-center">
833
- <div className="!mx-auto mb-2 rounded bg-white p-2">
865
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
834
866
  <GoogleLogoIcon className="h-3 w-3" />
835
867
  </div>
836
- <span className="text-xs text-white/60">12px</span>
868
+ <span className="text-fm-tertiary text-xs">12px</span>
837
869
  </div>
838
870
  <div className="text-center">
839
- <div className="!mx-auto mb-2 rounded bg-white p-2">
871
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
840
872
  <GoogleLogoIcon className="h-4 w-4" />
841
873
  </div>
842
- <span className="text-xs text-white/60">16px</span>
874
+ <span className="text-fm-tertiary text-xs">16px</span>
843
875
  </div>
844
876
  <div className="text-center">
845
- <div className="!mx-auto mb-2 rounded bg-white p-2">
877
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
846
878
  <GoogleLogoIcon className="h-5 w-5" />
847
879
  </div>
848
- <span className="text-xs text-white/60">20px</span>
880
+ <span className="text-fm-tertiary text-xs">20px</span>
849
881
  </div>
850
882
  <div className="text-center">
851
- <div className="!mx-auto mb-2 rounded bg-white p-2">
883
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
852
884
  <GoogleLogoIcon className="h-6 w-6" />
853
885
  </div>
854
- <span className="text-xs text-white/60">24px</span>
886
+ <span className="text-fm-tertiary text-xs">24px</span>
855
887
  </div>
856
888
  <div className="text-center">
857
- <div className="!mx-auto mb-2 rounded bg-white p-2">
889
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
858
890
  <GoogleLogoIcon className="h-8 w-8" />
859
891
  </div>
860
- <span className="text-xs text-white/60">32px</span>
892
+ <span className="text-fm-tertiary text-xs">32px</span>
861
893
  </div>
862
894
  <div className="text-center">
863
- <div className="!mx-auto mb-2 rounded bg-white p-3">
895
+ <div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-3">
864
896
  <GoogleLogoIcon className="h-12 w-12" />
865
897
  </div>
866
- <span className="text-xs text-white/60">48px</span>
898
+ <span className="text-fm-tertiary text-xs">48px</span>
867
899
  </div>
868
900
  </div>
869
901
  ),
@@ -880,34 +912,42 @@ export const ColorVariations: Story = {
880
912
  },
881
913
  },
882
914
  render: () => (
883
- <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">
915
+ <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">
884
916
  <div className="text-center">
885
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-white">
917
+ <div className="bg-fm-surface-contrast !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
886
918
  <GoogleLogoIcon className="h-8 w-8" />
887
919
  </div>
888
- <div className="text-sm font-medium text-white">White Background</div>
889
- <div className="text-xs text-white/60">Recommended</div>
920
+ <div className="text-fm-icon-active text-sm font-medium">
921
+ White Background
922
+ </div>
923
+ <div className="text-fm-tertiary text-xs">Recommended</div>
890
924
  </div>
891
925
  <div className="text-center">
892
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-100">
926
+ <div className="bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
893
927
  <GoogleLogoIcon className="h-8 w-8" />
894
928
  </div>
895
- <div className="text-sm font-medium text-white">Light Background</div>
896
- <div className="text-xs text-gray-400">Good contrast</div>
929
+ <div className="text-fm-icon-active text-sm font-medium">
930
+ Light Background
931
+ </div>
932
+ <div className="text-fm-placeholder text-xs">Good contrast</div>
897
933
  </div>
898
934
  <div className="text-center">
899
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg bg-gray-800">
935
+ <div className="bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg">
900
936
  <GoogleLogoIcon className="h-8 w-8" />
901
937
  </div>
902
- <div className="text-sm font-medium text-white">Dark Background</div>
903
- <div className="text-xs text-gray-400">Acceptable</div>
938
+ <div className="text-fm-icon-active text-sm font-medium">
939
+ Dark Background
940
+ </div>
941
+ <div className="text-fm-placeholder text-xs">Acceptable</div>
904
942
  </div>
905
943
  <div className="text-center">
906
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/20 bg-transparent">
944
+ <div className="border-fm-divider-primary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border bg-transparent">
907
945
  <GoogleLogoIcon className="h-8 w-8" />
908
946
  </div>
909
- <div className="text-sm font-medium text-white">Transparent</div>
910
- <div className="text-xs text-white/60">Original colors</div>
947
+ <div className="text-fm-icon-active text-sm font-medium">
948
+ Transparent
949
+ </div>
950
+ <div className="text-fm-tertiary text-xs">Original colors</div>
911
951
  </div>
912
952
  </div>
913
953
  ),
@@ -924,16 +964,18 @@ export const UsageExamples: Story = {
924
964
  },
925
965
  },
926
966
  render: () => (
927
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
967
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
928
968
  {/* Authentication Buttons */}
929
969
  <div className="!space-y-2">
930
- <h3 className="text-sm font-medium text-white">Authentication</h3>
970
+ <h3 className="text-fm-icon-active text-sm font-medium">
971
+ Authentication
972
+ </h3>
931
973
  <div className="flex gap-4">
932
- <button className="flex items-center gap-3 rounded-lg border border-gray-300 bg-white px-6 py-3 text-gray-700 transition-colors hover:bg-gray-50">
974
+ <button className="border-fm-divider-primary bg-fm-surface-contrast text-fm-primary hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-6 py-3 transition-colors">
933
975
  <GoogleLogoIcon className="h-5 w-5" />
934
976
  Sign in with Google
935
977
  </button>
936
- <button className="flex items-center gap-3 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white transition-colors hover:bg-white/10">
978
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
937
979
  <GoogleLogoIcon className="h-4 w-4" />
938
980
  Continue
939
981
  </button>
@@ -942,42 +984,48 @@ export const UsageExamples: Story = {
942
984
 
943
985
  {/* Service Integration */}
944
986
  <div className="!space-y-2">
945
- <h3 className="text-sm font-medium text-white">Service Integration</h3>
946
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
987
+ <h3 className="text-fm-icon-active text-sm font-medium">
988
+ Service Integration
989
+ </h3>
990
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
947
991
  <div className="flex items-center justify-between">
948
992
  <div className="flex items-center gap-4">
949
- <div className="flex h-10 w-10 items-center justify-center rounded-lg bg-white">
993
+ <div className="bg-fm-surface-contrast flex h-10 w-10 items-center justify-center rounded-lg">
950
994
  <GoogleLogoIcon className="h-6 w-6" />
951
995
  </div>
952
996
  <div>
953
- <div className="font-medium text-white">Google Drive</div>
954
- <div className="text-sm text-white/60">
997
+ <div className="text-fm-icon-active font-medium">
998
+ Google Drive
999
+ </div>
1000
+ <div className="text-fm-tertiary text-sm">
955
1001
  Connected to your account
956
1002
  </div>
957
1003
  </div>
958
1004
  </div>
959
- <div className="h-2 w-2 rounded-full bg-green-400"></div>
1005
+ <div className="bg-fm-icon-positive h-2 w-2 rounded-full"></div>
960
1006
  </div>
961
1007
  </div>
962
1008
  </div>
963
1009
 
964
1010
  {/* Integration Card */}
965
1011
  <div className="!space-y-2">
966
- <h3 className="text-sm font-medium text-white">Integration Card</h3>
967
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1012
+ <h3 className="text-fm-icon-active text-sm font-medium">
1013
+ Integration Card
1014
+ </h3>
1015
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
968
1016
  <div className="!space-y-4 text-center">
969
- <div className="!mx-auto flex h-16 w-16 items-center justify-center rounded-lg bg-white">
1017
+ <div className="bg-fm-surface-contrast !mx-auto flex h-16 w-16 items-center justify-center rounded-lg">
970
1018
  <GoogleLogoIcon className="h-8 w-8" />
971
1019
  </div>
972
1020
  <div className="!space-y-2">
973
- <h4 className="font-medium !text-white">
1021
+ <h4 className="text-fm-icon-active! font-medium">
974
1022
  Connect Google Workspace
975
1023
  </h4>
976
- <p className="text-sm !text-white/70">
1024
+ <p className="text-fm-secondary! text-sm">
977
1025
  Sync your Google Calendar, Drive, and Gmail
978
1026
  </p>
979
1027
  </div>
980
- <button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
1028
+ <button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 text-sm transition-colors">
981
1029
  Connect Now
982
1030
  </button>
983
1031
  </div>
@@ -1003,8 +1051,8 @@ export const Playground: Story = {
1003
1051
  className: "",
1004
1052
  },
1005
1053
  render: (args) => (
1006
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1007
- <div className="rounded-lg border border-white/10 bg-white p-8">
1054
+ <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">
1055
+ <div className="border-fm-divider-secondary bg-fm-surface-contrast rounded-lg border p-8">
1008
1056
  <GoogleLogoIcon {...args} />
1009
1057
  </div>
1010
1058
  </div>