sdga-ui 1.0.9 → 1.0.11

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.
@@ -60,9 +60,9 @@ $btn-link-focus-shadow-rgb: none;
60
60
  $btn-link-disabled-color: $gray-600;
61
61
 
62
62
  // Button close
63
- $btn-close-width: .7031rem;
63
+ $btn-close-width: .56rem;
64
64
  $btn-close-height: $btn-close-width;
65
- $btn-close-padding-x: .5rem;
65
+ $btn-close-padding-x: .3rem;
66
66
  $btn-close-padding-y: $btn-close-padding-x;
67
67
  $btn-close-color: $black;
68
68
  $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>");
@@ -19,8 +19,8 @@ $dropdown-link-color: $gray-900;
19
19
  $dropdown-link-hover-color: darken($gray-900, 5%);
20
20
  $dropdown-link-hover-bg: $gray-100;
21
21
 
22
- $dropdown-link-active-color: $white;
23
- $dropdown-link-active-bg: $primary;
22
+ $dropdown-link-active-color: $black;
23
+ $dropdown-link-active-bg: $neutral-200;
24
24
 
25
25
  $dropdown-link-disabled-color: $gray-500;
26
26
 
@@ -4,14 +4,15 @@
4
4
  // FORM FLOATING LABELS
5
5
  // ============================================
6
6
 
7
- $form-floating-height: calc(3.5rem + #{$input-height-border});
8
- $form-floating-line-height: 1.25;
9
- $form-floating-padding-x: $input-padding-x;
10
- $form-floating-padding-y: 1rem;
11
- $form-floating-input-padding-t: 1.625rem;
12
- $form-floating-input-padding-b: 0.625rem;
13
- $form-floating-label-height: 1.5em;
14
- $form-floating-label-opacity: 0.65;
15
- $form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
16
- $form-floating-label-disabled-color: $gray-600;
17
- $form-floating-transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
7
+ // Form Floating Labels
8
+ $form-floating-height: add(3.5rem, $input-height-border);
9
+ $form-floating-line-height: 1.25;
10
+ $form-floating-padding-x: $input-padding-x;
11
+ $form-floating-padding-y: 1rem;
12
+ $form-floating-input-padding-t: 1.625rem;
13
+ $form-floating-input-padding-b: .625rem;
14
+ $form-floating-label-height: 1.5em;
15
+ $form-floating-label-opacity: .65;
16
+ $form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem);
17
+ $form-floating-label-disabled-color: $gray-600;
18
+ $form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out;
@@ -0,0 +1,80 @@
1
+ // Bootstrap 5.3 - Form Input Variables
2
+
3
+ @use 'sass:color';
4
+
5
+ // ============================================
6
+ // FORM INPUTS
7
+ // ============================================
8
+
9
+ // Form Controls
10
+ $input-padding-y: $input-btn-padding-y;
11
+ $input-padding-x: $input-btn-padding-x;
12
+ $input-font-family: $input-btn-font-family;
13
+ $input-font-size: $input-btn-font-size;
14
+ $input-font-weight: $font-weight-base;
15
+ $input-line-height: $input-btn-line-height;
16
+
17
+ $input-padding-y-sm: $input-btn-padding-y-sm;
18
+ $input-padding-x-sm: $input-btn-padding-x-sm;
19
+ $input-font-size-sm: $input-btn-font-size-sm;
20
+
21
+ $input-padding-y-lg: $input-btn-padding-y-lg;
22
+ $input-padding-x-lg: $input-btn-padding-x-lg;
23
+ $input-font-size-lg: $input-btn-font-size-lg;
24
+
25
+ $input-bg: var(--#{$prefix}body-bg);
26
+ $input-disabled-color: null;
27
+ $input-disabled-bg: var(--#{$prefix}secondary-bg);
28
+ $input-disabled-border-color: null;
29
+
30
+ $input-color: $neutral-700;
31
+ $input-border-color: $neutral-400;
32
+ $input-border-width: $input-btn-border-width;
33
+ $input-box-shadow: none;
34
+
35
+ $input-border-radius: $radius-sm;
36
+ $input-border-radius-sm: $radius-sm;
37
+ $input-border-radius-lg: $radius-sm;
38
+
39
+ $input-focus-bg: $input-bg;
40
+ $input-focus-border-color: $neutral-950;
41
+ $input-focus-color: $neutral-700;
42
+ $input-focus-width: $input-btn-focus-width;
43
+ $input-focus-box-shadow: $input-btn-focus-box-shadow;
44
+
45
+ $input-placeholder-color: $neutral-500;
46
+ $input-plaintext-color: var(--#{$prefix}body-color);
47
+
48
+ $input-height-border: calc(#{$input-border-width} * 2); // stylelint-disable-line function-disallowed-list
49
+
50
+ $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2);
51
+ $input-height-inner-half: add($input-line-height * .5em, $input-padding-y);
52
+ $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5);
53
+
54
+ $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false));
55
+ $input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false));
56
+ $input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false));
57
+
58
+ $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
59
+
60
+ $form-color-width: 3rem;
61
+
62
+ // Form Labels
63
+ $form-label-margin-bottom: .5rem;
64
+ $form-label-font-size: $font-size-sm;
65
+ $form-label-font-style: normal;
66
+ $form-label-font-weight: $font-weight-base;
67
+ $form-label-color: $black;
68
+
69
+ // Form Text
70
+ $form-text-margin-top: .5rem;
71
+ $form-text-font-size: $small-font-size;
72
+ $form-text-font-style: normal;
73
+ $form-text-font-weight: $font-weight-base;
74
+ $form-text-color: var(--#{$prefix}secondary-color);
75
+
76
+ // Form File Input
77
+ $form-file-button-color: $input-color;
78
+ $form-file-button-bg: var(--#{$prefix}tertiary-bg);
79
+ $form-file-button-hover-bg: var(--#{$prefix}secondary-bg);
80
+
@@ -1,11 +1,38 @@
1
1
  // Bootstrap 5.3 - Form Variables
2
2
 
3
+ // ============================================
4
+ // SHARED INPUT-BUTTON VARIABLES
5
+ // ============================================
6
+ // These variables are shared between buttons and form inputs
7
+
8
+ $input-btn-padding-y: 0;
9
+ $input-btn-padding-x: 0.5rem;
10
+ $input-btn-font-family: $font-family-base;
11
+ $input-btn-font-size: $font-size-base;
12
+ $input-btn-line-height: $line-height-base;
13
+
14
+ $input-btn-focus-width: -2px;
15
+ $input-btn-focus-color-opacity: 0.10;
16
+ $input-btn-focus-color: rgba($black, $input-btn-focus-color-opacity);
17
+ $input-btn-focus-blur: 8px;
18
+ $input-btn-focus-box-shadow: $box-shadow;
19
+
20
+ $input-btn-padding-y-sm: 0;
21
+ $input-btn-padding-x-sm: 0.25rem;
22
+ $input-btn-font-size-sm: $font-size-sm;
23
+
24
+ $input-btn-padding-y-lg: 0;
25
+ $input-btn-padding-x-lg: 1rem;
26
+ $input-btn-font-size-lg: $font-size-lg;
27
+
28
+ $input-btn-border-width: 1px;
29
+
3
30
  // ============================================
4
31
  // FORM COMPONENTS
5
32
  // Import all form-related variable files
6
33
  // ============================================
7
34
 
8
- @import 'forms-inputs';
35
+ @import 'forms-form-control';
9
36
  @import 'forms-select';
10
37
  @import 'forms-check';
11
38
  @import 'forms-switch';
@@ -1,9 +1,10 @@
1
1
  // Bootstrap 5.3 - Navbar Component Variables
2
2
 
3
- $navbar-padding-y: 0.5rem;
4
- $navbar-padding-x: 1rem;
3
+ $navbar-padding-y: 0;
4
+ $navbar-padding-x: 2rem;
5
5
 
6
- $navbar-nav-link-padding-x: 0.5rem;
6
+ $navbar-nav-link-padding-x: 1rem;
7
+ $navbar-nav-link-padding-y: 0.5rem;
7
8
 
8
9
  $navbar-brand-font-size: $font-size-lg;
9
10
  $navbar-brand-height: null;
@@ -29,12 +30,12 @@ $navbar-dark-brand-color: $navbar-dark-active-color;
29
30
  $navbar-dark-brand-hover-color: $navbar-dark-active-color;
30
31
 
31
32
  // Navbar light theme
32
- $navbar-light-color: rgba($black, 0.55);
33
- $navbar-light-hover-color: rgba($black, 0.7);
34
- $navbar-light-active-color: rgba($black, 0.9);
33
+ $navbar-light-color: $black;
34
+ $navbar-light-hover-color: $black;
35
+ $navbar-light-active-color: $black;
35
36
  $navbar-light-disabled-color: rgba($black, 0.3);
36
- $navbar-light-icon-color: rgba($black, 0.5);
37
+ $navbar-light-icon-color: $black;
37
38
  $navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
38
- $navbar-light-toggler-border-color: rgba($black, 0.1);
39
+ $navbar-light-toggler-border-color: transparent;
39
40
  $navbar-light-brand-color: $navbar-light-active-color;
40
- $navbar-light-brand-hover-color: $navbar-light-active-color;
41
+ $navbar-light-brand-hover-color: $navbar-light-active-color;
@@ -44,7 +44,7 @@ $focus-ring-width: 0.25rem;
44
44
  $focus-ring-opacity: 0.25;
45
45
  $focus-ring-color: shadow-rgba($focus-ring-opacity);
46
46
  $focus-ring-blur: 0;
47
- $focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color;
47
+ $focus-ring-box-shadow: none;
48
48
 
49
49
  // ============================================
50
50
  // UTILITIES
@@ -7,78 +7,62 @@
7
7
 
8
8
  // Define alert color variants
9
9
  $alert-variants: (
10
- "primary": (
11
- border-color: rgba($primary-600, 0.7),
10
+ "primary": (border-color: rgba($primary-600, 0.7),
12
11
  bg: $primary-25,
13
12
  border: $primary-200,
14
13
  icon-bg: $primary-50,
15
14
  icon-color: $primary-700,
16
15
  title-color: $primary-700,
17
- mobile-border-top: $primary-600
18
- ),
19
- "lavender": (
20
- border-color: rgba($lavender-600, 0.7),
16
+ mobile-border-top: $primary-600 ),
17
+ "lavender": (border-color: rgba($lavender-600, 0.7),
21
18
  bg: $lavender-25,
22
19
  border: $lavender-200,
23
20
  icon-bg: $lavender-50,
24
21
  icon-color: $lavender-700,
25
22
  title-color: $lavender-700,
26
- mobile-border-top: rgba($lavender-600, 0.7)
27
- ),
28
- "neutral": (
29
- border-color: rgba($neutral-300, 0.7),
23
+ mobile-border-top: rgba($lavender-600, 0.7)),
24
+ "neutral": (border-color: rgba($neutral-300, 0.7),
30
25
  bg: $neutral-25,
31
26
  border: $neutral-300,
32
27
  icon-bg: $neutral-50,
33
28
  icon-color: $black,
34
29
  title-color: $black,
35
- mobile-border-top: rgba($neutral-300, 0.7)
36
- ),
37
- "success": (
38
- border-color: rgba($success-600, 0.7),
30
+ mobile-border-top: rgba($neutral-300, 0.7)),
31
+ "success": (border-color: rgba($success-600, 0.7),
39
32
  bg: $success-25,
40
33
  border: $success-200,
41
34
  icon-bg: $success-50,
42
35
  icon-color: $success-700,
43
36
  title-color: $success-700,
44
- mobile-border-top: rgba($success-600, 0.7)
45
- ),
46
- "danger": (
47
- border-color: rgba($danger-600, 0.7),
37
+ mobile-border-top: rgba($success-600, 0.7)),
38
+ "danger": (border-color: rgba($danger-600, 0.7),
48
39
  bg: $danger-25,
49
40
  border: $danger-200,
50
41
  icon-bg: $danger-50,
51
42
  icon-color: $danger-700,
52
43
  title-color: $danger-700,
53
- mobile-border-top: rgba($danger-600, 0.7)
54
- ),
55
- "warning": (
56
- border-color: rgba($warning-600, 0.7),
44
+ mobile-border-top: rgba($danger-600, 0.7)),
45
+ "warning": (border-color: rgba($warning-600, 0.7),
57
46
  bg: $warning-25,
58
47
  border: $warning-200,
59
48
  icon-bg: $warning-50,
60
49
  icon-color: $warning-700,
61
50
  title-color: $warning-700,
62
- mobile-border-top: rgba($warning-600, 0.7)
63
- ),
64
- "info": (
65
- border-color: rgba($info-600, 0.7),
51
+ mobile-border-top: rgba($warning-600, 0.7)),
52
+ "info": (border-color: rgba($info-600, 0.7),
66
53
  bg: $info-25,
67
54
  border: $info-200,
68
55
  icon-bg: $info-50,
69
56
  icon-color: $info-700,
70
57
  title-color: $info-700,
71
- mobile-border-top: rgba($info-600, 0.7)
72
- ),
73
- "secondary": (
74
- border-color: rgba($secondary-200, 0.7),
58
+ mobile-border-top: rgba($info-600, 0.7)),
59
+ "secondary": (border-color: rgba($secondary-200, 0.7),
75
60
  bg: $secondary-25,
76
61
  border: $secondary-200,
77
62
  icon-bg: $secondary-50,
78
63
  icon-color: $black,
79
64
  title-color: $black,
80
- mobile-border-top: rgba($secondary-200, 0.7)
81
- )
65
+ mobile-border-top: rgba($secondary-200, 0.7))
82
66
  );
83
67
 
84
68
  // ============================================
@@ -131,6 +115,11 @@ $alert-variants: (
131
115
  padding-right: unset;
132
116
  padding-inline-end: $alert-dismissible-padding-r;
133
117
  padding-inline-start: $alert-padding-x;
118
+
119
+ .btn-close {
120
+ right: unset;
121
+ inset-inline-end: 0;
122
+ }
134
123
  }
135
124
 
136
125
  // Generate alert variant classes
@@ -151,13 +140,14 @@ $alert-variants: (
151
140
  --#{$prefix}alert-title-color: #{$gray-800};
152
141
  }
153
142
 
154
- .alert-footer{
143
+ .alert-footer {
155
144
  display: flex;
156
145
  gap: 1.25rem;
157
146
  margin-top: 1rem;
158
147
  margin-inline-start: -0.75rem;
159
148
  }
160
149
 
150
+
161
151
  // ============================================
162
152
  // MOBILE RESPONSIVE
163
153
  // ============================================
@@ -166,6 +156,7 @@ $alert-variants: (
166
156
  gap: 1rem;
167
157
  border-inline-start-width: $alert-border-width;
168
158
  border-top-width: 0.5rem;
159
+ position: relative;
169
160
 
170
161
  @each $name, $colors in $alert-variants {
171
162
  &.alert-#{$name} {
@@ -190,6 +181,7 @@ $alert-variants: (
190
181
  button {
191
182
  width: 100%;
192
183
  justify-content: center;
184
+
193
185
  &:first-of-type {
194
186
  --#{$prefix}btn-color: #{$black};
195
187
  --#{$prefix}btn-bg: #{$secondary-100};
@@ -207,17 +199,9 @@ $alert-variants: (
207
199
  }
208
200
  }
209
201
  }
210
- }
211
- }
212
- // ============================================
213
- // DISMISSIBLE ALERTS
214
- // ============================================
215
- .alert-dismissible {
216
- .btn-close {
217
- padding: $btn-close-padding-y $btn-close-padding-x;
218
- position: absolute;
219
- top: 1rem;
220
- right: unset;
221
- inset-inline-end: 1.5rem;
202
+
203
+ &.alert-dismissible {
204
+ padding: $alert-padding-y $alert-padding-x;
205
+ }
222
206
  }
223
207
  }
@@ -5,37 +5,7 @@
5
5
  // CARD ICON VARIANTS - Using Sass map and @each loop
6
6
  // ============================================
7
7
 
8
- // Define card icon color variants
9
- $card-icon-variants: (
10
- "success": (
11
- icon-bg: $success-50,
12
- icon-color: $success-700
13
- ),
14
- "primary": (
15
- icon-bg: $primary-50,
16
- icon-color: $primary-700
17
- ),
18
- "danger": (
19
- icon-bg: $danger-50,
20
- icon-color: $danger-700
21
- ),
22
- "warning": (
23
- icon-bg: $warning-50,
24
- icon-color: $warning-700
25
- ),
26
- "info": (
27
- icon-bg: $info-50,
28
- icon-color: $info-700
29
- ),
30
- "secondary": (
31
- icon-bg: $secondary-50,
32
- icon-color: $secondary-700
33
- ),
34
- "neutral": (
35
- icon-bg: $neutral-50,
36
- icon-color: $neutral-700
37
- )
38
- );
8
+
39
9
 
40
10
  // ============================================
41
11
  // CARD BASE STYLES
@@ -84,45 +54,6 @@ $card-icon-variants: (
84
54
  &.disabled {
85
55
  background-color: $gray-200;
86
56
  cursor: not-allowed;
87
-
88
- .card-title-icon {
89
- &::after {
90
- background-color: $gray-100;
91
- }
92
- color: $gray-400;
93
- }
94
-
95
- }
96
-
97
- .card-title-icon {
98
- &::after {
99
- content: '';
100
- width: 3rem;
101
- height: 3rem;
102
- border-radius: $radius-full;
103
- background-color: $primary-50;
104
- position: absolute;
105
- z-index: -1;
106
- }
107
- width: 3rem;
108
- height: 3rem;
109
- position: relative;
110
- display: inline-flex;
111
- align-items: center;
112
- justify-content: center;
113
- color: $success-700;
114
- z-index: 1;
115
-
116
- // Generate card icon variant classes
117
- @each $name, $colors in $card-icon-variants {
118
- &.card-title-icon-#{$name} {
119
- color: map-get($colors, icon-color);
120
-
121
- &::after {
122
- background-color: map-get($colors, icon-bg);
123
- }
124
- }
125
- }
126
57
  }
127
58
 
128
59
  .card-title-checked {
@@ -166,4 +97,4 @@ $card-icon-variants: (
166
97
  }
167
98
  }
168
99
  }
169
- }
100
+ }
@@ -0,0 +1,107 @@
1
+ .form-control {
2
+ min-height: 2rem;
3
+ position: relative;
4
+ border-color: $neutral-400 !important;
5
+
6
+ // Create an animated underline effect starting from center
7
+ background-image: linear-gradient(to right, $neutral-950 0%, $neutral-950 100%) !important;
8
+ background-size: 0% 2px;
9
+ background-repeat: no-repeat;
10
+ background-position: center bottom;
11
+ transition: background-size 0.2s ease-in-out, border-color 0.2s ease-in-out;
12
+
13
+ &.filled {
14
+ background-color: var(--#{$prefix}body-bg) !important;
15
+ }
16
+ &.filled-darker {
17
+ border-color: transparent !important;
18
+ background-color: $neutral-100 !important;
19
+ }
20
+ &.filled-lighter {
21
+ border-color: transparent !important;
22
+ background-color: $neutral-25 !important;
23
+ }
24
+
25
+ &:hover {
26
+ border-color: $black !important;
27
+ color: $black !important;
28
+ }
29
+
30
+ &:active {
31
+ border-color: $neutral-400 !important;
32
+ background-color: $neutral-100 !important;
33
+ color: $black !important;
34
+ background-size: 100% 2px;
35
+ }
36
+
37
+ &:read-only,
38
+ &[readonly] {
39
+ border-color: $neutral-300 !important;
40
+ color: $black !important;
41
+ pointer-events: none;
42
+ }
43
+
44
+ &:focus-visible,
45
+ &:focus {
46
+ border-color: $neutral-700 !important;
47
+ outline: none !important;
48
+ background-size: 100% 2px;
49
+ box-shadow: $box-shadow;
50
+ }
51
+
52
+ &:disabled,
53
+ &[disabled] {
54
+ border-color: $neutral-300 !important;
55
+ background-color: var(--#{ $prefix}body-bg) !important;
56
+ color: $neutral-400 !important;
57
+ pointer-events: none;
58
+ }
59
+
60
+ &:user-invalid {
61
+ border-color: $error-700 !important;
62
+ background-image: linear-gradient(to right, $error-700 0%, $error-700 100%) !important;
63
+
64
+ &:hover {
65
+ border-color: $error-700 !important;
66
+ }
67
+
68
+ &:active {
69
+ border-color: $neutral-400 !important;
70
+ background-size: 100% 2px;
71
+ }
72
+
73
+ &:read-only,
74
+ &[readonly] {
75
+ border-color: $neutral-300 !important;
76
+ }
77
+
78
+ &:focus-visible,
79
+ &:focus {
80
+ border-color: $error-700 !important;
81
+ }
82
+
83
+ &:disabled,
84
+ &[disabled] {
85
+ border-color: $neutral-300 !important;
86
+ }
87
+ }
88
+ }
89
+
90
+ .form-control-lg {
91
+ min-height: 2.5rem;
92
+ }
93
+
94
+ .form-label {
95
+ &.disabled {
96
+ color: $neutral-400 !important;
97
+ pointer-events: none;
98
+ }
99
+
100
+ &.required {
101
+ &::before {
102
+ content: "*";
103
+ color: $error-700 !important;
104
+ margin-inline-end: 0.25rem;
105
+ }
106
+ }
107
+ }
@@ -1,5 +1,5 @@
1
1
  // Form Customizations - SDJA Custom Enhancements
2
2
 
3
- @import 'forms-inputs';
3
+ @import 'forms-form-control';
4
4
  @import 'forms-check';
5
5
 
@@ -18,16 +18,19 @@
18
18
  --#{$prefix}text-muted: #{rgba($white, 0.8)};
19
19
  --#{$prefix}border-color: #{rgba($white, 0.3)};
20
20
 
21
- *:focus-visible {
21
+ *:focus-visible,
22
+ *:focus {
22
23
  outline-color: $white !important;
23
24
  }
24
25
  }
25
26
 
26
27
  .list-unstyled {
27
- padding-left: unset;
28
- padding-right: unset;
28
+ padding-left: unset;
29
+ padding-inline-start: 0;
29
30
  }
30
31
 
32
+
33
+
31
34
  // ============================================
32
35
  // SAFARI COMPATIBILITY
33
36
  // ============================================
@@ -40,4 +43,4 @@ th {
40
43
  // Fix text-size-adjust for modern browsers
41
44
  html {
42
45
  text-size-adjust: 100%;
43
- }
46
+ }