@kirbydesign/designsystem 5.0.12 → 5.0.16
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/bundles/kirbydesign-designsystem.umd.js +19 -20
- package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem.umd.min.js +1 -1
- package/bundles/kirbydesign-designsystem.umd.min.js.map +1 -1
- package/esm2015/lib/components/chart/chart-js/chart-js.service.js +10 -1
- package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +10 -12
- package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.metadata.json +1 -1
- package/esm2015/lib/components/chart/chart.types.js +1 -1
- package/esm2015/lib/components/chart/chart.types.metadata.json +1 -1
- package/esm2015/lib/components/chart/configs/type.config.js +1 -11
- package/esm2015/lib/components/chart/configs/type.config.metadata.json +1 -1
- package/esm2015/lib/components/dropdown/dropdown.component.js +2 -2
- package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +1 -1
- package/fesm2015/kirbydesign-designsystem.js +19 -20
- package/fesm2015/kirbydesign-designsystem.js.map +1 -1
- package/kirbydesign-designsystem.metadata.json +1 -1
- package/lib/components/chart/chart.types.d.ts +1 -0
- package/package.json +2 -2
- package/scss/_global-styles.scss +1 -269
- package/scss/_utils.scss +1 -1
- package/scss/base/_functions.scss +1 -188
- package/scss/base/_ionic.scss +1 -36
- package/scss/base/_line-clamp.scss +1 -56
- package/scss/base/_list.scss +1 -11
- package/scss/base/_typography.scss +1 -105
- package/scss/base/_variables.scss +1 -197
- package/scss/print/_index.scss +1 -3
- package/scss/print/components/_index.scss +1 -7
- package/scss/print/components/_kirby-app.scss +1 -21
- package/scss/print/components/_kirby-fab-sheet.scss +1 -5
- package/scss/print/components/_kirby-list.scss +1 -24
- package/scss/print/components/_kirby-modal-wrapper.scss +1 -16
- package/scss/print/components/_kirby-page.scss +1 -17
- package/scss/print/components/_kirby-router-outlet.scss +1 -11
- package/scss/print/components/_kirby-tab-bar.scss +1 -25
- package/scss/print/elements/_button.scss +1 -6
- package/scss/print/elements/_index.scss +1 -3
- package/scss/print/elements/_page.scss +1 -6
- package/scss/print/elements/_preformatted-text.scss +1 -6
- package/scss/print/generic/_colors.scss +1 -9
- package/scss/print/generic/_index.scss +1 -4
- package/scss/print/generic/_page.scss +1 -40
- package/scss/print/generic/_reset.scss +1 -12
- package/scss/print/generic/_typography.scss +1 -70
- package/scss/themes/_colors.scss +1 -117
|
@@ -19,6 +19,7 @@ export declare type ChartLocale = 'da-DK' | 'en-US';
|
|
|
19
19
|
export declare type ChartDataset = {
|
|
20
20
|
kirbyOptions?: {
|
|
21
21
|
highlightedElements?: number[];
|
|
22
|
+
isStockChart?: boolean;
|
|
22
23
|
};
|
|
23
24
|
} & ChartJSDataset;
|
|
24
25
|
export declare function isNumberArray(value: any): value is number[];
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kirbydesign/designsystem",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.16",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"chart.js": "3.3.2",
|
|
6
6
|
"chartjs-adapter-date-fns": "^2.0.0",
|
|
7
7
|
"chartjs-plugin-annotation": "^1.0.2",
|
|
8
8
|
"chartjs-plugin-datalabels": "^2.0.0",
|
|
9
9
|
"@ionic/angular": "5.5.2",
|
|
10
|
-
"@kirbydesign/core": "0.0.
|
|
10
|
+
"@kirbydesign/core": "0.0.22",
|
|
11
11
|
"date-fns": "2.21.1",
|
|
12
12
|
"date-fns-tz": "1.1.4",
|
|
13
13
|
"highcharts": "8.0.4",
|
package/scss/_global-styles.scss
CHANGED
|
@@ -1,269 +1 @@
|
|
|
1
|
-
@
|
|
2
|
-
@use "sass:math";
|
|
3
|
-
@use 'utils';
|
|
4
|
-
@use 'base/ionic';
|
|
5
|
-
@use 'base/typography';
|
|
6
|
-
@use 'base/line-clamp';
|
|
7
|
-
@use 'base/list';
|
|
8
|
-
|
|
9
|
-
:root {
|
|
10
|
-
--when-merging-pull-request: 'should run publish workflow';
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
:root,
|
|
14
|
-
:host {
|
|
15
|
-
--kirby-font-family: 'Roboto';
|
|
16
|
-
font-family: var(--kirby-font-family);
|
|
17
|
-
@each $color, $color-name in utils.$kirby-colors {
|
|
18
|
-
--kirby-#{$color}: #{$color-name};
|
|
19
|
-
}
|
|
20
|
-
@each $color, $color-name in utils.$text-colors {
|
|
21
|
-
--kirby-text-color-#{$color}: #{$color-name};
|
|
22
|
-
}
|
|
23
|
-
--kirby-page-max-width: 1366px;
|
|
24
|
-
--kirby-statusbar-padding: var(--ion-statusbar-padding);
|
|
25
|
-
--kirby-safe-area-top: var(--ion-safe-area-top);
|
|
26
|
-
--kirby-safe-area-right: var(--ion-safe-area-right);
|
|
27
|
-
--kirby-safe-area-bottom: var(--ion-safe-area-bottom);
|
|
28
|
-
--kirby-safe-area-left: var(--ion-safe-area-left);
|
|
29
|
-
--kirby-tab-bar-height: 50px;
|
|
30
|
-
|
|
31
|
-
// Prevent iOS tap highlight:
|
|
32
|
-
-webkit-tap-highlight-color: transparent;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@function get-drawer-additional-padding-top() {
|
|
36
|
-
$modal-close-button-inner-height: utils.size('l'); // Todo: Move to / get from shared var
|
|
37
|
-
$modal-close-button-vertical-margin: utils.size('xxxs') * 2; // Todo: Move to / get from shared var
|
|
38
|
-
$modal-header-vertical-padding: 3px * 2; // 3px defined by Ionic
|
|
39
|
-
$modal-header-total-height: $modal-close-button-inner-height + $modal-close-button-vertical-margin +
|
|
40
|
-
$modal-header-vertical-padding;
|
|
41
|
-
$modal-header-vertical-center: math.round($modal-header-total-height * 0.5);
|
|
42
|
-
@return $modal-header-vertical-center;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
$backdrop-opacity: 0.4;
|
|
46
|
-
|
|
47
|
-
body.allow-background-scroll {
|
|
48
|
-
overflow: initial !important;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
ion-modal.kirby-overlay {
|
|
52
|
-
position: fixed;
|
|
53
|
-
|
|
54
|
-
// Ensure consistent backdrop on all overlays:
|
|
55
|
-
&:not(.modal-card) {
|
|
56
|
-
--backdrop-opacity: #{$backdrop-opacity};
|
|
57
|
-
ion-backdrop {
|
|
58
|
-
opacity: var(--backdrop-opacity);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Ensure consistent backdrop on card style modals, as Ionic 5 only applies --backdrop-opacity to :first-of-type:
|
|
63
|
-
// See https://github.com/ionic-team/ionic/commit/253cd96164914a803f6bb42ff95ca74880c940d0
|
|
64
|
-
// and https://github.com/ionic-team/ionic/issues/20800#issuecomment-606670762
|
|
65
|
-
&.modal-card,
|
|
66
|
-
&.modal-card:first-of-type {
|
|
67
|
-
--backdrop-opacity: #{$backdrop-opacity};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.modal-shadow {
|
|
71
|
-
display: none;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
&.kirby-modal {
|
|
75
|
-
box-sizing: border-box;
|
|
76
|
-
--background: var(--kirby-modal-background, #{utils.get-color('background-color')});
|
|
77
|
-
--border-radius: 0;
|
|
78
|
-
--height: auto;
|
|
79
|
-
|
|
80
|
-
&.kirby-modal-compact {
|
|
81
|
-
--border-radius: #{utils.$border-radius};
|
|
82
|
-
--max-width: #{utils.$compact-modal-max-width};
|
|
83
|
-
text-align: center;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
&.kirby-drawer {
|
|
87
|
-
--min-height: #{utils.$drawer-default-height};
|
|
88
|
-
--kirby-modal-padding-top: calc(var(--kirby-safe-area-top, 0px) + #{utils.size('m')});
|
|
89
|
-
padding-top: var(--kirby-modal-padding-top);
|
|
90
|
-
align-items: flex-end;
|
|
91
|
-
|
|
92
|
-
&.interact-with-background {
|
|
93
|
-
&.kirby-modal.kirby-drawer {
|
|
94
|
-
--kirby-modal-padding-top: 0px;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.modal-wrapper {
|
|
99
|
-
border-top-left-radius: #{utils.$border-radius};
|
|
100
|
-
border-top-right-radius: #{utils.$border-radius};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@include utils.media('<medium') {
|
|
105
|
-
&:not(.kirby-drawer):not(.kirby-modal-compact) {
|
|
106
|
-
--height: 100%;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
&:not(.kirby-modal-compact).kirby-modal-full-height {
|
|
111
|
-
--height: 100%;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
&.modal-card:not(.kirby-drawer) {
|
|
115
|
-
.modal-wrapper {
|
|
116
|
-
@include utils.media('<medium') {
|
|
117
|
-
// Reset Ionic Card style height + top border radius:
|
|
118
|
-
--height: 100%;
|
|
119
|
-
border-top-left-radius: 0;
|
|
120
|
-
border-top-right-radius: 0;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
@include utils.media('>=medium') {
|
|
124
|
-
// Reset Ionic Card style border radius:
|
|
125
|
-
border-radius: utils.$border-radius;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
@include utils.media('>=medium') {
|
|
131
|
-
--width: #{utils.$modal-max-width};
|
|
132
|
-
--border-radius: #{utils.$border-radius};
|
|
133
|
-
--box-shadow: #{utils.get-elevation(8)};
|
|
134
|
-
|
|
135
|
-
&:not(.kirby-modal-compact) {
|
|
136
|
-
--max-height: 100%;
|
|
137
|
-
--kirby-modal-padding-top-base: #{utils.size('xl')};
|
|
138
|
-
--kirby-modal-padding-top: var(--kirby-modal-padding-top-base);
|
|
139
|
-
padding-top: var(--kirby-modal-padding-top);
|
|
140
|
-
|
|
141
|
-
&:not(.kirby-drawer) {
|
|
142
|
-
--min-height: #{utils.$modal-default-height};
|
|
143
|
-
align-items: flex-start;
|
|
144
|
-
|
|
145
|
-
&.kirby-modal-small {
|
|
146
|
-
--min-height: #{map.get(utils.$modal-heights, 's')};
|
|
147
|
-
}
|
|
148
|
-
&.kirby-modal-medium {
|
|
149
|
-
--min-height: #{map.get(utils.$modal-heights, 'm')};
|
|
150
|
-
}
|
|
151
|
-
&.kirby-modal-large {
|
|
152
|
-
--min-height: #{map.get(utils.$modal-heights, 'l')};
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
&.kirby-modal-full-height .modal-wrapper,
|
|
156
|
-
.modal-wrapper.full-height {
|
|
157
|
-
border-bottom-left-radius: 0;
|
|
158
|
-
border-bottom-right-radius: 0;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
&.kirby-drawer {
|
|
164
|
-
--kirby-modal-padding-top: calc(
|
|
165
|
-
var(--kirby-modal-padding-top-base) + #{get-drawer-additional-padding-top()}
|
|
166
|
-
);
|
|
167
|
-
|
|
168
|
-
.modal-wrapper {
|
|
169
|
-
border-bottom-left-radius: 0;
|
|
170
|
-
border-bottom-right-radius: 0;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
&.kirby-action-sheet {
|
|
177
|
-
--background: transparent;
|
|
178
|
-
--width: 100%;
|
|
179
|
-
--height: 100%;
|
|
180
|
-
|
|
181
|
-
.modal-wrapper {
|
|
182
|
-
display: flex;
|
|
183
|
-
justify-content: center;
|
|
184
|
-
align-items: flex-end;
|
|
185
|
-
pointer-events: none;
|
|
186
|
-
--max-width: auto;
|
|
187
|
-
--max-height: auto;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
&.kirby-alert {
|
|
192
|
-
--background: #{utils.get-color('background-color')};
|
|
193
|
-
--border-radius: #{utils.$border-radius};
|
|
194
|
-
--box-shadow: #{utils.get-elevation(8)};
|
|
195
|
-
|
|
196
|
-
.modal-wrapper {
|
|
197
|
-
max-width: utils.$alert-max-width;
|
|
198
|
-
height: auto;
|
|
199
|
-
text-align: center;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
ion-loading.kirby-loading-overlay {
|
|
205
|
-
--backdrop-opacity: #{utils.$loading-overlay-backdrop-opacity};
|
|
206
|
-
--ion-backdrop-color: #{utils.get-color('background-color')};
|
|
207
|
-
.loading-wrapper {
|
|
208
|
-
--background: transparent;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.kirby-toast {
|
|
213
|
-
position: fixed;
|
|
214
|
-
user-select: none;
|
|
215
|
-
text-align: center;
|
|
216
|
-
|
|
217
|
-
// Set default colors
|
|
218
|
-
--background: #{utils.get-color('success')};
|
|
219
|
-
--color: #{utils.get-color('success-contrast')};
|
|
220
|
-
--button-color: #{utils.get-color('success-contrast')};
|
|
221
|
-
|
|
222
|
-
@each $color-name, $color-value in utils.$notification-colors {
|
|
223
|
-
&.#{$color-name} {
|
|
224
|
-
--background: #{utils.get-color($color-name)};
|
|
225
|
-
--color: #{utils.get-color($color-name + '-contrast')};
|
|
226
|
-
--button-color: #{utils.get-color($color-name + '-contrast')};
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/*
|
|
232
|
-
* FAB-sheet backdrop
|
|
233
|
-
*/
|
|
234
|
-
.fab-sheet-active {
|
|
235
|
-
.tabs-inner,
|
|
236
|
-
ion-router-outlet,
|
|
237
|
-
.ion-page {
|
|
238
|
-
overflow: visible;
|
|
239
|
-
contain: none !important;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
ion-tab-bar {
|
|
243
|
-
z-index: -1;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/*
|
|
248
|
-
* Link-styles (anchor tag with href)
|
|
249
|
-
*/
|
|
250
|
-
:link,
|
|
251
|
-
:visited {
|
|
252
|
-
color: inherit;
|
|
253
|
-
cursor: pointer;
|
|
254
|
-
text-decoration: underline;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/*
|
|
258
|
-
* Class to add link-icon to the right of e.g. anchor tag.
|
|
259
|
-
*/
|
|
260
|
-
.kirby-external-icon {
|
|
261
|
-
$icon-scaling-factor: 1.5em;
|
|
262
|
-
white-space: nowrap;
|
|
263
|
-
background-image: url('/assets/kirby/icons/svg/link.svg');
|
|
264
|
-
background-repeat: no-repeat;
|
|
265
|
-
background-position: right 50%;
|
|
266
|
-
background-size: $icon-scaling-factor;
|
|
267
|
-
//place icon to the right of text, with icons own width + the actual spacing
|
|
268
|
-
padding-right: calc(#{$icon-scaling-factor} + #{utils.size('xxxs')});
|
|
269
|
-
}
|
|
1
|
+
@forward "~@kirbydesign/core/scss/global-styles";
|
package/scss/_utils.scss
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@forward
|
|
1
|
+
@forward "~@kirbydesign/core/scss/utils";
|
|
@@ -1,188 +1 @@
|
|
|
1
|
-
@
|
|
2
|
-
@use "sass:map";
|
|
3
|
-
@use "sass:math";
|
|
4
|
-
@use "sass:string";
|
|
5
|
-
@use "../themes/colors";
|
|
6
|
-
@use "variables";
|
|
7
|
-
|
|
8
|
-
@function _get-map-prop($map, $key) {
|
|
9
|
-
@if map.has-key($map, $key) {
|
|
10
|
-
@return map.get($map, $key);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@error 'Unknown key `#{$key}`.';
|
|
14
|
-
@return null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@function size($key: 'm') {
|
|
18
|
-
$negative: string.index($key, '-') == 1;
|
|
19
|
-
@if ($negative) {
|
|
20
|
-
$key: string.slice($key, 2, -1);
|
|
21
|
-
}
|
|
22
|
-
$value: _get-map-prop(variables.$sizes, $key);
|
|
23
|
-
@return if($negative, string.unquote('-' + $value), $value);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@function z($key) {
|
|
27
|
-
@return _get-map-prop(variables.$z-layers, $key);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@function font-size($key: 'n') {
|
|
31
|
-
@if ($key == 'display') {
|
|
32
|
-
@warn 'Display key is deprecated';
|
|
33
|
-
}
|
|
34
|
-
@return _get-map-prop(variables.$font-sizes, $key);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@function line-height($key: 'm') {
|
|
38
|
-
@return _get-map-prop(variables.$line-height, $key);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@function font-weight($key: 'normal') {
|
|
42
|
-
@return _get-map-prop(variables.$font-weight, $key);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@function icon-font-size($size) {
|
|
46
|
-
@return map.get(variables.$icon-font-sizes, $size);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@function get-color($variant, $getValueOnly: false, $map: colors.$kirby-colors) {
|
|
50
|
-
$value: _get-map-prop($map, $variant);
|
|
51
|
-
@if $getValueOnly == true {
|
|
52
|
-
@return $value;
|
|
53
|
-
} @else {
|
|
54
|
-
@return string.unquote('var(--kirby-' + $variant + ')');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@function get-text-color($variant) {
|
|
59
|
-
$value: _get-map-prop(colors.$text-colors, $variant);
|
|
60
|
-
@return string.unquote('var(--kirby-text-color-' + $variant + ')');
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@function get-elevation($value) {
|
|
64
|
-
@return map.get(variables.$elevations, $value);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@function get-transition-duration($value) {
|
|
68
|
-
@return map.get(variables.$transition-durations, $value);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
@function get-transition-easing($value) {
|
|
72
|
-
@return map.get(variables.$transition-easings, $value);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@function get-shadow-size($elevation) {
|
|
76
|
-
$shadow-size: 0;
|
|
77
|
-
$shadow-list: map.get(variables.$elevations, $elevation);
|
|
78
|
-
@each $shadow in $shadow-list {
|
|
79
|
-
$offset-x: math.abs(_get-shadow-value($shadow, 'offset-x'));
|
|
80
|
-
$offset-y: math.abs(_get-shadow-value($shadow, 'offset-y'));
|
|
81
|
-
$blur-radius: _get-shadow-value($shadow, 'blur-radius');
|
|
82
|
-
$spread-radius: _get-shadow-value($shadow, 'spread-radius');
|
|
83
|
-
$current-shadow-size: math.max($offset-x, $offset-y) + $blur-radius + $spread-radius;
|
|
84
|
-
$shadow-size: math.max($shadow-size, $current-shadow-size);
|
|
85
|
-
}
|
|
86
|
-
@return $shadow-size;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@function _get-shadow-value($shadow, $valuekey) {
|
|
90
|
-
$shadow-value-map: (
|
|
91
|
-
'offset-x': 1,
|
|
92
|
-
'offset-y': 2,
|
|
93
|
-
'blur-radius': 3,
|
|
94
|
-
'spread-radius': 4,
|
|
95
|
-
);
|
|
96
|
-
$value-index: map.get($shadow-value-map, $valuekey);
|
|
97
|
-
@return list.nth($shadow, $value-index);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Outputs all keys from map as CSS class selector list
|
|
102
|
-
*/
|
|
103
|
-
@function keys-to-classes($map) {
|
|
104
|
-
$classes: ();
|
|
105
|
-
@each $key in map.keys($map) {
|
|
106
|
-
$classes: list.append($classes, '.#{$key}', $separator: comma);
|
|
107
|
-
}
|
|
108
|
-
@return $classes;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@mixin slotted($selectors...) {
|
|
112
|
-
::ng-deep > {
|
|
113
|
-
#{$selectors} {
|
|
114
|
-
@content;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
@mixin theme-background($variant, $text-variant-override: null) {
|
|
120
|
-
$background-color: null;
|
|
121
|
-
$text-color: null;
|
|
122
|
-
@if $variant == transparent {
|
|
123
|
-
$background-color: transparent;
|
|
124
|
-
$text-color: get-text-color('black');
|
|
125
|
-
} @else {
|
|
126
|
-
$background-color: get-color($variant);
|
|
127
|
-
$text-color: get-color($variant + '-contrast');
|
|
128
|
-
}
|
|
129
|
-
@if ($text-variant-override != null) {
|
|
130
|
-
$text-color: get-text-color($text-variant-override);
|
|
131
|
-
}
|
|
132
|
-
background-color: $background-color;
|
|
133
|
-
color: $text-color;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/// Only apply the :hover selector and styles if pointer device can hover
|
|
137
|
-
/// (effectively desktop/mouse devices):
|
|
138
|
-
@mixin hover() {
|
|
139
|
-
@media (hover: hover) {
|
|
140
|
-
&:hover {
|
|
141
|
-
@content;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Only apply the :focus selector and styles if pointer device can hover
|
|
147
|
-
// (effectively desktop/mouse devices):
|
|
148
|
-
@mixin focus() {
|
|
149
|
-
@media (hover: hover) {
|
|
150
|
-
&:focus {
|
|
151
|
-
@content;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Only apply the styles on touch devices
|
|
157
|
-
// No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query
|
|
158
|
-
@mixin touch() {
|
|
159
|
-
@media (pointer: coarse) {
|
|
160
|
-
@content;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Only apply the styles on non touch devices
|
|
165
|
-
// (fine pointer and hover):
|
|
166
|
-
@mixin not-touch() {
|
|
167
|
-
@media (hover: hover) and (pointer: fine) {
|
|
168
|
-
@content;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// Ensure minimum click area (default 44 x 44 px)
|
|
173
|
-
// Ignore rounded corners to ensure square click area
|
|
174
|
-
@mixin accessible-target-size($width: variables.$fat-finger-size, $height: $width) {
|
|
175
|
-
position: relative;
|
|
176
|
-
|
|
177
|
-
&::after {
|
|
178
|
-
content: '';
|
|
179
|
-
position: absolute;
|
|
180
|
-
min-height: $height;
|
|
181
|
-
min-width: $width;
|
|
182
|
-
width: 100%;
|
|
183
|
-
height: 100%;
|
|
184
|
-
transform: translate(-50%, -50%);
|
|
185
|
-
left: 50%;
|
|
186
|
-
top: 50%;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
1
|
+
@forward "~@kirbydesign/core/scss/base/functions";
|
package/scss/base/_ionic.scss
CHANGED
|
@@ -1,36 +1 @@
|
|
|
1
|
-
@
|
|
2
|
-
@use '../themes/colors';
|
|
3
|
-
|
|
4
|
-
/* Core CSS required for Ionic components to work properly */
|
|
5
|
-
@import '~@ionic/angular/css/core.css';
|
|
6
|
-
|
|
7
|
-
@mixin ionic-color-map($ionic-variant, $kirby-variant: $ionic-variant) {
|
|
8
|
-
--ion-color-#{$ionic-variant}: var(--kirby-#{$kirby-variant});
|
|
9
|
-
--ion-color-#{$ionic-variant}-rgb: #{functions.get-color(
|
|
10
|
-
#{$kirby-variant}-rgb,
|
|
11
|
-
true,
|
|
12
|
-
colors.$kirby-colors
|
|
13
|
-
)};
|
|
14
|
-
--ion-color-#{$ionic-variant}-contrast: var(--kirby-#{$kirby-variant}-contrast);
|
|
15
|
-
--ion-color-#{$ionic-variant}-contrast-rgb: #{functions.get-color(
|
|
16
|
-
#{$kirby-variant}-contrast-rgb,
|
|
17
|
-
true,
|
|
18
|
-
colors.$kirby-colors
|
|
19
|
-
)};
|
|
20
|
-
--ion-color-#{$ionic-variant}-shade: var(--kirby-#{$kirby-variant}-shade);
|
|
21
|
-
--ion-color-#{$ionic-variant}-tint: var(--kirby-#{$kirby-variant}-tint);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
:root {
|
|
25
|
-
@include ionic-color-map('primary');
|
|
26
|
-
@include ionic-color-map('secondary');
|
|
27
|
-
@include ionic-color-map('tertiary');
|
|
28
|
-
@include ionic-color-map('success');
|
|
29
|
-
@include ionic-color-map('warning');
|
|
30
|
-
@include ionic-color-map('danger');
|
|
31
|
-
@include ionic-color-map('light');
|
|
32
|
-
@include ionic-color-map('medium');
|
|
33
|
-
@include ionic-color-map('dark');
|
|
34
|
-
|
|
35
|
-
--ion-font-family: var(--kirby-font-family);
|
|
36
|
-
}
|
|
1
|
+
@forward "~@kirbydesign/core/scss/base/ionic";
|
|
@@ -1,56 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// Needed both for line-clamp support and for fallback solution
|
|
3
|
-
overflow: hidden;
|
|
4
|
-
|
|
5
|
-
// Fallback solution with "explicit ellipsis"
|
|
6
|
-
// line-height value is expected to be in px unit
|
|
7
|
-
|
|
8
|
-
line-height: var(--line-height);
|
|
9
|
-
max-height: calc(var(--line-clamp) * var(--line-height));
|
|
10
|
-
position: relative;
|
|
11
|
-
|
|
12
|
-
// Ellipsis
|
|
13
|
-
&::before {
|
|
14
|
-
content: '…';
|
|
15
|
-
position: absolute;
|
|
16
|
-
right: 0;
|
|
17
|
-
bottom: 0;
|
|
18
|
-
background-color: var(--kirby-background-color);
|
|
19
|
-
line-height: var(--line-height);
|
|
20
|
-
height: var(--line-height);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Cover ellipsis when number of lines is less than or equal to line-clamp value
|
|
24
|
-
&::after {
|
|
25
|
-
content: '';
|
|
26
|
-
position: absolute;
|
|
27
|
-
right: 0;
|
|
28
|
-
width: 1em;
|
|
29
|
-
height: var(--line-height);
|
|
30
|
-
line-height: var(--line-height);
|
|
31
|
-
background-color: var(--kirby-background-color);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Non-standard line-clamp solution with wide browser support
|
|
36
|
-
// See https://caniuse.com/mdn-css_properties_-webkit-line-clamp
|
|
37
|
-
@supports (-webkit-line-clamp: 1) {
|
|
38
|
-
.kirby-line-clamp {
|
|
39
|
-
display: -webkit-box;
|
|
40
|
-
-webkit-line-clamp: var(--line-clamp, none);
|
|
41
|
-
-webkit-box-orient: vertical;
|
|
42
|
-
|
|
43
|
-
// Work around weird bug by setting visibility
|
|
44
|
-
// See https://bugs.webkit.org/show_bug.cgi?id=207013
|
|
45
|
-
// and https://stackoverflow.com/questions/41995229/webkit-line-clamp-does-not-work-on-chrome-unless-i-make-some-unrelated-css-chan
|
|
46
|
-
visibility: visible;
|
|
47
|
-
|
|
48
|
-
// Reset fallback properties that are not needed when support for line-clamp
|
|
49
|
-
max-height: initial;
|
|
50
|
-
position: initial;
|
|
51
|
-
&::before,
|
|
52
|
-
&::after {
|
|
53
|
-
display: none;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
1
|
+
@forward "~@kirbydesign/core/scss/base/line-clamp";
|
package/scss/base/_list.scss
CHANGED
|
@@ -1,105 +1 @@
|
|
|
1
|
-
@
|
|
2
|
-
|
|
3
|
-
@import '~@fontsource/roboto/300.css';
|
|
4
|
-
@import '~@fontsource/roboto/400.css';
|
|
5
|
-
@import '~@fontsource/roboto/700.css';
|
|
6
|
-
@import '~@fontsource/roboto/900.css';
|
|
7
|
-
|
|
8
|
-
h1,
|
|
9
|
-
.h1,
|
|
10
|
-
h2,
|
|
11
|
-
.h2,
|
|
12
|
-
h3,
|
|
13
|
-
.h3,
|
|
14
|
-
h4,
|
|
15
|
-
.h4,
|
|
16
|
-
p,
|
|
17
|
-
.p {
|
|
18
|
-
margin: 0;
|
|
19
|
-
margin-bottom: functions.size('s');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
kirby-app .page-title {
|
|
23
|
-
> h1,
|
|
24
|
-
h2,
|
|
25
|
-
h3,
|
|
26
|
-
h4,
|
|
27
|
-
h5,
|
|
28
|
-
h6 {
|
|
29
|
-
margin: 0;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.kirby-text-display-1 {
|
|
34
|
-
font-size: functions.font-size('xxxxl');
|
|
35
|
-
font-weight: functions.font-weight('black');
|
|
36
|
-
line-height: normal;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.kirby-text-display-2 {
|
|
40
|
-
font-size: functions.font-size('xxxl');
|
|
41
|
-
font-weight: functions.font-weight('black');
|
|
42
|
-
line-height: normal;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.kirby-text-display-3 {
|
|
46
|
-
font-size: functions.font-size('xxl');
|
|
47
|
-
font-weight: functions.font-weight('black');
|
|
48
|
-
line-height: normal;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
h1,
|
|
52
|
-
.h1,
|
|
53
|
-
.kirby-text-xlarge {
|
|
54
|
-
font-size: functions.font-size('xl');
|
|
55
|
-
font-weight: functions.font-weight('black');
|
|
56
|
-
line-height: functions.line-height('xl');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
h2,
|
|
60
|
-
.h2,
|
|
61
|
-
.kirby-text-large {
|
|
62
|
-
font-size: functions.font-size('l');
|
|
63
|
-
font-weight: functions.font-weight('bold');
|
|
64
|
-
line-height: functions.line-height('l');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
h3,
|
|
68
|
-
.h3,
|
|
69
|
-
.kirby-text-medium {
|
|
70
|
-
font-size: functions.font-size('m');
|
|
71
|
-
font-weight: functions.font-weight('bold');
|
|
72
|
-
line-height: functions.line-height('m');
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
p,
|
|
76
|
-
.p,
|
|
77
|
-
.kirby-text-normal {
|
|
78
|
-
font-size: functions.font-size('n');
|
|
79
|
-
line-height: functions.line-height('n');
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.kirby-text-small {
|
|
83
|
-
font-size: functions.font-size('s');
|
|
84
|
-
line-height: functions.line-height('s');
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.kirby-text-small-light {
|
|
88
|
-
font-size: functions.font-size('s');
|
|
89
|
-
font-weight: functions.font-weight('light');
|
|
90
|
-
line-height: functions.line-height('s');
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.kirby-text-xsmall {
|
|
94
|
-
font-size: functions.font-size('xs');
|
|
95
|
-
line-height: functions.line-height('xs');
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.kirby-text-xxsmall {
|
|
99
|
-
font-size: functions.font-size('xxs');
|
|
100
|
-
line-height: functions.line-height('xxs');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.kirby-text-bold {
|
|
104
|
-
font-weight: functions.font-weight('bold');
|
|
105
|
-
}
|
|
1
|
+
@forward "~@kirbydesign/core/scss/base/typography";
|