@mich8060/chg-design-system 0.1.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/.github/workflows/figma-sync.yml +30 -0
- package/ARCHITECTURE_FIX.md +241 -0
- package/LICENSE +21 -0
- package/README.lib.md +103 -0
- package/README.md +177 -0
- package/figma.config.json +9 -0
- package/package.json +67 -0
- package/package.lib.json +49 -0
- package/public/data/figma-variables.json +40026 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +46 -0
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +25 -0
- package/public/robots.txt +3 -0
- package/public/styles/tokens.css +1994 -0
- package/scripts/index.js +896 -0
- package/scripts/publish-lib.js +150 -0
- package/scripts/validate.js +94 -0
- package/src/App.css +457 -0
- package/src/App.css.map +1 -0
- package/src/App.js +161 -0
- package/src/App.scss +548 -0
- package/src/App.test.js +8 -0
- package/src/assets/images/.gitkeep +0 -0
- package/src/assets/images/doctors/Avatar-1.png +0 -0
- package/src/assets/images/doctors/Avatar-10.png +0 -0
- package/src/assets/images/doctors/Avatar-11.png +0 -0
- package/src/assets/images/doctors/Avatar-12.png +0 -0
- package/src/assets/images/doctors/Avatar-13.png +0 -0
- package/src/assets/images/doctors/Avatar-14.png +0 -0
- package/src/assets/images/doctors/Avatar-15.png +0 -0
- package/src/assets/images/doctors/Avatar-16.png +0 -0
- package/src/assets/images/doctors/Avatar-17.png +0 -0
- package/src/assets/images/doctors/Avatar-18.png +0 -0
- package/src/assets/images/doctors/Avatar-19.png +0 -0
- package/src/assets/images/doctors/Avatar-2.png +0 -0
- package/src/assets/images/doctors/Avatar-20.png +0 -0
- package/src/assets/images/doctors/Avatar-21.png +0 -0
- package/src/assets/images/doctors/Avatar-3.png +0 -0
- package/src/assets/images/doctors/Avatar-4.png +0 -0
- package/src/assets/images/doctors/Avatar-5.png +0 -0
- package/src/assets/images/doctors/Avatar-6.png +0 -0
- package/src/assets/images/doctors/Avatar-7.png +0 -0
- package/src/assets/images/doctors/Avatar-8.png +0 -0
- package/src/assets/images/doctors/Avatar-9.png +0 -0
- package/src/assets/images/doctors/Avatar.png +0 -0
- package/src/assets/images/doctors/index.js +141 -0
- package/src/data/figma-variables.json +90305 -0
- package/src/index.js +20 -0
- package/src/index.scss +10 -0
- package/src/pages/AccordionDemo.jsx +206 -0
- package/src/pages/AccordionDemo.scss +34 -0
- package/src/pages/ActionMenuDemo.jsx +957 -0
- package/src/pages/ActionMenuDemo.scss +34 -0
- package/src/pages/AvatarDemo.jsx +328 -0
- package/src/pages/AvatarDemo.scss +40 -0
- package/src/pages/BadgeDemo.jsx +254 -0
- package/src/pages/BadgeDemo.scss +40 -0
- package/src/pages/BorderRadiusDemo.jsx +112 -0
- package/src/pages/BorderRadiusDemo.scss +50 -0
- package/src/pages/BrandingDemo.jsx +117 -0
- package/src/pages/BreadcrumbDemo.jsx +172 -0
- package/src/pages/ButtonDemo.jsx +708 -0
- package/src/pages/ButtonDemo.scss +34 -0
- package/src/pages/CheckboxDemo.jsx +194 -0
- package/src/pages/ChipDemo.jsx +359 -0
- package/src/pages/ChipDemo.scss +40 -0
- package/src/pages/ColorsDemo.jsx +566 -0
- package/src/pages/ColorsDemo.scss +243 -0
- package/src/pages/ComponentsUsage.jsx +401 -0
- package/src/pages/DatepickerDemo.jsx +223 -0
- package/src/pages/DividerDemo.jsx +337 -0
- package/src/pages/DotStatusDemo.jsx +223 -0
- package/src/pages/DropdownDemo.jsx +229 -0
- package/src/pages/FieldDemo.jsx +253 -0
- package/src/pages/FigmaVariablesDemo.jsx +426 -0
- package/src/pages/FigmaVariablesDemo.scss +316 -0
- package/src/pages/FileUploadDemo.jsx +186 -0
- package/src/pages/FlexDemo.jsx +144 -0
- package/src/pages/FlexDemo.scss +119 -0
- package/src/pages/FontInstallation.jsx +252 -0
- package/src/pages/FontInstallation.scss +40 -0
- package/src/pages/Home.jsx +3156 -0
- package/src/pages/IconDemo.jsx +1680 -0
- package/src/pages/ImageAspectDemo.jsx +152 -0
- package/src/pages/InputDemo.jsx +245 -0
- package/src/pages/Installation.jsx +257 -0
- package/src/pages/Installation.scss +40 -0
- package/src/pages/KeyDemo.jsx +184 -0
- package/src/pages/MenuDemo.jsx +139 -0
- package/src/pages/MicroCalendarDemo.jsx +165 -0
- package/src/pages/PaginationDemo.jsx +176 -0
- package/src/pages/PillToggleDemo.jsx +212 -0
- package/src/pages/ProgressCircleDemo.jsx +206 -0
- package/src/pages/ProgressIndicatorDemo.jsx +227 -0
- package/src/pages/RadioDemo.jsx +282 -0
- package/src/pages/ShadowsDemo.jsx +118 -0
- package/src/pages/ShadowsDemo.scss +93 -0
- package/src/pages/SliderDemo.jsx +226 -0
- package/src/pages/SpacingDemo.jsx +160 -0
- package/src/pages/SpacingDemo.scss +107 -0
- package/src/pages/StatusDemo.jsx +196 -0
- package/src/pages/StepsDemo.jsx +308 -0
- package/src/pages/TableDemo.jsx +376 -0
- package/src/pages/TabsDemo.jsx +221 -0
- package/src/pages/ToastDemo.jsx +195 -0
- package/src/pages/ToggleDemo.jsx +187 -0
- package/src/pages/TokensDemo.jsx +637 -0
- package/src/pages/TokensDemo.scss +270 -0
- package/src/pages/TokensUsage.jsx +220 -0
- package/src/pages/TooltipDemo.jsx +170 -0
- package/src/pages/TypographyDemo.jsx +229 -0
- package/src/pages/TypographyDemo.scss +105 -0
- package/src/pages/UtilitiesDemo.jsx +381 -0
- package/src/pages/UtilitiesDemo.scss +214 -0
- package/src/reportWebVitals.js +13 -0
- package/src/setupTests.js +5 -0
- package/src/styles/_typography.scss +932 -0
- package/src/styles/_utilities.scss +3635 -0
- package/src/styles/_variables.scss +887 -0
- package/src/styles/prism-custom.css +206 -0
- package/src/styles/prism-custom.css.map +1 -0
- package/src/styles/prism-custom.scss +205 -0
- package/src/styles/tokens.css +4416 -0
- package/src/styles/tokens.css.map +1 -0
- package/src/styles/tokens.scss +1456 -0
- package/src/ui/Accordion/Accordion.jsx +70 -0
- package/src/ui/Accordion/Accordion.scss +82 -0
- package/src/ui/Accordion/index.js +1 -0
- package/src/ui/ActionMenu/ActionMenu.jsx +383 -0
- package/src/ui/ActionMenu/ActionMenu.scss +198 -0
- package/src/ui/ActionMenu/index.js +1 -0
- package/src/ui/Avatar/Avatar.jsx +49 -0
- package/src/ui/Avatar/Avatar.scss +82 -0
- package/src/ui/Avatar/index.js +1 -0
- package/src/ui/Badge/Badge.jsx +64 -0
- package/src/ui/Badge/Badge.scss +84 -0
- package/src/ui/Badge/index.js +1 -0
- package/src/ui/Branding/Branding.jsx +65 -0
- package/src/ui/Branding/Branding.scss +116 -0
- package/src/ui/Branding/index.js +1 -0
- package/src/ui/Breadcrumb/Breadcrumb.jsx +162 -0
- package/src/ui/Breadcrumb/Breadcrumb.scss +46 -0
- package/src/ui/Breadcrumb/index.js +2 -0
- package/src/ui/Button/Button.figma.tsx +49 -0
- package/src/ui/Button/Button.jsx +135 -0
- package/src/ui/Button/Button.scss +188 -0
- package/src/ui/Button/index.js +1 -0
- package/src/ui/Card/Card.jsx +25 -0
- package/src/ui/Card/Card.scss +47 -0
- package/src/ui/Card/index.js +1 -0
- package/src/ui/Checkbox/Checkbox.jsx +70 -0
- package/src/ui/Checkbox/Checkbox.scss +96 -0
- package/src/ui/Checkbox/index.js +1 -0
- package/src/ui/Chip/Chip.jsx +104 -0
- package/src/ui/Chip/Chip.scss +118 -0
- package/src/ui/Chip/index.js +1 -0
- package/src/ui/CopyButton/CopyButton.jsx +102 -0
- package/src/ui/CopyButton/CopyButton.scss +56 -0
- package/src/ui/CopyButton/index.js +1 -0
- package/src/ui/Datepicker/Datepicker.jsx +326 -0
- package/src/ui/Datepicker/Datepicker.scss +187 -0
- package/src/ui/Datepicker/index.js +2 -0
- package/src/ui/Divider/Divider.jsx +89 -0
- package/src/ui/Divider/Divider.scss +112 -0
- package/src/ui/Divider/index.js +1 -0
- package/src/ui/DotStatus/DotStatus.jsx +64 -0
- package/src/ui/DotStatus/DotStatus.scss +87 -0
- package/src/ui/DotStatus/index.js +1 -0
- package/src/ui/Dropdown/Dropdown.jsx +200 -0
- package/src/ui/Dropdown/Dropdown.scss +156 -0
- package/src/ui/Dropdown/index.js +1 -0
- package/src/ui/Field/Field.jsx +89 -0
- package/src/ui/Field/Field.scss +119 -0
- package/src/ui/Field/index.js +1 -0
- package/src/ui/FileUpload/FileUpload.figma.tsx +28 -0
- package/src/ui/FileUpload/FileUpload.jsx +153 -0
- package/src/ui/FileUpload/FileUpload.scss +78 -0
- package/src/ui/FileUpload/index.js +2 -0
- package/src/ui/Flex/Flex.jsx +42 -0
- package/src/ui/Flex/Flex.scss +119 -0
- package/src/ui/Flex/index.js +1 -0
- package/src/ui/Icon/Icon.figma.tsx +22 -0
- package/src/ui/Icon/Icon.jsx +47 -0
- package/src/ui/Icon/index.js +1 -0
- package/src/ui/ImageAspect/ImageAspect.jsx +56 -0
- package/src/ui/ImageAspect/ImageAspect.scss +62 -0
- package/src/ui/ImageAspect/index.js +1 -0
- package/src/ui/Input/Input.figma.tsx +35 -0
- package/src/ui/Input/Input.jsx +68 -0
- package/src/ui/Input/Input.scss +64 -0
- package/src/ui/Input/index.js +2 -0
- package/src/ui/Key/Key.jsx +37 -0
- package/src/ui/Key/Key.scss +34 -0
- package/src/ui/Key/index.js +1 -0
- package/src/ui/Menu/Menu.jsx +389 -0
- package/src/ui/Menu/Menu.scss +382 -0
- package/src/ui/Menu/index.js +1 -0
- package/src/ui/MicroCalendar/MicroCalendar.jsx +392 -0
- package/src/ui/MicroCalendar/MicroCalendar.scss +277 -0
- package/src/ui/MicroCalendar/index.js +1 -0
- package/src/ui/Pagination/Pagination.jsx +237 -0
- package/src/ui/Pagination/Pagination.scss +182 -0
- package/src/ui/Pagination/index.js +1 -0
- package/src/ui/PillToggle/PillToggle.jsx +56 -0
- package/src/ui/PillToggle/PillToggle.scss +84 -0
- package/src/ui/PillToggle/index.js +1 -0
- package/src/ui/Playground/Playground.jsx +524 -0
- package/src/ui/Playground/Playground.scss +310 -0
- package/src/ui/Playground/index.js +2 -0
- package/src/ui/ProgressCircle/ProgressCircle.jsx +147 -0
- package/src/ui/ProgressCircle/ProgressCircle.scss +143 -0
- package/src/ui/ProgressCircle/index.js +1 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.jsx +92 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.scss +133 -0
- package/src/ui/ProgressIndicator/index.js +1 -0
- package/src/ui/Radio/Radio.jsx +57 -0
- package/src/ui/Radio/Radio.scss +84 -0
- package/src/ui/Radio/index.js +1 -0
- package/src/ui/Slider/Slider.jsx +283 -0
- package/src/ui/Slider/Slider.scss +156 -0
- package/src/ui/Slider/index.js +1 -0
- package/src/ui/Status/Status.jsx +66 -0
- package/src/ui/Status/Status.scss +90 -0
- package/src/ui/Status/index.js +1 -0
- package/src/ui/Steps/Steps.jsx +201 -0
- package/src/ui/Steps/Steps.scss +240 -0
- package/src/ui/Steps/index.js +1 -0
- package/src/ui/Table/Table.jsx +143 -0
- package/src/ui/Table/Table.scss +90 -0
- package/src/ui/Table/index.js +1 -0
- package/src/ui/Tabs/TabItem.jsx +86 -0
- package/src/ui/Tabs/Tabs.figma.tsx +30 -0
- package/src/ui/Tabs/Tabs.jsx +318 -0
- package/src/ui/Tabs/Tabs.scss +164 -0
- package/src/ui/Tabs/Untitled +1 -0
- package/src/ui/Tabs/index.js +3 -0
- package/src/ui/Tag/Tag.figma.tsx +29 -0
- package/src/ui/Tag/Tag.jsx +93 -0
- package/src/ui/Tag/Tag.scss +229 -0
- package/src/ui/Tag/index.js +2 -0
- package/src/ui/Textarea/Textarea.figma.tsx +35 -0
- package/src/ui/Textarea/Textarea.jsx +68 -0
- package/src/ui/Textarea/Textarea.scss +69 -0
- package/src/ui/Textarea/index.js +2 -0
- package/src/ui/Toast/Toast.jsx +75 -0
- package/src/ui/Toast/Toast.scss +132 -0
- package/src/ui/Toast/index.js +2 -0
- package/src/ui/Toggle/Toggle.jsx +73 -0
- package/src/ui/Toggle/Toggle.scss +139 -0
- package/src/ui/Toggle/index.js +1 -0
- package/src/ui/Tooltip/Tooltip.figma.tsx +24 -0
- package/src/ui/Tooltip/Tooltip.jsx +123 -0
- package/src/ui/Tooltip/Tooltip.scss +80 -0
- package/src/ui/Tooltip/index.js +2 -0
- package/src/ui/index.js +63 -0
- package/src/utils/formatDate.js +27 -0
- package/src/utils/headerVariants.js +69 -0
- package/vite.config.lib.js +55 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import React, { useEffect } from "react";
|
|
2
|
+
import Divider from "../ui/Divider/Divider";
|
|
3
|
+
import "./TypographyDemo.scss";
|
|
4
|
+
import Breadcrumb from "../ui/Breadcrumb/Breadcrumb";
|
|
5
|
+
import { formatLastUpdated } from "../utils/formatDate";
|
|
6
|
+
import Flex from "../ui/Flex/Flex";
|
|
7
|
+
import CopyButton from "../ui/CopyButton/CopyButton";
|
|
8
|
+
import Prism from "prismjs";
|
|
9
|
+
import "../styles/prism-custom.css";
|
|
10
|
+
import "prismjs/components/prism-markup";
|
|
11
|
+
import "prismjs/components/prism-css";
|
|
12
|
+
|
|
13
|
+
const TYPOGRAPHY_STYLES = {
|
|
14
|
+
Display: [
|
|
15
|
+
{ class: "uds-display-128", label: "Display 128" },
|
|
16
|
+
{ class: "uds-display-128-medium", label: "Display 128 Medium" },
|
|
17
|
+
{ class: "uds-display-128-semibold", label: "Display 128 Semibold" },
|
|
18
|
+
{ class: "uds-display-128-bold", label: "Display 128 Bold" },
|
|
19
|
+
{ class: "uds-display-96", label: "Display 96" },
|
|
20
|
+
{ class: "uds-display-96-medium", label: "Display 96 Medium" },
|
|
21
|
+
{ class: "uds-display-96-semibold", label: "Display 96 Semibold" },
|
|
22
|
+
{ class: "uds-display-96-bold", label: "Display 96 Bold" },
|
|
23
|
+
{ class: "uds-display-72", label: "Display 72" },
|
|
24
|
+
{ class: "uds-display-72-medium", label: "Display 72 Medium" },
|
|
25
|
+
{ class: "uds-display-72-semibold", label: "Display 72 Semibold" },
|
|
26
|
+
{ class: "uds-display-72-bold", label: "Display 72 Bold" },
|
|
27
|
+
{ class: "uds-display-60", label: "Display 60" },
|
|
28
|
+
{ class: "uds-display-60-medium", label: "Display 60 Medium" },
|
|
29
|
+
{ class: "uds-display-60-semibold", label: "Display 60 Semibold" },
|
|
30
|
+
{ class: "uds-display-60-bold", label: "Display 60 Bold" },
|
|
31
|
+
{ class: "uds-display-48", label: "Display 48" },
|
|
32
|
+
{ class: "uds-display-48-medium", label: "Display 48 Medium" },
|
|
33
|
+
{ class: "uds-display-48-semibold", label: "Display 48 Semibold" },
|
|
34
|
+
{ class: "uds-display-48-bold", label: "Display 48 Bold" },
|
|
35
|
+
{ class: "uds-display-36", label: "Display 36" },
|
|
36
|
+
{ class: "uds-display-36-medium", label: "Display 36 Medium" },
|
|
37
|
+
{ class: "uds-display-36-semibold", label: "Display 36 Semibold" },
|
|
38
|
+
{ class: "uds-display-36-bold", label: "Display 36 Bold" },
|
|
39
|
+
],
|
|
40
|
+
Heading: [
|
|
41
|
+
{ class: "uds-heading-32", label: "Heading 32" },
|
|
42
|
+
{ class: "uds-heading-32-medium", label: "Heading 32 Medium" },
|
|
43
|
+
{ class: "uds-heading-32-semibold", label: "Heading 32 Semibold" },
|
|
44
|
+
{ class: "uds-heading-32-bold", label: "Heading 32 Bold" },
|
|
45
|
+
{ class: "uds-heading-28", label: "Heading 28" },
|
|
46
|
+
{ class: "uds-heading-28-medium", label: "Heading 28 Medium" },
|
|
47
|
+
{ class: "uds-heading-28-semibold", label: "Heading 28 Semibold" },
|
|
48
|
+
{ class: "uds-heading-28-bold", label: "Heading 28 Bold" },
|
|
49
|
+
{ class: "uds-heading-24", label: "Heading 24" },
|
|
50
|
+
{ class: "uds-heading-24-medium", label: "Heading 24 Medium" },
|
|
51
|
+
{ class: "uds-heading-24-semibold", label: "Heading 24 Semibold" },
|
|
52
|
+
{ class: "uds-heading-24-bold", label: "Heading 24 Bold" },
|
|
53
|
+
{ class: "uds-heading-20", label: "Heading 20" },
|
|
54
|
+
{ class: "uds-heading-20-medium", label: "Heading 20 Medium" },
|
|
55
|
+
{ class: "uds-heading-20-semibold", label: "Heading 20 Semibold" },
|
|
56
|
+
{ class: "uds-heading-20-bold", label: "Heading 20 Bold" },
|
|
57
|
+
],
|
|
58
|
+
Body: [
|
|
59
|
+
{ class: "uds-body-20", label: "Body 20" },
|
|
60
|
+
{ class: "uds-body-20-medium", label: "Body 20 Medium" },
|
|
61
|
+
{ class: "uds-body-20-semibold", label: "Body 20 Semibold" },
|
|
62
|
+
{ class: "uds-body-20-bold", label: "Body 20 Bold" },
|
|
63
|
+
{ class: "uds-body-16", label: "Body 16" },
|
|
64
|
+
{ class: "uds-body-16-medium", label: "Body 16 Medium" },
|
|
65
|
+
{ class: "uds-body-16-semibold", label: "Body 16 Semibold" },
|
|
66
|
+
{ class: "uds-body-16-bold", label: "Body 16 Bold" },
|
|
67
|
+
{ class: "uds-body-14", label: "Body 14" },
|
|
68
|
+
{ class: "uds-body-14-medium", label: "Body 14 Medium" },
|
|
69
|
+
{ class: "uds-body-14-semibold", label: "Body 14 Semibold" },
|
|
70
|
+
{ class: "uds-body-14-bold", label: "Body 14 Bold" },
|
|
71
|
+
{ class: "uds-body-12", label: "Body 12" },
|
|
72
|
+
{ class: "uds-body-12-medium", label: "Body 12 Medium" },
|
|
73
|
+
{ class: "uds-body-12-semibold", label: "Body 12 Semibold" },
|
|
74
|
+
{ class: "uds-body-12-bold", label: "Body 12 Bold" },
|
|
75
|
+
],
|
|
76
|
+
Paragraph: [
|
|
77
|
+
{ class: "uds-paragraph-20", label: "Paragraph 20" },
|
|
78
|
+
{ class: "uds-paragraph-20-medium", label: "Paragraph 20 Medium" },
|
|
79
|
+
{ class: "uds-paragraph-20-semibold", label: "Paragraph 20 Semibold" },
|
|
80
|
+
{ class: "uds-paragraph-20-bold", label: "Paragraph 20 Bold" },
|
|
81
|
+
{ class: "uds-paragraph-18", label: "Paragraph 18" },
|
|
82
|
+
{ class: "uds-paragraph-18-medium", label: "Paragraph 18 Medium" },
|
|
83
|
+
{ class: "uds-paragraph-18-semi-bold", label: "Paragraph 18 Semibold" },
|
|
84
|
+
{ class: "uds-paragraph-18-bold", label: "Paragraph 18 Bold" },
|
|
85
|
+
{ class: "uds-paragraph-16", label: "Paragraph 16" },
|
|
86
|
+
{ class: "uds-paragraph-16-medium", label: "Paragraph 16 Medium" },
|
|
87
|
+
{ class: "uds-paragraph-16-semibold", label: "Paragraph 16 Semibold" },
|
|
88
|
+
{ class: "uds-paragraph-16-bold", label: "Paragraph 16 Bold" },
|
|
89
|
+
{ class: "uds-paragraph-14", label: "Paragraph 14" },
|
|
90
|
+
{ class: "uds-paragraph-14-medium", label: "Paragraph 14 Medium" },
|
|
91
|
+
{ class: "uds-paragraph-14-semibold", label: "Paragraph 14 Semibold" },
|
|
92
|
+
{ class: "uds-paragraph-14-bold", label: "Paragraph 14 Bold" },
|
|
93
|
+
{ class: "uds-paragraph-12", label: "Paragraph 12" },
|
|
94
|
+
{ class: "uds-paragraph-12-medium", label: "Paragraph 12 Medium" },
|
|
95
|
+
{ class: "uds-paragraph-12-semibold", label: "Paragraph 12 Semibold" },
|
|
96
|
+
{ class: "uds-paragraph-12-bold", label: "Paragraph 12 Bold" },
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default function TypographyDemo() {
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
Prism.highlightAll();
|
|
103
|
+
}, []);
|
|
104
|
+
|
|
105
|
+
const usageCode = `<h1 className="uds-display-48-semibold">Large Heading</h1>
|
|
106
|
+
<p className="uds-body-16">Body text content</p>
|
|
107
|
+
<span className="uds-heading-24-bold">Subheading</span>`;
|
|
108
|
+
|
|
109
|
+
const namingCode = `.uds-{type}-{size}-{weight}`;
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<section className="page typography-demo">
|
|
113
|
+
<header className="page__header">
|
|
114
|
+
<div className="page__header-container">
|
|
115
|
+
<Breadcrumb />
|
|
116
|
+
<div className="page__header-info">
|
|
117
|
+
<div className="page__header-content">
|
|
118
|
+
<h1 className="page__header-title">Typography</h1>
|
|
119
|
+
<p className="page__header-description">
|
|
120
|
+
Typography styles for the design system. Use these classes or mixins
|
|
121
|
+
to ensure consistent typography across the application.
|
|
122
|
+
</p>
|
|
123
|
+
</div>
|
|
124
|
+
<div className="page__header-metadata">
|
|
125
|
+
<div className="page__metadata-row">
|
|
126
|
+
<p className="page__metadata-label">Author</p>
|
|
127
|
+
<a
|
|
128
|
+
href="https://chgit.slack.com/team/U06V9C0K06S"
|
|
129
|
+
className="page__metadata-link"
|
|
130
|
+
target="_blank"
|
|
131
|
+
rel="noopener noreferrer"
|
|
132
|
+
>
|
|
133
|
+
@Michael-Stevens
|
|
134
|
+
</a>
|
|
135
|
+
</div>
|
|
136
|
+
<div className="page__metadata-row">
|
|
137
|
+
<p className="page__metadata-label">Last updated</p>
|
|
138
|
+
<p className="page__metadata-value">{formatLastUpdated()}</p>
|
|
139
|
+
</div>
|
|
140
|
+
<div className="page__metadata-row">
|
|
141
|
+
<p className="page__metadata-label">Version</p>
|
|
142
|
+
<Flex direction="row" gap="8" alignItems="center">
|
|
143
|
+
<p className="page__metadata-value">1.0.0</p>
|
|
144
|
+
<span className="page__version-badge">BETA</span>
|
|
145
|
+
</Flex>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</header>
|
|
151
|
+
|
|
152
|
+
<main className="page__content">
|
|
153
|
+
<div className="page__examples-section">
|
|
154
|
+
<div className="demo-group">
|
|
155
|
+
<h2 className="demo-group__heading">Typography Classes</h2>
|
|
156
|
+
<p className="demo-group__description">
|
|
157
|
+
Typography classes provide consistent text styling across the design system.
|
|
158
|
+
Each class includes font size, line height, font family, font weight, and letter spacing.
|
|
159
|
+
</p>
|
|
160
|
+
|
|
161
|
+
<div style={{ marginTop: "24px", padding: "24px", background: "var(--uds-surface-secondary)", borderRadius: "8px", border: "1px solid var(--uds-border-primary)" }}>
|
|
162
|
+
<h3 style={{ marginTop: 0, marginBottom: "16px" }} className="uds-heading-20-semibold">Usage</h3>
|
|
163
|
+
<p className="uds-body-16" style={{ marginBottom: "16px" }}>
|
|
164
|
+
Apply typography classes directly to HTML elements:
|
|
165
|
+
</p>
|
|
166
|
+
<div className="typography-demo__code-block-wrapper">
|
|
167
|
+
<CopyButton textToCopy={usageCode} />
|
|
168
|
+
<pre className="typography-demo__code-block">
|
|
169
|
+
<code className="language-markup">{usageCode}</code>
|
|
170
|
+
</pre>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<div style={{ marginTop: "24px", padding: "24px", background: "var(--uds-surface-secondary)", borderRadius: "8px", border: "1px solid var(--uds-border-primary)" }}>
|
|
175
|
+
<h3 style={{ marginTop: 0, marginBottom: "16px" }} className="uds-heading-20-semibold">Class Naming Convention</h3>
|
|
176
|
+
<p className="uds-body-16" style={{ marginBottom: "12px" }}>
|
|
177
|
+
Typography classes follow this pattern:
|
|
178
|
+
</p>
|
|
179
|
+
<div className="typography-demo__code-block-wrapper">
|
|
180
|
+
<CopyButton textToCopy={namingCode} />
|
|
181
|
+
<pre className="typography-demo__code-block">
|
|
182
|
+
<code className="language-css">{namingCode}</code>
|
|
183
|
+
</pre>
|
|
184
|
+
</div>
|
|
185
|
+
<ul style={{ marginTop: "16px", paddingLeft: "24px" }} className="uds-body-16">
|
|
186
|
+
<li><strong>type</strong>: display, heading, body, or paragraph</li>
|
|
187
|
+
<li><strong>size</strong>: Font size in pixels (e.g., 128, 96, 48, 32, 24, 20, 16, 14, 12)</li>
|
|
188
|
+
<li><strong>weight</strong>: Optional - medium, semibold, or bold (default is regular/400)</li>
|
|
189
|
+
</ul>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
<div style={{ marginTop: "24px", padding: "24px", background: "var(--uds-surface-secondary)", borderRadius: "8px", border: "1px solid var(--uds-border-primary)" }}>
|
|
193
|
+
<h3 style={{ marginTop: 0, marginBottom: "16px" }} className="uds-heading-20-semibold">Available Types</h3>
|
|
194
|
+
<ul style={{ marginTop: "0", paddingLeft: "24px" }} className="uds-body-16">
|
|
195
|
+
<li><strong>Display</strong>: Large, attention-grabbing text for hero sections (128px, 96px, 72px, 60px, 48px, 36px)</li>
|
|
196
|
+
<li><strong>Heading</strong>: Section headings and titles (32px, 28px, 24px, 20px)</li>
|
|
197
|
+
<li><strong>Body</strong>: Standard text content (20px, 16px, 14px, 12px)</li>
|
|
198
|
+
<li><strong>Paragraph</strong>: Long-form content with optimized line spacing (20px, 18px, 16px, 14px, 12px)</li>
|
|
199
|
+
</ul>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
|
|
203
|
+
{Object.entries(TYPOGRAPHY_STYLES).map(([category, styles]) => (
|
|
204
|
+
<div key={category} className="demo-group">
|
|
205
|
+
<h2 className="demo-group__heading">{category}</h2>
|
|
206
|
+
<p className="demo-group__description">
|
|
207
|
+
{category} typography styles with various weights and sizes.
|
|
208
|
+
</p>
|
|
209
|
+
<Flex direction="column" gap="16">
|
|
210
|
+
{styles.map((style) => (
|
|
211
|
+
<div key={style.class} style={{ padding: "16px", background: "var(--uds-surface-secondary)", borderRadius: "8px", border: "1px solid var(--uds-border-primary)" }}>
|
|
212
|
+
<p className={style.class} style={{ margin: 0 }}>
|
|
213
|
+
{style.label}
|
|
214
|
+
</p>
|
|
215
|
+
<code style={{ fontSize: "12px", color: "var(--uds-text-tertiary)", marginTop: "8px", display: "block", fontFamily: "Monaco, Menlo, 'Ubuntu Mono', monospace" }}>
|
|
216
|
+
.{style.class}
|
|
217
|
+
</code>
|
|
218
|
+
</div>
|
|
219
|
+
))}
|
|
220
|
+
</Flex>
|
|
221
|
+
</div>
|
|
222
|
+
))}
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
<Divider variant="solid" />
|
|
226
|
+
</main>
|
|
227
|
+
</section>
|
|
228
|
+
);
|
|
229
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@import "../styles/typography";
|
|
2
|
+
|
|
3
|
+
.typography-demo {
|
|
4
|
+
&__group {
|
|
5
|
+
margin-bottom: var(--uds-spacing-48);
|
|
6
|
+
background: white;
|
|
7
|
+
border: var(--uds-border-width-1) solid var(--uds-border-primary);
|
|
8
|
+
padding: var(--uds-spacing-24);
|
|
9
|
+
border-radius: var(--uds-radius-8);
|
|
10
|
+
|
|
11
|
+
&:last-child {
|
|
12
|
+
margin-bottom: 0;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&__category {
|
|
17
|
+
@include uds-heading-24-semibold;
|
|
18
|
+
margin: 0 0 var(--uds-spacing-12) 0;
|
|
19
|
+
color: var(--uds-text-primary);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&__grid {
|
|
23
|
+
display: grid;
|
|
24
|
+
gap: 24px;
|
|
25
|
+
grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__item {
|
|
29
|
+
background: var(--uds-surface-primary);
|
|
30
|
+
border: var(--uds-border-width-1) solid var(--uds-border-primary);
|
|
31
|
+
border-radius: var(--uds-radius-8);
|
|
32
|
+
padding: var(--uds-spacing-16);
|
|
33
|
+
display: flex;
|
|
34
|
+
flex-direction: column;
|
|
35
|
+
gap: var(--uds-gap-12);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__preview {
|
|
39
|
+
background: var(--uds-surface-secondary);
|
|
40
|
+
border-radius: var(--uds-radius-4);
|
|
41
|
+
padding: var(--uds-spacing-16);
|
|
42
|
+
min-height: 80px;
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
|
|
46
|
+
p {
|
|
47
|
+
margin: 0;
|
|
48
|
+
color: var(--uds-text-primary);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&__meta {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
gap: var(--uds-gap-4);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&__class {
|
|
59
|
+
@include uds-body-12-medium;
|
|
60
|
+
font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace;
|
|
61
|
+
background: var(--uds-surface-tertiary);
|
|
62
|
+
color: var(--uds-text-secondary);
|
|
63
|
+
padding: var(--uds-spacing-4) var(--uds-spacing-8);
|
|
64
|
+
border-radius: var(--uds-radius-4);
|
|
65
|
+
display: inline-block;
|
|
66
|
+
width: fit-content;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&__label {
|
|
70
|
+
@include uds-body-14-medium;
|
|
71
|
+
color: var(--uds-text-secondary);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__code-block-wrapper {
|
|
75
|
+
position: relative;
|
|
76
|
+
margin: var(--uds-spacing-16) 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&__code-block {
|
|
80
|
+
background: var(--uds-code-bg);
|
|
81
|
+
border: var(--uds-border-width-1) solid var(--uds-border-primary);
|
|
82
|
+
border-radius: var(--uds-radius-8);
|
|
83
|
+
padding: var(--uds-spacing-16);
|
|
84
|
+
overflow-x: auto;
|
|
85
|
+
max-width: 100%;
|
|
86
|
+
word-break: break-word;
|
|
87
|
+
margin: 0;
|
|
88
|
+
|
|
89
|
+
code[class*="language-"] {
|
|
90
|
+
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
|
|
91
|
+
font-size: var(--uds-font-size-14);
|
|
92
|
+
line-height: var(--uds-line-20);
|
|
93
|
+
white-space: pre;
|
|
94
|
+
word-wrap: normal;
|
|
95
|
+
display: block;
|
|
96
|
+
overflow-x: auto;
|
|
97
|
+
background: transparent;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.typography-demo__code-block-wrapper:hover .copy-button {
|
|
103
|
+
opacity: 1;
|
|
104
|
+
pointer-events: auto;
|
|
105
|
+
}
|