The repeat syntax can take a track-list rather than a single value, this means you can repeat a more complex track-list. You can use
minmax() in this track list, here I am making the max of my larger tracks
2fr, and the smaller ones
1fr. This means that the larger tracks will have more of any leftover space assigned.
Currently requires Chrome Canary
See the Pen Grid by Example 35: Repeating multiple track lists with minmax() by rachelandrew (@rachelandrew) on CodePen.