mw.widgets: Use CSS grid for the calendar in supporting browsers
authorBartosz Dziewoński <matma.rex@gmail.com>
Wed, 30 Jan 2019 23:54:42 +0000 (15:54 -0800)
committerVolker E <volker.e@wikimedia.org>
Mon, 11 Feb 2019 21:58:34 +0000 (13:58 -0800)
Bug: T214997
Change-Id: I05dca01585f3de86580e7ae94ceeae1716f56ba3

resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.less

index 253784e..7932f73 100644 (file)
@@ -63,6 +63,7 @@
 .mw-widget-calendarWidget-body-wrapper {
        .mw-widget-calendarWidget-body {
                display: inline-block;
+               display: inline-grid;
                // Fit 7 days, 3em each
                width: @calendarWidth;
                // Fit 6 weeks + heading line, 2em each
 
        .mw-widget-calendarWidget-body {
                display: block;
+               display: grid;
        }
 
        .mw-widget-calendarWidget-body:first-child {
 
        .mw-widget-calendarWidget-body {
                display: block;
+               display: grid;
        }
 
        .mw-widget-calendarWidget-body:first-child {
        }
 }
 
+// Support: Browsers that render CSS Grid. All others ignore unknown `grid-*` properties.
+// This avoids any calculation issues pushing items to next line.
+.mw-widget-calendarWidget-body-month {
+       grid-template-columns: auto auto auto auto auto auto auto;
+}
+
+.mw-widget-calendarWidget-body-year {
+       grid-template-columns: auto auto;
+}
+
+.mw-widget-calendarWidget-body-duodecade {
+       grid-template-columns: auto auto auto auto auto;
+}
+
 .mw-widget-calendarWidget-day,
 .mw-widget-calendarWidget-day-heading,
 .mw-widget-calendarWidget-month,