Common grid layout patterns used throughout Dialpad and UberConference.
Use .d-gl-sidebar to create a simple 2-column layout with a sidebar and main content area.
| CSS Var | Output |
|---|---|
var(--sidebar-width) | minmax(20rem, 30rem); |
var(--content-width) | minmax(32rem, 90ch); |
<dt-stack as="header" align="center" justify="center" class="d-p-200 d-w100p d-hmn216"> <div class="d-d-grid d-gl-sidebar d-g-200 d-w100p d-hmn216 d-bar-400 d-of-auto d-bgc-moderate" style="--sidebar-width: minmax(10rem, 20rem);"> <dt-stack direction="row" align="center" justify="center" class="d-ga-sidebar d-p-200 d-bgc-moderate-opaque d-bar-300">Sidebar</dt-stack> <dt-stack direction="row" align="center" justify="center" class="d-ga-content d-p-200 d-bgc-moderate-opaque d-bar-300">Content</dt-stack> </div> </dt-stack>
Use .d-gl-header to create a simple 2-row layout with a header area and main content area. Usually this is nested within a .d-gl-sidebar content area.
| CSS Var | Output |
|---|---|
var(--header-height) | minmax(6.4rem, min-content); |
var(--content-height) | minmax(64rem, max-content); |
<dt-stack as="header" align="center" justify="center" class="d-p-200 d-w100p d-hmn216 d-of-auto"> <div class="d-d-grid d-gl-sidebar d-g-200 d-w100p d-hmn216 d-bar-400 d-bgc-moderate" style="--sidebar-width: minmax(10rem, 20rem);"> <dt-stack direction="row" align="center" justify="center" class="d-ga-sidebar d-p-200 d-bgc-moderate-opaque d-bar-300">Sidebar</dt-stack> <div class="d-ga-content d-d-grid d-gl-header d-g-200 d-p-200 d-bgc-moderate-opaque d-bar-300" style="--content-height: minmax(24rem, max-content);"> <dt-stack direction="row" align="center" justify="center" class="d-ga-header d-p-200 d-bgc-moderate-opaque d-bar-300">Header</dt-stack> <dt-stack direction="row" align="center" justify="center" class="d-ga-content d-p-200 d-bgc-moderate-opaque d-bar-300">Content</dt-stack> </div> </div> </dt-stack>
Use .d-g-cols{n} to create a multi-column layout.
Class
|
Output
|
|---|---|
| .d-g-cols1 | grid-template-columns: repeat(1, minmax(0, 1fr)) !important; |
| .d-g-cols2 | grid-template-columns: repeat(2, minmax(0, 1fr)) !important; |
| .d-g-cols3 | grid-template-columns: repeat(3, minmax(0, 1fr)) !important; |
| .d-g-cols4 | grid-template-columns: repeat(4, minmax(0, 1fr)) !important; |
| .d-g-cols5 | grid-template-columns: repeat(5, minmax(0, 1fr)) !important; |
| .d-g-cols6 | grid-template-columns: repeat(6, minmax(0, 1fr)) !important; |
| .d-g-cols7 | grid-template-columns: repeat(7, minmax(0, 1fr)) !important; |
| .d-g-cols8 | grid-template-columns: repeat(8, minmax(0, 1fr)) !important; |
| .d-g-cols9 | grid-template-columns: repeat(9, minmax(0, 1fr)) !important; |
| .d-g-cols10 | grid-template-columns: repeat(10, minmax(0, 1fr)) !important; |
| .d-g-cols11 | grid-template-columns: repeat(11, minmax(0, 1fr)) !important; |
| .d-g-cols12 | grid-template-columns: repeat(12, minmax(0, 1fr)) !important; |
<div class="d-d-grid d-g-200 d-g-cols4"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> </div>
Unlike some CSS, CSS grid does not cascade beyond the parent and its direct children (parent-element > *). We can use this to our advantage by being able to nest grids within each other without cascade errors.
<div class="d-d-grid d-g-cols2 d-g-200 d-w100p d-hmn216 d-bar-400 d-bgc-moderate"> <dt-stack direction="row" align="center" justify="center" class="d-p-200 d-bgc-moderate-opaque d-bar-300">1</dt-stack> <div class="d-d-grid d-g-cols2 d-g-200 d-p-200 d-bgc-moderate-opaque d-bar-300"> <dt-stack direction="row" align="center" justify="center" class="d-p-200 d-bgc-moderate-opaque d-bar-300">3</dt-stack> <dt-stack direction="row" align="center" justify="center" class="d-p-200 d-bgc-moderate-opaque d-bar-300">4</dt-stack> </div> </div>
Layouts documentation last updated Friday, September 4, 2026
fix/popover-modal-zindex-scope