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 VolumeHalfIcon> = {
|
|
|
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 VolumeHalfIcon> = {
|
|
|
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-positive/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-positive/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
|
-
<VolumeHalfIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-positive/30 from-fm-icon-positive/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
|
+
<VolumeHalfIcon className="text-fm-icon-positive 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
|
VolumeHalfIcon
|
|
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 medium volume audio control icon for media interfaces.
|
|
97
97
|
Features the classic speaker with moderate sound waves
|
|
98
98
|
design, essential for music players, video platforms, audio
|
|
@@ -103,28 +103,28 @@ const meta: Meta<typeof VolumeHalfIcon> = {
|
|
|
103
103
|
{/* Stats */}
|
|
104
104
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
105
105
|
<div className="text-center">
|
|
106
|
-
<div className="text-3xl font-bold
|
|
106
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
107
107
|
Medium Volume
|
|
108
108
|
</div>
|
|
109
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
110
110
|
Balanced audio
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
114
114
|
<div className="text-center">
|
|
115
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
116
116
|
Accessible
|
|
117
117
|
</div>
|
|
118
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
119
119
|
Screen reader friendly
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
123
123
|
<div className="text-center">
|
|
124
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
125
125
|
Universal
|
|
126
126
|
</div>
|
|
127
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
128
128
|
Standard volume symbol
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
@@ -137,16 +137,16 @@ const meta: Meta<typeof VolumeHalfIcon> = {
|
|
|
137
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
138
138
|
{/* Quick Usage */}
|
|
139
139
|
<div className="!space-y-8">
|
|
140
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
141
141
|
Quick Start
|
|
142
142
|
</h2>
|
|
143
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
144
144
|
<div className="!space-y-4">
|
|
145
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
146
146
|
Basic Usage
|
|
147
147
|
</h3>
|
|
148
|
-
<div className="rounded-lg
|
|
149
|
-
<pre className="overflow-x-auto text-sm
|
|
148
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
149
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
150
150
|
{`import { VolumeHalfIcon } from "@icons/volume-half-icon"
|
|
151
151
|
|
|
152
152
|
function VolumeControl() {
|
|
@@ -165,12 +165,12 @@ function VolumeControl() {
|
|
|
165
165
|
</div>
|
|
166
166
|
|
|
167
167
|
<div className="!space-y-4">
|
|
168
|
-
<h3 className="text-xl font-semibold
|
|
168
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
169
169
|
Live Preview
|
|
170
170
|
</h3>
|
|
171
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
172
|
-
<button className="
|
|
173
|
-
<VolumeHalfIcon className="h-6 w-6
|
|
171
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
172
|
+
<button className="border-fm-icon-positive/20 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded-lg border p-3 transition-colors">
|
|
173
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-6 w-6" />
|
|
174
174
|
</button>
|
|
175
175
|
</div>
|
|
176
176
|
</div>
|
|
@@ -179,108 +179,116 @@ function VolumeControl() {
|
|
|
179
179
|
|
|
180
180
|
{/* Props Documentation */}
|
|
181
181
|
<div className="!space-y-8">
|
|
182
|
-
<h2 className="text-center text-3xl font-bold
|
|
182
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
183
183
|
Props & Configuration
|
|
184
184
|
</h2>
|
|
185
185
|
|
|
186
|
-
<div className="overflow-hidden rounded-lg border
|
|
187
|
-
<div className="bg-
|
|
188
|
-
<h3 className="text-xl font-semibold
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
187
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
188
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
189
|
+
Props
|
|
190
|
+
</h3>
|
|
189
191
|
</div>
|
|
190
192
|
<table className="!my-0 w-full">
|
|
191
|
-
<thead className="bg-
|
|
192
|
-
<tr className="border-
|
|
193
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
193
|
+
<thead className="bg-fm-surface-secondary">
|
|
194
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
195
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
194
196
|
Prop
|
|
195
197
|
</th>
|
|
196
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
198
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
197
199
|
Type
|
|
198
200
|
</th>
|
|
199
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
201
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
200
202
|
Default
|
|
201
203
|
</th>
|
|
202
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
204
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
203
205
|
Description
|
|
204
206
|
</th>
|
|
205
207
|
</tr>
|
|
206
208
|
</thead>
|
|
207
209
|
<tbody>
|
|
208
210
|
{" "}
|
|
209
|
-
<tr className="
|
|
210
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
211
|
+
<tr className="bg-fm-surface-secondary!">
|
|
212
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
211
213
|
withAccessibility
|
|
212
214
|
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
214
216
|
boolean
|
|
215
217
|
</td>
|
|
216
|
-
<td className="px-6 py-4 text-sm
|
|
218
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
217
219
|
true
|
|
218
220
|
</td>
|
|
219
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
220
222
|
Whether to wrap the icon with accessibility feature
|
|
221
223
|
</td>
|
|
222
224
|
</tr>
|
|
223
|
-
<tr className="border-
|
|
224
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
225
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
226
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
225
227
|
height
|
|
226
228
|
</td>
|
|
227
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
230
|
number | string
|
|
229
231
|
</td>
|
|
230
|
-
<td className="px-6 py-4 text-sm
|
|
231
|
-
|
|
232
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
|
+
24
|
|
234
|
+
</td>
|
|
235
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
232
236
|
Height of the icon in pixels
|
|
233
237
|
</td>
|
|
234
238
|
</tr>
|
|
235
|
-
<tr className="border-
|
|
236
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
240
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
237
241
|
stroke
|
|
238
242
|
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
244
|
string
|
|
241
245
|
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
247
|
currentColor
|
|
244
248
|
</td>
|
|
245
|
-
<td className="px-6 py-4 text-sm
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
250
|
Stroke color of the icon
|
|
247
251
|
</td>
|
|
248
252
|
</tr>
|
|
249
|
-
<tr className="border-
|
|
250
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
253
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
254
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
251
255
|
strokeWidth
|
|
252
256
|
</td>
|
|
253
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
258
|
string | number
|
|
255
259
|
</td>
|
|
256
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
257
261
|
1.5
|
|
258
262
|
</td>
|
|
259
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
264
|
Width of the stroke
|
|
261
265
|
</td>
|
|
262
266
|
</tr>
|
|
263
|
-
<tr className="border-
|
|
264
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
268
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
265
269
|
className
|
|
266
270
|
</td>
|
|
267
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
272
|
string
|
|
269
273
|
</td>
|
|
270
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
-
|
|
274
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
275
|
+
-
|
|
276
|
+
</td>
|
|
277
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
272
278
|
CSS classes for styling (use for overrides)
|
|
273
279
|
</td>
|
|
274
280
|
</tr>
|
|
275
|
-
<tr className="
|
|
276
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
281
|
+
<tr className="bg-fm-surface-secondary!">
|
|
282
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
277
283
|
...svgProps
|
|
278
284
|
</td>
|
|
279
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
286
|
SVGProps
|
|
281
287
|
</td>
|
|
282
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
-
|
|
288
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
289
|
+
-
|
|
290
|
+
</td>
|
|
291
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
284
292
|
All standard SVG element props
|
|
285
293
|
</td>
|
|
286
294
|
</tr>
|
|
@@ -291,50 +299,62 @@ function VolumeControl() {
|
|
|
291
299
|
|
|
292
300
|
{/* Size Variations */}
|
|
293
301
|
<div className="!space-y-8">
|
|
294
|
-
<h2 className="text-center text-3xl font-bold
|
|
302
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
295
303
|
Size Variations
|
|
296
304
|
</h2>
|
|
297
|
-
<div className="rounded-lg border
|
|
305
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
298
306
|
<div className="!space-y-6">
|
|
299
307
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
300
308
|
<div className="!space-y-4">
|
|
301
|
-
<h3 className="text-lg font-semibold
|
|
309
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
302
310
|
Standard Sizes
|
|
303
311
|
</h3>
|
|
304
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
312
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
305
313
|
<div className="text-center">
|
|
306
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-3 w-3
|
|
307
|
-
<span className="text-
|
|
314
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
315
|
+
<span className="text-fm-tertiary text-xs">
|
|
316
|
+
12px
|
|
317
|
+
</span>
|
|
308
318
|
</div>
|
|
309
319
|
<div className="text-center">
|
|
310
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-4 w-4
|
|
311
|
-
<span className="text-
|
|
320
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
321
|
+
<span className="text-fm-tertiary text-xs">
|
|
322
|
+
16px
|
|
323
|
+
</span>
|
|
312
324
|
</div>
|
|
313
325
|
<div className="text-center">
|
|
314
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-5 w-5
|
|
315
|
-
<span className="text-
|
|
326
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
327
|
+
<span className="text-fm-tertiary text-xs">
|
|
328
|
+
20px
|
|
329
|
+
</span>
|
|
316
330
|
</div>
|
|
317
331
|
<div className="text-center">
|
|
318
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-6 w-6
|
|
319
|
-
<span className="text-
|
|
332
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
333
|
+
<span className="text-fm-tertiary text-xs">
|
|
334
|
+
24px
|
|
335
|
+
</span>
|
|
320
336
|
</div>
|
|
321
337
|
<div className="text-center">
|
|
322
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-8 w-8
|
|
323
|
-
<span className="text-
|
|
338
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
339
|
+
<span className="text-fm-tertiary text-xs">
|
|
340
|
+
32px
|
|
341
|
+
</span>
|
|
324
342
|
</div>
|
|
325
343
|
<div className="text-center">
|
|
326
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-12 w-12
|
|
327
|
-
<span className="text-
|
|
344
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
345
|
+
<span className="text-fm-tertiary text-xs">
|
|
346
|
+
48px
|
|
347
|
+
</span>
|
|
328
348
|
</div>
|
|
329
349
|
</div>
|
|
330
350
|
</div>
|
|
331
351
|
|
|
332
352
|
<div className="!space-y-4">
|
|
333
|
-
<h3 className="text-lg font-semibold
|
|
353
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
334
354
|
Code Example
|
|
335
355
|
</h3>
|
|
336
|
-
<div className="rounded-lg
|
|
337
|
-
<pre className="overflow-x-auto text-sm
|
|
356
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
357
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
338
358
|
{`// Small (16px) - compact controls
|
|
339
359
|
<VolumeHalfIcon className="h-4 w-4" />
|
|
340
360
|
|
|
@@ -356,56 +376,56 @@ function VolumeControl() {
|
|
|
356
376
|
|
|
357
377
|
{/* Color Variations */}
|
|
358
378
|
<div className="!space-y-8">
|
|
359
|
-
<h2 className="text-center text-3xl font-bold
|
|
379
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
360
380
|
Color Variations
|
|
361
381
|
</h2>
|
|
362
382
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
363
383
|
<div className="!space-y-4">
|
|
364
|
-
<h3 className="text-lg font-semibold
|
|
384
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
365
385
|
Semantic Colors
|
|
366
386
|
</h3>
|
|
367
|
-
<div className="!space-y-4 rounded-lg border
|
|
387
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
368
388
|
<div className="flex items-center gap-4">
|
|
369
|
-
<VolumeHalfIcon className="h-6 w-6
|
|
389
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-6 w-6" />
|
|
370
390
|
<div>
|
|
371
|
-
<div className="text-sm font-medium
|
|
391
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
372
392
|
Medium Volume
|
|
373
393
|
</div>
|
|
374
|
-
<div className="text-
|
|
375
|
-
text-
|
|
394
|
+
<div className="text-fm-tertiary text-xs">
|
|
395
|
+
text-fm-icon-positive
|
|
376
396
|
</div>
|
|
377
397
|
</div>
|
|
378
398
|
</div>
|
|
379
399
|
<div className="flex items-center gap-4">
|
|
380
|
-
<VolumeHalfIcon className="h-6 w-6
|
|
400
|
+
<VolumeHalfIcon className="text-fm-icon-info h-6 w-6" />
|
|
381
401
|
<div>
|
|
382
|
-
<div className="text-sm font-medium
|
|
402
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
383
403
|
Balanced
|
|
384
404
|
</div>
|
|
385
|
-
<div className="text-
|
|
386
|
-
text-
|
|
405
|
+
<div className="text-fm-tertiary text-xs">
|
|
406
|
+
text-fm-icon-info
|
|
387
407
|
</div>
|
|
388
408
|
</div>
|
|
389
409
|
</div>
|
|
390
410
|
<div className="flex items-center gap-4">
|
|
391
|
-
<VolumeHalfIcon className="h-6 w-6
|
|
411
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-6 w-6" />
|
|
392
412
|
<div>
|
|
393
|
-
<div className="text-sm font-medium
|
|
413
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
394
414
|
Active
|
|
395
415
|
</div>
|
|
396
|
-
<div className="text-
|
|
397
|
-
text-
|
|
416
|
+
<div className="text-fm-tertiary text-xs">
|
|
417
|
+
text-fm-icon-positive
|
|
398
418
|
</div>
|
|
399
419
|
</div>
|
|
400
420
|
</div>
|
|
401
421
|
<div className="flex items-center gap-4">
|
|
402
|
-
<VolumeHalfIcon className="h-6 w-6
|
|
422
|
+
<VolumeHalfIcon className="text-fm-icon-info h-6 w-6" />
|
|
403
423
|
<div>
|
|
404
|
-
<div className="text-sm font-medium
|
|
424
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
405
425
|
Accent
|
|
406
426
|
</div>
|
|
407
|
-
<div className="text-
|
|
408
|
-
text-
|
|
427
|
+
<div className="text-fm-tertiary text-xs">
|
|
428
|
+
text-fm-icon-info
|
|
409
429
|
</div>
|
|
410
430
|
</div>
|
|
411
431
|
</div>
|
|
@@ -413,11 +433,11 @@ function VolumeControl() {
|
|
|
413
433
|
</div>
|
|
414
434
|
|
|
415
435
|
<div className="!space-y-4">
|
|
416
|
-
<h3 className="text-lg font-semibold
|
|
436
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
417
437
|
Custom Colors
|
|
418
438
|
</h3>
|
|
419
|
-
<div className="rounded-lg
|
|
420
|
-
<pre className="overflow-x-auto text-sm
|
|
439
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
440
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
421
441
|
{`// Using Tailwind classes
|
|
422
442
|
<VolumeHalfIcon className="h-6 w-6 text-emerald-400" />
|
|
423
443
|
<VolumeHalfIcon className="h-6 w-6 text-teal-500" />
|
|
@@ -442,53 +462,53 @@ function VolumeControl() {
|
|
|
442
462
|
|
|
443
463
|
{/* Usage Examples */}
|
|
444
464
|
<div className="!space-y-8">
|
|
445
|
-
<h2 className="text-center text-3xl font-bold
|
|
465
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
446
466
|
Usage Examples
|
|
447
467
|
</h2>
|
|
448
468
|
|
|
449
469
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
450
470
|
{/* Music Player */}
|
|
451
471
|
<div className="!space-y-4">
|
|
452
|
-
<h3 className="text-lg font-semibold
|
|
472
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
453
473
|
Music Player
|
|
454
474
|
</h3>
|
|
455
475
|
<div className="!space-y-4">
|
|
456
|
-
<div className="rounded-lg border
|
|
476
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
457
477
|
<div className="mb-4 flex items-center gap-3">
|
|
458
|
-
<div className="h-12 w-12 rounded-lg bg-
|
|
478
|
+
<div className="from-fm-icon-positive/20 to-fm-icon-info/20 h-12 w-12 rounded-lg bg-linear-to-br" />
|
|
459
479
|
<div>
|
|
460
|
-
<div className="text-sm font-medium
|
|
480
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
461
481
|
Ambient Sounds
|
|
462
482
|
</div>
|
|
463
|
-
<div className="text-
|
|
483
|
+
<div className="text-fm-tertiary! text-xs">
|
|
464
484
|
Nature Collection
|
|
465
485
|
</div>
|
|
466
486
|
</div>
|
|
467
487
|
</div>
|
|
468
488
|
<div className="mb-4 flex items-center justify-center gap-4">
|
|
469
|
-
<button className="rounded-lg p-2 transition-colors
|
|
470
|
-
<div className="h-6 w-6 rounded-full border
|
|
489
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
490
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
471
491
|
</button>
|
|
472
|
-
<button className="rounded-lg p-3 transition-colors
|
|
473
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
492
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
493
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
474
494
|
</button>
|
|
475
|
-
<button className="rounded-lg p-2 transition-colors
|
|
476
|
-
<div className="h-6 w-6 rounded-full border
|
|
495
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
496
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
477
497
|
</button>
|
|
478
498
|
</div>
|
|
479
499
|
<div className="flex items-center justify-between">
|
|
480
|
-
<div className="text-
|
|
500
|
+
<div className="text-fm-tertiary text-xs">1:23</div>
|
|
481
501
|
<div className="flex items-center gap-2">
|
|
482
|
-
<VolumeHalfIcon className="h-4 w-4
|
|
483
|
-
<div className="h-1 w-20 rounded-full
|
|
484
|
-
<div className="h-full w-1/2 rounded-full
|
|
502
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-4 w-4" />
|
|
503
|
+
<div className="bg-fm-divider-primary h-1 w-20 rounded-full">
|
|
504
|
+
<div className="bg-fm-icon-positive h-full w-1/2 rounded-full" />
|
|
485
505
|
</div>
|
|
486
506
|
</div>
|
|
487
|
-
<div className="text-
|
|
507
|
+
<div className="text-fm-tertiary text-xs">3:45</div>
|
|
488
508
|
</div>
|
|
489
509
|
</div>
|
|
490
|
-
<div className="rounded-lg
|
|
491
|
-
<pre className="overflow-x-auto text-sm
|
|
510
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
511
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
492
512
|
{`// Music player with medium volume
|
|
493
513
|
<div className="player-controls">
|
|
494
514
|
<div className="volume-section">
|
|
@@ -512,16 +532,16 @@ function VolumeControl() {
|
|
|
512
532
|
|
|
513
533
|
{/* Video Conference */}
|
|
514
534
|
<div className="!space-y-4">
|
|
515
|
-
<h3 className="text-lg font-semibold
|
|
535
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
516
536
|
Video Conference
|
|
517
537
|
</h3>
|
|
518
538
|
<div className="!space-y-4">
|
|
519
|
-
<div className="rounded-lg border
|
|
539
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
520
540
|
<div className="mb-4">
|
|
521
|
-
<div className="text-sm font-medium
|
|
541
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
522
542
|
Weekly Standup
|
|
523
543
|
</div>
|
|
524
|
-
<div className="text-
|
|
544
|
+
<div className="text-fm-tertiary! text-xs">
|
|
525
545
|
3 participants
|
|
526
546
|
</div>
|
|
527
547
|
</div>
|
|
@@ -529,33 +549,33 @@ function VolumeControl() {
|
|
|
529
549
|
{[...Array(3)].map((_, i) => (
|
|
530
550
|
<div
|
|
531
551
|
key={i}
|
|
532
|
-
className="
|
|
552
|
+
className="bg-fm-surface-secondary rounded p-3 text-center"
|
|
533
553
|
>
|
|
534
|
-
<div className="mx-auto mb-2 h-10 w-10 rounded-full bg-
|
|
535
|
-
<div className="text-xs font-medium
|
|
554
|
+
<div className="from-fm-icon-positive/20 to-fm-icon-info/20 mx-auto mb-2 h-10 w-10 rounded-full bg-linear-to-br" />
|
|
555
|
+
<div className="text-fm-icon-active text-xs font-medium">
|
|
536
556
|
User {i + 1}
|
|
537
557
|
</div>
|
|
538
558
|
<div className="mt-1 flex justify-center">
|
|
539
559
|
{i === 1 ? (
|
|
540
|
-
<VolumeHalfIcon className="h-3 w-3
|
|
560
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-3 w-3" />
|
|
541
561
|
) : (
|
|
542
|
-
<div className="h-3 w-3 rounded-full
|
|
562
|
+
<div className="bg-fm-surface-tertiary/20 h-3 w-3 rounded-full" />
|
|
543
563
|
)}
|
|
544
564
|
</div>
|
|
545
565
|
</div>
|
|
546
566
|
))}
|
|
547
567
|
</div>
|
|
548
568
|
<div className="flex justify-center gap-3">
|
|
549
|
-
<button className="
|
|
550
|
-
<VolumeHalfIcon className="h-5 w-5
|
|
569
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 hover:bg-fm-icon-positive/30 rounded-lg border p-2">
|
|
570
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-5 w-5" />
|
|
551
571
|
</button>
|
|
552
|
-
<button className="
|
|
553
|
-
<div className="h-5 w-5 rounded-full border
|
|
572
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded-lg border p-2">
|
|
573
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
554
574
|
</button>
|
|
555
575
|
</div>
|
|
556
576
|
</div>
|
|
557
|
-
<div className="rounded-lg
|
|
558
|
-
<pre className="overflow-x-auto text-sm
|
|
577
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
578
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
559
579
|
{`// Conference call audio indicator
|
|
560
580
|
<div className="participant-card">
|
|
561
581
|
<div className="participant-info">
|
|
@@ -581,71 +601,71 @@ function VolumeControl() {
|
|
|
581
601
|
|
|
582
602
|
{/* Audio Dashboard */}
|
|
583
603
|
<div className="!space-y-4">
|
|
584
|
-
<h3 className="text-lg font-semibold
|
|
604
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
585
605
|
Audio Dashboard
|
|
586
606
|
</h3>
|
|
587
607
|
<div className="!space-y-4">
|
|
588
|
-
<div className="rounded-lg border
|
|
608
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
589
609
|
<div className="!space-y-4">
|
|
590
610
|
<div>
|
|
591
|
-
<h4 className="mb-3 text-sm font-medium
|
|
611
|
+
<h4 className="text-fm-icon-active mb-3 text-sm font-medium">
|
|
592
612
|
Audio Levels
|
|
593
613
|
</h4>
|
|
594
614
|
<div className="space-y-3">
|
|
595
615
|
<div className="flex items-center justify-between">
|
|
596
616
|
<div className="flex items-center gap-3">
|
|
597
|
-
<VolumeHalfIcon className="h-5 w-5
|
|
617
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-5 w-5" />
|
|
598
618
|
<div>
|
|
599
|
-
<div className="text-
|
|
619
|
+
<div className="text-fm-icon-active text-sm">
|
|
600
620
|
Master Volume
|
|
601
621
|
</div>
|
|
602
|
-
<div className="text-
|
|
622
|
+
<div className="text-fm-tertiary text-xs">
|
|
603
623
|
50%
|
|
604
624
|
</div>
|
|
605
625
|
</div>
|
|
606
626
|
</div>
|
|
607
|
-
<div className="h-2 w-24 rounded-full
|
|
608
|
-
<div className="h-full w-1/2 rounded-full
|
|
627
|
+
<div className="bg-fm-divider-primary h-2 w-24 rounded-full">
|
|
628
|
+
<div className="bg-fm-icon-positive h-full w-1/2 rounded-full" />
|
|
609
629
|
</div>
|
|
610
630
|
</div>
|
|
611
631
|
<div className="flex items-center justify-between">
|
|
612
632
|
<div className="flex items-center gap-3">
|
|
613
|
-
<VolumeHalfIcon className="h-5 w-5
|
|
633
|
+
<VolumeHalfIcon className="text-fm-icon-info h-5 w-5" />
|
|
614
634
|
<div>
|
|
615
|
-
<div className="text-
|
|
635
|
+
<div className="text-fm-icon-active text-sm">
|
|
616
636
|
Effects
|
|
617
637
|
</div>
|
|
618
|
-
<div className="text-
|
|
638
|
+
<div className="text-fm-tertiary text-xs">
|
|
619
639
|
40%
|
|
620
640
|
</div>
|
|
621
641
|
</div>
|
|
622
642
|
</div>
|
|
623
|
-
<div className="h-2 w-24 rounded-full
|
|
624
|
-
<div className="h-full w-2/5 rounded-full
|
|
643
|
+
<div className="bg-fm-divider-primary h-2 w-24 rounded-full">
|
|
644
|
+
<div className="bg-fm-icon-info h-full w-2/5 rounded-full" />
|
|
625
645
|
</div>
|
|
626
646
|
</div>
|
|
627
647
|
<div className="flex items-center justify-between">
|
|
628
648
|
<div className="flex items-center gap-3">
|
|
629
|
-
<VolumeHalfIcon className="h-5 w-5
|
|
649
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-5 w-5" />
|
|
630
650
|
<div>
|
|
631
|
-
<div className="text-
|
|
651
|
+
<div className="text-fm-icon-active text-sm">
|
|
632
652
|
Background
|
|
633
653
|
</div>
|
|
634
|
-
<div className="text-
|
|
654
|
+
<div className="text-fm-tertiary text-xs">
|
|
635
655
|
60%
|
|
636
656
|
</div>
|
|
637
657
|
</div>
|
|
638
658
|
</div>
|
|
639
|
-
<div className="h-2 w-24 rounded-full
|
|
640
|
-
<div className="h-full w-3/5 rounded-full
|
|
659
|
+
<div className="bg-fm-divider-primary h-2 w-24 rounded-full">
|
|
660
|
+
<div className="bg-fm-icon-positive h-full w-3/5 rounded-full" />
|
|
641
661
|
</div>
|
|
642
662
|
</div>
|
|
643
663
|
</div>
|
|
644
664
|
</div>
|
|
645
665
|
</div>
|
|
646
666
|
</div>
|
|
647
|
-
<div className="rounded-lg
|
|
648
|
-
<pre className="overflow-x-auto text-sm
|
|
667
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
668
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
649
669
|
{`// Audio level dashboard
|
|
650
670
|
<div className="audio-dashboard">
|
|
651
671
|
{audioChannels.map(channel => (
|
|
@@ -676,48 +696,50 @@ function VolumeControl() {
|
|
|
676
696
|
|
|
677
697
|
{/* Podcast Player */}
|
|
678
698
|
<div className="!space-y-4">
|
|
679
|
-
<h3 className="text-lg font-semibold
|
|
699
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
680
700
|
Podcast Player
|
|
681
701
|
</h3>
|
|
682
702
|
<div className="!space-y-4">
|
|
683
|
-
<div className="rounded-lg border
|
|
703
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
684
704
|
<div className="mb-4">
|
|
685
|
-
<div className="text-sm font-medium
|
|
705
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
686
706
|
Design Talk
|
|
687
707
|
</div>
|
|
688
|
-
<div className="text-
|
|
708
|
+
<div className="text-fm-tertiary! text-xs">
|
|
689
709
|
Episode 12: Color Theory
|
|
690
710
|
</div>
|
|
691
711
|
</div>
|
|
692
712
|
<div className="mb-4 flex items-center justify-between">
|
|
693
713
|
<div className="flex items-center gap-4">
|
|
694
|
-
<button className="rounded-lg p-2 transition-colors
|
|
695
|
-
<div className="h-6 w-6 rounded-full border
|
|
714
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
715
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
696
716
|
</button>
|
|
697
|
-
<button className="rounded-lg p-3 transition-colors
|
|
698
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
717
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
718
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
699
719
|
</button>
|
|
700
|
-
<button className="rounded-lg p-2 transition-colors
|
|
701
|
-
<div className="h-6 w-6 rounded-full border
|
|
720
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
721
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
702
722
|
</button>
|
|
703
723
|
</div>
|
|
704
724
|
<div className="flex items-center gap-2">
|
|
705
|
-
<span className="text-
|
|
725
|
+
<span className="text-fm-tertiary text-xs">
|
|
726
|
+
1.5x
|
|
727
|
+
</span>
|
|
706
728
|
</div>
|
|
707
729
|
</div>
|
|
708
730
|
<div className="flex items-center justify-between">
|
|
709
|
-
<div className="text-
|
|
731
|
+
<div className="text-fm-tertiary text-xs">15:42</div>
|
|
710
732
|
<div className="flex items-center gap-2">
|
|
711
|
-
<VolumeHalfIcon className="h-4 w-4
|
|
712
|
-
<div className="h-1 w-16 rounded-full
|
|
713
|
-
<div className="h-full w-1/2 rounded-full
|
|
733
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-4 w-4" />
|
|
734
|
+
<div className="bg-fm-divider-primary h-1 w-16 rounded-full">
|
|
735
|
+
<div className="bg-fm-icon-positive h-full w-1/2 rounded-full" />
|
|
714
736
|
</div>
|
|
715
737
|
</div>
|
|
716
|
-
<div className="text-
|
|
738
|
+
<div className="text-fm-tertiary text-xs">42:18</div>
|
|
717
739
|
</div>
|
|
718
740
|
</div>
|
|
719
|
-
<div className="rounded-lg
|
|
720
|
-
<pre className="overflow-x-auto text-sm
|
|
741
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
742
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
721
743
|
{`// Podcast player with balanced audio
|
|
722
744
|
<div className="podcast-player">
|
|
723
745
|
<div className="episode-info">
|
|
@@ -746,65 +768,65 @@ function VolumeControl() {
|
|
|
746
768
|
|
|
747
769
|
{/* Accessibility */}
|
|
748
770
|
<div className="!space-y-8">
|
|
749
|
-
<h2 className="text-center text-3xl font-bold
|
|
771
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
750
772
|
Accessibility Features
|
|
751
773
|
</h2>
|
|
752
774
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
753
|
-
<div className="!space-y-4 rounded-lg border
|
|
754
|
-
<h3 className="text-lg font-semibold
|
|
775
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
776
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
755
777
|
✅ Built-in Features
|
|
756
778
|
</h3>
|
|
757
|
-
<ul className="!space-y-2 text-sm
|
|
758
|
-
<li className="
|
|
779
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
780
|
+
<li className="text-fm-secondary!">
|
|
759
781
|
Uses Radix UI AccessibleIcon wrapper
|
|
760
782
|
</li>
|
|
761
|
-
<li className="
|
|
783
|
+
<li className="text-fm-secondary!">
|
|
762
784
|
Provides screen reader label "Volume half icon"
|
|
763
785
|
</li>
|
|
764
|
-
<li className="
|
|
786
|
+
<li className="text-fm-secondary!">
|
|
765
787
|
Supports keyboard navigation when interactive
|
|
766
788
|
</li>
|
|
767
|
-
<li className="
|
|
789
|
+
<li className="text-fm-secondary!">
|
|
768
790
|
Maintains proper color contrast ratios
|
|
769
791
|
</li>
|
|
770
|
-
<li className="
|
|
792
|
+
<li className="text-fm-secondary!">
|
|
771
793
|
Scales with user's font size preferences
|
|
772
794
|
</li>
|
|
773
795
|
</ul>
|
|
774
796
|
</div>
|
|
775
797
|
|
|
776
|
-
<div className="!space-y-4 rounded-lg border
|
|
777
|
-
<h3 className="text-lg font-semibold
|
|
798
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
799
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
778
800
|
💡 Best Practices
|
|
779
801
|
</h3>
|
|
780
|
-
<ul className="!space-y-2 text-sm
|
|
781
|
-
<li className="
|
|
802
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
803
|
+
<li className="text-fm-secondary!">
|
|
782
804
|
Always provide descriptive aria-labels for volume
|
|
783
805
|
controls
|
|
784
806
|
</li>
|
|
785
|
-
<li className="
|
|
807
|
+
<li className="text-fm-secondary!">
|
|
786
808
|
Use consistent placement in audio control groups
|
|
787
809
|
</li>
|
|
788
|
-
<li className="
|
|
810
|
+
<li className="text-fm-secondary!">
|
|
789
811
|
Ensure sufficient touch target size (44px minimum)
|
|
790
812
|
</li>
|
|
791
|
-
<li className="
|
|
813
|
+
<li className="text-fm-secondary!">
|
|
792
814
|
Provide visible focus states for keyboard users
|
|
793
815
|
</li>
|
|
794
|
-
<li className="
|
|
816
|
+
<li className="text-fm-secondary!">
|
|
795
817
|
Consider keyboard shortcuts for volume adjustment
|
|
796
818
|
</li>
|
|
797
819
|
</ul>
|
|
798
820
|
</div>
|
|
799
821
|
</div>
|
|
800
822
|
|
|
801
|
-
<div className="rounded-lg border
|
|
802
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
823
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
824
|
+
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
803
825
|
Proper ARIA Implementation
|
|
804
826
|
</h3>
|
|
805
827
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
806
|
-
<div className="rounded-lg
|
|
807
|
-
<pre className="overflow-x-auto text-sm
|
|
828
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
829
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
808
830
|
{`// Volume control with proper ARIA
|
|
809
831
|
<div className="volume-control">
|
|
810
832
|
<button
|
|
@@ -846,13 +868,13 @@ function VolumeControl() {
|
|
|
846
868
|
</pre>
|
|
847
869
|
</div>
|
|
848
870
|
<div className="!space-y-4">
|
|
849
|
-
<p className="text-
|
|
871
|
+
<p className="text-fm-secondary! text-sm">
|
|
850
872
|
When using VolumeHalfIcon for volume controls, always
|
|
851
873
|
provide clear context about the current volume level and
|
|
852
874
|
what the control will do.
|
|
853
875
|
</p>
|
|
854
|
-
<div className="
|
|
855
|
-
<div className="flex items-center gap-2 text-sm
|
|
876
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
877
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
856
878
|
<VolumeHalfIcon className="h-4 w-4" />
|
|
857
879
|
<span>
|
|
858
880
|
Screen readers need context about volume levels and
|
|
@@ -867,52 +889,54 @@ function VolumeControl() {
|
|
|
867
889
|
|
|
868
890
|
{/* Related Icons */}
|
|
869
891
|
<div className="!space-y-8">
|
|
870
|
-
<h2 className="text-center text-3xl font-bold
|
|
892
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
871
893
|
Related Icons
|
|
872
894
|
</h2>
|
|
873
895
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
874
|
-
<div className="!space-y-3 rounded-lg border
|
|
875
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
876
|
-
<span className="
|
|
896
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
897
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
898
|
+
<span className="text-fm-icon-active! !text-2xl">🔊</span>
|
|
877
899
|
</div>
|
|
878
900
|
<div>
|
|
879
|
-
<div className="font-medium
|
|
901
|
+
<div className="text-fm-icon-active font-medium">
|
|
880
902
|
VolumeHighIcon
|
|
881
903
|
</div>
|
|
882
|
-
<div className="text-
|
|
904
|
+
<div className="text-fm-tertiary text-xs">
|
|
905
|
+
High volume
|
|
906
|
+
</div>
|
|
883
907
|
</div>
|
|
884
908
|
</div>
|
|
885
|
-
<div className="!space-y-3 rounded-lg border
|
|
886
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
887
|
-
<span className="
|
|
909
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
910
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
911
|
+
<span className="text-fm-icon-active! !text-2xl">🔉</span>
|
|
888
912
|
</div>
|
|
889
913
|
<div>
|
|
890
|
-
<div className="font-medium
|
|
914
|
+
<div className="text-fm-icon-active font-medium">
|
|
891
915
|
VolumeLowIcon
|
|
892
916
|
</div>
|
|
893
|
-
<div className="text-
|
|
917
|
+
<div className="text-fm-tertiary text-xs">Low volume</div>
|
|
894
918
|
</div>
|
|
895
919
|
</div>
|
|
896
|
-
<div className="!space-y-3 rounded-lg border
|
|
897
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
898
|
-
<span className="
|
|
920
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
921
|
+
<div className="bg-fm-surface-tertiary/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
922
|
+
<span className="text-fm-icon-active! !text-2xl">🔇</span>
|
|
899
923
|
</div>
|
|
900
924
|
<div>
|
|
901
|
-
<div className="font-medium
|
|
925
|
+
<div className="text-fm-icon-active font-medium">
|
|
902
926
|
VolumeOffIcon
|
|
903
927
|
</div>
|
|
904
|
-
<div className="text-
|
|
928
|
+
<div className="text-fm-tertiary text-xs">Muted</div>
|
|
905
929
|
</div>
|
|
906
930
|
</div>
|
|
907
|
-
<div className="!space-y-3 rounded-lg border
|
|
908
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
909
|
-
<span className="
|
|
931
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
932
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
933
|
+
<span className="text-fm-icon-active! !text-2xl">🎚️</span>
|
|
910
934
|
</div>
|
|
911
935
|
<div>
|
|
912
|
-
<div className="font-medium
|
|
936
|
+
<div className="text-fm-icon-active font-medium">
|
|
913
937
|
EqualizerIcon
|
|
914
938
|
</div>
|
|
915
|
-
<div className="text-
|
|
939
|
+
<div className="text-fm-tertiary text-xs">
|
|
916
940
|
Audio settings
|
|
917
941
|
</div>
|
|
918
942
|
</div>
|
|
@@ -922,14 +946,14 @@ function VolumeControl() {
|
|
|
922
946
|
</div>
|
|
923
947
|
|
|
924
948
|
{/* Footer */}
|
|
925
|
-
<div className="border-
|
|
949
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
926
950
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
927
951
|
<div className="!space-y-4 text-center">
|
|
928
|
-
<p className="
|
|
952
|
+
<p className="text-fm-tertiary!">
|
|
929
953
|
VolumeHalfIcon is part of the Aural UI icon library, built
|
|
930
954
|
with accessibility and audio control best practices in mind.
|
|
931
955
|
</p>
|
|
932
|
-
<p className="text-
|
|
956
|
+
<p className="text-fm-placeholder! text-sm">
|
|
933
957
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
934
958
|
compatibility and follow WCAG guidelines for media controls.
|
|
935
959
|
</p>
|
|
@@ -982,20 +1006,20 @@ const storyParameters = {
|
|
|
982
1006
|
backgrounds: {
|
|
983
1007
|
default: "dark",
|
|
984
1008
|
values: [
|
|
985
|
-
{ name: "dark", value: "
|
|
986
|
-
{ name: "darker", value: "
|
|
1009
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1010
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
987
1011
|
],
|
|
988
1012
|
},
|
|
989
1013
|
}
|
|
990
1014
|
|
|
991
1015
|
export const Default: Story = {
|
|
992
1016
|
args: {
|
|
993
|
-
className: "h-8 w-8 text-
|
|
1017
|
+
className: "h-8 w-8 text-fm-icon-positive",
|
|
994
1018
|
withAccessibility: true,
|
|
995
1019
|
},
|
|
996
1020
|
parameters: storyParameters,
|
|
997
1021
|
render: (args) => (
|
|
998
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1022
|
+
<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">
|
|
999
1023
|
<VolumeHalfIcon {...args} />
|
|
1000
1024
|
</div>
|
|
1001
1025
|
),
|
|
@@ -1012,30 +1036,30 @@ export const SizeVariations: Story = {
|
|
|
1012
1036
|
},
|
|
1013
1037
|
},
|
|
1014
1038
|
render: () => (
|
|
1015
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1039
|
+
<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">
|
|
1016
1040
|
<div className="text-center">
|
|
1017
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-3 w-3
|
|
1018
|
-
<span className="text-
|
|
1041
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
1042
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1019
1043
|
</div>
|
|
1020
1044
|
<div className="text-center">
|
|
1021
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-4 w-4
|
|
1022
|
-
<span className="text-
|
|
1045
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
1046
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1023
1047
|
</div>
|
|
1024
1048
|
<div className="text-center">
|
|
1025
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-5 w-5
|
|
1026
|
-
<span className="text-
|
|
1049
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
1050
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1027
1051
|
</div>
|
|
1028
1052
|
<div className="text-center">
|
|
1029
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-6 w-6
|
|
1030
|
-
<span className="text-
|
|
1053
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
1054
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1031
1055
|
</div>
|
|
1032
1056
|
<div className="text-center">
|
|
1033
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-8 w-8
|
|
1034
|
-
<span className="text-
|
|
1057
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
1058
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1035
1059
|
</div>
|
|
1036
1060
|
<div className="text-center">
|
|
1037
|
-
<VolumeHalfIcon className="!mx-auto mb-2 h-12 w-12
|
|
1038
|
-
<span className="text-
|
|
1061
|
+
<VolumeHalfIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
1062
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1039
1063
|
</div>
|
|
1040
1064
|
</div>
|
|
1041
1065
|
),
|
|
@@ -1052,34 +1076,38 @@ export const ColorVariations: Story = {
|
|
|
1052
1076
|
},
|
|
1053
1077
|
},
|
|
1054
1078
|
render: () => (
|
|
1055
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1079
|
+
<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">
|
|
1056
1080
|
<div className="text-center">
|
|
1057
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1058
|
-
<VolumeHalfIcon className="h-8 w-8
|
|
1081
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1082
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1083
|
+
</div>
|
|
1084
|
+
<div className="text-fm-icon-active text-sm font-medium">Medium</div>
|
|
1085
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1086
|
+
text-fm-icon-positive
|
|
1059
1087
|
</div>
|
|
1060
|
-
<div className="text-sm font-medium text-white">Medium</div>
|
|
1061
|
-
<div className="text-xs text-emerald-400">text-emerald-400</div>
|
|
1062
1088
|
</div>
|
|
1063
1089
|
<div className="text-center">
|
|
1064
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1065
|
-
<VolumeHalfIcon className="h-8 w-8
|
|
1090
|
+
<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">
|
|
1091
|
+
<VolumeHalfIcon className="text-fm-icon-info h-8 w-8" />
|
|
1066
1092
|
</div>
|
|
1067
|
-
<div className="text-sm font-medium
|
|
1068
|
-
<div className="text-
|
|
1093
|
+
<div className="text-fm-icon-active text-sm font-medium">Balanced</div>
|
|
1094
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1069
1095
|
</div>
|
|
1070
1096
|
<div className="text-center">
|
|
1071
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1072
|
-
<VolumeHalfIcon className="h-8 w-8
|
|
1097
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1098
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1099
|
+
</div>
|
|
1100
|
+
<div className="text-fm-icon-active text-sm font-medium">Active</div>
|
|
1101
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1102
|
+
text-fm-icon-positive
|
|
1073
1103
|
</div>
|
|
1074
|
-
<div className="text-sm font-medium text-white">Active</div>
|
|
1075
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
1076
1104
|
</div>
|
|
1077
1105
|
<div className="text-center">
|
|
1078
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1079
|
-
<VolumeHalfIcon className="h-8 w-8
|
|
1106
|
+
<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">
|
|
1107
|
+
<VolumeHalfIcon className="text-fm-icon-info h-8 w-8" />
|
|
1080
1108
|
</div>
|
|
1081
|
-
<div className="text-sm font-medium
|
|
1082
|
-
<div className="text-
|
|
1109
|
+
<div className="text-fm-icon-active text-sm font-medium">Accent</div>
|
|
1110
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1083
1111
|
</div>
|
|
1084
1112
|
</div>
|
|
1085
1113
|
),
|
|
@@ -1096,38 +1124,42 @@ export const UsageExamples: Story = {
|
|
|
1096
1124
|
},
|
|
1097
1125
|
},
|
|
1098
1126
|
render: () => (
|
|
1099
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1127
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1100
1128
|
{/* Music Player */}
|
|
1101
1129
|
<div className="!space-y-2">
|
|
1102
|
-
<h3 className="text-sm font-medium
|
|
1103
|
-
|
|
1130
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1131
|
+
Music Player
|
|
1132
|
+
</h3>
|
|
1133
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1104
1134
|
<div className="flex items-center justify-between">
|
|
1105
|
-
<div className="text-
|
|
1135
|
+
<div className="text-fm-tertiary text-xs">1:23</div>
|
|
1106
1136
|
<div className="flex items-center gap-2">
|
|
1107
|
-
<VolumeHalfIcon className="h-4 w-4
|
|
1108
|
-
<div className="h-1 w-20 rounded-full
|
|
1109
|
-
<div className="h-full w-1/2 rounded-full
|
|
1137
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-4 w-4" />
|
|
1138
|
+
<div className="bg-fm-divider-primary h-1 w-20 rounded-full">
|
|
1139
|
+
<div className="bg-fm-icon-positive h-full w-1/2 rounded-full" />
|
|
1110
1140
|
</div>
|
|
1111
1141
|
</div>
|
|
1112
|
-
<div className="text-
|
|
1142
|
+
<div className="text-fm-tertiary text-xs">3:45</div>
|
|
1113
1143
|
</div>
|
|
1114
1144
|
</div>
|
|
1115
1145
|
</div>
|
|
1116
1146
|
|
|
1117
1147
|
{/* Audio Dashboard */}
|
|
1118
1148
|
<div className="!space-y-2">
|
|
1119
|
-
<h3 className="text-sm font-medium
|
|
1120
|
-
|
|
1149
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1150
|
+
Audio Dashboard
|
|
1151
|
+
</h3>
|
|
1152
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1121
1153
|
<div className="flex items-center justify-between">
|
|
1122
1154
|
<div className="flex items-center gap-3">
|
|
1123
|
-
<VolumeHalfIcon className="h-5 w-5
|
|
1155
|
+
<VolumeHalfIcon className="text-fm-icon-positive h-5 w-5" />
|
|
1124
1156
|
<div>
|
|
1125
|
-
<div className="text-
|
|
1126
|
-
<div className="text-
|
|
1157
|
+
<div className="text-fm-icon-active text-sm">Master Volume</div>
|
|
1158
|
+
<div className="text-fm-tertiary text-xs">50%</div>
|
|
1127
1159
|
</div>
|
|
1128
1160
|
</div>
|
|
1129
|
-
<div className="h-2 w-24 rounded-full
|
|
1130
|
-
<div className="h-full w-1/2 rounded-full
|
|
1161
|
+
<div className="bg-fm-divider-primary h-2 w-24 rounded-full">
|
|
1162
|
+
<div className="bg-fm-icon-positive h-full w-1/2 rounded-full" />
|
|
1131
1163
|
</div>
|
|
1132
1164
|
</div>
|
|
1133
1165
|
</div>
|
|
@@ -1149,11 +1181,11 @@ export const Playground: Story = {
|
|
|
1149
1181
|
args: {
|
|
1150
1182
|
width: 24,
|
|
1151
1183
|
height: 24,
|
|
1152
|
-
className: "text-
|
|
1184
|
+
className: "text-fm-icon-positive",
|
|
1153
1185
|
},
|
|
1154
1186
|
render: (args) => (
|
|
1155
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1156
|
-
<div className="rounded-lg border
|
|
1187
|
+
<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">
|
|
1188
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1157
1189
|
<VolumeHalfIcon {...args} />
|
|
1158
1190
|
</div>
|
|
1159
1191
|
</div>
|