.grid-columns { &[data-columns="2"] { grid-template-columns: repeat(2, 1fr); } &[data-columns="3"] { grid-template-columns: repeat(3, 1fr); } &[data-columns="4"] { grid-template-columns: repeat(4, 1fr); } // special columns &[data-columns="2-1"] { grid-template-columns: repeat(4, 1fr); > * { &:nth-child(1), &:nth-child(2) { grid-column: span 1; } &:nth-child(3) { grid-column: span 2; } } } &[data-columns="1-2"] { grid-template-columns: repeat(4, 1fr); > * { &:nth-child(1) { grid-column: span 2; } &:nth-child(2), &:nth-child(3) { grid-column: span 1; } } } // stack columns @include media-breakpoint-down (sm) { &[data-stack*="mobile"] { display: flex !important; flex-direction: column; } } @include media-breakpoint-only (md) { &[data-stack*="tablet"] { display: flex !important; flex-direction: column; } } }