:root { /* Make it easy for stuff to match the width of */ --width-body-margins: 30%; /********** * Colors **********/ --color-twitter-blue: hsl(204, 78%, 49%); --color-twitter-blue-light: hsl(204, 87%, 73%); --color-twitter-blue-extra-light: hsl(204, 95%, 85%); --color-twitter-off-white: hsl(180, 14%, 97%); --color-twitter-off-white-dark: hsl(180, 17%, 88%); --color-outline-gray: hsl(204, 0%, 86%); --color-twitter-text-gray: hsl(204, 15%, 38%); --color-twitter-danger-red: hsl(356, 91%, 54%); --color-twitter-danger-red2: hsl(356, 78%, 49%); --color-twitter-danger-red2-light: hsl(356, 87%, 73%); --color-twitter-danger-red2-hover: hsl(356, 75%, 80%); --color-space-purple: hsl(246, 96%, 80%); --color-space-purple-outline: hsl(246, 97%, 65%); } /*************************************************************************************************** * * Base styles * ----------- * * Page global / default styles. Should only use tag selectors or attribute selectors. No ID or * class selectors; those are purpose-specific, i.e., non-default. * ***************************************************************************************************/ html { /* * Force scrollbar, even when it fits on 1 page. Prevents viewport from resizing -> flickering * and stuff moving between page loads */ overflow-y: scroll; } body { /* So that toasts can be positioned relative to `body` (rather than `html`). * This is useful because it wil then use the `body`'s width (i.e., accounting for the big fat margins). */ position: relative; margin: 0 var(--width-body-margins); min-height: 100vh; border-color: var(--color-twitter-off-white-dark); border-right-style: solid; border-left-style: solid; border-width: 1px; font-family: "Titillium Web"; } input, select { font-family: inherit; font-size: 1em; padding: 0.2em 0.6em; box-sizing: border-box; border-radius: 0.5em; } input[type="submit"] { background-color: var(--color-twitter-blue-light); width: 10em; border-radius: 1em; font-size: 1em; cursor: pointer; } a { text-decoration: none; color: inherit; cursor: pointer; } ul { list-style: none; } h1 { margin: 0.5em 0; text-align: center; } h3 { margin: 0.5em 0; } /*************************************************************************************************** * * Utility styles * -------------- * * Generic or reusable styles. Should use only class selectors. Should *not* actually be modules * (anything application specific). * ***************************************************************************************************/ .row { display: flex; flex-direction: row; align-items: center; } .row--spread { justify-content: space-between; } /* A list of items separated by interpuncts */ .inline-dotted-list { margin: 0; & > * { display: inline; } & > *:after { content: " ⋅"; } & > *:last-child:after { content: ""; } } .rounded-gray-outline { outline-color: lightgray; outline-style: solid; outline-width: 1px; overflow: hidden; border-radius: 1.5em; } .circle-outline { display: flex; border-radius: 50%; outline: 1px solid #777; margin: 0 0.4em; font-size: 0.8em; padding: 0.2em; box-sizing: border-box; } .button { display: flex; /* Prevent from having extra space at the bottom, looking weird*/ padding: 0.5em; margin: 0.2em; border-radius: 100em; /* any large amount, just don't use % because then it makes an ellipse */ cursor: pointer; &:hover { background-color: var(--color-twitter-blue-light); } &:active { transform: translate(0.1em, 0.1em); background-color: var(--color-twitter-blue); } &.button--danger { background-color: var(--color-twitter-danger-red2); &:hover { background-color: var(--color-twitter-danger-red2-light); } &:active { background-color: var(--color-twitter-danger-red2); } } } .labelled-icon { display: flex; flex-direction: row; align-items: center; & label { padding: 0 0.3em; white-space: nowrap; cursor: unset; /*