aural-ui 3.0.7 → 4.1.0

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 (183) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1199
  2. package/dist/components/avatar/Avatar.stories.tsx +235 -237
  3. package/dist/components/badge/Badge.stories.tsx +379 -116
  4. package/dist/components/banner/Banner.stories.tsx +445 -391
  5. package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
  6. package/dist/components/button/Button.stories.tsx +585 -230
  7. package/dist/components/button/index.tsx +7 -7
  8. package/dist/components/card/Card.stories.tsx +619 -301
  9. package/dist/components/char-count/CharCount.stories.tsx +350 -248
  10. package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
  11. package/dist/components/chip/Chip.stories.tsx +362 -168
  12. package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -620
  13. package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
  14. package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
  15. package/dist/components/command/Command.stories.tsx +533 -856
  16. package/dist/components/dialog/Dialog.stories.tsx +505 -949
  17. package/dist/components/divider/Divider.stories.tsx +265 -502
  18. package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
  19. package/dist/components/drawer/Drawer.stories.tsx +659 -993
  20. package/dist/components/drawer/index.tsx +3 -3
  21. package/dist/components/dropdown/Dropdown.stories.tsx +643 -1018
  22. package/dist/components/form/Form.stories.tsx +560 -274
  23. package/dist/components/helper-text/HelperText.stories.tsx +199 -200
  24. package/dist/components/hover-card/HoverCard.stories.tsx +318 -1221
  25. package/dist/components/icon-button/IconButton.stories.tsx +837 -194
  26. package/dist/components/if-else/if-else.stories.tsx +370 -83
  27. package/dist/components/input/Input.stories.tsx +436 -368
  28. package/dist/components/label/Label.stories.tsx +156 -154
  29. package/dist/components/list/List.stories.tsx +485 -822
  30. package/dist/components/marquee/Marquee.stories.tsx +356 -694
  31. package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -410
  32. package/dist/components/overlay/Overlay.stories.tsx +452 -818
  33. package/dist/components/overlay/index.tsx +4 -4
  34. package/dist/components/pagination/Pagination.stories.tsx +721 -210
  35. package/dist/components/popover/Popover.stories.tsx +484 -873
  36. package/dist/components/radio/Radio.stories.tsx +432 -124
  37. package/dist/components/resizable/Resizable.stories.tsx +496 -752
  38. package/dist/components/scroll-area/ScrollArea.stories.tsx +384 -1006
  39. package/dist/components/search/Search.stories.tsx +314 -575
  40. package/dist/components/select/Select.stories.tsx +684 -787
  41. package/dist/components/sheet/Sheet.stories.tsx +671 -936
  42. package/dist/components/skelton/Skelton.stories.tsx +230 -764
  43. package/dist/components/slider/Slider.stories.tsx +384 -737
  44. package/dist/components/stepper/Stepper.stories.tsx +371 -514
  45. package/dist/components/switch/Switch.stories.tsx +461 -208
  46. package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
  47. package/dist/components/table/Table.stories.tsx +770 -914
  48. package/dist/components/tabs/Tabs.stories.tsx +459 -1400
  49. package/dist/components/tag/Tag.stories.tsx +714 -542
  50. package/dist/components/textarea/TextArea.stories.tsx +621 -562
  51. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -148
  52. package/dist/components/toast/Toast.stories.tsx +452 -1333
  53. package/dist/components/toggle/Toggle.stories.tsx +488 -909
  54. package/dist/components/tooltip/Tooltip.stories.tsx +344 -1372
  55. package/dist/components/typography/Typography.stories.tsx +406 -89
  56. package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
  57. package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
  58. package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
  59. package/dist/icons/Icons.stories.tsx +0 -12
  60. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +226 -1013
  61. package/dist/icons/alert-icon/AlertIcon.stories.tsx +109 -929
  62. package/dist/icons/all-icons.tsx +124 -87
  63. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +140 -971
  64. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +148 -888
  65. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +135 -1019
  66. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +137 -953
  67. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +138 -997
  68. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +136 -942
  69. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +148 -1092
  70. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +146 -1211
  71. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +126 -615
  72. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +144 -1164
  73. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +167 -985
  74. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +122 -1179
  75. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +124 -1168
  76. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +119 -850
  77. package/dist/icons/camera-icon/CameraIcon.stories.tsx +112 -1213
  78. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +117 -934
  79. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +160 -961
  80. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +163 -961
  81. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +144 -942
  82. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +129 -966
  83. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +147 -964
  84. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +145 -975
  85. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +150 -1142
  86. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +114 -461
  87. package/dist/icons/coin-icon/CoinIcon.stories.tsx +124 -1322
  88. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +117 -1318
  89. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +114 -903
  90. package/dist/icons/command-icon/CommandIcon.stories.tsx +127 -1042
  91. package/dist/icons/copy-icon/CopyIcon.stories.tsx +123 -962
  92. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +147 -999
  93. package/dist/icons/cross-icon/CrossIcon.stories.tsx +139 -960
  94. package/dist/icons/download-icon/DownloadIcon.stories.tsx +126 -820
  95. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +124 -1031
  96. package/dist/icons/email-icon/EmailIcon.stories.tsx +115 -936
  97. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +112 -1111
  98. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +144 -1025
  99. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +143 -1036
  100. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +127 -1011
  101. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +126 -1056
  102. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +125 -614
  103. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +119 -1050
  104. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +169 -989
  105. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +115 -1145
  106. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +115 -1122
  107. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +130 -313
  108. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +145 -940
  109. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +119 -1174
  110. package/dist/icons/head-icon/HeadIcon.stories.tsx +111 -916
  111. package/dist/icons/heart-icon/HeartIcon.stories.tsx +120 -1019
  112. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +119 -683
  113. package/dist/icons/image-icon/ImageIcon.stories.tsx +105 -1121
  114. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +111 -1192
  115. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +136 -1256
  116. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +159 -962
  117. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +161 -1385
  118. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +124 -972
  119. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +119 -948
  120. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +119 -942
  121. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +108 -1215
  122. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +154 -1517
  123. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +110 -1188
  124. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +119 -678
  125. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +123 -1184
  126. package/dist/icons/message-icon/MessageIcon.stories.tsx +114 -538
  127. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +116 -1158
  128. package/dist/icons/moon-icon/MoonIcon.stories.tsx +120 -536
  129. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +109 -1184
  130. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +115 -1134
  131. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +119 -971
  132. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +111 -1100
  133. package/dist/icons/notes-icon/NotesIcon.stories.tsx +119 -1101
  134. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +109 -1111
  135. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +122 -684
  136. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +113 -954
  137. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +112 -877
  138. package/dist/icons/pause-icon/PauseIcon.stories.tsx +113 -1000
  139. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +115 -1070
  140. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +115 -978
  141. package/dist/icons/plus-icon/PlusIcon.stories.tsx +106 -1093
  142. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +107 -829
  143. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +102 -469
  144. package/dist/icons/search-icon/SearchIcon.stories.tsx +111 -1124
  145. package/dist/icons/setting-icon/SettingIcon.stories.tsx +107 -970
  146. package/dist/icons/share-icon/ShareIcon.stories.tsx +120 -1025
  147. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +117 -931
  148. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +137 -1104
  149. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +172 -982
  150. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +164 -983
  151. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +105 -958
  152. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +158 -580
  153. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  154. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +158 -587
  155. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  156. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +146 -682
  157. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  158. package/dist/icons/star-icon/StarIcon.stories.tsx +124 -904
  159. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +112 -964
  160. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +116 -852
  161. package/dist/icons/sun-icon/SunIcon.stories.tsx +120 -831
  162. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +116 -950
  163. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +123 -980
  164. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +156 -1427
  165. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +146 -1142
  166. package/dist/icons/tick-icon/TickIcon.stories.tsx +145 -1276
  167. package/dist/icons/trash-icon/TrashIcon.stories.tsx +108 -933
  168. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +157 -1402
  169. package/dist/icons/upload-icon/UploadIcon.stories.tsx +115 -889
  170. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +118 -984
  171. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +125 -1049
  172. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +123 -1356
  173. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +110 -1171
  174. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +112 -1093
  175. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +115 -1087
  176. package/dist/icons/warning-icon/WarningIcon.stories.tsx +122 -1046
  177. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +161 -936
  178. package/dist/index.cjs +84 -84
  179. package/dist/index.js +84 -84
  180. package/dist/styles/aural-all-theme.css +1222 -0
  181. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  182. package/dist/styles/aural-light-theme.css +1047 -0
  183. package/package.json +1 -1
@@ -1,6 +1,20 @@
1
1
  import React from "react"
2
2
  import type { Meta, StoryObj } from "@storybook/react-vite"
3
3
 
4
+ import { AppleLogoIcon } from "src/ui/icons/apple-logo-icon"
5
+ import { GoogleLogoIcon } from "src/ui/icons/google-logo-icon"
6
+ import { IndianFlagIcon } from "src/ui/icons/indian-flag-icon"
7
+ import { InstagramIcon } from "src/ui/icons/instagram-icon"
8
+ import {
9
+ IconBrandColors,
10
+ IconDefaultCanvas,
11
+ IconPlaygroundCanvas,
12
+ IconSizeVariations,
13
+ IconUsageCanvas,
14
+ IconUsageSection,
15
+ } from "src/ui/story-spec/icons/icon-story-canvas"
16
+ import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
17
+
4
18
  import { SiteLogoIcon } from "."
5
19
 
6
20
  const meta: Meta<typeof SiteLogoIcon> = {
@@ -11,946 +25,78 @@ const meta: Meta<typeof SiteLogoIcon> = {
11
25
  backgrounds: {
12
26
  default: "dark",
13
27
  values: [
14
- { name: "dark", value: "#0a0a0a" },
15
- { name: "darker", value: "#000000" },
16
- { name: "light", value: "#ffffff" },
28
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
29
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
30
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
17
31
  ],
18
32
  },
19
33
  docs: {
20
34
  page: () => (
21
- <>
22
- {/* Override default docs styling */}
23
- <style>
24
- {`
25
- .sbdocs-wrapper {
26
- padding: 0 !important;
27
- max-width: none !important;
28
- background: transparent !important;
29
- }
30
- .sbdocs-content {
31
- max-width: none !important;
32
- padding: 0 !important;
33
- margin: 0 !important;
34
- background: transparent !important;
35
- }
36
- .docs-story {
37
- background: transparent !important;
38
- }
39
- .sbdocs {
40
- background: transparent !important;
41
- }
42
- body {
43
- background: #0a0a0a !important;
44
- }
45
- #storybook-docs {
46
- background: #0a0a0a !important;
47
- }
48
- .sbdocs-preview {
49
- background: transparent !important;
50
- border: none !important;
51
- }
52
- .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white !important;
54
- }
55
- .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) !important;
57
- }
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;
62
- }
63
- .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) !important;
65
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
66
- }
67
- .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) !important;
69
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
70
- }
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;
75
- }
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;
79
- }
80
- @keyframes logo-pulse {
81
- 0%, 100% { transform: scale(1); }
82
- 50% { transform: scale(1.05); }
83
- }
84
- .animate-logo-pulse {
85
- animation: logo-pulse 2s ease-in-out infinite;
86
- }
87
- @keyframes logo-glow {
88
- 0%, 100% { filter: drop-shadow(0 0 4px #e51a4d); }
89
- 50% { filter: drop-shadow(0 0 12px #e51a4d); }
90
- }
91
- .animate-logo-glow {
92
- animation: logo-glow 3s ease-in-out infinite;
93
- }
94
- `}
95
- </style>
96
-
97
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-red-900/20 to-gray-900">
98
- {/* Header */}
99
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
100
- <div className="absolute inset-0 bg-gradient-to-r from-red-500/10 via-transparent to-pink-500/10" />
101
- <div className="relative !mx-auto max-w-7xl px-6 py-16">
102
- <div className="!space-y-6 text-center">
103
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-red-500/30 bg-gradient-to-br from-red-500/20 to-pink-500/20">
104
- <SiteLogoIcon className="h-12 w-12" />
105
- </div>
106
- <h1 className="!text-fm-primary text-5xl font-bold">
107
- SiteLogoIcon
108
- </h1>
109
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
110
- The official Aural UI site logo icon for brand identity,
111
- navigation headers, and app branding. Features a distinctive
112
- red gradient design with speech bubble elements. Built with
113
- accessibility in mind using Radix UI's AccessibleIcon
114
- wrapper.
115
- </p>
116
-
117
- {/* Stats */}
118
- <div className="flex items-center justify-center gap-8 pt-8">
119
- <div className="text-center">
120
- <div className="text-3xl font-bold text-red-300">
121
- Brand
122
- </div>
123
- <div className="text-sm text-white/60">
124
- Identity focused
125
- </div>
126
- </div>
127
- <div className="h-8 w-px bg-white/20" />
128
- <div className="text-center">
129
- <div className="text-3xl font-bold text-pink-300">
130
- Scalable
131
- </div>
132
- <div className="text-sm text-white/60">
133
- All sizes supported
134
- </div>
135
- </div>
136
- <div className="h-8 w-px bg-white/20" />
137
- <div className="text-center">
138
- <div className="text-3xl font-bold text-rose-300">
139
- Accessible
140
- </div>
141
- <div className="text-sm text-white/60">
142
- Screen reader ready
143
- </div>
144
- </div>
145
- </div>
146
- </div>
147
- </div>
148
- </div>
149
-
150
- {/* Content */}
151
- <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
152
- {/* Quick Usage */}
153
- <div className="!space-y-8">
154
- <h2 className="text-center text-3xl font-bold !text-white">
155
- Quick Start
156
- </h2>
157
- <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
158
- <div className="!space-y-4">
159
- <h3 className="text-xl font-semibold !text-red-300">
160
- Basic Usage
161
- </h3>
162
- <div className="rounded-lg bg-black/40 p-4">
163
- <pre className="overflow-x-auto text-sm !text-green-300">
164
- {`import { SiteLogoIcon } from "@icons/site-logo-icon"
35
+ <AuralIconDocsPage
36
+ accentToken="info"
37
+ features={[
38
+ { title: "Brand Mark", description: "Pocket FM site logo" },
39
+ { title: "App Identity", description: "Primary brand identifier" },
40
+ { title: "Accessible", description: "ARIA-ready by default" },
41
+ ]}
42
+ quickStart={{
43
+ codeExample: `import { SiteLogoIcon } from "src/ui/icons/site-logo-icon"
165
44
 
166
45
  function Header() {
167
46
  return (
168
- <div className="flex items-center gap-3">
47
+ <header className="flex items-center gap-2">
169
48
  <SiteLogoIcon className="h-8 w-8" />
170
- <span className="text-xl font-bold">Aural UI</span>
171
- </div>
49
+ <span className="text-fm-primary font-fm-text font-semibold">
50
+ Pocket FM
51
+ </span>
52
+ </header>
172
53
  )
173
- }`}
174
- </pre>
175
- </div>
176
- </div>
177
-
178
- <div className="!space-y-4">
179
- <h3 className="text-xl font-semibold !text-red-300">
180
- Live Preview
181
- </h3>
182
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
183
- <div className="flex items-center gap-3 rounded-lg border border-red-500/20 bg-red-500/10 px-6 py-3">
184
- <SiteLogoIcon className="h-8 w-8" />
185
- <span className="text-xl font-bold text-white">
186
- Aural UI
187
- </span>
188
- </div>
189
- </div>
190
- </div>
191
- </div>
192
- </div>
193
-
194
- {/* Props Documentation */}
195
- <div className="!space-y-8">
196
- <h2 className="text-center text-3xl font-bold !text-white">
197
- Props & Configuration
198
- </h2>
199
-
200
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
201
- <div className="bg-white/5 p-4">
202
- <h3 className="text-xl font-semibold !text-white">Props</h3>
203
- </div>
204
- <table className="!my-0 w-full">
205
- <thead className="bg-white/5">
206
- <tr className="border-b border-white/10">
207
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
208
- Prop
209
- </th>
210
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
211
- Type
212
- </th>
213
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
214
- Default
215
- </th>
216
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
217
- Description
218
- </th>
219
- </tr>
220
- </thead>
221
- <tbody>
222
- {" "}
223
- <tr className="!bg-black/10">
224
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
225
- withAccessibility
226
- </td>
227
- <td className="px-6 py-4 text-sm !text-white/70">
228
- boolean
229
- </td>
230
- <td className="px-6 py-4 text-sm !text-white/50">
231
- true
232
- </td>
233
- <td className="px-6 py-4 text-sm !text-white/70">
234
- Whether to wrap the icon with accessibility feature
235
- </td>
236
- </tr>
237
- <tr className="border-b border-white/5 !bg-black/10">
238
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
239
- height
240
- </td>
241
- <td className="px-6 py-4 text-sm !text-white/70">
242
- number | string
243
- </td>
244
- <td className="px-6 py-4 text-sm !text-white/50">22</td>
245
- <td className="px-6 py-4 text-sm !text-white/70">
246
- Height of the logo in pixels
247
- </td>
248
- </tr>
249
- <tr className="border-b border-white/5">
250
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
251
- className
252
- </td>
253
- <td className="px-6 py-4 text-sm !text-white/70">
254
- string
255
- </td>
256
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
257
- <td className="px-6 py-4 text-sm !text-white/70">
258
- CSS classes for styling
259
- </td>
260
- </tr>
261
- <tr className="border-b border-white/5 !bg-black/10">
262
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
263
- viewBox
264
- </td>
265
- <td className="px-6 py-4 text-sm !text-white/70">
266
- string
267
- </td>
268
- <td className="px-6 py-4 text-sm !text-white/50">
269
- "0 0 128 128"
270
- </td>
271
- <td className="px-6 py-4 text-sm !text-white/70">
272
- SVG viewBox for scaling
273
- </td>
274
- </tr>
275
- <tr className="!bg-black/10">
276
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
277
- ...svgProps
278
- </td>
279
- <td className="px-6 py-4 text-sm !text-white/70">
280
- SVGProps
281
- </td>
282
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
283
- <td className="px-6 py-4 text-sm !text-white/70">
284
- All standard SVG element props
285
- </td>
286
- </tr>
287
- </tbody>
288
- </table>
289
- </div>
290
- </div>
291
-
292
- {/* Size Variations */}
293
- <div className="!space-y-8">
294
- <h2 className="text-center text-3xl font-bold !text-white">
295
- Size Variations
296
- </h2>
297
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
298
- <div className="!space-y-6">
299
- <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
300
- <div className="!space-y-4">
301
- <h3 className="text-lg font-semibold !text-red-300">
302
- Standard Sizes
303
- </h3>
304
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
305
- <div className="text-center">
306
- <SiteLogoIcon className="!mx-auto mb-2 h-4 w-4" />
307
- <span className="text-xs text-white/60">16px</span>
308
- </div>
309
- <div className="text-center">
310
- <SiteLogoIcon className="!mx-auto mb-2 h-5 w-5" />
311
- <span className="text-xs text-white/60">20px</span>
312
- </div>
313
- <div className="text-center">
314
- <SiteLogoIcon className="!mx-auto mb-2 h-6 w-6" />
315
- <span className="text-xs text-white/60">24px</span>
316
- </div>
317
- <div className="text-center">
318
- <SiteLogoIcon className="!mx-auto mb-2 h-8 w-8" />
319
- <span className="text-xs text-white/60">32px</span>
320
- </div>
321
- <div className="text-center">
322
- <SiteLogoIcon className="!mx-auto mb-2 h-12 w-12" />
323
- <span className="text-xs text-white/60">48px</span>
324
- </div>
325
- <div className="text-center">
326
- <SiteLogoIcon className="!mx-auto mb-2 h-16 w-16" />
327
- <span className="text-xs text-white/60">64px</span>
328
- </div>
329
- </div>
330
- </div>
331
-
332
- <div className="!space-y-4">
333
- <h3 className="text-lg font-semibold !text-red-300">
334
- Code Example
335
- </h3>
336
- <div className="rounded-lg bg-black/40 p-4">
337
- <pre className="overflow-x-auto text-sm !text-blue-300">
338
- {`// Small nav (24px)
339
- <SiteLogoIcon className="h-6 w-6" />
340
-
341
- // Standard header (32px)
342
- <SiteLogoIcon className="h-8 w-8" />
343
-
344
- // Large display (64px)
345
- <SiteLogoIcon className="h-16 w-16" />
346
-
347
- // Custom size with props
348
- <SiteLogoIcon width={40} height={40} />
349
-
350
- // Responsive sizing
351
- <SiteLogoIcon className="h-6 w-6 md:h-8 md:w-8 lg:h-12 lg:w-12" />`}
352
- </pre>
353
- </div>
354
- </div>
355
- </div>
356
- </div>
357
- </div>
358
- </div>
359
-
360
- {/* Usage Examples */}
361
- <div className="!space-y-8">
362
- <h2 className="text-center text-3xl font-bold !text-white">
363
- Usage Examples
364
- </h2>
365
-
366
- <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
367
- {/* Navigation Header */}
368
- <div className="!space-y-4">
369
- <h3 className="text-lg font-semibold !text-red-300">
370
- Navigation Header
371
- </h3>
372
- <div className="!space-y-4">
373
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
374
- <div className="flex items-center justify-between">
375
- <div className="flex items-center gap-3">
376
- <SiteLogoIcon className="h-8 w-8" />
377
- <span className="text-xl font-bold text-white">
378
- Aural UI
379
- </span>
380
- </div>
381
- <nav className="flex items-center gap-6">
382
- <a
383
- href="#"
384
- className="text-white/70 hover:text-white"
385
- >
386
- Docs
387
- </a>
388
- <a
389
- href="#"
390
- className="text-white/70 hover:text-white"
391
- >
392
- Components
393
- </a>
394
- <a
395
- href="#"
396
- className="text-white/70 hover:text-white"
397
- >
398
- Examples
399
- </a>
400
- </nav>
401
- </div>
402
- </div>
403
- <div className="rounded-lg bg-black/40 p-4">
404
- <pre className="overflow-x-auto text-sm !text-green-300">
405
- {`<div className="flex items-center justify-between">
406
- <div className="flex items-center gap-3">
407
- <SiteLogoIcon className="h-8 w-8" />
408
- <span className="text-xl font-bold">Aural UI</span>
409
- </div>
410
- <nav className="flex items-center gap-6">
411
- <a href="#" className="hover:text-white">Docs</a>
412
- <a href="#" className="hover:text-white">Components</a>
413
- <a href="#" className="hover:text-white">Examples</a>
414
- </nav>
415
- </div>`}
416
- </pre>
417
- </div>
418
- </div>
419
- </div>
420
-
421
- {/* Footer Branding */}
422
- <div className="!space-y-4">
423
- <h3 className="text-lg font-semibold !text-red-300">
424
- Footer Branding
425
- </h3>
426
- <div className="!space-y-4">
427
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
428
- <div className="!space-y-4 text-center">
429
- <SiteLogoIcon className="!mx-auto h-12 w-12" />
430
- <h3 className="text-lg font-bold !text-white">
431
- Aural UI
432
- </h3>
433
- <p className="text-sm !text-white/60">
434
- Beautiful, accessible components for modern web
435
- applications.
436
- </p>
437
- <div className="flex justify-center gap-4 pt-4">
438
- <a
439
- href="#"
440
- className="text-white/60 hover:text-white"
441
- >
442
- GitHub
443
- </a>
444
- <a
445
- href="#"
446
- className="text-white/60 hover:text-white"
447
- >
448
- Documentation
449
- </a>
450
- <a
451
- href="#"
452
- className="text-white/60 hover:text-white"
453
- >
454
- Support
455
- </a>
456
- </div>
457
- </div>
458
- </div>
459
- <div className="rounded-lg bg-black/40 p-4">
460
- <pre className="overflow-x-auto text-sm !text-green-300">
461
- {`<div className="space-y-4 text-center">
462
- <SiteLogoIcon className="mx-auto h-12 w-12" />
463
- <h3 className="text-lg font-bold">Aural UI</h3>
464
- <p className="text-sm text-white/60">
465
- Beautiful, accessible components for modern web applications.
466
- </p>
467
- <div className="flex justify-center gap-4 pt-4">
468
- <a href="#" className="text-white/60 hover:text-white">GitHub</a>
469
- <a href="#" className="text-white/60 hover:text-white">Documentation</a>
470
- <a href="#" className="text-white/60 hover:text-white">Support</a>
471
- </div>
472
- </div>`}
473
- </pre>
474
- </div>
475
- </div>
476
- </div>
477
-
478
- {/* Loading/Splash Screen */}
479
- <div className="!space-y-4">
480
- <h3 className="text-lg font-semibold !text-red-300">
481
- Loading & Splash Screen
482
- </h3>
483
- <div className="!space-y-4">
484
- <div className="flex items-center justify-center rounded-lg border border-white/10 bg-gradient-to-br from-red-500/10 to-pink-500/10 p-6">
485
- <div className="text-center">
486
- <SiteLogoIcon className="animate-logo-pulse !mx-auto h-16 w-16" />
487
- <p className="mt-4 text-sm !text-white/70">
488
- Loading...
489
- </p>
490
- </div>
491
- </div>
492
- <div className="rounded-lg bg-black/40 p-4">
493
- <pre className="overflow-x-auto text-sm !text-green-300">
494
- {`// Loading with pulse animation
495
- <div className="text-center">
496
- <SiteLogoIcon className="mx-auto h-16 w-16 animate-pulse" />
497
- <p className="mt-4 text-sm text-white/70">Loading...</p>
498
- </div>
499
-
500
- // Splash screen
501
- <div className="flex min-h-screen items-center justify-center bg-gradient-to-br from-red-500/10 to-pink-500/10">
502
- <div className="text-center">
503
- <SiteLogoIcon className="mx-auto h-24 w-24 animate-pulse" />
504
- <h1 className="mt-6 text-3xl font-bold">Aural UI</h1>
505
- </div>
506
- </div>`}
507
- </pre>
508
- </div>
509
- </div>
510
- </div>
511
-
512
- {/* App Icon/Favicon */}
513
- <div className="!space-y-4">
514
- <h3 className="text-lg font-semibold !text-red-300">
515
- App Icon Usage
516
- </h3>
517
- <div className="!space-y-4">
518
- <div className="grid grid-cols-4 gap-4">
519
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
520
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-white p-2 shadow-lg">
521
- <SiteLogoIcon className="h-8 w-8" />
522
- </div>
523
- <span className="text-xs text-white/60">
524
- App Icon
525
- </span>
526
- </div>
527
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
528
- <div className="flex h-12 w-12 items-center justify-center rounded-full bg-white p-2 shadow-lg">
529
- <SiteLogoIcon className="h-8 w-8" />
530
- </div>
531
- <span className="text-xs text-white/60">Round</span>
532
- </div>
533
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
534
- <div className="flex h-12 w-12 items-center justify-center rounded bg-gradient-to-br from-red-500 to-pink-500 p-2 shadow-lg">
535
- <SiteLogoIcon className="h-8 w-8" />
536
- </div>
537
- <span className="text-xs text-white/60">Branded</span>
538
- </div>
539
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
540
- <div className="flex h-12 w-12 items-center justify-center rounded-xl border border-red-500/20 bg-red-500/10 p-2">
541
- <SiteLogoIcon className="h-8 w-8" />
542
- </div>
543
- <span className="text-xs text-white/60">
544
- Outlined
545
- </span>
546
- </div>
547
- </div>
548
- <div className="rounded-lg bg-black/40 p-4">
549
- <pre className="overflow-x-auto text-sm !text-green-300">
550
- {`// Standard app icon
551
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-white p-2">
552
- <SiteLogoIcon className="h-8 w-8" />
553
- </div>
554
-
555
- // Branded background
556
- <div className="flex h-12 w-12 items-center justify-center rounded bg-gradient-to-br from-red-500 to-pink-500 p-2">
557
- <SiteLogoIcon className="h-8 w-8" />
558
- </div>
559
-
560
- // For favicon/PWA icons
561
- <link rel="icon" type="image/svg+xml" href="/logo.svg" />
562
- <link rel="apple-touch-icon" href="/logo-192.png" />`}
563
- </pre>
564
- </div>
565
- </div>
566
- </div>
567
- </div>
568
- </div>
569
-
570
- {/* Interactive States */}
571
- <div className="!space-y-8">
572
- <h2 className="text-center text-3xl font-bold !text-white">
573
- Interactive States & Animations
574
- </h2>
575
- <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
576
- <div className="!space-y-4">
577
- <h3 className="text-lg font-semibold !text-red-300">
578
- Animation Effects
579
- </h3>
580
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
581
- <div className="flex items-center gap-4">
582
- <SiteLogoIcon className="h-8 w-8 transition-transform hover:scale-110" />
583
- <div>
584
- <div className="text-sm font-medium text-white">
585
- Scale on Hover
586
- </div>
587
- <div className="text-xs text-white/60">
588
- Subtle growth effect
589
- </div>
590
- </div>
591
- </div>
592
- <div className="flex items-center gap-4">
593
- <SiteLogoIcon className="animate-logo-pulse h-8 w-8" />
594
- <div>
595
- <div className="text-sm font-medium text-white">
596
- Pulse Animation
597
- </div>
598
- <div className="text-xs text-white/60">
599
- Breathing effect
600
- </div>
601
- </div>
602
- </div>
603
- <div className="flex items-center gap-4">
604
- <SiteLogoIcon className="animate-logo-glow h-8 w-8" />
605
- <div>
606
- <div className="text-sm font-medium text-white">
607
- Glow Effect
608
- </div>
609
- <div className="text-xs text-white/60">
610
- Brand color glow
611
- </div>
612
- </div>
613
- </div>
614
- <div className="flex items-center gap-4">
615
- <SiteLogoIcon className="h-8 w-8 transition-opacity hover:opacity-80" />
616
- <div>
617
- <div className="text-sm font-medium text-white">
618
- Opacity Change
619
- </div>
620
- <div className="text-xs text-white/60">
621
- Fade on interaction
622
- </div>
623
- </div>
624
- </div>
625
- </div>
626
- </div>
627
-
628
- <div className="!space-y-4">
629
- <h3 className="text-lg font-semibold !text-red-300">
630
- Interactive Examples
631
- </h3>
632
- <div className="rounded-lg bg-black/40 p-4">
633
- <pre className="overflow-x-auto text-sm !text-cyan-300">
634
- {`// Hover scale effect
635
- <SiteLogoIcon className="h-8 w-8 transition-transform hover:scale-110" />
636
-
637
- // Pulse animation for loading
638
- <SiteLogoIcon className="h-8 w-8 animate-pulse" />
639
-
640
- // Click/active states
641
- <button className="flex items-center gap-2 group">
642
- <SiteLogoIcon className="h-6 w-6 transition-transform group-hover:scale-105" />
643
- <span>Aural UI</span>
644
- </button>
645
-
646
- // Focus states for accessibility
647
- <a
648
- href="#"
649
- className="inline-flex items-center gap-2 rounded focus:ring-2 focus:ring-red-500/50"
650
- >
651
- <SiteLogoIcon className="h-6 w-6" />
652
- <span>Home</span>
653
- </a>
654
-
655
- // Loading spinner alternative
656
- <SiteLogoIcon className="h-8 w-8 animate-spin" />`}
657
- </pre>
658
- </div>
659
- </div>
660
- </div>
661
- </div>
662
-
663
- {/* Brand Guidelines */}
664
- <div className="!space-y-8">
665
- <h2 className="text-center text-3xl font-bold !text-white">
666
- Brand Guidelines
667
- </h2>
668
- <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
669
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
670
- <h3 className="text-lg font-semibold !text-green-300">
671
- ✅ Do's
672
- </h3>
673
- <ul className="!space-y-2 text-sm !text-white/70">
674
- <li className="!text-white/70">
675
- Use the logo at readable sizes (minimum 16px)
676
- </li>
677
- <li className="!text-white/70">
678
- Maintain the original aspect ratio
679
- </li>
680
- <li className="!text-white/70">
681
- Use on contrasting backgrounds for visibility
682
- </li>
683
- <li className="!text-white/70">
684
- Pair with consistent brand typography
685
- </li>
686
- <li className="!text-white/70">
687
- Use as a clickable element for navigation
688
- </li>
689
- </ul>
690
- </div>
691
-
692
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
693
- <h3 className="text-lg font-semibold !text-red-300">
694
- ❌ Don'ts
695
- </h3>
696
- <ul className="!space-y-2 text-sm !text-white/70">
697
- <li className="!text-white/70">
698
- Don't modify the logo colors or design
699
- </li>
700
- <li className="!text-white/70">
701
- Don't stretch or skew the proportions
702
- </li>
703
- <li className="!text-white/70">
704
- Don't use on busy or conflicting backgrounds
705
- </li>
706
- <li className="!text-white/70">
707
- Don't use below 16px for accessibility
708
- </li>
709
- <li className="!text-white/70">
710
- Don't rotate or flip the logo
711
- </li>
712
- </ul>
713
- </div>
714
- </div>
715
-
716
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
717
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
718
- Background & Contrast Guidelines
719
- </h3>
720
- <div className="grid grid-cols-2 gap-6 lg:grid-cols-4">
721
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
722
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-white">
723
- <SiteLogoIcon className="h-10 w-10" />
724
- </div>
725
- <span className="text-xs text-green-400">
726
- ✅ Light backgrounds
727
- </span>
728
- </div>
729
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
730
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-gray-100">
731
- <SiteLogoIcon className="h-10 w-10" />
732
- </div>
733
- <span className="text-xs text-green-400">
734
- ✅ Neutral tones
735
- </span>
736
- </div>
737
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
738
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-blue-900">
739
- <SiteLogoIcon className="h-10 w-10" />
740
- </div>
741
- <span className="text-xs text-green-400">
742
- ✅ Dark colors
743
- </span>
744
- </div>
745
- <div className="flex flex-col items-center justify-center !space-y-2 text-center">
746
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-gradient-to-br from-red-400 to-red-600">
747
- <SiteLogoIcon className="h-10 w-10" />
748
- </div>
749
- <span className="text-xs text-red-400">
750
- ❌ Similar reds
751
- </span>
752
- </div>
753
- </div>
754
- </div>
755
- </div>
756
-
757
- {/* Accessibility */}
758
- <div className="!space-y-8">
759
- <h2 className="text-center text-3xl font-bold !text-white">
760
- Accessibility Features
761
- </h2>
762
- <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
763
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
764
- <h3 className="text-lg font-semibold !text-green-300">
765
- ✅ Built-in Features
766
- </h3>
767
- <ul className="!space-y-2 text-sm !text-white/70">
768
- <li className="!text-white/70">
769
- Uses Radix UI AccessibleIcon wrapper
770
- </li>
771
- <li className="!text-white/70">
772
- Provides screen reader label "Site Logo icon"
773
- </li>
774
- <li className="!text-white/70">
775
- Supports keyboard navigation when clickable
776
- </li>
777
- <li className="!text-white/70">
778
- Scalable vector format for all screen sizes
779
- </li>
780
- <li className="!text-white/70">
781
- High contrast brand colors for visibility
782
- </li>
783
- </ul>
784
- </div>
785
-
786
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
787
- <h3 className="text-lg font-semibold !text-red-300">
788
- 💡 Best Practices
789
- </h3>
790
- <ul className="!space-y-2 text-sm !text-white/70">
791
- <li className="!text-white/70">
792
- Always include alt text when used as content
793
- </li>
794
- <li className="!text-white/70">
795
- Use as clickable link to homepage
796
- </li>
797
- <li className="!text-white/70">
798
- Ensure sufficient size for touch targets
799
- </li>
800
- <li className="!text-white/70">
801
- Add focus indicators for keyboard navigation
802
- </li>
803
- <li className="!text-white/70">
804
- Test with screen readers and voice control
805
- </li>
806
- </ul>
807
- </div>
808
- </div>
809
-
810
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
811
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
812
- Accessibility Implementation
813
- </h3>
814
- <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
815
- <div className="rounded-lg bg-black/40 p-4">
816
- <pre className="overflow-x-auto text-sm !text-cyan-300">
817
- {`// Logo as homepage link
818
- <a
819
- href="/"
820
- aria-label="Aural UI homepage"
821
- className="inline-flex items-center gap-2 rounded focus:ring-2 focus:ring-red-500/50"
822
- >
823
- <SiteLogoIcon className="h-8 w-8" />
824
- <span className="sr-only">Aural UI</span>
825
- </a>
826
-
827
- // Logo with visible text
828
- <div className="flex items-center gap-3">
829
- <SiteLogoIcon
830
- className="h-8 w-8"
831
- aria-hidden="true"
832
- />
833
- <h1 className="text-xl font-bold">Aural UI</h1>
834
- </div>
835
-
836
- // Custom accessible wrapper
837
- import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
838
-
839
- <AccessibleIcon label="Aural UI - Component Library">
840
- <SiteLogoIcon className="h-8 w-8" />
841
- </AccessibleIcon>`}
842
- </pre>
843
- </div>
844
- <div className="!space-y-4">
845
- <p className="text-sm !text-white/70">
846
- When using the SiteLogoIcon as navigation, always
847
- provide clear context about its purpose and destination.
848
- The built-in accessible label helps screen readers
849
- identify the element.
850
- </p>
851
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
852
- <div className="flex items-center gap-2 text-sm text-red-200">
853
- <SiteLogoIcon className="h-4 w-4" />
854
- <span>
855
- This ensures all users can navigate effectively
856
- </span>
857
- </div>
858
- </div>
859
- </div>
860
- </div>
861
- </div>
862
- </div>
863
-
864
- {/* Related Components */}
865
- <div className="!space-y-8">
866
- <h2 className="text-center text-3xl font-bold !text-white">
867
- Related Components
868
- </h2>
869
- <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
870
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
871
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
872
- <span className="text-2xl">🏠</span>
873
- </div>
874
- <div>
875
- <div className="font-medium text-white">HomeIcon</div>
876
- <div className="text-xs text-white/60">Navigation</div>
877
- </div>
878
- </div>
879
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
880
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
881
- <span className="!text-2xl !text-white">☰</span>
882
- </div>
883
- <div>
884
- <div className="font-medium text-white">MenuIcon</div>
885
- <div className="text-xs text-white/60">Mobile nav</div>
886
- </div>
887
- </div>
888
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
889
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
890
- <span className="text-2xl">⚙️</span>
891
- </div>
892
- <div>
893
- <div className="font-medium text-white">SettingsIcon</div>
894
- <div className="text-xs text-white/60">Configuration</div>
895
- </div>
896
- </div>
897
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
898
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
899
- <span className="text-2xl">👤</span>
900
- </div>
901
- <div>
902
- <div className="font-medium text-white">UserIcon</div>
903
- <div className="text-xs text-white/60">Profile</div>
904
- </div>
905
- </div>
906
- </div>
54
+ }`,
55
+ livePreview: (
56
+ <div className="flex items-center gap-2">
57
+ <SiteLogoIcon className="h-8 w-8" />
907
58
  </div>
908
- </div>
909
-
910
- {/* Footer */}
911
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
912
- <div className="!mx-auto max-w-7xl px-6 py-8">
913
- <div className="!space-y-4 text-center">
914
- <div className="flex items-center justify-center gap-3">
915
- <SiteLogoIcon className="h-8 w-8" />
916
- <span className="text-xl font-bold text-white">
917
- Aural UI
918
- </span>
919
- </div>
920
- <p className="!text-white/60">
921
- The official SiteLogoIcon represents the Aural UI brand and
922
- should be used consistently across all applications and
923
- documentation.
924
- </p>
925
- <p className="text-sm !text-white/40">
926
- Built with accessibility and brand consistency in mind. Uses
927
- Radix UI's AccessibleIcon for screen reader compatibility.
928
- </p>
929
- </div>
930
- </div>
931
- </div>
932
- </div>
933
- </>
59
+ ),
60
+ }}
61
+ relatedIcons={[
62
+ {
63
+ name: "GoogleLogoIcon",
64
+ description: "Google brand mark",
65
+ icon: GoogleLogoIcon,
66
+ accentToken: "info",
67
+ },
68
+ {
69
+ name: "AppleLogoIcon",
70
+ description: "Apple brand mark",
71
+ icon: AppleLogoIcon,
72
+ accentToken: "positive",
73
+ },
74
+ {
75
+ name: "InstagramIcon",
76
+ description: "Instagram brand mark",
77
+ icon: InstagramIcon,
78
+ accentToken: "warning",
79
+ },
80
+ {
81
+ name: "IndianFlagIcon",
82
+ description: "Indian flag identity icon",
83
+ icon: IndianFlagIcon,
84
+ accentToken: "negative",
85
+ },
86
+ ]}
87
+ />
934
88
  ),
935
89
  },
936
90
  },
937
91
  tags: ["autodocs"],
938
92
  argTypes: {
939
- width: {
940
- control: { type: "range", min: 16, max: 128, step: 4 },
941
- description: "Width of the logo in pixels",
93
+ className: {
94
+ control: "text",
95
+ description: "CSS classes for sizing",
942
96
  },
943
97
  withAccessibility: {
944
98
  control: "boolean",
945
- description: "Whether to wrap the icon with accessibility features",
946
- },
947
- height: {
948
- control: { type: "range", min: 16, max: 128, step: 4 },
949
- description: "Height of the logo in pixels",
950
- },
951
- className: {
952
- control: "text",
953
- description: "CSS classes for styling",
99
+ description: "Wrap with accessibility label",
954
100
  },
955
101
  },
956
102
  }
@@ -958,218 +104,105 @@ import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
958
104
  export default meta
959
105
  type Story = StoryObj<typeof SiteLogoIcon>
960
106
 
961
- // Story parameters for consistent dark theme
962
- const storyParameters = {
963
- backgrounds: {
964
- default: "dark",
965
- values: [
966
- { name: "dark", value: "#0a0a0a" },
967
- { name: "darker", value: "#000000" },
968
- ],
969
- },
970
- }
971
-
972
107
  export const Default: Story = {
973
108
  args: {
974
109
  className: "h-8 w-8",
975
110
  withAccessibility: true,
976
111
  },
977
- parameters: storyParameters,
978
112
  render: (args) => (
979
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
113
+ <IconDefaultCanvas>
980
114
  <SiteLogoIcon {...args} />
981
- </div>
115
+ </IconDefaultCanvas>
982
116
  ),
983
117
  }
984
118
 
985
119
  export const SizeVariations: Story = {
986
- parameters: {
987
- ...storyParameters,
988
- docs: {
989
- description: {
990
- story:
991
- "SiteLogoIcon in different sizes for various use cases, from small navigation to large displays.",
992
- },
993
- },
994
- },
995
- render: () => (
996
- <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">
997
- <div className="text-center">
998
- <SiteLogoIcon className="!mx-auto mb-2 h-4 w-4" />
999
- <span className="text-xs text-white/60">16px</span>
1000
- </div>
1001
- <div className="text-center">
1002
- <SiteLogoIcon className="!mx-auto mb-2 h-6 w-6" />
1003
- <span className="text-xs text-white/60">24px</span>
1004
- </div>
1005
- <div className="text-center">
1006
- <SiteLogoIcon className="!mx-auto mb-2 h-8 w-8" />
1007
- <span className="text-xs text-white/60">32px</span>
1008
- </div>
1009
- <div className="text-center">
1010
- <SiteLogoIcon className="!mx-auto mb-2 h-12 w-12" />
1011
- <span className="text-xs text-white/60">48px</span>
1012
- </div>
1013
- <div className="text-center">
1014
- <SiteLogoIcon className="!mx-auto mb-2 h-16 w-16" />
1015
- <span className="text-xs text-white/60">64px</span>
1016
- </div>
1017
- <div className="text-center">
1018
- <SiteLogoIcon className="!mx-auto mb-2 h-24 w-24" />
1019
- <span className="text-xs text-white/60">96px</span>
1020
- </div>
1021
- </div>
1022
- ),
120
+ render: () => <IconSizeVariations icon={SiteLogoIcon} />,
1023
121
  }
1024
122
 
1025
- export const NavigationUsage: Story = {
1026
- parameters: {
1027
- ...storyParameters,
1028
- docs: {
1029
- description: {
1030
- story: "SiteLogoIcon used in navigation headers and brand contexts.",
1031
- },
1032
- },
1033
- },
123
+ export const BrandColors: Story = {
1034
124
  render: () => (
1035
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1036
- {/* Main Navigation */}
1037
- <div className="!space-y-2">
1038
- <h3 className="text-sm font-medium text-white">Main Navigation</h3>
1039
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1040
- <div className="flex items-center justify-between">
1041
- <div className="flex items-center gap-3">
1042
- <SiteLogoIcon className="h-8 w-8" />
1043
- <span className="text-xl font-bold text-white">Aural UI</span>
1044
- </div>
1045
- <nav className="flex items-center gap-6">
1046
- <a href="#" className="text-white/70 hover:text-white">
1047
- Docs
1048
- </a>
1049
- <a href="#" className="text-white/70 hover:text-white">
1050
- Components
1051
- </a>
1052
- <a href="#" className="text-white/70 hover:text-white">
1053
- Examples
1054
- </a>
1055
- </nav>
1056
- </div>
1057
- </div>
1058
- </div>
1059
-
1060
- {/* Mobile Header */}
1061
- <div className="!space-y-2">
1062
- <h3 className="text-sm font-medium text-white">Mobile Header</h3>
1063
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1064
- <div className="flex items-center justify-between">
1065
- <div className="flex items-center gap-2">
1066
- <SiteLogoIcon className="h-6 w-6" />
1067
- <span className="text-lg font-bold text-white">Aural UI</span>
1068
- </div>
1069
- <button className="text-white">☰</button>
1070
- </div>
1071
- </div>
1072
- </div>
1073
-
1074
- {/* Footer */}
1075
- <div className="!space-y-2">
1076
- <h3 className="text-sm font-medium text-white">Footer Branding</h3>
1077
- <div className="rounded-lg border border-white/10 bg-white/5 p-6 text-center">
1078
- <SiteLogoIcon className="!mx-auto h-12 w-12" />
1079
- <h3 className="mt-4 text-lg font-bold text-white">Aural UI</h3>
1080
- <p className="mt-2 text-sm text-white/60">
1081
- Beautiful, accessible components for modern web applications.
1082
- </p>
1083
- </div>
1084
- </div>
1085
- </div>
125
+ <IconBrandColors
126
+ icon={SiteLogoIcon}
127
+ variants={[
128
+ {
129
+ label: "Brand Red",
130
+ description: "Recommended",
131
+ cardClassName:
132
+ "border-fm-divider-secondary h-24 w-24 border bg-transparent",
133
+ iconClassName: "h-8 w-8",
134
+ },
135
+ {
136
+ label: "White Background",
137
+ description: "Official card",
138
+ cardClassName:
139
+ "border-fm-divider-secondary h-24 w-24 border bg-white",
140
+ iconClassName: "h-8 w-8",
141
+ },
142
+ {
143
+ label: "Primary Surface",
144
+ description: "Theme surface",
145
+ cardClassName: "bg-fm-surface-primary h-24 w-24",
146
+ iconClassName: "h-8 w-8",
147
+ },
148
+ {
149
+ label: "Transparent",
150
+ description: "Original mark",
151
+ cardClassName:
152
+ "border-fm-divider-contrast h-24 w-24 border bg-transparent",
153
+ iconClassName: "h-8 w-8",
154
+ },
155
+ ]}
156
+ />
1086
157
  ),
1087
158
  }
1088
159
 
1089
- export const BrandApplications: Story = {
1090
- parameters: {
1091
- ...storyParameters,
1092
- docs: {
1093
- description: {
1094
- story: "SiteLogoIcon used in various brand applications and contexts.",
1095
- },
1096
- },
1097
- },
160
+ export const UsageExamples: Story = {
1098
161
  render: () => (
1099
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1100
- {/* App Icons */}
1101
- <div className="!space-y-4">
1102
- <h3 className="text-sm font-medium text-white">App Icon Variations</h3>
1103
- <div className="grid grid-cols-4 gap-4">
1104
- <div className="!space-y-2 text-center">
1105
- <div className="flex h-16 w-16 items-center justify-center rounded-lg bg-white shadow-lg">
1106
- <SiteLogoIcon className="h-12 w-12" />
1107
- </div>
1108
- <span className="text-xs text-white/60">Standard</span>
1109
- </div>
1110
- <div className="!space-y-2 text-center">
1111
- <div className="flex h-16 w-16 items-center justify-center rounded-full bg-white shadow-lg">
1112
- <SiteLogoIcon className="h-12 w-12" />
1113
- </div>
1114
- <span className="text-xs text-white/60">Round</span>
1115
- </div>
1116
- <div className="!space-y-2 text-center">
1117
- <div className="flex h-16 w-16 items-center justify-center rounded-xl bg-gradient-to-br from-red-500 to-pink-500 shadow-lg">
1118
- <SiteLogoIcon className="h-12 w-12" />
1119
- </div>
1120
- <span className="text-xs text-white/60">Branded</span>
1121
- </div>
1122
- <div className="!space-y-2 text-center">
1123
- <div className="flex h-16 w-16 items-center justify-center rounded-xl border-2 border-red-500/20 bg-red-500/10">
1124
- <SiteLogoIcon className="h-12 w-12" />
1125
- </div>
1126
- <span className="text-xs text-white/60">Outlined</span>
162
+ <IconUsageCanvas>
163
+ <IconUsageSection title="App Header">
164
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center justify-between rounded-xl border px-4 py-3">
165
+ <div className="flex items-center gap-2">
166
+ <SiteLogoIcon className="h-8 w-8" />
167
+ <span className="text-fm-primary font-fm-text text-sm font-semibold">
168
+ Pocket FM
169
+ </span>
1127
170
  </div>
1128
171
  </div>
1129
- </div>
172
+ </IconUsageSection>
1130
173
 
1131
- {/* Loading States */}
1132
- <div className="!space-y-4">
1133
- <h3 className="text-sm font-medium text-white">Loading & Animation</h3>
1134
- <div className="grid grid-cols-3 gap-6">
1135
- <div className="text-center">
1136
- <SiteLogoIcon className="!mx-auto h-12 w-12 animate-pulse" />
1137
- <span className="mt-2 text-xs text-white/60">Pulse</span>
1138
- </div>
1139
- <div className="text-center">
1140
- <SiteLogoIcon className="animate-logo-pulse !mx-auto h-12 w-12" />
1141
- <span className="mt-2 text-xs text-white/60">Custom Pulse</span>
174
+ <IconUsageSection title="Login Screen Branding">
175
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm flex-col items-center gap-3 rounded-xl border p-6">
176
+ <SiteLogoIcon className="h-16 w-16" />
177
+ <div className="text-fm-primary font-fm-text text-lg font-semibold">
178
+ Welcome to Pocket FM
1142
179
  </div>
1143
- <div className="text-center">
1144
- <SiteLogoIcon className="animate-logo-glow !mx-auto h-12 w-12" />
1145
- <span className="mt-2 text-xs text-white/60">Glow Effect</span>
180
+ <div className="text-fm-secondary font-fm-text text-sm">
181
+ Sign in to continue
1146
182
  </div>
1147
183
  </div>
1148
- </div>
1149
- </div>
184
+ </IconUsageSection>
185
+
186
+ <IconUsageSection title="Favicon / Tab Icon">
187
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-4 rounded-xl border px-4 py-3">
188
+ <SiteLogoIcon className="h-5 w-5" />
189
+ <span className="text-fm-secondary font-fm-text text-sm">
190
+ Pocket FM — Audio Stories
191
+ </span>
192
+ </div>
193
+ </IconUsageSection>
194
+ </IconUsageCanvas>
1150
195
  ),
1151
196
  }
1152
197
 
1153
198
  export const Playground: Story = {
1154
- parameters: {
1155
- ...storyParameters,
1156
- docs: {
1157
- description: {
1158
- story:
1159
- "Interactive playground to experiment with different SiteLogoIcon configurations.",
1160
- },
1161
- },
1162
- },
1163
199
  args: {
1164
- width: 48,
1165
- height: 48,
1166
- className: "",
200
+ className: "h-8 w-8",
201
+ withAccessibility: true,
1167
202
  },
1168
203
  render: (args) => (
1169
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1170
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1171
- <SiteLogoIcon {...args} />
1172
- </div>
1173
- </div>
204
+ <IconPlaygroundCanvas>
205
+ <SiteLogoIcon {...args} />
206
+ </IconPlaygroundCanvas>
1174
207
  ),
1175
208
  }