Parameterize the styling of the page width
authorCarl Worth <cworth@cworth.org>
Sun, 7 Jun 2020 00:14:31 +0000 (17:14 -0700)
committerCarl Worth <cworth@cworth.org>
Sun, 7 Jun 2020 00:14:31 +0000 (17:14 -0700)
Now that I now we can use CSS variables, I can define some top-level
variables to control the page width and then use those for derived
values.

This makes the styling _much_ more maintainable as it's actually
possible to change a single variable and have several related values
change as appopriate.

style.css

index 180462573f3d2b2b5f4bbb3a782a529907b421a8..baf35bf59abe9367432554e01f6ecb7b3fa5ef9f 100644 (file)
--- a/style.css
+++ b/style.css
     --warning-color: #ffa92a;
     --danger-color: #f56257;
     --danger-color-dark: #bc2822;
+
+    /* Page layout */
+    --page-max-width: 720px;
+    --page-max-pad: 50px;
+    --page-max-width-padded: calc(var(--page-max-width) + 2 * var(--page-max-pad));
 }
 
 /*\
@@ -109,18 +114,18 @@ body {
 /* We never let the page content get larger than a large fixed width.
  *
  * And when the screen is wide enough, we can afford some "wasted"
- * space on either side of the page content. This starts at 0 for a
- * 620px wide page up to 50px on either side for a 820px wide page.
+ * space on either side of the page content, (up to --page-max-pad).
  *
- * Note: This 820px width for the page includes the padding so the
- * actual content is only ever as wide as 720px.
+ * Note: This --page-max-width-padded for the page includes the
+ * padding so the actual content is only ever as wide as
+ * --page-max-width.
  *
  * Wider than that and we start to see the background on either side
  * of the page content.
  */
 #page {
     box-sizing: border-box;
-    max-width: 820px;
+    max-width: var(--page-max-width-padded);
     margin-left: auto;
     margin-right: auto;
     padding-top: 0;
@@ -129,17 +134,17 @@ body {
     padding-right: 1em;
 }
 
-@media screen and (min-width: 720px) and (max-width: 820px) {
+@media screen and (min-width: var(--page-max-width)) and (max-width: var(--page-max-width-padded)) {
     #page {
-        padding-left: calc(1em + (100% - 720px)/2);
-        padding-right: calc(1em + (100% - 720px)/2);
+        padding-left: calc(1em + (100% - var(--page-max-width))/2);
+        padding-right: calc(1em + (100% - var(--page-pax-width))/2);
     }
 }
 
-@media screen and (min-width: 820px) {
+@media screen and (min-width: var(--page-pax-width-padded)) {
     #page {
-        padding-left: calc(1em + 50px);
-        padding-right: calc(1em + 50px);
+        padding-left: calc(1em + var(--page-max-pad));
+        padding-right: calc(1em + var(--page-max-pad));
     }
 }