@mzc-fe/design-system 0.0.5 → 0.0.7-rc.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 (174) hide show
  1. package/components/accordion/accordion.tsx +114 -0
  2. package/components/accordion/index.ts +1 -0
  3. package/components/alert/alert.tsx +97 -0
  4. package/components/alert/index.ts +1 -0
  5. package/components/alert-dialog/alert-dialog.tsx +190 -0
  6. package/components/alert-dialog/index.ts +1 -0
  7. package/components/aspect-ratio/aspect-ratio.tsx +23 -0
  8. package/components/aspect-ratio/index.ts +1 -0
  9. package/components/avatar/avatar.tsx +62 -0
  10. package/components/avatar/index.ts +1 -0
  11. package/components/badge/badge.tsx +58 -0
  12. package/components/badge/index.ts +1 -0
  13. package/components/breadcrumb/breadcrumb.tsx +132 -0
  14. package/components/breadcrumb/index.ts +1 -0
  15. package/components/button/button.tsx +77 -0
  16. package/components/button/index.ts +1 -0
  17. package/components/button-group/button-group.tsx +99 -0
  18. package/components/button-group/index.ts +1 -0
  19. package/components/calendar/calendar.tsx +235 -0
  20. package/components/calendar/index.ts +1 -0
  21. package/components/card/card.tsx +107 -0
  22. package/components/card/index.ts +1 -0
  23. package/components/carousel/carousel.tsx +263 -0
  24. package/components/carousel/index.ts +1 -0
  25. package/components/chart/chart.tsx +377 -0
  26. package/components/chart/index.ts +1 -0
  27. package/components/checkbox/checkbox.tsx +41 -0
  28. package/components/checkbox/index.ts +1 -0
  29. package/components/collapsible/collapsible.tsx +44 -0
  30. package/components/collapsible/index.ts +1 -0
  31. package/components/command/command.tsx +201 -0
  32. package/components/command/index.ts +1 -0
  33. package/components/context-menu/context-menu.tsx +270 -0
  34. package/components/context-menu/index.ts +1 -0
  35. package/components/dialog/dialog.tsx +166 -0
  36. package/components/dialog/index.ts +1 -0
  37. package/components/drawer/drawer.tsx +154 -0
  38. package/components/drawer/index.ts +1 -0
  39. package/components/dropdown-menu/dropdown-menu.tsx +276 -0
  40. package/components/dropdown-menu/index.ts +1 -0
  41. package/components/empty/empty.tsx +129 -0
  42. package/components/empty/index.ts +1 -0
  43. package/components/field/field.tsx +272 -0
  44. package/components/field/index.ts +1 -0
  45. package/components/form/form.tsx +197 -0
  46. package/components/form/index.ts +1 -0
  47. package/components/hover-card/hover-card.tsx +57 -0
  48. package/components/hover-card/index.ts +1 -0
  49. package/components/input/index.ts +1 -0
  50. package/components/input/input.tsx +31 -0
  51. package/components/input-group/index.ts +1 -0
  52. package/components/input-group/input-group.tsx +189 -0
  53. package/components/input-otp/index.ts +1 -0
  54. package/components/input-otp/input-otp.tsx +99 -0
  55. package/components/item/index.ts +1 -0
  56. package/components/item/item.tsx +225 -0
  57. package/components/kbd/index.ts +1 -0
  58. package/components/kbd/kbd.tsx +38 -0
  59. package/components/label/index.ts +1 -0
  60. package/components/label/label.tsx +33 -0
  61. package/components/menubar/index.ts +1 -0
  62. package/components/menubar/menubar.tsx +299 -0
  63. package/components/navigation-menu/index.ts +1 -0
  64. package/components/navigation-menu/navigation-menu.tsx +194 -0
  65. package/components/pagination/index.ts +1 -0
  66. package/components/pagination/pagination.tsx +153 -0
  67. package/components/popover/index.ts +1 -0
  68. package/components/popover/popover.tsx +106 -0
  69. package/components/progress/index.ts +1 -0
  70. package/components/progress/progress.tsx +39 -0
  71. package/components/radio-group/index.ts +1 -0
  72. package/components/radio-group/radio-group.tsx +57 -0
  73. package/components/resizable/index.ts +1 -0
  74. package/components/resizable/resizable.tsx +73 -0
  75. package/components/scroll-area/index.ts +1 -0
  76. package/components/scroll-area/scroll-area.tsx +72 -0
  77. package/components/select/index.ts +1 -0
  78. package/components/select/select.tsx +213 -0
  79. package/components/separator/index.ts +1 -0
  80. package/components/separator/separator.tsx +39 -0
  81. package/components/sheet/index.ts +1 -0
  82. package/components/sheet/sheet.tsx +160 -0
  83. package/components/sidebar/index.ts +1 -0
  84. package/components/sidebar/sidebar.tsx +776 -0
  85. package/components/skeleton/index.ts +1 -0
  86. package/components/skeleton/skeleton.tsx +21 -0
  87. package/components/slider/index.ts +1 -0
  88. package/components/slider/slider.tsx +75 -0
  89. package/components/sonner/index.ts +2 -0
  90. package/components/sonner/sonner.tsx +52 -0
  91. package/components/spinner/index.ts +1 -0
  92. package/components/spinner/spinner.tsx +26 -0
  93. package/components/switch/index.ts +1 -0
  94. package/components/switch/switch.tsx +39 -0
  95. package/components/table/index.ts +1 -0
  96. package/components/table/table.tsx +140 -0
  97. package/components/tabs/index.ts +1 -0
  98. package/components/tabs/tabs.tsx +94 -0
  99. package/components/textarea/index.ts +1 -0
  100. package/components/textarea/textarea.tsx +26 -0
  101. package/components/toggle/index.ts +1 -0
  102. package/components/toggle/toggle.tsx +58 -0
  103. package/components/toggle-group/index.ts +1 -0
  104. package/components/toggle-group/toggle-group.tsx +97 -0
  105. package/components/tooltip/index.ts +1 -0
  106. package/components/tooltip/tooltip.tsx +82 -0
  107. package/dist/components/accordion/accordion.d.ts +50 -0
  108. package/dist/components/alert/alert.d.ts +31 -0
  109. package/dist/components/alert-dialog/alert-dialog.d.ts +35 -0
  110. package/dist/components/aspect-ratio/aspect-ratio.d.ts +12 -0
  111. package/dist/components/avatar/avatar.d.ts +11 -0
  112. package/dist/components/badge/badge.d.ts +12 -0
  113. package/dist/components/breadcrumb/breadcrumb.d.ts +23 -0
  114. package/dist/components/button/button.d.ts +15 -0
  115. package/dist/components/button-group/button-group.d.ts +16 -0
  116. package/dist/components/calendar/calendar.d.ts +15 -0
  117. package/dist/components/card/card.d.ts +15 -0
  118. package/dist/components/carousel/carousel.d.ts +24 -0
  119. package/dist/components/chart/chart.d.ts +20 -0
  120. package/dist/components/checkbox/checkbox.d.ts +9 -0
  121. package/dist/components/collapsible/collapsible.d.ts +13 -0
  122. package/dist/components/command/command.d.ts +18 -0
  123. package/dist/components/context-menu/context-menu.d.ts +18 -0
  124. package/dist/components/dialog/dialog.d.ts +25 -0
  125. package/dist/components/drawer/drawer.d.ts +18 -0
  126. package/dist/components/dropdown-menu/dropdown-menu.d.ts +21 -0
  127. package/dist/components/empty/empty.d.ts +25 -0
  128. package/dist/components/field/field.d.ts +26 -0
  129. package/dist/components/form/form.d.ts +30 -1
  130. package/dist/components/hover-card/hover-card.d.ts +13 -0
  131. package/dist/components/input/input.d.ts +10 -0
  132. package/dist/components/input-group/input-group.d.ts +19 -0
  133. package/dist/components/input-otp/input-otp.d.ts +23 -0
  134. package/dist/components/item/item.d.ts +33 -1
  135. package/dist/components/kbd/kbd.d.ts +10 -0
  136. package/dist/components/label/label.d.ts +9 -0
  137. package/dist/components/menubar/menubar.d.ts +25 -0
  138. package/dist/components/navigation-menu/navigation-menu.d.ts +26 -0
  139. package/dist/components/pagination/pagination.d.ts +26 -0
  140. package/dist/components/popover/popover.d.ts +17 -0
  141. package/dist/components/progress/progress.d.ts +10 -0
  142. package/dist/components/radio-group/radio-group.d.ts +12 -0
  143. package/dist/components/resizable/resizable.d.ts +19 -0
  144. package/dist/components/scroll-area/scroll-area.d.ts +14 -0
  145. package/dist/components/select/select.d.ts +25 -0
  146. package/dist/components/separator/separator.d.ts +11 -0
  147. package/dist/components/sheet/sheet.d.ts +23 -0
  148. package/dist/components/sidebar/sidebar.d.ts +50 -0
  149. package/dist/components/skeleton/skeleton.d.ts +8 -0
  150. package/dist/components/slider/slider.d.ts +12 -0
  151. package/dist/components/sonner/sonner.d.ts +14 -0
  152. package/dist/components/spinner/spinner.d.ts +9 -0
  153. package/dist/components/switch/switch.d.ts +8 -0
  154. package/dist/components/table/table.d.ts +26 -0
  155. package/dist/components/tabs/tabs.d.ts +16 -6
  156. package/dist/components/textarea/textarea.d.ts +8 -0
  157. package/dist/components/toggle/toggle.d.ts +13 -0
  158. package/dist/components/toggle-group/toggle-group.d.ts +1 -0
  159. package/dist/components/tooltip/tooltip.d.ts +21 -0
  160. package/dist/design-system.css +1 -1
  161. package/dist/design-system.es.js +3493 -28470
  162. package/dist/design-system.umd.js +4 -257
  163. package/dist/index.d.ts +1 -1
  164. package/foundations/ThemeProvider.tsx +77 -0
  165. package/foundations/color.css +232 -0
  166. package/foundations/palette.css +249 -0
  167. package/foundations/spacing.css +8 -0
  168. package/foundations/typography.css +143 -0
  169. package/hooks/use-mobile.ts +19 -0
  170. package/index.css +173 -0
  171. package/index.ts +339 -0
  172. package/lib/utils.ts +6 -0
  173. package/package.json +40 -19
  174. package/README.md +0 -184
package/dist/index.d.ts CHANGED
@@ -32,7 +32,7 @@ export { Label } from './components/label';
32
32
  export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, } from './components/menubar';
33
33
  export { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, navigationMenuTriggerStyle, } from './components/navigation-menu';
34
34
  export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from './components/pagination';
35
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, } from './components/popover';
35
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription, } from './components/popover';
36
36
  export { Progress } from './components/progress';
37
37
  export { RadioGroup, RadioGroupItem } from './components/radio-group';
38
38
  export { ResizablePanelGroup, ResizablePanel, ResizableHandle, } from './components/resizable';
@@ -0,0 +1,77 @@
1
+ import { createContext, useContext, useEffect, useRef, useState } from "react";
2
+
3
+ export type Theme = string; //"dark" | "light" | "system" | "test";
4
+
5
+ type ThemeProviderProps = {
6
+ children: React.ReactNode;
7
+ defaultTheme?: Theme;
8
+ storageKey?: string;
9
+ };
10
+
11
+ type ThemeProviderState = {
12
+ theme: Theme;
13
+ setTheme: (theme: Theme) => void;
14
+ };
15
+
16
+ const initialState: ThemeProviderState = {
17
+ theme: "system",
18
+ setTheme: () => null,
19
+ };
20
+
21
+ const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
22
+
23
+ export function ThemeProvider({
24
+ children,
25
+ defaultTheme = "light",
26
+ storageKey = "vite-ui-theme",
27
+ ...props
28
+ }: ThemeProviderProps) {
29
+ const [theme, setTheme] = useState<Theme>(
30
+ () => (localStorage.getItem(storageKey) as Theme) || defaultTheme
31
+ );
32
+ const prevTheme = useRef<Theme>(theme);
33
+
34
+ useEffect(() => {
35
+ const root = window.document.documentElement;
36
+
37
+ root.classList.remove(prevTheme.current);
38
+
39
+ if (theme === "system") {
40
+ const systemTheme = window.matchMedia("(prefers-color-scheme: dark)")
41
+ .matches
42
+ ? "dark"
43
+ : "light";
44
+
45
+ root.classList.add(systemTheme);
46
+ return;
47
+ }
48
+
49
+ root.classList.add(theme);
50
+ }, [theme]);
51
+
52
+ const value = {
53
+ theme,
54
+ setTheme: (theme: Theme) => {
55
+ localStorage.setItem(storageKey, theme);
56
+ setTheme((prev) => {
57
+ prevTheme.current = prev;
58
+ return theme;
59
+ });
60
+ },
61
+ };
62
+
63
+ return (
64
+ <ThemeProviderContext.Provider {...props} value={value}>
65
+ {children}
66
+ </ThemeProviderContext.Provider>
67
+ );
68
+ }
69
+
70
+ export const useTheme = () => {
71
+ const context = useContext(ThemeProviderContext);
72
+
73
+ if (context === undefined)
74
+ throw new Error("useTheme must be used within a ThemeProvider");
75
+
76
+ return context;
77
+ };
@@ -0,0 +1,232 @@
1
+ @import './palette.css';
2
+
3
+ /* Color */
4
+ /**
5
+ * Token에 매칭된 Color 값을 설정합니다.
6
+ */
7
+ @theme inline {
8
+ --color-static-white: var(--static-white);
9
+ --color-static-black: var(--static-black);
10
+
11
+ --color-primary-main: var(--primary-main);
12
+ --color-primary-alternative: var(--primary-alternative);
13
+ --color-primary-subtle: var(--primary-subtle);
14
+
15
+ --color-secondary-main: var(--secondary-main);
16
+ --color-secondary-alternative: var(--secondary-alternative);
17
+ --color-secondary-subtle: var(--secondary-subtle);
18
+
19
+ --color-tertiary-main: var(--tertiary-main);
20
+ --color-tertiary-alternative: var(--tertiary-alternative);
21
+ --color-tertiary-subtle: var(--tertiary-subtle);
22
+
23
+ --color-background-main: var(--background-main);
24
+ --color-background-alternative: var(--background-alternative);
25
+ --color-background-subtle: var(--background-subtle);
26
+ --color-background-elevated-main: var(--background-elevated-main);
27
+ --color-background-elevated-alternative: var(--background-elevated-alternative);
28
+ --color-background-emphize: var(--background-emphize);
29
+ --color-background-quiet: var(--background-quiet);
30
+ --color-background-error: var(--background-error);
31
+ --color-background-success: var(--background-success);
32
+ --color-background-info-subtle: var(--background-info-subtle);
33
+ --color-background-success-subtle: var(--background-success-subtle);
34
+ --color-background-warning-subtle: var(--background-warning-subtle);
35
+ --color-background-error-subtle: var(--background-error-subtle);
36
+
37
+ --color-text-main: var(--text-main);
38
+ --color-text-alternative: var(--text-alternative);
39
+ --color-text-subtle: var(--text-subtle);
40
+ --color-text-ghost: var(--text-ghost);
41
+ --color-text-quiet: var(--text-quiet);
42
+ --color-text-emphize: var(--text-emphize);
43
+ --color-text-interactive: var(--text-interactive);
44
+ --color-text-info: var(--text-info);
45
+ --color-text-success: var(--text-success);
46
+ --color-text-warning: var(--text-warning);
47
+ --color-text-error: var(--text-error);
48
+
49
+ --color-border-main: var(--border-main);
50
+ --color-border-alternative: var(--border-alternative);
51
+ --color-border-subtle: var(--border-subtle);
52
+ --color-border-emphize: var(--border-emphize);
53
+ --color-border-quiet: var(--border-quiet);
54
+ --color-border-main-focusRing: var(--border-main-focusRing);
55
+ --color-border-emphize-focusRing: var(--border-emphize--focusRing);
56
+ --color-border-control-default-focusRing: var(--border-control-default-focusRing);
57
+ --color-border-info: var(--border-info);
58
+ --color-border-success: var(--border-success);
59
+ --color-border-warning: var(--border-warning);
60
+ --color-border-error: var(--border-error);
61
+ --color-border-success-focusRing: var(--border-success-focusRing);
62
+ --color-border-warning-focusRing: var(--border-warning-focusRing);
63
+ --color-border-error-focusRing: var(--border-error-focusRing);
64
+
65
+ --coon-main: var(--icon-main);
66
+ --color-icon-alternative: var(--icon-alternative);
67
+ --color-icon-quiet: var(--icon-quiet);
68
+ --color-icon-emphize: var(--icon-emphize);
69
+ --color-icon-disable: var(--icon-disable);
70
+ --color-icon-info: var(--icon-info);
71
+ --color-icon-success: var(--icon-success);
72
+ --color-icon-warning: var(--icon-warning);
73
+ --color-icon-error: var(--icon-error);
74
+
75
+ --color-state-default: var(--state-default);
76
+ --color-state-hovered: var(--state-hovered);
77
+ --color-state-focused: var(--state-focused);
78
+ --color-state-pressed: var(--state-pressed);
79
+ --color-state-disabled: var(--state-disabled);
80
+
81
+ --color-status-info-main: var(--status-info-main);
82
+ --color-status-info-alternative: var(--status-info-alternative);
83
+ --color-status-info-ghost: var(--status-info-ghost);
84
+ --color-status-success-main: var(--status-success-main);
85
+ --color-status-success-alternative: var(--status-success-alternative);
86
+ --color-status-success-ghost: var(--status-success-ghost);
87
+ --color-status-warning-main: var(--status-warning-main);
88
+ --color-status-warning-alternative: var(--status-warning-alternative);
89
+ --color-status-warning-ghost: var(--status-warning-ghost);
90
+ --color-status-error-main: var(--status-error-main);
91
+ --color-status-error-alternative: var(--status-error-alternative);
92
+ --color-status-error-ghost: var(--status-error-ghost);
93
+
94
+ --color-overlay-main: var(--overlay-main);
95
+ --color-overlay-alternative: var(--overlay-alternative);
96
+ }
97
+
98
+ /**
99
+ * 기본 테마의 Color 값을 설정합니다.
100
+ */
101
+ :root {
102
+ /**
103
+ * 1. Static
104
+ */
105
+ --static-white: var(--white-100);
106
+ --static-black: var(--black-100);
107
+
108
+ /**
109
+ * 2. Primary
110
+ */
111
+ --primary-main: var(--violet-60);
112
+ --primary-alternative: var(--violet-80);
113
+ --primary-subtle: var(--violet-40);
114
+
115
+ /**
116
+ * 3. Secondary
117
+ */
118
+ --secondary-main: var(--indigo-60);
119
+ --secondary-alternative: var(--indigo-80);
120
+ --secondary-subtle: var(--indigo-40);
121
+
122
+ /**
123
+ * 4. Tertiary
124
+ */
125
+ --tertiary-main: var(--navy-60);
126
+ --tertiary-alternative: var(--navy-80);
127
+ --tertiary-subtle: var(--navy-40);
128
+
129
+ /**
130
+ * 5. Background
131
+ */
132
+ --background-main: var(--white-100);
133
+ --background-alternative: var(--cool-neutral-5);
134
+ --background-subtle: var(--cool-neutral-0);
135
+ --background-elevated-main: var(--cool-neutral-10);
136
+ --background-elevated-alternative: var(--cool-neutral-20);
137
+ --background-emphize: var(--cool-neutral-90);
138
+ --background-quiet: --alpha(var(--cool-neutral-90) / 5%);
139
+ --background-success: var(--green-50);
140
+ --background-error: var(--red-50);
141
+ --background-info-subtle: --alpha(var(--blue-50) / 5%);
142
+ --background-success-subtle: --alpha(var(--green-50) / 5%);
143
+ --background-warning-subtle: --alpha(var(--yellow-50) / 5%);
144
+ --background-error-subtle: --alpha(var(--red-50) / 5%);
145
+
146
+ /**
147
+ * 6. Text
148
+ */
149
+ --text-main: var(--cool-neutral-90);
150
+ --text-alternative: var(--cool-neutral-80);
151
+ --text-subtle: var(--cool-neutral-60);
152
+ --text-ghost: var(--cool-neutral-30);
153
+ --text-quiet: var(--cool-neutral-25);
154
+ --text-emphize: var(--cool-neutral-10);
155
+ --text-interactive: var(--violet-60);
156
+ --text-info: var(--blue-70);
157
+ --text-success: var(--green-70);
158
+ --text-warning: var(--yellow-70);
159
+ --text-error: var(--red-70);
160
+
161
+ /**
162
+ * 7. Border
163
+ */
164
+ --border-main: var(--cool-neutral-10);
165
+ --border-alternative: var(--cool-neutral-30);
166
+ --border-subtle: var(--cool-neutral-0);
167
+ --border-emphize: var(--cool-neutral-90);
168
+ --border-quiet: var(--cool-neutral-5);
169
+ --border-main-focusRing: --alpha(var(--cool-neutral-10) / 50%);
170
+ --border-emphize--focusRing: --alpha(var(--cool-neutral-90) / 50%);
171
+ --border-control-default-focusRing: --alpha(var(--cool-neutral-20) / 50%);
172
+ --border-info: var(--blue-50);
173
+ --border-success: var(--green-50);
174
+ --border-warning: var(--orange-50);
175
+ --border-error: var(--red-50);
176
+ --border-success-focusRing: --alpha(var(--green-50) / 50%);
177
+ --border-warning-focusRing: --alpha(var(--orange-50) / 50%);
178
+ --border-error-focusRing: --alpha(var(--red-50) / 50%);
179
+
180
+ /**
181
+ * 8. Icon
182
+ */
183
+ --icon-main: var(--cool-neutral-90);
184
+ --icon-alternative: var(--cool-neutral-70);
185
+ --icon-quiet: var(--cool-neutral-20);
186
+ --icon-emphize: var(--cool-neutral-0);
187
+ --icon-disable: var(--cool-neutral-30);
188
+ --icon-info: var(--blue-50);
189
+ --icon-success: var(--green-50);
190
+ --icon-warning: var(--orange-50);
191
+ --icon-error: var(--red-50);
192
+
193
+ /**
194
+ * 9. State
195
+ */
196
+ --state-default: alpha(var(--cool-neutral-0) / 100%);
197
+ --state-hovered: alpha(var(--cool-neutral-5) / 100%);
198
+ --state-focused: alpha(var(--cool-neutral-10) / 100%);
199
+ --state-pressed: alpha(var(--cool-neutral-15) / 100%);
200
+ --state-disabled: alpha(var(--static-white) / 50%);
201
+
202
+ /**
203
+ * 10. Status
204
+ */
205
+ --status-info-main: var(--blue-50);
206
+ --status-info-alternative: var(--blue-70);
207
+ --status-info-ghost: var(--blue-10);
208
+ --status-success-main: var(--green-50);
209
+ --status-success-alternative: var(--green-70);
210
+ --status-success-ghost: var(--green-10);
211
+ --status-warning-main: var(--orange-50);
212
+ --status-warning-alternative: var(--orange-70);
213
+ --status-warning-ghost: var(--orange-10);
214
+ --status-error-main: var(--red-50);
215
+ --status-error-alternative: var(--red-70);
216
+ --status-error-ghost: var(--red-10);
217
+
218
+ /**
219
+ * 11. Overlay
220
+ */
221
+ --overlay-main: alpha(var(--cool-neutral-90) / 40%);
222
+ --overlay-alternative: alpha(var(--cool-neutral-90) / 20%);
223
+ }
224
+
225
+ /**
226
+ * Dark 테마에서의 Color 값을 설정합니다.
227
+ */
228
+ .dark {
229
+ /**
230
+ * TBD
231
+ */
232
+ }
@@ -0,0 +1,249 @@
1
+ :root {
2
+ /**
3
+ * 1. Static
4
+ */
5
+ --white-100: #ffffff;
6
+ --black-100: #000000;
7
+
8
+ /**
9
+ * 2. Neutral
10
+ */
11
+ --neutral-0: #fafafa;
12
+ --neutral-5: #f2f2f2;
13
+ --neutral-10: #e5e5e5;
14
+ --neutral-20: #d4d4d4;
15
+ --neutral-30: #b5b5b5;
16
+ --neutral-40: #989898;
17
+ --neutral-50: #737373;
18
+ --neutral-60: #525252;
19
+ --neutral-70: #404040;
20
+ --neutral-80: #282828;
21
+ --neutral-90: #171717;
22
+ --neutral-95: #0a0a0a;
23
+
24
+ /**
25
+ * 3. Cool Neutral
26
+ */
27
+ --cool-neutral-0: #f8f9fa;
28
+ --cool-neutral-5: #f1f3f5;
29
+ --cool-neutral-10: #e5e7ed;
30
+ --cool-neutral-20: #d3d7df;
31
+ --cool-neutral-30: #b9bdc6;
32
+ --cool-neutral-40: #9ea1aa;
33
+ --cool-neutral-50: #7e818b;
34
+ --cool-neutral-60: #5e626e;
35
+ --cool-neutral-70: #40424a;
36
+ --cool-neutral-80: #2d2f34;
37
+ --cool-neutral-90: #17181c;
38
+ --cool-neutral-95: #0c0a09;
39
+
40
+ /**
41
+ * 4. Navy
42
+ */
43
+ --navy-5: #f1f5f9;
44
+ --navy-10: #e2e8f0;
45
+ --navy-20: #d0d9e5;
46
+ --navy-30: #b6c2d1;
47
+ --navy-40: #94a3b8;
48
+ --navy-50: #72849e;
49
+ --navy-60: #51637e;
50
+ --navy-70: #3d4e66;
51
+ --navy-80: #2d3c52;
52
+ --navy-90: #1e293b;
53
+ --navy-95: #0f172a;
54
+
55
+ /**
56
+ * 5. Blue
57
+ */
58
+ --blue-5: #eff6ff;
59
+ --blue-10: #dbeafe;
60
+ --blue-20: #bfdbfe;
61
+ --blue-30: #93c5fd;
62
+ --blue-40: #60a5fa;
63
+ --blue-50: #3b82f6;
64
+ --blue-60: #2563eb;
65
+ --blue-70: #1d4ed8;
66
+ --blue-80: #1e40af;
67
+ --blue-90: #1e3a8a;
68
+ --blue-95: #172554;
69
+
70
+ /**
71
+ * 6. Red
72
+ */
73
+ --red-5: #fef2f2;
74
+ --red-10: #ffe2e2;
75
+ --red-20: #fecaca;
76
+ --red-30: #fca5a5;
77
+ --red-40: #f87171;
78
+ --red-50: #ef4444;
79
+ --red-60: #dc2626;
80
+ --red-70: #b91c1c;
81
+ --red-80: #991b1b;
82
+ --red-90: #7f1d1d;
83
+ --red-95: #450a0a;
84
+
85
+ /**
86
+ * 7. Orange
87
+ */
88
+ --orange-5: #fff7ed;
89
+ --orange-10: #ffedd5;
90
+ --orange-20: #fed7aa;
91
+ --orange-30: #fdba74;
92
+ --orange-40: #fb923c;
93
+ --orange-50: #f97316;
94
+ --orange-60: #ea580c;
95
+ --orange-70: #c2410c;
96
+ --orange-80: #9a3412;
97
+ --orange-90: #7c2d12;
98
+ --orange-95: #431407;
99
+
100
+ /**
101
+ * 8. Yellow
102
+ */
103
+ --yellow-5: #fefce8;
104
+ --yellow-10: #fef9c3;
105
+ --yellow-20: #fef08a;
106
+ --yellow-30: #fde047;
107
+ --yellow-40: #facc15;
108
+ --yellow-50: #eab308;
109
+ --yellow-60: #ca8a04;
110
+ --yellow-70: #a16207;
111
+ --yellow-80: #854d0e;
112
+ --yellow-90: #6c3c10;
113
+ --yellow-95: #422006;
114
+
115
+ /**
116
+ * 9. Lime
117
+ */
118
+ --lime-5: #f7fee7;
119
+ --lime-10: #ecfccb;
120
+ --lime-20: #d9f99d;
121
+ --lime-30: #bef264;
122
+ --lime-40: #a3e635;
123
+ --lime-50: #84cc16;
124
+ --lime-60: #65a30d;
125
+ --lime-70: #4d7c0f;
126
+ --lime-80: #3f6212;
127
+ --lime-90: #314e0f;
128
+ --lime-95: #1a2e05;
129
+
130
+ /**
131
+ * 10. Green
132
+ */
133
+ --green-5: #f0fdf4;
134
+ --green-10: #dcfce7;
135
+ --green-20: #bbf7d0;
136
+ --green-30: #86efac;
137
+ --green-40: #4ade80;
138
+ --green-50: #22c55e;
139
+ --green-60: #16a34a;
140
+ --green-70: #15803d;
141
+ --green-80: #166534;
142
+ --green-90: #104826;
143
+ --green-95: #052e16;
144
+
145
+ /**
146
+ * 11. Teal
147
+ */
148
+ --teal-5: #f0fdfa;
149
+ --teal-10: #ccfbf1;
150
+ --teal-20: #99f6e4;
151
+ --teal-30: #5eead4;
152
+ --teal-40: #2dd4bf;
153
+ --teal-50: #14b8a6;
154
+ --teal-60: #0d9488;
155
+ --teal-70: #0f766e;
156
+ --teal-80: #115e59;
157
+ --teal-90: #104440;
158
+ --teal-95: #042f2e;
159
+
160
+ /**
161
+ * 12. Cyan
162
+ */
163
+ --cyan-5: #ecfeff;
164
+ --cyan-10: #cffafe;
165
+ --cyan-20: #a5f3fc;
166
+ --cyan-30: #67e8f9;
167
+ --cyan-40: #22d3ee;
168
+ --cyan-50: #06b6d4;
169
+ --cyan-60: #0891b2;
170
+ --cyan-70: #0e7490;
171
+ --cyan-80: #155e75;
172
+ --cyan-90: #104154;
173
+ --cyan-95: #072f3e;
174
+
175
+ /**
176
+ * 13. Sky
177
+ */
178
+ --sky-5: #f0f9ff;
179
+ --sky-10: #e0f2fe;
180
+ --sky-20: #bae6fd;
181
+ --sky-30: #7dd3fc;
182
+ --sky-40: #38bdf8;
183
+ --sky-50: #0ea5e9;
184
+ --sky-60: #0284c7;
185
+ --sky-70: #0369a1;
186
+ --sky-80: #075985;
187
+ --sky-90: #0c4465;
188
+ --sky-95: #082f49;
189
+
190
+ /**
191
+ * 14. Indigo
192
+ */
193
+ --indigo-5: #eef2ff;
194
+ --indigo-10: #e0e7ff;
195
+ --indigo-20: #c7d2fe;
196
+ --indigo-30: #a5b4fc;
197
+ --indigo-40: #818cf8;
198
+ --indigo-50: #6366f1;
199
+ --indigo-60: #4f46e5;
200
+ --indigo-70: #4338ca;
201
+ --indigo-80: #3730a3;
202
+ --indigo-90: #2d2888;
203
+ --indigo-95: #1f1b59;
204
+
205
+ /**
206
+ * 15. Violet
207
+ */
208
+ --violet-5: #f5f3ff;
209
+ --violet-10: #ede9fe;
210
+ --violet-20: #ddd6fe;
211
+ --violet-30: #c4b5fd;
212
+ --violet-40: #a78bfa;
213
+ --violet-50: #8b5cf6;
214
+ --violet-60: #7c3aed;
215
+ --violet-70: #6d28d9;
216
+ --violet-80: #5b21b6;
217
+ --violet-90: #4c1d95;
218
+ --violet-95: #2d0964;
219
+
220
+ /**
221
+ * 16. Purple
222
+ */
223
+ --purple-5: #faf5ff;
224
+ --purple-10: #f9edff;
225
+ --purple-20: #f2d6ff;
226
+ --purple-30: #e9baff;
227
+ --purple-40: #db8cff;
228
+ --purple-50: #ce64ff;
229
+ --purple-60: #c042fa;
230
+ --purple-70: #a633db;
231
+ --purple-80: #861cb8;
232
+ --purple-90: #580a7d;
233
+ --purple-95: #290247;
234
+
235
+ /**
236
+ * 17. Pink
237
+ */
238
+ --pink-5: #fdf2f8;
239
+ --pink-10: #fce7f3;
240
+ --pink-20: #fbcfe8;
241
+ --pink-30: #f9a8d4;
242
+ --pink-40: #f472b6;
243
+ --pink-50: #ec4899;
244
+ --pink-60: #db2777;
245
+ --pink-70: #be185d;
246
+ --pink-80: #9b144a;
247
+ --pink-90: #76133b;
248
+ --pink-95: #3c061b;
249
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Spacing의 기본 단위를 정의합니다.
3
+ * @examples
4
+ * .p-2 -> padding: 8px;
5
+ */
6
+ @theme inline {
7
+ --spacing: 4px;
8
+ }
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Typography 값을 Utility Class로 정의합니다.
3
+ */
4
+
5
+ @utility font-h1-800 {
6
+ font-size: calc(var(--spacing) * 9);
7
+ font-weight: 800;
8
+ }
9
+
10
+ @utility font-h1-700 {
11
+ font-size: calc(var(--spacing) * 9);
12
+ font-weight: 700;
13
+ }
14
+
15
+ @utility font-h2-800 {
16
+ font-size: calc(var(--spacing) * 8);
17
+ font-weight: 800;
18
+ }
19
+
20
+ @utility font-h2-700 {
21
+ font-size: calc(var(--spacing) * 8);
22
+ font-weight: 700;
23
+ }
24
+
25
+ @utility font-h3-800 {
26
+ font-size: calc(var(--spacing) * 7);
27
+ font-weight: 800;
28
+ }
29
+
30
+ @utility font-h3-700 {
31
+ font-size: calc(var(--spacing) * 7);
32
+ font-weight: 700;
33
+ }
34
+
35
+ @utility font-h4-800 {
36
+ font-size: calc(var(--spacing) * 6);
37
+ font-weight: 800;
38
+ }
39
+
40
+ @utility font-h4-700 {
41
+ font-size: calc(var(--spacing) * 6);
42
+ font-weight: 700;
43
+ }
44
+
45
+ @utility font-h5-800 {
46
+ font-size: calc(var(--spacing) * 5);
47
+ font-weight: 800;
48
+ }
49
+
50
+ @utility font-h5-700 {
51
+ font-size: calc(var(--spacing) * 5);
52
+ font-weight: 700;
53
+ }
54
+
55
+ @utility font-subtitle1-700 {
56
+ font-size: calc(var(--spacing) * 4.5);
57
+ font-weight: 700;
58
+ }
59
+
60
+ @utility font-subtitle1-500 {
61
+ font-size: calc(var(--spacing) * 4.5);
62
+ font-weight: 500;
63
+ }
64
+
65
+ @utility font-subtitle2-700 {
66
+ font-size: calc(var(--spacing) * 4);
67
+ font-weight: 700;
68
+ }
69
+
70
+ @utility font-subtitle2-500 {
71
+ font-size: calc(var(--spacing) * 4);
72
+ font-weight: 500;
73
+ }
74
+
75
+ @utility font-subtitle3-700 {
76
+ font-size: calc(var(--spacing) * 3.75);
77
+ font-weight: 700;
78
+ }
79
+
80
+ @utility font-subtitle3-500 {
81
+ font-size: calc(var(--spacing) * 3.75);
82
+ font-weight: 500;
83
+ }
84
+
85
+ @utility font-body1-700 {
86
+ font-size: calc(var(--spacing) * 3.5);
87
+ font-weight: 700;
88
+ }
89
+
90
+ @utility font-body1-500 {
91
+ font-size: calc(var(--spacing) * 3.5);
92
+ font-weight: 500;
93
+ }
94
+
95
+ @utility font-body1-400 {
96
+ font-size: calc(var(--spacing) * 3.5);
97
+ font-weight: 400;
98
+ }
99
+
100
+ @utility font-body2-700 {
101
+ font-size: calc(var(--spacing) * 3.25);
102
+ font-weight: 700;
103
+ }
104
+
105
+ @utility font-body2-500 {
106
+ font-size: calc(var(--spacing) * 3.25);
107
+ font-weight: 500;
108
+ }
109
+
110
+ @utility font-body2-400 {
111
+ font-size: calc(var(--spacing) * 3.25);
112
+ font-weight: 400;
113
+ }
114
+
115
+ @utility font-body3-700 {
116
+ font-size: calc(var(--spacing) * 3);
117
+ font-weight: 700;
118
+ }
119
+
120
+ @utility font-body3-500 {
121
+ font-size: calc(var(--spacing) * 3);
122
+ font-weight: 500;
123
+ }
124
+
125
+ @utility font-body3-400 {
126
+ font-size: calc(var(--spacing) * 3);
127
+ font-weight: 400;
128
+ }
129
+
130
+ @utility font-body4-700 {
131
+ font-size: calc(var(--spacing) * 2.75);
132
+ font-weight: 700;
133
+ }
134
+
135
+ @utility font-body4-500 {
136
+ font-size: calc(var(--spacing) * 2.75);
137
+ font-weight: 500;
138
+ }
139
+
140
+ @utility font-body4-400 {
141
+ font-size: calc(var(--spacing) * 2.75);
142
+ font-weight: 400;
143
+ }