@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.
- package/components/accordion/accordion.tsx +114 -0
- package/components/accordion/index.ts +1 -0
- package/components/alert/alert.tsx +97 -0
- package/components/alert/index.ts +1 -0
- package/components/alert-dialog/alert-dialog.tsx +190 -0
- package/components/alert-dialog/index.ts +1 -0
- package/components/aspect-ratio/aspect-ratio.tsx +23 -0
- package/components/aspect-ratio/index.ts +1 -0
- package/components/avatar/avatar.tsx +62 -0
- package/components/avatar/index.ts +1 -0
- package/components/badge/badge.tsx +58 -0
- package/components/badge/index.ts +1 -0
- package/components/breadcrumb/breadcrumb.tsx +132 -0
- package/components/breadcrumb/index.ts +1 -0
- package/components/button/button.tsx +77 -0
- package/components/button/index.ts +1 -0
- package/components/button-group/button-group.tsx +99 -0
- package/components/button-group/index.ts +1 -0
- package/components/calendar/calendar.tsx +235 -0
- package/components/calendar/index.ts +1 -0
- package/components/card/card.tsx +107 -0
- package/components/card/index.ts +1 -0
- package/components/carousel/carousel.tsx +263 -0
- package/components/carousel/index.ts +1 -0
- package/components/chart/chart.tsx +377 -0
- package/components/chart/index.ts +1 -0
- package/components/checkbox/checkbox.tsx +41 -0
- package/components/checkbox/index.ts +1 -0
- package/components/collapsible/collapsible.tsx +44 -0
- package/components/collapsible/index.ts +1 -0
- package/components/command/command.tsx +201 -0
- package/components/command/index.ts +1 -0
- package/components/context-menu/context-menu.tsx +270 -0
- package/components/context-menu/index.ts +1 -0
- package/components/dialog/dialog.tsx +166 -0
- package/components/dialog/index.ts +1 -0
- package/components/drawer/drawer.tsx +154 -0
- package/components/drawer/index.ts +1 -0
- package/components/dropdown-menu/dropdown-menu.tsx +276 -0
- package/components/dropdown-menu/index.ts +1 -0
- package/components/empty/empty.tsx +129 -0
- package/components/empty/index.ts +1 -0
- package/components/field/field.tsx +272 -0
- package/components/field/index.ts +1 -0
- package/components/form/form.tsx +197 -0
- package/components/form/index.ts +1 -0
- package/components/hover-card/hover-card.tsx +57 -0
- package/components/hover-card/index.ts +1 -0
- package/components/input/index.ts +1 -0
- package/components/input/input.tsx +31 -0
- package/components/input-group/index.ts +1 -0
- package/components/input-group/input-group.tsx +189 -0
- package/components/input-otp/index.ts +1 -0
- package/components/input-otp/input-otp.tsx +99 -0
- package/components/item/index.ts +1 -0
- package/components/item/item.tsx +225 -0
- package/components/kbd/index.ts +1 -0
- package/components/kbd/kbd.tsx +38 -0
- package/components/label/index.ts +1 -0
- package/components/label/label.tsx +33 -0
- package/components/menubar/index.ts +1 -0
- package/components/menubar/menubar.tsx +299 -0
- package/components/navigation-menu/index.ts +1 -0
- package/components/navigation-menu/navigation-menu.tsx +194 -0
- package/components/pagination/index.ts +1 -0
- package/components/pagination/pagination.tsx +153 -0
- package/components/popover/index.ts +1 -0
- package/components/popover/popover.tsx +106 -0
- package/components/progress/index.ts +1 -0
- package/components/progress/progress.tsx +39 -0
- package/components/radio-group/index.ts +1 -0
- package/components/radio-group/radio-group.tsx +57 -0
- package/components/resizable/index.ts +1 -0
- package/components/resizable/resizable.tsx +73 -0
- package/components/scroll-area/index.ts +1 -0
- package/components/scroll-area/scroll-area.tsx +72 -0
- package/components/select/index.ts +1 -0
- package/components/select/select.tsx +213 -0
- package/components/separator/index.ts +1 -0
- package/components/separator/separator.tsx +39 -0
- package/components/sheet/index.ts +1 -0
- package/components/sheet/sheet.tsx +160 -0
- package/components/sidebar/index.ts +1 -0
- package/components/sidebar/sidebar.tsx +776 -0
- package/components/skeleton/index.ts +1 -0
- package/components/skeleton/skeleton.tsx +21 -0
- package/components/slider/index.ts +1 -0
- package/components/slider/slider.tsx +75 -0
- package/components/sonner/index.ts +2 -0
- package/components/sonner/sonner.tsx +52 -0
- package/components/spinner/index.ts +1 -0
- package/components/spinner/spinner.tsx +26 -0
- package/components/switch/index.ts +1 -0
- package/components/switch/switch.tsx +39 -0
- package/components/table/index.ts +1 -0
- package/components/table/table.tsx +140 -0
- package/components/tabs/index.ts +1 -0
- package/components/tabs/tabs.tsx +94 -0
- package/components/textarea/index.ts +1 -0
- package/components/textarea/textarea.tsx +26 -0
- package/components/toggle/index.ts +1 -0
- package/components/toggle/toggle.tsx +58 -0
- package/components/toggle-group/index.ts +1 -0
- package/components/toggle-group/toggle-group.tsx +97 -0
- package/components/tooltip/index.ts +1 -0
- package/components/tooltip/tooltip.tsx +82 -0
- package/dist/components/accordion/accordion.d.ts +50 -0
- package/dist/components/alert/alert.d.ts +31 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +35 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +12 -0
- package/dist/components/avatar/avatar.d.ts +11 -0
- package/dist/components/badge/badge.d.ts +12 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +23 -0
- package/dist/components/button/button.d.ts +15 -0
- package/dist/components/button-group/button-group.d.ts +16 -0
- package/dist/components/calendar/calendar.d.ts +15 -0
- package/dist/components/card/card.d.ts +15 -0
- package/dist/components/carousel/carousel.d.ts +24 -0
- package/dist/components/chart/chart.d.ts +20 -0
- package/dist/components/checkbox/checkbox.d.ts +9 -0
- package/dist/components/collapsible/collapsible.d.ts +13 -0
- package/dist/components/command/command.d.ts +18 -0
- package/dist/components/context-menu/context-menu.d.ts +18 -0
- package/dist/components/dialog/dialog.d.ts +25 -0
- package/dist/components/drawer/drawer.d.ts +18 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +21 -0
- package/dist/components/empty/empty.d.ts +25 -0
- package/dist/components/field/field.d.ts +26 -0
- package/dist/components/form/form.d.ts +30 -1
- package/dist/components/hover-card/hover-card.d.ts +13 -0
- package/dist/components/input/input.d.ts +10 -0
- package/dist/components/input-group/input-group.d.ts +19 -0
- package/dist/components/input-otp/input-otp.d.ts +23 -0
- package/dist/components/item/item.d.ts +33 -1
- package/dist/components/kbd/kbd.d.ts +10 -0
- package/dist/components/label/label.d.ts +9 -0
- package/dist/components/menubar/menubar.d.ts +25 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +26 -0
- package/dist/components/pagination/pagination.d.ts +26 -0
- package/dist/components/popover/popover.d.ts +17 -0
- package/dist/components/progress/progress.d.ts +10 -0
- package/dist/components/radio-group/radio-group.d.ts +12 -0
- package/dist/components/resizable/resizable.d.ts +19 -0
- package/dist/components/scroll-area/scroll-area.d.ts +14 -0
- package/dist/components/select/select.d.ts +25 -0
- package/dist/components/separator/separator.d.ts +11 -0
- package/dist/components/sheet/sheet.d.ts +23 -0
- package/dist/components/sidebar/sidebar.d.ts +50 -0
- package/dist/components/skeleton/skeleton.d.ts +8 -0
- package/dist/components/slider/slider.d.ts +12 -0
- package/dist/components/sonner/sonner.d.ts +14 -0
- package/dist/components/spinner/spinner.d.ts +9 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/table/table.d.ts +26 -0
- package/dist/components/tabs/tabs.d.ts +16 -6
- package/dist/components/textarea/textarea.d.ts +8 -0
- package/dist/components/toggle/toggle.d.ts +13 -0
- package/dist/components/toggle-group/toggle-group.d.ts +1 -0
- package/dist/components/tooltip/tooltip.d.ts +21 -0
- package/dist/design-system.css +1 -1
- package/dist/design-system.es.js +3493 -28470
- package/dist/design-system.umd.js +4 -257
- package/dist/index.d.ts +1 -1
- package/foundations/ThemeProvider.tsx +77 -0
- package/foundations/color.css +232 -0
- package/foundations/palette.css +249 -0
- package/foundations/spacing.css +8 -0
- package/foundations/typography.css +143 -0
- package/hooks/use-mobile.ts +19 -0
- package/index.css +173 -0
- package/index.ts +339 -0
- package/lib/utils.ts +6 -0
- package/package.json +40 -19
- 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,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
|
+
}
|