@ci-color: #ccc; @text-padding-v: .2rem; @text-padding-h: 1rem; @accent-border-width: 1rem; body { font-family: sans-serif; } a:link, a:visited { color: #555; text-decoration: none; } a:hover, a:active { text-decoration: underline; } .grid { display: grid; grid-template-columns: 20% 70% 10%; grid-template-areas: "header header header" "nav main sidebar" "footer footer footer"; margin: auto; max-width: 900px; border-top: 1px solid #ccc; } nav { grid-area: nav; } main { grid-area: main; } aside { grid-area: sidebar; } header, footer, main, nav, aside { border-bottom: 1px solid #ccc; padding: @text-padding-v @text-padding-h; } header { grid-area: header; display: grid; grid-template-columns: 40% 60%; align-items: center; border-left: @accent-border-width solid #ccc; } .app-title { grid-column: 1; font-size: 1.5rem; } .app-title__hello { font-size: 1rem; margin-left: @text-padding-h; font-weight: normal; font-style: italic; } .header-content { grid-column: 2; } .header-content__link { display: inline-block; padding: @text-padding-v @text-padding-h / 2; margin-right: @accent-border-width; } footer { grid-area: footer; } form { display: grid; grid-template-columns: 30% 70%; grid-auto-flow: row; label, input, select, textarea, .flash { margin-bottom: .7rem; padding: @text-padding-v @text-padding-h / 2; } label { grid-column: 1; } input, select { grid-column: 2; } .flash { grid-column: 1/3; border: 1px solid #ccc; border-left-width: @accent-border-width; padding: .7rem; } }