One of the decisions I spent the most time on in my GitHub Time away concept was how selecting days should work.
The obvious way to select on a grid is a box, like selecting files on your desktop. You drag from one corner to the other and everything inside gets selected.
But the contribution graph is a calendar. Each column is a week, and the days run top to bottom, Sunday to Saturday. If you drag from a Wednesday to a Monday three weeks later, a box misses 12 of those 20 days and picks up 4 that aren’t in your range
So the selection follows the dates instead. It runs down the rest of the week, into the next column, and stops on the day you’re on.
It also made keyboard selection simple. Shift + arrow keys select the same range of dates, so it works the same however you select.