@timus-networks/theme 1.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 (143) hide show
  1. package/README.md +90 -0
  2. package/components-js/exporter.js +19 -0
  3. package/components-js/interfaces.ts +11 -0
  4. package/components-js/utils.ts +20 -0
  5. package/components-ts/exporter.js +19 -0
  6. package/components-ts/interfaces.ts +11 -0
  7. package/components-ts/utils.ts +20 -0
  8. package/convert.js +98 -0
  9. package/index.d.ts +0 -0
  10. package/js-converter.js +90 -0
  11. package/loader.js +41 -0
  12. package/module.js +62 -0
  13. package/package.json +38 -0
  14. package/plugins/js-components-installer.js +21 -0
  15. package/plugins/theme-provider.ts +75 -0
  16. package/plugins/ts-components-installer.js +21 -0
  17. package/scss/_buttons.scss +160 -0
  18. package/scss/_colors.scss +159 -0
  19. package/scss/_containers.scss +7 -0
  20. package/scss/_element-ui.scss +14 -0
  21. package/scss/_fonts.scss +69 -0
  22. package/scss/_icons.scss +87 -0
  23. package/scss/_inputs.scss +39 -0
  24. package/scss/_layers.scss +9 -0
  25. package/scss/_selectbox.scss +4 -0
  26. package/scss/_variables.scss +16 -0
  27. package/scss/element-ui/alert.scss +147 -0
  28. package/scss/element-ui/aside.scss +7 -0
  29. package/scss/element-ui/autocomplete.scss +80 -0
  30. package/scss/element-ui/avatar.scss +51 -0
  31. package/scss/element-ui/backtop.scss +22 -0
  32. package/scss/element-ui/badge.scss +58 -0
  33. package/scss/element-ui/base.scss +2 -0
  34. package/scss/element-ui/breadcrumb-item.scss +0 -0
  35. package/scss/element-ui/breadcrumb.scss +55 -0
  36. package/scss/element-ui/button-group.scss +0 -0
  37. package/scss/element-ui/button.scss +275 -0
  38. package/scss/element-ui/calendar.scss +79 -0
  39. package/scss/element-ui/card.scss +32 -0
  40. package/scss/element-ui/carousel-item.scss +50 -0
  41. package/scss/element-ui/carousel.scss +162 -0
  42. package/scss/element-ui/cascader-panel.scss +120 -0
  43. package/scss/element-ui/cascader.scss +182 -0
  44. package/scss/element-ui/checkbox-button.scss +0 -0
  45. package/scss/element-ui/checkbox-group.scss +0 -0
  46. package/scss/element-ui/checkbox.scss +359 -0
  47. package/scss/element-ui/col.scss +157 -0
  48. package/scss/element-ui/collapse-item.scss +0 -0
  49. package/scss/element-ui/collapse.scss +63 -0
  50. package/scss/element-ui/color-picker.scss +384 -0
  51. package/scss/element-ui/common/popup.scss +42 -0
  52. package/scss/element-ui/common/transition.scss +99 -0
  53. package/scss/element-ui/common/var.scss +1029 -0
  54. package/scss/element-ui/container.scss +14 -0
  55. package/scss/element-ui/date-picker/date-picker.scss +97 -0
  56. package/scss/element-ui/date-picker/date-range-picker.scss +101 -0
  57. package/scss/element-ui/date-picker/date-table.scss +151 -0
  58. package/scss/element-ui/date-picker/month-table.scss +82 -0
  59. package/scss/element-ui/date-picker/picker-panel.scss +117 -0
  60. package/scss/element-ui/date-picker/picker.scss +197 -0
  61. package/scss/element-ui/date-picker/time-picker.scss +85 -0
  62. package/scss/element-ui/date-picker/time-range-picker.scss +31 -0
  63. package/scss/element-ui/date-picker/time-spinner.scss +110 -0
  64. package/scss/element-ui/date-picker/year-table.scss +51 -0
  65. package/scss/element-ui/date-picker.scss +12 -0
  66. package/scss/element-ui/descriptions-item.scss +42 -0
  67. package/scss/element-ui/descriptions.scss +111 -0
  68. package/scss/element-ui/dialog.scss +123 -0
  69. package/scss/element-ui/display.scss +12 -0
  70. package/scss/element-ui/divider.scss +47 -0
  71. package/scss/element-ui/drawer.scss +219 -0
  72. package/scss/element-ui/dropdown-item.scss +0 -0
  73. package/scss/element-ui/dropdown-menu.scss +0 -0
  74. package/scss/element-ui/dropdown.scss +182 -0
  75. package/scss/element-ui/empty.scss +45 -0
  76. package/scss/element-ui/fonts/element-icons.ttf +0 -0
  77. package/scss/element-ui/fonts/element-icons.woff +0 -0
  78. package/scss/element-ui/footer.scss +8 -0
  79. package/scss/element-ui/form-item.scss +0 -0
  80. package/scss/element-ui/form.scss +167 -0
  81. package/scss/element-ui/header.scss +8 -0
  82. package/scss/element-ui/icon.scss +1167 -0
  83. package/scss/element-ui/image.scss +179 -0
  84. package/scss/element-ui/index.scss +87 -0
  85. package/scss/element-ui/infinite-scroll.scss +0 -0
  86. package/scss/element-ui/infiniteScroll.scss +0 -0
  87. package/scss/element-ui/input-number.scss +181 -0
  88. package/scss/element-ui/input.scss +360 -0
  89. package/scss/element-ui/link.scss +81 -0
  90. package/scss/element-ui/loading.scss +97 -0
  91. package/scss/element-ui/main.scss +12 -0
  92. package/scss/element-ui/menu-item-group.scss +0 -0
  93. package/scss/element-ui/menu-item.scss +0 -0
  94. package/scss/element-ui/menu.scss +289 -0
  95. package/scss/element-ui/message-box.scss +226 -0
  96. package/scss/element-ui/message.scss +120 -0
  97. package/scss/element-ui/mixins/_button.scss +81 -0
  98. package/scss/element-ui/mixins/config.scss +4 -0
  99. package/scss/element-ui/mixins/function.scss +44 -0
  100. package/scss/element-ui/mixins/mixins.scss +190 -0
  101. package/scss/element-ui/mixins/utils.scss +39 -0
  102. package/scss/element-ui/notification.scss +99 -0
  103. package/scss/element-ui/option-group.scss +42 -0
  104. package/scss/element-ui/option.scss +36 -0
  105. package/scss/element-ui/page-header.scss +41 -0
  106. package/scss/element-ui/pagination.scss +295 -0
  107. package/scss/element-ui/popconfirm.scss +16 -0
  108. package/scss/element-ui/popover.scss +40 -0
  109. package/scss/element-ui/popper.scss +102 -0
  110. package/scss/element-ui/progress.scss +141 -0
  111. package/scss/element-ui/radio-button.scss +113 -0
  112. package/scss/element-ui/radio-group.scss +9 -0
  113. package/scss/element-ui/radio.scss +199 -0
  114. package/scss/element-ui/rate.scss +49 -0
  115. package/scss/element-ui/reset.scss +79 -0
  116. package/scss/element-ui/result.scss +61 -0
  117. package/scss/element-ui/row.scss +43 -0
  118. package/scss/element-ui/scrollbar.scss +72 -0
  119. package/scss/element-ui/select-dropdown.scss +62 -0
  120. package/scss/element-ui/select.scss +152 -0
  121. package/scss/element-ui/skeleton-item.scss +84 -0
  122. package/scss/element-ui/skeleton.scss +40 -0
  123. package/scss/element-ui/slider.scss +250 -0
  124. package/scss/element-ui/spinner.scss +44 -0
  125. package/scss/element-ui/statistic.scss +38 -0
  126. package/scss/element-ui/step.scss +317 -0
  127. package/scss/element-ui/steps.scss +20 -0
  128. package/scss/element-ui/submenu.scss +0 -0
  129. package/scss/element-ui/switch.scss +116 -0
  130. package/scss/element-ui/tab-pane.scss +0 -0
  131. package/scss/element-ui/table-column.scss +97 -0
  132. package/scss/element-ui/table.scss +564 -0
  133. package/scss/element-ui/tabs.scss +602 -0
  134. package/scss/element-ui/tag.scss +163 -0
  135. package/scss/element-ui/time-picker.scss +8 -0
  136. package/scss/element-ui/time-select.scss +37 -0
  137. package/scss/element-ui/timeline-item.scss +86 -0
  138. package/scss/element-ui/timeline.scss +14 -0
  139. package/scss/element-ui/tooltip.scss +141 -0
  140. package/scss/element-ui/transfer.scss +228 -0
  141. package/scss/element-ui/tree.scss +123 -0
  142. package/scss/element-ui/upload.scss +603 -0
  143. package/scss/main.scss +22 -0
@@ -0,0 +1,160 @@
1
+ $btn-config: (
2
+ 'xs': (
3
+ min-width: 24px,
4
+ min-height: 24px,
5
+ padding: 0 4px,
6
+ font-size: 10px,
7
+ line-height: 10px,
8
+ border-radius: 3px,
9
+ ),
10
+ 'sm': (
11
+ min-width: 32px,
12
+ min-height: 32px,
13
+ padding: 0 6px,
14
+ font-size: 12px,
15
+ line-height: 16px,
16
+ border-radius: 3px,
17
+ ),
18
+ 'md': (
19
+ min-width: 36px,
20
+ min-height: 36px,
21
+ padding: 0 8px,
22
+ font-size: 14px,
23
+ line-height: 18px,
24
+ border-radius: 3px,
25
+ ),
26
+ 'lg': (
27
+ min-width: 40px,
28
+ min-height: 40px,
29
+ padding: 0 12px,
30
+ font-size: 16px,
31
+ line-height: 20px,
32
+ border-radius: 4px,
33
+ ),
34
+ 'xl': (
35
+ min-width: 48px,
36
+ min-height: 48px,
37
+ padding: 0 16px,
38
+ font-size: 18px,
39
+ line-height: 22px,
40
+ border-radius: 6px,
41
+ ),
42
+ );
43
+ $btn-font-color: white;
44
+ $btn-bg: 500;
45
+ $btn-border: 200;
46
+ $btn-hover-bg: 600;
47
+ $btn-active-bg: 700;
48
+
49
+ // #### Generate Size Classes
50
+ .btn {
51
+ // border-color: var(--button-border-color);
52
+ // background-color: var(--button-background-color);
53
+ text-overflow: ellipsis;
54
+ white-space: nowrap;
55
+ @each $size, $value in $btn-config {
56
+ &-#{$size} {
57
+ @extend %icon-#{$size};
58
+ @each $prop-name, $prop-value in $value {
59
+ --button-#{$size}-#{$prop-name}: #{$prop-value};
60
+ #{$prop-name}: var(--button-#{$size}-#{$prop-name});
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ // #### Generate Color Classes
67
+
68
+ @each $name, $item in $theme {
69
+ $name: "#{$name}";
70
+
71
+ .btn-#{$name} {
72
+ $light: if($name==light, var(--#{secondary}-#{600}), var(--button-font-color)); // var(--button-font-color); //
73
+
74
+ --button-background-color: var(--#{$name}-#{500}); // #{map.get($item, #{$btn-bg})};
75
+ --button-border-color: var(--#{$name}-#{500});
76
+ --button-hover-color: var(--button-hover-font-color);
77
+ --button-hover-background-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-hover-bg})};
78
+ --button-hover-border-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-hover-bg})};
79
+ --button-active-color: var(--button-active-font-color);
80
+ --button-active-background-color: rgba(var(--#{$name}-#{600}-rgb), 0.95); // #{map.get($item, #{$btn-active-bg})};
81
+ --button-active-border-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-active-bg})};
82
+ border-color: var(--button-border-color);
83
+ background-color: var(--button-background-color);
84
+ color: #{$light};
85
+
86
+ &:disabled {
87
+ &:not(.btn-ghost, .btn-outline) {
88
+ border-color: var(--button-border-color);
89
+ background-color: var(--button-border-color);
90
+ }
91
+ }
92
+
93
+ &-outline,
94
+ &-ghost {
95
+ --button-background-color: var(--#{$name}-#{500}); // #{map.get($item, #{$btn-bg})};
96
+ --button-border-color: var(--#{$name}-#{500});
97
+ --button-hover-color: var(--button-hover-font-color);
98
+ --button-hover-background-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-hover-bg})};
99
+ --button-hover-border-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-hover-bg})};
100
+ --button-active-color: var(--button-active-font-color);
101
+ --button-active-background-color: rgba(var(--#{$name}-#{600}-rgb), 0.95); // #{map.get($item, #{$btn-active-bg})};
102
+ --button-active-border-color: var(--#{$name}-#{600}); // #{map.get($item, #{$btn-active-bg})};
103
+ border-color: var(--button-border-color);
104
+ color: var(--button-background-color);
105
+
106
+ &:disabled {
107
+ // color: #{$light};
108
+ }
109
+
110
+ &:hover {
111
+ border-color: var(--button-hover-background-color);
112
+ background-color: var(--button-hover-background-color);
113
+ color: if($name==light, var(--#{light}-#{900}), var(--button-font-color)); // var(--button-font-color);
114
+ // background-color: transparent;
115
+ @if ($name==light) {
116
+ background-color: var(--#{light}-#{200});
117
+ }
118
+ }
119
+
120
+ &:focus {
121
+ // background-color: transparent;
122
+ // color: var(--light-500);
123
+ @if ($name==light) {
124
+ background-color: var(--#{light}-#{200});
125
+ }
126
+ }
127
+
128
+ &:active {
129
+ border-color: var(--button-active-background-color);
130
+ color: var(--button-font-color);
131
+ @if ($name==light) {
132
+ background-color: var(--#{light}-#{300});
133
+ } @else {
134
+ background-color: var(--button-active-background-color);
135
+ }
136
+ }
137
+ }
138
+
139
+ &:focus {
140
+ // @extend :focus-visible;
141
+ }
142
+
143
+ &-outline {
144
+ border-width: 1px;
145
+ border-style: solid;
146
+ background-color: transparent;
147
+ }
148
+
149
+ &-ghost {
150
+ border-color: transparent !important;
151
+ background-color: transparent;
152
+ }
153
+ }
154
+
155
+ // @each $key,$value in $item {
156
+ // .#{$name}-#{$key} {
157
+ // background-color: #{$value};
158
+ // }
159
+ // }
160
+ }
@@ -0,0 +1,159 @@
1
+ @use "sass:map";
2
+
3
+ $default-color: 500;
4
+ $prefix: '';
5
+ $theme-colors: (
6
+ 'cta': purple,
7
+ 'success': green,
8
+ 'warning': yellow,
9
+ 'danger': red,
10
+ );
11
+
12
+ $theme: (
13
+ light:(
14
+ '100': rgba(255, 255, 255, 10%),
15
+ '200': rgba(255, 255, 255, 20%),
16
+ '300': rgba(255, 255, 255, 30%),
17
+ '400': rgba(255, 255, 255, 40%),
18
+ '500': rgba(255, 255, 255, 100%),
19
+ '600': rgba(255, 255, 255, 60%),
20
+ '700': rgba(255, 255, 255, 70%),
21
+ '800': rgba(255, 255, 255, 80%),
22
+ '900': rgba(255, 255, 255, 90%),
23
+ ),
24
+ primary: (
25
+ '100': #DEE2FF,
26
+ '200': #C3C8FF,
27
+ '300': #9FA4FF,
28
+ '400': #7E79FF,
29
+ '500': #6959FB,
30
+ '600': #5C3BF0,
31
+ '700': #5737D6,
32
+ '800': #4028AB,
33
+ '900': #382887,
34
+ ),
35
+ secondary: (
36
+ '100': #D5F6E8,
37
+ '200': #AEECD4,
38
+ '300': #7EDDBF,
39
+ '400': #43C49F,
40
+ '500': #20A987,
41
+ '600': #12896E,
42
+ '700': #0F6D5A,
43
+ '800': #0E5748,
44
+ '900': #0D473D,
45
+ ),
46
+ gray: (
47
+ '100': #F8F7F8,
48
+ '200': #F3F2F4,
49
+ '300': #DAD9DD,
50
+ '400': #C1C0C7,
51
+ '500': #A8A6B1,
52
+ '600': #8F8D9A,
53
+ '700': #83818F,
54
+ '800': #454157,
55
+ '900': #07021F,
56
+ ),
57
+ info: (
58
+ '100': #ccf0ff,
59
+ '200': #99e1ff,
60
+ '300': #66d1ff,
61
+ '400': #33c2ff,
62
+ '500': #00b3ff,
63
+ '600': #008fcc,
64
+ '700': #006b99,
65
+ '800': #004866,
66
+ '900': #002433,
67
+ ),
68
+ danger: (
69
+ '100': #FDE3E3,
70
+ '200': #FDCBCB,
71
+ '300': #FAA7A7,
72
+ '400': #F35C5C,
73
+ '500': #EB4848,
74
+ '600': #D82A2A,
75
+ '700': #B52020,
76
+ '800': #961E1E,
77
+ '900': #7D1F1F,
78
+ ),
79
+ success: (
80
+ '100': #F0F8ED,
81
+ '200': #D9EDD3,
82
+ '300': #B4DAA7,
83
+ '400': #8EC87B,
84
+ '500': #69B64F,
85
+ '600': #488633,
86
+ '700': #3A6A2B,
87
+ '800': #315526,
88
+ '900': #294621,
89
+ ),
90
+ warning: (
91
+ '100': #FFF5C6,
92
+ '200': #FFE988,
93
+ '300': #FFD643,
94
+ '400': #FFC520,
95
+ '500': #F9A307,
96
+ '600': #DD7B02,
97
+ '700': #B75606,
98
+ '800': #94410C,
99
+ '900': #7A370D,
100
+ ),
101
+ );
102
+
103
+ @function to-rgb($value) {
104
+ @return red($value), green($value), blue($value);
105
+ }
106
+
107
+ @each $color, $item in $theme {
108
+ // add to theme colors
109
+ $color-list: (
110
+ $color: map.get($item, #{$default-color}),
111
+ );
112
+ $theme-colors: map.merge($theme-colors, $color-list);
113
+ }
114
+
115
+ // set variable
116
+ :root {
117
+ --bs-white-rgb: 255, 255, 255;
118
+ --bs-black-rgb: 0, 0, 0;
119
+ --bs-bg-opacity: 1;
120
+ @each $color, $item in $theme {
121
+ @each $key, $value in $item {
122
+ --#{$prefix}#{"#{$color}"}-#{$key}: #{$value};
123
+ // --#{$prefix}#{"#{$color}"}-#{$key}-rgb: #{to-rgb($value)};
124
+
125
+ .#{$prefix}#{"#{$color}"}-#{$key} {
126
+ // color: #{$value};
127
+ }
128
+
129
+ .#{$prefix}bg-#{"#{$color}"}-#{$key} {
130
+ // background-color: #{$value};
131
+ }
132
+
133
+ // .#{$name}-#{$key} {
134
+ // background-color: #{$value};
135
+ // }
136
+ }
137
+ }
138
+ }
139
+
140
+ // Color Shade and Tint Generator
141
+ // :root {
142
+ // @mixin variations($name, $color) {
143
+ // $percentages: (80%, 60%, 40%, 20%, 0, -20%, -40%, -60%, -80%);
144
+ // @each $percentage in $percentages {
145
+ // $i: list.index($percentages, $percentage);
146
+ // $variation: $color;
147
+ // @if $percentage > 0 {
148
+ // $variation: color.mix(white, $color, $percentage);
149
+ // }
150
+ // @else if $percentage < 0 {
151
+ // $variation: color.mix(black, $color, $percentage * -1);
152
+ // }
153
+ // --bs-#{$name}-#{$i * 100}: #{$variation};
154
+ // }
155
+ // }
156
+ // @each $name, $value in $colors {
157
+ // @include variations($name, $value);
158
+ // }
159
+ // }
@@ -0,0 +1,7 @@
1
+ .container {
2
+ @apply w-full px-4 mx-auto md:max-w-screen-sm lg:max-w-screen-md xl:max-w-screen-lg 2xl:max-w-screen-xl;
3
+ }
4
+
5
+ .fluid {
6
+ @apply w-full px-4;
7
+ }
@@ -0,0 +1,14 @@
1
+ /* theme color */
2
+ $--color-primary: #6959FB;
3
+ $--color-secondary: #20A987;
4
+ $--color-gray: #A8A6B1;
5
+ $--color-info: #00b3ff;
6
+ $--color-danger: #EB4848;
7
+ $--color-success: #69B64F;
8
+ $--color-warning: #F9A307;
9
+ /* icon font path, required */
10
+ $--font-path: '~element-ui/lib/theme-chalk/fonts';
11
+
12
+ // @import "~element-ui/packages/theme-chalk/src/index";
13
+
14
+ @import "./element-ui/index.scss";
@@ -0,0 +1,69 @@
1
+
2
+
3
+ $font-prefix: '';
4
+ $font-config-d: (
5
+ 'd1': ( font-size:5rem, line-height: 6rem, ),
6
+ 'd2': ( font-size: 4.5rem, line-height: 5.4rem, ),
7
+ 'd3': ( font-size: 4rem, line-height: 4.8rem, ),
8
+ 'd4': ( font-size: 3.5rem, line-height: 4.2rem, ),
9
+ 'd5': ( font-size: 3rem, line-height: 3.6rem, ),
10
+ 'd6': ( font-size: 2.625rem, line-height: 3.15rem, ),
11
+ );
12
+ $font-config-h: (
13
+ h1: ( font-size: 2.5rem, line-height: 3rem, ),
14
+ h2: ( font-size: 2rem, line-height: 2.4rem, ),
15
+ h3: ( font-size: 1.75rem, line-height: 2.4rem, ),
16
+ h4: ( font-size: 1.5rem, line-height: 1.8125rem, ),
17
+ h5: ( font-size: 1.25rem, line-height: 1.5rem, ),
18
+ h6: ( font-size: 1rem, line-height: 1.2rem, ),
19
+ );
20
+ $font-config-body: (
21
+ 'lead': ( font-size: 1.25rem, line-height: 1.875rem, letter-spacing: -0.01rem),
22
+ 'body-16': ( font-size: 1rem, line-height: 1.75rem, ),
23
+ 'body-14': ( font-size: 0.875rem, line-height: 1.25rem, ),
24
+ 'body-12': ( font-size: 0.75rem, line-height: 1.25rem, ),
25
+ 'caption-16': ( font-size: 1rem, line-height: 1rem, ),
26
+ 'caption-14': ( font-size: 0.875rem, line-height: 0.875rem, ),
27
+ 'caption-12': ( font-size: 0.75rem, line-height: 0.75rem, ),
28
+ 'caption-10': ( font-size: 0.625rem, line-height: 0.625rem, ),
29
+ 'caption-8': ( font-size: 0.5rem, line-height: 0.5rem, ),
30
+ );
31
+
32
+ %d {
33
+ margin: 0;
34
+ font-style: normal;
35
+ letter-spacing: -0.03rem;
36
+ }
37
+
38
+ %h {
39
+ margin: 0;
40
+ font-style: normal;
41
+ letter-spacing: -0.02rem;
42
+ }
43
+
44
+ @each $selector, $value in $font-config-d {
45
+ .#{$selector}, %#{$selector} {
46
+ @extend %d;
47
+ @each $prop-name, $prop-value in $value {
48
+ --#{$font-prefix}-#{$selector}-#{$prop-name}: #{$prop-value};
49
+ #{$prop-name}: var(--#{$font-prefix}-#{$selector}-#{$prop-name});
50
+ }
51
+ }
52
+ }
53
+ @each $selector, $value in $font-config-h {
54
+ #{$selector}, %#{$selector} {
55
+ @extend %h;
56
+ @each $prop-name, $prop-value in $value {
57
+ --#{$font-prefix}-#{$selector}-#{$prop-name}: #{$prop-value};
58
+ #{$prop-name}: var(--#{$font-prefix}-#{$selector}-#{$prop-name});
59
+ }
60
+ }
61
+ }
62
+ @each $selector, $value in $font-config-body {
63
+ .#{$selector}, %#{$selector} {
64
+ @each $prop-name, $prop-value in $value {
65
+ --#{$font-prefix}-#{$selector}-#{$prop-name}: #{$prop-value};
66
+ #{$prop-name}: var(--#{$font-prefix}-#{$selector}-#{$prop-name});
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,87 @@
1
+ $icon-prefix: 'icon';
2
+ $icon-config: (
3
+ 'xxs': ( min-width: .75rem, min-height: .75rem, font-size: .75rem ),
4
+ 'xs': ( min-width: 1rem, min-height: 1rem, font-size: 1rem ),
5
+ 'sm': ( min-width: 1.25rem, min-height: 1.25rem, font-size: 1.25rem ),
6
+ 'md': ( min-width: 1.25rem, min-height: 1.25rem, font-size: 1.25rem ),
7
+ 'lg': ( min-width: 1.5rem, min-height: 1.5rem, font-size: 1.5rem ),
8
+ 'xl': ( min-width: 1.5rem, min-height: 1.5rem, font-size: 1.5rem ),
9
+ 'xxl': ( min-width: 2.5rem, min-height: 2.5rem, font-size: 2.5rem ),
10
+ );
11
+
12
+ %icon {
13
+ position: relative;
14
+ display: flex;
15
+ gap: 0.375rem;
16
+ align-items: center;
17
+ @each $size, $value in $icon-config {
18
+ &-#{$size}::before, &-#{$size}::after {
19
+ @each $prop-name, $prop-value in $value {
20
+ --#{$icon-prefix}-#{$size}-#{$prop-name}: #{$prop-value};
21
+ #{$prop-name}: var(--#{$icon-prefix}-#{$size}-#{$prop-name});
22
+ }
23
+ }
24
+ }
25
+
26
+ &::before {
27
+ // margin-left: -2px;
28
+ }
29
+
30
+ &::after {
31
+ // content: none;
32
+ // margin-right: 2px;
33
+ }
34
+
35
+ &-left {
36
+ &::before {
37
+ content: '';
38
+ }
39
+
40
+ &::after {
41
+ content: none;
42
+ }
43
+ }
44
+
45
+ &-right {
46
+ &::before {
47
+ content: none;
48
+ }
49
+
50
+ &::after {
51
+ // content: '';
52
+ }
53
+
54
+ &-outline {
55
+ &::before {
56
+ right: 0;
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ [class^='#{$icon-prefix}'], [class*=' #{$icon-prefix}'] {
63
+ @extend %icon;
64
+
65
+ &:empty {
66
+ justify-content: center;
67
+ margin: 0;
68
+ padding: 0;
69
+
70
+ &::before, &::after {
71
+ margin: 0;
72
+ }
73
+ }
74
+ }
75
+
76
+ @each $size, $value in $icon-config {
77
+ [class^='#{$icon-prefix}-#{$size}'], [class*=' #{$icon-prefix}-#{$size}'] {
78
+ @extend %icon-#{$size};
79
+ }
80
+ }
81
+ [class^='#{$icon-prefix}-right'], [class*=' #{$icon-prefix}-right'] {
82
+ @extend %icon-right;
83
+ }
84
+
85
+ [class^='#{$icon-prefix}-left'], [class*=' #{$icon-prefix}-left'] {
86
+ @extend %icon-left;
87
+ }
@@ -0,0 +1,39 @@
1
+
2
+
3
+ $input-config: (
4
+ 'xs': ( min-height: 24px, padding: 0 4px, font-size: 10px, line-height: 10px ),
5
+ 'sm': ( min-height: 32px, padding: 0 6px, font-size: 12px, line-height: 16px ),
6
+ 'md': ( min-height: 36px, padding: 0 8px, font-size: 12px, line-height: 18px ),
7
+ 'lg': ( min-height: 40px, padding: 0 12px, font-size: 14px, line-height: 20px ),
8
+ 'xl': ( min-height: 48px, padding: 0 16px, font-size: 16px, line-height: 22px ),
9
+ );
10
+
11
+ // #### Generate Size Classes
12
+ .form-control {
13
+ border: 1px solid var(--brand-100);
14
+ border-radius: 4px;
15
+ color: var(--secondary-500);
16
+ font-family: var(--font-family);
17
+ font-weight: 400;
18
+ text-overflow: ellipsis;
19
+ white-space: nowrap;
20
+ @each $size, $value in $input-config {
21
+ &-#{$size} {
22
+ @extend %icon-#{$size};
23
+ @each $prop-name, $prop-value in $value {
24
+ --btn-#{$size}-#{$prop-name}: #{$prop-value};
25
+ #{$prop-name}: var(--btn-#{$size}-#{$prop-name});
26
+ }
27
+ }
28
+ }
29
+
30
+ &:focus-visible {
31
+ border: 1px solid var(--brand-300);
32
+ color: var(--secondary-500);
33
+ // @extend :focus-visible;
34
+ }
35
+ }
36
+
37
+ .form-check-input {
38
+ margin-top: 0;
39
+ }
@@ -0,0 +1,9 @@
1
+ @layer components {
2
+ @import 'colors';
3
+ @import 'containers';
4
+ @import 'fonts';
5
+ @import 'icons';
6
+ @import 'buttons.scss';
7
+ @import 'inputs.scss';
8
+ @import 'selectbox.scss';
9
+ }
@@ -0,0 +1,4 @@
1
+ select {
2
+ text-overflow: ellipsis;
3
+ white-space: nowrap;
4
+ }
@@ -0,0 +1,16 @@
1
+ :root {
2
+ --font-family: 'Rubik', 'Inter', 'Poppins', 'Quicksand', sans-serif;
3
+ --font-size: 1em;
4
+ --border-width: 1px;
5
+ --border-style: solid;
6
+ --border-radius: 4px;
7
+ --border-color: var(--secondary-100);
8
+ --body-color: var(--secondary-500);
9
+ --text-opacity: 1;
10
+ --button-font-color: white;
11
+ --button-font-family: var(--font-family);
12
+ --button-font-weight: 500;
13
+ --button-border-radius: var(--border-radius);
14
+ --button-hover-font-color: white;
15
+ --button-active-font-color: white;
16
+ }