sdga-ui 1.0.25 → 1.0.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdga-ui",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "DGA UI - Government-Style Bootstrap Theme",
5
5
  "keywords": [
6
6
  "sdga",
@@ -1,11 +1,34 @@
1
1
  // Bootstrap 5.3 - Spinner Component Variables
2
2
 
3
+ // Spinner diameter scale (rem)
4
+ // xxs: 20px, xs: 24px, s: 28px, m: 32px, l: 36px, xl: 40px, xxl: 44px
5
+ $spinner-diameters: (
6
+ "xxs": 1.25rem,
7
+ "xs": 1.5rem,
8
+ "s": 1.75rem,
9
+ "m": 2rem,
10
+ "l": 2.25rem,
11
+ "xl": 2.5rem,
12
+ "xxl": 2.75rem
13
+ );
14
+
3
15
  $spinner-width: 2rem;
4
16
  $spinner-height: $spinner-width;
5
17
  $spinner-vertical-align: -0.125em;
6
- $spinner-border-width: 0.25em;
18
+ $spinner-border-width: 0.15em;
7
19
  $spinner-animation-speed: 0.75s;
8
20
 
9
21
  $spinner-width-sm: 1rem;
10
22
  $spinner-height-sm: $spinner-width-sm;
11
- $spinner-border-width-sm: 0.2em;
23
+ $spinner-border-width-sm: 0.1em;
24
+
25
+ // Spinner size utilities
26
+ @each $name, $diameter in $spinner-diameters {
27
+ .spinner-border.spinner-border-#{$name},
28
+ .spinner-grow.spinner-grow-#{$name} {
29
+ --dga-spinner-width: #{$diameter};
30
+ --dga-spinner-height: #{$diameter};
31
+ width: #{$diameter};
32
+ height: #{$diameter};
33
+ }
34
+ }
@@ -4,11 +4,26 @@
4
4
  // BADGE VARIANTS
5
5
  // ============================================
6
6
 
7
+ .badge-primary {
8
+ background-color: $primary-600;
9
+ color: $white;
10
+ }
11
+
12
+ .badge-secondary {
13
+ background-color: $secondary-600;
14
+ color: $white;
15
+ }
16
+
7
17
  .badge-success {
8
18
  background-color: $success-600;
9
19
  color: $white;
10
20
  }
11
21
 
22
+ .badge-danger {
23
+ background-color: $danger-600;
24
+ color: $white;
25
+ }
26
+
12
27
  .badge-warning {
13
28
  background-color: $warning-600;
14
29
  color: $white;
@@ -19,6 +34,16 @@
19
34
  color: $white;
20
35
  }
21
36
 
37
+ .badge-light {
38
+ background-color: $gray-100;
39
+ color: $gray-900;
40
+ }
41
+
42
+ .badge-dark {
43
+ background-color: $gray-800;
44
+ color: $white;
45
+ }
46
+
22
47
  .badge-lavender {
23
48
  background-color: $lavender-600;
24
49
  color: $white;
@@ -40,17 +40,101 @@ $button-variants: (
40
40
  "secondary": (
41
41
  color: $black,
42
42
  bg: $secondary-100,
43
- border-color: $secondary-100,
43
+ border-color: $secondary-300,
44
44
  hover-color: $black,
45
45
  hover-bg: $secondary-200,
46
- hover-border-color: $secondary-200,
46
+ hover-border-color: $secondary-300,
47
47
  active-color: $black,
48
48
  active-bg: $secondary-200,
49
- active-border-color: $secondary-200,
49
+ active-border-color: $secondary-400,
50
50
  disabled-color: $secondary-400,
51
51
  disabled-bg: $secondary-200,
52
+ disabled-border-color: $secondary-300
53
+ ),
54
+ "success": (
55
+ color: $white,
56
+ bg: $success-600,
57
+ border-color: $success-600,
58
+ hover-color: $white,
59
+ hover-bg: $success-700,
60
+ hover-border-color: $success-700,
61
+ active-color: $white,
62
+ active-bg: $success-800,
63
+ active-border-color: $success-800,
64
+ disabled-color: $neutral-500,
65
+ disabled-bg: $success-100,
66
+ disabled-border-color: $success-100
67
+ ),
68
+ "danger": (
69
+ color: $white,
70
+ bg: $danger-600,
71
+ border-color: $danger-600,
72
+ hover-color: $white,
73
+ hover-bg: $danger-700,
74
+ hover-border-color: $danger-700,
75
+ active-color: $white,
76
+ active-bg: $danger-800,
77
+ active-border-color: $danger-800,
78
+ disabled-color: $neutral-500,
79
+ disabled-bg: $danger-100,
80
+ disabled-border-color: $danger-100
81
+ ),
82
+ "warning": (
83
+ color: $neutral-950,
84
+ bg: $warning-400,
85
+ border-color: $warning-400,
86
+ hover-color: $neutral-950,
87
+ hover-bg: $warning-500,
88
+ hover-border-color: $warning-500,
89
+ active-color: $neutral-950,
90
+ active-bg: $warning-600,
91
+ active-border-color: $warning-600,
92
+ disabled-color: $neutral-500,
93
+ disabled-bg: $warning-100,
94
+ disabled-border-color: $warning-100
95
+ ),
96
+ "info": (
97
+ color: $white,
98
+ bg: $info-600,
99
+ border-color: $info-600,
100
+ hover-color: $white,
101
+ hover-bg: $info-700,
102
+ hover-border-color: $info-700,
103
+ active-color: $white,
104
+ active-bg: $info-800,
105
+ active-border-color: $info-800,
106
+ disabled-color: $neutral-500,
107
+ disabled-bg: $info-100,
108
+ disabled-border-color: $info-100
109
+ ),
110
+ "light": (
111
+ color: $neutral-950,
112
+ bg: $secondary-100,
113
+ border-color: $secondary-200,
114
+ hover-color: $neutral-950,
115
+ hover-bg: $secondary-200,
116
+ hover-border-color: $secondary-300,
117
+ active-color: $neutral-950,
118
+ active-bg: $secondary-300,
119
+ active-border-color: $secondary-400,
120
+ disabled-color: $neutral-500,
121
+ disabled-bg: $secondary-50,
52
122
  disabled-border-color: $secondary-200
53
123
  ),
124
+ "dark": (
125
+ color: $white,
126
+ bg: $neutral-800,
127
+ border-color: $neutral-800,
128
+ hover-color: $white,
129
+ hover-bg: $neutral-900,
130
+ hover-border-color: $neutral-900,
131
+ active-color: $white,
132
+ active-bg: $neutral-950,
133
+ active-border-color: $neutral-950,
134
+ disabled-color: $neutral-500,
135
+ disabled-bg: $neutral-300,
136
+ disabled-border-color: $neutral-300
137
+ ),
54
138
  "outline-secondary": (
55
139
  color: $black,
56
140
  border-color: $secondary-300,
@@ -95,30 +179,30 @@ $button-variants: (
95
179
  "destructive-primary": (
96
180
  color: $white,
97
181
  bg: $error-600,
98
- border-color: transparent,
182
+ border-color: $error-600,
99
183
  hover-color: $white,
100
184
  hover-bg: $error-700,
101
- hover-border-color: transparent,
185
+ hover-border-color: $error-700,
102
186
  active-color: $white,
103
187
  active-bg: $error-900,
104
- active-border-color: transparent,
105
- disabled-color: $neutral-400,
106
- disabled-bg: transparent,
107
- disabled-border-color: transparent
188
+ active-border-color: $error-900,
189
+ disabled-color: $neutral-500,
190
+ disabled-bg: $error-100,
191
+ disabled-border-color: $error-100
108
192
  ),
109
193
  "destructive-secondary": (
110
194
  color: $error-700,
111
195
  bg: $error-50,
112
- border-color: transparent,
196
+ border-color: $error-100,
113
197
  hover-color: $error-700,
114
198
  hover-bg: $error-100,
115
- hover-border-color: transparent,
199
+ hover-border-color: $error-200,
116
200
  active-color: $error-700,
117
201
  active-bg: $error-200,
118
- active-border-color: transparent,
119
- disabled-color: $neutral-400,
120
- disabled-bg: transparent,
121
- disabled-border-color: transparent
202
+ active-border-color: $error-300,
203
+ disabled-color: $neutral-500,
204
+ disabled-bg: $error-25,
205
+ disabled-border-color: $error-100
122
206
  ),
123
207
  "destructive-outline-secondary": (
124
208
  color: $error-700,
@@ -0,0 +1,121 @@
1
+ // Pagination Customizations - SDGA Custom Enhancements
2
+
3
+ // Keep page number controls visually square by enforcing fixed heights
4
+ // and matching minimum widths across all pagination sizes.
5
+ .pagination {
6
+ gap: 0.5rem;
7
+
8
+ .page-item:not(:first-child) .page-link {
9
+ margin-left: 0;
10
+ }
11
+
12
+ .page-link {
13
+ align-items: center;
14
+ background-color: transparent;
15
+ border: 0;
16
+ border-radius: $radius-md;
17
+ color: $black;
18
+ display: inline-flex;
19
+ font-size: 0.875rem;
20
+ height: 32px;
21
+ justify-content: center;
22
+ line-height: 1;
23
+ min-width: 32px;
24
+ padding-inline: 0.5rem;
25
+ position: relative;
26
+ transition: background-color 0.2s ease, color 0.2s ease, outline-color 0.2s ease;
27
+
28
+ &:hover {
29
+ background-color: $neutral-100;
30
+ color: $black;
31
+ z-index: 0;
32
+ }
33
+
34
+ &:focus,
35
+ &:focus-visible {
36
+ background-color: transparent;
37
+ box-shadow: none;
38
+ color: $black;
39
+ outline: 2px solid $black;
40
+ outline-offset: -2px;
41
+ z-index: 1;
42
+ }
43
+
44
+ // Pressed style aligns with button/dropdown pressed behavior.
45
+ &:active {
46
+ background-color: $neutral-200 !important;
47
+ box-shadow: none !important;
48
+ color: $black;
49
+ outline: 0 !important;
50
+ }
51
+ }
52
+
53
+ .page-item.active .page-link,
54
+ .page-link[aria-current='page'] {
55
+ background-color: transparent;
56
+ border: 0;
57
+ color: $black;
58
+ font-weight: 500;
59
+
60
+ &::after {
61
+ background-color: $primary-600;
62
+ border-radius: 999px;
63
+ bottom: -2px;
64
+ content: '';
65
+ height: 4px;
66
+ left: 50%;
67
+ position: absolute;
68
+ transform: translateX(-50%);
69
+ width: 65%;
70
+ }
71
+
72
+ &:hover {
73
+ background-color: transparent;
74
+ color: $black;
75
+ }
76
+
77
+ &:focus,
78
+ &:focus-visible {
79
+ outline: 2px solid $black;
80
+ outline-offset: -2px;
81
+ }
82
+
83
+ &:active {
84
+ background-color: $primary-50 !important;
85
+ color: $primary-700;
86
+ outline: 0 !important;
87
+
88
+ &::after {
89
+ background-color: $primary-700;
90
+ }
91
+ }
92
+ }
93
+
94
+ .page-item.disabled .page-link,
95
+ .page-link.disabled {
96
+ background-color: transparent;
97
+ color: $neutral-400;
98
+ opacity: 1;
99
+ }
100
+
101
+ .page-link > .bi {
102
+ font-size: 1rem;
103
+ line-height: 1;
104
+ }
105
+
106
+ &.pagination-sm {
107
+ .page-link {
108
+ height: 24px;
109
+ min-width: 24px;
110
+ padding-inline: 0.375rem;
111
+ }
112
+ }
113
+
114
+ &.pagination-lg {
115
+ .page-link {
116
+ height: 40px;
117
+ min-width: 40px;
118
+ padding-inline: 0.75rem;
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,39 @@
1
+ // Spinner customizations
2
+ // Apply a full-track ring spinner with a 25% colored arc.
3
+
4
+ $spinner-track-color: $neutral-200;
5
+ $spinner-arc-angle: 90deg;
6
+
7
+ .spinner-border {
8
+ border: 0;
9
+ border-radius: 50%;
10
+ background: conic-gradient(
11
+ from -90deg,
12
+ currentColor 0deg $spinner-arc-angle,
13
+ $spinner-track-color $spinner-arc-angle 360deg
14
+ );
15
+ -webkit-mask: radial-gradient(
16
+ farthest-side,
17
+ transparent calc(100% - #{$spinner-border-width}),
18
+ $black calc(100% - #{$spinner-border-width})
19
+ );
20
+ mask: radial-gradient(
21
+ farthest-side,
22
+ transparent calc(100% - #{$spinner-border-width}),
23
+ $black calc(100% - #{$spinner-border-width})
24
+ );
25
+ animation: $spinner-animation-speed linear infinite spinner-border;
26
+ }
27
+
28
+ .spinner-border-sm {
29
+ -webkit-mask: radial-gradient(
30
+ farthest-side,
31
+ transparent calc(100% - #{$spinner-border-width-sm}),
32
+ $black calc(100% - #{$spinner-border-width-sm})
33
+ );
34
+ mask: radial-gradient(
35
+ farthest-side,
36
+ transparent calc(100% - #{$spinner-border-width-sm}),
37
+ $black calc(100% - #{$spinner-border-width-sm})
38
+ );
39
+ }
package/theme/dga-ui.scss CHANGED
@@ -30,6 +30,8 @@
30
30
  @import './customizations/navbar';
31
31
  @import './customizations/navs';
32
32
  @import './customizations/tabs';
33
+ @import './customizations/pagination';
33
34
  @import './customizations/progress-indicator';
34
35
  @import './customizations/breadcrumb';
36
+ @import './customizations/spinners';
35
37
  @import './customizations/custom-styles';