@makigamestudio/ui-ionic 0.8.0 → 0.9.0
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/README.md +675 -32
- package/fesm2022/makigamestudio-ui-ionic.mjs +9 -9
- package/fesm2022/makigamestudio-ui-ionic.mjs.map +1 -1
- package/global-styles.css +68 -0
- package/global-styles.scss +87 -0
- package/package.json +2 -2
- package/theme.css +65 -89
- package/theme.scss +33 -162
package/theme.css
CHANGED
|
@@ -1,105 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @makigamestudio/
|
|
2
|
+
* @makigamestudio/ui-ionic Theme Variables
|
|
3
3
|
*
|
|
4
4
|
* Import this file in your global styles to customize the library components.
|
|
5
|
-
*
|
|
5
|
+
* This automatically includes global-styles.scss for component styles.
|
|
6
|
+
*
|
|
7
|
+
* Example: @use '@makigamestudio/ui-ionic/theme.scss';
|
|
6
8
|
*
|
|
7
9
|
* Override these variables in your own SCSS to customize the appearance.
|
|
10
|
+
* Place your overrides AFTER importing this file.
|
|
8
11
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
--maki-
|
|
20
|
-
--maki-accent: #5260ff;
|
|
21
|
-
--maki-accent-rgb: 82, 96, 255;
|
|
22
|
-
--maki-accent-contrast: #ffffff;
|
|
23
|
-
--maki-accent-shade: #4854e0;
|
|
24
|
-
--maki-accent-tint: #6370ff;
|
|
25
|
-
--maki-success: #2dd36f;
|
|
26
|
-
--maki-warning: #ffc409;
|
|
27
|
-
--maki-danger: #eb445a;
|
|
28
|
-
--maki-info: #3dc2ff;
|
|
29
|
-
--maki-background: #f4f5f8;
|
|
30
|
-
--maki-background-rgb: 244, 245, 248;
|
|
31
|
-
--maki-surface: #ffffff;
|
|
32
|
-
--maki-surface-rgb: 255, 255, 255;
|
|
33
|
-
--maki-text-primary: #1a1a1a;
|
|
34
|
-
--maki-text-secondary: #666666;
|
|
35
|
-
--maki-text-muted: #999999;
|
|
36
|
-
--maki-text-inverse: #ffffff;
|
|
37
|
-
--maki-card-background: var(--maki-surface);
|
|
38
|
-
--maki-card-color: var(--maki-text-primary);
|
|
39
|
-
--maki-card-margin: 16px;
|
|
40
|
-
--maki-card-border-radius: 12px;
|
|
41
|
-
--maki-card-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
42
|
-
--maki-spacing-xs: 4px;
|
|
43
|
-
--maki-spacing-sm: 8px;
|
|
44
|
-
--maki-spacing-md: 12px;
|
|
45
|
-
--maki-spacing-lg: 16px;
|
|
46
|
-
--maki-spacing-xl: 24px;
|
|
47
|
-
--maki-spacing-xxl: 32px;
|
|
48
|
-
--maki-radius-sm: 4px;
|
|
49
|
-
--maki-radius-md: 8px;
|
|
50
|
-
--maki-radius-lg: 12px;
|
|
51
|
-
--maki-radius-xl: 16px;
|
|
52
|
-
--maki-radius-full: 9999px;
|
|
53
|
-
--maki-font-family:
|
|
54
|
-
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
|
55
|
-
--maki-font-size-xs: 0.75rem;
|
|
56
|
-
--maki-font-size-sm: 0.875rem;
|
|
57
|
-
--maki-font-size-md: 1rem;
|
|
58
|
-
--maki-font-size-lg: 1.125rem;
|
|
59
|
-
--maki-font-size-xl: 1.25rem;
|
|
60
|
-
--maki-font-size-xxl: 1.5rem;
|
|
61
|
-
--maki-transition-fast: 150ms ease;
|
|
62
|
-
--maki-transition-normal: 250ms ease;
|
|
63
|
-
--maki-transition-slow: 350ms ease;
|
|
64
|
-
--maki-button-padding-start: 8px;
|
|
65
|
-
--maki-button-padding-end: 8px;
|
|
66
|
-
--maki-button-spinner-size: 16px;
|
|
67
|
-
--maki-button-dropdown-icon-size: 16px;
|
|
68
|
-
--maki-button-dropdown-icon-gap: 4px;
|
|
69
|
-
--maki-action-button-list-padding: 16px;
|
|
70
|
-
--maki-action-button-list-item-height: 44px;
|
|
71
|
-
--maki-action-button-list-icon-size: 20px;
|
|
72
|
-
--maki-action-button-list-icon-gap: 12px;
|
|
12
|
+
/**
|
|
13
|
+
* @makigamestudio/ui-ionic Global Component Styles
|
|
14
|
+
*
|
|
15
|
+
* This file contains global styles for library components that need to be
|
|
16
|
+
* applied at the document level (e.g., tooltips rendered in document.body).
|
|
17
|
+
*
|
|
18
|
+
* This file is automatically imported by theme.scss, so consumers only need
|
|
19
|
+
* to import theme.scss to get both CSS variables and component styles.
|
|
20
|
+
*/
|
|
21
|
+
ion-popover::part(content) {
|
|
22
|
+
margin: var(--maki-spacing-xs, 0.25rem) 0;
|
|
73
23
|
}
|
|
74
24
|
|
|
75
|
-
@media (prefers-color-scheme: dark) {
|
|
76
|
-
:root {
|
|
77
|
-
--maki-background: #1a1a1a;
|
|
78
|
-
--maki-background-rgb: 26, 26, 26;
|
|
79
|
-
--maki-surface: #2d2d2d;
|
|
80
|
-
--maki-surface-rgb: 45, 45, 45;
|
|
81
|
-
--maki-text-primary: #ffffff;
|
|
82
|
-
--maki-text-secondary: #b3b3b3;
|
|
83
|
-
--maki-text-muted: #808080;
|
|
84
|
-
--maki-text-inverse: #1a1a1a;
|
|
85
|
-
--maki-card-background: var(--maki-surface);
|
|
86
|
-
--maki-card-color: var(--maki-text-primary);
|
|
87
|
-
--maki-card-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
25
|
.maki-tooltip {
|
|
91
|
-
background: var(--ion-color-dark);
|
|
92
|
-
color: var(--ion-color-
|
|
93
|
-
padding: var(--maki-spacing-sm) var(--maki-spacing-md);
|
|
94
|
-
border-radius: var(--maki-radius-
|
|
95
|
-
font-size: var(--maki-font-size-sm);
|
|
96
|
-
font-family: var(--
|
|
97
|
-
|
|
26
|
+
background: var(--ion-color-dark, #222428);
|
|
27
|
+
color: var(--ion-color-dark-contrast, #fff);
|
|
28
|
+
padding: var(--maki-spacing-sm, 0.5rem) var(--maki-spacing-md, 0.75rem);
|
|
29
|
+
border-radius: var(--maki-radius-xs, 0.25rem);
|
|
30
|
+
font-size: var(--maki-font-size-sm, 0.875rem);
|
|
31
|
+
font-family: var(--ion-font-family, sans-serif);
|
|
32
|
+
line-height: var(--maki-line-height-normal, 1.5);
|
|
33
|
+
letter-spacing: var(--maki-letter-spacing-normal, 0);
|
|
34
|
+
max-width: min(100vw, 450px) !important;
|
|
98
35
|
width: fit-content;
|
|
99
36
|
overflow: scroll;
|
|
100
37
|
word-wrap: break-word;
|
|
101
|
-
box-shadow: var(--maki-
|
|
38
|
+
box-shadow: var(--maki-box-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));
|
|
39
|
+
z-index: 10000;
|
|
102
40
|
pointer-events: none;
|
|
41
|
+
margin: var(--maki-spacing-xs, 0.25rem) var(--maki-spacing-xs, 0.25rem) var(--maki-spacing-xs, 0.25rem) 0;
|
|
42
|
+
transition: opacity 150ms ease;
|
|
103
43
|
}
|
|
104
44
|
.maki-tooltip[data-color=primary] {
|
|
105
45
|
background: var(--ion-color-primary);
|
|
@@ -137,3 +77,39 @@
|
|
|
137
77
|
background: var(--ion-color-dark);
|
|
138
78
|
color: var(--ion-color-dark-contrast);
|
|
139
79
|
}
|
|
80
|
+
|
|
81
|
+
:root {
|
|
82
|
+
--maki-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
83
|
+
--maki-spacing-xxs: 0.125rem;
|
|
84
|
+
--maki-spacing-xs: 0.25rem;
|
|
85
|
+
--maki-spacing-sm: 0.5rem;
|
|
86
|
+
--maki-spacing-md: 0.75rem;
|
|
87
|
+
--maki-spacing-lg: 1rem;
|
|
88
|
+
--maki-spacing-xl: 1.5rem;
|
|
89
|
+
--maki-spacing-xxl: 2rem;
|
|
90
|
+
--maki-radius-xs: 0.25rem;
|
|
91
|
+
--maki-radius-sm: 0.5rem;
|
|
92
|
+
--maki-radius-md: 0.75rem;
|
|
93
|
+
--maki-radius-lg: 1rem;
|
|
94
|
+
--maki-radius-xl: 1.5rem;
|
|
95
|
+
--maki-radius-xxl: 2rem;
|
|
96
|
+
--maki-radius-full: 9999px;
|
|
97
|
+
--maki-font-size-xs: 0.75rem;
|
|
98
|
+
--maki-font-size-sm: 0.875rem;
|
|
99
|
+
--maki-font-size-md: 1rem;
|
|
100
|
+
--maki-font-size-lg: 1.125rem;
|
|
101
|
+
--maki-font-size-xl: 1.25rem;
|
|
102
|
+
--maki-font-size-xxl: 1.5rem;
|
|
103
|
+
--maki-font-size-xxxl: 2rem;
|
|
104
|
+
--maki-line-height-tight: 1.25;
|
|
105
|
+
--maki-line-height-normal: 1.5;
|
|
106
|
+
--maki-line-height-relaxed: 1.75;
|
|
107
|
+
--maki-letter-spacing-normal: 0;
|
|
108
|
+
--maki-letter-spacing-wide: 0.02em;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@media (prefers-color-scheme: dark) {
|
|
112
|
+
:root {
|
|
113
|
+
--maki-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
114
|
+
}
|
|
115
|
+
}
|
package/theme.scss
CHANGED
|
@@ -1,121 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @makigamestudio/
|
|
2
|
+
* @makigamestudio/ui-ionic Theme Variables
|
|
3
3
|
*
|
|
4
4
|
* Import this file in your global styles to customize the library components.
|
|
5
|
-
*
|
|
5
|
+
* This automatically includes global-styles.scss for component styles.
|
|
6
|
+
*
|
|
7
|
+
* Example: @use '@makigamestudio/ui-ionic/theme.scss';
|
|
6
8
|
*
|
|
7
9
|
* Override these variables in your own SCSS to customize the appearance.
|
|
10
|
+
* Place your overrides AFTER importing this file.
|
|
8
11
|
*/
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// Brand Colors
|
|
13
|
-
// ==============================================
|
|
14
|
-
--maki-primary: #3880ff;
|
|
15
|
-
--maki-primary-rgb: 56, 128, 255;
|
|
16
|
-
--maki-primary-contrast: #ffffff;
|
|
17
|
-
--maki-primary-shade: #3171e0;
|
|
18
|
-
--maki-primary-tint: #4c8dff;
|
|
19
|
-
|
|
20
|
-
--maki-secondary: #3dc2ff;
|
|
21
|
-
--maki-secondary-rgb: 61, 194, 255;
|
|
22
|
-
--maki-secondary-contrast: #000000;
|
|
23
|
-
--maki-secondary-shade: #36abe0;
|
|
24
|
-
--maki-secondary-tint: #50c8ff;
|
|
25
|
-
|
|
26
|
-
--maki-accent: #5260ff;
|
|
27
|
-
--maki-accent-rgb: 82, 96, 255;
|
|
28
|
-
--maki-accent-contrast: #ffffff;
|
|
29
|
-
--maki-accent-shade: #4854e0;
|
|
30
|
-
--maki-accent-tint: #6370ff;
|
|
31
|
-
|
|
32
|
-
// ==============================================
|
|
33
|
-
// Semantic Colors
|
|
34
|
-
// ==============================================
|
|
35
|
-
--maki-success: #2dd36f;
|
|
36
|
-
--maki-warning: #ffc409;
|
|
37
|
-
--maki-danger: #eb445a;
|
|
38
|
-
--maki-info: #3dc2ff;
|
|
39
|
-
|
|
40
|
-
// ==============================================
|
|
41
|
-
// Background & Surface
|
|
42
|
-
// ==============================================
|
|
43
|
-
--maki-background: #f4f5f8;
|
|
44
|
-
--maki-background-rgb: 244, 245, 248;
|
|
45
|
-
--maki-surface: #ffffff;
|
|
46
|
-
--maki-surface-rgb: 255, 255, 255;
|
|
47
|
-
|
|
48
|
-
// ==============================================
|
|
49
|
-
// Text Colors
|
|
50
|
-
// ==============================================
|
|
51
|
-
--maki-text-primary: #1a1a1a;
|
|
52
|
-
--maki-text-secondary: #666666;
|
|
53
|
-
--maki-text-muted: #999999;
|
|
54
|
-
--maki-text-inverse: #ffffff;
|
|
13
|
+
// Import global component styles (must use @use to avoid deprecation warnings)
|
|
14
|
+
@use './global-styles';
|
|
55
15
|
|
|
16
|
+
:root {
|
|
56
17
|
// ==============================================
|
|
57
|
-
//
|
|
18
|
+
// Shadows
|
|
58
19
|
// ==============================================
|
|
59
|
-
--maki-
|
|
60
|
-
--maki-card-color: var(--maki-text-primary);
|
|
61
|
-
--maki-card-margin: 16px;
|
|
62
|
-
--maki-card-border-radius: 12px;
|
|
63
|
-
--maki-card-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
20
|
+
--maki-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
64
21
|
|
|
65
22
|
// ==============================================
|
|
66
23
|
// Spacing Scale
|
|
67
24
|
// ==============================================
|
|
68
|
-
--maki-spacing-
|
|
69
|
-
--maki-spacing-
|
|
70
|
-
--maki-spacing-
|
|
71
|
-
--maki-spacing-
|
|
72
|
-
--maki-spacing-
|
|
73
|
-
--maki-spacing-
|
|
25
|
+
--maki-spacing-xxs: 0.125rem;
|
|
26
|
+
--maki-spacing-xs: 0.25rem;
|
|
27
|
+
--maki-spacing-sm: 0.5rem;
|
|
28
|
+
--maki-spacing-md: 0.75rem;
|
|
29
|
+
--maki-spacing-lg: 1rem;
|
|
30
|
+
--maki-spacing-xl: 1.5rem;
|
|
31
|
+
--maki-spacing-xxl: 2rem;
|
|
74
32
|
|
|
75
33
|
// ==============================================
|
|
76
34
|
// Border Radius Scale
|
|
77
35
|
// ==============================================
|
|
78
|
-
--maki-radius-
|
|
79
|
-
--maki-radius-
|
|
80
|
-
--maki-radius-
|
|
81
|
-
--maki-radius-
|
|
36
|
+
--maki-radius-xs: 0.25rem;
|
|
37
|
+
--maki-radius-sm: 0.5rem;
|
|
38
|
+
--maki-radius-md: 0.75rem;
|
|
39
|
+
--maki-radius-lg: 1rem;
|
|
40
|
+
--maki-radius-xl: 1.5rem;
|
|
41
|
+
--maki-radius-xxl: 2rem;
|
|
82
42
|
--maki-radius-full: 9999px;
|
|
83
43
|
|
|
84
44
|
// ==============================================
|
|
85
|
-
// Typography
|
|
45
|
+
// Typography - Font Sizes
|
|
86
46
|
// ==============================================
|
|
87
|
-
--maki-font-family:
|
|
88
|
-
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
|
89
47
|
--maki-font-size-xs: 0.75rem;
|
|
90
48
|
--maki-font-size-sm: 0.875rem;
|
|
91
49
|
--maki-font-size-md: 1rem;
|
|
92
50
|
--maki-font-size-lg: 1.125rem;
|
|
93
51
|
--maki-font-size-xl: 1.25rem;
|
|
94
52
|
--maki-font-size-xxl: 1.5rem;
|
|
53
|
+
--maki-font-size-xxxl: 2rem;
|
|
95
54
|
|
|
96
55
|
// ==============================================
|
|
97
|
-
//
|
|
56
|
+
// Typography - Line Heights
|
|
98
57
|
// ==============================================
|
|
99
|
-
--maki-
|
|
100
|
-
--maki-
|
|
101
|
-
--maki-
|
|
58
|
+
--maki-line-height-tight: 1.25;
|
|
59
|
+
--maki-line-height-normal: 1.5;
|
|
60
|
+
--maki-line-height-relaxed: 1.75;
|
|
102
61
|
|
|
103
62
|
// ==============================================
|
|
104
|
-
//
|
|
63
|
+
// Typography - Letter Spacing
|
|
105
64
|
// ==============================================
|
|
106
|
-
--maki-
|
|
107
|
-
--maki-
|
|
108
|
-
--maki-button-spinner-size: 16px;
|
|
109
|
-
--maki-button-dropdown-icon-size: 16px;
|
|
110
|
-
--maki-button-dropdown-icon-gap: 4px;
|
|
111
|
-
|
|
112
|
-
// ==============================================
|
|
113
|
-
// Action Button List Component (maki-action-button-list)
|
|
114
|
-
// ==============================================
|
|
115
|
-
--maki-action-button-list-padding: 16px;
|
|
116
|
-
--maki-action-button-list-item-height: 44px;
|
|
117
|
-
--maki-action-button-list-icon-size: 20px;
|
|
118
|
-
--maki-action-button-list-icon-gap: 12px;
|
|
65
|
+
--maki-letter-spacing-normal: 0;
|
|
66
|
+
--maki-letter-spacing-wide: 0.02em;
|
|
119
67
|
}
|
|
120
68
|
|
|
121
69
|
// ==============================================
|
|
@@ -123,83 +71,6 @@
|
|
|
123
71
|
// ==============================================
|
|
124
72
|
@media (prefers-color-scheme: dark) {
|
|
125
73
|
:root {
|
|
126
|
-
--maki-
|
|
127
|
-
--maki-background-rgb: 26, 26, 26;
|
|
128
|
-
--maki-surface: #2d2d2d;
|
|
129
|
-
--maki-surface-rgb: 45, 45, 45;
|
|
130
|
-
|
|
131
|
-
--maki-text-primary: #ffffff;
|
|
132
|
-
--maki-text-secondary: #b3b3b3;
|
|
133
|
-
--maki-text-muted: #808080;
|
|
134
|
-
--maki-text-inverse: #1a1a1a;
|
|
135
|
-
|
|
136
|
-
--maki-card-background: var(--maki-surface);
|
|
137
|
-
--maki-card-color: var(--maki-text-primary);
|
|
138
|
-
--maki-card-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// ==============================================
|
|
143
|
-
// Tooltip Component (maki-tooltip)
|
|
144
|
-
// ==============================================
|
|
145
|
-
.maki-tooltip {
|
|
146
|
-
// Base styles
|
|
147
|
-
background: var(--ion-color-dark);
|
|
148
|
-
color: var(--ion-color-light, #fff);
|
|
149
|
-
padding: var(--maki-spacing-sm) var(--maki-spacing-md);
|
|
150
|
-
border-radius: var(--maki-radius-sm, 4px);
|
|
151
|
-
font-size: var(--maki-font-size-sm);
|
|
152
|
-
font-family: var(--maki-font-family);
|
|
153
|
-
max-width: min(97vw, 450px) !important;
|
|
154
|
-
width: fit-content;
|
|
155
|
-
overflow: scroll;
|
|
156
|
-
word-wrap: break-word;
|
|
157
|
-
box-shadow: var(--maki-card-box-shadow);
|
|
158
|
-
pointer-events: none;
|
|
159
|
-
|
|
160
|
-
// Color variants using Ionic color system
|
|
161
|
-
&[data-color='primary'] {
|
|
162
|
-
background: var(--ion-color-primary);
|
|
163
|
-
color: var(--ion-color-primary-contrast);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
&[data-color='secondary'] {
|
|
167
|
-
background: var(--ion-color-secondary);
|
|
168
|
-
color: var(--ion-color-secondary-contrast);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
&[data-color='tertiary'] {
|
|
172
|
-
background: var(--ion-color-tertiary);
|
|
173
|
-
color: var(--ion-color-tertiary-contrast);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
&[data-color='success'] {
|
|
177
|
-
background: var(--ion-color-success);
|
|
178
|
-
color: var(--ion-color-success-contrast);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
&[data-color='warning'] {
|
|
182
|
-
background: var(--ion-color-warning);
|
|
183
|
-
color: var(--ion-color-warning-contrast);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
&[data-color='danger'] {
|
|
187
|
-
background: var(--ion-color-danger);
|
|
188
|
-
color: var(--ion-color-danger-contrast);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
&[data-color='light'] {
|
|
192
|
-
background: var(--ion-color-light);
|
|
193
|
-
color: var(--ion-color-light-contrast);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
&[data-color='medium'] {
|
|
197
|
-
background: var(--ion-color-medium);
|
|
198
|
-
color: var(--ion-color-medium-contrast);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
&[data-color='dark'] {
|
|
202
|
-
background: var(--ion-color-dark);
|
|
203
|
-
color: var(--ion-color-dark-contrast);
|
|
74
|
+
--maki-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
204
75
|
}
|
|
205
76
|
}
|