"Zigzag" month boundaries separation line for the new month view
Context / problem
Following up on #603, considering that the month view in 45.x+ is now an infinite multi-weeks view that allows moving up and down, I believe that one of the best ways to make it easy to spot the delimitations between calendar months as you are scrolling is to rip out the month names' from the header above the view (#934) and embed them directly in the cell of the 1st day of each month (#962).
This is easily done, however we run into the problem of trying to make the month name labels easy to spot visually. We could still use very bold fonts and some color (like the old month name labels in the header), but we probably couldn't use larger font sizes than the cell's day number text, because that would probably cause the line height to vary compared to other cells. So we can probably only use bold + color, like this:
There is some shading on the background color of the cells for "the months before/after the currently focused month" (i.e. weeks at the top and bottom of the view), however that effect is very subtle.
Proposed improvement
I think that a solution to make the visuals "easy to spot" would be combining the two existing aspects (bold+colored month name in the 1st day's cell, + shaded cell backgrounds) with a third visual aspect: a hard border style that separates the months, what I call the "zigzag line".
If we do a border style that separates the cells of the previous vs current (and current vs next) month, then the month name's font size becomes less of an issue because you then have three combined visual indicators helping your eyes spot the boundaries between months as you scroll.
Various other apps out there have taken this visual approach, here's one example:
Possible implementation
Maybe the cells in the month view's C code could dynamically set/unset 4 additional CSS classes, with these simple properties, effectively causing a zigzagging border line to be created in practice:
.day_in_month_last_row { border-bottom: 1px solid; }
.last_day_of_month { border-bottom: 1px solid; border-right: 1px solid; }
.first_day_of_month { border-left: 1px solid; border-top: 1px solid; }
.day_in_month_first_row { border-top: 1px solid; }
...maybe this needs to be multiplied by two for right-to-left languages orientation (if GTK doesn't do it automagically for us), but otherwise, it might be sufficient?
Possible caveats (to test)
We don't know if this might "just work", or if it might cause a combinatorial explosion in CSS matching or something like that.