@@ -19,52 +19,66 @@ governing permissions and limitations under the License.
19
19
--spectrum-calendar-margin-x : 32px ;
20
20
--spectrum-calendar-width : calc ((var (--spectrum-calendar-day-width ) + var (--spectrum-calendar-day-padding ) * 2 ) * 7 );
21
21
--spectrum-calendar-button-gap : var (--spectrum-global-dimension-size-40 );
22
+ --spectrum-calendar-title-margin-x : var (--spectrum-global-dimension-size-75 );
22
23
}
23
24
24
25
.spectrum-Calendar {
25
- width : var ( --spectrum-calendar-width ) ;
26
- display : inline-block ;
26
+ display : block ;
27
+ touch-action : none ;
27
28
}
28
29
29
30
.spectrum-Calendar--padded {
30
31
margin : var (--spectrum-calendar-margin-x ) var (--spectrum-calendar-margin-y );
31
32
}
32
33
33
34
.spectrum-Calendar-header {
34
- display : flex;
35
+ display : grid;
36
+ grid-auto-flow : column;
37
+ grid-auto-columns : 1fr ;
35
38
width : 100% ;
36
- align-items : center;
39
+ gap : var (--spectrum-global-dimension-size-300 );
40
+ }
41
+
42
+ .spectrum-Calendar-monthHeader {
43
+ display : grid;
44
+ grid-template-areas : 'prev title next' ;
45
+ grid-template-columns : minmax (auto, 1fr ) auto minmax (auto, 1fr );
46
+ align-content : start;
47
+ width : var (--spectrum-calendar-width );
48
+ padding : 0 var (--spectrum-calendar-button-gap );
49
+ box-sizing : border-box;
37
50
}
38
51
39
52
.spectrum-Calendar-title {
40
53
font-size : var (--spectrum-calendar-title-text-size );
41
54
font-weight : bold;
42
55
43
56
line-height : var (--spectrum-calendar-title-height );
44
- margin : 0 ;
45
- order : 1 ;
46
- flex-grow : 1 ;
47
-
57
+ margin : 0 var (--spectrum-calendar-title-margin-x );
58
+ grid-area : title;
48
59
49
60
text-align : center;
50
61
overflow : hidden;
51
62
white-space : nowrap;
52
63
text-overflow : ellipsis;
53
64
}
54
65
55
- .spectrum-Calendar {
56
- .spectrum-Calendar-prevMonth ,
57
- .spectrum-Calendar-nextMonth {
58
- margin : 0 var (--spectrum-calendar-button-gap );
59
- }
60
- }
61
-
62
66
.spectrum-Calendar-prevMonth {
63
- order : 0 ;
67
+ grid-area : prev;
68
+ justify-self : start;
64
69
}
65
70
66
71
.spectrum-Calendar-nextMonth {
67
- order : 2 ;
72
+ grid-area : next;
73
+ justify-self : end;
74
+ }
75
+
76
+ .spectrum-Calendar-months {
77
+ display : grid;
78
+ grid-auto-flow : column;
79
+ grid-auto-columns : 1fr ;
80
+ gap : var (--spectrum-global-dimension-size-300 );
81
+ align-items : start;
68
82
}
69
83
70
84
.spectrum-Calendar-dayOfWeek {
@@ -101,7 +115,7 @@ governing permissions and limitations under the License.
101
115
102
116
.spectrum-Calendar-table {
103
117
table-layout : fixed;
104
- /* width: 100%;*/
118
+ width : var ( --spectrum-calendar-width );
105
119
106
120
border-collapse : collapse;
107
121
border-spacing : 0 ;
@@ -140,18 +154,17 @@ governing permissions and limitations under the License.
140
154
margin : var (--spectrum-calendar-day-padding );
141
155
142
156
border-radius : var (--spectrum-calendar-day-width );
143
- border : var (--spectrum-calendar-day-border-size-key-focus ) solid transparent;
144
157
145
158
font-size : var (--spectrum-calendar-day-text-size );
146
- line-height : calc ( var (--spectrum-calendar-day-width ) - var ( --spectrum-calendar-day-border-size-key-focus ) * 2 );
159
+ line-height : var (--spectrum-calendar-day-height );
147
160
white-space : nowrap;
148
161
149
162
cursor : default;
150
163
151
164
transition : background var (--spectrum-global-animation-duration-100 ) ease-in-out,
152
165
color var (--spectrum-global-animation-duration-100 ) ease-in-out,
153
166
border-color var (--spectrum-global-animation-duration-100 ) ease-in-out;
154
-
167
+
155
168
& : focus {
156
169
outline : 0 ;
157
170
}
@@ -169,31 +182,29 @@ governing permissions and limitations under the License.
169
182
visibility : hidden;
170
183
}
171
184
185
+ /* focus ring */
172
186
& : before {
187
+ border-radius : calc (var (--spectrum-calendar-day-width ) + var (--spectrum-alias-focus-ring-gap ));
173
188
content : '' ;
189
+ display : block;
174
190
position : absolute;
175
191
top : calc (50% - calc (var (--spectrum-calendar-day-width ) / 2 ));
176
192
left : calc (50% - calc (var (--spectrum-calendar-day-width ) / 2 ));
177
- box-sizing : border-box;
178
- width : var (--spectrum-calendar-day-width );
179
- height : var (--spectrum-calendar-day-height );
180
- border-radius : var (--spectrum-calendar-day-width );
181
- border : var (--spectrum-calendar-day-border-size-key-focus ) solid transparent;
182
- }
193
+ width : calc (var (--spectrum-calendar-day-width ) + var (--spectrum-alias-focus-ring-gap ) * 2 );
194
+ height : calc (var (--spectrum-calendar-day-height ) + var (--spectrum-alias-focus-ring-gap ) * 2 );
195
+ margin : 0 ;
196
+ transform : translateX (0 ); /* Forces FF to render on the pixel grid */
183
197
184
- & .is-selected : not (.is-range-selection ) {
185
- font-weight : var (--spectrum-calendar-day-text-font-weight-selected );
198
+ transition : box-shadow var (--spectrum-global-animation-duration-100 ) ease-out,
199
+ margin var (--spectrum-global-animation-duration-100 ) ease-out;
200
+ }
186
201
202
+ & .is-focused {
187
203
& : before {
188
- /* No highlight for lone selections */
189
- display : none;
204
+ margin : calc (var (--spectrum-alias-focus-ring-gap ) * -1 );
190
205
}
191
206
}
192
207
193
- & .is-today {
194
- font-weight : var (--spectrum-calendar-day-today-text-font-weight );
195
- }
196
-
197
208
& .is-range-selection {
198
209
/* overrides to make the cells appear connected */
199
210
margin : var (--spectrum-calendar-day-padding ) 0 ;
@@ -211,23 +222,21 @@ governing permissions and limitations under the License.
211
222
width : calc (var (--spectrum-calendar-day-width ) + var (--spectrum-calendar-day-padding ));
212
223
}
213
224
214
- & .is-selection-start ,
215
- & .is-selection-end {
216
- font-weight : var (--spectrum-calendar-day-text-font-weight-cap-selected );
217
-
218
- & : after {
219
- position : absolute;
220
- top : 0 ;
225
+ /* hover and selected states */
226
+ & : after {
227
+ position : absolute;
228
+ top : calc (50% - calc (var (--spectrum-calendar-day-width ) / 2 ));
229
+ left : calc (50% - calc (var (--spectrum-calendar-day-width ) / 2 ));
221
230
222
- display : block;
231
+ display : block;
223
232
224
- height : var (--spectrum-calendar-day-height );
225
- width : var (--spectrum-calendar-day-width );
233
+ height : var (--spectrum-calendar-day-height );
234
+ width : var (--spectrum-calendar-day-width );
226
235
227
- border-radius : var (--spectrum-calendar-day-width );
236
+ border-radius : var (--spectrum-calendar-day-width );
228
237
229
- content : '' ;
230
- }
238
+ content : '' ;
239
+ z-index : -1 ;
231
240
}
232
241
233
242
& .is-range-start ,
@@ -266,3 +275,7 @@ governing permissions and limitations under the License.
266
275
}
267
276
}
268
277
}
278
+
279
+ .spectrum-Calendar-body .is-range-selecting .spectrum-Calendar-date {
280
+ transition : none;
281
+ }
0 commit comments