From 4af1e7b745d7d397e2aa33db798ac876ecac85a0 Mon Sep 17 00:00:00 2001 From: Andrew Conlin Date: Sun, 18 Aug 2024 10:17:49 +0100 Subject: [PATCH] [2024-08-16] Add concrete.css --- static/concrete.css | 416 ++++++++++++++++++++++++++++++++++++++++++++ static/style.css | 68 +++----- 2 files changed, 444 insertions(+), 40 deletions(-) create mode 100644 static/concrete.css diff --git a/static/concrete.css b/static/concrete.css new file mode 100644 index 0000000..8052af6 --- /dev/null +++ b/static/concrete.css @@ -0,0 +1,416 @@ +/*! concrete.css v3.0.0 | MIT License | github.com/louismerlin/concrete.css */ + +/** + * Set universal color variables + */ + +:root { + --fg: #111; + --bg: #fff; +} + +/** + * Invert the colors if the user has dark mode activated. + */ + +@media (prefers-color-scheme: dark) { + :root { + --fg: #fff; + --bg: #111; + } +} + +/** + * 1. Modify the base font-size to 1.25rem, to make everything larger. + * 2. Set box-sizing globally to handle padding and border widths. + */ + +html { + font-size: 1.25rem; /* 1 */ + box-sizing: border-box; /* 2 */ +} + +/** + * 1. Continue the global box-sizing modification. + * 2. Set the underline size for all elements. + */ + +*, ::after, ::before { + box-sizing: inherit; /* 1 */ + text-decoration-thickness: .1rem; /* 2 */ +} + +/** + * 1. Remove body margin. + * 2. Set the text and background color to white and black by default. + * 3. Set the font-family to Helvetica, or equivalent. + */ + +body { + margin: 0; /* 1 */ + background: var(--bg); /* 2 */ + color: var(--fg); /* 2 */ + font-family: Helvetica, Arial, sans-serif; /* 3 */ +} + +/** + * Set the link color to black + */ + +a { + color: var(--fg); +} + +/** + * 1. Stretch figure to full width of the section. + */ +figure { + margin: 0; /* 1 */ +} + +/** + * 1. Right-align text + * 2. Make figure caption a little smaller than normal text. + * 3. Add border at bottom. + * 4. Add spacing after the element. + */ +figcaption { + text-align: right; /* 1 */ + font-size: 0.8em; /* 2 */ + border-bottom: .2rem solid var(--fg); /* 3 */ + padding-bottom: .2rem; /* 4 */ +} + +/** + * 1. Set the max width of images to 100%, so that they don't overflow. + * 2. Set the height of images relative to their width. + */ + +img { + max-width: 100%; /* 1 */ + height: auto; /* 2 */ +} + +/** + * Add some padding around the main sections. + */ + +main section + section { + padding: 2rem 0; +} + +/** + * 1. Center the root main/header/footer elements horizontally. + * 2. Set the width of the elements to 640px, with padding for mobile screens. + */ + +body > header, +body > main, +body > footer { + margin: auto; /* 1 */ + max-width: 660px; /* 2 */ + padding-left: 10px; /* 2 */ + padding-right: 10px; /* 2 */ + width: 100%; /* 2 */ +} + +/** + * 1. Add some padding around the main header. + * 2. Increase the size of text in the main header. + */ + +body > header { + padding-top: 8rem; /* 1 */ + padding-bottom: 8rem; /* 1 */ + font-size: 1.2em; /* 2 */ +} + +h1 { font-size: 2em; } +h2 { font-size: 1.5em; } +h3 { font-size: 1.17em; } +h4 { font-size: 1.00em; } +h5 { font-size: 0.83em; } +h6 { font-size: 0.67em; } + +/** + * Center the text in the footer. + */ + +footer { + text-align: center; +} + +/** + * 1. Change the style of the button. + * 2. Set the color and border of the button. + * 3. Add the pointer cursor when hovering a button. + */ + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + display: inline-block; /* 1 */ + vertical-align: middle; /* 1 */ + padding: .2rem .5rem; /* 1 */ + font-size: 1rem; /* 1 */ + font-weight: normal; /* 1 */ + margin-bottom: .5rem; /* 1 */ + background: var(--bg); /* 2 */ + color: var(--fg); /* 2 */ + border: .1rem solid var(--fg); /* 2 */ + border-radius: 0; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * 1. Set the border of a disabled button to be dashed. + * 2. Add the not-allowed cursor when hovering a disabled button. + */ + +button:disabled, +input[type="button"]:disabled, +input[type="reset"]:disabled, +input[type="submit"]:disabled{ + border-style: dashed; /* 1 */ + cursor: not-allowed; /* 2 */ +} + +/** + * Set the list bullet to square. + */ + +ul { + list-style: square; +} + +/** + * Set a margin around the navigation bar + */ +nav { + margin: 2rem 0; +} + +/** + * 1. Remove padding around the navigation bar's inner unordered list + * 2. Remove list style for the navigation bar's inner unordered list + */ +nav ul { + padding: 0; /* 1 */ + list-style: none; /* 2 */ +} + +/** + * 1. Set margins around the navigation bar's inner unordered list items + * 2. Make navigation bar unordered list elements render horizontally + */ +nav ul li { + margin: 0 .2rem; /* 1 */ + display: inline-block; /* 2 */ +} + +/** + * Set the border around a fieldset. + */ + +fieldset { + border: .1rem solid var(--fg); +} + +/** + * 1. Modify the display of labels and legends. + * 2. Add a margin underneath. + */ + +label, legend { + display: block; /* 1 */ + font-weight: bold; /* 1 */ + margin-bottom: .4rem; /* 2 */ +} + +/** + * 1. Change the appearance of the text input. + * 2. Set the color and border of the text input. + */ + +input[type="email"], +input[type="number"], +input[type="password"], +input[type="search"], +input[type="tel"], +input[type="text"], +input[type="url"], +textarea, +select { + -webkit-appearance: none; /* 1 */ + -moz-appearance: none; /* 1 */ + appearance: none; /* 1 */ + box-shadow: none; /* 1 */ + box-sizing: inherit; /* 1 */ + padding: .2rem .5rem; /* 1 */ + width: 100%; /* 1 */ + font-size: 1rem; /* 1 */ + color: var(--fg); /* 2 */ + background-color: var(--bg); /* 2 */ + border: .1rem solid var(--fg); /* 2 */ + border-radius: 0; /* 2 */ + font-family: Helvetica, Arial, sans-serif; /* 3 */ +} + +/** + * Set margin for form elements. + */ + +fieldset, input, select, textarea { + margin: 0 0 .8rem 0; +} + +/** + * 1. Set the font color for the placeholder in inputs. + * 2. Set font-style to italic for the placeholder in inputs. + */ + +input::placeholder, +textarea::placeholder { + color: var(--fg); /* 1 */ + font-style: italic; /* 2 */ + opacity: 1; +} + +/** + * 1. Expand width to 100% for the table element. + * 2. Remove the distance between the borders of adjacent table cells. + */ + +table { + width: 100%; /* 1 */ + border-spacing: 0; /* 2 */ +} + +/** + * Add padding around table cells. + */ + +td, th { + padding: .4rem; +} + +/** + * Remove left padding for first cell in a row. + */ + +td:first-child, th:first-child { + padding-left: 0; +} + +/** + * Remove right padding for last cell in a row. + */ + +td:last-child, th:last-child { + padding-right: 0; +} + +/** + * 1. Add a border under the table header. + * 2. Align the text to the left in the table header. + */ + +th { + border-bottom: .1rem solid var(--fg); /* 1 */ + text-align: left; /* 2 */ +} + +/** + * Add a thiner border under table rows. + */ + +td { + border-bottom: .05rem solid var(--fg); +} + +/** + * 1. Change the margins and padding. + * 2. Add a border on the left of these elements. + * 3. Set the y overflow to hidden to hide the navigation bar. + */ + +blockquote, pre { + margin-left: 0; /* 1 */ + margin-right: 0; /* 1 */ + padding: .5rem .8rem; /* 1 */ + border-left: .1rem solid var(--fg); /* 2 */ + overflow-y: hidden; /* 3 */ +} + +/** + * 1. Set the rest of the border of the preformatted element to dotted. + * 2. Re-set the left border style. + */ + +pre { + border: .05rem dotted var(--fg); /* 1 */ + border-left: .1rem solid var(--fg); /* 2 */ +} + +/** + * 1. Modify the display of the code block. + * 2. Reduce the font size of the code block. + */ + +pre > code { + white-space: pre; /* 1 */ + display: block; /* 1 */ + font-size: .8rem; /* 2 */ +} + +/** + * 1. Modify the display of the progress bar in all browsers. + * 2. Set the colors and border of the progress bar. + */ + +progress { + -moz-appearance: none; /* 1 */ + -webkit-appearance: none; /* 1 */ + display: block; /* 1 */ + height: .5rem; /* 1 */ + overflow: hidden; /* 1 */ + padding: 0; /* 1 */ + width: 100%; /* 1 */ + background: var(--bg); /* 2 */ + color: var(--fg); /* 2 */ + border: .1rem solid var(--fg); /* 2 */ + border-radius: 0; /* 2 */ +} + +/** + * Set the background color of the webkit progress bar. + */ + +progress::-webkit-progress-bar { + background-color: var(--bg); +} + +/** + * Set the color of the webkit progress bar. + */ + +progress::-webkit-progress-value { + background-color: var(--fg); +} + +/** + * Set the color of the mozilla progress bar. + */ + +progress::-moz-progress-bar { + background-color: var(--fg); +} + +/** + * Set the border for the horizontal rule. + */ + +hr { + border: .05rem solid var(--fg); +} diff --git a/static/style.css b/static/style.css index 3d19cc8..5a693d8 100644 --- a/static/style.css +++ b/static/style.css @@ -1,47 +1,9 @@ +@import "concrete.css"; + body { - font-family: sans-serif; text-align: center; } -span.red { - color: white; - background: red; - border-radius: 5px; - padding: 5px; -} - -span.orange { - color: white; - background: orange; - border-radius: 5px; - padding: 5px; -} - -span.green { - color: white; - background: green; - border-radius: 5px; - padding: 5px; -} - -progress { - border-radius: 5px; - width: 80%; - height: 22px; -} -progress::-webkit-progress-bar { - background-color: green; - border-radius: 5px; -} -progress::-webkit-progress-value { - background-color: green; - border-radius: 5px; -} -progress::-moz-progress-bar { - background-color: green; - border-radius: 5px; -} - div.content { width: 50%; height: auto; @@ -75,3 +37,29 @@ div.content { position: relative; } } + +progress { + width: 75%; + margin-left: auto; + margin-right: auto; +} + +div.left { + border: 2px solid black; + width: fit-content; + height: fit-content; + padding: 5px; + position: relative; + margin-left: 0; + margin-right: auto; +} + +div.right { + border: 2px solid black; + width: fit-content; + height: fit-content; + padding: 5px; + position: relative; + margin-left: auto; + margin-right: 0; +}