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 HeartIcon> = {
|
|
|
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 HeartIcon> = {
|
|
|
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-secondary-500/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
|
-
<HeartIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-negative/30 from-fm-icon-negative/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<HeartIcon 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
|
HeartIcon
|
|
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 versatile heart icon for like buttons, favorites, and
|
|
97
97
|
expressing positive emotions. Built with accessibility in
|
|
98
98
|
mind using Radix UI's AccessibleIcon wrapper.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof HeartIcon> = {
|
|
|
101
101
|
{/* Stats */}
|
|
102
102
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
103
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
104
|
+
<div className="text-fm-icon-negative text-3xl font-bold">
|
|
105
105
|
Accessible
|
|
106
106
|
</div>
|
|
107
|
-
<div className="text-
|
|
107
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
108
|
Screen reader friendly
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
111
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
112
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
113
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
114
114
|
Scalable
|
|
115
115
|
</div>
|
|
116
|
-
<div className="text-
|
|
116
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
117
|
Any size needed
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
120
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
121
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
122
|
+
<div className="text-fm-icon-negative text-3xl font-bold">
|
|
123
123
|
Flexible
|
|
124
124
|
</div>
|
|
125
|
-
<div className="text-
|
|
125
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
126
|
Customizable styling
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -135,16 +135,16 @@ const meta: Meta<typeof HeartIcon> = {
|
|
|
135
135
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
136
|
{/* Quick Usage */}
|
|
137
137
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
138
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
139
|
Quick Start
|
|
140
140
|
</h2>
|
|
141
141
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
142
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
143
|
+
<h3 className="text-fm-icon-negative! text-xl font-semibold">
|
|
144
144
|
Basic Usage
|
|
145
145
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
146
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
148
|
{`import { HeartIcon } from "@icons/heart-icon"
|
|
149
149
|
|
|
150
150
|
function MyComponent() {
|
|
@@ -157,11 +157,11 @@ function MyComponent() {
|
|
|
157
157
|
</div>
|
|
158
158
|
|
|
159
159
|
<div className="!space-y-4">
|
|
160
|
-
<h3 className="text-xl font-semibold
|
|
160
|
+
<h3 className="text-fm-icon-negative! text-xl font-semibold">
|
|
161
161
|
Live Preview
|
|
162
162
|
</h3>
|
|
163
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
164
|
-
<HeartIcon className="h-12 w-12
|
|
163
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
164
|
+
<HeartIcon className="text-fm-icon-negative h-12 w-12" />
|
|
165
165
|
</div>
|
|
166
166
|
</div>
|
|
167
167
|
</div>
|
|
@@ -169,122 +169,130 @@ function MyComponent() {
|
|
|
169
169
|
|
|
170
170
|
{/* Props Documentation */}
|
|
171
171
|
<div className="!space-y-8">
|
|
172
|
-
<h2 className="text-center text-3xl font-bold
|
|
172
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
173
173
|
Props & Configuration
|
|
174
174
|
</h2>
|
|
175
175
|
|
|
176
|
-
<div className="overflow-hidden rounded-lg border
|
|
177
|
-
<div className="bg-
|
|
178
|
-
<h3 className="text-xl font-semibold
|
|
176
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
177
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
178
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
179
|
+
Props
|
|
180
|
+
</h3>
|
|
179
181
|
</div>
|
|
180
182
|
<table className="!my-0 w-full">
|
|
181
|
-
<thead className="bg-
|
|
182
|
-
<tr className="border-
|
|
183
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
183
|
+
<thead className="bg-fm-surface-secondary">
|
|
184
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
185
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
184
186
|
Prop
|
|
185
187
|
</th>
|
|
186
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
188
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
187
189
|
Type
|
|
188
190
|
</th>
|
|
189
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
191
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
190
192
|
Default
|
|
191
193
|
</th>
|
|
192
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
194
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
193
195
|
Description
|
|
194
196
|
</th>
|
|
195
197
|
</tr>
|
|
196
198
|
</thead>
|
|
197
199
|
<tbody>
|
|
198
200
|
{" "}
|
|
199
|
-
<tr className="
|
|
200
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
201
|
+
<tr className="bg-fm-surface-secondary!">
|
|
202
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
201
203
|
withAccessibility
|
|
202
204
|
</td>
|
|
203
|
-
<td className="px-6 py-4 text-sm
|
|
205
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
204
206
|
boolean
|
|
205
207
|
</td>
|
|
206
|
-
<td className="px-6 py-4 text-sm
|
|
208
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
207
209
|
true
|
|
208
210
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
211
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
212
|
Whether to wrap the icon with accessibility feature
|
|
211
213
|
</td>
|
|
212
214
|
</tr>
|
|
213
|
-
<tr className="border-
|
|
214
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
215
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
216
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
215
217
|
height
|
|
216
218
|
</td>
|
|
217
|
-
<td className="px-6 py-4 text-sm
|
|
219
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
218
220
|
number | string
|
|
219
221
|
</td>
|
|
220
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
-
|
|
222
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
223
|
+
20
|
|
224
|
+
</td>
|
|
225
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
222
226
|
Height of the icon in pixels
|
|
223
227
|
</td>
|
|
224
228
|
</tr>
|
|
225
|
-
<tr className="border-
|
|
226
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
229
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
230
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
227
231
|
stroke
|
|
228
232
|
</td>
|
|
229
|
-
<td className="px-6 py-4 text-sm
|
|
233
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
230
234
|
string
|
|
231
235
|
</td>
|
|
232
|
-
<td className="px-6 py-4 text-sm
|
|
236
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
237
|
currentColor
|
|
234
238
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
239
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
240
|
Stroke color of the heart outline
|
|
237
241
|
</td>
|
|
238
242
|
</tr>
|
|
239
|
-
<tr className="border-
|
|
240
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
243
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
244
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
241
245
|
strokeWidth
|
|
242
246
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
248
|
number | string
|
|
245
249
|
</td>
|
|
246
|
-
<td className="px-6 py-4 text-sm
|
|
250
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
247
251
|
1.25
|
|
248
252
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
254
|
Width of the stroke line
|
|
251
255
|
</td>
|
|
252
256
|
</tr>
|
|
253
|
-
<tr className="border-
|
|
254
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
257
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
258
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
255
259
|
fill
|
|
256
260
|
</td>
|
|
257
|
-
<td className="px-6 py-4 text-sm
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
262
|
string
|
|
259
263
|
</td>
|
|
260
|
-
<td className="px-6 py-4 text-sm
|
|
264
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
261
265
|
none
|
|
262
266
|
</td>
|
|
263
|
-
<td className="px-6 py-4 text-sm
|
|
267
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
264
268
|
Fill color for solid hearts
|
|
265
269
|
</td>
|
|
266
270
|
</tr>
|
|
267
|
-
<tr className="border-
|
|
268
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
271
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
272
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
269
273
|
className
|
|
270
274
|
</td>
|
|
271
|
-
<td className="px-6 py-4 text-sm
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
272
276
|
string
|
|
273
277
|
</td>
|
|
274
|
-
<td className="px-6 py-4 text-sm
|
|
275
|
-
|
|
278
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
279
|
+
-
|
|
280
|
+
</td>
|
|
281
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
276
282
|
CSS classes for styling
|
|
277
283
|
</td>
|
|
278
284
|
</tr>
|
|
279
|
-
<tr className="
|
|
280
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
285
|
+
<tr className="bg-fm-surface-secondary!">
|
|
286
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
281
287
|
onClick
|
|
282
288
|
</td>
|
|
283
|
-
<td className="px-6 py-4 text-sm
|
|
289
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
284
290
|
function
|
|
285
291
|
</td>
|
|
286
|
-
<td className="px-6 py-4 text-sm
|
|
287
|
-
|
|
292
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
293
|
+
-
|
|
294
|
+
</td>
|
|
295
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
288
296
|
Click handler for interactions
|
|
289
297
|
</td>
|
|
290
298
|
</tr>
|
|
@@ -295,25 +303,29 @@ function MyComponent() {
|
|
|
295
303
|
{/* Styling Options */}
|
|
296
304
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
297
305
|
<div className="!space-y-4">
|
|
298
|
-
<h3 className="text-lg font-semibold
|
|
306
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
299
307
|
Fill vs Stroke States
|
|
300
308
|
</h3>
|
|
301
309
|
<div className="!space-y-4">
|
|
302
310
|
<div className="flex gap-4">
|
|
303
311
|
<div className="flex items-center gap-2">
|
|
304
|
-
<HeartIcon className="h-6 w-6
|
|
305
|
-
<span className="text-
|
|
312
|
+
<HeartIcon className="text-fm-icon-negative h-6 w-6" />
|
|
313
|
+
<span className="text-fm-icon-active text-sm">
|
|
314
|
+
Outline
|
|
315
|
+
</span>
|
|
306
316
|
</div>
|
|
307
317
|
<div className="flex items-center gap-2">
|
|
308
318
|
<HeartIcon
|
|
309
|
-
className="h-6 w-6
|
|
319
|
+
className="text-fm-icon-negative h-6 w-6"
|
|
310
320
|
fill="currentColor"
|
|
311
321
|
/>
|
|
312
|
-
<span className="text-
|
|
322
|
+
<span className="text-fm-icon-active text-sm">
|
|
323
|
+
Filled
|
|
324
|
+
</span>
|
|
313
325
|
</div>
|
|
314
326
|
</div>
|
|
315
|
-
<div className="rounded-lg
|
|
316
|
-
<pre className="overflow-x-auto text-sm
|
|
327
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
328
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
317
329
|
{`// Outline heart (default)
|
|
318
330
|
<HeartIcon className="h-6 w-6 text-red-400" />
|
|
319
331
|
|
|
@@ -328,17 +340,17 @@ function MyComponent() {
|
|
|
328
340
|
</div>
|
|
329
341
|
|
|
330
342
|
<div className="!space-y-4">
|
|
331
|
-
<h3 className="text-lg font-semibold
|
|
343
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
332
344
|
Color Customization
|
|
333
345
|
</h3>
|
|
334
346
|
<div className="!space-y-4">
|
|
335
347
|
<div className="flex gap-4">
|
|
336
|
-
<HeartIcon className="h-6 w-6
|
|
337
|
-
<HeartIcon className="h-6 w-6
|
|
338
|
-
<HeartIcon className="h-6 w-6
|
|
348
|
+
<HeartIcon className="text-fm-icon-negative h-6 w-6" />
|
|
349
|
+
<HeartIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
350
|
+
<HeartIcon className="text-fm-icon-negative h-6 w-6" />
|
|
339
351
|
</div>
|
|
340
|
-
<div className="rounded-lg
|
|
341
|
-
<pre className="overflow-x-auto text-sm
|
|
352
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
353
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
342
354
|
{`// Using Tailwind classes
|
|
343
355
|
<HeartIcon className="h-6 w-6 text-red-400" />
|
|
344
356
|
<HeartIcon className="h-6 w-6 text-pink-400" />
|
|
@@ -364,50 +376,62 @@ function MyComponent() {
|
|
|
364
376
|
|
|
365
377
|
{/* Size Variations */}
|
|
366
378
|
<div className="!space-y-8">
|
|
367
|
-
<h2 className="text-center text-3xl font-bold
|
|
379
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
368
380
|
Size Variations
|
|
369
381
|
</h2>
|
|
370
|
-
<div className="rounded-lg border
|
|
382
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
371
383
|
<div className="!space-y-6">
|
|
372
384
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
373
385
|
<div className="!space-y-4">
|
|
374
|
-
<h3 className="text-lg font-semibold
|
|
386
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
375
387
|
Standard Sizes
|
|
376
388
|
</h3>
|
|
377
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
389
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
378
390
|
<div className="text-center">
|
|
379
|
-
<HeartIcon className="!mx-auto mb-2 h-3 w-3
|
|
380
|
-
<span className="text-
|
|
391
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
|
|
392
|
+
<span className="text-fm-tertiary text-xs">
|
|
393
|
+
12px
|
|
394
|
+
</span>
|
|
381
395
|
</div>
|
|
382
396
|
<div className="text-center">
|
|
383
|
-
<HeartIcon className="!mx-auto mb-2 h-4 w-4
|
|
384
|
-
<span className="text-
|
|
397
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
|
|
398
|
+
<span className="text-fm-tertiary text-xs">
|
|
399
|
+
16px
|
|
400
|
+
</span>
|
|
385
401
|
</div>
|
|
386
402
|
<div className="text-center">
|
|
387
|
-
<HeartIcon className="!mx-auto mb-2 h-5 w-5
|
|
388
|
-
<span className="text-
|
|
403
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
|
|
404
|
+
<span className="text-fm-tertiary text-xs">
|
|
405
|
+
20px
|
|
406
|
+
</span>
|
|
389
407
|
</div>
|
|
390
408
|
<div className="text-center">
|
|
391
|
-
<HeartIcon className="!mx-auto mb-2 h-6 w-6
|
|
392
|
-
<span className="text-
|
|
409
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
|
|
410
|
+
<span className="text-fm-tertiary text-xs">
|
|
411
|
+
24px
|
|
412
|
+
</span>
|
|
393
413
|
</div>
|
|
394
414
|
<div className="text-center">
|
|
395
|
-
<HeartIcon className="!mx-auto mb-2 h-8 w-8
|
|
396
|
-
<span className="text-
|
|
415
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
|
|
416
|
+
<span className="text-fm-tertiary text-xs">
|
|
417
|
+
32px
|
|
418
|
+
</span>
|
|
397
419
|
</div>
|
|
398
420
|
<div className="text-center">
|
|
399
|
-
<HeartIcon className="!mx-auto mb-2 h-12 w-12
|
|
400
|
-
<span className="text-
|
|
421
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
|
|
422
|
+
<span className="text-fm-tertiary text-xs">
|
|
423
|
+
48px
|
|
424
|
+
</span>
|
|
401
425
|
</div>
|
|
402
426
|
</div>
|
|
403
427
|
</div>
|
|
404
428
|
|
|
405
429
|
<div className="!space-y-4">
|
|
406
|
-
<h3 className="text-lg font-semibold
|
|
430
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
407
431
|
Code Example
|
|
408
432
|
</h3>
|
|
409
|
-
<div className="rounded-lg
|
|
410
|
-
<pre className="overflow-x-auto text-sm
|
|
433
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
434
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
411
435
|
{`// Small (16px)
|
|
412
436
|
<HeartIcon className="h-4 w-4" />
|
|
413
437
|
|
|
@@ -429,56 +453,56 @@ function MyComponent() {
|
|
|
429
453
|
|
|
430
454
|
{/* Color Variations */}
|
|
431
455
|
<div className="!space-y-8">
|
|
432
|
-
<h2 className="text-center text-3xl font-bold
|
|
456
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
433
457
|
Color Variations
|
|
434
458
|
</h2>
|
|
435
459
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
436
460
|
<div className="!space-y-4">
|
|
437
|
-
<h3 className="text-lg font-semibold
|
|
461
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
438
462
|
Semantic Colors
|
|
439
463
|
</h3>
|
|
440
|
-
<div className="!space-y-4 rounded-lg border
|
|
464
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
441
465
|
<div className="flex items-center gap-4">
|
|
442
|
-
<HeartIcon className="h-6 w-6
|
|
466
|
+
<HeartIcon className="text-fm-icon-negative h-6 w-6" />
|
|
443
467
|
<div>
|
|
444
|
-
<div className="text-sm font-medium
|
|
468
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
445
469
|
Love
|
|
446
470
|
</div>
|
|
447
|
-
<div className="text-
|
|
448
|
-
text-
|
|
471
|
+
<div className="text-fm-tertiary text-xs">
|
|
472
|
+
text-fm-icon-negative
|
|
449
473
|
</div>
|
|
450
474
|
</div>
|
|
451
475
|
</div>
|
|
452
476
|
<div className="flex items-center gap-4">
|
|
453
|
-
<HeartIcon className="h-6 w-6
|
|
477
|
+
<HeartIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
454
478
|
<div>
|
|
455
|
-
<div className="text-sm font-medium
|
|
479
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
456
480
|
Affection
|
|
457
481
|
</div>
|
|
458
|
-
<div className="text-
|
|
459
|
-
text-
|
|
482
|
+
<div className="text-fm-tertiary text-xs">
|
|
483
|
+
text-fm-secondary-600
|
|
460
484
|
</div>
|
|
461
485
|
</div>
|
|
462
486
|
</div>
|
|
463
487
|
<div className="flex items-center gap-4">
|
|
464
|
-
<HeartIcon className="h-6 w-6
|
|
488
|
+
<HeartIcon className="text-fm-icon-negative h-6 w-6" />
|
|
465
489
|
<div>
|
|
466
|
-
<div className="text-sm font-medium
|
|
490
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
467
491
|
Romance
|
|
468
492
|
</div>
|
|
469
|
-
<div className="text-
|
|
470
|
-
text-
|
|
493
|
+
<div className="text-fm-tertiary text-xs">
|
|
494
|
+
text-fm-icon-negative
|
|
471
495
|
</div>
|
|
472
496
|
</div>
|
|
473
497
|
</div>
|
|
474
498
|
<div className="flex items-center gap-4">
|
|
475
|
-
<HeartIcon className="h-6 w-6
|
|
499
|
+
<HeartIcon className="text-fm-placeholder h-6 w-6" />
|
|
476
500
|
<div>
|
|
477
|
-
<div className="text-sm font-medium
|
|
501
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
478
502
|
Inactive
|
|
479
503
|
</div>
|
|
480
|
-
<div className="text-
|
|
481
|
-
text-
|
|
504
|
+
<div className="text-fm-tertiary text-xs">
|
|
505
|
+
text-fm-placeholder
|
|
482
506
|
</div>
|
|
483
507
|
</div>
|
|
484
508
|
</div>
|
|
@@ -486,11 +510,11 @@ function MyComponent() {
|
|
|
486
510
|
</div>
|
|
487
511
|
|
|
488
512
|
<div className="!space-y-4">
|
|
489
|
-
<h3 className="text-lg font-semibold
|
|
513
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
490
514
|
Custom Colors
|
|
491
515
|
</h3>
|
|
492
|
-
<div className="rounded-lg
|
|
493
|
-
<pre className="overflow-x-auto text-sm
|
|
516
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
517
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
494
518
|
{`// Using Tailwind classes
|
|
495
519
|
<HeartIcon className="h-6 w-6 text-red-400" />
|
|
496
520
|
<HeartIcon className="h-6 w-6 text-pink-500" />
|
|
@@ -515,29 +539,29 @@ function MyComponent() {
|
|
|
515
539
|
|
|
516
540
|
{/* Usage Examples */}
|
|
517
541
|
<div className="!space-y-8">
|
|
518
|
-
<h2 className="text-center text-3xl font-bold
|
|
542
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
519
543
|
Usage Examples
|
|
520
544
|
</h2>
|
|
521
545
|
|
|
522
546
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
523
547
|
{/* Like Button */}
|
|
524
548
|
<div className="!space-y-4">
|
|
525
|
-
<h3 className="text-lg font-semibold
|
|
549
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
526
550
|
Like Button
|
|
527
551
|
</h3>
|
|
528
552
|
<div className="!space-y-4">
|
|
529
553
|
<div className="flex gap-4">
|
|
530
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
554
|
+
<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">
|
|
531
555
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
532
556
|
Liked
|
|
533
557
|
</button>
|
|
534
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
558
|
+
<button className="border-fm-divider-primary bg-fm-surface-tertiary/20 text-fm-secondary hover:bg-fm-surface-tertiary/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
535
559
|
<HeartIcon className="h-4 w-4" />
|
|
536
560
|
Like
|
|
537
561
|
</button>
|
|
538
562
|
</div>
|
|
539
|
-
<div className="rounded-lg
|
|
540
|
-
<pre className="overflow-x-auto text-sm
|
|
563
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
564
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
541
565
|
{`// Liked state
|
|
542
566
|
<button className="flex items-center gap-2 bg-red-500/20 border border-red-500/30 px-4 py-2 rounded-lg">
|
|
543
567
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
@@ -556,24 +580,24 @@ function MyComponent() {
|
|
|
556
580
|
|
|
557
581
|
{/* Wishlist Item */}
|
|
558
582
|
<div className="!space-y-4">
|
|
559
|
-
<h3 className="text-lg font-semibold
|
|
583
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
560
584
|
Wishlist Actions
|
|
561
585
|
</h3>
|
|
562
586
|
<div className="!space-y-4">
|
|
563
|
-
<div className="rounded-lg border
|
|
587
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
564
588
|
<div className="flex items-center justify-between">
|
|
565
589
|
<div className="flex items-center gap-3">
|
|
566
|
-
<div className="h-10 w-10 rounded-lg
|
|
590
|
+
<div className="bg-fm-icon-info/20 h-10 w-10 rounded-lg"></div>
|
|
567
591
|
<div>
|
|
568
|
-
<div className="text-sm font-medium
|
|
592
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
569
593
|
Premium Headphones
|
|
570
594
|
</div>
|
|
571
|
-
<div className="text-
|
|
595
|
+
<div className="text-fm-tertiary text-xs">
|
|
572
596
|
$299 • In Stock
|
|
573
597
|
</div>
|
|
574
598
|
</div>
|
|
575
599
|
</div>
|
|
576
|
-
<button className="
|
|
600
|
+
<button className="bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 rounded-lg p-2 transition-colors">
|
|
577
601
|
<HeartIcon
|
|
578
602
|
className="h-4 w-4"
|
|
579
603
|
fill="currentColor"
|
|
@@ -581,8 +605,8 @@ function MyComponent() {
|
|
|
581
605
|
</button>
|
|
582
606
|
</div>
|
|
583
607
|
</div>
|
|
584
|
-
<div className="rounded-lg
|
|
585
|
-
<pre className="overflow-x-auto text-sm
|
|
608
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
609
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
586
610
|
{`<div className="flex items-center justify-between">
|
|
587
611
|
<div className="flex items-center gap-3">
|
|
588
612
|
{/* Product info */}
|
|
@@ -598,30 +622,30 @@ function MyComponent() {
|
|
|
598
622
|
|
|
599
623
|
{/* Social Media */}
|
|
600
624
|
<div className="!space-y-4">
|
|
601
|
-
<h3 className="text-lg font-semibold
|
|
625
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
602
626
|
Social Media Post
|
|
603
627
|
</h3>
|
|
604
628
|
<div className="!space-y-4">
|
|
605
|
-
<div className="rounded-lg border
|
|
606
|
-
<div className="mb-3 text-sm
|
|
629
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
630
|
+
<div className="text-fm-icon-active mb-3 text-sm">
|
|
607
631
|
Just launched our new design system! 🎨✨
|
|
608
632
|
</div>
|
|
609
633
|
<div className="flex items-center gap-6">
|
|
610
|
-
<button className="flex items-center gap-2
|
|
634
|
+
<button className="text-fm-icon-negative hover:text-fm-icon-negative flex items-center gap-2 transition-colors">
|
|
611
635
|
<HeartIcon
|
|
612
636
|
className="h-4 w-4"
|
|
613
637
|
fill="currentColor"
|
|
614
638
|
/>
|
|
615
639
|
<span className="text-sm">247</span>
|
|
616
640
|
</button>
|
|
617
|
-
<button className="flex items-center gap-2
|
|
641
|
+
<button className="text-fm-placeholder hover:text-fm-icon-info flex items-center gap-2 transition-colors">
|
|
618
642
|
<span className="text-sm">💬</span>
|
|
619
643
|
<span className="text-sm">32</span>
|
|
620
644
|
</button>
|
|
621
645
|
</div>
|
|
622
646
|
</div>
|
|
623
|
-
<div className="rounded-lg
|
|
624
|
-
<pre className="overflow-x-auto text-sm
|
|
647
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
648
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
625
649
|
{`// Social media interactions
|
|
626
650
|
<button className="flex items-center gap-2 text-red-400 hover:text-red-300 transition-colors">
|
|
627
651
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
@@ -634,41 +658,41 @@ function MyComponent() {
|
|
|
634
658
|
|
|
635
659
|
{/* Rating System */}
|
|
636
660
|
<div className="!space-y-4">
|
|
637
|
-
<h3 className="text-lg font-semibold
|
|
661
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
638
662
|
Heart Rating
|
|
639
663
|
</h3>
|
|
640
664
|
<div className="!space-y-4">
|
|
641
|
-
<div className="
|
|
665
|
+
<div className="border-fm-secondary-500/20 bg-fm-secondary-500/5 rounded-lg border p-6">
|
|
642
666
|
<div className="text-center">
|
|
643
|
-
<div className="mb-4 text-sm
|
|
667
|
+
<div className="text-fm-icon-active mb-4 text-sm">
|
|
644
668
|
Rate this experience
|
|
645
669
|
</div>
|
|
646
670
|
<div className="mb-3 flex justify-center gap-1">
|
|
647
671
|
<HeartIcon
|
|
648
|
-
className="h-6 w-6 cursor-pointer
|
|
672
|
+
className="text-fm-icon-negative h-6 w-6 cursor-pointer"
|
|
649
673
|
fill="currentColor"
|
|
650
674
|
/>
|
|
651
675
|
<HeartIcon
|
|
652
|
-
className="h-6 w-6 cursor-pointer
|
|
676
|
+
className="text-fm-icon-negative h-6 w-6 cursor-pointer"
|
|
653
677
|
fill="currentColor"
|
|
654
678
|
/>
|
|
655
679
|
<HeartIcon
|
|
656
|
-
className="h-6 w-6 cursor-pointer
|
|
680
|
+
className="text-fm-icon-negative h-6 w-6 cursor-pointer"
|
|
657
681
|
fill="currentColor"
|
|
658
682
|
/>
|
|
659
683
|
<HeartIcon
|
|
660
|
-
className="h-6 w-6 cursor-pointer
|
|
684
|
+
className="text-fm-icon-negative h-6 w-6 cursor-pointer"
|
|
661
685
|
fill="currentColor"
|
|
662
686
|
/>
|
|
663
|
-
<HeartIcon className="h-6 w-6 cursor-pointer
|
|
687
|
+
<HeartIcon className="text-fm-placeholder h-6 w-6 cursor-pointer" />
|
|
664
688
|
</div>
|
|
665
|
-
<div className="text-
|
|
689
|
+
<div className="text-fm-tertiary text-xs">
|
|
666
690
|
4 out of 5 hearts
|
|
667
691
|
</div>
|
|
668
692
|
</div>
|
|
669
693
|
</div>
|
|
670
|
-
<div className="rounded-lg
|
|
671
|
-
<pre className="overflow-x-auto text-sm
|
|
694
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
695
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
672
696
|
{`// Heart rating system
|
|
673
697
|
<div className="flex justify-center gap-1">
|
|
674
698
|
<HeartIcon className="h-6 w-6 text-red-400 cursor-pointer" fill="currentColor" />
|
|
@@ -686,64 +710,64 @@ function MyComponent() {
|
|
|
686
710
|
|
|
687
711
|
{/* Accessibility */}
|
|
688
712
|
<div className="!space-y-8">
|
|
689
|
-
<h2 className="text-center text-3xl font-bold
|
|
713
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
690
714
|
Accessibility Features
|
|
691
715
|
</h2>
|
|
692
716
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
693
|
-
<div className="!space-y-4 rounded-lg border
|
|
694
|
-
<h3 className="text-lg font-semibold
|
|
717
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
718
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
695
719
|
✅ Built-in Features
|
|
696
720
|
</h3>
|
|
697
|
-
<ul className="!space-y-2 text-sm
|
|
698
|
-
<li className="
|
|
721
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
722
|
+
<li className="text-fm-secondary!">
|
|
699
723
|
Uses Radix UI AccessibleIcon wrapper
|
|
700
724
|
</li>
|
|
701
|
-
<li className="
|
|
725
|
+
<li className="text-fm-secondary!">
|
|
702
726
|
Provides screen reader label "Heart icon"
|
|
703
727
|
</li>
|
|
704
|
-
<li className="
|
|
728
|
+
<li className="text-fm-secondary!">
|
|
705
729
|
Supports keyboard navigation when interactive
|
|
706
730
|
</li>
|
|
707
|
-
<li className="
|
|
731
|
+
<li className="text-fm-secondary!">
|
|
708
732
|
Maintains proper color contrast ratios
|
|
709
733
|
</li>
|
|
710
|
-
<li className="
|
|
734
|
+
<li className="text-fm-secondary!">
|
|
711
735
|
Scales with user's font size preferences
|
|
712
736
|
</li>
|
|
713
737
|
</ul>
|
|
714
738
|
</div>
|
|
715
739
|
|
|
716
|
-
<div className="!space-y-4 rounded-lg border
|
|
717
|
-
<h3 className="text-lg font-semibold
|
|
740
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
741
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
718
742
|
💡 Best Practices
|
|
719
743
|
</h3>
|
|
720
|
-
<ul className="!space-y-2 text-sm
|
|
721
|
-
<li className="
|
|
744
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
745
|
+
<li className="text-fm-secondary!">
|
|
722
746
|
Always pair with descriptive labels
|
|
723
747
|
</li>
|
|
724
|
-
<li className="
|
|
748
|
+
<li className="text-fm-secondary!">
|
|
725
749
|
Use appropriate color states (filled/outline)
|
|
726
750
|
</li>
|
|
727
|
-
<li className="
|
|
751
|
+
<li className="text-fm-secondary!">
|
|
728
752
|
Ensure sufficient color contrast
|
|
729
753
|
</li>
|
|
730
|
-
<li className="
|
|
754
|
+
<li className="text-fm-secondary!">
|
|
731
755
|
Add focus states for interactive elements
|
|
732
756
|
</li>
|
|
733
|
-
<li className="
|
|
757
|
+
<li className="text-fm-secondary!">
|
|
734
758
|
Consider animation feedback for state changes
|
|
735
759
|
</li>
|
|
736
760
|
</ul>
|
|
737
761
|
</div>
|
|
738
762
|
</div>
|
|
739
763
|
|
|
740
|
-
<div className="rounded-lg border
|
|
741
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
764
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
765
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
742
766
|
Custom Accessibility Label
|
|
743
767
|
</h3>
|
|
744
768
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
745
|
-
<div className="rounded-lg
|
|
746
|
-
<pre className="overflow-x-auto text-sm
|
|
769
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
770
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
747
771
|
{`// Custom implementation with specific label
|
|
748
772
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
749
773
|
|
|
@@ -763,13 +787,13 @@ function CustomHeartIcon({ label = "Like", ...props }) {
|
|
|
763
787
|
</pre>
|
|
764
788
|
</div>
|
|
765
789
|
<div className="!space-y-4">
|
|
766
|
-
<p className="text-
|
|
790
|
+
<p className="text-fm-secondary! text-sm">
|
|
767
791
|
For specific contexts, you can wrap the HeartIcon with a
|
|
768
792
|
custom AccessibleIcon component that provides more
|
|
769
793
|
descriptive labels.
|
|
770
794
|
</p>
|
|
771
|
-
<div className="
|
|
772
|
-
<div className="flex items-center gap-2 text-sm
|
|
795
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
796
|
+
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
773
797
|
<HeartIcon className="h-4 w-4" />
|
|
774
798
|
<span>
|
|
775
799
|
This approach gives screen readers more context
|
|
@@ -783,50 +807,58 @@ function CustomHeartIcon({ label = "Like", ...props }) {
|
|
|
783
807
|
|
|
784
808
|
{/* Related Icons */}
|
|
785
809
|
<div className="!space-y-8">
|
|
786
|
-
<h2 className="text-center text-3xl font-bold
|
|
810
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
787
811
|
Related Icons
|
|
788
812
|
</h2>
|
|
789
813
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
790
|
-
<div className="!space-y-3 rounded-lg border
|
|
791
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
814
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
815
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
792
816
|
<span className="text-2xl">⭐</span>
|
|
793
817
|
</div>
|
|
794
818
|
<div>
|
|
795
|
-
<div className="font-medium
|
|
796
|
-
|
|
819
|
+
<div className="text-fm-icon-active font-medium">
|
|
820
|
+
StarIcon
|
|
821
|
+
</div>
|
|
822
|
+
<div className="text-fm-tertiary text-xs">
|
|
797
823
|
Rating & favorites
|
|
798
824
|
</div>
|
|
799
825
|
</div>
|
|
800
826
|
</div>
|
|
801
|
-
<div className="!space-y-3 rounded-lg border
|
|
802
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
803
|
-
<span className="
|
|
827
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
828
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
829
|
+
<span className="text-fm-icon-active! !text-2xl">👍</span>
|
|
804
830
|
</div>
|
|
805
831
|
<div>
|
|
806
|
-
<div className="font-medium
|
|
807
|
-
|
|
832
|
+
<div className="text-fm-icon-active font-medium">
|
|
833
|
+
ThumbsUpIcon
|
|
834
|
+
</div>
|
|
835
|
+
<div className="text-fm-tertiary text-xs">
|
|
808
836
|
Positive reactions
|
|
809
837
|
</div>
|
|
810
838
|
</div>
|
|
811
839
|
</div>
|
|
812
|
-
<div className="!space-y-3 rounded-lg border
|
|
813
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
840
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
841
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
814
842
|
<span className="text-2xl">🔖</span>
|
|
815
843
|
</div>
|
|
816
844
|
<div>
|
|
817
|
-
<div className="font-medium
|
|
818
|
-
|
|
845
|
+
<div className="text-fm-icon-active font-medium">
|
|
846
|
+
BookmarkIcon
|
|
847
|
+
</div>
|
|
848
|
+
<div className="text-fm-tertiary text-xs">
|
|
819
849
|
Save for later
|
|
820
850
|
</div>
|
|
821
851
|
</div>
|
|
822
852
|
</div>
|
|
823
|
-
<div className="!space-y-3 rounded-lg border
|
|
824
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
853
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
854
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
825
855
|
<span className="text-2xl">📤</span>
|
|
826
856
|
</div>
|
|
827
857
|
<div>
|
|
828
|
-
<div className="font-medium
|
|
829
|
-
|
|
858
|
+
<div className="text-fm-icon-active font-medium">
|
|
859
|
+
ShareIcon
|
|
860
|
+
</div>
|
|
861
|
+
<div className="text-fm-tertiary text-xs">
|
|
830
862
|
Social sharing
|
|
831
863
|
</div>
|
|
832
864
|
</div>
|
|
@@ -836,14 +868,14 @@ function CustomHeartIcon({ label = "Like", ...props }) {
|
|
|
836
868
|
</div>
|
|
837
869
|
|
|
838
870
|
{/* Footer */}
|
|
839
|
-
<div className="border-
|
|
871
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
840
872
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
841
873
|
<div className="!space-y-4 text-center">
|
|
842
|
-
<p className="
|
|
874
|
+
<p className="text-fm-tertiary!">
|
|
843
875
|
HeartIcon is part of the Aural UI icon library, built with
|
|
844
876
|
accessibility and consistency in mind.
|
|
845
877
|
</p>
|
|
846
|
-
<p className="text-
|
|
878
|
+
<p className="text-fm-placeholder! text-sm">
|
|
847
879
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
848
880
|
compatibility and follow WCAG guidelines.
|
|
849
881
|
</p>
|
|
@@ -888,8 +920,8 @@ const storyParameters = {
|
|
|
888
920
|
backgrounds: {
|
|
889
921
|
default: "dark",
|
|
890
922
|
values: [
|
|
891
|
-
{ name: "dark", value: "
|
|
892
|
-
{ name: "darker", value: "
|
|
923
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
924
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
893
925
|
],
|
|
894
926
|
},
|
|
895
927
|
}
|
|
@@ -898,12 +930,12 @@ export const Default: Story = {
|
|
|
898
930
|
args: {
|
|
899
931
|
width: 24,
|
|
900
932
|
height: 24,
|
|
901
|
-
className: "text-
|
|
933
|
+
className: "text-fm-icon-negative",
|
|
902
934
|
withAccessibility: true,
|
|
903
935
|
},
|
|
904
936
|
parameters: storyParameters,
|
|
905
937
|
render: (args) => (
|
|
906
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
938
|
+
<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">
|
|
907
939
|
<HeartIcon {...args} />
|
|
908
940
|
</div>
|
|
909
941
|
),
|
|
@@ -920,30 +952,30 @@ export const SizeVariations: Story = {
|
|
|
920
952
|
},
|
|
921
953
|
},
|
|
922
954
|
render: () => (
|
|
923
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
955
|
+
<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">
|
|
924
956
|
<div className="text-center">
|
|
925
|
-
<HeartIcon className="!mx-auto mb-2 h-3 w-3
|
|
926
|
-
<span className="text-
|
|
957
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
|
|
958
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
927
959
|
</div>
|
|
928
960
|
<div className="text-center">
|
|
929
|
-
<HeartIcon className="!mx-auto mb-2 h-4 w-4
|
|
930
|
-
<span className="text-
|
|
961
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
|
|
962
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
931
963
|
</div>
|
|
932
964
|
<div className="text-center">
|
|
933
|
-
<HeartIcon className="!mx-auto mb-2 h-5 w-5
|
|
934
|
-
<span className="text-
|
|
965
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
|
|
966
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
935
967
|
</div>
|
|
936
968
|
<div className="text-center">
|
|
937
|
-
<HeartIcon className="!mx-auto mb-2 h-6 w-6
|
|
938
|
-
<span className="text-
|
|
969
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
|
|
970
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
939
971
|
</div>
|
|
940
972
|
<div className="text-center">
|
|
941
|
-
<HeartIcon className="!mx-auto mb-2 h-8 w-8
|
|
942
|
-
<span className="text-
|
|
973
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
|
|
974
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
943
975
|
</div>
|
|
944
976
|
<div className="text-center">
|
|
945
|
-
<HeartIcon className="!mx-auto mb-2 h-12 w-12
|
|
946
|
-
<span className="text-
|
|
977
|
+
<HeartIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
|
|
978
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
947
979
|
</div>
|
|
948
980
|
</div>
|
|
949
981
|
),
|
|
@@ -959,34 +991,40 @@ export const ColorVariations: Story = {
|
|
|
959
991
|
},
|
|
960
992
|
},
|
|
961
993
|
render: () => (
|
|
962
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
994
|
+
<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">
|
|
963
995
|
<div className="text-center">
|
|
964
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
965
|
-
<HeartIcon className="h-8 w-8
|
|
996
|
+
<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">
|
|
997
|
+
<HeartIcon className="text-fm-icon-negative h-8 w-8" />
|
|
998
|
+
</div>
|
|
999
|
+
<div className="text-fm-icon-active text-sm font-medium">Love</div>
|
|
1000
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1001
|
+
text-fm-icon-negative
|
|
966
1002
|
</div>
|
|
967
|
-
<div className="text-sm font-medium text-white">Love</div>
|
|
968
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
969
1003
|
</div>
|
|
970
1004
|
<div className="text-center">
|
|
971
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
972
|
-
<HeartIcon className="h-8 w-8
|
|
1005
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1006
|
+
<HeartIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
1007
|
+
</div>
|
|
1008
|
+
<div className="text-fm-icon-active text-sm font-medium">Affection</div>
|
|
1009
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1010
|
+
text-fm-secondary-600
|
|
973
1011
|
</div>
|
|
974
|
-
<div className="text-sm font-medium text-white">Affection</div>
|
|
975
|
-
<div className="text-xs text-pink-400">text-pink-400</div>
|
|
976
1012
|
</div>
|
|
977
1013
|
<div className="text-center">
|
|
978
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
979
|
-
<HeartIcon className="h-8 w-8
|
|
1014
|
+
<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">
|
|
1015
|
+
<HeartIcon className="text-fm-icon-negative h-8 w-8" />
|
|
1016
|
+
</div>
|
|
1017
|
+
<div className="text-fm-icon-active text-sm font-medium">Romance</div>
|
|
1018
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1019
|
+
text-fm-icon-negative
|
|
980
1020
|
</div>
|
|
981
|
-
<div className="text-sm font-medium text-white">Romance</div>
|
|
982
|
-
<div className="text-xs text-rose-400">text-rose-400</div>
|
|
983
1021
|
</div>
|
|
984
1022
|
<div className="text-center">
|
|
985
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
986
|
-
<HeartIcon className="h-8 w-8
|
|
1023
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1024
|
+
<HeartIcon className="text-fm-placeholder h-8 w-8" />
|
|
987
1025
|
</div>
|
|
988
|
-
<div className="text-sm font-medium
|
|
989
|
-
<div className="text-
|
|
1026
|
+
<div className="text-fm-icon-active text-sm font-medium">Inactive</div>
|
|
1027
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
990
1028
|
</div>
|
|
991
1029
|
</div>
|
|
992
1030
|
),
|
|
@@ -1003,16 +1041,18 @@ export const UsageExamples: Story = {
|
|
|
1003
1041
|
},
|
|
1004
1042
|
},
|
|
1005
1043
|
render: () => (
|
|
1006
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1044
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1007
1045
|
{/* Like Button */}
|
|
1008
1046
|
<div className="!space-y-2">
|
|
1009
|
-
<h3 className="text-sm font-medium
|
|
1047
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1048
|
+
Like Buttons
|
|
1049
|
+
</h3>
|
|
1010
1050
|
<div className="flex gap-4">
|
|
1011
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1051
|
+
<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">
|
|
1012
1052
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
1013
1053
|
Liked
|
|
1014
1054
|
</button>
|
|
1015
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1055
|
+
<button className="border-fm-divider-primary bg-fm-surface-tertiary/20 text-fm-secondary hover:bg-fm-surface-tertiary/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
1016
1056
|
<HeartIcon className="h-4 w-4" />
|
|
1017
1057
|
Like
|
|
1018
1058
|
</button>
|
|
@@ -1021,19 +1061,21 @@ export const UsageExamples: Story = {
|
|
|
1021
1061
|
|
|
1022
1062
|
{/* Wishlist Item */}
|
|
1023
1063
|
<div className="!space-y-2">
|
|
1024
|
-
<h3 className="text-sm font-medium
|
|
1025
|
-
|
|
1064
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1065
|
+
Wishlist Actions
|
|
1066
|
+
</h3>
|
|
1067
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1026
1068
|
<div className="flex items-center justify-between">
|
|
1027
1069
|
<div className="flex items-center gap-3">
|
|
1028
|
-
<div className="h-10 w-10 rounded-lg
|
|
1070
|
+
<div className="bg-fm-icon-info/20 h-10 w-10 rounded-lg"></div>
|
|
1029
1071
|
<div>
|
|
1030
|
-
<div className="text-sm font-medium
|
|
1072
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1031
1073
|
Premium Headphones
|
|
1032
1074
|
</div>
|
|
1033
|
-
<div className="text-
|
|
1075
|
+
<div className="text-fm-tertiary text-xs">$299 • In Stock</div>
|
|
1034
1076
|
</div>
|
|
1035
1077
|
</div>
|
|
1036
|
-
<button className="
|
|
1078
|
+
<button className="bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 rounded-lg p-2 transition-colors">
|
|
1037
1079
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
1038
1080
|
</button>
|
|
1039
1081
|
</div>
|
|
@@ -1042,17 +1084,19 @@ export const UsageExamples: Story = {
|
|
|
1042
1084
|
|
|
1043
1085
|
{/* Social Media */}
|
|
1044
1086
|
<div className="!space-y-2">
|
|
1045
|
-
<h3 className="text-sm font-medium
|
|
1046
|
-
|
|
1047
|
-
|
|
1087
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1088
|
+
Social Media Post
|
|
1089
|
+
</h3>
|
|
1090
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1091
|
+
<div className="text-fm-icon-active mb-3 text-sm">
|
|
1048
1092
|
Just launched our new design system! 🎨✨
|
|
1049
1093
|
</div>
|
|
1050
1094
|
<div className="flex items-center gap-6">
|
|
1051
|
-
<button className="flex items-center gap-2
|
|
1095
|
+
<button className="text-fm-icon-negative hover:text-fm-icon-negative flex items-center gap-2 transition-colors">
|
|
1052
1096
|
<HeartIcon className="h-4 w-4" fill="currentColor" />
|
|
1053
1097
|
<span className="text-sm">247</span>
|
|
1054
1098
|
</button>
|
|
1055
|
-
<button className="flex items-center gap-2
|
|
1099
|
+
<button className="text-fm-placeholder hover:text-fm-icon-info flex items-center gap-2 transition-colors">
|
|
1056
1100
|
<span className="text-sm">💬</span>
|
|
1057
1101
|
<span className="text-sm">32</span>
|
|
1058
1102
|
</button>
|
|
@@ -1076,11 +1120,11 @@ export const Playground: Story = {
|
|
|
1076
1120
|
args: {
|
|
1077
1121
|
width: 32,
|
|
1078
1122
|
height: 32,
|
|
1079
|
-
className: "text-
|
|
1123
|
+
className: "text-fm-icon-negative",
|
|
1080
1124
|
},
|
|
1081
1125
|
render: (args) => (
|
|
1082
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1083
|
-
<div className="rounded-lg border
|
|
1126
|
+
<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">
|
|
1127
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1084
1128
|
<HeartIcon {...args} />
|
|
1085
1129
|
</div>
|
|
1086
1130
|
</div>
|