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.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1199
- package/dist/components/avatar/Avatar.stories.tsx +235 -237
- package/dist/components/badge/Badge.stories.tsx +379 -116
- package/dist/components/banner/Banner.stories.tsx +445 -391
- package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
- package/dist/components/button/Button.stories.tsx +585 -230
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +619 -301
- package/dist/components/char-count/CharCount.stories.tsx +350 -248
- package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
- package/dist/components/chip/Chip.stories.tsx +362 -168
- package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -620
- package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
- package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
- package/dist/components/command/Command.stories.tsx +533 -856
- package/dist/components/dialog/Dialog.stories.tsx +505 -949
- package/dist/components/divider/Divider.stories.tsx +265 -502
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -993
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1018
- package/dist/components/form/Form.stories.tsx +560 -274
- package/dist/components/helper-text/HelperText.stories.tsx +199 -200
- package/dist/components/hover-card/HoverCard.stories.tsx +318 -1221
- package/dist/components/icon-button/IconButton.stories.tsx +837 -194
- package/dist/components/if-else/if-else.stories.tsx +370 -83
- package/dist/components/input/Input.stories.tsx +436 -368
- package/dist/components/label/Label.stories.tsx +156 -154
- package/dist/components/list/List.stories.tsx +485 -822
- package/dist/components/marquee/Marquee.stories.tsx +356 -694
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -410
- package/dist/components/overlay/Overlay.stories.tsx +452 -818
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +484 -873
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +496 -752
- package/dist/components/scroll-area/ScrollArea.stories.tsx +384 -1006
- package/dist/components/search/Search.stories.tsx +314 -575
- package/dist/components/select/Select.stories.tsx +684 -787
- package/dist/components/sheet/Sheet.stories.tsx +671 -936
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +384 -737
- package/dist/components/stepper/Stepper.stories.tsx +371 -514
- package/dist/components/switch/Switch.stories.tsx +461 -208
- package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
- package/dist/components/table/Table.stories.tsx +770 -914
- package/dist/components/tabs/Tabs.stories.tsx +459 -1400
- package/dist/components/tag/Tag.stories.tsx +714 -542
- package/dist/components/textarea/TextArea.stories.tsx +621 -562
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -148
- package/dist/components/toast/Toast.stories.tsx +452 -1333
- package/dist/components/toggle/Toggle.stories.tsx +488 -909
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1372
- package/dist/components/typography/Typography.stories.tsx +406 -89
- package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
- package/dist/icons/Icons.stories.tsx +0 -12
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +226 -1013
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +109 -929
- package/dist/icons/all-icons.tsx +124 -87
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +140 -971
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +148 -888
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +135 -1019
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +137 -953
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +138 -997
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +136 -942
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +148 -1092
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +146 -1211
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +126 -615
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +144 -1164
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +167 -985
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +122 -1179
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +124 -1168
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +119 -850
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +112 -1213
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +117 -934
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +160 -961
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +163 -961
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +144 -942
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +129 -966
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +147 -964
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +145 -975
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +150 -1142
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +114 -461
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +124 -1322
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +117 -1318
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +114 -903
- package/dist/icons/command-icon/CommandIcon.stories.tsx +127 -1042
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +123 -962
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +147 -999
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +139 -960
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +126 -820
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +124 -1031
- package/dist/icons/email-icon/EmailIcon.stories.tsx +115 -936
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +112 -1111
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +144 -1025
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +143 -1036
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +127 -1011
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +126 -1056
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +125 -614
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +119 -1050
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +169 -989
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +115 -1145
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +115 -1122
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +130 -313
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +145 -940
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +119 -1174
- package/dist/icons/head-icon/HeadIcon.stories.tsx +111 -916
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +120 -1019
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +119 -683
- package/dist/icons/image-icon/ImageIcon.stories.tsx +105 -1121
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +111 -1192
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +136 -1256
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +159 -962
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +161 -1385
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +124 -972
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +119 -948
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +119 -942
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +108 -1215
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +154 -1517
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +110 -1188
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +119 -678
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +123 -1184
- package/dist/icons/message-icon/MessageIcon.stories.tsx +114 -538
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +116 -1158
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +120 -536
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +109 -1184
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +115 -1134
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +119 -971
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +111 -1100
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +119 -1101
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +109 -1111
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +122 -684
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +113 -954
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +112 -877
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +113 -1000
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +115 -1070
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +115 -978
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +106 -1093
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +107 -829
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +102 -469
- package/dist/icons/search-icon/SearchIcon.stories.tsx +111 -1124
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +107 -970
- package/dist/icons/share-icon/ShareIcon.stories.tsx +120 -1025
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +117 -931
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +137 -1104
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +172 -982
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +164 -983
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +105 -958
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +158 -580
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +158 -587
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +146 -682
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +124 -904
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +112 -964
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +116 -852
- package/dist/icons/sun-icon/SunIcon.stories.tsx +120 -831
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +116 -950
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +123 -980
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +156 -1427
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +146 -1142
- package/dist/icons/tick-icon/TickIcon.stories.tsx +145 -1276
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +108 -933
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +157 -1402
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +115 -889
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +118 -984
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +125 -1049
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +123 -1356
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +110 -1171
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +112 -1093
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +115 -1087
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +122 -1046
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +161 -936
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- 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 { GoogleLogoIcon } from "src/ui/icons/google-logo-icon"
|
|
5
|
+
import { InstagramIcon } from "src/ui/icons/instagram-icon"
|
|
6
|
+
import { LinkedInIcon } from "src/ui/icons/linked-in-icon"
|
|
7
|
+
import { TwitterXIcon } from "src/ui/icons/twitter-x-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 { AppleLogoIcon } from "."
|
|
5
19
|
|
|
6
20
|
const meta: Meta<typeof AppleLogoIcon> = {
|
|
@@ -11,751 +25,77 @@ const meta: Meta<typeof AppleLogoIcon> = {
|
|
|
11
25
|
backgrounds: {
|
|
12
26
|
default: "dark",
|
|
13
27
|
values: [
|
|
14
|
-
{ name: "dark", value: "
|
|
15
|
-
{ name: "darker", value: "
|
|
16
|
-
{ name: "light", value: "
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
`}
|
|
81
|
-
</style>
|
|
82
|
-
|
|
83
|
-
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-900/20 to-gray-900">
|
|
84
|
-
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
86
|
-
<div className="absolute inset-0 bg-gradient-to-r from-blue-500/10 via-transparent to-gray-500/10" />
|
|
87
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
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-gray-500/20 to-blue-500/20">
|
|
90
|
-
<AppleLogoIcon className="h-12 w-12 text-white" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
|
-
AppleLogoIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
96
|
-
The iconic Apple logo for branding, authentication, and
|
|
97
|
-
platform identification. Built with accessibility in mind
|
|
98
|
-
using Radix UI's AccessibleIcon wrapper for seamless screen
|
|
99
|
-
reader support.
|
|
100
|
-
</p>
|
|
101
|
-
|
|
102
|
-
{/* Stats */}
|
|
103
|
-
<div className="flex items-center justify-center gap-8 pt-8">
|
|
104
|
-
<div className="text-center">
|
|
105
|
-
<div className="text-3xl font-bold text-blue-300">
|
|
106
|
-
Accessible
|
|
107
|
-
</div>
|
|
108
|
-
<div className="text-sm text-white/60">
|
|
109
|
-
Screen reader friendly
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
<div className="h-8 w-px bg-white/20" />
|
|
113
|
-
<div className="text-center">
|
|
114
|
-
<div className="text-3xl font-bold text-gray-300">
|
|
115
|
-
Scalable
|
|
116
|
-
</div>
|
|
117
|
-
<div className="text-sm text-white/60">
|
|
118
|
-
Any size needed
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
<div className="h-8 w-px bg-white/20" />
|
|
122
|
-
<div className="text-center">
|
|
123
|
-
<div className="text-3xl font-bold text-purple-300">
|
|
124
|
-
Flexible
|
|
125
|
-
</div>
|
|
126
|
-
<div className="text-sm text-white/60">
|
|
127
|
-
Customizable styling
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
{/* Content */}
|
|
136
|
-
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
137
|
-
{/* Quick Usage */}
|
|
138
|
-
<div className="!space-y-8">
|
|
139
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
140
|
-
Quick Start
|
|
141
|
-
</h2>
|
|
142
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
143
|
-
<div className="!space-y-4">
|
|
144
|
-
<h3 className="text-xl font-semibold !text-blue-300">
|
|
145
|
-
Basic Usage
|
|
146
|
-
</h3>
|
|
147
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
148
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
149
|
-
{`import { AppleLogoIcon } from "@icons/apple-logo-icon"
|
|
150
|
-
|
|
151
|
-
function LoginPage() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="info"
|
|
37
|
+
features={[
|
|
38
|
+
{ title: "Brand Mark", description: "Apple identity icon" },
|
|
39
|
+
{ title: "Auth Icon", description: "Sign in with Apple" },
|
|
40
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
41
|
+
]}
|
|
42
|
+
quickStart={{
|
|
43
|
+
codeExample: `import { AppleLogoIcon } from "src/ui/icons/apple-logo-icon"
|
|
44
|
+
|
|
45
|
+
function AppleSignIn() {
|
|
152
46
|
return (
|
|
153
|
-
<button className="flex items-center gap-
|
|
47
|
+
<button className="flex items-center gap-2 bg-black text-white rounded-lg px-4 py-2">
|
|
154
48
|
<AppleLogoIcon className="h-5 w-5 text-white" />
|
|
155
|
-
|
|
49
|
+
Sign in with Apple
|
|
156
50
|
</button>
|
|
157
51
|
)
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
194
|
-
Type
|
|
195
|
-
</th>
|
|
196
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
197
|
-
Default
|
|
198
|
-
</th>
|
|
199
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
200
|
-
Description
|
|
201
|
-
</th>
|
|
202
|
-
</tr>
|
|
203
|
-
</thead>
|
|
204
|
-
<tbody>
|
|
205
|
-
{" "}
|
|
206
|
-
<tr className="!bg-black/10">
|
|
207
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
208
|
-
withAccessibility
|
|
209
|
-
</td>
|
|
210
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
211
|
-
boolean
|
|
212
|
-
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
214
|
-
true
|
|
215
|
-
</td>
|
|
216
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
217
|
-
Whether to wrap the icon with accessibility feature
|
|
218
|
-
</td>
|
|
219
|
-
</tr>
|
|
220
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
221
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
222
|
-
height
|
|
223
|
-
</td>
|
|
224
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
225
|
-
number | string
|
|
226
|
-
</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
|
-
Height of the icon in pixels
|
|
230
|
-
</td>
|
|
231
|
-
</tr>
|
|
232
|
-
<tr className="border-b border-white/5">
|
|
233
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
234
|
-
fill
|
|
235
|
-
</td>
|
|
236
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
237
|
-
string
|
|
238
|
-
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
240
|
-
#fff
|
|
241
|
-
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
243
|
-
Fill color of the icon
|
|
244
|
-
</td>
|
|
245
|
-
</tr>
|
|
246
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
247
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
248
|
-
className
|
|
249
|
-
</td>
|
|
250
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
251
|
-
string
|
|
252
|
-
</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">
|
|
255
|
-
CSS classes for styling
|
|
256
|
-
</td>
|
|
257
|
-
</tr>
|
|
258
|
-
<tr className="!bg-black/10">
|
|
259
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
260
|
-
...svgProps
|
|
261
|
-
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
-
SVGProps
|
|
264
|
-
</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">
|
|
267
|
-
All standard SVG element props
|
|
268
|
-
</td>
|
|
269
|
-
</tr>
|
|
270
|
-
</tbody>
|
|
271
|
-
</table>
|
|
272
|
-
</div>
|
|
273
|
-
</div>
|
|
274
|
-
|
|
275
|
-
{/* Size Variations */}
|
|
276
|
-
<div className="!space-y-8">
|
|
277
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
278
|
-
Size Variations
|
|
279
|
-
</h2>
|
|
280
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
281
|
-
<div className="!space-y-6">
|
|
282
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
283
|
-
<div className="!space-y-4">
|
|
284
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
285
|
-
Standard Sizes
|
|
286
|
-
</h3>
|
|
287
|
-
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
288
|
-
<div className="text-center">
|
|
289
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
|
|
290
|
-
<span className="text-xs text-white/60">12px</span>
|
|
291
|
-
</div>
|
|
292
|
-
<div className="text-center">
|
|
293
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
|
|
294
|
-
<span className="text-xs text-white/60">16px</span>
|
|
295
|
-
</div>
|
|
296
|
-
<div className="text-center">
|
|
297
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
|
|
298
|
-
<span className="text-xs text-white/60">20px</span>
|
|
299
|
-
</div>
|
|
300
|
-
<div className="text-center">
|
|
301
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
|
|
302
|
-
<span className="text-xs text-white/60">24px</span>
|
|
303
|
-
</div>
|
|
304
|
-
<div className="text-center">
|
|
305
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
|
|
306
|
-
<span className="text-xs text-white/60">32px</span>
|
|
307
|
-
</div>
|
|
308
|
-
<div className="text-center">
|
|
309
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
|
|
310
|
-
<span className="text-xs text-white/60">48px</span>
|
|
311
|
-
</div>
|
|
312
|
-
</div>
|
|
313
|
-
</div>
|
|
314
|
-
|
|
315
|
-
<div className="!space-y-4">
|
|
316
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
317
|
-
Code Example
|
|
318
|
-
</h3>
|
|
319
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
320
|
-
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
321
|
-
{`// Small (16px)
|
|
322
|
-
<AppleLogoIcon className="h-4 w-4" />
|
|
323
|
-
|
|
324
|
-
// Medium (24px)
|
|
325
|
-
<AppleLogoIcon className="h-6 w-6" />
|
|
326
|
-
|
|
327
|
-
// Large (32px)
|
|
328
|
-
<AppleLogoIcon className="h-8 w-8" />
|
|
329
|
-
|
|
330
|
-
// Custom size
|
|
331
|
-
<AppleLogoIcon width={40} height={40} />`}
|
|
332
|
-
</pre>
|
|
333
|
-
</div>
|
|
334
|
-
</div>
|
|
335
|
-
</div>
|
|
336
|
-
</div>
|
|
337
|
-
</div>
|
|
338
|
-
</div>
|
|
339
|
-
|
|
340
|
-
{/* Color Variations */}
|
|
341
|
-
<div className="!space-y-8">
|
|
342
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
343
|
-
Color Variations
|
|
344
|
-
</h2>
|
|
345
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
346
|
-
<div className="!space-y-4">
|
|
347
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
348
|
-
Brand Colors
|
|
349
|
-
</h3>
|
|
350
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
351
|
-
<div className="flex items-center gap-4">
|
|
352
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
353
|
-
<div>
|
|
354
|
-
<div className="text-sm font-medium text-white">
|
|
355
|
-
Classic White
|
|
356
|
-
</div>
|
|
357
|
-
<div className="text-xs text-white/60">
|
|
358
|
-
text-white
|
|
359
|
-
</div>
|
|
360
|
-
</div>
|
|
361
|
-
</div>
|
|
362
|
-
<div className="flex items-center gap-4">
|
|
363
|
-
<AppleLogoIcon className="h-6 w-6 text-gray-800" />
|
|
364
|
-
<div>
|
|
365
|
-
<div className="text-sm font-medium text-white">
|
|
366
|
-
Space Gray
|
|
367
|
-
</div>
|
|
368
|
-
<div className="text-xs text-white/60">
|
|
369
|
-
text-gray-800
|
|
370
|
-
</div>
|
|
371
|
-
</div>
|
|
372
|
-
</div>
|
|
373
|
-
<div className="flex items-center gap-4">
|
|
374
|
-
<AppleLogoIcon className="h-6 w-6 text-blue-500" />
|
|
375
|
-
<div>
|
|
376
|
-
<div className="text-sm font-medium text-white">
|
|
377
|
-
Apple Blue
|
|
378
|
-
</div>
|
|
379
|
-
<div className="text-xs text-white/60">
|
|
380
|
-
text-blue-500
|
|
381
|
-
</div>
|
|
382
|
-
</div>
|
|
383
|
-
</div>
|
|
384
|
-
<div className="flex items-center gap-4">
|
|
385
|
-
<AppleLogoIcon className="h-6 w-6 text-gray-400" />
|
|
386
|
-
<div>
|
|
387
|
-
<div className="text-sm font-medium text-white">
|
|
388
|
-
Neutral
|
|
389
|
-
</div>
|
|
390
|
-
<div className="text-xs text-white/60">
|
|
391
|
-
text-gray-400
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
</div>
|
|
396
|
-
</div>
|
|
397
|
-
|
|
398
|
-
<div className="!space-y-4">
|
|
399
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
400
|
-
Custom Colors
|
|
401
|
-
</h3>
|
|
402
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
403
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
404
|
-
{`// Using Tailwind classes
|
|
405
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
406
|
-
<AppleLogoIcon className="h-6 w-6 text-gray-800" />
|
|
407
|
-
|
|
408
|
-
// Using CSS custom properties
|
|
409
|
-
<AppleLogoIcon
|
|
410
|
-
className="h-6 w-6"
|
|
411
|
-
style={{ color: 'var(--brand-primary)' }}
|
|
412
|
-
/>
|
|
413
|
-
|
|
414
|
-
// Direct fill prop
|
|
415
|
-
<AppleLogoIcon
|
|
416
|
-
width={24}
|
|
417
|
-
height={24}
|
|
418
|
-
fill="#ffffff"
|
|
419
|
-
/>`}
|
|
420
|
-
</pre>
|
|
421
|
-
</div>
|
|
422
|
-
</div>
|
|
423
|
-
</div>
|
|
424
|
-
</div>
|
|
425
|
-
|
|
426
|
-
{/* Usage Examples */}
|
|
427
|
-
<div className="!space-y-8">
|
|
428
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
429
|
-
Usage Examples
|
|
430
|
-
</h2>
|
|
431
|
-
|
|
432
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
433
|
-
{/* Authentication Button */}
|
|
434
|
-
<div className="!space-y-4">
|
|
435
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
436
|
-
Authentication Button
|
|
437
|
-
</h3>
|
|
438
|
-
<div className="!space-y-4">
|
|
439
|
-
<div className="flex gap-4">
|
|
440
|
-
<button className="flex items-center gap-3 rounded-lg bg-black px-6 py-3 text-white transition-colors hover:bg-gray-900">
|
|
441
|
-
<AppleLogoIcon className="h-5 w-5" />
|
|
442
|
-
Sign in with Apple
|
|
443
|
-
</button>
|
|
444
|
-
<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">
|
|
445
|
-
<AppleLogoIcon className="h-4 w-4" />
|
|
446
|
-
Continue
|
|
447
|
-
</button>
|
|
448
|
-
</div>
|
|
449
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
450
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
451
|
-
{`// Primary authentication button
|
|
452
|
-
<button className="flex items-center gap-3 bg-black px-6 py-3 rounded-lg text-white">
|
|
453
|
-
<AppleLogoIcon className="h-5 w-5" />
|
|
454
|
-
Sign in with Apple
|
|
455
|
-
</button>
|
|
456
|
-
|
|
457
|
-
// Secondary continue button
|
|
458
|
-
<button className="flex items-center gap-3 bg-white/5 border border-white/20 px-4 py-2 rounded-lg">
|
|
459
|
-
<AppleLogoIcon className="h-4 w-4" />
|
|
460
|
-
Continue
|
|
461
|
-
</button>`}
|
|
462
|
-
</pre>
|
|
463
|
-
</div>
|
|
464
|
-
</div>
|
|
465
|
-
</div>
|
|
466
|
-
|
|
467
|
-
{/* App Footer */}
|
|
468
|
-
<div className="!space-y-4">
|
|
469
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
470
|
-
App Footer
|
|
471
|
-
</h3>
|
|
472
|
-
<div className="!space-y-4">
|
|
473
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
474
|
-
<div className="flex items-center justify-center gap-4">
|
|
475
|
-
<span className="text-sm text-white/70">
|
|
476
|
-
Available on
|
|
477
|
-
</span>
|
|
478
|
-
<div className="flex items-center gap-2">
|
|
479
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
480
|
-
<span className="text-white">App Store</span>
|
|
481
|
-
</div>
|
|
482
|
-
</div>
|
|
483
|
-
</div>
|
|
484
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
485
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
486
|
-
{`<div className="flex items-center justify-center gap-4">
|
|
487
|
-
<span className="text-sm text-white/70">Available on</span>
|
|
488
|
-
<div className="flex items-center gap-2">
|
|
489
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
490
|
-
<span className="text-white">App Store</span>
|
|
491
|
-
</div>
|
|
492
|
-
</div>`}
|
|
493
|
-
</pre>
|
|
494
|
-
</div>
|
|
495
|
-
</div>
|
|
496
|
-
</div>
|
|
497
|
-
|
|
498
|
-
{/* Platform Badge */}
|
|
499
|
-
<div className="!space-y-4">
|
|
500
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
501
|
-
Platform Badge
|
|
502
|
-
</h3>
|
|
503
|
-
<div className="!space-y-4">
|
|
504
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
505
|
-
<div className="inline-flex items-center gap-2 rounded-full border border-gray-500/30 bg-gray-500/10 px-3 py-1">
|
|
506
|
-
<AppleLogoIcon className="h-4 w-4 text-white" />
|
|
507
|
-
<span className="text-sm text-white">macOS</span>
|
|
508
|
-
</div>
|
|
509
|
-
</div>
|
|
510
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
511
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
512
|
-
{`<div className="inline-flex items-center gap-2 rounded-full border border-gray-500/30 bg-gray-500/10 px-3 py-1">
|
|
513
|
-
<AppleLogoIcon className="h-4 w-4 text-white" />
|
|
514
|
-
<span className="text-sm text-white">macOS</span>
|
|
515
|
-
</div>`}
|
|
516
|
-
</pre>
|
|
517
|
-
</div>
|
|
518
|
-
</div>
|
|
519
|
-
</div>
|
|
520
|
-
|
|
521
|
-
{/* Download Card */}
|
|
522
|
-
<div className="!space-y-4">
|
|
523
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
524
|
-
Download Card
|
|
525
|
-
</h3>
|
|
526
|
-
<div className="!space-y-4">
|
|
527
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
528
|
-
<div className="flex items-center justify-between">
|
|
529
|
-
<div className="flex items-center gap-4">
|
|
530
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
|
|
531
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
532
|
-
</div>
|
|
533
|
-
<div>
|
|
534
|
-
<div className="font-medium text-white">
|
|
535
|
-
iOS App
|
|
536
|
-
</div>
|
|
537
|
-
<div className="text-sm text-white/60">
|
|
538
|
-
Download for iPhone & iPad
|
|
539
|
-
</div>
|
|
540
|
-
</div>
|
|
541
|
-
</div>
|
|
542
|
-
<button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
|
|
543
|
-
Download
|
|
544
|
-
</button>
|
|
545
|
-
</div>
|
|
546
|
-
</div>
|
|
547
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
548
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
549
|
-
{`<div className="flex items-center justify-between">
|
|
550
|
-
<div className="flex items-center gap-4">
|
|
551
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
|
|
552
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
553
|
-
</div>
|
|
554
|
-
<div>
|
|
555
|
-
<div className="font-medium text-white">iOS App</div>
|
|
556
|
-
<div className="text-sm text-white/60">Download for iPhone & iPad</div>
|
|
557
|
-
</div>
|
|
558
|
-
</div>
|
|
559
|
-
<button className="bg-blue-500 hover:bg-blue-600 px-4 py-2 rounded-lg text-sm text-white">
|
|
560
|
-
Download
|
|
561
|
-
</button>
|
|
562
|
-
</div>`}
|
|
563
|
-
</pre>
|
|
564
|
-
</div>
|
|
565
|
-
</div>
|
|
566
|
-
</div>
|
|
567
|
-
</div>
|
|
568
|
-
</div>
|
|
569
|
-
|
|
570
|
-
{/* Accessibility */}
|
|
571
|
-
<div className="!space-y-8">
|
|
572
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
573
|
-
Accessibility Features
|
|
574
|
-
</h2>
|
|
575
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
576
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
577
|
-
<h3 className="text-lg font-semibold !text-green-300">
|
|
578
|
-
✅ Built-in Features
|
|
579
|
-
</h3>
|
|
580
|
-
<ul className="!space-y-2 text-sm !text-white/70">
|
|
581
|
-
<li className="!text-white/70">
|
|
582
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
583
|
-
</li>
|
|
584
|
-
<li className="!text-white/70">
|
|
585
|
-
Provides screen reader label "Apple logo"
|
|
586
|
-
</li>
|
|
587
|
-
<li className="!text-white/70">
|
|
588
|
-
Supports keyboard navigation when interactive
|
|
589
|
-
</li>
|
|
590
|
-
<li className="!text-white/70">
|
|
591
|
-
Maintains proper color contrast ratios
|
|
592
|
-
</li>
|
|
593
|
-
<li className="!text-white/70">
|
|
594
|
-
Scales with user's font size preferences
|
|
595
|
-
</li>
|
|
596
|
-
</ul>
|
|
597
|
-
</div>
|
|
598
|
-
|
|
599
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
600
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
601
|
-
💡 Best Practices
|
|
602
|
-
</h3>
|
|
603
|
-
<ul className="!space-y-2 text-sm text-white/70">
|
|
604
|
-
<li className="!text-white/70">
|
|
605
|
-
Always pair with descriptive text for actions
|
|
606
|
-
</li>
|
|
607
|
-
<li className="!text-white/70">
|
|
608
|
-
Use consistent sizing across similar contexts
|
|
609
|
-
</li>
|
|
610
|
-
<li className="!text-white/70">
|
|
611
|
-
Ensure sufficient color contrast on backgrounds
|
|
612
|
-
</li>
|
|
613
|
-
<li className="!text-white/70">
|
|
614
|
-
Add focus states for interactive elements
|
|
615
|
-
</li>
|
|
616
|
-
<li className="!text-white/70">
|
|
617
|
-
Consider brand guidelines for Apple logo usage
|
|
618
|
-
</li>
|
|
619
|
-
</ul>
|
|
620
|
-
</div>
|
|
621
|
-
</div>
|
|
622
|
-
|
|
623
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
624
|
-
<h3 className="mb-4 text-lg font-semibold !text-purple-300">
|
|
625
|
-
Custom Accessibility Label
|
|
626
|
-
</h3>
|
|
627
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
628
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
629
|
-
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
630
|
-
{`// Custom implementation with specific label
|
|
631
|
-
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
632
|
-
|
|
633
|
-
function CustomAppleIcon({ label = "Apple", ...props }) {
|
|
634
|
-
return (
|
|
635
|
-
<AccessibleIcon label={label}>
|
|
636
|
-
<AppleLogoIcon {...props} />
|
|
637
|
-
</AccessibleIcon>
|
|
638
|
-
)
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
// Usage with specific context
|
|
642
|
-
<CustomAppleIcon
|
|
643
|
-
label="Sign in with Apple"
|
|
644
|
-
className="h-5 w-5 text-white"
|
|
645
|
-
/>`}
|
|
646
|
-
</pre>
|
|
647
|
-
</div>
|
|
648
|
-
<div className="!space-y-4">
|
|
649
|
-
<p className="text-sm !text-white/70">
|
|
650
|
-
For specific contexts, you can wrap the AppleLogoIcon
|
|
651
|
-
with a custom AccessibleIcon component that provides
|
|
652
|
-
more descriptive labels for authentication or platform
|
|
653
|
-
identification.
|
|
654
|
-
</p>
|
|
655
|
-
<div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
|
|
656
|
-
<div className="flex items-center gap-2 text-sm text-blue-200">
|
|
657
|
-
<AppleLogoIcon className="h-4 w-4" />
|
|
658
|
-
<span>
|
|
659
|
-
This approach gives screen readers more context
|
|
660
|
-
</span>
|
|
661
|
-
</div>
|
|
662
|
-
</div>
|
|
663
|
-
</div>
|
|
664
|
-
</div>
|
|
665
|
-
</div>
|
|
666
|
-
</div>
|
|
667
|
-
|
|
668
|
-
{/* Related Icons */}
|
|
669
|
-
<div className="!space-y-8">
|
|
670
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
671
|
-
Related Icons
|
|
672
|
-
</h2>
|
|
673
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
674
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
675
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
676
|
-
<span className="text-2xl">🔐</span>
|
|
677
|
-
</div>
|
|
678
|
-
<div>
|
|
679
|
-
<div className="font-medium text-white">LoginIcon</div>
|
|
680
|
-
<div className="text-xs text-white/60">
|
|
681
|
-
Authentication
|
|
682
|
-
</div>
|
|
683
|
-
</div>
|
|
684
|
-
</div>
|
|
685
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
686
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
687
|
-
<span className="text-2xl">👤</span>
|
|
688
|
-
</div>
|
|
689
|
-
<div>
|
|
690
|
-
<div className="font-medium text-white">UserIcon</div>
|
|
691
|
-
<div className="text-xs text-white/60">User profile</div>
|
|
692
|
-
</div>
|
|
693
|
-
</div>
|
|
694
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
695
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
|
|
696
|
-
<span className="text-2xl">📱</span>
|
|
697
|
-
</div>
|
|
698
|
-
<div>
|
|
699
|
-
<div className="font-medium text-white">MobileIcon</div>
|
|
700
|
-
<div className="text-xs text-white/60">
|
|
701
|
-
Device platform
|
|
702
|
-
</div>
|
|
703
|
-
</div>
|
|
704
|
-
</div>
|
|
705
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
706
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
707
|
-
<span className="text-2xl">⬇️</span>
|
|
708
|
-
</div>
|
|
709
|
-
<div>
|
|
710
|
-
<div className="font-medium text-white">DownloadIcon</div>
|
|
711
|
-
<div className="text-xs text-white/60">Download apps</div>
|
|
712
|
-
</div>
|
|
713
|
-
</div>
|
|
714
|
-
</div>
|
|
715
|
-
</div>
|
|
716
|
-
</div>
|
|
717
|
-
|
|
718
|
-
{/* Footer */}
|
|
719
|
-
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
720
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
721
|
-
<div className="!space-y-4 text-center">
|
|
722
|
-
<p className="!text-white/60">
|
|
723
|
-
AppleLogoIcon is part of the Aural UI icon library, built
|
|
724
|
-
with accessibility and brand consistency in mind.
|
|
725
|
-
</p>
|
|
726
|
-
<p className="text-sm !text-white/40">
|
|
727
|
-
All icons use Radix UI's AccessibleIcon for screen reader
|
|
728
|
-
compatibility and follow WCAG guidelines.
|
|
729
|
-
</p>
|
|
730
|
-
</div>
|
|
731
|
-
</div>
|
|
732
|
-
</div>
|
|
733
|
-
</div>
|
|
734
|
-
</>
|
|
52
|
+
}`,
|
|
53
|
+
livePreview: (
|
|
54
|
+
<button className="border-fm-divider-secondary text-fm-primary font-fm-text flex items-center gap-2 rounded-lg border px-4 py-2 text-sm">
|
|
55
|
+
<AppleLogoIcon className="text-fm-icon-active h-5 w-5" />
|
|
56
|
+
Sign in with Apple
|
|
57
|
+
</button>
|
|
58
|
+
),
|
|
59
|
+
}}
|
|
60
|
+
relatedIcons={[
|
|
61
|
+
{
|
|
62
|
+
name: "GoogleLogoIcon",
|
|
63
|
+
description: "Google brand mark",
|
|
64
|
+
icon: GoogleLogoIcon,
|
|
65
|
+
accentToken: "info",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "LinkedInIcon",
|
|
69
|
+
description: "LinkedIn brand mark",
|
|
70
|
+
icon: LinkedInIcon,
|
|
71
|
+
accentToken: "positive",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "TwitterXIcon",
|
|
75
|
+
description: "X (Twitter) brand mark",
|
|
76
|
+
icon: TwitterXIcon,
|
|
77
|
+
accentToken: "warning",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "InstagramIcon",
|
|
81
|
+
description: "Instagram brand mark",
|
|
82
|
+
icon: InstagramIcon,
|
|
83
|
+
accentToken: "negative",
|
|
84
|
+
},
|
|
85
|
+
]}
|
|
86
|
+
/>
|
|
735
87
|
),
|
|
736
88
|
},
|
|
737
89
|
},
|
|
738
90
|
tags: ["autodocs"],
|
|
739
91
|
argTypes: {
|
|
740
|
-
|
|
741
|
-
control:
|
|
742
|
-
description: "
|
|
92
|
+
className: {
|
|
93
|
+
control: "text",
|
|
94
|
+
description: "CSS classes including color token",
|
|
743
95
|
},
|
|
744
96
|
withAccessibility: {
|
|
745
97
|
control: "boolean",
|
|
746
|
-
description: "
|
|
747
|
-
},
|
|
748
|
-
height: {
|
|
749
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
750
|
-
description: "Height of the icon in pixels",
|
|
751
|
-
},
|
|
752
|
-
fill: {
|
|
753
|
-
control: "color",
|
|
754
|
-
description: "Fill color of the icon",
|
|
755
|
-
},
|
|
756
|
-
className: {
|
|
757
|
-
control: "text",
|
|
758
|
-
description: "CSS classes for styling",
|
|
98
|
+
description: "Wrap with accessibility label",
|
|
759
99
|
},
|
|
760
100
|
},
|
|
761
101
|
}
|
|
@@ -763,198 +103,118 @@ function CustomAppleIcon({ label = "Apple", ...props }) {
|
|
|
763
103
|
export default meta
|
|
764
104
|
type Story = StoryObj<typeof AppleLogoIcon>
|
|
765
105
|
|
|
766
|
-
// Story parameters for consistent dark theme
|
|
767
|
-
const storyParameters = {
|
|
768
|
-
backgrounds: {
|
|
769
|
-
default: "dark",
|
|
770
|
-
values: [
|
|
771
|
-
{ name: "dark", value: "#0a0a0a" },
|
|
772
|
-
{ name: "darker", value: "#000000" },
|
|
773
|
-
],
|
|
774
|
-
},
|
|
775
|
-
}
|
|
776
|
-
|
|
777
106
|
export const Default: Story = {
|
|
778
107
|
args: {
|
|
779
|
-
|
|
780
|
-
height: 20,
|
|
781
|
-
className: "text-white",
|
|
108
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
782
109
|
withAccessibility: true,
|
|
783
110
|
},
|
|
784
|
-
parameters: storyParameters,
|
|
785
111
|
render: (args) => (
|
|
786
|
-
<
|
|
112
|
+
<IconDefaultCanvas>
|
|
787
113
|
<AppleLogoIcon {...args} />
|
|
788
|
-
</
|
|
114
|
+
</IconDefaultCanvas>
|
|
789
115
|
),
|
|
790
116
|
}
|
|
791
117
|
|
|
792
118
|
export const SizeVariations: Story = {
|
|
793
|
-
|
|
794
|
-
...storyParameters,
|
|
795
|
-
docs: {
|
|
796
|
-
description: {
|
|
797
|
-
story:
|
|
798
|
-
"AppleLogoIcon in different sizes, from small UI elements to large brand displays.",
|
|
799
|
-
},
|
|
800
|
-
},
|
|
801
|
-
},
|
|
802
|
-
render: () => (
|
|
803
|
-
<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">
|
|
804
|
-
<div className="text-center">
|
|
805
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-3 w-3 text-white" />
|
|
806
|
-
<span className="text-xs text-white/60">12px</span>
|
|
807
|
-
</div>
|
|
808
|
-
<div className="text-center">
|
|
809
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-4 w-4 text-white" />
|
|
810
|
-
<span className="text-xs text-white/60">16px</span>
|
|
811
|
-
</div>
|
|
812
|
-
<div className="text-center">
|
|
813
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-5 w-5 text-white" />
|
|
814
|
-
<span className="text-xs text-white/60">20px</span>
|
|
815
|
-
</div>
|
|
816
|
-
<div className="text-center">
|
|
817
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-6 w-6 text-white" />
|
|
818
|
-
<span className="text-xs text-white/60">24px</span>
|
|
819
|
-
</div>
|
|
820
|
-
<div className="text-center">
|
|
821
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-8 w-8 text-white" />
|
|
822
|
-
<span className="text-xs text-white/60">32px</span>
|
|
823
|
-
</div>
|
|
824
|
-
<div className="text-center">
|
|
825
|
-
<AppleLogoIcon className="!mx-auto mb-2 h-12 w-12 text-white" />
|
|
826
|
-
<span className="text-xs text-white/60">48px</span>
|
|
827
|
-
</div>
|
|
828
|
-
</div>
|
|
829
|
-
),
|
|
119
|
+
render: () => <IconSizeVariations icon={AppleLogoIcon} />,
|
|
830
120
|
}
|
|
831
121
|
|
|
832
|
-
export const
|
|
833
|
-
parameters: {
|
|
834
|
-
...storyParameters,
|
|
835
|
-
docs: {
|
|
836
|
-
description: {
|
|
837
|
-
story:
|
|
838
|
-
"AppleLogoIcon in different brand and semantic colors for various contexts.",
|
|
839
|
-
},
|
|
840
|
-
},
|
|
841
|
-
},
|
|
122
|
+
export const BrandColors: Story = {
|
|
842
123
|
render: () => (
|
|
843
|
-
<
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
124
|
+
<IconBrandColors
|
|
125
|
+
icon={AppleLogoIcon}
|
|
126
|
+
variants={[
|
|
127
|
+
{
|
|
128
|
+
label: "Dark Background",
|
|
129
|
+
description: "Recommended",
|
|
130
|
+
cardClassName:
|
|
131
|
+
"border-fm-divider-secondary h-24 w-24 border bg-black",
|
|
132
|
+
iconClassName: "h-8 w-8",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
label: "Surface Background",
|
|
136
|
+
description: "Theme surface",
|
|
137
|
+
cardClassName:
|
|
138
|
+
"border-fm-divider-secondary bg-fm-surface-secondary h-24 w-24 border",
|
|
139
|
+
iconClassName: "h-8 w-8",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
label: "Contrast Background",
|
|
143
|
+
description: "Theme contrast",
|
|
144
|
+
cardClassName: "bg-fm-neutral-0 h-24 w-24",
|
|
145
|
+
iconClassName: "h-8 w-8",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
label: "Transparent",
|
|
149
|
+
description: "Original mark",
|
|
150
|
+
cardClassName:
|
|
151
|
+
"border-fm-divider-contrast h-24 w-24 border bg-transparent",
|
|
152
|
+
iconClassName: "h-8 w-8",
|
|
153
|
+
},
|
|
154
|
+
]}
|
|
155
|
+
/>
|
|
873
156
|
),
|
|
874
157
|
}
|
|
875
158
|
|
|
876
159
|
export const UsageExamples: Story = {
|
|
877
|
-
parameters: {
|
|
878
|
-
...storyParameters,
|
|
879
|
-
docs: {
|
|
880
|
-
description: {
|
|
881
|
-
story:
|
|
882
|
-
"Real-world usage examples showing AppleLogoIcon in different branding and authentication contexts.",
|
|
883
|
-
},
|
|
884
|
-
},
|
|
885
|
-
},
|
|
886
160
|
render: () => (
|
|
887
|
-
<
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
<button className="flex items-center gap-3 rounded-lg bg-black px-6 py-3 text-white transition-colors hover:bg-gray-900">
|
|
893
|
-
<AppleLogoIcon className="h-5 w-5" />
|
|
161
|
+
<IconUsageCanvas>
|
|
162
|
+
<IconUsageSection title="Sign In with Apple">
|
|
163
|
+
<button className="flex w-full max-w-sm items-center justify-center gap-3 rounded-xl bg-black px-4 py-3">
|
|
164
|
+
<AppleLogoIcon className="h-5 w-5 text-white" />
|
|
165
|
+
<span className="font-fm-text text-sm font-medium text-white">
|
|
894
166
|
Sign in with Apple
|
|
167
|
+
</span>
|
|
168
|
+
</button>
|
|
169
|
+
</IconUsageSection>
|
|
170
|
+
|
|
171
|
+
<IconUsageSection title="Auth Provider List">
|
|
172
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm space-y-2 rounded-xl border p-4">
|
|
173
|
+
<button className="border-fm-divider-secondary flex w-full items-center gap-3 rounded-lg border px-3 py-2.5">
|
|
174
|
+
<AppleLogoIcon className="text-fm-icon-active h-5 w-5" />
|
|
175
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
176
|
+
Continue with Apple
|
|
177
|
+
</span>
|
|
895
178
|
</button>
|
|
896
|
-
<button className="flex items-center gap-3 rounded-lg border
|
|
897
|
-
<
|
|
898
|
-
|
|
179
|
+
<button className="border-fm-divider-secondary flex w-full items-center gap-3 rounded-lg border px-3 py-2.5">
|
|
180
|
+
<GoogleLogoIcon className="h-5 w-5" />
|
|
181
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
182
|
+
Continue with Google
|
|
183
|
+
</span>
|
|
899
184
|
</button>
|
|
900
185
|
</div>
|
|
901
|
-
</
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
</div>
|
|
911
|
-
|
|
912
|
-
{/* Download Card */}
|
|
913
|
-
<div className="!space-y-2">
|
|
914
|
-
<h3 className="text-sm font-medium text-white">Download Card</h3>
|
|
915
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
916
|
-
<div className="flex items-center justify-between">
|
|
917
|
-
<div className="flex items-center gap-4">
|
|
918
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-black">
|
|
919
|
-
<AppleLogoIcon className="h-6 w-6 text-white" />
|
|
186
|
+
</IconUsageSection>
|
|
187
|
+
|
|
188
|
+
<IconUsageSection title="Connected Account">
|
|
189
|
+
<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">
|
|
190
|
+
<div className="flex items-center gap-3">
|
|
191
|
+
<AppleLogoIcon className="text-fm-icon-active h-5 w-5" />
|
|
192
|
+
<div>
|
|
193
|
+
<div className="text-fm-primary font-fm-text text-sm font-medium">
|
|
194
|
+
Apple
|
|
920
195
|
</div>
|
|
921
|
-
<div>
|
|
922
|
-
|
|
923
|
-
<div className="text-sm text-white/60">
|
|
924
|
-
Download for iPhone & iPad
|
|
925
|
-
</div>
|
|
196
|
+
<div className="text-fm-secondary font-fm-text text-xs">
|
|
197
|
+
user@icloud.com
|
|
926
198
|
</div>
|
|
927
199
|
</div>
|
|
928
|
-
<button className="rounded-lg bg-blue-500 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-600">
|
|
929
|
-
Download
|
|
930
|
-
</button>
|
|
931
200
|
</div>
|
|
201
|
+
<span className="text-fm-icon-positive font-fm-text text-xs">
|
|
202
|
+
Connected
|
|
203
|
+
</span>
|
|
932
204
|
</div>
|
|
933
|
-
</
|
|
934
|
-
</
|
|
205
|
+
</IconUsageSection>
|
|
206
|
+
</IconUsageCanvas>
|
|
935
207
|
),
|
|
936
208
|
}
|
|
937
209
|
|
|
938
210
|
export const Playground: Story = {
|
|
939
|
-
parameters: {
|
|
940
|
-
...storyParameters,
|
|
941
|
-
docs: {
|
|
942
|
-
description: {
|
|
943
|
-
story:
|
|
944
|
-
"Interactive playground to experiment with different AppleLogoIcon configurations.",
|
|
945
|
-
},
|
|
946
|
-
},
|
|
947
|
-
},
|
|
948
211
|
args: {
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
className: "text-white",
|
|
212
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
213
|
+
withAccessibility: true,
|
|
952
214
|
},
|
|
953
215
|
render: (args) => (
|
|
954
|
-
<
|
|
955
|
-
<
|
|
956
|
-
|
|
957
|
-
</div>
|
|
958
|
-
</div>
|
|
216
|
+
<IconPlaygroundCanvas>
|
|
217
|
+
<AppleLogoIcon {...args} />
|
|
218
|
+
</IconPlaygroundCanvas>
|
|
959
219
|
),
|
|
960
220
|
}
|