html { height: 100%; /* TODO * get the default values from the code. */ --editmode: 1.0; --event-font-size: 8pt; --gray: #757575; --btn-height: 0.5ex; } html, body { height: 100%; margin: 0; } .root { display: grid; margin: 0; max-width: 100%; height: 100%; grid-template-columns: auto auto 20em; grid-template-rows: auto; grid-template-areas: "main main nav" "main main cal" "main main details" "main main events" "footer footer events"; } @media (max-aspect-ratio: 3/4) { .root { grid-template-areas: "main main" "nav events" "cal events" "details events" ". events" "footer events"; grid-template-rows: 70% auto; grid-template-columns: 50% auto; } } .hidelink { color: inherit; text-decoration: none; } .root main { min-width: 0; /* for wide */ min-height: 0; /* for tall */ /* apparently required if one wants to have multiple items within main, without it overflowing */ display: flex; flex-direction: column; } /* Page footer ---------------------------------------- */ .root footer { margin: 0.5em; color: ray; font-size: 8pt; display: flex; justify-content: space-between; flex-direction: row; } @media (max-aspect-ratio: 3/4) { .root footer { flex-direction: column; } } .root footer span { margin: 0 1em; white-space: nowrap; } /* Change View ---------------------------------------- "Buttons" for changing between weekly and monthly layout */ .calnav { display: flex; flex-direction: column; padding-left: 2em; padding-right: 2em; } .change-view { display: flex; flex-direction: row; justify-content: space-between; padding-top: 1ex; padding-bottom: 1ex; } .jump-to > form { display: flex; } .jump-to input { flex-grow: 2; margin-right: 1em; } .jump-to button, .jump-to a { /* Same as height, figure out way to force this */ width: 2.5em; } /* button -------------------------------------------------- */ .btn { padding: 0; /* if a */ text-decoration: none; /* if button */ border: none; background-color: inherit; } .btn > div { padding: 0.5em; background-color: #3399ff; color: white; box-sizing: border-box; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; /* shouldn't be needed, but otherwise wont align with a text input inside a shared flex-container. It however seems to make and