@igo2/sdg-theme 2.0.0-next.10

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.
@@ -0,0 +1,37 @@
1
+ @use '@igo2/sdg-core' as sdg;
2
+
3
+ @mixin overrides() {
4
+ .mdc-dialog {
5
+ max-width: 600px;
6
+
7
+ &__surface {
8
+ border-radius: 0 !important;
9
+ }
10
+
11
+ &__title {
12
+ padding-top: 8px !important; // Workaround, this should be 32px but Material apply a default height for the title.
13
+ padding-bottom: 24px !important;
14
+
15
+ @include sdg.title-border;
16
+ }
17
+
18
+ &__tile,
19
+ &__content,
20
+ &__actions {
21
+ padding-left: 32px !important;
22
+ padding-right: 32px !important;
23
+ }
24
+
25
+ &__actions {
26
+ padding-top: 24px !important;
27
+ padding-bottom: 32px !important;
28
+ }
29
+
30
+ .close-button {
31
+ $iconButtonPadding: 8px;
32
+ position: absolute;
33
+ top: 16px - $iconButtonPadding;
34
+ right: 16px - $iconButtonPadding;
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,11 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use '@igo2/sdg-core' as sdg;
4
+
5
+ @mixin overrides() {
6
+ @include mat.divider-overrides(
7
+ (
8
+ color: rgba(map.get(sdg.$light-colors, 'black'), 0.12)
9
+ )
10
+ );
11
+ }
@@ -0,0 +1,62 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ .mat-expansion-panel {
5
+ $grey-pale: var(--sdg-color-grey-pale);
6
+ $grey-hover: var(#e7e7ea);
7
+
8
+ $blue-dark: var(--sdg-color-blue-dark);
9
+
10
+ @include mat.expansion-overrides(
11
+ (
12
+ container-shape: 0,
13
+ container-elevation-shadow: none,
14
+ container-text-color: none,
15
+ container-text-tracking: none,
16
+
17
+ header-description-color: var(--sdg-color-grey-medium),
18
+ header-focus-state-layer-color: $grey-pale,
19
+ header-hover-state-layer-color: $grey-hover,
20
+ header-indicator-color: $blue-dark,
21
+ header-text-color: $blue-dark,
22
+ header-text-weight: 600,
23
+ header-text-size: var(--sdg-font-size-md),
24
+ header-text-line-height: var(--sdg-line-height-md),
25
+ header-text-font: var(--sdg-font-family-text),
26
+ header-text-tracking: none,
27
+ header-collapsed-state-height: 56px,
28
+ header-expanded-state-height: 56px
29
+ )
30
+ );
31
+
32
+ &.mat-expanded {
33
+ outline: 1px solid var(--sdg-color-grey-light);
34
+ }
35
+
36
+ .mat-expansion-panel-header {
37
+ background-color: $grey-pale;
38
+ padding: 0 16px;
39
+
40
+ &-description {
41
+ justify-content: flex-end;
42
+ font-weight: normal;
43
+ }
44
+
45
+ &.cdk-keyboard-focused {
46
+ border: 2px solid var(--sdg-color-blue-light);
47
+ }
48
+
49
+ &.mat-expanded {
50
+ background-color: $grey-pale;
51
+ }
52
+ }
53
+
54
+ .mat-expansion-panel-body {
55
+ padding: 24px 16px;
56
+ }
57
+
58
+ &:hover {
59
+ outline: 1px solid var(--sdg-color-grey-light) !important;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,140 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ .mat-mdc-form-field {
5
+ $blue-dark: var(--sdg-color-blue-dark);
6
+ $grey-medium: var(--sdg-color-grey-medium);
7
+ $red-normal: var(--sdg-color-red-normal);
8
+
9
+ $text-font: var(--sdg-font-family-text);
10
+ $text-line-height: var(--sdg-line-height-md);
11
+ $text-size: var(--sdg-font-size-md);
12
+
13
+ max-width: 100%;
14
+
15
+ @include mat.form-field-density(-4);
16
+
17
+ @include mat.form-field-overrides(
18
+ (
19
+ outlined-outline-width: 1px,
20
+ outlined-outline-color: $grey-medium,
21
+ outlined-disabled-input-text-color: $grey-medium,
22
+ outlined-disabled-outline-color: $grey-medium,
23
+ outlined-error-hover-outline-color: $red-normal,
24
+ outlined-focus-outline-width: 2px,
25
+ outlined-focus-outline-color: $blue-dark,
26
+ outlined-hover-outline-color: $grey-medium,
27
+ outlined-input-text-color: $blue-dark,
28
+ outlined-input-text-placeholder-color: $grey-medium,
29
+ outlined-container-shape: 0,
30
+ //
31
+ disabled-input-text-placeholder-color: $grey-medium,
32
+ //
33
+ error-text-color: $red-normal,
34
+ //
35
+ focus-state-layer-opacity: 0,
36
+ //
37
+ hover-state-layer-opacity: 0,
38
+ //
39
+ state-layer-color: transparent,
40
+ //
41
+ container-text-font: $text-font,
42
+ container-text-line-height: $text-line-height,
43
+ container-text-size: $text-size
44
+ )
45
+ );
46
+
47
+ &.mat-form-field-disabled {
48
+ .mdc-text-field {
49
+ background-color: var(--sdg-color-grey-pale);
50
+ }
51
+
52
+ mat-hint {
53
+ color: var(--sdg-color-grey-normal) !important;
54
+ }
55
+ }
56
+
57
+ .mdc-text-field {
58
+ background-color: var(--sdg-color-background);
59
+ padding: 0 8px;
60
+
61
+ &--focused {
62
+ outline: 2px solid var(--sdg-color-blue-light);
63
+ }
64
+
65
+ &--disabled {
66
+ background-color: var(--sdg-color-grey-pale);
67
+ }
68
+ }
69
+
70
+ &[xl] {
71
+ width: 825px;
72
+ }
73
+
74
+ &[lg],
75
+ &[multi] {
76
+ width: 528px;
77
+ }
78
+
79
+ &[md] {
80
+ width: 249px;
81
+ }
82
+
83
+ &[sm] {
84
+ width: 156px;
85
+ }
86
+
87
+ &[xs] {
88
+ width: 63px;
89
+ }
90
+
91
+ .mat-mdc-form-field-subscript-wrapper {
92
+ .mat-mdc-form-field-hint-wrapper {
93
+ padding: 0;
94
+
95
+ mat-hint {
96
+ padding-top: 4px;
97
+ font-family: $text-font;
98
+ font-weight: 400;
99
+ font-size: var(--sdg-font-size-sm);
100
+ line-height: var(--sdg-line-height-sm);
101
+ color: var(--sdg-color-grey-dark);
102
+ }
103
+ }
104
+ }
105
+
106
+ .mat-mdc-form-field-error-wrapper {
107
+ padding: 0;
108
+
109
+ mat-error {
110
+ display: flex;
111
+ align-items: center;
112
+ column-gap: 8px;
113
+ padding-top: 8px;
114
+ font-family: $text-font;
115
+ font-weight: 600;
116
+ font-size: $text-size;
117
+ line-height: $text-line-height;
118
+
119
+ mat-icon {
120
+ font-size: 24px;
121
+ width: 24px;
122
+ height: 24px;
123
+ }
124
+ }
125
+ }
126
+ }
127
+
128
+ .mat-mdc-input-element {
129
+ &::-webkit-scrollbar {
130
+ background-color: transparent;
131
+ width: 8px;
132
+ height: auto;
133
+ }
134
+
135
+ &::-webkit-scrollbar-thumb {
136
+ background: var(--sdg-color-blue-piv);
137
+ border-radius: 4px;
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,34 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ @include color-variants-backwards-compatibility();
5
+ }
6
+
7
+ // Material custom color variants backwards compatibility
8
+ @mixin color-variants-backwards-compatibility() {
9
+ .mat-icon {
10
+ &.mat-accent {
11
+ @include mat.icon-overrides(
12
+ (
13
+ color: var(--sdg-color-pink-normal)
14
+ )
15
+ );
16
+ }
17
+
18
+ &.mat-primary {
19
+ @include mat.icon-overrides(
20
+ (
21
+ color: var(--sdg-color-blue-piv)
22
+ )
23
+ );
24
+ }
25
+
26
+ &.mat-warn {
27
+ @include mat.icon-overrides(
28
+ (
29
+ color: var(--sdg-color-red-normal)
30
+ )
31
+ );
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,35 @@
1
+ @use './button';
2
+ @use './checkbox';
3
+ @use './chip';
4
+ @use './dialog';
5
+ @use './divider';
6
+ @use './expansion-panel';
7
+ @use './form-field';
8
+ @use './icon';
9
+ @use './select';
10
+ @use './sidenav';
11
+ @use './radio-button';
12
+ @use './tab';
13
+ @use './theme' as theme-def;
14
+
15
+ $theme: theme-def.$theme;
16
+ $primary-palette: theme-def.$primary-palette;
17
+
18
+ @mixin high-contrast-overrides($theme-type) {
19
+ @include theme-def.high-contrast-overrides($theme-type);
20
+ }
21
+
22
+ @mixin overrides() {
23
+ @include button.overrides();
24
+ @include checkbox.overrides();
25
+ @include chip.overrides();
26
+ @include dialog.overrides();
27
+ @include divider.overrides();
28
+ @include expansion-panel.overrides();
29
+ @include select.overrides();
30
+ @include form-field.overrides();
31
+ @include icon.overrides();
32
+ @include sidenav.overrides();
33
+ @include radio-button.overrides();
34
+ @include tab.overrides();
35
+ }
@@ -0,0 +1,124 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ .mat-mdc-radio-group {
5
+ display: flex;
6
+ flex-flow: column;
7
+ row-gap: 16px;
8
+ }
9
+
10
+ .mat-mdc-radio-button {
11
+ $disabled-color: var(--sdg-color-grey-light);
12
+ $unselected-color: var(--sdg-color-blue-dark);
13
+ $selected-color: var(--sdg-color-blue-normal);
14
+
15
+ $radio-button-size: 24px;
16
+ $size-with-padding: calc($radio-button-size + 4px);
17
+
18
+ @include mat.radio-overrides(
19
+ (
20
+ label-text-size: var(--sdg-font-size-md),
21
+ label-text-line-height: var(--sdg-font-size-md),
22
+ // same as font size to avoid extra space above and below
23
+ label-text-color: $unselected-color,
24
+
25
+ ripple-color: transparent,
26
+ checked-ripple-color: transparent,
27
+
28
+ disabled-label-color: $disabled-color,
29
+ disabled-unselected-icon-color: $disabled-color,
30
+ disabled-unselected-icon-opacity: 1,
31
+ disabled-selected-icon-color: $disabled-color,
32
+ disabled-selected-icon-opacity: 1,
33
+
34
+ unselected-icon-color: $unselected-color,
35
+ unselected-hover-icon-color: $unselected-color,
36
+ unselected-focus-icon-color: $selected-color,
37
+ unselected-pressed-icon-color: $selected-color,
38
+
39
+ selected-icon-color: $selected-color,
40
+ selected-hover-icon-color: $selected-color,
41
+ selected-focus-icon-color: $selected-color,
42
+ selected-pressed-icon-color: $selected-color,
43
+
44
+ state-layer-size: $size-with-padding
45
+ )
46
+ );
47
+
48
+ .mdc-radio {
49
+ height: $radio-button-size;
50
+ width: $radio-button-size;
51
+ padding: calc(
52
+ (var(--mat-radio-state-layer-size, 40px) - $radio-button-size) / 2
53
+ );
54
+
55
+ .mdc-radio__native-control:checked
56
+ + .mdc-radio__background
57
+ > .mdc-radio__inner-circle {
58
+ transform: scale(0.6);
59
+ }
60
+
61
+ .mdc-radio__background {
62
+ height: $radio-button-size;
63
+ width: $radio-button-size;
64
+
65
+ .mdc-radio__inner-circle {
66
+ border-width: calc($radio-button-size / 2);
67
+ }
68
+ }
69
+ }
70
+
71
+ .mat-mdc-radio-touch-target {
72
+ height: $size-with-padding;
73
+ width: $size-with-padding;
74
+ }
75
+
76
+ .mdc-form-field {
77
+ column-gap: 8px;
78
+
79
+ .mdc-label {
80
+ padding: 0;
81
+ transform: translateY(
82
+ 1px
83
+ ); // visually center the label with the radio button
84
+ }
85
+ }
86
+
87
+ &[compact] {
88
+ $radio-button-size: 16px;
89
+ $size-with-padding: calc($radio-button-size + 4px);
90
+
91
+ @include mat.radio-overrides(
92
+ (
93
+ state-layer-size: $size-with-padding
94
+ )
95
+ );
96
+
97
+ .mdc-radio {
98
+ height: $radio-button-size;
99
+ width: $radio-button-size;
100
+ padding: calc(
101
+ (var(--mat-radio-state-layer-size, 40px) - $radio-button-size) / 2
102
+ );
103
+
104
+ .mdc-radio__background {
105
+ height: $radio-button-size;
106
+ width: $radio-button-size;
107
+
108
+ .mdc-radio__inner-circle {
109
+ border-width: calc($radio-button-size / 2);
110
+ }
111
+
112
+ .mdc-radio__outer-circle {
113
+ border-width: 1px;
114
+ }
115
+ }
116
+ }
117
+
118
+ .mat-mdc-radio-touch-target {
119
+ height: $size-with-padding;
120
+ width: $size-with-padding;
121
+ }
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,74 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ $blue-dark: var(--sdg-color-blue-dark);
5
+ $blue-piv: var(--sdg-color-blue-piv);
6
+ $grey-medium: var(--sdg-color-grey-medium);
7
+
8
+ $text-font: var(--sdg-font-family-text);
9
+ $text-line-height: var(--sdg-line-height-md);
10
+ $text-size: var(--sdg-font-size-md);
11
+
12
+ .mat-mdc-form-field {
13
+ @include mat.select-overrides(
14
+ (
15
+ enabled-trigger-text-color: $blue-dark,
16
+ enabled-arrow-color: $blue-piv,
17
+ //
18
+ disabled-trigger-text-color: $grey-medium,
19
+ disabled-arrow-color: var(--sdg-color-grey-normal),
20
+ //
21
+ placeholder-text-color: $grey-medium,
22
+ //
23
+ trigger-text-font: $text-font,
24
+ trigger-text-line-height: $text-line-height,
25
+ trigger-text-size: $text-size
26
+ )
27
+ );
28
+ }
29
+
30
+ .mat-mdc-select-panel {
31
+ @include mat.select-overrides(
32
+ (
33
+ container-elevation-shadow: none,
34
+ //
35
+ panel-background-color: var(--sdg-color-background)
36
+ )
37
+ );
38
+
39
+ padding: 0 !important;
40
+ border: 1px solid $grey-medium;
41
+ border-radius: 0 !important;
42
+
43
+ .mat-mdc-option {
44
+ min-height: 0;
45
+ padding: 8px;
46
+
47
+ .mdc-list-item__primary-text {
48
+ color: $blue-dark;
49
+ font-family: $text-font;
50
+ font-size: $text-size;
51
+ line-height: $text-line-height;
52
+ }
53
+
54
+ &:hover {
55
+ background-color: var(--sdg-color-grey-pale);
56
+ }
57
+
58
+ &-active {
59
+ background-color: var(--sdg-color-blue-pale) !important;
60
+ }
61
+ }
62
+
63
+ &::-webkit-scrollbar {
64
+ background-color: transparent;
65
+ width: 8px;
66
+ height: auto;
67
+ }
68
+
69
+ &::-webkit-scrollbar-thumb {
70
+ background: $blue-piv;
71
+ border-radius: 4px;
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,9 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ @include mat.sidenav-overrides(
5
+ (
6
+ container-shape: 0
7
+ )
8
+ );
9
+ }
@@ -0,0 +1,95 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ .mat-mdc-tab-group {
5
+ $blue-piv: var(--sdg-color-blue-piv);
6
+ $blue-dark: var(--sdg-color-blue-dark);
7
+ $grey-pale: var(--sdg-color-grey-pale);
8
+
9
+ .mat-mdc-tab-labels {
10
+ column-gap: 24px;
11
+ }
12
+
13
+ .mdc-tab {
14
+ padding: 0 8px;
15
+ min-width: unset;
16
+
17
+ &--active {
18
+ font-weight: bold;
19
+ }
20
+
21
+ &:hover:not(&--active) {
22
+ .mdc-tab-indicator {
23
+ border-bottom: 4px solid $grey-pale;
24
+ }
25
+ }
26
+
27
+ &:focus {
28
+ .mdc-tab-indicator {
29
+ border: 2px solid var(--sdg-color-blue-light);
30
+ }
31
+ }
32
+ }
33
+
34
+ .mat-mdc-tab-header-pagination {
35
+ min-width: 40px;
36
+
37
+ &-after,
38
+ &-before {
39
+ padding: 0;
40
+ }
41
+
42
+ &-after {
43
+ .mat-mdc-tab-header-pagination-chevron {
44
+ transform: rotate(45deg) translateX(-2px);
45
+ height: 10px;
46
+ width: 10px;
47
+ }
48
+ }
49
+
50
+ &-before {
51
+ .mat-mdc-tab-header-pagination-chevron {
52
+ transform: rotate(225deg) translate(-2px, 2px);
53
+ height: 10px;
54
+ width: 10px;
55
+ }
56
+ }
57
+
58
+ &:hover {
59
+ background-color: $grey-pale;
60
+ }
61
+
62
+ &:active {
63
+ background-color: var(--sdg-color-blue-pale);
64
+ }
65
+ }
66
+
67
+ @include mat.tabs-overrides(
68
+ (
69
+ active-indicator-color: $blue-piv,
70
+ active-indicator-height: 4px,
71
+ active-hover-indicator-color: $blue-piv,
72
+ active-hover-label-text-color: $blue-dark,
73
+ active-focus-indicator-color: $blue-piv,
74
+ active-focus-label-text-color: $blue-dark,
75
+ active-ripple-color: transparent,
76
+ active-label-text-color: $blue-dark,
77
+ //
78
+ inactive-ripple-color: transparent,
79
+ inactive-label-text-color: $blue-piv,
80
+ inactive-focus-label-text-color: $blue-piv,
81
+ inactive-hover-label-text-color: $blue-piv,
82
+ //
83
+ divider-color: var(--sdg-color-grey-light),
84
+ divider-height: 1px,
85
+ //
86
+ label-text-size: var(--sdg-font-size-md),
87
+ label-text-line-height: var(--sdg-line-height-md),
88
+ //
89
+ pagination-icon-color: $blue-dark,
90
+ //
91
+ container-height: 40px
92
+ )
93
+ );
94
+ }
95
+ }