@amelharrak/eldo-ui 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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/css/eldo.css +11683 -0
  4. package/dist/css/eldo.css.map +1 -0
  5. package/dist/css/eldo.min.css +1 -0
  6. package/dist/index.cjs +2 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.mjs +64 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/types/__tests__/Alert.test.d.ts +1 -0
  11. package/dist/types/__tests__/Button.test.d.ts +1 -0
  12. package/dist/types/__tests__/Modal.test.d.ts +1 -0
  13. package/dist/types/components/Accordion.d.ts +15 -0
  14. package/dist/types/components/Alert.d.ts +15 -0
  15. package/dist/types/components/Avatar.d.ts +10 -0
  16. package/dist/types/components/Badge.d.ts +7 -0
  17. package/dist/types/components/Box.d.ts +27 -0
  18. package/dist/types/components/Breadcrumb.d.ts +15 -0
  19. package/dist/types/components/Button.d.ts +16 -0
  20. package/dist/types/components/ButtonGroup.d.ts +7 -0
  21. package/dist/types/components/Card.d.ts +15 -0
  22. package/dist/types/components/Carousel.d.ts +21 -0
  23. package/dist/types/components/Checkbox.d.ts +10 -0
  24. package/dist/types/components/Col.d.ts +12 -0
  25. package/dist/types/components/Collapse.d.ts +12 -0
  26. package/dist/types/components/Container.d.ts +8 -0
  27. package/dist/types/components/Dropdown.d.ts +19 -0
  28. package/dist/types/components/FileUpload.d.ts +13 -0
  29. package/dist/types/components/Input.d.ts +20 -0
  30. package/dist/types/components/InputOTP.d.ts +13 -0
  31. package/dist/types/components/ListGroup.d.ts +20 -0
  32. package/dist/types/components/Modal.d.ts +13 -0
  33. package/dist/types/components/Navbar.d.ts +17 -0
  34. package/dist/types/components/NumberInput.d.ts +15 -0
  35. package/dist/types/components/Offcanvas.d.ts +15 -0
  36. package/dist/types/components/Pagination.d.ts +14 -0
  37. package/dist/types/components/Popover.d.ts +14 -0
  38. package/dist/types/components/Progress.d.ts +11 -0
  39. package/dist/types/components/Radio.d.ts +11 -0
  40. package/dist/types/components/Row.d.ts +7 -0
  41. package/dist/types/components/Scrollspy.d.ts +13 -0
  42. package/dist/types/components/Select.d.ts +16 -0
  43. package/dist/types/components/Slider.d.ts +16 -0
  44. package/dist/types/components/Sonner.d.ts +21 -0
  45. package/dist/types/components/Spinner.d.ts +11 -0
  46. package/dist/types/components/Stat.d.ts +24 -0
  47. package/dist/types/components/Switch.d.ts +14 -0
  48. package/dist/types/components/Tabs.d.ts +20 -0
  49. package/dist/types/components/Text.d.ts +13 -0
  50. package/dist/types/components/Timeline.d.ts +41 -0
  51. package/dist/types/components/Toast.d.ts +17 -0
  52. package/dist/types/components/Tooltip.d.ts +12 -0
  53. package/dist/types/index.d.ts +40 -0
  54. package/package.json +106 -0
  55. package/setup.js +260 -0
  56. package/src/scss/abstracts/_functions.scss +19 -0
  57. package/src/scss/abstracts/_mixins.scss +33 -0
  58. package/src/scss/abstracts/_variables.scss +119 -0
  59. package/src/scss/base/_reset.scss +24 -0
  60. package/src/scss/base/_transitions.scss +10 -0
  61. package/src/scss/base/_typography.scss +50 -0
  62. package/src/scss/components/_accordion.scss +238 -0
  63. package/src/scss/components/_alert.scss +85 -0
  64. package/src/scss/components/_alerts.scss +137 -0
  65. package/src/scss/components/_avatar.scss +184 -0
  66. package/src/scss/components/_badge.scss +70 -0
  67. package/src/scss/components/_blockquote.scss +41 -0
  68. package/src/scss/components/_breadcrumb.scss +39 -0
  69. package/src/scss/components/_button-group.scss +43 -0
  70. package/src/scss/components/_button.scss +92 -0
  71. package/src/scss/components/_buttons.scss +66 -0
  72. package/src/scss/components/_calendar.scss +520 -0
  73. package/src/scss/components/_card.scss +52 -0
  74. package/src/scss/components/_cards.scss +123 -0
  75. package/src/scss/components/_carousel.scss +490 -0
  76. package/src/scss/components/_charts.scss +29 -0
  77. package/src/scss/components/_checkbox.scss +194 -0
  78. package/src/scss/components/_code.scss +70 -0
  79. package/src/scss/components/_collapse.scss +13 -0
  80. package/src/scss/components/_combobox.scss +239 -0
  81. package/src/scss/components/_date-picker.scss +102 -0
  82. package/src/scss/components/_divider.scss +55 -0
  83. package/src/scss/components/_dropdown.scss +122 -0
  84. package/src/scss/components/_file-upload.scss +233 -0
  85. package/src/scss/components/_floating-labels.scss +247 -0
  86. package/src/scss/components/_form-select.scss +49 -0
  87. package/src/scss/components/_forms.scss +41 -0
  88. package/src/scss/components/_index.scss +7 -0
  89. package/src/scss/components/_input-otp.scss +338 -0
  90. package/src/scss/components/_list-group.scss +95 -0
  91. package/src/scss/components/_modal.scss +166 -0
  92. package/src/scss/components/_nav.scss +175 -0
  93. package/src/scss/components/_navbar.scss +228 -0
  94. package/src/scss/components/_number-input.scss +67 -0
  95. package/src/scss/components/_offcanvas.scss +123 -0
  96. package/src/scss/components/_pagination.scss +64 -0
  97. package/src/scss/components/_placeholders.scss +52 -0
  98. package/src/scss/components/_popovers.scss +69 -0
  99. package/src/scss/components/_progress.scss +90 -0
  100. package/src/scss/components/_range.scss +82 -0
  101. package/src/scss/components/_scrollspy.scss +239 -0
  102. package/src/scss/components/_skeleton.scss +108 -0
  103. package/src/scss/components/_slider.scss +95 -0
  104. package/src/scss/components/_snippet.scss +79 -0
  105. package/src/scss/components/_spinners.scss +137 -0
  106. package/src/scss/components/_stat.scss +42 -0
  107. package/src/scss/components/_stepper.scss +104 -0
  108. package/src/scss/components/_switch.scss +57 -0
  109. package/src/scss/components/_table.scss +109 -0
  110. package/src/scss/components/_tag.scss +60 -0
  111. package/src/scss/components/_tags-input.scss +60 -0
  112. package/src/scss/components/_timeline.scss +238 -0
  113. package/src/scss/components/_toasts.scss +75 -0
  114. package/src/scss/components/_tooltips.scss +50 -0
  115. package/src/scss/components/_tree-view.scss +72 -0
  116. package/src/scss/components/_user.scss +26 -0
  117. package/src/scss/docs/_examples.scss +148 -0
  118. package/src/scss/docs/_layout.scss +251 -0
  119. package/src/scss/docs/_search.scss +141 -0
  120. package/src/scss/eldo.scss +74 -0
  121. package/src/scss/layout/_container.scss +37 -0
  122. package/src/scss/layout/_grid.scss +49 -0
  123. package/src/scss/pages/_landing-config.scss +135 -0
  124. package/src/scss/pages/_landing-features-enhanced.scss +165 -0
  125. package/src/scss/pages/_landing-hero-enhanced.scss +427 -0
  126. package/src/scss/pages/_landing-setup.scss +264 -0
  127. package/src/scss/pages/_landing.scss +1828 -0
  128. package/src/scss/utilities/_api.scss +66 -0
  129. package/src/scss/utilities/_colors.scss +32 -0
  130. package/src/scss/utilities/_display.scss +70 -0
  131. package/src/scss/utilities/_glass.scss +32 -0
  132. package/src/scss/utilities/_helpers.scss +16 -0
  133. package/src/scss/utilities/_map.scss +224 -0
  134. package/src/scss/utilities/_spacing.scss +58 -0
@@ -0,0 +1,233 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ // Custom File Input
5
+ .form-control[type="file"] {
6
+ &::file-selector-button {
7
+ background-color: $gray-200;
8
+ color: $body-color;
9
+ border: 0;
10
+ border-right: 1px solid $gray-300;
11
+ margin-right: 1rem;
12
+ transition: background-color .15s ease-in-out, color .15s ease-in-out;
13
+
14
+ &:hover {
15
+ background-color: $gray-300;
16
+ }
17
+ }
18
+ }
19
+
20
+ // Dropzone Area (Base)
21
+ .dropzone {
22
+ width: 100%;
23
+ min-height: 150px;
24
+ padding: 2rem;
25
+ border: 2px dashed $gray-300;
26
+ border-radius: $border-radius;
27
+ background-color: $gray-100;
28
+ display: flex;
29
+ flex-direction: column;
30
+ align-items: center;
31
+ justify-content: center;
32
+ text-align: center;
33
+ cursor: pointer;
34
+ transition: all .2s ease-in-out;
35
+
36
+ &:hover,
37
+ &.dragover {
38
+ background-color: color.scale($primary, $alpha: -95%);
39
+ border-color: $primary;
40
+ color: $primary;
41
+ }
42
+
43
+ .dropzone-icon {
44
+ width: 3rem;
45
+ height: 3rem;
46
+ margin-bottom: 1rem;
47
+ color: $gray-500;
48
+ transition: color .15s ease-in-out;
49
+ }
50
+
51
+ &:hover .dropzone-icon,
52
+ &.dragover .dropzone-icon {
53
+ color: $primary;
54
+ }
55
+
56
+ .dropzone-text {
57
+ font-weight: 500;
58
+ margin-bottom: 0.25rem;
59
+ }
60
+
61
+ .dropzone-hint {
62
+ font-size: 0.875rem;
63
+ color: $gray-600;
64
+ }
65
+ }
66
+
67
+ // Premium Dropzone
68
+ .dropzone-premium {
69
+ position: relative;
70
+ padding: 3rem 2rem;
71
+ background: #fff;
72
+ border: 2px dashed $gray-200;
73
+ border-radius: $border-radius-xl;
74
+ display: flex;
75
+ flex-direction: column;
76
+ align-items: center;
77
+ justify-content: center;
78
+ text-align: center;
79
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
80
+ cursor: pointer;
81
+ overflow: hidden;
82
+
83
+ &::before {
84
+ content: '';
85
+ position: absolute;
86
+ inset: 0;
87
+ background: color.scale($primary, $alpha: -98%);
88
+ opacity: 0;
89
+ transition: opacity 0.3s ease;
90
+ }
91
+
92
+ .dropzone-icon-wrapper {
93
+ width: 64px;
94
+ height: 64px;
95
+ background: color.scale($primary, $alpha: -92%);
96
+ border-radius: $border-radius-lg;
97
+ display: flex;
98
+ align-items: center;
99
+ justify-content: center;
100
+ margin-bottom: 1.5rem;
101
+ color: $primary;
102
+ transition: all 0.3s ease;
103
+ position: relative;
104
+ }
105
+
106
+ &:hover {
107
+ border-color: $primary;
108
+ transform: translateY(-2px);
109
+ box-shadow: $box-shadow-lg;
110
+
111
+ &::before {
112
+ opacity: 1;
113
+ }
114
+
115
+ .dropzone-icon-wrapper {
116
+ transform: scale(1.11);
117
+ background: $primary;
118
+ color: #fff;
119
+ }
120
+ }
121
+
122
+ &.dragover {
123
+ border-color: $primary;
124
+ background: color.scale($primary, $alpha: -95%);
125
+ transform: scale(1.02);
126
+ }
127
+ }
128
+
129
+ // Avatar Upload
130
+ .upload-avatar {
131
+ position: relative;
132
+ width: 120px;
133
+ height: 120px;
134
+ margin: 0 auto;
135
+
136
+ .avatar-preview {
137
+ width: 100%;
138
+ height: 100%;
139
+ border-radius: 50%;
140
+ object-fit: cover;
141
+ border: 4px solid #fff;
142
+ box-shadow: $box-shadow;
143
+ }
144
+
145
+ .upload-overlay {
146
+ position: absolute;
147
+ inset: 0;
148
+ background: rgba(0, 0, 0, 0.4);
149
+ border-radius: 50%;
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: center;
153
+ color: #fff;
154
+ opacity: 0;
155
+ transition: opacity 0.2s ease;
156
+ cursor: pointer;
157
+
158
+ svg {
159
+ width: 24px;
160
+ height: 24px;
161
+ }
162
+ }
163
+
164
+ &:hover .upload-overlay {
165
+ opacity: 1;
166
+ }
167
+ }
168
+
169
+ // Upload Item (File List)
170
+ .upload-item {
171
+ display: flex;
172
+ align-items: center;
173
+ padding: 0.75rem 1rem;
174
+ background: #fff;
175
+ border: 1px solid $gray-200;
176
+ border-radius: $border-radius-lg;
177
+ margin-bottom: 0.5rem;
178
+ transition: all 0.2s ease;
179
+
180
+ &:hover {
181
+ border-color: $primary;
182
+ transform: translateX(4px);
183
+ }
184
+
185
+ .file-icon {
186
+ width: 40px;
187
+ height: 40px;
188
+ background: $gray-100;
189
+ border-radius: $border-radius;
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ margin-right: 1rem;
194
+ color: $gray-600;
195
+ }
196
+
197
+ .file-info {
198
+ flex: 1;
199
+ min-width: 0;
200
+
201
+ .file-name {
202
+ display: block;
203
+ font-weight: 500;
204
+ white-space: nowrap;
205
+ overflow: hidden;
206
+ text-overflow: ellipsis;
207
+ margin-bottom: 0.125rem;
208
+ }
209
+
210
+ .file-progress {
211
+ height: 4px;
212
+ background: $gray-200;
213
+ border-radius: 2px;
214
+ overflow: hidden;
215
+
216
+ .progress-bar {
217
+ height: 100%;
218
+ background: $primary;
219
+ transition: width 0.3s ease;
220
+ }
221
+ }
222
+ }
223
+
224
+ .file-action {
225
+ margin-left: 1rem;
226
+ color: $gray-400;
227
+ cursor: pointer;
228
+
229
+ &:hover {
230
+ color: $danger;
231
+ }
232
+ }
233
+ }
@@ -0,0 +1,247 @@
1
+ @use "sass:math";
2
+ @use "sass:color";
3
+ @use "../abstracts/variables" as *;
4
+
5
+ .form-floating {
6
+ position: relative;
7
+
8
+ >.form-control,
9
+ >.form-control-plaintext,
10
+ >.form-select {
11
+ height: 3.5rem;
12
+ line-height: 1.25;
13
+ border-radius: $border-radius;
14
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
15
+ }
16
+
17
+ >label {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ padding: 1rem 0.75rem;
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ pointer-events: none;
28
+ border: 1px solid transparent;
29
+ transform-origin: 0 0;
30
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
31
+ color: $gray-600;
32
+ }
33
+
34
+ >.form-control {
35
+ padding: 1rem 0.75rem;
36
+
37
+ &::placeholder {
38
+ color: transparent;
39
+ }
40
+
41
+ &:focus,
42
+ &:not(:placeholder-shown) {
43
+ padding-top: 1.625rem;
44
+ padding-bottom: 0.625rem;
45
+ }
46
+
47
+ &:-webkit-autofill {
48
+ padding-top: 1.625rem;
49
+ padding-bottom: 0.625rem;
50
+ }
51
+ }
52
+
53
+ >.form-select {
54
+ padding-top: 1.625rem;
55
+ padding-bottom: 0.625rem;
56
+ }
57
+
58
+ >.form-control:focus~label,
59
+ >.form-control:not(:placeholder-shown)~label,
60
+ >.form-select~label {
61
+ opacity: 0.65;
62
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
63
+ }
64
+
65
+ >.form-control:-webkit-autofill~label {
66
+ opacity: 0.65;
67
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
68
+ }
69
+
70
+ // Default focus state
71
+ >.form-control:focus~label,
72
+ >.form-select:focus~label {
73
+ color: $primary;
74
+ opacity: 1;
75
+ }
76
+ }
77
+
78
+ // Outline Style
79
+ .form-floating-outline {
80
+ &.form-floating {
81
+ >label {
82
+ padding: 1rem 0.75rem;
83
+ background-color: transparent;
84
+ z-index: 2;
85
+ }
86
+
87
+ >.form-control:focus~label,
88
+ >.form-control:not(:placeholder-shown)~label,
89
+ >.form-select~label {
90
+ transform: scale(0.85) translateY(-1.35rem) translateX(0.5rem);
91
+ background-color: #fff;
92
+ padding: 0 0.5rem;
93
+ height: auto;
94
+ opacity: 1;
95
+ }
96
+
97
+ >.form-control:focus~label,
98
+ >.form-select:focus~label {
99
+ color: $primary;
100
+ }
101
+ }
102
+ }
103
+
104
+ // Underline Style
105
+ .form-floating-underline {
106
+ &.form-floating {
107
+
108
+ >.form-control,
109
+ >.form-select {
110
+ border: 0;
111
+ border-bottom: 2px solid $gray-200;
112
+ border-radius: 0;
113
+ background-color: transparent;
114
+ padding-left: 0;
115
+ padding-right: 0;
116
+
117
+ &:focus {
118
+ box-shadow: none;
119
+ border-bottom-color: $primary;
120
+ }
121
+ }
122
+
123
+ >label {
124
+ padding-left: 0;
125
+ padding-right: 0;
126
+ }
127
+
128
+ >.form-control:focus~label,
129
+ >.form-control:not(:placeholder-shown)~label,
130
+ >.form-select~label {
131
+ transform: scale(0.85) translateY(-1rem) translateX(0);
132
+ opacity: 1;
133
+ }
134
+
135
+ >.form-control:focus~label,
136
+ >.form-select:focus~label {
137
+ color: $primary;
138
+ }
139
+ }
140
+ }
141
+
142
+ // Glass Style - Premium Edition
143
+ .form-floating-glass {
144
+ &.form-floating {
145
+
146
+ >.form-control,
147
+ >.form-select {
148
+ background: rgba(255, 255, 255, 0.1);
149
+ backdrop-filter: blur(20px) saturate(180%);
150
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
151
+ border: 1px solid rgba(255, 255, 255, 0.2);
152
+ box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
153
+ color: #fff;
154
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
155
+
156
+ &::placeholder {
157
+ color: rgba(255, 255, 255, 0.5);
158
+ }
159
+
160
+ &:focus {
161
+ background: rgba(255, 255, 255, 0.15);
162
+ border-color: rgba(255, 255, 255, 0.3);
163
+ box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.2),
164
+ inset 0 1px 0 0 rgba(255, 255, 255, 0.1);
165
+ outline: none;
166
+ }
167
+
168
+ &:hover:not(:focus) {
169
+ background: rgba(255, 255, 255, 0.12);
170
+ border-color: rgba(255, 255, 255, 0.25);
171
+ }
172
+ }
173
+
174
+ >label {
175
+ color: rgba(255, 255, 255, 0.8);
176
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
177
+ }
178
+
179
+ >.form-control:focus~label,
180
+ >.form-control:not(:placeholder-shown)~label,
181
+ >.form-select:focus~label,
182
+ >.form-select~label {
183
+ color: rgba(255, 255, 255, 0.95) !important;
184
+ opacity: 1;
185
+ }
186
+ }
187
+ }
188
+
189
+ // Color Variants
190
+ $floating-colors: (
191
+ "primary": $primary,
192
+ "success": $success,
193
+ "warning": $warning,
194
+ "danger": $danger,
195
+ "info": $info,
196
+ );
197
+
198
+ @each $name, $color in $floating-colors {
199
+ .floating-#{$name} {
200
+ &.form-floating {
201
+
202
+ >.form-control:focus,
203
+ >.form-select:focus {
204
+ border-color: $color;
205
+
206
+ &:not(:focus-visible) {
207
+ box-shadow: 0 0 0 0.25rem rgba($color, 0.25);
208
+ }
209
+
210
+ &:focus-visible {
211
+ box-shadow: 0 0 0 0.25rem rgba($color, 0.25);
212
+ }
213
+ }
214
+
215
+ // Re-apply for individual styles
216
+ &.form-floating-underline {
217
+
218
+ >.form-control:focus,
219
+ >.form-select:focus {
220
+ border-bottom-color: $color;
221
+ box-shadow: none;
222
+ }
223
+ }
224
+
225
+ >.form-control:focus~label,
226
+ >.form-select:focus~label {
227
+ color: $color !important;
228
+ }
229
+ }
230
+ }
231
+ }
232
+
233
+ // States
234
+ .form-floating {
235
+
236
+ >.form-control:disabled,
237
+ >.form-control[readonly],
238
+ >.form-select:disabled {
239
+ background-color: $gray-100;
240
+ opacity: 0.7;
241
+ cursor: not-allowed;
242
+
243
+ ~label {
244
+ color: $gray-500;
245
+ }
246
+ }
247
+ }
@@ -0,0 +1,49 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .form-select {
5
+ display: block;
6
+ width: 100%;
7
+ padding: 0.5rem 2.25rem 0.5rem 0.75rem;
8
+ -moz-padding-start: calc(0.75rem - 3px);
9
+ font-size: 1rem;
10
+ font-weight: 400;
11
+ line-height: 1.5;
12
+ color: $body-color;
13
+ background-color: #fff;
14
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
15
+ background-repeat: no-repeat;
16
+ background-position: right 0.75rem center;
17
+ background-size: 16px 12px;
18
+ border: 0; // No border like HeroUI input
19
+ border-radius: $border-radius-lg;
20
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
21
+ background-clip: padding-box; // make sure bg doesn't bleed
22
+ background-color: $gray-100; // Light gray bg
23
+ transition: background-color 0.2s, box-shadow 0.2s;
24
+ appearance: none;
25
+
26
+ &:hover {
27
+ background-color: color.scale($gray-100, $lightness: -3%);
28
+ }
29
+
30
+ &:focus {
31
+ background-color: #fff;
32
+ border-color: transparent;
33
+ outline: 0;
34
+ box-shadow: 0 0 0 2px rgba($primary, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.05);
35
+ }
36
+
37
+ // Multiple select
38
+ &[multiple],
39
+ &[size]:not([size="1"]) {
40
+ padding-right: 0.75rem;
41
+ background-image: none;
42
+ }
43
+
44
+ &:disabled {
45
+ background-color: $gray-200;
46
+ color: $gray-600;
47
+ cursor: not-allowed;
48
+ }
49
+ }
@@ -0,0 +1,41 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .form-label {
5
+ margin-bottom: 0.5rem;
6
+ display: inline-block;
7
+ }
8
+
9
+ .form-control {
10
+ display: block;
11
+ width: 100%;
12
+ padding: 0.375rem 0.75rem;
13
+ font-size: 1rem;
14
+ font-weight: 400;
15
+ line-height: $line-height-base;
16
+ color: $body-color;
17
+ background-color: #fff;
18
+ background-clip: padding-box;
19
+ border: 1px solid #ced4da;
20
+ appearance: none;
21
+ border-radius: $border-radius;
22
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
23
+
24
+ &:focus {
25
+ color: $body-color;
26
+ background-color: #fff;
27
+ border-color: color.scale($primary, $lightness: 25%);
28
+ outline: 0;
29
+ box-shadow: 0 0 0 0.25rem rgba($primary, 0.25);
30
+ }
31
+
32
+ &::placeholder {
33
+ color: $secondary;
34
+ opacity: 1;
35
+ }
36
+
37
+ &:disabled {
38
+ background-color: $secondary;
39
+ opacity: 1;
40
+ }
41
+ }
@@ -0,0 +1,7 @@
1
+ // Component index for modular imports
2
+ // Import all: @use 'eldo-ui/scss/components';
3
+ // Import specific: @use 'eldo-ui/scss/components/button';
4
+
5
+ @forward 'button';
6
+ @forward 'alert';
7
+ @forward 'card';