aural-ui 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1228
- package/dist/components/avatar/Avatar.stories.tsx +219 -235
- package/dist/components/badge/Badge.stories.tsx +379 -116
- package/dist/components/banner/Banner.stories.tsx +445 -391
- package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
- package/dist/components/button/Button.stories.tsx +585 -230
- package/dist/components/card/Card.stories.tsx +619 -301
- package/dist/components/char-count/CharCount.stories.tsx +350 -248
- package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
- package/dist/components/chip/Chip.stories.tsx +362 -168
- package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -636
- package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
- package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
- package/dist/components/command/Command.stories.tsx +530 -867
- package/dist/components/dialog/Dialog.stories.tsx +501 -950
- package/dist/components/divider/Divider.stories.tsx +264 -527
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -1023
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1028
- package/dist/components/form/Form.stories.tsx +560 -274
- package/dist/components/helper-text/HelperText.stories.tsx +199 -200
- package/dist/components/hover-card/HoverCard.stories.tsx +318 -1254
- package/dist/components/icon-button/IconButton.stories.tsx +837 -194
- package/dist/components/if-else/if-else.stories.tsx +370 -83
- package/dist/components/input/Input.stories.tsx +436 -368
- package/dist/components/label/Label.stories.tsx +156 -154
- package/dist/components/list/List.stories.tsx +484 -835
- package/dist/components/marquee/Marquee.stories.tsx +356 -712
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -422
- package/dist/components/overlay/Overlay.stories.tsx +452 -824
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +481 -896
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +495 -799
- package/dist/components/scroll-area/ScrollArea.stories.tsx +383 -1059
- package/dist/components/search/Search.stories.tsx +312 -595
- package/dist/components/select/Select.stories.tsx +684 -789
- package/dist/components/sheet/Sheet.stories.tsx +671 -950
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +383 -760
- package/dist/components/stepper/Stepper.stories.tsx +371 -514
- package/dist/components/switch/Switch.stories.tsx +461 -208
- package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
- package/dist/components/table/Table.stories.tsx +770 -916
- package/dist/components/tabs/Tabs.stories.tsx +458 -1455
- package/dist/components/tag/Tag.stories.tsx +714 -542
- package/dist/components/textarea/TextArea.stories.tsx +621 -562
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -154
- package/dist/components/toast/Toast.stories.tsx +452 -1339
- package/dist/components/toggle/Toggle.stories.tsx +488 -931
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1388
- package/dist/components/typography/Typography.stories.tsx +406 -89
- package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
- package/dist/icons/Icons.stories.tsx +0 -12
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +223 -1060
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +106 -968
- package/dist/icons/all-icons.tsx +37 -16
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +137 -1010
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +145 -935
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +132 -1046
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +134 -986
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +135 -1028
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +133 -971
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +145 -1123
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +143 -1252
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +123 -632
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +141 -1223
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +164 -1018
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +121 -1236
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +121 -1213
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +116 -893
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +109 -1254
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +114 -975
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +157 -994
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +160 -992
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +140 -970
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +126 -993
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +144 -987
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +141 -1007
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +147 -1187
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +110 -476
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +120 -1364
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +113 -1360
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +111 -942
- package/dist/icons/command-icon/CommandIcon.stories.tsx +124 -1087
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +119 -996
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +144 -1046
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +136 -999
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +123 -857
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +121 -1080
- package/dist/icons/email-icon/EmailIcon.stories.tsx +112 -979
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +109 -1146
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +141 -1068
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +140 -1081
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +124 -1050
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +123 -1091
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +122 -633
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +116 -1087
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +166 -1020
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +112 -1182
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +112 -1155
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +127 -325
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +142 -985
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +116 -1217
- package/dist/icons/head-icon/HeadIcon.stories.tsx +108 -953
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +117 -1060
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +116 -716
- package/dist/icons/image-icon/ImageIcon.stories.tsx +102 -1164
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +108 -1233
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +133 -1289
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +155 -1012
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +158 -1438
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +121 -1011
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +116 -981
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +116 -979
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +105 -1252
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +151 -1554
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +107 -1227
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +116 -707
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +119 -1226
- package/dist/icons/message-icon/MessageIcon.stories.tsx +111 -557
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +112 -1198
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +117 -557
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +106 -1235
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +112 -1185
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +116 -1012
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +108 -1137
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +116 -1138
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +106 -1146
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +119 -719
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +110 -999
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +109 -912
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +110 -1041
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +112 -1109
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +112 -1023
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +103 -1132
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +104 -870
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +99 -476
- package/dist/icons/search-icon/SearchIcon.stories.tsx +108 -1161
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +104 -1009
- package/dist/icons/share-icon/ShareIcon.stories.tsx +117 -1064
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +114 -974
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +134 -1160
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +169 -1017
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +161 -1016
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +102 -1001
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +155 -593
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +155 -608
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +142 -712
- package/dist/icons/star-icon/StarIcon.stories.tsx +120 -946
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +109 -1013
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +113 -891
- package/dist/icons/sun-icon/SunIcon.stories.tsx +117 -864
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +113 -989
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +120 -1027
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +153 -1476
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +143 -1187
- package/dist/icons/tick-icon/TickIcon.stories.tsx +142 -1322
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +105 -970
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +154 -1457
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +112 -930
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +115 -1019
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +122 -1092
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +120 -1401
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +107 -1212
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +109 -1122
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +112 -1124
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +119 -1083
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +158 -983
- package/dist/index.cjs +90 -90
- package/dist/index.js +90 -90
- package/package.json +8 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { AuralComponentDocsPage } from "src/ui/story-spec/components/component-story-docs-page"
|
|
5
|
+
|
|
4
6
|
import {
|
|
5
7
|
BodyLarge,
|
|
6
8
|
BodyMedium,
|
|
@@ -23,17 +25,34 @@ import {
|
|
|
23
25
|
const meta: Meta<typeof Typography> = {
|
|
24
26
|
title: "Components/UI/Typography",
|
|
25
27
|
component: Typography,
|
|
28
|
+
tags: ["autodocs"],
|
|
26
29
|
parameters: {
|
|
27
30
|
layout: "centered",
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
docs: {
|
|
32
|
+
description: {
|
|
33
|
+
component:
|
|
34
|
+
"A polymorphic text primitive covering the full design-system type scale — Display, Title, Label, Body, and Caption — each in three sizes. Supports weight, alignment, color, text-transform, line-height, and text-wrap axes via props, and can render as any semantic HTML element via the `as` prop.",
|
|
35
|
+
},
|
|
36
|
+
page: () => (
|
|
37
|
+
<AuralComponentDocsPage
|
|
38
|
+
features={[
|
|
39
|
+
{
|
|
40
|
+
title: "5 Type Roles",
|
|
41
|
+
description: "Display to caption",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: "Polymorphic",
|
|
45
|
+
description: "Render as any element",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: "Full Style Axes",
|
|
49
|
+
description: "Weight, align, color",
|
|
50
|
+
},
|
|
51
|
+
]}
|
|
52
|
+
/>
|
|
53
|
+
),
|
|
34
54
|
},
|
|
35
55
|
},
|
|
36
|
-
tags: ["autodocs"],
|
|
37
56
|
argTypes: {
|
|
38
57
|
variant: {
|
|
39
58
|
control: "select",
|
|
@@ -54,34 +73,42 @@ const meta: Meta<typeof Typography> = {
|
|
|
54
73
|
"caption-medium",
|
|
55
74
|
"caption-small",
|
|
56
75
|
],
|
|
76
|
+
description: "Type scale variant",
|
|
57
77
|
},
|
|
58
78
|
weight: {
|
|
59
79
|
control: "select",
|
|
60
80
|
options: ["regular", "medium", "semibold", "bold"],
|
|
81
|
+
description: "Font weight",
|
|
61
82
|
},
|
|
62
83
|
align: {
|
|
63
84
|
control: "radio",
|
|
64
85
|
options: ["left", "center", "right"],
|
|
86
|
+
description: "Text alignment",
|
|
65
87
|
},
|
|
66
88
|
color: {
|
|
67
89
|
control: "select",
|
|
68
90
|
options: ["primary", "secondary", "tertiary", "contrast", "inactive"],
|
|
91
|
+
description: "Semantic text color",
|
|
69
92
|
},
|
|
70
93
|
transform: {
|
|
71
94
|
control: "select",
|
|
72
95
|
options: ["uppercase", "lowercase", "capitalize", "normal"],
|
|
96
|
+
description: "CSS text-transform",
|
|
73
97
|
},
|
|
74
98
|
lineHeight: {
|
|
75
99
|
control: "select",
|
|
76
|
-
options: ["tight", "normal", "loose"],
|
|
100
|
+
options: ["tight", "normal", "loose", "auto"],
|
|
101
|
+
description: "Override line-height",
|
|
77
102
|
},
|
|
78
103
|
wrap: {
|
|
79
104
|
control: "select",
|
|
80
105
|
options: ["normal", "nowrap", "wrap", "pretty", "balance"],
|
|
106
|
+
description: "CSS text-wrap",
|
|
81
107
|
},
|
|
82
108
|
as: {
|
|
83
109
|
control: "select",
|
|
84
110
|
options: ["p", "span", "div", "h1", "h2", "h3", "h4", "h5", "h6"],
|
|
111
|
+
description: "HTML element to render",
|
|
85
112
|
},
|
|
86
113
|
},
|
|
87
114
|
}
|
|
@@ -89,116 +116,406 @@ const meta: Meta<typeof Typography> = {
|
|
|
89
116
|
export default meta
|
|
90
117
|
type Story = StoryObj<typeof Typography>
|
|
91
118
|
|
|
92
|
-
|
|
119
|
+
// ─── 1. Playground ────────────────────────────────────────────────────────────
|
|
120
|
+
|
|
121
|
+
export const Playground: Story = {
|
|
93
122
|
args: {
|
|
94
123
|
children: "The quick brown fox jumps over the lazy dog",
|
|
95
124
|
variant: "body-medium",
|
|
96
125
|
weight: "regular",
|
|
97
126
|
color: "primary",
|
|
98
127
|
align: "left",
|
|
128
|
+
transform: "normal",
|
|
129
|
+
lineHeight: "auto",
|
|
130
|
+
},
|
|
131
|
+
render: (args) => (
|
|
132
|
+
<div className="w-full max-w-lg space-y-4">
|
|
133
|
+
<Typography {...args} />
|
|
134
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-4 py-3">
|
|
135
|
+
<code className="text-fm-secondary text-fm-md leading-fm-md font-(--font-fm-mono)">{`<Typography variant="${args.variant}" weight="${args.weight}" color="${args.color}">`}</code>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
),
|
|
139
|
+
parameters: {
|
|
140
|
+
docs: {
|
|
141
|
+
description: {
|
|
142
|
+
story:
|
|
143
|
+
"Adjust variant, weight, color, align, transform, and lineHeight using the controls panel in the sidebar.",
|
|
144
|
+
},
|
|
145
|
+
},
|
|
99
146
|
},
|
|
100
147
|
}
|
|
101
148
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
149
|
+
// ─── 2. All Variants ──────────────────────────────────────────────────────────
|
|
150
|
+
|
|
151
|
+
export const AllVariants: Story = {
|
|
152
|
+
render: () => (
|
|
153
|
+
<div className="space-y-8">
|
|
154
|
+
{/* Display scale */}
|
|
105
155
|
<div className="space-y-4">
|
|
106
|
-
<
|
|
107
|
-
|
|
108
|
-
|
|
156
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
157
|
+
Display
|
|
158
|
+
</h4>
|
|
159
|
+
<div className="space-y-3">
|
|
160
|
+
<div className="space-y-1">
|
|
161
|
+
<DisplayLarge>Display Large</DisplayLarge>
|
|
162
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
163
|
+
display-large · 58px / 72px · PP Supply Sans
|
|
164
|
+
</p>
|
|
165
|
+
</div>
|
|
166
|
+
<div className="space-y-1">
|
|
167
|
+
<DisplayMedium>Display Medium</DisplayMedium>
|
|
168
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
169
|
+
display-medium · 46px / 54px · PP Supply Sans
|
|
170
|
+
</p>
|
|
171
|
+
</div>
|
|
172
|
+
<div className="space-y-1">
|
|
173
|
+
<DisplaySmall>Display Small</DisplaySmall>
|
|
174
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
175
|
+
display-small · 40px / 46px · PP Supply Sans
|
|
176
|
+
</p>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
109
179
|
</div>
|
|
110
180
|
|
|
181
|
+
{/* Title scale */}
|
|
111
182
|
<div className="space-y-4">
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
|
|
183
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
184
|
+
Title
|
|
185
|
+
</h4>
|
|
186
|
+
<div className="space-y-3">
|
|
187
|
+
<div className="space-y-1">
|
|
188
|
+
<TitleLarge>Title Large</TitleLarge>
|
|
189
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
190
|
+
title-large · 36px / 42px · PP Supply Sans
|
|
191
|
+
</p>
|
|
192
|
+
</div>
|
|
193
|
+
<div className="space-y-1">
|
|
194
|
+
<TitleMedium>Title Medium</TitleMedium>
|
|
195
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
196
|
+
title-medium · 32px / 38px · PP Supply Sans
|
|
197
|
+
</p>
|
|
198
|
+
</div>
|
|
199
|
+
<div className="space-y-1">
|
|
200
|
+
<TitleSmall>Title Small</TitleSmall>
|
|
201
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
202
|
+
title-small · 28px / 32px · PP Supply Sans
|
|
203
|
+
</p>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
115
206
|
</div>
|
|
116
207
|
|
|
208
|
+
{/* Label scale */}
|
|
117
209
|
<div className="space-y-4">
|
|
118
|
-
<
|
|
119
|
-
|
|
120
|
-
|
|
210
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
211
|
+
Label
|
|
212
|
+
</h4>
|
|
213
|
+
<div className="space-y-3">
|
|
214
|
+
<div className="space-y-1">
|
|
215
|
+
<LabelLarge className="block">Label Large</LabelLarge>
|
|
216
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
217
|
+
label-large · 24px / 28px · PP Supply Sans
|
|
218
|
+
</p>
|
|
219
|
+
</div>
|
|
220
|
+
<div className="space-y-1">
|
|
221
|
+
<LabelMedium className="block">Label Medium</LabelMedium>
|
|
222
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
223
|
+
label-medium · 20px / 24px · PP Supply Sans
|
|
224
|
+
</p>
|
|
225
|
+
</div>
|
|
226
|
+
<div className="space-y-1">
|
|
227
|
+
<LabelSmall className="block">Label Small</LabelSmall>
|
|
228
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
229
|
+
label-small · 16px / 20px · PP Supply Sans
|
|
230
|
+
</p>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
121
233
|
</div>
|
|
122
234
|
|
|
235
|
+
{/* Body scale */}
|
|
123
236
|
<div className="space-y-4">
|
|
124
|
-
<
|
|
125
|
-
|
|
126
|
-
|
|
237
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
238
|
+
Body
|
|
239
|
+
</h4>
|
|
240
|
+
<div className="space-y-3">
|
|
241
|
+
<div className="space-y-1">
|
|
242
|
+
<BodyLarge>
|
|
243
|
+
Body Large — The quick brown fox jumps over the lazy dog.
|
|
244
|
+
</BodyLarge>
|
|
245
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
246
|
+
body-large · 20px / 24px · Lab Grotesque
|
|
247
|
+
</p>
|
|
248
|
+
</div>
|
|
249
|
+
<div className="space-y-1">
|
|
250
|
+
<BodyMedium>
|
|
251
|
+
Body Medium — The quick brown fox jumps over the lazy dog.
|
|
252
|
+
</BodyMedium>
|
|
253
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
254
|
+
body-medium · 16px / 20px · Lab Grotesque
|
|
255
|
+
</p>
|
|
256
|
+
</div>
|
|
257
|
+
<div className="space-y-1">
|
|
258
|
+
<BodySmall>
|
|
259
|
+
Body Small — The quick brown fox jumps over the lazy dog.
|
|
260
|
+
</BodySmall>
|
|
261
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
262
|
+
body-small · 14px / 18px · Lab Grotesque
|
|
263
|
+
</p>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
127
266
|
</div>
|
|
128
267
|
|
|
268
|
+
{/* Caption scale */}
|
|
129
269
|
<div className="space-y-4">
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
270
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
271
|
+
Caption
|
|
272
|
+
</h4>
|
|
273
|
+
<div className="space-y-3">
|
|
274
|
+
<div className="space-y-1">
|
|
275
|
+
<CaptionLarge className="block">
|
|
276
|
+
Caption Large — Supporting metadata and labels
|
|
277
|
+
</CaptionLarge>
|
|
278
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
279
|
+
caption-large · 14px / 18px · Lab Grotesque
|
|
280
|
+
</p>
|
|
281
|
+
</div>
|
|
282
|
+
<div className="space-y-1">
|
|
283
|
+
<CaptionMedium className="block">
|
|
284
|
+
Caption Medium — Supporting metadata and labels
|
|
285
|
+
</CaptionMedium>
|
|
286
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
287
|
+
caption-medium · 12px / 16px · Lab Grotesque
|
|
288
|
+
</p>
|
|
289
|
+
</div>
|
|
290
|
+
<div className="space-y-1">
|
|
291
|
+
<CaptionSmall className="block">
|
|
292
|
+
Caption Small — Supporting metadata and labels
|
|
293
|
+
</CaptionSmall>
|
|
294
|
+
<p className="text-fm-tertiary font-fm-text text-fm-sm leading-fm-sm">
|
|
295
|
+
caption-small · 10px / 12px · Lab Grotesque
|
|
296
|
+
</p>
|
|
297
|
+
</div>
|
|
298
|
+
</div>
|
|
133
299
|
</div>
|
|
134
300
|
</div>
|
|
135
|
-
)
|
|
301
|
+
),
|
|
302
|
+
parameters: {
|
|
303
|
+
docs: {
|
|
304
|
+
description: {
|
|
305
|
+
story:
|
|
306
|
+
"Complete type scale from Display Large (58px) down to Caption Small (10px). Each row shows the variant name, pixel size, line-height, and font family.",
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
},
|
|
136
310
|
}
|
|
137
311
|
|
|
138
|
-
|
|
139
|
-
return (
|
|
140
|
-
<div className="bg-fm-surface-primary flex flex-col gap-4 p-4">
|
|
141
|
-
<Typography weight="regular">Regular weight text</Typography>
|
|
142
|
-
<Typography weight="medium">Medium weight text</Typography>
|
|
143
|
-
<Typography weight="semibold">Semibold weight text</Typography>
|
|
144
|
-
<Typography weight="bold">Bold weight text</Typography>
|
|
145
|
-
</div>
|
|
146
|
-
)
|
|
147
|
-
}
|
|
312
|
+
// ─── 3. Configurations ────────────────────────────────────────────────────────
|
|
148
313
|
|
|
149
|
-
export const
|
|
150
|
-
|
|
151
|
-
<div className="
|
|
152
|
-
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
314
|
+
export const Configurations: Story = {
|
|
315
|
+
render: () => (
|
|
316
|
+
<div className="space-y-8">
|
|
317
|
+
{/* Weight axis */}
|
|
318
|
+
<div className="space-y-4">
|
|
319
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
320
|
+
Weight
|
|
321
|
+
</h4>
|
|
322
|
+
<div className="flex flex-wrap gap-4">
|
|
323
|
+
<div className="space-y-2 text-center">
|
|
324
|
+
<Typography variant="body-large" weight="regular">
|
|
325
|
+
Regular
|
|
326
|
+
</Typography>
|
|
327
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
328
|
+
regular (400)
|
|
329
|
+
</p>
|
|
330
|
+
</div>
|
|
331
|
+
<div className="space-y-2 text-center">
|
|
332
|
+
<Typography variant="body-large" weight="medium">
|
|
333
|
+
Medium
|
|
334
|
+
</Typography>
|
|
335
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
336
|
+
medium (500)
|
|
337
|
+
</p>
|
|
338
|
+
</div>
|
|
339
|
+
<div className="space-y-2 text-center">
|
|
340
|
+
<Typography variant="body-large" weight="semibold">
|
|
341
|
+
Semibold
|
|
342
|
+
</Typography>
|
|
343
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
344
|
+
semibold (600)
|
|
345
|
+
</p>
|
|
346
|
+
</div>
|
|
347
|
+
<div className="space-y-2 text-center">
|
|
348
|
+
<Typography variant="body-large" weight="bold">
|
|
349
|
+
Bold
|
|
350
|
+
</Typography>
|
|
351
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
352
|
+
bold (700)
|
|
353
|
+
</p>
|
|
354
|
+
</div>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
160
357
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
358
|
+
{/* Color axis */}
|
|
359
|
+
<div className="space-y-4">
|
|
360
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
361
|
+
Color
|
|
362
|
+
</h4>
|
|
363
|
+
<div className="flex flex-wrap gap-4">
|
|
364
|
+
<div className="space-y-2 text-center">
|
|
365
|
+
<Typography variant="body-large" color="primary">
|
|
366
|
+
Primary
|
|
367
|
+
</Typography>
|
|
368
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
369
|
+
primary
|
|
370
|
+
</p>
|
|
371
|
+
</div>
|
|
372
|
+
<div className="space-y-2 text-center">
|
|
373
|
+
<Typography variant="body-large" color="secondary">
|
|
374
|
+
Secondary
|
|
375
|
+
</Typography>
|
|
376
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
377
|
+
secondary
|
|
378
|
+
</p>
|
|
379
|
+
</div>
|
|
380
|
+
<div className="space-y-2 text-center">
|
|
381
|
+
<Typography variant="body-large" color="tertiary">
|
|
382
|
+
Tertiary
|
|
383
|
+
</Typography>
|
|
384
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
385
|
+
tertiary
|
|
386
|
+
</p>
|
|
387
|
+
</div>
|
|
388
|
+
<div className="space-y-2 text-center">
|
|
389
|
+
<Typography variant="body-large" color="inactive">
|
|
390
|
+
Inactive
|
|
391
|
+
</Typography>
|
|
392
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
393
|
+
inactive
|
|
394
|
+
</p>
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
170
398
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
399
|
+
{/* Alignment axis */}
|
|
400
|
+
<div className="space-y-4">
|
|
401
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
402
|
+
Alignment
|
|
403
|
+
</h4>
|
|
404
|
+
<div className="w-full max-w-md space-y-3">
|
|
405
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
406
|
+
<Typography variant="body-medium" align="left">
|
|
407
|
+
Left-aligned text — the default reading direction.
|
|
408
|
+
</Typography>
|
|
409
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-1">
|
|
410
|
+
left
|
|
411
|
+
</p>
|
|
412
|
+
</div>
|
|
413
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
414
|
+
<Typography variant="body-medium" align="center">
|
|
415
|
+
Center-aligned text — for headings and callouts.
|
|
416
|
+
</Typography>
|
|
417
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-1 text-center">
|
|
418
|
+
center
|
|
419
|
+
</p>
|
|
420
|
+
</div>
|
|
421
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
422
|
+
<Typography variant="body-medium" align="right">
|
|
423
|
+
Right-aligned text — for numeric data or RTL contexts.
|
|
424
|
+
</Typography>
|
|
425
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-1 text-right">
|
|
426
|
+
right
|
|
427
|
+
</p>
|
|
428
|
+
</div>
|
|
429
|
+
</div>
|
|
430
|
+
</div>
|
|
183
431
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
432
|
+
{/* Transform axis */}
|
|
433
|
+
<div className="space-y-4">
|
|
434
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
435
|
+
Text transform
|
|
436
|
+
</h4>
|
|
437
|
+
<div className="flex flex-wrap gap-4">
|
|
438
|
+
<div className="space-y-2 text-center">
|
|
439
|
+
<Typography variant="body-large" transform="normal">
|
|
440
|
+
Normal
|
|
441
|
+
</Typography>
|
|
442
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
443
|
+
normal
|
|
444
|
+
</p>
|
|
445
|
+
</div>
|
|
446
|
+
<div className="space-y-2 text-center">
|
|
447
|
+
<Typography variant="body-large" transform="uppercase">
|
|
448
|
+
Uppercase
|
|
449
|
+
</Typography>
|
|
450
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
451
|
+
uppercase
|
|
452
|
+
</p>
|
|
453
|
+
</div>
|
|
454
|
+
<div className="space-y-2 text-center">
|
|
455
|
+
<Typography variant="body-large" transform="capitalize">
|
|
456
|
+
capitalize each word
|
|
457
|
+
</Typography>
|
|
458
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
459
|
+
capitalize
|
|
460
|
+
</p>
|
|
461
|
+
</div>
|
|
462
|
+
<div className="space-y-2 text-center">
|
|
463
|
+
<Typography variant="body-large" transform="lowercase">
|
|
464
|
+
LOWERCASE TEXT
|
|
465
|
+
</Typography>
|
|
466
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
467
|
+
lowercase
|
|
468
|
+
</p>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
</div>
|
|
472
|
+
|
|
473
|
+
{/* Line-height axis */}
|
|
474
|
+
<div className="space-y-4">
|
|
475
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
476
|
+
Line height override
|
|
477
|
+
</h4>
|
|
478
|
+
<div className="grid grid-cols-1 gap-4 sm:grid-cols-3">
|
|
479
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
480
|
+
<Typography variant="body-medium" lineHeight="tight">
|
|
481
|
+
Tight line height. Lorem ipsum dolor sit amet, consectetur
|
|
482
|
+
adipiscing elit. Vivamus hendrerit arcu sed erat molestie
|
|
483
|
+
vehicula.
|
|
484
|
+
</Typography>
|
|
485
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-2">
|
|
486
|
+
tight
|
|
487
|
+
</p>
|
|
488
|
+
</div>
|
|
489
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
490
|
+
<Typography variant="body-medium" lineHeight="normal">
|
|
491
|
+
Normal line height. Lorem ipsum dolor sit amet, consectetur
|
|
492
|
+
adipiscing elit. Vivamus hendrerit arcu sed erat molestie
|
|
493
|
+
vehicula.
|
|
494
|
+
</Typography>
|
|
495
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-2">
|
|
496
|
+
normal
|
|
497
|
+
</p>
|
|
498
|
+
</div>
|
|
499
|
+
<div className="border-fm-divider-secondary rounded-lg border p-3">
|
|
500
|
+
<Typography variant="body-medium" lineHeight="loose">
|
|
501
|
+
Loose line height. Lorem ipsum dolor sit amet, consectetur
|
|
502
|
+
adipiscing elit. Vivamus hendrerit arcu sed erat molestie
|
|
503
|
+
vehicula.
|
|
504
|
+
</Typography>
|
|
505
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm mt-2">
|
|
506
|
+
loose
|
|
507
|
+
</p>
|
|
508
|
+
</div>
|
|
509
|
+
</div>
|
|
510
|
+
</div>
|
|
202
511
|
</div>
|
|
203
|
-
)
|
|
512
|
+
),
|
|
513
|
+
parameters: {
|
|
514
|
+
docs: {
|
|
515
|
+
description: {
|
|
516
|
+
story:
|
|
517
|
+
"One subsection per configuration axis: weight (regular → bold), color (primary → inactive), alignment (left / center / right), text-transform, and line-height override (tight / normal / loose).",
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
},
|
|
204
521
|
}
|