@financial-times/n-myft-ui 37.0.0 → 38.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.
- package/.pa11yci.js +2 -1
- package/.toolkitstate/ci.json +2 -2
- package/components/button/main.scss +49 -62
- package/components/collections/collections.html +1 -1
- package/components/collections/main.scss +54 -25
- package/components/concept-list/concept-list.html +1 -1
- package/components/concept-list/main.scss +33 -28
- package/components/digest-promo/generic-promo-message.html +1 -1
- package/components/digest-promo/main.scss +96 -98
- package/components/digest-promo/promo-message.html +1 -1
- package/components/follow-button/follow-button.html +1 -1
- package/components/instant-alert/index.js +4 -5
- package/components/instant-alert/instant-alert.html +1 -5
- package/components/instant-alert/main.scss +69 -46
- package/components/jsx/follow-plus-instant-alerts/follow-plus-instant-alerts.jsx +1 -1
- package/components/jsx/follow-plus-instant-alerts/main.scss +36 -46
- package/components/jsx/preferences-modal/main.scss +38 -19
- package/components/pin-button/main.scss +63 -54
- package/components/pin-button/pin-button.html +1 -1
- package/components/save-for-later/save-for-later.html +2 -2
- package/demos/app.js +1 -23
- package/demos/src/demo.scss +19 -15
- package/demos/templates/demo.html +6 -4
- package/dist/follow-plus-instant-alerts/follow-plus-instant-alerts.js +1 -1
- package/mixins/lozenge/_themes.scss +70 -64
- package/mixins/lozenge/_toggle-icon.scss +39 -38
- package/mixins/lozenge/main.scss +80 -65
- package/myft/main.scss +376 -336
- package/myft/ui/lists.js +4 -4
- package/myft/ui/lists.scss +2 -20
- package/myft/ui/myft-buttons/main.scss +1 -1
- package/myft/ui/personalise-links.js +1 -2
- package/package.json +15 -13
- package/scripts/build-demo.sh +1 -1
- package/components/onboarding-cta/main.scss +0 -10
- package/mixins/buttons.scss +0 -23
- package/styles.css +0 -1
@@ -1,77 +1,83 @@
|
|
1
1
|
$myft-lozenge-themes: (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
2
|
+
standard: (
|
3
|
+
toggle-button-theme: (
|
4
|
+
'color': 'claret',
|
5
|
+
),
|
6
|
+
background: var(--o3-color-palette-claret),
|
7
|
+
text: var(--o3-color-palette-white),
|
8
|
+
highlight: var(--o3-color-palette-claret-50),
|
9
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-black) 5%, transparent),
|
10
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-black) 50%, transparent),
|
11
|
+
),
|
12
|
+
inverse: (
|
13
|
+
toggle-button-theme: 'inverse',
|
14
|
+
background: var(--o3-color-palette-white),
|
15
|
+
text: var(--o3-color-palette-black),
|
16
|
+
highlight: color-mix(in srgb, white 80%, transparent),
|
17
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-white) 20%, transparent),
|
18
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-white) 50%, transparent),
|
19
|
+
mix-blend-mode: lighten,
|
20
|
+
),
|
21
|
+
opinion: (
|
22
|
+
toggle-button-theme: (
|
23
|
+
'color': 'oxford-40',
|
24
|
+
),
|
25
|
+
background: var(--o3-color-palette-oxford-40),
|
26
|
+
text: var(--o3-color-palette-white),
|
27
|
+
highlight: var(--o3-color-palette-oxford-30),
|
28
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-oxford-40) 20%, transparent),
|
29
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-black) 50%, transparent),
|
30
|
+
),
|
31
|
+
monochrome: (
|
32
|
+
toggle-button-theme: 'inverse',
|
33
|
+
background: var(--o3-color-palette-white),
|
34
|
+
text: var(--o3-color-palette-black),
|
35
|
+
highlight: var(--o3-color-palette-white-80),
|
36
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-white) 20%, transparent),
|
37
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-white) 50%, transparent),
|
38
|
+
),
|
39
|
+
inverse-monochrome: (
|
40
|
+
toggle-button-theme: (
|
41
|
+
'color': 'black',
|
42
|
+
),
|
43
|
+
background: var(--o3-color-palette-black),
|
44
|
+
text: var(--o3-color-palette-white),
|
45
|
+
highlight: var(--o3-color-palette-black-80),
|
46
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-black) 20%, transparent),
|
47
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-black) 50%, transparent),
|
48
|
+
),
|
49
|
+
alphaville: (
|
50
|
+
toggle-button-theme: 'inverse',
|
51
|
+
background: var(--o3-color-palette-white),
|
52
|
+
text: var(--o3-color-palette-matisse-blue),
|
53
|
+
highlight: color-mix(in srgb, var(--o3-color-palette-white) 80%, transparent),
|
54
|
+
pressed-highlight: color-mix(in srgb, var(--o3-color-palette-white) 20%, transparent),
|
55
|
+
disabled: color-mix(in srgb, var(--o3-color-palette-white) 50%, transparent),
|
56
|
+
),
|
51
57
|
);
|
52
58
|
|
53
59
|
@function getThemeColor($key) {
|
54
|
-
|
60
|
+
@return map-get($theme-map, $key);
|
55
61
|
}
|
56
62
|
|
57
63
|
// to avoid creating --standard styles
|
58
|
-
@function getThemeModifier
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
+
@function getThemeModifier($theme) {
|
65
|
+
@if $theme == 'standard' {
|
66
|
+
@return '';
|
67
|
+
} @else {
|
68
|
+
@return '--#{$theme}';
|
69
|
+
}
|
64
70
|
}
|
65
71
|
|
66
72
|
@mixin withTheme($theme) {
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
73
|
+
@if type-of($theme) == 'map' {
|
74
|
+
$theme-map: $theme !global;
|
75
|
+
} @else {
|
76
|
+
$theme-map: map-get($myft-lozenge-themes, $theme) !global;
|
77
|
+
}
|
72
78
|
|
73
|
-
|
79
|
+
@content;
|
74
80
|
|
75
|
-
|
76
|
-
|
81
|
+
// stylelint-disable order/order
|
82
|
+
$theme-map: null !global;
|
77
83
|
}
|
@@ -1,50 +1,51 @@
|
|
1
|
-
@import
|
1
|
+
@import './themes';
|
2
2
|
|
3
3
|
@mixin getIcon($name, $color) {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
--icon-size: 12px;
|
5
|
+
content: '';
|
6
|
+
display: inline-block;
|
7
|
+
mask-image: var($name);
|
8
|
+
mask-repeat: no-repeat;
|
9
|
+
mask-size: contain;
|
10
|
+
width: var(--icon-size);
|
11
|
+
height: var(--icon-size);
|
12
|
+
background-color: $color;
|
13
|
+
background-size: 25px;
|
14
|
+
margin: 0 6px -1px 0;
|
11
15
|
}
|
12
16
|
|
13
17
|
@mixin plusIcon($color) {
|
14
|
-
|
15
|
-
background-size: 25px;
|
16
|
-
margin: 0 6px -1px 0;
|
18
|
+
@include getIcon(--o3-icon-plus, $color);
|
17
19
|
}
|
18
20
|
|
19
21
|
@mixin tickIcon($color) {
|
20
|
-
|
21
|
-
background-size: 21px;
|
22
|
+
@include getIcon(--o3-icon-tick, $color);
|
22
23
|
}
|
23
24
|
|
24
25
|
@mixin myftToggleIcon($theme: standard) {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
26
|
+
@include withTheme($theme) {
|
27
|
+
&::before {
|
28
|
+
@include getIcon(--o3-icon-plus, getThemeColor(background));
|
29
|
+
}
|
30
|
+
|
31
|
+
&[aria-pressed='true'] {
|
32
|
+
&::before {
|
33
|
+
@include getIcon(--o3-icon-tick, getThemeColor(text));
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
&[disabled],
|
38
|
+
&[disabled]:hover {
|
39
|
+
background: transparent;
|
40
|
+
|
41
|
+
&::before {
|
42
|
+
@include getIcon(--o3-icon-plus, getThemeColor(disabled));
|
43
|
+
opacity: 0.5;
|
44
|
+
}
|
45
|
+
|
46
|
+
&[aria-pressed='true']::before {
|
47
|
+
@include getIcon(--o3-icon-tick, getThemeColor(disabled));
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
50
51
|
}
|
package/mixins/lozenge/main.scss
CHANGED
@@ -1,85 +1,100 @@
|
|
1
1
|
@import './themes';
|
2
2
|
@import './toggle-icon';
|
3
3
|
|
4
|
-
@include oNormalise($opts: (
|
5
|
-
'elements': ('forms', 'text', 'links')
|
6
|
-
));
|
7
|
-
|
8
4
|
@mixin commonMyftLozengeStyles {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
5
|
+
border-radius: 100px;
|
6
|
+
box-sizing: content-box;
|
7
|
+
display: block;
|
8
|
+
margin: 6px 4px 6px 2px;
|
9
|
+
max-width: 200px;
|
10
|
+
outline-offset: 2px;
|
11
|
+
overflow: hidden;
|
12
|
+
text-align: left;
|
13
|
+
text-overflow: ellipsis;
|
14
|
+
transition: border-color, background-color 0.5s ease;
|
15
|
+
white-space: nowrap;
|
16
|
+
align-items: center;
|
17
|
+
justify-content: center;
|
18
|
+
vertical-align: middle;
|
19
|
+
font-family: var(--o3-font-family-metric);
|
20
|
+
text-decoration: none;
|
21
|
+
appearance: none;
|
22
|
+
color: getThemeColor(background);
|
23
|
+
border: 1px solid getThemeColor(background);
|
24
|
+
background-color: transparent;
|
25
|
+
&[disabled]:hover,
|
26
|
+
&[disabled] {
|
27
|
+
background: transparent;
|
28
|
+
border: 1px solid getThemeColor(disabled);
|
29
|
+
color: getThemeColor(disabled);
|
30
|
+
opacity: unset;
|
31
|
+
}
|
29
32
|
}
|
30
33
|
|
31
34
|
@mixin myftLozengeTheme($theme: standard) {
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
@include withTheme($theme) {
|
36
|
+
background-color: transparent;
|
37
|
+
border: 1px solid getThemeColor(background);
|
38
|
+
color: getThemeColor(background);
|
36
39
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
&:hover,
|
41
|
+
&:focus {
|
42
|
+
background-color: getThemeColor(pressed-highlight);
|
43
|
+
border-color: getThemeColor(background);
|
44
|
+
color: getThemeColor(background);
|
45
|
+
}
|
43
46
|
|
44
|
-
|
45
|
-
|
46
|
-
}
|
47
|
+
@include commonMyftLozengeStyles;
|
48
|
+
}
|
47
49
|
}
|
48
50
|
|
49
51
|
@mixin myftLozenge($theme: standard) {
|
50
|
-
|
51
|
-
|
52
|
+
@include myftLozengeTheme($theme);
|
53
|
+
font-size: var(--o3-font-size-metric2-negative-1);
|
54
|
+
line-height: var(--o3-font-lineheight-metric2-negative-1);
|
55
|
+
font-weight: var(--o3-font-weight-semibold);
|
56
|
+
padding: 5px 12px;
|
57
|
+
min-height: 20px;
|
52
58
|
}
|
53
59
|
|
54
60
|
@mixin myftLozengeToggleButton($theme: standard) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
+
@include myftToggleIcon($theme);
|
62
|
+
@include withTheme($theme) {
|
63
|
+
font-size: var(--o3-font-size-negative-1);
|
64
|
+
line-height: var(--o3-font-lineheight-negative-2);
|
65
|
+
font-weight: var(--o3-font-weight-semibold);
|
66
|
+
min-height: 28px;
|
67
|
+
min-width: 60px;
|
61
68
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
69
|
+
&[aria-pressed="true"] {
|
70
|
+
color: getThemeColor(text);
|
71
|
+
background-color: getThemeColor(background);
|
72
|
+
border-color: getThemeColor(background);
|
73
|
+
@if getThemeColor(mix-blend-mode) {
|
74
|
+
mix-blend-mode: getThemeColor(mix-blend-mode);
|
75
|
+
}
|
67
76
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
77
|
+
&:hover,
|
78
|
+
&:focus {
|
79
|
+
border-color: getThemeColor(highlight);
|
80
|
+
color: getThemeColor(text);
|
72
81
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
82
|
+
@if getThemeColor(mix-blend-mode) {
|
83
|
+
mix-blend-mode: getThemeColor(mix-blend-mode);
|
84
|
+
background-color: color-mix(in srgb, getThemeColor(highlight) 85%, transparent);
|
85
|
+
} @else {
|
86
|
+
background-color: getThemeColor(highlight);
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
&:hover,
|
91
|
+
&:focus {
|
92
|
+
background-color: getThemeColor(pressed-highlight);
|
93
|
+
border-color: getThemeColor(background);
|
94
|
+
color: getThemeColor(background);
|
95
|
+
}
|
81
96
|
|
82
|
-
|
83
|
-
|
84
|
-
|
97
|
+
@include commonMyftLozengeStyles;
|
98
|
+
padding: 0 var(--o3-spacing-3xs);
|
99
|
+
}
|
85
100
|
}
|