@xen-orchestra/web-core 0.0.1

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 (91) hide show
  1. package/lib/assets/css/_colors.pcss +125 -0
  2. package/lib/assets/css/_context.pcss +99 -0
  3. package/lib/assets/css/_fonts.pcss +6 -0
  4. package/lib/assets/css/_reset.pcss +42 -0
  5. package/lib/assets/css/_shadows.pcss +36 -0
  6. package/lib/assets/css/_typography.pcss +6 -0
  7. package/lib/assets/css/base.pcss +91 -0
  8. package/lib/assets/css/typography/_legacy.pcss +123 -0
  9. package/lib/assets/css/typography/_letter-spacing.pcss +27 -0
  10. package/lib/assets/css/typography/_line-height.pcss +19 -0
  11. package/lib/assets/css/typography/_size.pcss +95 -0
  12. package/lib/assets/css/typography/_style.pcss +34 -0
  13. package/lib/assets/css/typography/_weight.pcss +57 -0
  14. package/lib/assets/user.png +0 -0
  15. package/lib/components/PowerStateIcon.vue +46 -0
  16. package/lib/components/StatusPill.vue +32 -0
  17. package/lib/components/UiCounter.vue +89 -0
  18. package/lib/components/UiSpinner.vue +48 -0
  19. package/lib/components/UiTag.vue +97 -0
  20. package/lib/components/button/ButtonGroup.vue +33 -0
  21. package/lib/components/button/ButtonIcon.vue +199 -0
  22. package/lib/components/button/UiButton.vue +207 -0
  23. package/lib/components/chip/ChipIcon.vue +29 -0
  24. package/lib/components/chip/ChipRemoveIcon.vue +13 -0
  25. package/lib/components/chip/UiChip.vue +138 -0
  26. package/lib/components/dropdown/DropdownItem.vue +192 -0
  27. package/lib/components/dropdown/DropdownList.vue +31 -0
  28. package/lib/components/dropdown/DropdownTitle.vue +65 -0
  29. package/lib/components/icon/ComplexIcon.vue +51 -0
  30. package/lib/components/icon/ObjectIcon.vue +243 -0
  31. package/lib/components/icon/UiIcon.vue +47 -0
  32. package/lib/components/icon/VmIcon.vue +30 -0
  33. package/lib/components/layout/LayoutSidebar.vue +100 -0
  34. package/lib/components/menu/MenuItem.vue +82 -0
  35. package/lib/components/menu/MenuList.vue +104 -0
  36. package/lib/components/menu/MenuSeparator.vue +27 -0
  37. package/lib/components/menu/MenuTrigger.vue +52 -0
  38. package/lib/components/tab/TabItem.vue +100 -0
  39. package/lib/components/tab/TabList.vue +32 -0
  40. package/lib/components/tooltip/TooltipItem.vue +80 -0
  41. package/lib/components/tooltip/TooltipList.vue +15 -0
  42. package/lib/components/tree/TreeItem.vue +34 -0
  43. package/lib/components/tree/TreeItemError.vue +13 -0
  44. package/lib/components/tree/TreeItemLabel.vue +128 -0
  45. package/lib/components/tree/TreeLine.vue +51 -0
  46. package/lib/components/tree/TreeList.vue +14 -0
  47. package/lib/components/tree/TreeLoadingItem.vue +64 -0
  48. package/lib/components/user/UserLink.vue +72 -0
  49. package/lib/components/user/UserLogo.vue +57 -0
  50. package/lib/composables/context.composable.ts +34 -0
  51. package/lib/composables/tree/branch-definition.ts +17 -0
  52. package/lib/composables/tree/branch.ts +143 -0
  53. package/lib/composables/tree/build-nodes.ts +20 -0
  54. package/lib/composables/tree/define-branch.ts +23 -0
  55. package/lib/composables/tree/define-leaf.ts +16 -0
  56. package/lib/composables/tree/define-tree.ts +65 -0
  57. package/lib/composables/tree/leaf-definition.ts +8 -0
  58. package/lib/composables/tree/leaf.ts +34 -0
  59. package/lib/composables/tree/tree-node-base.ts +103 -0
  60. package/lib/composables/tree/tree-node-definition-base.ts +12 -0
  61. package/lib/composables/tree/types.ts +92 -0
  62. package/lib/composables/tree-filter.composable.ts +12 -0
  63. package/lib/composables/tree.composable.ts +85 -0
  64. package/lib/context.ts +10 -0
  65. package/lib/directives/tooltip.directive.md +117 -0
  66. package/lib/directives/tooltip.directive.ts +52 -0
  67. package/lib/i18n.ts +158 -0
  68. package/lib/layouts/CoreLayout.vue +182 -0
  69. package/lib/locales/de.json +6 -0
  70. package/lib/locales/en.json +15 -0
  71. package/lib/locales/fr.json +15 -0
  72. package/lib/stores/panel.store.ts +12 -0
  73. package/lib/stores/sidebar.store.ts +63 -0
  74. package/lib/stores/tooltip.store.ts +74 -0
  75. package/lib/stores/ui.store.ts +34 -0
  76. package/lib/types/button.type.ts +3 -0
  77. package/lib/types/color.type.ts +5 -0
  78. package/lib/types/object-icon.type.ts +43 -0
  79. package/lib/types/power-state.type.ts +1 -0
  80. package/lib/types/size.type.ts +3 -0
  81. package/lib/types/subscribable-store.type.ts +21 -0
  82. package/lib/types/utility.type.ts +1 -0
  83. package/lib/utils/create-subscribable-store-context.util.ts +66 -0
  84. package/lib/utils/has-ellipsis.util.ts +11 -0
  85. package/lib/utils/if-else.utils.ts +27 -0
  86. package/lib/utils/injection-keys.util.ts +17 -0
  87. package/lib/utils/sort-by-name-label.util.ts +6 -0
  88. package/lib/utils/to-array.utils.ts +9 -0
  89. package/lib/utils/unique-id.util.ts +8 -0
  90. package/package.json +45 -0
  91. package/tsconfig.json +12 -0
@@ -0,0 +1,125 @@
1
+ :root {
2
+ --color-logo: #282467;
3
+
4
+ --color-grey-000: #000000;
5
+ --color-grey-100: #1a1b38;
6
+ --color-grey-200: #595a6f;
7
+ --color-grey-300: #9899a5;
8
+ --color-grey-400: #bfbfc6;
9
+ --color-grey-500: #e5e5e7;
10
+ --color-grey-600: #ffffff;
11
+
12
+ --background-color-primary: #ffffff;
13
+ --background-color-secondary: #f6f6f7;
14
+
15
+ --color-purple-base: #8f84ff;
16
+ --color-purple-d20: color(#8f84ff blend(black 20%));
17
+ --color-purple-d40: color(#8f84ff blend(black 40%));
18
+ --color-purple-d60: color(#8f84ff blend(black 60%));
19
+ --color-purple-l20: color(#8f84ff blend(white 20%));
20
+ --color-purple-l40: color(#8f84ff blend(white 40%));
21
+ --color-purple-l60: color(#8f84ff blend(white 60%));
22
+ --background-color-purple-10: color(white blend(#8f84ff 10%));
23
+ --background-color-purple-20: color(white blend(#8f84ff 20%));
24
+ --background-color-purple-30: color(white blend(#8f84ff 30%));
25
+ --background-color-purple-60: color(white blend(#8f84ff 60%));
26
+
27
+ --color-green-base: #2ca878;
28
+ --color-green-d20: color(#2ca878 blend(black 20%));
29
+ --color-green-d40: color(#2ca878 blend(black 40%));
30
+ --color-green-d60: color(#2ca878 blend(black 60%));
31
+ --color-green-l20: color(#2ca878 blend(white 20%));
32
+ --color-green-l40: color(#2ca878 blend(white 40%));
33
+ --color-green-l60: color(#2ca878 blend(white 60%));
34
+ --background-color-green-10: color(white blend(#2ca878 10%));
35
+ --background-color-green-20: color(white blend(#2ca878 20%));
36
+ --background-color-green-30: color(white blend(#2ca878 30%));
37
+ --background-color-green-60: color(white blend(#2ca878 60%));
38
+
39
+ --color-orange-base: #ef7f18;
40
+ --color-orange-d20: color(#ef7f18 blend(black 20%));
41
+ --color-orange-d40: color(#ef7f18 blend(black 40%));
42
+ --color-orange-d60: color(#ef7f18 blend(black 60%));
43
+ --color-orange-l20: color(#ef7f18 blend(white 20%));
44
+ --color-orange-l40: color(#ef7f18 blend(white 40%));
45
+ --color-orange-l60: color(#ef7f18 blend(white 60%));
46
+ --background-color-orange-10: color(white blend(#ef7f18 10%));
47
+ --background-color-orange-20: color(white blend(#ef7f18 20%));
48
+ --background-color-orange-30: color(white blend(#ef7f18 30%));
49
+ --background-color-orange-60: color(white blend(#ef7f18 60%));
50
+
51
+ --color-red-base: #be1621;
52
+ --color-red-d20: color(#be1621 blend(black 20%));
53
+ --color-red-d40: color(#be1621 blend(black 40%));
54
+ --color-red-d60: color(#be1621 blend(black 60%));
55
+ --color-red-l20: color(#be1621 blend(white 20%));
56
+ --color-red-l40: color(#be1621 blend(white 40%));
57
+ --color-red-l60: color(#be1621 blend(white 60%));
58
+ --background-color-red-10: color(white blend(#be1621 10%));
59
+ --background-color-red-20: color(white blend(#be1621 20%));
60
+ --background-color-red-30: color(white blend(#be1621 30%));
61
+ --background-color-red-60: color(white blend(#be1621 60%));
62
+ }
63
+
64
+ :root.dark {
65
+ --color-logo: #e5e5e7;
66
+
67
+ --color-grey-000: #ffffff;
68
+ --color-grey-100: #e5e5e7;
69
+ --color-grey-200: #bfbfc6;
70
+ --color-grey-300: #9899a5;
71
+ --color-grey-400: #595a6f;
72
+ --color-grey-500: #3a3b54;
73
+ --color-grey-600: #000000;
74
+
75
+ --background-color-primary: #14141e;
76
+ --background-color-secondary: #17182b;
77
+
78
+ --color-purple-base: #8f84ff;
79
+ --color-purple-d20: color(#8f84ff blend(white 20%));
80
+ --color-purple-d40: color(#8f84ff blend(white 40%));
81
+ --color-purple-d60: color(#8f84ff blend(white 60%));
82
+ --color-purple-l20: color(#8f84ff blend(black 20%));
83
+ --color-purple-l40: color(#8f84ff blend(black 40%));
84
+ --color-purple-l60: color(#8f84ff blend(black 60%));
85
+ --background-color-purple-10: color(#17182b blend(#8f84ff 25%));
86
+ --background-color-purple-20: color(#17182b blend(#8f84ff 35%));
87
+ --background-color-purple-30: color(#17182b blend(#8f84ff 45%));
88
+ --background-color-purple-60: color(#17182b blend(#8f84ff 85%));
89
+
90
+ --color-green-base: #2ca878;
91
+ --color-green-d20: color(#2ca878 blend(white 20%));
92
+ --color-green-d40: color(#2ca878 blend(white 40%));
93
+ --color-green-d60: color(#2ca878 blend(white 60%));
94
+ --color-green-l20: color(#2ca878 blend(black 20%));
95
+ --color-green-l40: color(#2ca878 blend(black 40%));
96
+ --color-green-l60: color(#2ca878 blend(black 60%));
97
+ --background-color-green-10: color(#17182b blend(#2ca878 25%));
98
+ --background-color-green-20: color(#17182b blend(#2ca878 35%));
99
+ --background-color-green-30: color(#17182b blend(#2ca878 45%));
100
+ --background-color-green-60: color(#17182b blend(#2ca878 85%));
101
+
102
+ --color-orange-base: #ef7f18;
103
+ --color-orange-d20: color(#ef7f18 blend(white 20%));
104
+ --color-orange-d40: color(#ef7f18 blend(white 40%));
105
+ --color-orange-d60: color(#ef7f18 blend(white 60%));
106
+ --color-orange-l20: color(#ef7f18 blend(black 20%));
107
+ --color-orange-l40: color(#ef7f18 blend(black 40%));
108
+ --color-orange-l60: color(#ef7f18 blend(black 60%));
109
+ --background-color-orange-10: color(#17182b blend(#ef7f18 25%));
110
+ --background-color-orange-20: color(#17182b blend(#ef7f18 35%));
111
+ --background-color-orange-30: color(#17182b blend(#ef7f18 45%));
112
+ --background-color-orange-60: color(#17182b blend(#ef7f18 85%));
113
+
114
+ --color-red-base: #be1621;
115
+ --color-red-d20: color(#be1621 blend(white 20%));
116
+ --color-red-d40: color(#be1621 blend(white 40%));
117
+ --color-red-d60: color(#be1621 blend(white 60%));
118
+ --color-red-l20: color(#be1621 blend(black 20%));
119
+ --color-red-l40: color(#be1621 blend(black 40%));
120
+ --color-red-l60: color(#be1621 blend(black 60%));
121
+ --background-color-red-10: color(#17182b blend(#be1621 25%));
122
+ --background-color-red-20: color(#17182b blend(#be1621 35%));
123
+ --background-color-red-30: color(#17182b blend(#be1621 45%));
124
+ --background-color-red-60: color(#17182b blend(#be1621 85%));
125
+ }
@@ -0,0 +1,99 @@
1
+ .context-color-success {
2
+ color: var(--color-green-base);
3
+ }
4
+
5
+ .context-color-error {
6
+ color: var(--color-red-base);
7
+ }
8
+
9
+ .context-color-warning {
10
+ color: var(--color-orange-base);
11
+ }
12
+
13
+ .context-color-info {
14
+ color: var(--color-purple-base);
15
+ }
16
+
17
+ .context-background-color-success {
18
+ background-color: var(--background-color-green-10);
19
+ }
20
+
21
+ .context-background-color-error {
22
+ background-color: var(--background-color-red-10);
23
+ }
24
+
25
+ .context-background-color-warning {
26
+ background-color: var(--background-color-orange-10);
27
+ }
28
+
29
+ .context-background-color-info {
30
+ background-color: var(--background-color-purple-10);
31
+ }
32
+
33
+ .context-border-color-success {
34
+ border-color: var(--color-green-base);
35
+ }
36
+
37
+ .context-border-color-error {
38
+ border-color: var(--color-red-base);
39
+ }
40
+
41
+ .context-border-color-warning {
42
+ border-color: var(--color-orange-base);
43
+ }
44
+
45
+ .context-border-color-info {
46
+ border-color: var(--color-purple-base);
47
+ }
48
+
49
+ .color-context-info {
50
+ --color-context-primary: var(--color-purple-base);
51
+ --color-context-primary-hover: var(--color-purple-d20);
52
+ --color-context-primary-active: var(--color-purple-d40);
53
+ --color-context-primary-disabled: var(--color-grey-400);
54
+
55
+ --color-context-secondary: var(--background-color-purple-10);
56
+ --color-context-secondary-hover: var(--background-color-purple-20);
57
+ --color-context-secondary-active: var(--background-color-purple-30);
58
+
59
+ --color-context-tertiary: var(--background-color-primary);
60
+ }
61
+
62
+ .color-context-success {
63
+ --color-context-primary: var(--color-green-base);
64
+ --color-context-primary-hover: var(--color-green-d20);
65
+ --color-context-primary-active: var(--color-green-d40);
66
+ --color-context-primary-disabled: var(--color-green-l60);
67
+
68
+ --color-context-secondary: var(--background-color-green-10);
69
+ --color-context-secondary-hover: var(--background-color-green-20);
70
+ --color-context-secondary-active: var(--background-color-green-30);
71
+
72
+ --color-context-tertiary: var(--background-color-primary);
73
+ }
74
+
75
+ .color-context-warning {
76
+ --color-context-primary: var(--color-orange-base);
77
+ --color-context-primary-hover: var(--color-orange-d20);
78
+ --color-context-primary-active: var(--color-orange-d40);
79
+ --color-context-primary-disabled: var(--color-orange-l60);
80
+
81
+ --color-context-secondary: var(--background-color-orange-10);
82
+ --color-context-secondary-hover: var(--background-color-orange-20);
83
+ --color-context-secondary-active: var(--background-color-orange-30);
84
+
85
+ --color-context-tertiary: var(--background-color-primary);
86
+ }
87
+
88
+ .color-context-error {
89
+ --color-context-primary: var(--color-red-base);
90
+ --color-context-primary-hover: var(--color-red-d20);
91
+ --color-context-primary-active: var(--color-red-d40);
92
+ --color-context-primary-disabled: var(--color-red-l60);
93
+
94
+ --color-context-secondary: var(--background-color-red-10);
95
+ --color-context-secondary-hover: var(--background-color-red-20);
96
+ --color-context-secondary-active: var(--background-color-red-30);
97
+
98
+ --color-context-tertiary: var(--background-color-primary);
99
+ }
@@ -0,0 +1,6 @@
1
+ @import '@fontsource/poppins/400.css';
2
+ @import '@fontsource/poppins/500.css';
3
+ @import '@fontsource/poppins/600.css';
4
+ @import '@fontsource/poppins/700.css';
5
+ @import '@fontsource/poppins/900.css';
6
+ @import '@fontsource/poppins/400-italic.css';
@@ -0,0 +1,42 @@
1
+ html {
2
+ box-sizing: border-box;
3
+ font-size: 10px;
4
+ }
5
+
6
+ body {
7
+ font-size: 1.6rem;
8
+ }
9
+
10
+ *,
11
+ *::before,
12
+ *::after {
13
+ box-sizing: inherit;
14
+ margin: 0;
15
+ position: relative;
16
+ font-family: Poppins, sans-serif;
17
+ }
18
+
19
+ body,
20
+ h1,
21
+ h2,
22
+ h3,
23
+ h4,
24
+ h5,
25
+ h6,
26
+ p,
27
+ ol,
28
+ ul {
29
+ margin: 0;
30
+ padding: 0;
31
+ font-weight: inherit;
32
+ }
33
+
34
+ ol,
35
+ ul {
36
+ list-style: none;
37
+ }
38
+
39
+ img {
40
+ max-width: 100%;
41
+ height: auto;
42
+ }
@@ -0,0 +1,36 @@
1
+ :root {
2
+ --shadow-100: 0 0.1rem 0.1rem 0 rgba(26, 27, 56, 0.06);
3
+
4
+ --shadow-200: 0 0.1rem 0.1rem 0 rgba(26, 27, 56, 0.08), 0 0.2rem 0.1rem 0 rgba(26, 27, 56, 0.06),
5
+ 0 0.1rem 0.3rem 0 rgba(26, 27, 56, 0.1);
6
+
7
+ --shadow-300: 0 0.6rem 1rem 0 rgba(26, 27, 56, 0.08), 0 0.1rem 1.8rem 0 rgba(26, 27, 56, 0.06),
8
+ 0 0.3rem 0.5rem 0 rgba(26, 27, 56, 0.1);
9
+
10
+ --shadow-400: 0 2.4rem 3.8rem 0 rgba(26, 27, 56, 0.04), 0 0.9rem 4.6rem 0 rgba(26, 27, 56, 0.06),
11
+ 0 1.1rem 1.5rem 0 rgba(26, 27, 56, 0.1);
12
+
13
+ --shadow-500: 0 0.4rem 5rem 0 rgba(26, 27, 56, 0.25);
14
+
15
+ --shadow-left: 0 0 0 0 rgba(26, 27, 56, 0.1), -0.9rem 0 2rem 0 rgba(26, 27, 56, 0.1),
16
+ -3.7rem 0 3.7rem 0 rgba(26, 27, 56, 0.09), -8.3rem 0 5rem 0 rgba(26, 27, 56, 0.05),
17
+ -14.8rem 0 5.9rem 0 rgba(26, 27, 56, 0.01), -23.1rem 0 6.5rem 0 rgba(26, 27, 56, 0);
18
+ }
19
+
20
+ :root.dark {
21
+ --shadow-100: 0 0.1rem 0.1rem 0 rgba(0, 0, 0, 0.12);
22
+
23
+ --shadow-200: 0 0.1rem 0.1rem 0 rgba(0, 0, 0, 0.16), 0 0.2rem 0.1rem 0 rgba(0, 0, 0, 0.12),
24
+ 0 0.1rem 0.3rem 0 rgba(0, 0, 0, 0.2);
25
+
26
+ --shadow-300: 0 0.6rem 1rem 0 rgba(0, 0, 0, 0.16), 0 0.1rem 1.8rem 0 rgba(0, 0, 0, 0.12),
27
+ 0 0.3rem 0.5rem 0 rgba(0, 0, 0, 0.2);
28
+
29
+ --shadow-400: 0 2.4rem 3.8rem 0 rgba(0, 0, 0, 0.08), 0 0.9rem 4.6rem 0 rgba(0, 0, 0, 0.12),
30
+ 0 1.1rem 1.5rem 0 rgba(0, 0, 0, 0.2);
31
+
32
+ --shadow-500: 0 0.4rem 5rem 0 rgba(0, 0, 0, 0.8);
33
+
34
+ --shadow-left: 0 0 0 0 rgba(0, 0, 0, 0.5), -0.9rem 0 2rem 0 rgba(0, 0, 0, 0.45), -3.7rem 0 3.7rem 0 rgba(0, 0, 0, 0.4),
35
+ -8.3rem 0 5rem 0 rgba(0, 0, 0, 0.35), -14.8rem 0 5.9rem 0 rgba(0, 0, 0, 0.3), -23.1rem 0 6.5rem 0 rgba(0, 0, 0, 0);
36
+ }
@@ -0,0 +1,6 @@
1
+ @import 'typography/_size.pcss';
2
+ @import 'typography/_weight.pcss';
3
+ @import 'typography/_style.pcss';
4
+ @import 'typography/_line-height.pcss';
5
+ @import 'typography/_letter-spacing.pcss';
6
+ @import 'typography/_legacy.pcss';
@@ -0,0 +1,91 @@
1
+ @import '_colors.pcss';
2
+ @import '_reset.pcss';
3
+ @import '_fonts.pcss';
4
+ @import '_context.pcss';
5
+ @import '_shadows.pcss';
6
+ @import '_typography.pcss';
7
+
8
+ :root {
9
+ color: var(--color-grey-100);
10
+ background-color: var(--background-color-primary);
11
+ text-rendering: optimizeLegibility;
12
+ font-weight: normal;
13
+ -webkit-font-smoothing: antialiased;
14
+ -moz-osx-font-smoothing: grayscale;
15
+
16
+ &.dark {
17
+ color-scheme: dark;
18
+ }
19
+
20
+ --scrollbar-width: 1.4rem;
21
+ --scrollbar-border: 0.4rem;
22
+ --scrollbar-thumb-color: var(--color-purple-l40);
23
+ --scrollbar-track-color: var(--background-color-purple-10);
24
+
25
+ /* Firefox/Gecko and Chrome versions >= 121 */
26
+ scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
27
+ scrollbar-width: auto;
28
+
29
+ /* Chrome/Webkit */
30
+ ::-webkit-scrollbar {
31
+ width: var(--scrollbar-width);
32
+ }
33
+
34
+ ::-webkit-scrollbar-track {
35
+ background-color: var(--scrollbar-track-color);
36
+ }
37
+
38
+ ::-webkit-scrollbar-thumb {
39
+ background-color: var(--scrollbar-thumb-color);
40
+ border: var(--scrollbar-border) solid transparent;
41
+ border-radius: 90rem;
42
+ background-clip: content-box;
43
+ }
44
+ }
45
+
46
+ a {
47
+ color: var(--color-purple-base);
48
+ }
49
+
50
+ code,
51
+ code *,
52
+ pre {
53
+ font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
54
+ }
55
+
56
+ .card-view {
57
+ padding: 1.2rem;
58
+ display: flex;
59
+ gap: 2rem;
60
+ }
61
+
62
+ .link {
63
+ text-decoration: underline;
64
+ color: var(--color-purple-base);
65
+ cursor: pointer;
66
+ }
67
+
68
+ .link:hover {
69
+ color: var(--color-purple-d20);
70
+ }
71
+
72
+ .link:active,
73
+ .link.router-link-active {
74
+ color: var(--color-purple-d40);
75
+ }
76
+
77
+ .link.router-link-active {
78
+ text-decoration: underline;
79
+ }
80
+
81
+ .scrollbar-small {
82
+ scrollbar-width: thin;
83
+
84
+ &::-webkit-scrollbar {
85
+ --scrollbar-width: 0.7rem;
86
+ }
87
+
88
+ &::-webkit-scrollbar-thumb {
89
+ --scrollbar-border: 0.2rem;
90
+ }
91
+ }
@@ -0,0 +1,123 @@
1
+ .h1,
2
+ .h2,
3
+ .h3,
4
+ .h4,
5
+ .h5,
6
+ .h6,
7
+ .h7,
8
+ .p1,
9
+ .p2,
10
+ .p3,
11
+ .p4,
12
+ .c1,
13
+ .c2,
14
+ .c3,
15
+ .c4,
16
+ .c5 {
17
+ font-weight: 400;
18
+
19
+ &.black {
20
+ font-weight: 900;
21
+ }
22
+
23
+ &.semi-bold {
24
+ font-weight: 600;
25
+ }
26
+
27
+ &.medium {
28
+ font-weight: 500;
29
+ }
30
+
31
+ &.underline {
32
+ text-decoration: underline;
33
+ }
34
+
35
+ &.italic {
36
+ font-style: italic;
37
+ }
38
+ }
39
+
40
+ .h4,
41
+ .h5,
42
+ .h6,
43
+ .h7,
44
+ .p1,
45
+ .p2,
46
+ .p3,
47
+ .p4,
48
+ .c1,
49
+ .c2,
50
+ .c3,
51
+ .c4,
52
+ .c5 {
53
+ line-height: 1.5em;
54
+ }
55
+
56
+ .p1,
57
+ .p2,
58
+ .p3,
59
+ .p4,
60
+ .c1,
61
+ .c2,
62
+ .c3,
63
+ .c4,
64
+ .c5 {
65
+ letter-spacing: 0.04em;
66
+ }
67
+
68
+ .h1 {
69
+ font-size: 4.8rem;
70
+ line-height: 6rem;
71
+ }
72
+
73
+ .h2 {
74
+ font-size: 3.6rem;
75
+ line-height: 6rem;
76
+ }
77
+
78
+ .h3 {
79
+ font-size: 2.4rem;
80
+ line-height: 3.2rem;
81
+ }
82
+
83
+ .h4 {
84
+ font-size: 2rem;
85
+ }
86
+
87
+ .h5 {
88
+ font-size: 1.8rem;
89
+ }
90
+
91
+ .h6,
92
+ .p1,
93
+ .c1 {
94
+ font-size: 1.6rem;
95
+ }
96
+
97
+ .h7,
98
+ .p2,
99
+ .c2 {
100
+ font-size: 1.4rem;
101
+ }
102
+
103
+ .p3,
104
+ .c3 {
105
+ font-size: 1.2rem;
106
+ }
107
+
108
+ .p4,
109
+ .c4 {
110
+ font-size: 1rem;
111
+ }
112
+
113
+ .c5 {
114
+ font-size: 0.8rem;
115
+ }
116
+
117
+ .c1,
118
+ .c2,
119
+ .c3,
120
+ .c4,
121
+ .c5 {
122
+ text-transform: uppercase;
123
+ }
@@ -0,0 +1,27 @@
1
+ .typo {
2
+ /* 0.04em (Default) */
3
+
4
+ letter-spacing: 0.04em;
5
+
6
+ /* Normal */
7
+
8
+ &.h1-black,
9
+ &.h2-black,
10
+ &.h3-black,
11
+ &.h3-semi-bold,
12
+ &.h3-medium,
13
+ &.h4-black,
14
+ &.h4-semi-bold,
15
+ &.h4-medium,
16
+ &.h5-black,
17
+ &.h5-semi-bold,
18
+ &.h5-medium,
19
+ &.h6-black,
20
+ &.h6-semi-bold,
21
+ &.h6-medium,
22
+ &.h7-black,
23
+ &.h7-semi-bold,
24
+ &.h7-medium {
25
+ letter-spacing: normal;
26
+ }
27
+ }
@@ -0,0 +1,19 @@
1
+ .typo {
2
+ /* 1.5em (Default) */
3
+ line-height: 1.5em;
4
+
5
+ /* 6rem */
6
+
7
+ &.h1-black,
8
+ &.h2-black {
9
+ line-height: 6rem;
10
+ }
11
+
12
+ /* 3.2rem */
13
+
14
+ &.h3-black,
15
+ &.h3-semi-bold,
16
+ &.h3-medium {
17
+ line-height: 3.2rem;
18
+ }
19
+ }
@@ -0,0 +1,95 @@
1
+ .typo {
2
+ /* 4.8rem */
3
+
4
+ &.h1-black {
5
+ font-size: 4.8rem;
6
+ }
7
+
8
+ /* 3.6rem */
9
+
10
+ &.h2-black {
11
+ font-size: 3.6rem;
12
+ }
13
+
14
+ /* 2.4rem */
15
+
16
+ &.h3-black,
17
+ &.h3-semi-bold,
18
+ &.h3-medium {
19
+ font-size: 2.4rem;
20
+ }
21
+
22
+ /* 2rem */
23
+
24
+ &.h4-black,
25
+ &.h4-semi-bold,
26
+ &.h4-medium {
27
+ font-size: 2rem;
28
+ }
29
+
30
+ /* 1.8rem */
31
+
32
+ &.h5-black,
33
+ &.h5-semi-bold,
34
+ &.h5-medium {
35
+ font-size: 1.8rem;
36
+ }
37
+
38
+ /* 1.6rem */
39
+
40
+ &.h6-black,
41
+ &.h6-semi-bold,
42
+ &.h6-medium,
43
+ &.p1-medium,
44
+ &.p1-regular,
45
+ &.p1-regular-underline,
46
+ &.p1-regular-italic,
47
+ &.c1-semi-bold,
48
+ &.c1-regular {
49
+ font-size: 1.6rem;
50
+ }
51
+
52
+ /* 1.4rem */
53
+
54
+ &.h7-black,
55
+ &.h7-semi-bold,
56
+ &.h7-medium,
57
+ &.p2-medium,
58
+ &.p2-regular,
59
+ &.p2-regular-underline,
60
+ &.p2-regular-italic,
61
+ &.c2-semi-bold,
62
+ &.c2-regular {
63
+ font-size: 1.4rem;
64
+ }
65
+
66
+ /* 1.2rem */
67
+
68
+ &.p3-medium,
69
+ &.p3-regular,
70
+ &.p3-regular-underline,
71
+ &.p3-regular-italic,
72
+ &.c3-semi-bold,
73
+ &.c3-regular {
74
+ font-size: 1.2rem;
75
+ }
76
+
77
+ /* 1rem */
78
+
79
+ &.p4-semi-bold,
80
+ &.p4-medium,
81
+ &.p4-regular,
82
+ &.p4-regular-underline,
83
+ &.p4-regular-italic,
84
+ &.c4-semi-bold,
85
+ &.c4-regular {
86
+ font-size: 1rem;
87
+ }
88
+
89
+ /* 0.8rem */
90
+
91
+ &.c5-semi-bold,
92
+ &.c5-regular {
93
+ font-size: 0.8rem;
94
+ }
95
+ }
@@ -0,0 +1,34 @@
1
+ .typo {
2
+ /* UNDERLINE */
3
+
4
+ &.p1-regular-underline,
5
+ &.p2-regular-underline,
6
+ &.p3-regular-underline,
7
+ &.p4-regular-underline {
8
+ text-decoration: underline;
9
+ }
10
+
11
+ /* ITALIC */
12
+
13
+ &.p1-regular-italic,
14
+ &.p2-regular-italic,
15
+ &.p3-regular-italic,
16
+ &.p4-regular-italic {
17
+ font-style: italic;
18
+ }
19
+
20
+ /* UPPERCASE */
21
+
22
+ &.c1-semi-bold,
23
+ &.c1-regular,
24
+ &.c2-semi-bold,
25
+ &.c2-regular,
26
+ &.c3-semi-bold,
27
+ &.c3-regular,
28
+ &.c4-semi-bold,
29
+ &.c4-regular,
30
+ &.c5-semi-bold,
31
+ &.c5-regular {
32
+ text-transform: uppercase;
33
+ }
34
+ }