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