@neynar/ui 0.3.0 → 0.4.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.
Files changed (320) hide show
  1. package/.llm/accordion-content.llm.md +67 -0
  2. package/.llm/accordion-item.llm.md +61 -0
  3. package/.llm/accordion-trigger.llm.md +69 -0
  4. package/.llm/accordion.llm.md +88 -0
  5. package/.llm/alert-description.llm.md +78 -0
  6. package/.llm/alert-dialog-action.llm.md +51 -0
  7. package/.llm/alert-dialog-cancel.llm.md +48 -0
  8. package/.llm/alert-dialog-content.llm.md +88 -0
  9. package/.llm/alert-dialog-description.llm.md +53 -0
  10. package/.llm/alert-dialog-footer.llm.md +41 -0
  11. package/.llm/alert-dialog-header.llm.md +39 -0
  12. package/.llm/alert-dialog-overlay.llm.md +44 -0
  13. package/.llm/alert-dialog-portal.llm.md +41 -0
  14. package/.llm/alert-dialog-title.llm.md +46 -0
  15. package/.llm/alert-dialog-trigger.llm.md +40 -0
  16. package/.llm/alert-dialog.llm.md +80 -0
  17. package/.llm/alert-title.llm.md +48 -0
  18. package/.llm/alert.llm.md +92 -0
  19. package/.llm/aspect-ratio.llm.md +41 -0
  20. package/.llm/avatar-fallback.llm.md +41 -0
  21. package/.llm/avatar-image.llm.md +48 -0
  22. package/.llm/avatar.llm.md +35 -0
  23. package/.llm/badge.llm.md +117 -0
  24. package/.llm/blockquote.llm.md +55 -0
  25. package/.llm/body-text-large.llm.md +49 -0
  26. package/.llm/body-text-small.llm.md +49 -0
  27. package/.llm/body-text.llm.md +52 -0
  28. package/.llm/breadcrumb-ellipsis.llm.md +73 -0
  29. package/.llm/breadcrumb-item.llm.md +53 -0
  30. package/.llm/breadcrumb-link.llm.md +84 -0
  31. package/.llm/breadcrumb-list.llm.md +54 -0
  32. package/.llm/breadcrumb-page.llm.md +52 -0
  33. package/.llm/breadcrumb-separator.llm.md +60 -0
  34. package/.llm/breadcrumb.llm.md +110 -0
  35. package/.llm/button-group-separator.llm.md +53 -0
  36. package/.llm/button-group-text.llm.md +56 -0
  37. package/.llm/button-group.llm.md +81 -0
  38. package/.llm/button.llm.md +281 -0
  39. package/.llm/calendar-day-button.llm.md +57 -0
  40. package/.llm/calendar.llm.md +340 -0
  41. package/.llm/caption.llm.md +48 -0
  42. package/.llm/card-action.llm.md +64 -0
  43. package/.llm/card-content.llm.md +48 -0
  44. package/.llm/card-description.llm.md +46 -0
  45. package/.llm/card-footer.llm.md +56 -0
  46. package/.llm/card-header.llm.md +53 -0
  47. package/.llm/card-title.llm.md +43 -0
  48. package/.llm/card.llm.md +100 -0
  49. package/.llm/carousel-content.llm.md +77 -0
  50. package/.llm/carousel-item.llm.md +96 -0
  51. package/.llm/carousel-next.llm.md +95 -0
  52. package/.llm/carousel-previous.llm.md +95 -0
  53. package/.llm/carousel.llm.md +211 -0
  54. package/.llm/chart-config.llm.md +71 -0
  55. package/.llm/chart-container.llm.md +148 -0
  56. package/.llm/chart-legend-content.llm.md +85 -0
  57. package/.llm/chart-legend.llm.md +144 -0
  58. package/.llm/chart-style.llm.md +28 -0
  59. package/.llm/chart-tooltip-content.llm.md +149 -0
  60. package/.llm/chart-tooltip.llm.md +184 -0
  61. package/.llm/checkbox.llm.md +100 -0
  62. package/.llm/cn.llm.md +46 -0
  63. package/.llm/code.llm.md +45 -0
  64. package/.llm/collapsible-content.llm.md +109 -0
  65. package/.llm/collapsible-trigger.llm.md +75 -0
  66. package/.llm/collapsible.llm.md +109 -0
  67. package/.llm/combobox-option.llm.md +53 -0
  68. package/.llm/combobox.llm.md +208 -0
  69. package/.llm/command-dialog.llm.md +112 -0
  70. package/.llm/command-empty.llm.md +63 -0
  71. package/.llm/command-group.llm.md +83 -0
  72. package/.llm/command-input.llm.md +82 -0
  73. package/.llm/command-item.llm.md +97 -0
  74. package/.llm/command-list.llm.md +53 -0
  75. package/.llm/command-loading.llm.md +48 -0
  76. package/.llm/command-separator.llm.md +44 -0
  77. package/.llm/command-shortcut.llm.md +63 -0
  78. package/.llm/command.llm.md +147 -0
  79. package/.llm/container.llm.md +236 -0
  80. package/.llm/context-menu-checkbox-item.llm.md +97 -0
  81. package/.llm/context-menu-content.llm.md +91 -0
  82. package/.llm/context-menu-group.llm.md +61 -0
  83. package/.llm/context-menu-item.llm.md +94 -0
  84. package/.llm/context-menu-label.llm.md +60 -0
  85. package/.llm/context-menu-portal.llm.md +49 -0
  86. package/.llm/context-menu-radio-group.llm.md +66 -0
  87. package/.llm/context-menu-radio-item.llm.md +76 -0
  88. package/.llm/context-menu-separator.llm.md +51 -0
  89. package/.llm/context-menu-shortcut.llm.md +57 -0
  90. package/.llm/context-menu-sub-content.llm.md +90 -0
  91. package/.llm/context-menu-sub-trigger.llm.md +73 -0
  92. package/.llm/context-menu-sub.llm.md +61 -0
  93. package/.llm/context-menu-trigger.llm.md +53 -0
  94. package/.llm/context-menu.llm.md +103 -0
  95. package/.llm/date-picker.llm.md +90 -0
  96. package/.llm/dialog-close.llm.md +61 -0
  97. package/.llm/dialog-content.llm.md +128 -0
  98. package/.llm/dialog-description.llm.md +44 -0
  99. package/.llm/dialog-footer.llm.md +38 -0
  100. package/.llm/dialog-header.llm.md +40 -0
  101. package/.llm/dialog-overlay.llm.md +57 -0
  102. package/.llm/dialog-portal.llm.md +47 -0
  103. package/.llm/dialog-title.llm.md +41 -0
  104. package/.llm/dialog-trigger.llm.md +51 -0
  105. package/.llm/dialog.llm.md +113 -0
  106. package/.llm/drawer-close.llm.md +53 -0
  107. package/.llm/drawer-content.llm.md +58 -0
  108. package/.llm/drawer-description.llm.md +54 -0
  109. package/.llm/drawer-footer.llm.md +67 -0
  110. package/.llm/drawer-header.llm.md +60 -0
  111. package/.llm/drawer-overlay.llm.md +40 -0
  112. package/.llm/drawer-portal.llm.md +42 -0
  113. package/.llm/drawer-title.llm.md +51 -0
  114. package/.llm/drawer-trigger.llm.md +44 -0
  115. package/.llm/drawer.llm.md +194 -0
  116. package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
  117. package/.llm/dropdown-menu-content.llm.md +109 -0
  118. package/.llm/dropdown-menu-group.llm.md +38 -0
  119. package/.llm/dropdown-menu-item.llm.md +94 -0
  120. package/.llm/dropdown-menu-label.llm.md +66 -0
  121. package/.llm/dropdown-menu-portal.llm.md +32 -0
  122. package/.llm/dropdown-menu-radio-group.llm.md +73 -0
  123. package/.llm/dropdown-menu-radio-item.llm.md +92 -0
  124. package/.llm/dropdown-menu-separator.llm.md +55 -0
  125. package/.llm/dropdown-menu-shortcut.llm.md +74 -0
  126. package/.llm/dropdown-menu-sub-content.llm.md +80 -0
  127. package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
  128. package/.llm/dropdown-menu-sub.llm.md +74 -0
  129. package/.llm/dropdown-menu-trigger.llm.md +48 -0
  130. package/.llm/dropdown-menu.llm.md +120 -0
  131. package/.llm/empty-content.llm.md +103 -0
  132. package/.llm/empty-description.llm.md +70 -0
  133. package/.llm/empty-header.llm.md +64 -0
  134. package/.llm/empty-media.llm.md +81 -0
  135. package/.llm/empty-state.llm.md +174 -0
  136. package/.llm/empty-title.llm.md +54 -0
  137. package/.llm/empty.llm.md +158 -0
  138. package/.llm/field-content.llm.md +28 -0
  139. package/.llm/field-description.llm.md +28 -0
  140. package/.llm/field-error.llm.md +41 -0
  141. package/.llm/field-group.llm.md +84 -0
  142. package/.llm/field-label.llm.md +28 -0
  143. package/.llm/field-legend.llm.md +77 -0
  144. package/.llm/field-separator.llm.md +35 -0
  145. package/.llm/field-set.llm.md +80 -0
  146. package/.llm/field-title.llm.md +28 -0
  147. package/.llm/field.llm.md +35 -0
  148. package/.llm/hover-card-content.llm.md +167 -0
  149. package/.llm/hover-card-trigger.llm.md +65 -0
  150. package/.llm/hover-card.llm.md +121 -0
  151. package/.llm/input-group-addon.llm.md +91 -0
  152. package/.llm/input-group-button.llm.md +120 -0
  153. package/.llm/input-group-input.llm.md +145 -0
  154. package/.llm/input-group-text.llm.md +75 -0
  155. package/.llm/input-group-textarea.llm.md +157 -0
  156. package/.llm/input-group.llm.md +108 -0
  157. package/.llm/input.llm.md +319 -0
  158. package/.llm/item-actions.llm.md +77 -0
  159. package/.llm/item-content.llm.md +73 -0
  160. package/.llm/item-description.llm.md +61 -0
  161. package/.llm/item-footer.llm.md +68 -0
  162. package/.llm/item-group.llm.md +73 -0
  163. package/.llm/item-header.llm.md +66 -0
  164. package/.llm/item-media.llm.md +75 -0
  165. package/.llm/item-separator.llm.md +80 -0
  166. package/.llm/item-title.llm.md +59 -0
  167. package/.llm/item.llm.md +115 -0
  168. package/.llm/kbd-group.llm.md +71 -0
  169. package/.llm/kbd.llm.md +71 -0
  170. package/.llm/label.llm.md +145 -0
  171. package/.llm/menubar-checkbox-item.llm.md +66 -0
  172. package/.llm/menubar-content.llm.md +128 -0
  173. package/.llm/menubar-group.llm.md +40 -0
  174. package/.llm/menubar-item.llm.md +62 -0
  175. package/.llm/menubar-label.llm.md +40 -0
  176. package/.llm/menubar-menu.llm.md +32 -0
  177. package/.llm/menubar-portal.llm.md +38 -0
  178. package/.llm/menubar-radio-group.llm.md +39 -0
  179. package/.llm/menubar-radio-item.llm.md +59 -0
  180. package/.llm/menubar-separator.llm.md +35 -0
  181. package/.llm/menubar-shortcut.llm.md +37 -0
  182. package/.llm/menubar-sub-content.llm.md +127 -0
  183. package/.llm/menubar-sub-trigger.llm.md +51 -0
  184. package/.llm/menubar-sub.llm.md +53 -0
  185. package/.llm/menubar-trigger.llm.md +37 -0
  186. package/.llm/menubar.llm.md +115 -0
  187. package/.llm/navigation-menu-content.llm.md +116 -0
  188. package/.llm/navigation-menu-indicator.llm.md +68 -0
  189. package/.llm/navigation-menu-item.llm.md +62 -0
  190. package/.llm/navigation-menu-link.llm.md +109 -0
  191. package/.llm/navigation-menu-list.llm.md +52 -0
  192. package/.llm/navigation-menu-trigger-style.llm.md +22 -0
  193. package/.llm/navigation-menu-trigger.llm.md +57 -0
  194. package/.llm/navigation-menu-viewport.llm.md +51 -0
  195. package/.llm/navigation-menu.llm.md +184 -0
  196. package/.llm/overline.llm.md +51 -0
  197. package/.llm/page-title.llm.md +52 -0
  198. package/.llm/pagination-content.llm.md +60 -0
  199. package/.llm/pagination-ellipsis.llm.md +107 -0
  200. package/.llm/pagination-item.llm.md +59 -0
  201. package/.llm/pagination-link.llm.md +150 -0
  202. package/.llm/pagination-next.llm.md +115 -0
  203. package/.llm/pagination-previous.llm.md +115 -0
  204. package/.llm/pagination.llm.md +190 -0
  205. package/.llm/popover-anchor.llm.md +53 -0
  206. package/.llm/popover-content.llm.md +109 -0
  207. package/.llm/popover-trigger.llm.md +54 -0
  208. package/.llm/popover.llm.md +116 -0
  209. package/.llm/progress.llm.md +76 -0
  210. package/.llm/radio-group-indicator.llm.md +28 -0
  211. package/.llm/radio-group-item.llm.md +40 -0
  212. package/.llm/radio-group.llm.md +76 -0
  213. package/.llm/resizable-handle.llm.md +156 -0
  214. package/.llm/resizable-panel-group.llm.md +149 -0
  215. package/.llm/resizable-panel.llm.md +157 -0
  216. package/.llm/scroll-area-corner.llm.md +41 -0
  217. package/.llm/scroll-area-thumb.llm.md +39 -0
  218. package/.llm/scroll-area-viewport.llm.md +60 -0
  219. package/.llm/scroll-area.llm.md +125 -0
  220. package/.llm/scroll-bar.llm.md +78 -0
  221. package/.llm/sdk-items-registry.json +2984 -0
  222. package/.llm/section-title.llm.md +48 -0
  223. package/.llm/select-content.llm.md +139 -0
  224. package/.llm/select-group.llm.md +60 -0
  225. package/.llm/select-item.llm.md +75 -0
  226. package/.llm/select-label.llm.md +62 -0
  227. package/.llm/select-scroll-down-button.llm.md +45 -0
  228. package/.llm/select-scroll-up-button.llm.md +45 -0
  229. package/.llm/select-separator.llm.md +59 -0
  230. package/.llm/select-trigger.llm.md +66 -0
  231. package/.llm/select-value.llm.md +67 -0
  232. package/.llm/select.llm.md +159 -0
  233. package/.llm/separator.llm.md +129 -0
  234. package/.llm/sheet-close.llm.md +49 -0
  235. package/.llm/sheet-content.llm.md +115 -0
  236. package/.llm/sheet-description.llm.md +62 -0
  237. package/.llm/sheet-footer.llm.md +64 -0
  238. package/.llm/sheet-header.llm.md +52 -0
  239. package/.llm/sheet-title.llm.md +53 -0
  240. package/.llm/sheet-trigger.llm.md +46 -0
  241. package/.llm/sheet.llm.md +126 -0
  242. package/.llm/sidebar-content.llm.md +63 -0
  243. package/.llm/sidebar-footer.llm.md +50 -0
  244. package/.llm/sidebar-group-action.llm.md +60 -0
  245. package/.llm/sidebar-group-content.llm.md +64 -0
  246. package/.llm/sidebar-group-label.llm.md +53 -0
  247. package/.llm/sidebar-group.llm.md +56 -0
  248. package/.llm/sidebar-header.llm.md +67 -0
  249. package/.llm/sidebar-input.llm.md +50 -0
  250. package/.llm/sidebar-inset.llm.md +52 -0
  251. package/.llm/sidebar-menu-action.llm.md +84 -0
  252. package/.llm/sidebar-menu-badge.llm.md +60 -0
  253. package/.llm/sidebar-menu-button.llm.md +103 -0
  254. package/.llm/sidebar-menu-item.llm.md +75 -0
  255. package/.llm/sidebar-menu-skeleton.llm.md +76 -0
  256. package/.llm/sidebar-menu-sub-button.llm.md +85 -0
  257. package/.llm/sidebar-menu-sub-item.llm.md +54 -0
  258. package/.llm/sidebar-menu-sub.llm.md +74 -0
  259. package/.llm/sidebar-menu.llm.md +65 -0
  260. package/.llm/sidebar-provider.llm.md +79 -0
  261. package/.llm/sidebar-rail.llm.md +34 -0
  262. package/.llm/sidebar-separator.llm.md +57 -0
  263. package/.llm/sidebar-trigger.llm.md +49 -0
  264. package/.llm/sidebar.llm.md +129 -0
  265. package/.llm/skeleton.llm.md +134 -0
  266. package/.llm/slider.llm.md +173 -0
  267. package/.llm/spinner.llm.md +182 -0
  268. package/.llm/stack.llm.md +28 -0
  269. package/.llm/subsection-title.llm.md +46 -0
  270. package/.llm/switch.llm.md +76 -0
  271. package/.llm/table-body.llm.md +36 -0
  272. package/.llm/table-caption.llm.md +48 -0
  273. package/.llm/table-cell.llm.md +53 -0
  274. package/.llm/table-footer.llm.md +41 -0
  275. package/.llm/table-head.llm.md +69 -0
  276. package/.llm/table-header.llm.md +41 -0
  277. package/.llm/table-row.llm.md +42 -0
  278. package/.llm/table.llm.md +123 -0
  279. package/.llm/tabs-content.llm.md +47 -0
  280. package/.llm/tabs-list.llm.md +41 -0
  281. package/.llm/tabs-trigger.llm.md +47 -0
  282. package/.llm/tabs.llm.md +71 -0
  283. package/.llm/text-field.llm.md +327 -0
  284. package/.llm/textarea.llm.md +311 -0
  285. package/.llm/theme-preference.llm.md +25 -0
  286. package/.llm/theme-toggle.llm.md +57 -0
  287. package/.llm/theme.llm.md +14 -0
  288. package/.llm/toaster.llm.md +193 -0
  289. package/.llm/toggle-group-item.llm.md +59 -0
  290. package/.llm/toggle-group.llm.md +101 -0
  291. package/.llm/toggle.llm.md +40 -0
  292. package/.llm/tooltip-content.llm.md +185 -0
  293. package/.llm/tooltip-provider.llm.md +68 -0
  294. package/.llm/tooltip-trigger.llm.md +70 -0
  295. package/.llm/tooltip.llm.md +129 -0
  296. package/.llm/use-carousel.llm.md +55 -0
  297. package/.llm/use-command-state.llm.md +32 -0
  298. package/.llm/use-is-mobile.llm.md +73 -0
  299. package/.llm/use-sidebar.llm.md +61 -0
  300. package/dist/components/ui/scroll-area.d.ts +5 -5
  301. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  302. package/dist/components/ui/stack.d.ts.map +1 -1
  303. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -1
  304. package/dist/components/ui/stories/typography.stories.d.ts +8 -108
  305. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
  306. package/dist/components/ui/theme-toggle.d.ts +0 -3
  307. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  308. package/dist/components/ui/theme.d.ts.map +1 -1
  309. package/dist/components/ui/typography.d.ts +211 -474
  310. package/dist/components/ui/typography.d.ts.map +1 -1
  311. package/dist/index.js +5160 -9875
  312. package/dist/index.js.map +1 -1
  313. package/dist/tsconfig.tsbuildinfo +1 -1
  314. package/package.json +2 -2
  315. package/src/components/ui/stack.tsx +3 -1
  316. package/src/components/ui/stories/typography.stories.tsx +261 -1512
  317. package/src/components/ui/theme-toggle.tsx +1 -3
  318. package/src/components/ui/theme.tsx +6 -1
  319. package/src/components/ui/typography.tsx +416 -1136
  320. package/src/styles/globals.css +57 -106
@@ -1,22 +1,16 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react-vite";
2
2
  import {
3
- Typography,
4
- H1,
5
- H2,
6
- H3,
7
- H4,
8
- H5,
9
- H6,
10
- P,
11
- A,
12
- Span,
3
+ PageTitle,
4
+ SectionTitle,
5
+ SubsectionTitle,
6
+ BodyText,
7
+ BodyTextLarge,
8
+ BodyTextSmall,
9
+ Caption,
10
+ Overline,
13
11
  Code,
14
- Small,
15
- Strong,
16
- Lead,
17
12
  Blockquote,
18
13
  } from "../typography";
19
- import { Label } from "../label";
20
14
  import {
21
15
  Card,
22
16
  CardContent,
@@ -28,277 +22,124 @@ import {
28
22
  /**
29
23
  * Typography component stories for design system documentation
30
24
  *
31
- * This story file demonstrates the Typography component's capabilities through three focused stories:
32
- * - Interactive: Playground for testing all props and variants
33
- * - Variants: Systematic showcase of all available typography variants
34
- * - InContext: Real-world usage examples for business and design teams
25
+ * This story file demonstrates purpose-named typography components following 2025 best practices.
26
+ * Components are Tailwind-first with semantic HTML defaults and zero abstraction.
35
27
  */
36
28
  const meta = {
37
29
  title: "Typography/Typography",
38
- component: Typography,
30
+ component: PageTitle,
39
31
  parameters: {
40
32
  layout: "centered",
41
33
  docs: {
42
34
  description: {
43
35
  component:
44
- "A comprehensive typography component providing consistent text styling across the application. Built with semantic HTML elements, accessibility features, and flexible styling options using design system tokens.",
36
+ "Purpose-named typography components with Tailwind-first styling. Each component has sensible defaults that can be fully overridden via className prop. No magic props or variants - what you see is what you get.",
45
37
  },
46
38
  },
47
39
  },
48
- argTypes: {
49
- variant: {
50
- control: { type: "select" },
51
- options: [
52
- "microcopy",
53
- "detail",
54
- "body",
55
- "blogBody",
56
- "paragraphLead",
57
- "eyebrow",
58
- "subHeadline",
59
- "headline",
60
- "sectionTitle",
61
- "pageTitle",
62
- "displayTitle",
63
- "heroTitle",
64
- "code",
65
- ],
66
- description:
67
- "Typography variant for semantic styling and visual hierarchy",
68
- },
69
- color: {
70
- control: { type: "select" },
71
- options: [
72
- "default",
73
- "muted",
74
- "faint",
75
- "accent",
76
- "destructive",
77
- "success",
78
- "warning",
79
- ],
80
- description: "Color variant for different semantic meanings",
81
- },
82
- align: {
83
- control: { type: "select" },
84
- options: ["left", "center", "right", "justify"],
85
- description: "Text alignment",
86
- },
87
- transform: {
88
- control: { type: "select" },
89
- options: ["none", "uppercase", "lowercase", "capitalize"],
90
- description: "Text transformation",
91
- },
92
- weight: {
93
- control: { type: "select" },
94
- options: ["normal", "medium", "semibold", "bold"],
95
- description: "Font weight override",
96
- },
97
- as: {
98
- control: { type: "select" },
99
- options: [
100
- "p",
101
- "span",
102
- "div",
103
- "h1",
104
- "h2",
105
- "h3",
106
- "h4",
107
- "h5",
108
- "h6",
109
- "code",
110
- "pre",
111
- "blockquote",
112
- ],
113
- description: "HTML element to render as",
114
- },
115
- asChild: {
116
- control: { type: "boolean" },
117
- description: "Render as Slot for composition",
118
- },
119
- italic: {
120
- control: { type: "boolean" },
121
- description: "Apply italic styling",
122
- },
123
- underline: {
124
- control: { type: "boolean" },
125
- description: "Apply underline styling",
126
- },
127
- strikethrough: {
128
- control: { type: "boolean" },
129
- description: "Apply strikethrough styling",
130
- },
131
- truncate: {
132
- control: { type: "boolean" },
133
- description: "Apply text truncation with ellipsis",
134
- },
135
- srOnly: {
136
- control: { type: "boolean" },
137
- description: "Hide visually but keep accessible to screen readers",
138
- },
139
- children: {
140
- control: { type: "text" },
141
- description: "Text content to render",
142
- },
143
- },
144
- } satisfies Meta<typeof Typography>;
40
+ } satisfies Meta<typeof PageTitle>;
145
41
 
146
42
  export default meta;
147
43
  type Story = StoryObj<typeof meta>;
148
44
 
149
45
  /**
150
- * Interactive playground for testing all Typography component features.
151
- * Use controls to experiment with different combinations of props.
46
+ * Interactive playground for testing Typography components.
152
47
  */
153
48
  export const Interactive: Story = {
154
- args: {
155
- variant: "body",
156
- color: "default",
157
- align: "left",
158
- transform: null,
159
- children: "The quick brown fox jumps over the lazy dog.",
160
- as: "p",
161
- asChild: false,
162
- italic: false,
163
- underline: false,
164
- strikethrough: false,
165
- truncate: false,
166
- srOnly: false,
167
- },
49
+ render: () => (
50
+ <div className="space-y-4 max-w-2xl">
51
+ <PageTitle>Interactive Typography Playground</PageTitle>
52
+ <BodyText className="text-muted-foreground">
53
+ Experiment with different typography components using the controls
54
+ panel.
55
+ </BodyText>
56
+ </div>
57
+ ),
168
58
  };
169
59
 
170
60
  /**
171
- * Systematic showcase of all typography variants with consistent content.
172
- * Demonstrates the visual hierarchy and size relationships between variants.
61
+ * Systematic showcase of all typography components.
62
+ * Demonstrates the visual hierarchy and appropriate sizing for web applications.
173
63
  */
174
- export const Variants: Story = {
64
+ export const AllComponents: Story = {
175
65
  render: () => (
176
- <div className="space-y-4 max-w-4xl">
177
- <div className="space-y-2">
178
- <Typography variant="microcopy" color="muted" as="span">
179
- Typography Variants
180
- </Typography>
181
- <div className="grid gap-4">
182
- <div className="space-y-1">
183
- <Typography variant="heroTitle" as="h1">
184
- Hero Title - Largest display text for landing pages
185
- </Typography>
186
- <Typography variant="detail" color="muted">
187
- Largest display variant
188
- </Typography>
189
- </div>
190
-
191
- <div className="space-y-1">
192
- <Typography variant="displayTitle" as="h1">
193
- Display Title - Large display text for important headings
194
- </Typography>
195
- <Typography variant="detail" color="muted">
196
- Large display variant
197
- </Typography>
198
- </div>
199
-
200
- <div className="space-y-1">
201
- <Typography variant="pageTitle" as="h1">
202
- Page Title - Main page titles
203
- </Typography>
204
- <Typography variant="detail" color="muted">
205
- Primary heading variant
206
- </Typography>
66
+ <div className="space-y-8 max-w-4xl">
67
+ {/* Headings */}
68
+ <div className="space-y-4">
69
+ <Overline>Headings</Overline>
70
+ <div className="space-y-3 pl-4 border-l-2 border-border">
71
+ <div>
72
+ <PageTitle>PageTitle (30px)</PageTitle>
73
+ <Caption className="block mt-1">Main page heading - text-3xl font-bold leading-tight tracking-wide</Caption>
207
74
  </div>
208
-
209
- <div className="space-y-1">
210
- <Typography variant="sectionTitle" as="h2">
211
- Section Title - Section headings within pages
212
- </Typography>
213
- <Typography variant="detail" color="muted">
214
- Section heading variant
215
- </Typography>
75
+ <div>
76
+ <SectionTitle>SectionTitle (24px)</SectionTitle>
77
+ <Caption className="block mt-1">Section headings - text-2xl font-semibold leading-tight tracking-wide</Caption>
216
78
  </div>
217
-
218
- <div className="space-y-1">
219
- <Typography variant="headline" as="h3">
220
- Headline - Article and content headlines
221
- </Typography>
222
- <Typography variant="detail" color="muted">
223
- Content headline variant
224
- </Typography>
225
- </div>
226
-
227
- <div className="space-y-1">
228
- <Typography variant="subHeadline" as="h4">
229
- Sub Headline - Secondary headlines and subheadings
230
- </Typography>
231
- <Typography variant="detail" color="muted">
232
- Secondary headline variant
233
- </Typography>
79
+ <div>
80
+ <SubsectionTitle>SubsectionTitle (20px)</SubsectionTitle>
81
+ <Caption className="block mt-1">Subsection headings - text-xl font-semibold leading-snug tracking-wide</Caption>
234
82
  </div>
83
+ </div>
84
+ </div>
235
85
 
236
- <div className="space-y-1">
237
- <Typography variant="eyebrow" as="div">
238
- Eyebrow - Small labels above headings
239
- </Typography>
240
- <Typography variant="detail" color="muted">
241
- Small label variant
242
- </Typography>
86
+ {/* Body Text */}
87
+ <div className="space-y-4">
88
+ <Overline>Body Text</Overline>
89
+ <div className="space-y-3 pl-4 border-l-2 border-border">
90
+ <div>
91
+ <BodyTextLarge>
92
+ BodyTextLarge (18px) - Larger body text for lead paragraphs and
93
+ emphasized content.
94
+ </BodyTextLarge>
95
+ <Caption className="block mt-1">text-lg leading-relaxed tracking-wide</Caption>
243
96
  </div>
244
-
245
- <div className="space-y-1">
246
- <Typography variant="paragraphLead">
247
- Paragraph Lead - Opening paragraph text that introduces content
248
- with emphasis.
249
- </Typography>
250
- <Typography variant="detail" color="muted">
251
- Lead paragraph variant
252
- </Typography>
97
+ <div>
98
+ <BodyText>
99
+ BodyText (16px) - Standard paragraph text for readable body
100
+ content with optimal line height.
101
+ </BodyText>
102
+ <Caption className="block mt-1">text-base leading-relaxed tracking-wide</Caption>
253
103
  </div>
254
-
255
- <div className="space-y-1">
256
- <Typography variant="blogBody">
257
- Blog Body - Body text for blog posts and articles with optimized
258
- reading experience.
259
- </Typography>
260
- <Typography variant="detail" color="muted">
261
- Blog content variant
262
- </Typography>
104
+ <div>
105
+ <BodyTextSmall>
106
+ BodyTextSmall (14px) - Smaller body text for less prominent
107
+ content.
108
+ </BodyTextSmall>
109
+ <Caption className="block mt-1">text-sm leading-normal tracking-wide</Caption>
263
110
  </div>
111
+ </div>
112
+ </div>
264
113
 
265
- <div className="space-y-1">
266
- <Typography variant="body">
267
- Body - Standard body text for content and paragraphs. This is the
268
- default variant for most content.
269
- </Typography>
270
- <Typography variant="detail" color="muted">
271
- Standard body variant
272
- </Typography>
114
+ {/* Supporting Text */}
115
+ <div className="space-y-4">
116
+ <Overline>Supporting Components</Overline>
117
+ <div className="space-y-3 pl-4 border-l-2 border-border">
118
+ <div>
119
+ <Caption>Caption - Metadata, timestamps, supplementary info</Caption>
120
+ <Caption className="block mt-1">
121
+ text-sm text-muted-foreground leading-normal tracking-wide
122
+ </Caption>
273
123
  </div>
274
-
275
- <div className="space-y-1">
276
- <Typography variant="detail">
277
- Detail - Smaller text for details, descriptions, and secondary
278
- information.
279
- </Typography>
280
- <Typography variant="detail" color="muted">
281
- Detail text variant
282
- </Typography>
124
+ <div>
125
+ <Overline>Overline Text</Overline>
126
+ <Caption className="block mt-1">
127
+ Category tags and eyebrow labels - text-xs uppercase tracking-wider
128
+ </Caption>
283
129
  </div>
284
-
285
- <div className="space-y-1">
286
- <Typography variant="code" as="code">
287
- const codeExample = &quot;Code text for snippets and technical
288
- content&quot;;
289
- </Typography>
290
- <Typography variant="detail" color="muted">
291
- Monospace code variant
292
- </Typography>
130
+ <div>
131
+ <Code>const code = "Inline code snippets";</Code>
132
+ <Caption className="block mt-1">
133
+ font-mono text-sm bg-muted px-1 rounded
134
+ </Caption>
293
135
  </div>
294
-
295
- <div className="space-y-1">
296
- <Typography variant="microcopy">
297
- Microcopy - Very small text for captions and fine print
298
- </Typography>
299
- <Typography variant="detail" color="muted">
300
- Smallest text variant
301
- </Typography>
136
+ <div>
137
+ <Blockquote>
138
+ "Blockquote component for quoted text and testimonials."
139
+ </Blockquote>
140
+ <Caption className="block mt-1">
141
+ border-l-4 border-border pl-4 italic tracking-wide
142
+ </Caption>
302
143
  </div>
303
144
  </div>
304
145
  </div>
@@ -308,149 +149,102 @@ export const Variants: Story = {
308
149
 
309
150
  /**
310
151
  * Real-world usage examples demonstrating Typography in practical scenarios.
311
- * Shows how to combine variants with semantic HTML and accessibility features.
312
152
  */
313
153
  export const InContext: Story = {
314
154
  render: () => (
315
155
  <div className="space-y-8 max-w-4xl">
316
156
  {/* Article Layout */}
317
157
  <article className="space-y-4">
318
- <Typography variant="pageTitle" as="h1">
319
- Building Better Typography Systems
320
- </Typography>
321
- <Typography variant="subHeadline" as="h2" color="muted">
322
- A comprehensive guide to design system typography
323
- </Typography>
324
- <Typography variant="body">
158
+ <PageTitle>Building Better Typography Systems</PageTitle>
159
+ <BodyTextLarge className="text-muted-foreground">
160
+ A comprehensive guide to modern web application typography
161
+ </BodyTextLarge>
162
+ <BodyText>
325
163
  Typography is one of the most critical aspects of any design system.
326
164
  It provides visual hierarchy, improves readability, and helps users
327
165
  navigate content effectively. A well-designed typography system
328
- ensures consistency across all touchpoints while maintaining
329
- flexibility for different use cases.
330
- </Typography>
331
- <Typography variant="paragraphLead">
332
- Key principles include establishing clear hierarchy, ensuring
333
- accessibility, and maintaining consistency across all platforms and
334
- devices.
335
- </Typography>
336
- <Typography variant="detail" color="muted">
337
- Published on March 15, 2024 • 5 min read
338
- </Typography>
166
+ ensures consistency across all touchpoints.
167
+ </BodyText>
168
+ <Caption>Published on March 15, 2024 • 5 min read</Caption>
339
169
  </article>
340
170
 
341
- {/* Form Example */}
171
+ {/* Card Example */}
342
172
  <Card>
343
173
  <CardHeader>
344
- <CardTitle>Contact Information</CardTitle>
174
+ <CardTitle>Project Details</CardTitle>
345
175
  <CardDescription>
346
- Example form using Typography components for labels and help text
176
+ Example card showing typography in a structured layout
347
177
  </CardDescription>
348
178
  </CardHeader>
349
- <CardContent>
350
- <div className="space-y-3">
351
- <div className="space-y-1">
352
- <Typography variant="body" as="label" htmlFor="email">
353
- Email Address
354
- </Typography>
355
- <input
356
- id="email"
357
- type="email"
358
- className="w-full px-3 py-2 border rounded-md"
359
- placeholder="Enter your email"
360
- />
361
- <Typography variant="detail" color="muted">
362
- We&apos;ll never share your email with third parties
363
- </Typography>
364
- </div>
179
+ <CardContent className="space-y-4">
180
+ <div className="space-y-2">
181
+ <SectionTitle as="h3">Overview</SectionTitle>
182
+ <BodyText>
183
+ This project demonstrates modern typography patterns using
184
+ purpose-named components.
185
+ </BodyText>
186
+ </div>
187
+ <div className="space-y-2">
188
+ <SubsectionTitle>Technical Details</SubsectionTitle>
189
+ <BodyText>
190
+ Built with <Code>@neynar/ui</Code> components and Tailwind CSS.
191
+ All styling is transparent and overridable.
192
+ </BodyText>
365
193
  </div>
194
+ <Caption>Last updated 2 hours ago</Caption>
366
195
  </CardContent>
367
196
  </Card>
368
197
 
369
- {/* Data Table */}
198
+ {/* Status Table */}
370
199
  <div className="space-y-4">
371
- <Typography variant="sectionTitle" as="h3">
372
- Project Status
373
- </Typography>
374
- <table className="w-full border-collapse border border-border">
375
- <thead>
376
- <tr className="bg-muted/50">
377
- <Typography
378
- variant="body"
379
- as="th"
380
- className="border border-border px-4 py-2 text-left"
381
- weight="semibold"
382
- >
383
- Project Name
384
- </Typography>
385
- <Typography
386
- variant="body"
387
- as="th"
388
- className="border border-border px-4 py-2 text-left"
389
- weight="semibold"
390
- >
391
- Status
392
- </Typography>
393
- <Typography
394
- variant="body"
395
- as="th"
396
- className="border border-border px-4 py-2 text-left"
397
- weight="semibold"
398
- >
399
- Due Date
400
- </Typography>
401
- </tr>
402
- </thead>
403
- <tbody>
404
- <tr>
405
- <Typography
406
- variant="body"
407
- as="td"
408
- className="border border-border px-4 py-2"
409
- >
410
- Design System v2.0
411
- </Typography>
412
- <Typography
413
- variant="body"
414
- as="td"
415
- className="border border-border px-4 py-2"
416
- color="success"
417
- >
418
- Complete
419
- </Typography>
420
- <Typography
421
- variant="body"
422
- as="td"
423
- className="border border-border px-4 py-2"
424
- >
425
- March 1, 2024
426
- </Typography>
427
- </tr>
428
- <tr>
429
- <Typography
430
- variant="body"
431
- as="td"
432
- className="border border-border px-4 py-2"
433
- >
434
- Mobile App Redesign
435
- </Typography>
436
- <Typography
437
- variant="body"
438
- as="td"
439
- className="border border-border px-4 py-2"
440
- color="warning"
441
- >
442
- In Progress
443
- </Typography>
444
- <Typography
445
- variant="body"
446
- as="td"
447
- className="border border-border px-4 py-2"
448
- >
449
- April 15, 2024
450
- </Typography>
451
- </tr>
452
- </tbody>
453
- </table>
200
+ <SectionTitle>Project Status</SectionTitle>
201
+ <div className="border rounded-lg overflow-hidden">
202
+ <table className="w-full">
203
+ <thead className="bg-muted/50">
204
+ <tr>
205
+ <th className="px-4 py-3 text-left">
206
+ <BodyText as="span" className="font-semibold">
207
+ Project
208
+ </BodyText>
209
+ </th>
210
+ <th className="px-4 py-3 text-left">
211
+ <BodyText as="span" className="font-semibold">
212
+ Status
213
+ </BodyText>
214
+ </th>
215
+ <th className="px-4 py-3 text-left">
216
+ <BodyText as="span" className="font-semibold">
217
+ Due Date
218
+ </BodyText>
219
+ </th>
220
+ </tr>
221
+ </thead>
222
+ <tbody>
223
+ <tr className="border-t">
224
+ <td className="px-4 py-3">
225
+ <BodyText>Design System v2.0</BodyText>
226
+ </td>
227
+ <td className="px-4 py-3">
228
+ <BodyText className="text-success">Complete</BodyText>
229
+ </td>
230
+ <td className="px-4 py-3">
231
+ <BodyText>March 1, 2025</BodyText>
232
+ </td>
233
+ </tr>
234
+ <tr className="border-t">
235
+ <td className="px-4 py-3">
236
+ <BodyText>Mobile App Redesign</BodyText>
237
+ </td>
238
+ <td className="px-4 py-3">
239
+ <BodyText className="text-warning">In Progress</BodyText>
240
+ </td>
241
+ <td className="px-4 py-3">
242
+ <BodyText>April 15, 2025</BodyText>
243
+ </td>
244
+ </tr>
245
+ </tbody>
246
+ </table>
247
+ </div>
454
248
  </div>
455
249
 
456
250
  {/* Code Block */}
@@ -458,1175 +252,130 @@ export const InContext: Story = {
458
252
  <CardHeader>
459
253
  <CardTitle>Code Example</CardTitle>
460
254
  <CardDescription>
461
- Example showing semantic HTML with Typography variants
255
+ Demonstrating typography component usage
462
256
  </CardDescription>
463
257
  </CardHeader>
464
258
  <CardContent>
465
- <Typography
466
- variant="code"
467
- as="pre"
468
- className="bg-muted p-4 rounded-md overflow-x-auto"
469
- >
470
- {`// Typography component usage
471
- <Typography variant="heading" as="h1">
472
- Page Title
473
- </Typography>
259
+ <pre className="bg-muted p-4 rounded-md overflow-x-auto">
260
+ <code className="font-mono text-sm">
261
+ {`// Typography component usage
262
+ <PageTitle>Dashboard</PageTitle>
474
263
 
475
- <Typography variant="body" color="muted">
476
- Supporting text content
477
- </Typography>`}
478
- </Typography>
479
- </CardContent>
480
- </Card>
264
+ <SectionTitle>Recent Activity</SectionTitle>
481
265
 
482
- {/* Accessibility Features */}
483
- <Card>
484
- <CardHeader>
485
- <CardTitle>Accessibility Features</CardTitle>
486
- <CardDescription>
487
- Demonstrating accessibility features of the Typography component
488
- </CardDescription>
489
- </CardHeader>
490
- <CardContent className="space-y-4">
491
- <ul className="space-y-2">
492
- <li>
493
- <Typography variant="body">
494
- • Semantic HTML elements for proper document structure
495
- </Typography>
496
- </li>
497
- <li>
498
- <Typography variant="body">
499
- • Color contrast ratios meeting WCAG 2.1 AA standards
500
- </Typography>
501
- </li>
502
- <li>
503
- <Typography variant="body">
504
- • Screen reader support with proper labeling
505
- </Typography>
506
- </li>
507
- </ul>
508
- <Typography variant="detail" srOnly>
509
- This text is hidden visually but available to screen readers
510
- </Typography>
511
- <Typography variant="detail" color="muted">
512
- Note: The line above contains screen reader only content
513
- </Typography>
266
+ <BodyText>
267
+ Standard body text with optimal readability.
268
+ </BodyText>
269
+
270
+ <Caption>Last updated 5 minutes ago</Caption>`}
271
+ </code>
272
+ </pre>
514
273
  </CardContent>
515
274
  </Card>
516
275
 
517
- {/* Color Variants */}
276
+ {/* Customization Examples */}
518
277
  <div className="space-y-4">
519
- <Typography variant="sectionTitle" as="h3">
520
- Color Variants
521
- </Typography>
522
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
523
- <Typography variant="body" color="default">
524
- Default color for standard content
525
- </Typography>
526
- <Typography variant="body" color="muted">
527
- Muted color for secondary information
528
- </Typography>
529
- <Typography variant="body" color="faint">
530
- Faint color for tertiary information
531
- </Typography>
532
- <Typography variant="body" color="accent">
533
- Accent color for emphasis
534
- </Typography>
535
- <Typography variant="body" color="destructive">
536
- Destructive color for errors and warnings
537
- </Typography>
538
- <Typography variant="body" color="success">
539
- Success color for positive states
540
- </Typography>
541
- <Typography variant="body" color="warning">
542
- Warning color for caution states
543
- </Typography>
544
- </div>
545
- </div>
546
-
547
- {/* Text Styling Options */}
548
- <div className="space-y-4">
549
- <Typography variant="sectionTitle" as="h3">
550
- Text Styling Options
551
- </Typography>
552
- <div className="space-y-2">
553
- <Typography variant="body" italic>
554
- Italic text for emphasis and quotes
555
- </Typography>
556
- <Typography variant="body" underline>
557
- Underlined text for links and emphasis
558
- </Typography>
559
- <Typography variant="body" strikethrough>
560
- Strikethrough text for corrections and deletions
561
- </Typography>
562
- <Typography variant="body" transform="uppercase">
563
- Uppercase text for labels and headings
564
- </Typography>
565
- <Typography variant="body" weight="bold">
566
- Bold text for strong emphasis
567
- </Typography>
568
- <div className="max-w-xs">
569
- <Typography variant="body" truncate>
570
- This is a very long text that will be truncated with ellipsis when
571
- it exceeds the container width
572
- </Typography>
278
+ <SectionTitle>Tailwind Customization</SectionTitle>
279
+ <div className="space-y-3">
280
+ <div>
281
+ <Overline>Custom Colors</Overline>
282
+ <BodyText className="text-accent-foreground">
283
+ Accent colored body text
284
+ </BodyText>
285
+ <BodyText className="text-destructive">Error message text</BodyText>
286
+ <BodyText className="text-success">Success message text</BodyText>
573
287
  </div>
574
- </div>
575
- </div>
576
- </div>
577
- ),
578
- };
579
-
580
- /**
581
- * Showcase of individual semantic typography components for better TypeScript support.
582
- * Demonstrates the recommended approach using semantic components vs generic Typography.
583
- */
584
- export const SemanticComponents: Story = {
585
- render: () => (
586
- <div className="space-y-8 max-w-4xl">
587
- <div className="space-y-2">
588
- <Typography variant="microcopy" color="muted" as="span">
589
- Semantic Typography Components
590
- </Typography>
591
- <Typography variant="body" color="muted">
592
- Individual semantic components provide better TypeScript support and
593
- developer experience.
594
- </Typography>
595
- </div>
596
-
597
- {/* Headings */}
598
- <div className="space-y-4">
599
- <Typography variant="sectionTitle" as="h3">
600
- Heading Components
601
- </Typography>
602
- <div className="space-y-3 pl-4 border-l-2 border-border">
603
- <H1>H1 - Main page title (20px)</H1>
604
- <H2>H2 - Section heading (17px)</H2>
605
- <H3>H3 - Subsection heading (17px)</H3>
606
- <H4>H4 - Minor heading (14px emphasized)</H4>
607
- <H5>H5 - Small heading (14px emphasized)</H5>
608
- <H6>H6 - Smallest heading (12px)</H6>
609
- </div>
610
- </div>
611
-
612
- {/* Text Components */}
613
- <div className="space-y-4">
614
- <Typography variant="sectionTitle" as="h3">
615
- Text Components
616
- </Typography>
617
- <div className="space-y-3 pl-4 border-l-2 border-border">
618
- <P>P - Standard paragraph text for body content and descriptions.</P>
619
- <P>
620
- Inline text with{" "}
621
- <Span color="accent">highlighted span content</Span> and
622
- <Strong> emphasized strong text</Strong> for better readability.
623
- </P>
624
- <Lead>
625
- Lead - Introductory text that stands out from regular paragraphs.
626
- </Lead>
627
- <Small>Small - Fine print and microcopy text (10px)</Small>
628
- </div>
629
- </div>
630
-
631
- {/* Code and Technical */}
632
- <div className="space-y-4">
633
- <Typography variant="sectionTitle" as="h3">
634
- Code and Technical
635
- </Typography>
636
- <div className="space-y-3 pl-4 border-l-2 border-border">
637
- <P>
638
- Use the <Code>useState</Code> hook to manage component state.
639
- </P>
640
- <Code>const [count, setCount] = useState(0);</Code>
641
- </div>
642
- </div>
643
-
644
- {/* Form Elements */}
645
- <div className="space-y-4">
646
- <Typography variant="sectionTitle" as="h3">
647
- Form Elements
648
- </Typography>
649
- <div className="space-y-3 pl-4 border-l-2 border-border">
650
- <div className="space-y-1">
651
- <Label htmlFor="example-input">Email Address</Label>
652
- <input
653
- id="example-input"
654
- type="email"
655
- className="w-full px-3 py-2 border rounded-md"
656
- placeholder="Enter your email"
657
- />
658
- <Small color="muted">
659
- We&apos;ll never share your email with third parties
660
- </Small>
288
+ <div>
289
+ <Overline>Custom Weights</Overline>
290
+ <BodyText className="font-medium">Medium weight text</BodyText>
291
+ <BodyText className="font-bold">Bold body text</BodyText>
292
+ </div>
293
+ <div>
294
+ <Overline>Responsive Typography</Overline>
295
+ <PageTitle className="text-2xl md:text-3xl lg:text-4xl">
296
+ Responsive Heading
297
+ </PageTitle>
661
298
  </div>
662
299
  </div>
663
300
  </div>
664
301
 
665
- {/* Links and Navigation */}
666
- <div className="space-y-4">
667
- <Typography variant="sectionTitle" as="h3">
668
- Links and Navigation
669
- </Typography>
670
- <div className="space-y-3 pl-4 border-l-2 border-border">
671
- <P>
672
- Standard link with href:{" "}
673
- <A href="https://example.com">External link</A>
674
- </P>
675
- <P>
676
- Link with custom styling:{" "}
677
- <A href="/about" color="accent">
678
- Internal link
679
- </A>
680
- </P>
681
- <P>
682
- Composition pattern:{" "}
683
- <A asChild>
684
- <span role="button" tabIndex={0}>
685
- Custom component
686
- </span>
687
- </A>
688
- </P>
689
- </div>
690
- </div>
691
-
692
- {/* Quoted Content */}
693
- <div className="space-y-4">
694
- <Typography variant="sectionTitle" as="h3">
695
- Quoted Content
696
- </Typography>
697
- <div className="pl-4 border-l-2 border-border">
698
- <Blockquote>
699
- &quot;The best way to predict the future is to invent it.&quot; -
700
- Alan Kay
701
- </Blockquote>
702
- </div>
703
- </div>
704
-
705
- {/* Comparison Table */}
302
+ {/* Quote Example */}
706
303
  <div className="space-y-4">
707
- <Typography variant="sectionTitle" as="h3">
708
- Generic vs Semantic Approach
709
- </Typography>
710
- <div className="overflow-x-auto">
711
- <table className="w-full border-collapse border border-border">
712
- <thead>
713
- <tr className="bg-muted/50">
714
- <Typography
715
- variant="body"
716
- as="th"
717
- className="border border-border px-4 py-2 text-left"
718
- weight="semibold"
719
- >
720
- Approach
721
- </Typography>
722
- <Typography
723
- variant="body"
724
- as="th"
725
- className="border border-border px-4 py-2 text-left"
726
- weight="semibold"
727
- >
728
- Code Example
729
- </Typography>
730
- <Typography
731
- variant="body"
732
- as="th"
733
- className="border border-border px-4 py-2 text-left"
734
- weight="semibold"
735
- >
736
- Benefits
737
- </Typography>
738
- </tr>
739
- </thead>
740
- <tbody>
741
- <tr>
742
- <Typography
743
- variant="body"
744
- as="td"
745
- className="border border-border px-4 py-2"
746
- >
747
- Generic
748
- </Typography>
749
- <Typography
750
- variant="body"
751
- as="td"
752
- className="border border-border px-4 py-2"
753
- >
754
- <Code>
755
- &lt;Typography variant=&quot;pageTitle&quot;
756
- as=&quot;h1&quot;&gt;
757
- </Code>
758
- </Typography>
759
- <Typography
760
- variant="body"
761
- as="td"
762
- className="border border-border px-4 py-2"
763
- >
764
- Full control over variant and element
765
- </Typography>
766
- </tr>
767
- <tr>
768
- <Typography
769
- variant="body"
770
- as="td"
771
- className="border border-border px-4 py-2"
772
- >
773
- Semantic
774
- </Typography>
775
- <Typography
776
- variant="body"
777
- as="td"
778
- className="border border-border px-4 py-2"
779
- >
780
- <Code>&lt;H1&gt;</Code>
781
- </Typography>
782
- <Typography
783
- variant="body"
784
- as="td"
785
- className="border border-border px-4 py-2"
786
- >
787
- Better TypeScript, shorter syntax, semantic clarity
788
- </Typography>
789
- </tr>
790
- </tbody>
791
- </table>
792
- </div>
304
+ <SectionTitle>Quoted Content</SectionTitle>
305
+ <Blockquote>
306
+ "The best way to predict the future is to invent it." — Alan Kay
307
+ </Blockquote>
308
+ <Blockquote className="bg-muted/50 p-4 rounded-lg">
309
+ This is a styled blockquote with custom background and padding.
310
+ Perfect for testimonials and customer feedback.
311
+ </Blockquote>
793
312
  </div>
794
313
 
795
- {/* Usage Recommendations */}
314
+ {/* Component Reference */}
796
315
  <Card>
797
316
  <CardHeader>
798
- <CardTitle>Usage Recommendations</CardTitle>
317
+ <CardTitle>Component Reference</CardTitle>
799
318
  <CardDescription>
800
- Best practices for using Typography components in your application
319
+ All typography components with their default Tailwind classes
801
320
  </CardDescription>
802
321
  </CardHeader>
803
322
  <CardContent>
804
- <ul className="space-y-2">
805
- <li>
806
- <Strong>✅ Recommended:</Strong>{" "}
807
- <P className="inline">
808
- Use semantic components (H1, P, etc.) for better developer
809
- experience and TypeScript support.
810
- </P>
811
- </li>
812
- <li>
813
- <Strong>⚠️ When to use generic:</Strong>{" "}
814
- <P className="inline">
815
- Use Typography component when you need custom variant/element
816
- combinations not covered by semantic components.
817
- </P>
818
- </li>
819
- <li>
820
- <Strong>🎯 Best practice:</Strong>{" "}
821
- <P className="inline">
822
- Semantic components provide pre-configured defaults that match
823
- design system specifications.
824
- </P>
825
- </li>
826
- </ul>
827
- </CardContent>
828
- </Card>
829
- </div>
830
- ),
831
- parameters: {
832
- docs: {
833
- description: {
834
- story:
835
- "Showcase of individual semantic typography components that provide better TypeScript support and developer experience. Compare semantic components (H1, P, etc.) with the generic Typography approach.",
836
- },
837
- },
838
- },
839
- };
840
-
841
- /**
842
- * Complete reference table of all semantic typography components with their defaults and usage.
843
- * Provides a comprehensive overview for developers to quickly understand each component.
844
- */
845
- export const ComponentReference: Story = {
846
- render: () => (
847
- <div className="space-y-6 max-w-6xl">
848
- <div className="space-y-2">
849
- <Typography variant="pageTitle" as="h2">
850
- Semantic Typography Components Reference
851
- </Typography>
852
- <Typography variant="body" color="muted">
853
- Complete reference of all individual semantic components with their
854
- default variants, HTML elements, and use cases.
855
- </Typography>
856
- </div>
857
-
858
- <Card>
859
- <CardHeader>
860
- <CardTitle>Component Reference Table</CardTitle>
861
- <CardDescription>
862
- All semantic typography components with their configurations and
863
- recommended usage
864
- </CardDescription>
865
- </CardHeader>
866
- <CardContent>
867
- <div className="overflow-x-auto">
868
- <table className="w-full border-collapse border border-border">
869
- <thead>
870
- <tr className="bg-muted/50">
871
- <Typography
872
- variant="body"
873
- as="th"
874
- className="border border-border px-4 py-2 text-left"
875
- weight="semibold"
876
- >
877
- Component
878
- </Typography>
879
- <Typography
880
- variant="body"
881
- as="th"
882
- className="border border-border px-4 py-2 text-left"
883
- weight="semibold"
884
- >
885
- HTML Element
886
- </Typography>
887
- <Typography
888
- variant="body"
889
- as="th"
890
- className="border border-border px-4 py-2 text-left"
891
- weight="semibold"
892
- >
893
- Default Variant
894
- </Typography>
895
- <Typography
896
- variant="body"
897
- as="th"
898
- className="border border-border px-4 py-2 text-left"
899
- weight="semibold"
900
- >
901
- Font Size
902
- </Typography>
903
- <Typography
904
- variant="body"
905
- as="th"
906
- className="border border-border px-4 py-2 text-left"
907
- weight="semibold"
908
- >
909
- Use Case
910
- </Typography>
911
- <Typography
912
- variant="body"
913
- as="th"
914
- className="border border-border px-4 py-2 text-left"
915
- weight="semibold"
916
- >
917
- Example
918
- </Typography>
919
- </tr>
920
- </thead>
921
- <tbody>
922
- <tr>
923
- <Typography
924
- variant="body"
925
- as="td"
926
- className="border border-border px-4 py-2"
927
- >
928
- <Code>H1</Code>
929
- </Typography>
930
- <Typography
931
- variant="body"
932
- as="td"
933
- className="border border-border px-4 py-2"
934
- >
935
- h1
936
- </Typography>
937
- <Typography
938
- variant="body"
939
- as="td"
940
- className="border border-border px-4 py-2"
941
- >
942
- pageTitle
943
- </Typography>
944
- <Typography
945
- variant="body"
946
- as="td"
947
- className="border border-border px-4 py-2"
948
- >
949
- Variable
950
- </Typography>
951
- <Typography
952
- variant="body"
953
- as="td"
954
- className="border border-border px-4 py-2"
955
- >
956
- Main page titles
957
- </Typography>
958
- <Typography
959
- variant="body"
960
- as="td"
961
- className="border border-border px-4 py-2"
962
- >
963
- <H1 className="text-sm">Page Title</H1>
964
- </Typography>
965
- </tr>
966
- <tr>
967
- <Typography
968
- variant="body"
969
- as="td"
970
- className="border border-border px-4 py-2"
971
- >
972
- <Code>H2</Code>
973
- </Typography>
974
- <Typography
975
- variant="body"
976
- as="td"
977
- className="border border-border px-4 py-2"
978
- >
979
- h2
980
- </Typography>
981
- <Typography
982
- variant="body"
983
- as="td"
984
- className="border border-border px-4 py-2"
985
- >
986
- sectionTitle
987
- </Typography>
988
- <Typography
989
- variant="body"
990
- as="td"
991
- className="border border-border px-4 py-2"
992
- >
993
- Variable
994
- </Typography>
995
- <Typography
996
- variant="body"
997
- as="td"
998
- className="border border-border px-4 py-2"
999
- >
1000
- Section headings
1001
- </Typography>
1002
- <Typography
1003
- variant="body"
1004
- as="td"
1005
- className="border border-border px-4 py-2"
1006
- >
1007
- <H2 className="text-sm">Section Title</H2>
1008
- </Typography>
1009
- </tr>
1010
- <tr>
1011
- <Typography
1012
- variant="body"
1013
- as="td"
1014
- className="border border-border px-4 py-2"
1015
- >
1016
- <Code>H3</Code>
1017
- </Typography>
1018
- <Typography
1019
- variant="body"
1020
- as="td"
1021
- className="border border-border px-4 py-2"
1022
- >
1023
- h3
1024
- </Typography>
1025
- <Typography
1026
- variant="body"
1027
- as="td"
1028
- className="border border-border px-4 py-2"
1029
- >
1030
- headline
1031
- </Typography>
1032
- <Typography
1033
- variant="body"
1034
- as="td"
1035
- className="border border-border px-4 py-2"
1036
- >
1037
- Variable
1038
- </Typography>
1039
- <Typography
1040
- variant="body"
1041
- as="td"
1042
- className="border border-border px-4 py-2"
1043
- >
1044
- Subsection headings
1045
- </Typography>
1046
- <Typography
1047
- variant="body"
1048
- as="td"
1049
- className="border border-border px-4 py-2"
1050
- >
1051
- <H3 className="text-sm">Subsection</H3>
1052
- </Typography>
1053
- </tr>
1054
- <tr>
1055
- <Typography
1056
- variant="body"
1057
- as="td"
1058
- className="border border-border px-4 py-2"
1059
- >
1060
- <Code>H4</Code>
1061
- </Typography>
1062
- <Typography
1063
- variant="body"
1064
- as="td"
1065
- className="border border-border px-4 py-2"
1066
- >
1067
- h4
1068
- </Typography>
1069
- <Typography
1070
- variant="body"
1071
- as="td"
1072
- className="border border-border px-4 py-2"
1073
- >
1074
- subHeadline
1075
- </Typography>
1076
- <Typography
1077
- variant="body"
1078
- as="td"
1079
- className="border border-border px-4 py-2"
1080
- >
1081
- Variable
1082
- </Typography>
1083
- <Typography
1084
- variant="body"
1085
- as="td"
1086
- className="border border-border px-4 py-2"
1087
- >
1088
- Sub headlines
1089
- </Typography>
1090
- <Typography
1091
- variant="body"
1092
- as="td"
1093
- className="border border-border px-4 py-2"
1094
- >
1095
- <H4 className="text-sm">Minor Heading</H4>
1096
- </Typography>
1097
- </tr>
1098
- <tr>
1099
- <Typography
1100
- variant="body"
1101
- as="td"
1102
- className="border border-border px-4 py-2"
1103
- >
1104
- <Code>H5</Code>
1105
- </Typography>
1106
- <Typography
1107
- variant="body"
1108
- as="td"
1109
- className="border border-border px-4 py-2"
1110
- >
1111
- h5
1112
- </Typography>
1113
- <Typography
1114
- variant="body"
1115
- as="td"
1116
- className="border border-border px-4 py-2"
1117
- >
1118
- eyebrow
1119
- </Typography>
1120
- <Typography
1121
- variant="body"
1122
- as="td"
1123
- className="border border-border px-4 py-2"
1124
- >
1125
- Variable
1126
- </Typography>
1127
- <Typography
1128
- variant="body"
1129
- as="td"
1130
- className="border border-border px-4 py-2"
1131
- >
1132
- Small headings
1133
- </Typography>
1134
- <Typography
1135
- variant="body"
1136
- as="td"
1137
- className="border border-border px-4 py-2"
1138
- >
1139
- <H5 className="text-sm">Small Heading</H5>
1140
- </Typography>
1141
- </tr>
1142
- <tr>
1143
- <Typography
1144
- variant="body"
1145
- as="td"
1146
- className="border border-border px-4 py-2"
1147
- >
1148
- <Code>H6</Code>
1149
- </Typography>
1150
- <Typography
1151
- variant="body"
1152
- as="td"
1153
- className="border border-border px-4 py-2"
1154
- >
1155
- h6
1156
- </Typography>
1157
- <Typography
1158
- variant="body"
1159
- as="td"
1160
- className="border border-border px-4 py-2"
1161
- >
1162
- detail
1163
- </Typography>
1164
- <Typography
1165
- variant="body"
1166
- as="td"
1167
- className="border border-border px-4 py-2"
1168
- >
1169
- Variable
1170
- </Typography>
1171
- <Typography
1172
- variant="body"
1173
- as="td"
1174
- className="border border-border px-4 py-2"
1175
- >
1176
- Smallest headings
1177
- </Typography>
1178
- <Typography
1179
- variant="body"
1180
- as="td"
1181
- className="border border-border px-4 py-2"
1182
- >
1183
- <H6 className="text-sm">Tiny Heading</H6>
1184
- </Typography>
1185
- </tr>
1186
- <tr>
1187
- <Typography
1188
- variant="body"
1189
- as="td"
1190
- className="border border-border px-4 py-2"
1191
- >
1192
- <Code>P</Code>
1193
- </Typography>
1194
- <Typography
1195
- variant="body"
1196
- as="td"
1197
- className="border border-border px-4 py-2"
1198
- >
1199
- p
1200
- </Typography>
1201
- <Typography
1202
- variant="body"
1203
- as="td"
1204
- className="border border-border px-4 py-2"
1205
- >
1206
- body
1207
- </Typography>
1208
- <Typography
1209
- variant="body"
1210
- as="td"
1211
- className="border border-border px-4 py-2"
1212
- >
1213
- Variable
1214
- </Typography>
1215
- <Typography
1216
- variant="body"
1217
- as="td"
1218
- className="border border-border px-4 py-2"
1219
- >
1220
- Body text, paragraphs
1221
- </Typography>
1222
- <Typography
1223
- variant="body"
1224
- as="td"
1225
- className="border border-border px-4 py-2"
1226
- >
1227
- <P className="text-sm">Standard paragraph text.</P>
1228
- </Typography>
1229
- </tr>
1230
- <tr>
1231
- <Typography
1232
- variant="body"
1233
- as="td"
1234
- className="border border-border px-4 py-2"
1235
- >
1236
- <Code>A</Code>
1237
- </Typography>
1238
- <Typography
1239
- variant="body"
1240
- as="td"
1241
- className="border border-border px-4 py-2"
1242
- >
1243
- a
1244
- </Typography>
1245
- <Typography
1246
- variant="body"
1247
- as="td"
1248
- className="border border-border px-4 py-2"
1249
- >
1250
- body + underline
1251
- </Typography>
1252
- <Typography
1253
- variant="body"
1254
- as="td"
1255
- className="border border-border px-4 py-2"
1256
- >
1257
- Variable
1258
- </Typography>
1259
- <Typography
1260
- variant="body"
1261
- as="td"
1262
- className="border border-border px-4 py-2"
1263
- >
1264
- Links with hover states
1265
- </Typography>
1266
- <Typography
1267
- variant="body"
1268
- as="td"
1269
- className="border border-border px-4 py-2"
1270
- >
1271
- <A className="text-sm" href="https://example.com">
1272
- Example Link
1273
- </A>
1274
- </Typography>
1275
- </tr>
1276
- <tr>
1277
- <Typography
1278
- variant="body"
1279
- as="td"
1280
- className="border border-border px-4 py-2"
1281
- >
1282
- <Code>Span</Code>
1283
- </Typography>
1284
- <Typography
1285
- variant="body"
1286
- as="td"
1287
- className="border border-border px-4 py-2"
1288
- >
1289
- span
1290
- </Typography>
1291
- <Typography
1292
- variant="body"
1293
- as="td"
1294
- className="border border-border px-4 py-2"
1295
- >
1296
- body (default)
1297
- </Typography>
1298
- <Typography
1299
- variant="body"
1300
- as="td"
1301
- className="border border-border px-4 py-2"
1302
- >
1303
- Variable
1304
- </Typography>
1305
- <Typography
1306
- variant="body"
1307
- as="td"
1308
- className="border border-border px-4 py-2"
1309
- >
1310
- Inline text, highlights
1311
- </Typography>
1312
- <Typography
1313
- variant="body"
1314
- as="td"
1315
- className="border border-border px-4 py-2"
1316
- >
1317
- <Span className="text-sm" color="accent">
1318
- Highlighted text
1319
- </Span>
1320
- </Typography>
1321
- </tr>
1322
- <tr>
1323
- <Typography
1324
- variant="body"
1325
- as="td"
1326
- className="border border-border px-4 py-2"
1327
- >
1328
- <Code>Strong</Code>
1329
- </Typography>
1330
- <Typography
1331
- variant="body"
1332
- as="td"
1333
- className="border border-border px-4 py-2"
1334
- >
1335
- strong
1336
- </Typography>
1337
- <Typography
1338
- variant="body"
1339
- as="td"
1340
- className="border border-border px-4 py-2"
1341
- >
1342
- bodyEmphasized
1343
- </Typography>
1344
- <Typography
1345
- variant="body"
1346
- as="td"
1347
- className="border border-border px-4 py-2"
1348
- >
1349
- Variable
1350
- </Typography>
1351
- <Typography
1352
- variant="body"
1353
- as="td"
1354
- className="border border-border px-4 py-2"
1355
- >
1356
- Emphasized text
1357
- </Typography>
1358
- <Typography
1359
- variant="body"
1360
- as="td"
1361
- className="border border-border px-4 py-2"
1362
- >
1363
- <Strong className="text-sm">Important text</Strong>
1364
- </Typography>
1365
- </tr>
1366
- <tr>
1367
- <Typography
1368
- variant="body"
1369
- as="td"
1370
- className="border border-border px-4 py-2"
1371
- >
1372
- <Code>Lead</Code>
1373
- </Typography>
1374
- <Typography
1375
- variant="body"
1376
- as="td"
1377
- className="border border-border px-4 py-2"
1378
- >
1379
- p
1380
- </Typography>
1381
- <Typography
1382
- variant="body"
1383
- as="td"
1384
- className="border border-border px-4 py-2"
1385
- >
1386
- paragraphLead
1387
- </Typography>
1388
- <Typography
1389
- variant="body"
1390
- as="td"
1391
- className="border border-border px-4 py-2"
1392
- >
1393
- Variable
1394
- </Typography>
1395
- <Typography
1396
- variant="body"
1397
- as="td"
1398
- className="border border-border px-4 py-2"
1399
- >
1400
- Introductory text
1401
- </Typography>
1402
- <Typography
1403
- variant="body"
1404
- as="td"
1405
- className="border border-border px-4 py-2"
1406
- >
1407
- <Lead className="text-sm">Article introduction</Lead>
1408
- </Typography>
1409
- </tr>
1410
- <tr>
1411
- <Typography
1412
- variant="body"
1413
- as="td"
1414
- className="border border-border px-4 py-2"
1415
- >
1416
- <Code>Small</Code>
1417
- </Typography>
1418
- <Typography
1419
- variant="body"
1420
- as="td"
1421
- className="border border-border px-4 py-2"
1422
- >
1423
- small
1424
- </Typography>
1425
- <Typography
1426
- variant="body"
1427
- as="td"
1428
- className="border border-border px-4 py-2"
1429
- >
1430
- microcopy
1431
- </Typography>
1432
- <Typography
1433
- variant="body"
1434
- as="td"
1435
- className="border border-border px-4 py-2"
1436
- >
1437
- Variable
1438
- </Typography>
1439
- <Typography
1440
- variant="body"
1441
- as="td"
1442
- className="border border-border px-4 py-2"
1443
- >
1444
- Fine print, captions
1445
- </Typography>
1446
- <Typography
1447
- variant="body"
1448
- as="td"
1449
- className="border border-border px-4 py-2"
1450
- >
1451
- <Small className="text-xs">Terms apply</Small>
1452
- </Typography>
1453
- </tr>
1454
- <tr>
1455
- <Typography
1456
- variant="body"
1457
- as="td"
1458
- className="border border-border px-4 py-2"
1459
- >
1460
- <Code>Code</Code>
1461
- </Typography>
1462
- <Typography
1463
- variant="body"
1464
- as="td"
1465
- className="border border-border px-4 py-2"
1466
- >
1467
- code
1468
- </Typography>
1469
- <Typography
1470
- variant="body"
1471
- as="td"
1472
- className="border border-border px-4 py-2"
1473
- >
1474
- code
1475
- </Typography>
1476
- <Typography
1477
- variant="body"
1478
- as="td"
1479
- className="border border-border px-4 py-2"
1480
- >
1481
- Variable
1482
- </Typography>
1483
- <Typography
1484
- variant="body"
1485
- as="td"
1486
- className="border border-border px-4 py-2"
1487
- >
1488
- Inline code snippets
1489
- </Typography>
1490
- <Typography
1491
- variant="body"
1492
- as="td"
1493
- className="border border-border px-4 py-2"
1494
- >
1495
- <Code className="text-xs">useState</Code>
1496
- </Typography>
1497
- </tr>
1498
- <tr>
1499
- <Typography
1500
- variant="body"
1501
- as="td"
1502
- className="border border-border px-4 py-2"
1503
- >
1504
- <Code>Blockquote</Code>
1505
- </Typography>
1506
- <Typography
1507
- variant="body"
1508
- as="td"
1509
- className="border border-border px-4 py-2"
1510
- >
1511
- blockquote
1512
- </Typography>
1513
- <Typography
1514
- variant="body"
1515
- as="td"
1516
- className="border border-border px-4 py-2"
1517
- >
1518
- blogBody + italic
1519
- </Typography>
1520
- <Typography
1521
- variant="body"
1522
- as="td"
1523
- className="border border-border px-4 py-2"
1524
- >
1525
- Variable
1526
- </Typography>
1527
- <Typography
1528
- variant="body"
1529
- as="td"
1530
- className="border border-border px-4 py-2"
1531
- >
1532
- Quoted text
1533
- </Typography>
1534
- <Typography
1535
- variant="body"
1536
- as="td"
1537
- className="border border-border px-4 py-2"
1538
- >
1539
- <Blockquote className="text-xs border-l-2 border-border pl-2">
1540
- &quot;Quote text&quot;
1541
- </Blockquote>
1542
- </Typography>
1543
- </tr>
1544
- </tbody>
1545
- </table>
1546
- </div>
1547
- </CardContent>
1548
- </Card>
1549
-
1550
- <Card>
1551
- <CardHeader>
1552
- <CardTitle>Additional Properties</CardTitle>
1553
- <CardDescription>
1554
- All semantic components inherit the full Typography component API
1555
- </CardDescription>
1556
- </CardHeader>
1557
- <CardContent>
1558
- <div className="space-y-4">
323
+ <div className="space-y-2">
1559
324
  <div>
1560
- <Typography variant="paragraphLead">Available Props:</Typography>
1561
- <ul className="mt-2 space-y-1 ml-4">
1562
- <li>
1563
- <Code>color</Code> - default, muted, faint, accent, destructive,
1564
- success, warning
1565
- </li>
1566
- <li>
1567
- <Code>align</Code> - left, center, right, justify
1568
- </li>
1569
- <li>
1570
- <Code>transform</Code> - none, uppercase, lowercase,
1571
- capitalize
1572
- </li>
1573
- <li>
1574
- <Code>weight</Code> - normal, medium, semibold, bold
1575
- </li>
1576
- <li>
1577
- <Code>italic</Code> - boolean
1578
- </li>
1579
- <li>
1580
- <Code>underline</Code> - boolean
1581
- </li>
1582
- <li>
1583
- <Code>strikethrough</Code> - boolean
1584
- </li>
1585
- <li>
1586
- <Code>truncate</Code> - boolean
1587
- </li>
1588
- <li>
1589
- <Code>srOnly</Code> - boolean
1590
- </li>
1591
- <li>
1592
- <Code>className</Code> - additional CSS classes
1593
- </li>
1594
- </ul>
325
+ <Code className="text-xs">PageTitle</Code>
326
+ <Caption className="block">
327
+ text-3xl font-bold leading-tight tracking-wide
328
+ </Caption>
1595
329
  </div>
1596
330
  <div>
1597
- <Typography variant="paragraphLead">Usage Examples:</Typography>
1598
- <div className="mt-2 space-y-2">
1599
- <div>
1600
- <Code>
1601
- &lt;H1 color=&quot;accent&quot;&gt;Colored
1602
- heading&lt;/H1&gt;
1603
- </Code>
1604
- </div>
1605
- <div>
1606
- <Code>
1607
- &lt;P align=&quot;center&quot; italic&gt;Centered italic
1608
- text&lt;/P&gt;
1609
- </Code>
1610
- </div>
1611
- <div>
1612
- <Code>
1613
- &lt;Span weight=&quot;bold&quot;
1614
- color=&quot;destructive&quot;&gt;Bold red text&lt;/Span&gt;
1615
- </Code>
1616
- </div>
1617
- </div>
331
+ <Code className="text-xs">SectionTitle</Code>
332
+ <Caption className="block">
333
+ text-2xl font-semibold leading-tight tracking-wide
334
+ </Caption>
335
+ </div>
336
+ <div>
337
+ <Code className="text-xs">SubsectionTitle</Code>
338
+ <Caption className="block">text-xl font-semibold leading-snug tracking-wide</Caption>
339
+ </div>
340
+ <div>
341
+ <Code className="text-xs">BodyText</Code>
342
+ <Caption className="block">text-base leading-relaxed tracking-wide</Caption>
343
+ </div>
344
+ <div>
345
+ <Code className="text-xs">BodyTextLarge</Code>
346
+ <Caption className="block">text-lg leading-relaxed tracking-wide</Caption>
347
+ </div>
348
+ <div>
349
+ <Code className="text-xs">BodyTextSmall</Code>
350
+ <Caption className="block">text-sm leading-normal tracking-wide</Caption>
351
+ </div>
352
+ <div>
353
+ <Code className="text-xs">Caption</Code>
354
+ <Caption className="block">
355
+ text-sm text-muted-foreground leading-normal tracking-wide
356
+ </Caption>
357
+ </div>
358
+ <div>
359
+ <Code className="text-xs">Overline</Code>
360
+ <Caption className="block">
361
+ text-xs font-medium uppercase tracking-wider
362
+ </Caption>
363
+ </div>
364
+ <div>
365
+ <Code className="text-xs">Code</Code>
366
+ <Caption className="block">
367
+ font-mono text-sm bg-muted px-1 rounded
368
+ </Caption>
369
+ </div>
370
+ <div>
371
+ <Code className="text-xs">Blockquote</Code>
372
+ <Caption className="block">
373
+ border-l-4 border-border pl-4 italic tracking-wide
374
+ </Caption>
1618
375
  </div>
1619
376
  </div>
1620
377
  </CardContent>
1621
378
  </Card>
1622
379
  </div>
1623
380
  ),
1624
- parameters: {
1625
- docs: {
1626
- description: {
1627
- story:
1628
- "Comprehensive reference table showing all semantic typography components with their default configurations, HTML elements, font sizes, and use cases. Perfect for quick lookup during development.",
1629
- },
1630
- },
1631
- },
1632
381
  };