import { styled } from "goober"; const GridThreeColumns = styled("div")` display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1rem; @media (min-width: 768px) { grid-template-columns: repeat(2, minmax(0, 1fr)); } @media (min-width: 1280px) { grid-template-columns: repeat(3, minmax(0, 1fr)); } `; const GridTwoColumns = styled("div")` display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1rem; @media (min-width: 768px) { grid-template-columns: repeat(2, minmax(0, 1fr)); } `; const GridOneColumn = styled("div")` display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1rem; `; export function Grid( props: React.HTMLAttributes & { cols: 1 | 2 | 3 }, ) { const { cols, children, ...rest } = props; switch (cols) { case 1: return {children}; case 2: return {children}; case 3: return {children}; default: throw new Error(`Invalid number of columns: ${cols}`); } }