@limetech/lime-elements 37.64.2 → 37.64.3

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.
Files changed (166) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/limel-action-bar_4.cjs.entry.js +1 -1
  3. package/dist/cjs/limel-action-bar_4.cjs.entry.js.map +1 -1
  4. package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js +3 -3
  5. package/dist/cjs/limel-breadcrumbs_5.cjs.entry.js.map +1 -1
  6. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-button-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/limel-button.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-button.cjs.entry.js.map +1 -1
  10. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
  12. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-code-editor.cjs.entry.js.map +1 -1
  14. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-color-picker-palette.cjs.entry.js.map +1 -1
  16. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-color-picker.cjs.entry.js.map +1 -1
  18. package/dist/cjs/limel-dock-button.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-dock-button.cjs.entry.js.map +1 -1
  20. package/dist/cjs/limel-dock.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-dock.cjs.entry.js.map +1 -1
  22. package/dist/cjs/limel-dynamic-label_4.cjs.entry.js +1 -1
  23. package/dist/cjs/limel-dynamic-label_4.cjs.entry.js.map +1 -1
  24. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-file-viewer.cjs.entry.js.map +1 -1
  26. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js.map +1 -1
  28. package/dist/cjs/limel-help.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-help.cjs.entry.js.map +1 -1
  30. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  31. package/dist/cjs/limel-icon-button.cjs.entry.js.map +1 -1
  32. package/dist/cjs/limel-info-tile.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-info-tile.cjs.entry.js.map +1 -1
  34. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-select.cjs.entry.js.map +1 -1
  36. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-shortcut.cjs.entry.js.map +1 -1
  38. package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
  39. package/dist/cjs/limel-split-button.cjs.entry.js.map +1 -1
  40. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  41. package/dist/cjs/limel-table.cjs.entry.js.map +1 -1
  42. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.css +16 -2
  43. package/dist/collection/components/breadcrumbs/breadcrumbs.css +16 -2
  44. package/dist/collection/components/button/button.css +16 -2
  45. package/dist/collection/components/button-group/button-group.css +16 -2
  46. package/dist/collection/components/chip/chip.css +32 -4
  47. package/dist/collection/components/chip-set/chip-set.css +16 -2
  48. package/dist/collection/components/code-editor/code-editor.css +16 -2
  49. package/dist/collection/components/color-picker/color-picker-palette.css +16 -2
  50. package/dist/collection/components/color-picker/color-picker.css +16 -2
  51. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +78 -6
  52. package/dist/collection/components/dock/dock-button/dock-button.css +16 -2
  53. package/dist/collection/components/dock/dock.css +16 -2
  54. package/dist/collection/components/file-viewer/file-viewer.css +16 -2
  55. package/dist/collection/components/help/help.css +16 -2
  56. package/dist/collection/components/icon-button/icon-button.css +16 -2
  57. package/dist/collection/components/info-tile/info-tile.css +16 -2
  58. package/dist/collection/components/input-field/input-field.css +16 -2
  59. package/dist/collection/components/list/list.css +16 -2
  60. package/dist/collection/components/menu-list/menu-list.css +16 -2
  61. package/dist/collection/components/select/select.css +16 -2
  62. package/dist/collection/components/shortcut/shortcut.css +16 -2
  63. package/dist/collection/components/split-button/split-button.css +16 -2
  64. package/dist/collection/components/table/table.css +16 -2
  65. package/dist/collection/style/color-palette-extended.css +25 -25
  66. package/dist/collection/style/mixins.scss +90 -24
  67. package/dist/collection/style/shadows.scss +59 -175
  68. package/dist/esm/limel-action-bar_4.entry.js +1 -1
  69. package/dist/esm/limel-action-bar_4.entry.js.map +1 -1
  70. package/dist/esm/limel-breadcrumbs_5.entry.js +3 -3
  71. package/dist/esm/limel-breadcrumbs_5.entry.js.map +1 -1
  72. package/dist/esm/limel-button-group.entry.js +1 -1
  73. package/dist/esm/limel-button-group.entry.js.map +1 -1
  74. package/dist/esm/limel-button.entry.js +1 -1
  75. package/dist/esm/limel-button.entry.js.map +1 -1
  76. package/dist/esm/limel-chip_2.entry.js +2 -2
  77. package/dist/esm/limel-chip_2.entry.js.map +1 -1
  78. package/dist/esm/limel-code-editor.entry.js +1 -1
  79. package/dist/esm/limel-code-editor.entry.js.map +1 -1
  80. package/dist/esm/limel-color-picker-palette.entry.js +1 -1
  81. package/dist/esm/limel-color-picker-palette.entry.js.map +1 -1
  82. package/dist/esm/limel-color-picker.entry.js +1 -1
  83. package/dist/esm/limel-color-picker.entry.js.map +1 -1
  84. package/dist/esm/limel-dock-button.entry.js +1 -1
  85. package/dist/esm/limel-dock-button.entry.js.map +1 -1
  86. package/dist/esm/limel-dock.entry.js +1 -1
  87. package/dist/esm/limel-dock.entry.js.map +1 -1
  88. package/dist/esm/limel-dynamic-label_4.entry.js +1 -1
  89. package/dist/esm/limel-dynamic-label_4.entry.js.map +1 -1
  90. package/dist/esm/limel-file-viewer.entry.js +1 -1
  91. package/dist/esm/limel-file-viewer.entry.js.map +1 -1
  92. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  93. package/dist/esm/limel-flatpickr-adapter.entry.js.map +1 -1
  94. package/dist/esm/limel-help.entry.js +1 -1
  95. package/dist/esm/limel-help.entry.js.map +1 -1
  96. package/dist/esm/limel-icon-button.entry.js +1 -1
  97. package/dist/esm/limel-icon-button.entry.js.map +1 -1
  98. package/dist/esm/limel-info-tile.entry.js +1 -1
  99. package/dist/esm/limel-info-tile.entry.js.map +1 -1
  100. package/dist/esm/limel-select.entry.js +1 -1
  101. package/dist/esm/limel-select.entry.js.map +1 -1
  102. package/dist/esm/limel-shortcut.entry.js +1 -1
  103. package/dist/esm/limel-shortcut.entry.js.map +1 -1
  104. package/dist/esm/limel-split-button.entry.js +1 -1
  105. package/dist/esm/limel-split-button.entry.js.map +1 -1
  106. package/dist/esm/limel-table.entry.js +1 -1
  107. package/dist/esm/limel-table.entry.js.map +1 -1
  108. package/dist/lime-elements/lime-elements.css +42 -49
  109. package/dist/lime-elements/lime-elements.esm.js +1 -1
  110. package/dist/lime-elements/p-09434f79.entry.js +2 -0
  111. package/dist/lime-elements/{p-1367c295.entry.js.map → p-09434f79.entry.js.map} +1 -1
  112. package/dist/lime-elements/p-0af1417f.entry.js +2 -0
  113. package/dist/lime-elements/{p-d9b7a208.entry.js.map → p-0af1417f.entry.js.map} +1 -1
  114. package/dist/lime-elements/p-1a0aaf41.entry.js +2 -0
  115. package/dist/lime-elements/{p-31a0bdac.entry.js.map → p-1a0aaf41.entry.js.map} +1 -1
  116. package/dist/lime-elements/p-211456f2.entry.js +2 -0
  117. package/dist/lime-elements/{p-f60702fd.entry.js.map → p-211456f2.entry.js.map} +1 -1
  118. package/dist/lime-elements/{p-dab818a1.entry.js → p-259c1bef.entry.js} +2 -2
  119. package/dist/lime-elements/{p-dab818a1.entry.js.map → p-259c1bef.entry.js.map} +1 -1
  120. package/dist/lime-elements/{p-11d775ca.entry.js → p-28c76ae8.entry.js} +2 -2
  121. package/dist/lime-elements/{p-11d775ca.entry.js.map → p-28c76ae8.entry.js.map} +1 -1
  122. package/dist/lime-elements/p-32844d2b.entry.js +2 -0
  123. package/dist/lime-elements/{p-7d215789.entry.js.map → p-32844d2b.entry.js.map} +1 -1
  124. package/dist/lime-elements/p-493e2b10.entry.js +2 -0
  125. package/dist/lime-elements/{p-c1cbba2c.entry.js.map → p-493e2b10.entry.js.map} +1 -1
  126. package/dist/lime-elements/p-609b34fd.entry.js +2 -0
  127. package/dist/lime-elements/{p-968c49d9.entry.js.map → p-609b34fd.entry.js.map} +1 -1
  128. package/dist/lime-elements/p-6500050d.entry.js +2 -0
  129. package/dist/lime-elements/{p-eb5ff7ca.entry.js.map → p-6500050d.entry.js.map} +1 -1
  130. package/dist/lime-elements/{p-e973fd15.entry.js → p-782aa617.entry.js} +2 -2
  131. package/dist/lime-elements/{p-e973fd15.entry.js.map → p-782aa617.entry.js.map} +1 -1
  132. package/dist/lime-elements/{p-3cd95c9f.entry.js → p-84e87a39.entry.js} +2 -2
  133. package/dist/lime-elements/{p-3cd95c9f.entry.js.map → p-84e87a39.entry.js.map} +1 -1
  134. package/dist/lime-elements/p-8f1b76df.entry.js +2 -0
  135. package/dist/lime-elements/{p-48652dbe.entry.js.map → p-8f1b76df.entry.js.map} +1 -1
  136. package/dist/lime-elements/{p-7a202104.entry.js → p-9c5f2c45.entry.js} +2 -2
  137. package/dist/lime-elements/{p-7a202104.entry.js.map → p-9c5f2c45.entry.js.map} +1 -1
  138. package/dist/lime-elements/{p-497b65ba.entry.js → p-9c92c1db.entry.js} +3 -3
  139. package/dist/lime-elements/{p-497b65ba.entry.js.map → p-9c92c1db.entry.js.map} +1 -1
  140. package/dist/lime-elements/{p-d86f8aea.entry.js → p-9d5436bb.entry.js} +3 -3
  141. package/dist/lime-elements/{p-d86f8aea.entry.js.map → p-9d5436bb.entry.js.map} +1 -1
  142. package/dist/lime-elements/{p-126ed7d5.entry.js → p-b5dba995.entry.js} +2 -2
  143. package/dist/lime-elements/{p-126ed7d5.entry.js.map → p-b5dba995.entry.js.map} +1 -1
  144. package/dist/lime-elements/p-dbac0053.entry.js +2 -0
  145. package/dist/lime-elements/{p-484ecb49.entry.js.map → p-dbac0053.entry.js.map} +1 -1
  146. package/dist/lime-elements/p-f3a613a3.entry.js +2 -0
  147. package/dist/lime-elements/{p-6b2bc81b.entry.js.map → p-f3a613a3.entry.js.map} +1 -1
  148. package/dist/lime-elements/p-fda881a3.entry.js +2 -0
  149. package/dist/lime-elements/{p-5d01dc2a.entry.js.map → p-fda881a3.entry.js.map} +1 -1
  150. package/dist/lime-elements/style/color-palette-extended.css +25 -25
  151. package/dist/lime-elements/style/mixins.scss +90 -24
  152. package/dist/lime-elements/style/shadows.scss +59 -175
  153. package/dist/scss/mixins.scss +90 -24
  154. package/package.json +9 -9
  155. package/dist/lime-elements/p-1367c295.entry.js +0 -2
  156. package/dist/lime-elements/p-31a0bdac.entry.js +0 -2
  157. package/dist/lime-elements/p-484ecb49.entry.js +0 -2
  158. package/dist/lime-elements/p-48652dbe.entry.js +0 -2
  159. package/dist/lime-elements/p-5d01dc2a.entry.js +0 -2
  160. package/dist/lime-elements/p-6b2bc81b.entry.js +0 -2
  161. package/dist/lime-elements/p-7d215789.entry.js +0 -2
  162. package/dist/lime-elements/p-968c49d9.entry.js +0 -2
  163. package/dist/lime-elements/p-c1cbba2c.entry.js +0 -2
  164. package/dist/lime-elements/p-d9b7a208.entry.js +0 -2
  165. package/dist/lime-elements/p-eb5ff7ca.entry.js +0 -2
  166. package/dist/lime-elements/p-f60702fd.entry.js +0 -2
@@ -63,33 +63,55 @@
63
63
  }
64
64
  }
65
65
 
66
+ $clickable-normal-state-transitions: (
67
+ color var(--limel-clickable-transition-speed, 0.4s) ease,
68
+ background-color var(--limel-clickable-transition-speed, 0.4s) ease,
69
+ box-shadow var(--limel-clickable-transform-speed, 0.4s) ease,
70
+ transform var(--limel-clickable-transform-speed, 0.4s)
71
+ var(--limel-clickable-transform-timing-function, ease)
72
+ );
73
+
66
74
  @mixin is-elevated-clickable(
67
75
  $color: var(--mdc-theme-on-surface),
68
76
  $color--hovered: var(--mdc-theme-on-surface),
69
77
  $background-color: var(--lime-elevated-surface-background-color),
70
78
  $background-color--hovered: var(--lime-elevated-surface-background-color)
71
79
  ) {
72
- transition:
73
- color 0.2s ease,
74
- background-color 0.2s ease,
75
- box-shadow 0.2s ease,
76
- transform 0.1s ease-out;
80
+ transition: $clickable-normal-state-transitions;
77
81
 
78
82
  cursor: pointer;
79
83
  color: $color;
80
84
  background-color: $background-color;
81
85
  box-shadow: var(--button-shadow-normal);
82
86
 
87
+ &:hover,
88
+ &:focus,
89
+ &:focus-visible {
90
+ will-change: color, background-color, box-shadow, transform;
91
+ }
92
+
83
93
  &:hover {
94
+ transform: translate3d(0, -0.04rem, 0);
84
95
  color: $color--hovered;
85
96
  background-color: $background-color--hovered;
86
97
  box-shadow: var(--button-shadow-hovered);
87
98
  }
88
99
 
89
100
  &:active {
101
+ --limel-clickable-transform-timing-function: cubic-bezier(
102
+ 0.83,
103
+ -0.15,
104
+ 0.49,
105
+ 1.16
106
+ );
107
+ transform: translate3d(0, 0.05rem, 0);
90
108
  box-shadow: var(--button-shadow-pressed);
109
+ }
91
110
 
92
- transform: translate3d(0, 0.08rem, 0);
111
+ &:hover,
112
+ &:active {
113
+ --limel-clickable-transition-speed: 0.2s;
114
+ --limel-clickable-transform-speed: 0.16s;
93
115
  }
94
116
  }
95
117
 
@@ -100,27 +122,42 @@
100
122
  $background-color--hovered: var(--lime-elevated-surface-background-color),
101
123
  $background-color--inset: var(--mdc-theme-surface)
102
124
  ) {
103
- transition:
104
- color 0.2s ease,
105
- background-color 0.2s ease,
106
- box-shadow 0.2s ease,
107
- transform 0.1s ease-out;
125
+ transition: $clickable-normal-state-transitions;
108
126
 
109
127
  cursor: pointer;
110
128
  color: $color;
111
129
  background-color: $background-color;
112
130
  box-shadow: var(--button-shadow-normal);
113
131
 
132
+ &:hover,
133
+ &:focus,
134
+ &:focus-visible {
135
+ will-change: color, background-color, box-shadow, transform;
136
+ }
137
+
114
138
  &:hover {
139
+ transform: translate3d(0, 0.01rem, 0);
115
140
  color: $color--hovered;
116
141
  background-color: $background-color--hovered;
117
142
  box-shadow: var(--button-shadow-hovered);
118
143
  }
119
144
 
120
145
  &:active {
146
+ --limel-clickable-transform-timing-function: cubic-bezier(
147
+ 0.83,
148
+ -0.15,
149
+ 0.49,
150
+ 1.16
151
+ );
152
+ transform: translate3d(0, 0.05rem, 0);
121
153
  background-color: $background-color--inset;
122
154
  box-shadow: var(--button-shadow-inset-pressed);
123
- transform: translate3d(0, 0.05rem, 0);
155
+ }
156
+
157
+ &:hover,
158
+ &:active {
159
+ --limel-clickable-transition-speed: 0.2s;
160
+ --limel-clickable-transform-speed: 0.16s;
124
161
  }
125
162
  }
126
163
 
@@ -130,26 +167,40 @@
130
167
  $color--hovered: var(--mdc-theme-on-surface),
131
168
  $background-color--hovered: var(--lime-elevated-surface-background-color)
132
169
  ) {
133
- transition:
134
- color 0.2s ease,
135
- background-color 0.2s ease,
136
- box-shadow 0.2s ease,
137
- transform 0.1s ease-out;
170
+ transition: $clickable-normal-state-transitions;
138
171
 
139
172
  cursor: pointer;
140
173
  color: $color;
141
174
  background-color: $background-color;
142
175
 
176
+ &:hover,
177
+ &:focus,
178
+ &:focus-visible {
179
+ will-change: color, background-color, box-shadow, transform;
180
+ }
181
+
143
182
  &:hover {
183
+ transform: translate3d(0, 0.01rem, 0);
144
184
  color: $color--hovered;
145
185
  background-color: $background-color--hovered;
146
186
  box-shadow: var(--button-shadow-hovered);
147
187
  }
148
188
 
149
189
  &:active {
190
+ --limel-clickable-transform-timing-function: cubic-bezier(
191
+ 0.83,
192
+ -0.15,
193
+ 0.49,
194
+ 1.16
195
+ );
196
+ transform: translate3d(0, 0.05rem, 0);
150
197
  box-shadow: var(--button-shadow-pressed);
198
+ }
151
199
 
152
- transform: translate3d(0, 0.08rem, 0);
200
+ &:hover,
201
+ &:active {
202
+ --limel-clickable-transition-speed: 0.2s;
203
+ --limel-clickable-transform-speed: 0.16s;
153
204
  }
154
205
  }
155
206
 
@@ -160,26 +211,41 @@
160
211
  $background-color--hovered: var(--lime-elevated-surface-background-color),
161
212
  $background-color--inset: var(--mdc-theme-surface)
162
213
  ) {
163
- transition:
164
- color 0.2s ease,
165
- background-color 0.2s ease,
166
- box-shadow 0.2s ease,
167
- transform 0.1s ease-out;
214
+ transition: $clickable-normal-state-transitions;
168
215
 
169
216
  cursor: pointer;
170
217
  color: $color;
171
218
  background-color: $background-color;
172
219
 
220
+ &:hover,
221
+ &:focus,
222
+ &:focus-visible {
223
+ will-change: color, background-color, box-shadow, transform;
224
+ }
225
+
173
226
  &:hover {
227
+ transform: translate3d(0, -0.04rem, 0);
174
228
  color: $color--hovered;
175
229
  background-color: $background-color--hovered;
176
230
  box-shadow: var(--button-shadow-hovered);
177
231
  }
178
232
 
179
233
  &:active {
234
+ --limel-clickable-transform-timing-function: cubic-bezier(
235
+ 0.83,
236
+ -0.15,
237
+ 0.49,
238
+ 1.16
239
+ );
240
+ transform: translate3d(0, 0.05rem, 0);
180
241
  background-color: $background-color--inset;
181
242
  box-shadow: var(--button-shadow-inset-pressed);
182
- transform: translate3d(0, 0.05rem, 0);
243
+ }
244
+
245
+ &:hover,
246
+ &:active {
247
+ --limel-clickable-transition-speed: 0.2s;
248
+ --limel-clickable-transform-speed: 0.16s;
183
249
  }
184
250
  }
185
251
 
@@ -1,116 +1,92 @@
1
- @use './functions';
2
- @use './mixins';
3
-
4
1
  :root {
2
+ --shadow-brighten-edges-inside: 0 -1px 0.26rem rgb(var(--color-white), 0.06)
3
+ inset,
4
+ 0 0 0 1px rgb(var(--color-white), 0.06) inset;
5
+ --shadow-brighten-edges-outside: 0 0.125rem 0.26rem
6
+ rgb(var(--color-white), 0.06),
7
+ 0 0 0 1px rgb(var(--color-white), 0.06);
8
+
5
9
  // Could be useful for highlighting areas or elements that are focused, using a box-shadow.
6
10
  // However, we recommend to use `var(--shadow-depth-8-focus)` to get a more coherent visual effect.
7
- --shadow-focused-state: 0 0 0 #{functions.pxToRem(2)} var(--mdc-theme-primary);
11
+ --shadow-focused-state: 0 0 0 0.125rem var(--mdc-theme-primary);
8
12
 
9
13
  // Could be useful for highlighting areas or elements that contain errors, using a box-shadow.
10
14
  // However, we recommend to use `var(--shadow-depth-8-error)` to get a more coherent visual effect.
11
- --shadow-error-state: 0 0 0 #{functions.pxToRem(2)} rgb(var(--color-red-default));
15
+ --shadow-error-state: 0 0 0 0.125rem rgb(var(--color-red-default));
12
16
 
13
17
  // Good for buttons and clickables such as select dropdowns, or slider grabbers
14
- --button-shadow-normal: 0 #{functions.pxToRem(1.5)} #{functions.pxToRem(
15
- 3.6
16
- )} 0 rgba(var(--color-black), 0.232),
17
- 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
18
- rgba(var(--color-black), 0.208);
19
- --button-shadow-hovered: 0 #{functions.pxToRem(2)} #{functions.pxToRem(6)}
20
- rgba(var(--color-black), 0.15),
21
- 0 #{functions.pxToRem(6)} #{functions.pxToRem(10)}
22
- rgba(var(--color-black), 0.05);
23
- --button-shadow-pressed: 0 #{functions.pxToRem(1)} #{functions.pxToRem(3)} 0
24
- rgba(var(--color-black), 0.132),
25
- 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
26
- rgba(var(--color-black), 0.108);
27
- --button-shadow-inset: 0 #{functions.pxToRem(0.5)} #{functions.pxToRem(3.5)}
28
- 0 rgba(var(--color-black), 0.132) inset,
29
- 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
30
- rgba(var(--color-black), 0.108) inset,
31
- 0 0 #{functions.pxToRem(4)} rgba(var(--color-white), 0.9);
32
- --button-shadow-inset-pressed: 0 #{functions.pxToRem(0.5)} #{functions.pxToRem(
33
- 5.5
34
- )} 0 rgba(var(--color-black), 0.132) inset,
35
- 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(1.9)} 0
36
- rgba(var(--color-black), 0.12) inset,
37
- 0 0 #{functions.pxToRem(3)} rgba(var(--color-white), 0.9);
18
+ --button-shadow-normal: 0 0.09375rem 0.225rem 0
19
+ rgb(var(--color-black), 0.232),
20
+ 0 0.01875rem 0.05625rem 0 rgb(var(--color-black), 0.208),
21
+ var(--shadow-brighten-edges-inside);
22
+ --button-shadow-hovered: 0 0.125rem 0.375rem rgb(var(--color-black), 0.25),
23
+ 0 0.4rem 0.475rem -0.3rem rgb(var(--color-black), 0.1),
24
+ var(--shadow-brighten-edges-inside);
25
+ --button-shadow-pressed: 0 0.0625rem 0.1875rem 0
26
+ rgb(var(--color-black), 0.132),
27
+ 0 0.01875rem 0.05625rem 0 rgb(var(--color-black), 0.108),
28
+ var(--shadow-brighten-edges-inside);
29
+ --button-shadow-inset: 0 0.03125rem 0.21875rem 0
30
+ rgb(var(--color-black), 0.132) inset,
31
+ 0 0.01875rem 0.05625rem 0 rgb(var(--color-black), 0.108) inset,
32
+ var(--shadow-brighten-edges-outside),
33
+ 0 0 0.25rem rgb(var(--color-white), 0.9);
34
+ --button-shadow-inset-pressed: 0 0.03125rem 0.34375rem 0
35
+ rgb(var(--color-black), 0.132) inset,
36
+ 0 0.01875rem 0.11875rem 0 rgb(var(--color-black), 0.12) inset,
37
+ 0 -1px 0.3rem rgb(var(--color-white), 0.9),
38
+ var(--shadow-brighten-edges-outside);
38
39
 
39
40
  // Good for Command bars, Command dropdowns, Context menus
40
- --shadow-depth-8: 0 #{functions.pxToRem(3.2)} #{functions.pxToRem(7.2)} 0
41
- rgba(var(--color-black), 0.132),
42
- 0 #{functions.pxToRem(0.6)} #{functions.pxToRem(1.8)} 0
43
- rgba(var(--color-black), 0.108);
41
+ --shadow-depth-8: 0 0.2rem 0.45rem 0 rgb(var(--color-black), 0.132),
42
+ 0 0.0375rem 0.1125rem 0 rgb(var(--color-black), 0.108);
44
43
  // Same as above, but when element is focused
45
44
  --shadow-depth-8-focused: var(--shadow-depth-8), var(--shadow-focused-state);
46
45
  // Same as above, but when element is indicating error or warning
47
46
  --shadow-depth-8-error: var(--shadow-depth-8), var(--shadow-error-state);
48
47
  // Same as above, but light source is below the element, good for bottom bars, etc...
49
- --shadow-depth-8-reversed: 0 #{functions.pxToRem(-3.2)} #{functions.pxToRem(
50
- 7.2
51
- )} 0 rgba(var(--color-black), 0.132),
52
- 0 #{functions.pxToRem(-0.6)} #{functions.pxToRem(1.8)} 0
53
- rgba(var(--color-black), 0.108);
48
+ --shadow-depth-8-reversed: 0 -0.2rem 0.45rem 0 rgb(var(--color-black), 0.132),
49
+ 0 -0.0375rem 0.1125rem 0 rgb(var(--color-black), 0.108);
54
50
 
55
51
  // Good for Teaching callouts, Search results dropdown, cards, Tooltips
56
- --shadow-depth-16: 0 #{functions.pxToRem(6.4)} #{functions.pxToRem(14.4)} 0
57
- rgba(var(--color-black), 0.132),
58
- 0 #{functions.pxToRem(1.2)} #{functions.pxToRem(3.6)} 0
59
- rgba(var(--color-black), 0.108);
52
+ --shadow-depth-16: 0 0.4rem 0.9rem 0 rgb(var(--color-black), 0.132),
53
+ 0 0.075rem 0.225rem 0 rgb(var(--color-black), 0.108);
60
54
 
61
55
  // Same as above, but when element is focused
62
56
  --shadow-depth-16-focused: var(--shadow-depth-16),
63
57
  var(--shadow-focused-state);
64
58
 
65
59
  // Good for Pop up dialogs
66
- --shadow-depth-64: 0 #{functions.pxToRem(25.6)} #{functions.pxToRem(57.6)} 0
67
- rgba(var(--color-black), 0.22),
68
- 0 #{functions.pxToRem(4.8)} #{functions.pxToRem(14.4)} 0
69
- rgba(var(--color-black), 0.18);
60
+ --shadow-depth-64: 0 1.6rem 3.6rem 0 rgb(var(--color-black), 0.22),
61
+ 0 0.3rem 0.9rem 0 rgb(var(--color-black), 0.18);
70
62
 
71
63
  // Same as above, but when element is focused
72
64
  --shadow-depth-64-focused: var(--shadow-depth-64),
73
65
  var(--shadow-focused-state);
74
66
 
75
- --shadow-inflated-8: #{functions.pxToRem(-2)} #{functions.pxToRem(-2)} #{functions.pxToRem(
76
- 6
77
- )} rgba(var(--color-black), 0.01),
78
- #{functions.pxToRem(-4)} #{functions.pxToRem(-4)} #{functions.pxToRem(
79
- 10
80
- )} rgba(var(--color-white), 0.6),
81
- #{functions.pxToRem(4)} #{functions.pxToRem(4)} #{functions.pxToRem(10)}
82
- rgba(var(--color-black), 0.05),
83
- #{functions.pxToRem(1)} #{functions.pxToRem(1)} #{functions.pxToRem(10)}
84
- rgba(var(--color-white), 0.7),
85
- -1px -1px 0 1px rgba(var(--color-black), 0.07) inset,
86
- 0 0 1px 1px rgba(var(--color-white), 0.98) inset;
87
- --shadow-inflated-16: #{functions.pxToRem(-3)} #{functions.pxToRem(-3)} #{functions.pxToRem(
88
- 6
89
- )} rgba(var(--color-black), 0.01),
90
- #{functions.pxToRem(-6)} #{functions.pxToRem(-6)} #{functions.pxToRem(
91
- 16
92
- )} rgba(var(--color-white), 0.8),
93
- #{functions.pxToRem(6)} #{functions.pxToRem(6)} #{functions.pxToRem(16)}
94
- rgba(var(--color-black), 0.05),
95
- #{functions.pxToRem(2)} #{functions.pxToRem(2)} #{functions.pxToRem(10)}
96
- rgba(var(--color-white), 0.7),
97
- -1px -1px 0 1px rgba(var(--color-black), 0.07) inset,
98
- 0 0 1px 1px rgba(var(--color-white), 0.98) inset;
99
- --shadow-inflated-64: #{functions.pxToRem(-3)} #{functions.pxToRem(-3)} #{functions.pxToRem(
100
- 6
101
- )} rgba(var(--color-black), 0.01),
102
- #{functions.pxToRem(-10)} #{functions.pxToRem(-10)} #{functions.pxToRem(
103
- 30
104
- )} rgba(var(--color-white), 1),
105
- #{functions.pxToRem(10)} #{functions.pxToRem(10)} #{functions.pxToRem(
106
- 36
107
- )} rgba(var(--color-black), 0.06),
108
- #{functions.pxToRem(2)} #{functions.pxToRem(2)} #{functions.pxToRem(10)}
109
- rgba(var(--color-white), 0.7),
110
- -1px -1px 0 1px rgba(var(--color-black), 0.07) inset,
111
- 0 0 1px 1px rgba(var(--color-white), 0.98) inset;
67
+ --shadow-inflated-8: -0.125rem -0.125rem 0.375rem rgb(var(--color-black), 0.01),
68
+ -0.25rem -0.25rem 0.625rem rgb(var(--color-white), 0.6),
69
+ 0.25rem 0.25rem 0.625rem rgb(var(--color-black), 0.05),
70
+ 0.0625rem 0.0625rem 0.625rem rgb(var(--color-white), 0.7),
71
+ -1px -1px 0 1px rgb(var(--color-black), 0.07) inset,
72
+ 0 0 1px 1px rgb(var(--color-white), 0.98) inset;
73
+ --shadow-inflated-16: -0.1875rem -0.1875rem 0.375rem rgb(var(--color-black), 0.01),
74
+ -0.375rem -0.375rem 1rem rgb(var(--color-white), 0.8),
75
+ 0.375rem 0.375rem 1rem rgb(var(--color-black), 0.05),
76
+ 0.125rem 0.125rem 0.625rem rgb(var(--color-white), 0.7),
77
+ -1px -1px 0 1px rgb(var(--color-black), 0.07) inset,
78
+ 0 0 1px 1px rgb(var(--color-white), 0.98) inset;
79
+ --shadow-inflated-64: -0.1875rem -0.1875rem 0.375rem rgb(var(--color-black), 0.01),
80
+ -0.625rem -0.625rem 1.875rem rgb(var(--color-white), 1),
81
+ 0.625rem 0.625rem 2.25rem rgb(var(--color-black), 0.06),
82
+ 0.125rem 0.125rem 0.625rem rgb(var(--color-white), 0.7),
83
+ -1px -1px 0 1px rgb(var(--color-black), 0.07) inset,
84
+ 0 0 1px 1px rgb(var(--color-white), 0.98) inset;
112
85
  }
113
86
 
87
+ // @include mixins.in(dark-mode) {
88
+ // latest version is found in `color-palette-extended.css`
89
+ // }
114
90
  // ⚠️ This section below is commented out.
115
91
  // It's contents are moved to src/style/color-palette-extended.css
116
92
  //
@@ -120,95 +96,3 @@
120
96
  // The shadows will get rendered too dark, due to `@media (prefers-color-scheme: dark)`
121
97
  // rule from the mixin. The day we generate `.css` files from these `.scss` files,
122
98
  // we can do it differently.
123
-
124
- // @include mixins.in(dark-mode) {
125
- // --button-shadow-normal: 0 #{functions.pxToRem(1.5)} #{functions.pxToRem(
126
- // 3.6
127
- // )} 0 rgba(var(--color-black), 0.632),
128
- // 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
129
- // rgba(var(--color-black), 0.608);
130
-
131
- // --button-shadow-hovered: 0 #{functions.pxToRem(2)} #{functions.pxToRem(6)}
132
- // rgba(var(--color-black), 0.55),
133
- // 0 #{functions.pxToRem(6)} #{functions.pxToRem(10)}
134
- // rgba(var(--color-black), 0.45);
135
-
136
- // --button-shadow-pressed: 0 #{functions.pxToRem(1)} #{functions.pxToRem(3)} 0
137
- // rgba(var(--color-black), 0.532),
138
- // 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
139
- // rgba(var(--color-black), 0.508);
140
-
141
- // --button-shadow-inset: 0 #{functions.pxToRem(0.5)} #{functions.pxToRem(3.5)}
142
- // 0 rgba(var(--color-black), 0.532) inset,
143
- // 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(0.9)} 0
144
- // rgba(var(--color-black), 0.508) inset,
145
- // 0 0 #{functions.pxToRem(4)} rgba(var(--color-white), 0.1);
146
-
147
- // --button-shadow-inset-pressed: 0 #{functions.pxToRem(0.5)} #{functions.pxToRem(
148
- // 5.5
149
- // )} 0 rgba(var(--color-black), 0.532) inset,
150
- // 0 #{functions.pxToRem(0.3)} #{functions.pxToRem(1.9)} 0
151
- // rgba(var(--color-black), 0.52) inset,
152
- // 0 0 #{functions.pxToRem(3)} rgba(var(--color-white), 0.1);
153
-
154
- // --shadow-depth-8: 0 #{functions.pxToRem(3.2)} #{functions.pxToRem(7.2)} 0
155
- // rgba(var(--color-black), 0.532),
156
- // 0 #{functions.pxToRem(0.6)} #{functions.pxToRem(1.8)} 0
157
- // rgba(var(--color-black), 0.508);
158
-
159
- // --shadow-depth-8-reversed: 0 #{functions.pxToRem(-3.2)} #{functions.pxToRem(
160
- // 7.2
161
- // )} 0 rgba(var(--color-black), 0.532),
162
- // 0 #{functions.pxToRem(-0.6)} #{functions.pxToRem(1.8)} 0
163
- // rgba(var(--color-black), 0.508);
164
-
165
- // --shadow-depth-16: 0 #{functions.pxToRem(6.4)} #{functions.pxToRem(14.4)} 0
166
- // rgba(var(--color-black), 0.532),
167
- // 0 #{functions.pxToRem(1.2)} #{functions.pxToRem(3.6)} 0
168
- // rgba(var(--color-black), 0.508);
169
-
170
- // --shadow-depth-64: 0 #{functions.pxToRem(25.6)} #{functions.pxToRem(57.6)} 0
171
- // rgba(var(--color-black), 0.22),
172
- // 0 #{functions.pxToRem(4.8)} #{functions.pxToRem(14.4)} 0
173
- // rgba(var(--color-black), 0.58);
174
-
175
- // --shadow-inflated-8: #{functions.pxToRem(-2)} #{functions.pxToRem(-2)} #{functions.pxToRem(
176
- // 6
177
- // )} rgba(var(--color-black), 0.21),
178
- // #{functions.pxToRem(-4)} #{functions.pxToRem(-4)} #{functions.pxToRem(
179
- // 10
180
- // )} rgba(var(--color-white), 0.08),
181
- // #{functions.pxToRem(4)} #{functions.pxToRem(4)} #{functions.pxToRem(10)}
182
- // rgba(var(--color-black), 0.46),
183
- // #{functions.pxToRem(1)} #{functions.pxToRem(1)} #{functions.pxToRem(10)}
184
- // rgba(var(--color-white), 0.16),
185
- // -1px -1px 0 1px rgba(var(--color-black), 0.37) inset,
186
- // 0 0 1px 1px rgba(var(--color-white), 0.2) inset;
187
-
188
- // --shadow-inflated-16: #{functions.pxToRem(-3)} #{functions.pxToRem(-3)} #{functions.pxToRem(
189
- // 6
190
- // )} rgba(var(--color-black), 0.21),
191
- // #{functions.pxToRem(-6)} #{functions.pxToRem(-6)} #{functions.pxToRem(
192
- // 16
193
- // )} rgba(var(--color-white), 0.1),
194
- // #{functions.pxToRem(6)} #{functions.pxToRem(6)} #{functions.pxToRem(16)}
195
- // rgba(var(--color-black), 0.46),
196
- // #{functions.pxToRem(2)} #{functions.pxToRem(2)} #{functions.pxToRem(10)}
197
- // rgba(var(--color-white), 0.16),
198
- // -1px -1px 0 1px rgba(var(--color-black), 0.37) inset,
199
- // 0 0 1px 1px rgba(var(--color-white), 0.2) inset;
200
-
201
- // --shadow-inflated-64: #{functions.pxToRem(-3)} #{functions.pxToRem(-3)} #{functions.pxToRem(
202
- // 6
203
- // )} rgba(var(--color-black), 0.21),
204
- // #{functions.pxToRem(-10)} #{functions.pxToRem(-10)} #{functions.pxToRem(
205
- // 30
206
- // )} rgba(var(--color-white), 0.2),
207
- // #{functions.pxToRem(10)} #{functions.pxToRem(10)} #{functions.pxToRem(
208
- // 36
209
- // )} rgba(var(--color-black), 0.46),
210
- // #{functions.pxToRem(2)} #{functions.pxToRem(2)} #{functions.pxToRem(10)}
211
- // rgba(var(--color-white), 0.16),
212
- // -1px -1px 0 1px rgba(var(--color-black), 0.37) inset,
213
- // 0 0 1px 1px rgba(var(--color-white), 0.2) inset;
214
- // }
@@ -63,33 +63,55 @@
63
63
  }
64
64
  }
65
65
 
66
+ $clickable-normal-state-transitions: (
67
+ color var(--limel-clickable-transition-speed, 0.4s) ease,
68
+ background-color var(--limel-clickable-transition-speed, 0.4s) ease,
69
+ box-shadow var(--limel-clickable-transform-speed, 0.4s) ease,
70
+ transform var(--limel-clickable-transform-speed, 0.4s)
71
+ var(--limel-clickable-transform-timing-function, ease)
72
+ );
73
+
66
74
  @mixin is-elevated-clickable(
67
75
  $color: var(--mdc-theme-on-surface),
68
76
  $color--hovered: var(--mdc-theme-on-surface),
69
77
  $background-color: var(--lime-elevated-surface-background-color),
70
78
  $background-color--hovered: var(--lime-elevated-surface-background-color)
71
79
  ) {
72
- transition:
73
- color 0.2s ease,
74
- background-color 0.2s ease,
75
- box-shadow 0.2s ease,
76
- transform 0.1s ease-out;
80
+ transition: $clickable-normal-state-transitions;
77
81
 
78
82
  cursor: pointer;
79
83
  color: $color;
80
84
  background-color: $background-color;
81
85
  box-shadow: var(--button-shadow-normal);
82
86
 
87
+ &:hover,
88
+ &:focus,
89
+ &:focus-visible {
90
+ will-change: color, background-color, box-shadow, transform;
91
+ }
92
+
83
93
  &:hover {
94
+ transform: translate3d(0, -0.04rem, 0);
84
95
  color: $color--hovered;
85
96
  background-color: $background-color--hovered;
86
97
  box-shadow: var(--button-shadow-hovered);
87
98
  }
88
99
 
89
100
  &:active {
101
+ --limel-clickable-transform-timing-function: cubic-bezier(
102
+ 0.83,
103
+ -0.15,
104
+ 0.49,
105
+ 1.16
106
+ );
107
+ transform: translate3d(0, 0.05rem, 0);
90
108
  box-shadow: var(--button-shadow-pressed);
109
+ }
91
110
 
92
- transform: translate3d(0, 0.08rem, 0);
111
+ &:hover,
112
+ &:active {
113
+ --limel-clickable-transition-speed: 0.2s;
114
+ --limel-clickable-transform-speed: 0.16s;
93
115
  }
94
116
  }
95
117
 
@@ -100,27 +122,42 @@
100
122
  $background-color--hovered: var(--lime-elevated-surface-background-color),
101
123
  $background-color--inset: var(--mdc-theme-surface)
102
124
  ) {
103
- transition:
104
- color 0.2s ease,
105
- background-color 0.2s ease,
106
- box-shadow 0.2s ease,
107
- transform 0.1s ease-out;
125
+ transition: $clickable-normal-state-transitions;
108
126
 
109
127
  cursor: pointer;
110
128
  color: $color;
111
129
  background-color: $background-color;
112
130
  box-shadow: var(--button-shadow-normal);
113
131
 
132
+ &:hover,
133
+ &:focus,
134
+ &:focus-visible {
135
+ will-change: color, background-color, box-shadow, transform;
136
+ }
137
+
114
138
  &:hover {
139
+ transform: translate3d(0, 0.01rem, 0);
115
140
  color: $color--hovered;
116
141
  background-color: $background-color--hovered;
117
142
  box-shadow: var(--button-shadow-hovered);
118
143
  }
119
144
 
120
145
  &:active {
146
+ --limel-clickable-transform-timing-function: cubic-bezier(
147
+ 0.83,
148
+ -0.15,
149
+ 0.49,
150
+ 1.16
151
+ );
152
+ transform: translate3d(0, 0.05rem, 0);
121
153
  background-color: $background-color--inset;
122
154
  box-shadow: var(--button-shadow-inset-pressed);
123
- transform: translate3d(0, 0.05rem, 0);
155
+ }
156
+
157
+ &:hover,
158
+ &:active {
159
+ --limel-clickable-transition-speed: 0.2s;
160
+ --limel-clickable-transform-speed: 0.16s;
124
161
  }
125
162
  }
126
163
 
@@ -130,26 +167,40 @@
130
167
  $color--hovered: var(--mdc-theme-on-surface),
131
168
  $background-color--hovered: var(--lime-elevated-surface-background-color)
132
169
  ) {
133
- transition:
134
- color 0.2s ease,
135
- background-color 0.2s ease,
136
- box-shadow 0.2s ease,
137
- transform 0.1s ease-out;
170
+ transition: $clickable-normal-state-transitions;
138
171
 
139
172
  cursor: pointer;
140
173
  color: $color;
141
174
  background-color: $background-color;
142
175
 
176
+ &:hover,
177
+ &:focus,
178
+ &:focus-visible {
179
+ will-change: color, background-color, box-shadow, transform;
180
+ }
181
+
143
182
  &:hover {
183
+ transform: translate3d(0, 0.01rem, 0);
144
184
  color: $color--hovered;
145
185
  background-color: $background-color--hovered;
146
186
  box-shadow: var(--button-shadow-hovered);
147
187
  }
148
188
 
149
189
  &:active {
190
+ --limel-clickable-transform-timing-function: cubic-bezier(
191
+ 0.83,
192
+ -0.15,
193
+ 0.49,
194
+ 1.16
195
+ );
196
+ transform: translate3d(0, 0.05rem, 0);
150
197
  box-shadow: var(--button-shadow-pressed);
198
+ }
151
199
 
152
- transform: translate3d(0, 0.08rem, 0);
200
+ &:hover,
201
+ &:active {
202
+ --limel-clickable-transition-speed: 0.2s;
203
+ --limel-clickable-transform-speed: 0.16s;
153
204
  }
154
205
  }
155
206
 
@@ -160,26 +211,41 @@
160
211
  $background-color--hovered: var(--lime-elevated-surface-background-color),
161
212
  $background-color--inset: var(--mdc-theme-surface)
162
213
  ) {
163
- transition:
164
- color 0.2s ease,
165
- background-color 0.2s ease,
166
- box-shadow 0.2s ease,
167
- transform 0.1s ease-out;
214
+ transition: $clickable-normal-state-transitions;
168
215
 
169
216
  cursor: pointer;
170
217
  color: $color;
171
218
  background-color: $background-color;
172
219
 
220
+ &:hover,
221
+ &:focus,
222
+ &:focus-visible {
223
+ will-change: color, background-color, box-shadow, transform;
224
+ }
225
+
173
226
  &:hover {
227
+ transform: translate3d(0, -0.04rem, 0);
174
228
  color: $color--hovered;
175
229
  background-color: $background-color--hovered;
176
230
  box-shadow: var(--button-shadow-hovered);
177
231
  }
178
232
 
179
233
  &:active {
234
+ --limel-clickable-transform-timing-function: cubic-bezier(
235
+ 0.83,
236
+ -0.15,
237
+ 0.49,
238
+ 1.16
239
+ );
240
+ transform: translate3d(0, 0.05rem, 0);
180
241
  background-color: $background-color--inset;
181
242
  box-shadow: var(--button-shadow-inset-pressed);
182
- transform: translate3d(0, 0.05rem, 0);
243
+ }
244
+
245
+ &:hover,
246
+ &:active {
247
+ --limel-clickable-transition-speed: 0.2s;
248
+ --limel-clickable-transform-speed: 0.16s;
183
249
  }
184
250
  }
185
251