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