@ch-post-common/common-web-frontend 0.0.1-security → 8.941.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @ch-post-common/common-web-frontend might be problematic. Click here for more details.

Files changed (97) hide show
  1. package/components/accordion.scss +177 -0
  2. package/components/alert.scss +217 -0
  3. package/components/badge.scss +95 -0
  4. package/components/breadcrumb.scss +43 -0
  5. package/components/button.scss +168 -0
  6. package/components/card.scss +227 -0
  7. package/components/carousel.scss +161 -0
  8. package/components/custom-choice-control.scss +217 -0
  9. package/components/custom-range-input.scss +51 -0
  10. package/components/custom-select.scss +60 -0
  11. package/components/datatable.scss +147 -0
  12. package/components/datepicker.scss +220 -0
  13. package/components/detail-summary.scss +72 -0
  14. package/components/dropdown.scss +71 -0
  15. package/components/floating-label.scss +65 -0
  16. package/components/fonts.scss +35 -0
  17. package/components/form-feedback.scss +70 -0
  18. package/components/forms.scss +31 -0
  19. package/components/grid.scss +103 -0
  20. package/components/icons.scss +62 -0
  21. package/components/intranet-header/_icon.scss +6 -0
  22. package/components/intranet-header/_language-chooser.scss +40 -0
  23. package/components/intranet-header/_logo.scss +74 -0
  24. package/components/intranet-header/_nav-overflow.scss +56 -0
  25. package/components/intranet-header/_scaffolding.scss +96 -0
  26. package/components/intranet-header/_searchbox.scss +56 -0
  27. package/components/intranet-header/_settings.scss +23 -0
  28. package/components/intranet-header/_sidebar.scss +118 -0
  29. package/components/intranet-header/_top-navigation.scss +83 -0
  30. package/components/list-group.scss +156 -0
  31. package/components/modal.scss +87 -0
  32. package/components/pagination.scss +67 -0
  33. package/components/popover.scss +21 -0
  34. package/components/product-card.scss +74 -0
  35. package/components/progress.scss +15 -0
  36. package/components/reboot.scss +17 -0
  37. package/components/root.scss +10 -0
  38. package/components/sizing.scss +90 -0
  39. package/components/spinner.scss +58 -0
  40. package/components/stepper.scss +158 -0
  41. package/components/subnavigation.scss +131 -0
  42. package/components/switch.scss +132 -0
  43. package/components/tabs.scss +122 -0
  44. package/components/timepicker.scss +110 -0
  45. package/components/toast.scss +172 -0
  46. package/components/tooltip.scss +23 -0
  47. package/components/topic-teaser.scss +133 -0
  48. package/components/type.scss +106 -0
  49. package/components/utilities.scss +93 -0
  50. package/index.js +28 -0
  51. package/layouts/portal/_type.scss +83 -0
  52. package/lic/_bootstrap-license.scss +29 -0
  53. package/lic/_cwf-license.scss +7 -0
  54. package/mixins/_animation.scss +39 -0
  55. package/mixins/_button.scss +232 -0
  56. package/mixins/_forms.scss +188 -0
  57. package/mixins/_icons.scss +27 -0
  58. package/mixins/_scroll-shadows.scss +13 -0
  59. package/mixins/_size.scss +69 -0
  60. package/mixins/_type.scss +187 -0
  61. package/mixins/_utilities.scss +73 -0
  62. package/package.json +11 -3
  63. package/placeholders/_dropdown.scss +11 -0
  64. package/placeholders/_floating-label.scss +143 -0
  65. package/placeholders/_notifications.scss +160 -0
  66. package/placeholders/_text.scss +187 -0
  67. package/variables/_animation.scss +36 -0
  68. package/variables/_color.scss +240 -0
  69. package/variables/_commons.scss +57 -0
  70. package/variables/_icons.scss +2071 -0
  71. package/variables/_spacing.scss +180 -0
  72. package/variables/_type.scss +157 -0
  73. package/variables/components/_accordion.scss +22 -0
  74. package/variables/components/_alert.scss +50 -0
  75. package/variables/components/_badge.scss +29 -0
  76. package/variables/components/_breadcrumbs.scss +21 -0
  77. package/variables/components/_button.scss +152 -0
  78. package/variables/components/_card.scss +29 -0
  79. package/variables/components/_carousel.scss +27 -0
  80. package/variables/components/_close.scss +9 -0
  81. package/variables/components/_datatable.scss +49 -0
  82. package/variables/components/_datepicker.scss +14 -0
  83. package/variables/components/_dropdowns.scss +30 -0
  84. package/variables/components/_forms.scss +256 -0
  85. package/variables/components/_intranet-header.scss +9 -0
  86. package/variables/components/_modals.scss +68 -0
  87. package/variables/components/_nav.scss +82 -0
  88. package/variables/components/_pagination.scss +41 -0
  89. package/variables/components/_paragraph.scss +6 -0
  90. package/variables/components/_popovers.scss +28 -0
  91. package/variables/components/_progress-bars.scss +16 -0
  92. package/variables/components/_stepper.scss +26 -0
  93. package/variables/components/_subnavigation.scss +36 -0
  94. package/variables/components/_switch.scss +3 -0
  95. package/variables/components/_tables.scss +31 -0
  96. package/variables/components/_tooltips.scss +26 -0
  97. package/README.md +0 -5
@@ -0,0 +1,177 @@
1
+ @forward "../variables/options";
2
+ @use "sass:map";
3
+
4
+ @use "../lic/bootstrap-license";
5
+ @use "../themes/bootstrap/overrides" as *;
6
+
7
+ @use "../variables";
8
+ @use "../mixins";
9
+ @use "../variables/components/accordion";
10
+ @use "../variables/options";
11
+ @use "../variables/spacing";
12
+ @use "../variables/color";
13
+ @use "../variables/components/button";
14
+ @use "../mixins/icons" as icon-mixin;
15
+ @use "../layouts/portal/type" as portal;
16
+ @use "../variables/type";
17
+ @use "../placeholders/text";
18
+
19
+
20
+ .accordion {
21
+ .card {
22
+ background-color: transparent;
23
+ border: none;
24
+ box-shadow: none;
25
+ margin-top: 0;
26
+ outline: none;
27
+
28
+ .card-body {
29
+
30
+ padding: accordion.$accordion-content-space-top accordion.$accordion-padding-horizontal-xs accordion.$accordion-content-space-bottom-xs;
31
+
32
+ // Only one heading style is needed inside the accordion. h2 should not be used inside the accordion.
33
+ h2,
34
+ h3,
35
+ h4,
36
+ h5,
37
+ h6,
38
+ p {
39
+ @extend %font-curve-regular;
40
+
41
+ &:first-child {
42
+ margin-top: 0;
43
+ }
44
+
45
+ &:last-child {
46
+ margin-bottom: 0;
47
+ }
48
+ }
49
+
50
+ h2,
51
+ h3,
52
+ h4,
53
+ h5,
54
+ h6 {
55
+ @include mixins.fontSizeAndLineHeight($font-curve-regular...);
56
+ margin-top: accordion.$accordion-content-heading-top;
57
+ margin-bottom: 0;
58
+ font-weight: type.$font-weight-bold;
59
+ }
60
+
61
+ p {
62
+ font-weight: $font-weight-light; // Default style for text with p tag.
63
+ }
64
+
65
+ @include media-breakpoint-up(sm) {
66
+ padding-right: accordion.$accordion-padding-horizontal-sm;
67
+ padding-left: accordion.$accordion-padding-horizontal-sm;
68
+ }
69
+ @include media-breakpoint-up(rg) {
70
+ padding-bottom: accordion.$accordion-content-space-bottom-rg;
71
+ }
72
+ }
73
+ }
74
+
75
+ .card-header {
76
+ background-color: transparent;
77
+ border: none;
78
+ padding: 0;
79
+ margin: 0;
80
+
81
+ h5 {
82
+ @extend %font-curve-regular;
83
+ font-weight: type.$font-weight-bold;
84
+ position: relative;
85
+ margin: 0;
86
+ padding: 0;
87
+ }
88
+
89
+ .btn {
90
+ @include transition(variables.$transition-base);
91
+ @include mixins.reset-button;
92
+ @include mixins.fontSizeAndLineHeight(
93
+ variables.$font-curve-regular...
94
+ ); // need to include font-size here, with @extend %font-curve-regular the resetButton mixin overwrite the line-height.
95
+
96
+ display: unset;
97
+ transition: none;
98
+ width: 100%;
99
+ background-color: transparent;
100
+ padding: accordion.$accordion-trigger-padding-vertical
101
+ accordion.$accordion-trigger-padding-right-xs
102
+ accordion.$accordion-trigger-padding-vertical
103
+ accordion.$accordion-padding-horizontal-xs;
104
+ border-top-style: solid;
105
+ border-top-color: accordion.$accordion-border-color;
106
+ border-top-width: accordion.$accordion-border-width;
107
+ border-radius: 0;
108
+ cursor: pointer;
109
+ white-space: normal;
110
+ color: accordion.$accordion-btn-text-color-expanded;
111
+ text-align: left;
112
+ vertical-align: baseline;
113
+ font-weight: type.$font-weight-bold;
114
+
115
+ &[aria-expanded="false"] {
116
+ @include text-truncate;
117
+ }
118
+
119
+ &:not([aria-expanded="false"]) {
120
+ color: accordion.$accordion-btn-text-color;
121
+ }
122
+
123
+ &:focus {
124
+ outline: none;
125
+ }
126
+
127
+ &:hover {
128
+ .no-touchevents & {
129
+ color: color.$black;
130
+ background-color: map.get(color.$background-colors, "dark");
131
+ }
132
+ }
133
+
134
+ &.btn-link {
135
+ text-decoration: none;
136
+ }
137
+
138
+ &.btn-link.collapsed[aria-expanded="false"],
139
+ &.btn-link[aria-expanded="true"] {
140
+ //stylelint-disable-next-line max-nesting-depth
141
+ &::after {
142
+ @include icon-mixin.pi(2113);
143
+ content: "";
144
+ position: absolute;
145
+ top: spacing.$size-regular;
146
+ right: spacing.$size-regular;
147
+ width: accordion.$accordion-icon-width;
148
+ height: accordion.$accordion-icon-width;
149
+ background-size: contain;
150
+ background-repeat: no-repeat;
151
+ background-position: center center;
152
+ transition: button.$btn-transition;
153
+
154
+ @include media-breakpoint-up(md) {
155
+ top: spacing.$size-small-large;
156
+ }
157
+ }
158
+ }
159
+
160
+ &.btn-link[aria-expanded="true"] {
161
+ //stylelint-disable-next-line max-nesting-depth
162
+ &::after {
163
+ transform: rotate(180deg);
164
+ }
165
+ }
166
+
167
+ @include media-breakpoint-up(sm) {
168
+ padding-left: accordion.$accordion-padding-horizontal-sm;
169
+ padding-right: accordion.$accordion-trigger-padding-right-sm;
170
+ }
171
+ }
172
+ }
173
+
174
+ .collapse {
175
+ @include transition($transition-collapse);
176
+ }
177
+ }
@@ -0,0 +1,217 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+
5
+ @use "../lic/bootstrap-license";
6
+ @use "../themes/bootstrap/overrides" as *;
7
+
8
+ @use "../variables/color";
9
+ @use "../variables/commons";
10
+ @use "../variables/type";
11
+ @use "../variables/spacing";
12
+ @use "../variables/grid";
13
+ @use "../variables/breakpoints";
14
+ @use "../variables/components/alert";
15
+ @use "../variables/options";
16
+ @use "../placeholders/notifications";
17
+
18
+
19
+ .alert-container {
20
+ @extend %notification-container;
21
+ }
22
+
23
+ .alert {
24
+ $effective-line-height: (alert.$alert-line-height * alert.$alert-font-size);
25
+
26
+ @extend %notification;
27
+
28
+ padding: alert.$alert-padding-y alert.$alert-padding-x;
29
+ padding-left: (alert.$alert-padding-x * 2 + alert.$alert-icon-size);
30
+
31
+ background-position: alert.$alert-padding-x center;
32
+ background-size: alert.$alert-icon-size;
33
+
34
+ font-size: alert.$alert-font-size;
35
+
36
+ min-height: 2 * alert.$alert-padding-y + alert.$alert-icon-size;
37
+
38
+ & > *:only-child {
39
+ font-weight: type.$font-weight-bold;
40
+ }
41
+
42
+ &:not(.alert-fixed-bottom) {
43
+ max-width: map.get(breakpoints.$grid-breakpoints, "xxl");
44
+ }
45
+
46
+ &.no-icon {
47
+ padding-left: alert.$alert-padding-x;
48
+ }
49
+
50
+ &.alert-dismissible {
51
+ padding-right: alert.$alert-close-icon-size + alert.$alert-padding-x * 2;
52
+ }
53
+
54
+ // Adjust close link position
55
+ .close {
56
+ @extend %notification-close;
57
+
58
+ padding: alert.$alert-padding-y alert.$alert-padding-x;
59
+ }
60
+ }
61
+
62
+ .alert-heading {
63
+ @extend %notification-title;
64
+
65
+ font-size: alert.$alert-font-size;
66
+ }
67
+
68
+ @each $name, $color, $icon in alert.$alert-list {
69
+ .alert-#{$name} {
70
+ @extend %notification-#{$name};
71
+
72
+ .close {
73
+ @extend %notification-#{$name}-close;
74
+ }
75
+ }
76
+ }
77
+
78
+ .alert-fixed-bottom {
79
+ position: fixed;
80
+
81
+ left: 0;
82
+ bottom: 0;
83
+
84
+ width: 100%;
85
+
86
+ margin-bottom: 0;
87
+ border-radius: 0;
88
+
89
+ @include media-breakpoint-up(xxl) {
90
+ // TODO: All of the calculations need to be offset by 0.5rem - but I have no idea why.
91
+ $container-padding: map.get(grid.$grid-container-padding, "xxl");
92
+
93
+ background-position: calc(
94
+ (100vw - #{map.get(breakpoints.$grid-breakpoints, "xxl")}) / 2 + #{alert.$alert-padding-x} + #{$container-padding} - .5rem
95
+ ) center;
96
+ padding: alert.$alert-padding-y
97
+ calc(
98
+ (100vw - #{map.get(breakpoints.$grid-breakpoints, "xxl")}) / 2 + #{alert.$alert-padding-x *
99
+ 2 + alert.$alert-icon-size} + #{$container-padding} - .5rem
100
+ );
101
+
102
+ &.alert-dismissible {
103
+ padding-right: calc(
104
+ (100vw - #{map.get(breakpoints.$grid-breakpoints, "xxl")}) / 2 + #{alert.$alert-close-icon-size +
105
+ alert.$alert-padding-x * 2} + #{$container-padding} - .5rem
106
+ );
107
+
108
+ & .close {
109
+ right: calc(
110
+ (100vw - #{map.get(breakpoints.$grid-breakpoints, "xxl")}) / 2 + #{$container-padding} -
111
+ .5rem
112
+ );
113
+ }
114
+ }
115
+ }
116
+ }
117
+
118
+ .alert-action {
119
+ @extend .alert-fixed-bottom;
120
+
121
+ flex-direction: row;
122
+ flex-wrap: nowrap;
123
+ align-items: center;
124
+ justify-content: space-between;
125
+
126
+ .alert-content {
127
+ display: flex;
128
+ flex: 1 1 0%;
129
+ flex-flow: column nowrap;
130
+
131
+ & > *:last-child {
132
+ margin-bottom: 0;
133
+ }
134
+ }
135
+
136
+ .alert-buttons {
137
+ flex: 0 0 auto;
138
+ margin-left: alert.$alert-padding-x;
139
+
140
+ .btn {
141
+ float: right;
142
+
143
+ + .btn {
144
+ margin-right: spacing.$spacer;
145
+ }
146
+ }
147
+ }
148
+
149
+ @include media-breakpoint-down(md) {
150
+ flex-direction: column;
151
+ justify-content: stretch;
152
+ align-items: flex-start;
153
+
154
+ .alert-content {
155
+ flex-basis: auto;
156
+ align-self: stretch;
157
+ }
158
+
159
+ .alert-buttons {
160
+ align-self: flex-end;
161
+ margin-top: spacing.$spacer;
162
+ margin-left: 0;
163
+ }
164
+ }
165
+
166
+ @include media-breakpoint-down(sm) {
167
+ align-items: center;
168
+
169
+ .alert-buttons {
170
+ align-self: stretch;
171
+
172
+ .btn {
173
+ width: 100%;
174
+
175
+ + .btn {
176
+ margin-right: 0;
177
+ margin-top: spacing.$spacer;
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ @include media-breakpoint-up(xxl) {
184
+ $container-padding: map.get(grid.$grid-container-padding, "xxl");
185
+ padding-right: calc(
186
+ (100vw - #{map.get(breakpoints.$grid-breakpoints, "xxl")}) / 2 + #{alert.$alert-padding-x} +
187
+ #{$container-padding} - .5rem
188
+ );
189
+ }
190
+ }
191
+
192
+ @include media-breakpoint-down(sm) {
193
+ .alert {
194
+ padding-left: alert.$alert-padding-x;
195
+ padding-top: alert.$alert-padding-y * 2 + alert.$alert-icon-size;
196
+ text-align: center;
197
+ background-position: center alert.$alert-padding-y;
198
+ font-size: alert.$alert-font-size-small;
199
+
200
+ &.alert-dismissible {
201
+ padding-right: alert.$alert-padding-x;
202
+ }
203
+
204
+ &.no-icon {
205
+ padding-top: alert.$alert-padding-y;
206
+ }
207
+
208
+ .close {
209
+ bottom: auto;
210
+ padding: spacing.$spacer/2;
211
+ }
212
+
213
+ .alert-heading {
214
+ font-size: alert.$alert-font-size-small;
215
+ }
216
+ }
217
+ }
@@ -0,0 +1,95 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/overrides" as *;
5
+ @use "../themes/bootstrap/badge" as bb;
6
+
7
+ @use "../variables/color";
8
+ @use "../variables/type";
9
+ @use "../variables/components/badge";
10
+ @use "../variables/components/nav";
11
+ @use "../variables/options";
12
+
13
+
14
+
15
+ :root {
16
+ --isolate-components: #{options.$isolate-components};
17
+ }
18
+
19
+ .badge {
20
+ border: badge.$badge-border;
21
+ text-decoration: none;
22
+ height: badge.$badge-height;
23
+ display: inline-flex;
24
+ align-items: center;
25
+ font-size: type.$font-size-tiny;
26
+ font-weight: type.$font-weight-normal;
27
+ }
28
+
29
+ .badge-pill {
30
+ padding: badge.$badge-pill-padding-y badge.$badge-pill-padding-x;
31
+ min-width: badge.$badge-pill-min-width;
32
+ }
33
+
34
+ .badge-pill-p6 {
35
+ padding: badge.$badge-pill-padding-y-p6 badge.$badge-pill-padding-x-p6;
36
+ min-width: badge.$badge-pill-min-width;
37
+ }
38
+ //-- Legacy --
39
+
40
+ @each $color, $value in $theme-colors {
41
+ .badge-outline-#{$color} {
42
+ color: color.$black;
43
+ background-color: $white;
44
+ border: nav.$nav-pills-outline-border-width solid $value;
45
+ text-decoration: none;
46
+
47
+ &[href] {
48
+ @include hover-focus {
49
+ color: color-yiq($value);
50
+ text-decoration: none;
51
+ background-color: $value;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ .badge-outline-gray-carrara-thick {
58
+ color: color.$black-alpha-60;
59
+ background-color: color.$white;
60
+ border: badge.$badge-pill-border-thick solid color.$black-alpha-20;
61
+ text-decoration: none;
62
+
63
+ &[href] {
64
+ @include hover-focus {
65
+ color: color-yiq(color.$gray-cararra);
66
+ text-decoration: none;
67
+ background-color: color.$gray-cararra;
68
+ }
69
+ }
70
+ }
71
+
72
+ .badge-gray-carrara {
73
+ color: #000;
74
+ background-color: color.$gray-cararra;
75
+ border: badge.$badge-pill-border-thick solid transparent;
76
+ }
77
+
78
+ .badge-gray-100 {
79
+ background-color: color.$gray-100;
80
+ color: color.$black-alpha-60;
81
+ border: badge.$badge-pill-border-thick solid transparent;
82
+ }
83
+
84
+ .badge > i {
85
+ position: relative;
86
+ }
87
+
88
+ .badge-pill-circle {
89
+ border-radius: badge.$badge-height;
90
+ border: nav.$nav-pills-outline-border-width solid transparent;
91
+ }
92
+
93
+ .badge-pill > * + * {
94
+ margin-left: (.375rem);
95
+ }
@@ -0,0 +1,43 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+
5
+ @use "../lic/bootstrap-license";
6
+ @use "../themes/bootstrap/overrides" as *;
7
+ @use "../themes/bootstrap/breadcrumbs" as bb;
8
+
9
+ @use "../variables/type";
10
+ @use "../variables/spacing";
11
+ @use "../variables/components/breadcrumbs";
12
+ @use "../placeholders/text";
13
+
14
+
15
+ .breadcrumb {
16
+ @extend %font-curve-small;
17
+ font-weight: type.$font-weight-normal;
18
+ height: map.get(spacing.$post-sizes, "bigger-big");
19
+ overflow: hidden;
20
+ flex-wrap: nowrap;
21
+ white-space: nowrap;
22
+ }
23
+
24
+ .breadcrumb-item {
25
+ display: flex;
26
+ align-items: center;
27
+
28
+ .ppm-breadcrumb-divider {
29
+ fill: breadcrumbs.$breadcrumb-divider-color;
30
+ }
31
+
32
+ a {
33
+ display: flex;
34
+ align-content: center;
35
+ align-items: center;
36
+ text-decoration: none;
37
+ color: breadcrumbs.$breadcrumb-link-color;
38
+
39
+ &:hover {
40
+ color: breadcrumbs.$breadcrumb-hover-color;
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,168 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+
5
+ @use "../lic/bootstrap-license";
6
+ @use "../themes/bootstrap/overrides" as *;
7
+ @use "../themes/bootstrap/buttons";
8
+ @use "../themes/bootstrap/button-group";
9
+
10
+ @use "../variables/components/button";
11
+ @use "../variables/color";
12
+ @use "../mixins/button" as mixins;
13
+
14
+ // Overwrites padding-x and padding-y for buttons with hover animation
15
+ .btn {
16
+ @include mixins.btn;
17
+ }
18
+
19
+ .btn-sm {
20
+ @include mixins.btn-sm;
21
+ }
22
+
23
+ .btn-rg {
24
+ @include mixins.btn-rg;
25
+ }
26
+
27
+ .btn-lg {
28
+ @include mixins.btn-lg;
29
+ }
30
+
31
+ .btn-scaling {
32
+ @include mixins.btn-sm;
33
+
34
+ @include media-breakpoint-up(rg) {
35
+ @include mixins.btn-rg;
36
+ }
37
+
38
+ @include media-breakpoint-up(md) {
39
+ @include mixins.btn;
40
+ }
41
+ }
42
+
43
+ // Includes button variants for buttons that are to be used on coloured backgrounds
44
+ .btn-inverted {
45
+ &.btn {
46
+ @include mixins.button-outline-variant(color.$white-alpha-80, color.$white);
47
+ }
48
+
49
+ @each $color, $value in color.$theme-colors {
50
+ &.btn-#{$color} {
51
+ @if $color == "primary" {
52
+ @include mixins.button-variant(
53
+ color.$white,
54
+ transparent,
55
+ color.$white-alpha-80,
56
+ transparent
57
+ );
58
+ } @else {
59
+ @include mixins.button-variant($value, $value, color.$white);
60
+ }
61
+ }
62
+
63
+ &.btn-outline-#{$color} {
64
+ @if $color == "white" or $color == "secondary" {
65
+ @include mixins.button-variant(
66
+ transparent,
67
+ color.$white,
68
+ transparent,
69
+ color.$white-alpha-80
70
+ );
71
+ @include hover-focus {
72
+ &:not(:disabled):not(.disabled) {
73
+ color: color.$white-alpha-80;
74
+ }
75
+ }
76
+ } @else {
77
+ @include mixins.button-outline-variant($value);
78
+ }
79
+ }
80
+ }
81
+ }
82
+
83
+ // Define primary button hover-background as black
84
+ .btn-primary {
85
+ $primary-color: map.get(color.$theme-colors, "primary");
86
+ @include mixins.button-variant(color.$primary-color, color.$primary-color, color.$black, color.$black);
87
+ }
88
+
89
+ // Define a white button styling
90
+ .btn-white {
91
+ @include mixins.button-variant(color.$white, color.$white, color.$white-alpha-80, transparent);
92
+ }
93
+
94
+ // Define a default button styling
95
+ .btn-default {
96
+ @include mixins.button-outline-variant(color.$black);
97
+ }
98
+
99
+ .btn-animated {
100
+ @include hover-focus {
101
+ &:not([disabled]) > span {
102
+ &::after {
103
+ opacity: 1;
104
+ }
105
+ }
106
+
107
+ &[disabled] > span {
108
+ transform: none;
109
+ }
110
+ }
111
+
112
+ &:not([disabled]) > span {
113
+ @include transition(button.$btn-transition-base-label);
114
+
115
+ position: relative;
116
+ left: 0;
117
+ display: inline-block;
118
+
119
+ &::after {
120
+ @include transition(
121
+ button.$btn-transition-base-label,
122
+ button.$btn-transition-fade-arrow
123
+ );
124
+
125
+ content: "";
126
+ background-size: contain;
127
+ background-repeat: no-repeat;
128
+ background-position: right center;
129
+ position: absolute;
130
+ display: inline-block;
131
+ padding: 0;
132
+ margin: 0;
133
+ opacity: 0;
134
+ }
135
+ }
136
+ }
137
+
138
+ .btn-icon {
139
+ .pi {
140
+ transition: button.$btn-transition;
141
+ opacity: .6;
142
+ }
143
+
144
+ // Icon spacing
145
+ .pi + span,
146
+ span + .pi {
147
+ margin-left: button.$btn-padding-x/2;
148
+ }
149
+
150
+ &:hover:not(:disabled):not(.disabled) .pi {
151
+ opacity: 1;
152
+ }
153
+ }
154
+
155
+ @each $size, $margin in button.$btn-icon-size-map {
156
+ .btn-icon.btn-#{$size} {
157
+ .pi + span,
158
+ span + .pi {
159
+ margin-left: $margin/2;
160
+ }
161
+ }
162
+ }
163
+
164
+ .btn-link {
165
+ &:focus {
166
+ box-shadow: none;
167
+ }
168
+ }