@loword/loword-design-system 0.0.4 → 0.0.6
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/dist/index.css +9 -0
- package/package.json +6 -3
- package/src/styles/carousel.css +9 -0
- package/src/styles/color.css +185 -0
- package/src/styles/components/badge.css +41 -0
- package/src/styles/components/bread-crumb.css +23 -0
- package/src/styles/components/button.css +183 -0
- package/src/styles/components/editor.css +147 -0
- package/src/styles/components/icon.css +29 -0
- package/src/styles/components/index.css +9 -0
- package/src/styles/components/input.css +52 -0
- package/src/styles/components/modal.css +25 -0
- package/src/styles/components/shared.css +52 -0
- package/src/styles/components/spinner.css +38 -0
- package/src/styles/focus.css +12 -0
- package/src/styles/gradient.css +41 -0
- package/src/styles/layout.css +19 -0
- package/src/styles/motion.css +235 -0
- package/src/styles/radius.css +8 -0
- package/src/styles/responsive.css +42 -0
- package/src/styles/scrollbar.css +59 -0
- package/src/styles/slider.css +65 -0
- package/src/styles/spacing.css +592 -0
- package/src/styles/text-utils.css +7 -0
- package/src/styles/typography.css +171 -0
- package/src/theme.css +19 -0
- package/dist/components/Avatar/Avatar.d.ts +0 -11
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.js +0 -24
- package/dist/components/Avatar/AvatarBase.d.ts +0 -32
- package/dist/components/Avatar/AvatarBase.d.ts.map +0 -1
- package/dist/components/Avatar/AvatarBase.js +0 -49
- package/dist/components/Badge/Badge.d.ts +0 -25
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.js +0 -36
- package/dist/components/Badge/BadgeBase.d.ts +0 -10
- package/dist/components/Badge/BadgeBase.d.ts.map +0 -1
- package/dist/components/Badge/BadgeBase.js +0 -9
- package/dist/components/BreadCrumb/BreadCrumb.d.ts +0 -17
- package/dist/components/BreadCrumb/BreadCrumb.d.ts.map +0 -1
- package/dist/components/BreadCrumb/BreadCrumb.js +0 -37
- package/dist/components/BreadCrumb/BreadCrumbBase.d.ts +0 -9
- package/dist/components/BreadCrumb/BreadCrumbBase.d.ts.map +0 -1
- package/dist/components/BreadCrumb/BreadCrumbBase.js +0 -17
- package/dist/components/Button/Button.d.ts +0 -26
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.js +0 -102
- package/dist/components/Button/ButtonBase.d.ts +0 -5
- package/dist/components/Button/ButtonBase.d.ts.map +0 -1
- package/dist/components/Button/ButtonBase.js +0 -10
- package/dist/components/Button/ButtonSpinner.d.ts +0 -8
- package/dist/components/Button/ButtonSpinner.d.ts.map +0 -1
- package/dist/components/Button/ButtonSpinner.js +0 -15
- package/dist/components/Calendar/Calendar.d.ts +0 -16
- package/dist/components/Calendar/Calendar.d.ts.map +0 -1
- package/dist/components/Calendar/Calendar.js +0 -75
- package/dist/components/Callout/Callout.d.ts +0 -10
- package/dist/components/Callout/Callout.d.ts.map +0 -1
- package/dist/components/Callout/Callout.js +0 -6
- package/dist/components/Callout/CalloutBase.d.ts +0 -18
- package/dist/components/Callout/CalloutBase.d.ts.map +0 -1
- package/dist/components/Callout/CalloutBase.js +0 -21
- package/dist/components/Carousel/Carousel.d.ts +0 -50
- package/dist/components/Carousel/Carousel.d.ts.map +0 -1
- package/dist/components/Carousel/Carousel.js +0 -22
- package/dist/components/Carousel/CarouselBase.d.ts +0 -98
- package/dist/components/Carousel/CarouselBase.d.ts.map +0 -1
- package/dist/components/Carousel/CarouselBase.js +0 -144
- package/dist/components/Checkbox/Checkbox.d.ts +0 -27
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.js +0 -30
- package/dist/components/Checkbox/CheckboxBase.d.ts +0 -40
- package/dist/components/Checkbox/CheckboxBase.d.ts.map +0 -1
- package/dist/components/Checkbox/CheckboxBase.js +0 -57
- package/dist/components/Checkbox/CheckboxGroup.d.ts +0 -22
- package/dist/components/Checkbox/CheckboxGroup.d.ts.map +0 -1
- package/dist/components/Checkbox/CheckboxGroup.js +0 -13
- package/dist/components/Checkbox/FormCheckbox.d.ts +0 -14
- package/dist/components/Checkbox/FormCheckbox.d.ts.map +0 -1
- package/dist/components/Checkbox/FormCheckbox.js +0 -9
- package/dist/components/Checkbox/FormCheckboxGroup.d.ts +0 -13
- package/dist/components/Checkbox/FormCheckboxGroup.d.ts.map +0 -1
- package/dist/components/Checkbox/FormCheckboxGroup.js +0 -9
- package/dist/components/DataCalendar/DataCalendar.d.ts +0 -12
- package/dist/components/DataCalendar/DataCalendar.d.ts.map +0 -1
- package/dist/components/DataCalendar/DataCalendar.js +0 -13
- package/dist/components/DataCalendar/DataCalendarBase.d.ts +0 -45
- package/dist/components/DataCalendar/DataCalendarBase.d.ts.map +0 -1
- package/dist/components/DataCalendar/DataCalendarBase.js +0 -57
- package/dist/components/DatePicker/DatePicker.d.ts +0 -34
- package/dist/components/DatePicker/DatePicker.d.ts.map +0 -1
- package/dist/components/DatePicker/DatePicker.js +0 -44
- package/dist/components/DatePicker/FormDatePicker.d.ts +0 -12
- package/dist/components/DatePicker/FormDatePicker.d.ts.map +0 -1
- package/dist/components/DatePicker/FormDatePicker.js +0 -12
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -49
- package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +0 -197
- package/dist/components/DateRangePicker/FormDateRangePicker.d.ts +0 -12
- package/dist/components/DateRangePicker/FormDateRangePicker.d.ts.map +0 -1
- package/dist/components/DateRangePicker/FormDateRangePicker.js +0 -10
- package/dist/components/Divider/Divider.d.ts +0 -9
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/Divider.js +0 -11
- package/dist/components/Divider/DividerBase.d.ts +0 -9
- package/dist/components/Divider/DividerBase.d.ts.map +0 -1
- package/dist/components/Divider/DividerBase.js +0 -9
- package/dist/components/Drawer/Drawer.d.ts +0 -51
- package/dist/components/Drawer/Drawer.d.ts.map +0 -1
- package/dist/components/Drawer/Drawer.js +0 -30
- package/dist/components/Drawer/DrawerBase.d.ts +0 -52
- package/dist/components/Drawer/DrawerBase.d.ts.map +0 -1
- package/dist/components/Drawer/DrawerBase.js +0 -38
- package/dist/components/Editor/Editor.d.ts +0 -12
- package/dist/components/Editor/Editor.d.ts.map +0 -1
- package/dist/components/Editor/Editor.js +0 -162
- package/dist/components/Editor/EditorBase.d.ts +0 -52
- package/dist/components/Editor/EditorBase.d.ts.map +0 -1
- package/dist/components/Editor/EditorBase.js +0 -89
- package/dist/components/Editor/Viewer.d.ts +0 -7
- package/dist/components/Editor/Viewer.d.ts.map +0 -1
- package/dist/components/Editor/Viewer.js +0 -9
- package/dist/components/Editor/extensions.d.ts +0 -6
- package/dist/components/Editor/extensions.d.ts.map +0 -1
- package/dist/components/Editor/extensions.js +0 -38
- package/dist/components/FileUpload/FileUploadBase.d.ts +0 -50
- package/dist/components/FileUpload/FileUploadBase.d.ts.map +0 -1
- package/dist/components/FileUpload/FileUploadBase.js +0 -102
- package/dist/components/Input/FormInput.d.ts +0 -15
- package/dist/components/Input/FormInput.d.ts.map +0 -1
- package/dist/components/Input/FormInput.js +0 -19
- package/dist/components/Input/Input.d.ts +0 -24
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.js +0 -71
- package/dist/components/Input/InputBase.d.ts +0 -22
- package/dist/components/Input/InputBase.d.ts.map +0 -1
- package/dist/components/Input/InputBase.js +0 -17
- package/dist/components/LNB/LNBBase.d.ts +0 -82
- package/dist/components/LNB/LNBBase.d.ts.map +0 -1
- package/dist/components/LNB/LNBBase.js +0 -108
- package/dist/components/LoadingDots/LoadingDots.d.ts +0 -8
- package/dist/components/LoadingDots/LoadingDots.d.ts.map +0 -1
- package/dist/components/LoadingDots/LoadingDots.js +0 -29
- package/dist/components/MenuBar/MenuBar.d.ts +0 -21
- package/dist/components/MenuBar/MenuBar.d.ts.map +0 -1
- package/dist/components/MenuBar/MenuBar.js +0 -33
- package/dist/components/MenuBar/MenuBarBase.d.ts +0 -43
- package/dist/components/MenuBar/MenuBarBase.d.ts.map +0 -1
- package/dist/components/MenuBar/MenuBarBase.js +0 -69
- package/dist/components/Modal/Modal.d.ts +0 -51
- package/dist/components/Modal/Modal.d.ts.map +0 -1
- package/dist/components/Modal/Modal.js +0 -72
- package/dist/components/Modal/ModalBase.d.ts +0 -42
- package/dist/components/Modal/ModalBase.d.ts.map +0 -1
- package/dist/components/Modal/ModalBase.js +0 -30
- package/dist/components/Modal/openModal.d.ts +0 -24
- package/dist/components/Modal/openModal.d.ts.map +0 -1
- package/dist/components/Modal/openModal.js +0 -52
- package/dist/components/OTPInput/OTPInput.d.ts +0 -46
- package/dist/components/OTPInput/OTPInput.d.ts.map +0 -1
- package/dist/components/OTPInput/OTPInput.js +0 -87
- package/dist/components/Pagination/Pagination.d.ts +0 -12
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.js +0 -5
- package/dist/components/Pagination/PaginationBase.d.ts +0 -36
- package/dist/components/Pagination/PaginationBase.d.ts.map +0 -1
- package/dist/components/Pagination/PaginationBase.js +0 -44
- package/dist/components/Pagination/paginationUtils.d.ts +0 -2
- package/dist/components/Pagination/paginationUtils.d.ts.map +0 -1
- package/dist/components/Pagination/paginationUtils.js +0 -18
- package/dist/components/Popover/Popover.d.ts +0 -42
- package/dist/components/Popover/Popover.d.ts.map +0 -1
- package/dist/components/Popover/Popover.js +0 -31
- package/dist/components/Popover/PopoverBase.d.ts +0 -31
- package/dist/components/Popover/PopoverBase.d.ts.map +0 -1
- package/dist/components/Popover/PopoverBase.js +0 -18
- package/dist/components/Radio/FormRadioGroup.d.ts +0 -13
- package/dist/components/Radio/FormRadioGroup.d.ts.map +0 -1
- package/dist/components/Radio/FormRadioGroup.js +0 -9
- package/dist/components/Radio/Radio.d.ts +0 -24
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.js +0 -39
- package/dist/components/Radio/RadioBase.d.ts +0 -38
- package/dist/components/Radio/RadioBase.d.ts.map +0 -1
- package/dist/components/Radio/RadioBase.js +0 -46
- package/dist/components/Radio/RadioGroup.d.ts +0 -22
- package/dist/components/Radio/RadioGroup.d.ts.map +0 -1
- package/dist/components/Radio/RadioGroup.js +0 -7
- package/dist/components/ScrollArea/ScrollArea.d.ts +0 -15
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +0 -1
- package/dist/components/ScrollArea/ScrollArea.js +0 -10
- package/dist/components/Select/FormMultiSelect.d.ts +0 -13
- package/dist/components/Select/FormMultiSelect.d.ts.map +0 -1
- package/dist/components/Select/FormMultiSelect.js +0 -14
- package/dist/components/Select/FormSelect.d.ts +0 -13
- package/dist/components/Select/FormSelect.d.ts.map +0 -1
- package/dist/components/Select/FormSelect.js +0 -10
- package/dist/components/Select/MultiSelect.d.ts +0 -31
- package/dist/components/Select/MultiSelect.d.ts.map +0 -1
- package/dist/components/Select/MultiSelect.js +0 -59
- package/dist/components/Select/Select.d.ts +0 -41
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.js +0 -55
- package/dist/components/Select/SelectBase.d.ts +0 -59
- package/dist/components/Select/SelectBase.d.ts.map +0 -1
- package/dist/components/Select/SelectBase.js +0 -211
- package/dist/components/Skeleton/Skeleton.d.ts +0 -10
- package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
- package/dist/components/Skeleton/Skeleton.js +0 -8
- package/dist/components/Slider/Slider.d.ts +0 -23
- package/dist/components/Slider/Slider.d.ts.map +0 -1
- package/dist/components/Slider/Slider.js +0 -195
- package/dist/components/Spinner/Spinner.d.ts +0 -25
- package/dist/components/Spinner/Spinner.d.ts.map +0 -1
- package/dist/components/Spinner/Spinner.js +0 -20
- package/dist/components/Table/Table.d.ts +0 -34
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.js +0 -29
- package/dist/components/Table/TableBase.d.ts +0 -37
- package/dist/components/Table/TableBase.d.ts.map +0 -1
- package/dist/components/Table/TableBase.js +0 -39
- package/dist/components/Table/TableField.d.ts +0 -64
- package/dist/components/Table/TableField.d.ts.map +0 -1
- package/dist/components/Table/TableField.js +0 -87
- package/dist/components/Table/TanstackTable.d.ts +0 -23
- package/dist/components/Table/TanstackTable.d.ts.map +0 -1
- package/dist/components/Table/TanstackTable.js +0 -35
- package/dist/components/TimePicker/FormTimePicker.d.ts +0 -12
- package/dist/components/TimePicker/FormTimePicker.d.ts.map +0 -1
- package/dist/components/TimePicker/FormTimePicker.js +0 -12
- package/dist/components/TimePicker/TimePicker.d.ts +0 -27
- package/dist/components/TimePicker/TimePicker.d.ts.map +0 -1
- package/dist/components/TimePicker/TimePicker.js +0 -120
- package/dist/components/Toast/Toast.d.ts +0 -18
- package/dist/components/Toast/Toast.d.ts.map +0 -1
- package/dist/components/Toast/Toast.js +0 -42
- package/dist/components/Toast/Toaster.d.ts +0 -7
- package/dist/components/Toast/Toaster.d.ts.map +0 -1
- package/dist/components/Toast/Toaster.js +0 -7
- package/dist/components/ToggleButton/FormToggleButton.d.ts +0 -12
- package/dist/components/ToggleButton/FormToggleButton.d.ts.map +0 -1
- package/dist/components/ToggleButton/FormToggleButton.js +0 -9
- package/dist/components/ToggleButton/ToggleButton.d.ts +0 -31
- package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
- package/dist/components/ToggleButton/ToggleButton.js +0 -42
- package/dist/components/ToggleButton/ToggleButtonBase.d.ts +0 -41
- package/dist/components/ToggleButton/ToggleButtonBase.d.ts.map +0 -1
- package/dist/components/ToggleButton/ToggleButtonBase.js +0 -59
- package/dist/components/Tooltip/Tooltip.d.ts +0 -18
- package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip/Tooltip.js +0 -13
- package/dist/components/Tooltip/TooltipBase.d.ts +0 -39
- package/dist/components/Tooltip/TooltipBase.d.ts.map +0 -1
- package/dist/components/Tooltip/TooltipBase.js +0 -46
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
/* padding-x: Input */
|
|
3
|
+
--control-padding-x-input-2xs: var(--spacing_4);
|
|
4
|
+
--control-padding-x-input-xs: var(--spacing_6);
|
|
5
|
+
--control-padding-x-input-sm: var(--spacing_10);
|
|
6
|
+
--control-padding-x-input-md: var(--spacing_12);
|
|
7
|
+
--control-padding-x-input-lg: var(--spacing_16);
|
|
8
|
+
--control-padding-x-input-xl: var(--spacing_20);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@utility input-2xs {
|
|
12
|
+
height: var(--control-height-2xs);
|
|
13
|
+
padding-inline: var(--control-padding-x-input-2xs);
|
|
14
|
+
border-radius: var(--control-radius-2xs);
|
|
15
|
+
border-width: var(--control-border-2xs);
|
|
16
|
+
@apply display10;
|
|
17
|
+
}
|
|
18
|
+
@utility input-xs {
|
|
19
|
+
height: var(--control-height-xs);
|
|
20
|
+
padding-inline: var(--control-padding-x-input-xs);
|
|
21
|
+
border-radius: var(--control-radius-xs);
|
|
22
|
+
border-width: var(--control-border-2xs);
|
|
23
|
+
@apply display12;
|
|
24
|
+
}
|
|
25
|
+
@utility input-sm {
|
|
26
|
+
height: var(--control-height-sm);
|
|
27
|
+
padding-inline: var(--control-padding-x-input-sm);
|
|
28
|
+
border-radius: var(--control-radius-sm);
|
|
29
|
+
border-width: var(--control-border-2xs);
|
|
30
|
+
@apply display14;
|
|
31
|
+
}
|
|
32
|
+
@utility input-md {
|
|
33
|
+
height: var(--control-height-md);
|
|
34
|
+
padding-inline: var(--control-padding-x-input-md);
|
|
35
|
+
border-radius: var(--control-radius-md);
|
|
36
|
+
border-width: var(--control-border-2xs);
|
|
37
|
+
@apply display16;
|
|
38
|
+
}
|
|
39
|
+
@utility input-lg {
|
|
40
|
+
height: var(--control-height-lg);
|
|
41
|
+
padding-inline: var(--control-padding-x-input-lg);
|
|
42
|
+
border-radius: var(--control-radius-lg);
|
|
43
|
+
border-width: var(--control-border-2xs);
|
|
44
|
+
@apply display18;
|
|
45
|
+
}
|
|
46
|
+
@utility input-xl {
|
|
47
|
+
height: var(--control-height-xl);
|
|
48
|
+
padding-inline: var(--control-padding-x-input-xl);
|
|
49
|
+
border-radius: var(--control-radius-xl);
|
|
50
|
+
border-width: var(--control-border-xs);
|
|
51
|
+
@apply display20;
|
|
52
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* small | medium | large | xlarge */
|
|
2
|
+
|
|
3
|
+
@theme {
|
|
4
|
+
--modal-width-sm: 400px;
|
|
5
|
+
--modal-width-md: 520px;
|
|
6
|
+
--modal-width-lg: 680px;
|
|
7
|
+
--modal-width-xl: 860px;
|
|
8
|
+
--modal-mobile-margin: px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@utility modal-sm {
|
|
12
|
+
width: var(--modal-width-sm);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@utility modal-md {
|
|
16
|
+
width: var(--modal-width-md);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@utility modal-lg {
|
|
20
|
+
width: var(--modal-width-lg);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@utility modal-xl {
|
|
24
|
+
width: var(--modal-width-xl);
|
|
25
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
/* height (축) */
|
|
3
|
+
--control-height-2xs: 16px;
|
|
4
|
+
--control-height-xs: 24px;
|
|
5
|
+
--control-height-sm: 32px;
|
|
6
|
+
--control-height-md: 40px;
|
|
7
|
+
--control-height-lg: 48px;
|
|
8
|
+
--control-height-xl: 64px;
|
|
9
|
+
|
|
10
|
+
/* radius */
|
|
11
|
+
--control-radius-2xs: var(--radius_2);
|
|
12
|
+
--control-radius-xs: var(--radius_4);
|
|
13
|
+
--control-radius-sm: var(--radius_6);
|
|
14
|
+
--control-radius-md: var(--radius_8);
|
|
15
|
+
--control-radius-lg: var(--radius_10);
|
|
16
|
+
--control-radius-xl: var(--radius_16);
|
|
17
|
+
|
|
18
|
+
/* icon size (≈ height * 0.5) */
|
|
19
|
+
--control-icon-2xs: 8px;
|
|
20
|
+
--control-icon-xs: 12px;
|
|
21
|
+
--control-icon-sm: 16px;
|
|
22
|
+
--control-icon-md: 20px;
|
|
23
|
+
--control-icon-lg: 24px;
|
|
24
|
+
--control-icon-xl: 28px;
|
|
25
|
+
|
|
26
|
+
/* gap (text ↔ icon) */
|
|
27
|
+
--control-gap-2xs: var(--spacing_2);
|
|
28
|
+
--control-gap-xs: var(--spacing_4);
|
|
29
|
+
--control-gap-sm: var(--spacing_6);
|
|
30
|
+
--control-gap-md: var(--spacing_8);
|
|
31
|
+
--control-gap-lg: var(--spacing_10);
|
|
32
|
+
--control-gap-xl: var(--spacing_12);
|
|
33
|
+
|
|
34
|
+
/* border width */
|
|
35
|
+
--control-border-2xs: 1px;
|
|
36
|
+
--control-border-xs: 2px;
|
|
37
|
+
--control-border-sm: 3px;
|
|
38
|
+
--control-border-md: 4px;
|
|
39
|
+
--control-border-lg: 5px;
|
|
40
|
+
--control-border-xl: 6px;
|
|
41
|
+
|
|
42
|
+
/* focus ring width */
|
|
43
|
+
--control-focus-ring-2xs: 1px;
|
|
44
|
+
--control-focus-ring-xs: 2px;
|
|
45
|
+
--control-focus-ring-sm: 3px;
|
|
46
|
+
--control-focus-ring-md: 4px;
|
|
47
|
+
--control-focus-ring-lg: 5px;
|
|
48
|
+
--control-focus-ring-xl: 6px;
|
|
49
|
+
|
|
50
|
+
/* font-weight (컴포넌트 공용) */
|
|
51
|
+
--control-font-weight: var(--font-medium);
|
|
52
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
--control-size-spinner-2xs: var(--spacing_8);
|
|
3
|
+
--control-size-spinner-xs: var(--spacing_12);
|
|
4
|
+
--control-size-spinner-sm: var(--spacing_16);
|
|
5
|
+
--control-size-spinner-md: var(--spacing_20);
|
|
6
|
+
--control-size-spinner-lg: var(--spacing_24);
|
|
7
|
+
--control-size-spinner-xl: var(--spacing_28);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@utility spinner-2xs {
|
|
11
|
+
width: var(--control-size-spinner-2xs);
|
|
12
|
+
height: var(--control-size-spinner-2xs);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@utility spinner-xs {
|
|
16
|
+
width: var(--control-size-spinner-xs);
|
|
17
|
+
height: var(--control-size-spinner-xs);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@utility spinner-sm {
|
|
21
|
+
width: var(--control-size-spinner-sm);
|
|
22
|
+
height: var(--control-size-spinner-sm);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@utility spinner-md {
|
|
26
|
+
width: var(--control-size-spinner-md);
|
|
27
|
+
height: var(--control-size-spinner-md);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@utility spinner-lg {
|
|
31
|
+
width: var(--control-size-spinner-lg);
|
|
32
|
+
height: var(--control-size-spinner-lg);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@utility spinner-xl {
|
|
36
|
+
width: var(--control-size-spinner-xl);
|
|
37
|
+
height: var(--control-size-spinner-xl);
|
|
38
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* ==================== focus ==================== */
|
|
2
|
+
/* 포커스 시 outline을 강조 */
|
|
3
|
+
@utility ld-outline {
|
|
4
|
+
outline: 3px solid transparent;
|
|
5
|
+
transition: all 300ms ease-out;
|
|
6
|
+
border: 1px solid var(--color-mono10);
|
|
7
|
+
|
|
8
|
+
&:focus {
|
|
9
|
+
outline: 3px solid var(--color-lb500);
|
|
10
|
+
border: 0px;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* ==================== text gradient ==================== */
|
|
2
|
+
/* 텍스트에 그라데이션을 적용 */
|
|
3
|
+
@utility gradient-text {
|
|
4
|
+
background: linear-gradient(to right, #06f, #c0f, #f00);
|
|
5
|
+
background-clip: text;
|
|
6
|
+
-webkit-background-clip: text;
|
|
7
|
+
-webkit-text-fill-color: transparent;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@utility gradient-text2 {
|
|
11
|
+
background: linear-gradient(90deg, #9f21ff 0%, #d427db 50.96%, #f6214b 100%);
|
|
12
|
+
background-clip: text;
|
|
13
|
+
-webkit-background-clip: text;
|
|
14
|
+
-webkit-text-fill-color: transparent;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* ==================== gradient motion ==================== */
|
|
18
|
+
/* 그라데이션 배경 이동 애니메이션 */
|
|
19
|
+
@utility animate-gradient {
|
|
20
|
+
animation: gradient 8s linear infinite;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@keyframes gradient {
|
|
24
|
+
0% {
|
|
25
|
+
background-position: 0% 50%;
|
|
26
|
+
}
|
|
27
|
+
50% {
|
|
28
|
+
background-position: 100% 50%;
|
|
29
|
+
}
|
|
30
|
+
100% {
|
|
31
|
+
background-position: 0% 50%;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* ==================== performance ==================== */
|
|
36
|
+
/* 그라데이션 렌더링 최적화 */
|
|
37
|
+
@utility gradient-options {
|
|
38
|
+
will-change: transform;
|
|
39
|
+
transform: translateZ(0);
|
|
40
|
+
contain: layout style paint;
|
|
41
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
/* layout size */
|
|
3
|
+
--size_xs: 480px;
|
|
4
|
+
--size_sm: 576px;
|
|
5
|
+
--size_md: 768px;
|
|
6
|
+
--size_lg: 992px;
|
|
7
|
+
--size_xl: 1200px;
|
|
8
|
+
--size_2xl: 1600px;
|
|
9
|
+
--size_3xl: 1920px;
|
|
10
|
+
|
|
11
|
+
/* width layout */
|
|
12
|
+
--width-layout_xs: var(--size_xs);
|
|
13
|
+
--width-layout_sm: var(--size_sm);
|
|
14
|
+
--width-layout_md: var(--size_md);
|
|
15
|
+
--width-layout_lg: var(--size_lg);
|
|
16
|
+
--width-layout_xl: var(--size_xl);
|
|
17
|
+
--width-layout_2xl: var(--size_2xl);
|
|
18
|
+
--width-layout_3xl: var(--size_3xl);
|
|
19
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/* ==================== transition ==================== */
|
|
2
|
+
/* 상태 전환을 부드럽게 처리 */
|
|
3
|
+
@utility ld-transition {
|
|
4
|
+
transition: all 300ms ease-out;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/* ==================== error ==================== */
|
|
8
|
+
/* 에러 메시지 등장/퇴장 */
|
|
9
|
+
@keyframes error-fade-in {
|
|
10
|
+
from {
|
|
11
|
+
opacity: 0;
|
|
12
|
+
transform: translateY(-4px);
|
|
13
|
+
}
|
|
14
|
+
to {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transform: translateY(0);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@keyframes error-fade-out {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 1;
|
|
23
|
+
transform: translateY(0);
|
|
24
|
+
}
|
|
25
|
+
to {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: translateY(-4px);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* ==================== shake ==================== */
|
|
32
|
+
/* 흔들림 피드백 */
|
|
33
|
+
@utility animate-shake {
|
|
34
|
+
animation: shake 0.1s ease-in-out 2;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@keyframes shake {
|
|
38
|
+
0%,
|
|
39
|
+
100% {
|
|
40
|
+
transform: translateX(0);
|
|
41
|
+
}
|
|
42
|
+
25% {
|
|
43
|
+
transform: translateX(-10px);
|
|
44
|
+
}
|
|
45
|
+
75% {
|
|
46
|
+
transform: translateX(10px);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ==================== collapsible ==================== */
|
|
51
|
+
/* 펼침/접힘 모션 */
|
|
52
|
+
@utility animate-down {
|
|
53
|
+
animation: collapsible-down 300ms ease-in-out;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@utility animate-up {
|
|
57
|
+
animation: collapsible-up 300ms ease-in-out;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@keyframes collapsible-down {
|
|
61
|
+
from {
|
|
62
|
+
opacity: 0;
|
|
63
|
+
}
|
|
64
|
+
to {
|
|
65
|
+
opacity: 1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@keyframes collapsible-up {
|
|
70
|
+
from {
|
|
71
|
+
opacity: 1;
|
|
72
|
+
}
|
|
73
|
+
to {
|
|
74
|
+
opacity: 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ==================== plan ==================== */
|
|
79
|
+
/* plan 패널 등장/퇴장 */
|
|
80
|
+
@utility plan-enter {
|
|
81
|
+
animation: plan-enter 400ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@utility plan-leave {
|
|
85
|
+
animation: plan-leave 400ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@keyframes plan-enter {
|
|
89
|
+
from {
|
|
90
|
+
opacity: 0;
|
|
91
|
+
transform: translateY(10px);
|
|
92
|
+
}
|
|
93
|
+
to {
|
|
94
|
+
opacity: 1;
|
|
95
|
+
transform: translateY(0);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@keyframes plan-leave {
|
|
100
|
+
from {
|
|
101
|
+
opacity: 1;
|
|
102
|
+
transform: translateY(0);
|
|
103
|
+
}
|
|
104
|
+
to {
|
|
105
|
+
opacity: 0;
|
|
106
|
+
transform: translateY(10px);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* ==================== plan slide ==================== */
|
|
111
|
+
/* plan 패널 폭 슬라이드 */
|
|
112
|
+
@utility plan-slide-enter {
|
|
113
|
+
animation: plan-slide-enter-w 400ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
|
|
114
|
+
will-change: width;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@utility plan-slide-leave {
|
|
118
|
+
animation: plan-slide-leave-w 400ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
119
|
+
will-change: width;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@keyframes plan-slide-enter-w {
|
|
123
|
+
from {
|
|
124
|
+
width: 0;
|
|
125
|
+
max-width: 0;
|
|
126
|
+
}
|
|
127
|
+
to {
|
|
128
|
+
width: 300px;
|
|
129
|
+
max-width: 300px;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@keyframes plan-slide-leave-w {
|
|
134
|
+
from {
|
|
135
|
+
width: 300px;
|
|
136
|
+
max-width: 300px;
|
|
137
|
+
}
|
|
138
|
+
to {
|
|
139
|
+
width: 0;
|
|
140
|
+
max-width: 0;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* ==================== spin ==================== */
|
|
145
|
+
/* 1회 회전 */
|
|
146
|
+
@keyframes spin-once {
|
|
147
|
+
from {
|
|
148
|
+
transform: rotate(0deg);
|
|
149
|
+
}
|
|
150
|
+
to {
|
|
151
|
+
transform: rotate(360deg);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@utility spin-once {
|
|
156
|
+
animation: spin-once 1000ms;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* ==================== migration ==================== */
|
|
160
|
+
/* migration 드롭 모션 */
|
|
161
|
+
@keyframes migration-drop {
|
|
162
|
+
0% {
|
|
163
|
+
transform: translateX(-50%) translateY(-200px)
|
|
164
|
+
rotate(calc(var(--rf) + 18deg)) scale(0.98);
|
|
165
|
+
opacity: 0;
|
|
166
|
+
}
|
|
167
|
+
100% {
|
|
168
|
+
transform: translateX(-50%) translateY(0) rotate(var(--rf));
|
|
169
|
+
opacity: 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@utility migration-drop {
|
|
174
|
+
animation: migration-drop var(--dur, 1.1s) cubic-bezier(0.16, 0.9, 0.1, 1)
|
|
175
|
+
both;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@utility migration-variation {
|
|
179
|
+
position: absolute;
|
|
180
|
+
left: 50%;
|
|
181
|
+
will-change: transform, opacity;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* migration 드롭 모바일 버전 */
|
|
185
|
+
@keyframes migration-drop-mobile {
|
|
186
|
+
0% {
|
|
187
|
+
transform: translateX(-50%) translateY(-100px)
|
|
188
|
+
rotate(calc(var(--rf) + 18deg)) scale(0.98);
|
|
189
|
+
opacity: 0;
|
|
190
|
+
}
|
|
191
|
+
100% {
|
|
192
|
+
transform: translateX(-50%) translateY(0) rotate(var(--rf));
|
|
193
|
+
opacity: 1;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
@media (prefers-reduced-motion: reduce) {
|
|
198
|
+
.migration-drop {
|
|
199
|
+
animation: none !important;
|
|
200
|
+
opacity: 1 !important;
|
|
201
|
+
transform: translateX(-50%) translateY(0) rotate(var(--rf));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@media (max-width: 1080px) {
|
|
206
|
+
.migration-drop {
|
|
207
|
+
animation: migration-drop-mobile var(--dur, 1.1s)
|
|
208
|
+
cubic-bezier(0.16, 0.9, 0.1, 1) both;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* ==================== fade ==================== */
|
|
213
|
+
/* 일반 fade-in */
|
|
214
|
+
@keyframes fade-in {
|
|
215
|
+
from {
|
|
216
|
+
opacity: 0;
|
|
217
|
+
}
|
|
218
|
+
to {
|
|
219
|
+
opacity: 1;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@keyframes fade-out {
|
|
224
|
+
to {
|
|
225
|
+
opacity: 0;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
@utility animate-fade-in {
|
|
230
|
+
animation: fade-in 300ms ease-out forwards;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@utility animate-fade-out {
|
|
234
|
+
animation: fade-out 300ms ease-out forwards;
|
|
235
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@variant responsive_layout_min_xs (@media (min-width: theme(--size_xs)));
|
|
2
|
+
@variant responsive_layout_max_xs (@media (max-width: calc(theme(--size_xs) - 1px)));
|
|
3
|
+
@variant responsive_layout_min_sm (@media (min-width: theme(--size_sm)));
|
|
4
|
+
@variant responsive_layout_max_sm (@media (max-width: calc(theme(--size_sm) - 1px)));
|
|
5
|
+
@variant responsive_layout_min_md (@media (min-width: theme(--size_md)));
|
|
6
|
+
@variant responsive_layout_max_md (@media (max-width: calc(theme(--size_md) - 1px)));
|
|
7
|
+
@variant responsive_layout_min_lg (@media (min-width: theme(--size_lg)));
|
|
8
|
+
@variant responsive_layout_max_lg (@media (max-width: calc(theme(--size_lg) - 1px)));
|
|
9
|
+
@variant responsive_layout_min_xl (@media (min-width: theme(--size_xl)));
|
|
10
|
+
@variant responsive_layout_max_xl (@media (max-width: calc(theme(--size_xl) - 1px)));
|
|
11
|
+
@variant responsive_layout_min_2xl (@media (min-width: theme(--size_2xl)));
|
|
12
|
+
@variant responsive_layout_max_2xl (@media (max-width: calc(theme(--size_2xl) - 1px)));
|
|
13
|
+
@variant responsive_layout_min_3xl (@media (min-width: theme(--size_3xl)));
|
|
14
|
+
@variant responsive_layout_max_3xl (@media (max-width: calc(theme(--size_3xl) - 1px)));
|
|
15
|
+
|
|
16
|
+
@custom-variant mobile {
|
|
17
|
+
@variant responsive_layout_max_md {
|
|
18
|
+
@slot;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
@custom-variant tablet {
|
|
22
|
+
@variant responsive_layout_min_md {
|
|
23
|
+
@variant responsive_layout_max_lg {
|
|
24
|
+
@slot;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
@custom-variant tablet-up {
|
|
29
|
+
@variant responsive_layout_min_md {
|
|
30
|
+
@slot;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
@custom-variant tablet-down {
|
|
34
|
+
@variant responsive_layout_max_lg {
|
|
35
|
+
@slot;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
@custom-variant pc {
|
|
39
|
+
@variant responsive_layout_min_lg {
|
|
40
|
+
@slot;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/* ==================== scrollbar ==================== */
|
|
2
|
+
/* 스크롤은 유지하고 스크롤바는 숨김 */
|
|
3
|
+
@utility scrollbar-hide {
|
|
4
|
+
scrollbar-width: none;
|
|
5
|
+
|
|
6
|
+
&::-webkit-scrollbar {
|
|
7
|
+
display: none;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
-ms-overflow-style: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* hover 시 스크롤바를 드러냄 */
|
|
14
|
+
@utility scrollbar-hover {
|
|
15
|
+
scrollbar-width: thin;
|
|
16
|
+
scrollbar-color: transparent transparent;
|
|
17
|
+
|
|
18
|
+
&::-webkit-scrollbar {
|
|
19
|
+
width: 6px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&::-webkit-scrollbar-track {
|
|
23
|
+
background: transparent;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&::-webkit-scrollbar-thumb {
|
|
27
|
+
background: transparent;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&:hover {
|
|
31
|
+
scrollbar-color: rgba(0, 0, 0, 0.3) transparent;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&:hover::-webkit-scrollbar-thumb {
|
|
35
|
+
animation: scrollbar-fade-in 0.3s ease forwards;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&:not(:hover)::-webkit-scrollbar-thumb {
|
|
39
|
+
animation: scrollbar-fade-out 0.3s ease forwards;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@keyframes scrollbar-fade-in {
|
|
44
|
+
from {
|
|
45
|
+
background: transparent;
|
|
46
|
+
}
|
|
47
|
+
to {
|
|
48
|
+
background: rgba(0, 0, 0, 0.3);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@keyframes scrollbar-fade-out {
|
|
53
|
+
from {
|
|
54
|
+
background: rgba(0, 0, 0, 0.3);
|
|
55
|
+
}
|
|
56
|
+
to {
|
|
57
|
+
background: transparent;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
.ld-slider-thumb {
|
|
2
|
+
-webkit-appearance: none;
|
|
3
|
+
appearance: none;
|
|
4
|
+
background: transparent;
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.ld-slider-thumb::-webkit-slider-runnable-track {
|
|
10
|
+
background: transparent;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.ld-slider-thumb::-moz-range-track {
|
|
14
|
+
background: transparent;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.ld-slider-thumb::-webkit-slider-thumb {
|
|
18
|
+
-webkit-appearance: none;
|
|
19
|
+
width: 18px;
|
|
20
|
+
height: 18px;
|
|
21
|
+
border-radius: 50%;
|
|
22
|
+
background-color: var(--color-lb500);
|
|
23
|
+
border: 2px solid white;
|
|
24
|
+
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
|
|
25
|
+
transition: transform 150ms ease-out, box-shadow 150ms ease-out;
|
|
26
|
+
pointer-events: auto;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.ld-slider-thumb::-webkit-slider-thumb:hover {
|
|
30
|
+
transform: scale(1.15);
|
|
31
|
+
box-shadow: 0 2px 8px rgba(104, 145, 248, 0.4);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.ld-slider-thumb::-webkit-slider-thumb:active {
|
|
35
|
+
transform: scale(1.25);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.ld-slider-thumb::-moz-range-thumb {
|
|
39
|
+
width: 18px;
|
|
40
|
+
height: 18px;
|
|
41
|
+
border-radius: 50%;
|
|
42
|
+
background-color: var(--color-lb500);
|
|
43
|
+
border: 2px solid white;
|
|
44
|
+
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
pointer-events: auto;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.ld-slider-thumb:disabled::-webkit-slider-thumb {
|
|
50
|
+
background-color: var(--color-mono300);
|
|
51
|
+
cursor: not-allowed;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.ld-slider-thumb:disabled::-moz-range-thumb {
|
|
55
|
+
background-color: var(--color-mono300);
|
|
56
|
+
cursor: not-allowed;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ld-slider-thumb-active::-webkit-slider-thumb {
|
|
60
|
+
pointer-events: auto;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ld-slider-thumb-inactive::-webkit-slider-thumb {
|
|
64
|
+
pointer-events: none;
|
|
65
|
+
}
|