@ci-color: #ccc; @error-color: #e00; @accent-color: #efefef; @border-stack: 1px solid @ci-color; @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; } h1 { font-size: 1.5rem; } h2 { font-size: 1.3rem; } .thin-border { border: @border-stack; } .grid { display: grid; grid-template-columns: 20% 70% 10%; grid-template-areas: "header header header" "nav main sidebar" "footer footer footer"; margin: auto; min-width: 900px; width: 80%; border-top: ; nav { grid-area: nav; } main { grid-area: main; } aside { grid-area: sidebar; } footer { grid-area: footer; } header, footer, main, nav, aside { border-bottom: @border-stack; padding: @text-padding-v @text-padding-h; } header { grid-area: header; display: grid; grid-template-columns: 40% 60%; align-items: center; border-top: @border-stack; border-left: @accent-border-width solid @ci-color; .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; } } } 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--error { .flash; border-color: @error-color; .flash__heading--error { margin: 0; background-color: @error-color; color: white; margin-top: -.7rem; margin-left: -.7rem; margin-right: -.7rem; } } .flash { grid-column: 1 e("/") 3; .thin-border; border-left-width: @accent-border-width; padding: .7rem; .flash__field { font-style: italic; } .flash__pred { font-family: monospace; } } } table { width: 100%; border-collapse: collapse; border-spacing: 0; margin-top: 1rem; margin-bottom: 1rem; td, th { border-bottom: @border-stack; padding: @text-padding-v * 2 @text-padding-h / 2h; } thead { th { padding: @text-padding-v @text-padding-h; border-bottom: @accent-border-width / 5 solid @ci-color; } } tbody { tr:hover { background-color: @accent-color; } } }