lyrics

lyrics
git clone git://brookjeynes.dev/bjeynes/lyrics.git
Log | Files | Refs

minimal.css (4079B)


      1 /*
      2 BSD Zero Clause License
      3 
      4 Copyright (c) 2026 Brook Jeynes <me@brookjeynes.dev>
      5 
      6 Permission to use, copy, modify, and/or distribute this software for any
      7 purpose with or without fee is hereby granted.
      8 
      9 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
     10 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
     11 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
     12 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
     13 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
     14 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     15 PERFORMANCE OF THIS SOFTWARE.
     16 */
     17 
     18 *,
     19 *::before,
     20 *::after {
     21 	box-sizing: border-box;
     22 }
     23 
     24 :root {
     25 	--primary: #4070a0;
     26 	--text: #1a1a1a;
     27 	--secondary: #808080;
     28 	--off-white: #f7f7f7;
     29 	--light-gray: #e8e8e8;
     30 	--dark-gray: #c0c0c0;
     31 	--red: #a05050;
     32 	--green: #5a9060;
     33 }
     34 
     35 body {
     36 	font-family: 'Georgia', serif;
     37 	font-size: 16px;
     38 	color: var(--text);
     39 	margin: 0;
     40 	padding: 0.5rem 1.5rem;
     41 	max-width: 900px;
     42 	margin-left: auto;
     43 	margin-right: auto;
     44 }
     45 
     46 h1 {
     47 	font-size: 32px;
     48 	font-weight: normal;
     49 	line-height: 40px;
     50 	margin-top: 40px;
     51 }
     52 
     53 h2 {
     54 	font-size: 16px;
     55 	font-weight: bold;
     56 	margin-top: 24px;
     57 }
     58 
     59 a,
     60 a:visited {
     61 	color: inherit;
     62 	text-decoration-thickness: 1px;
     63 	text-underline-offset: 3px;
     64 
     65 	&:hover {
     66 		color: var(--primary);
     67 	}
     68 }
     69 
     70 footer[role="contentinfo"] {
     71 	margin: 2rem 0;
     72 	font-size: 75%;
     73 	color: var(--secondary);
     74 }
     75 
     76 button {
     77 	font: inherit;
     78 	cursor: pointer;
     79 	background: none;
     80 	border: none;
     81 	padding: 0;
     82 	color: inherit;
     83 
     84 	&:disabled {
     85 		opacity: 0.35;
     86 		cursor: default;
     87 	}
     88 
     89 	&:hover:not(:disabled) {
     90 		text-decoration: underline;
     91 		text-decoration-thickness: 1px;
     92 		text-underline-offset: 3px;
     93 	}
     94 
     95 	&:focus-visible {
     96 		outline: 2px solid var(--primary);
     97 		outline-offset: 2px;
     98 	}
     99 
    100 	&.-primary {
    101 		font-weight: bold;
    102 	}
    103 
    104 	&.-secondary {
    105 		color: var(--secondary);
    106 	}
    107 }
    108 
    109 .section-label {
    110 	font-size: 14px;
    111 	font-weight: bold;
    112 
    113 	&.-muted {
    114 		color: var(--secondary);
    115 	}
    116 }
    117 
    118 .alert-box {
    119 	font-size: 14px;
    120 
    121 	&.-error {
    122 		color: var(--red);
    123 	}
    124 
    125 	&.-success {
    126 		color: var(--green);
    127 	}
    128 
    129 	&.-info {
    130 		color: var(--primary);
    131 	}
    132 }
    133 
    134 select {
    135 	font: inherit;
    136 	border: none;
    137 	border-bottom: 1px solid var(--dark-gray);
    138 	background: none;
    139 	padding: 2px 0;
    140 	cursor: pointer;
    141 
    142 	&:focus {
    143 		outline: none;
    144 		border-bottom-color: var(--primary);
    145 	}
    146 
    147 	&:focus-visible {
    148 		outline: 2px solid var(--primary);
    149 		outline-offset: 2px;
    150 		border-bottom-color: transparent;
    151 	}
    152 }
    153 
    154 input {
    155 
    156 	&[type="radio"],
    157 	&[type="checkbox"] {
    158 		cursor: pointer;
    159 	}
    160 
    161 	&:focus-visible {
    162 		outline: 2px solid var(--primary);
    163 		outline-offset: 2px;
    164 	}
    165 
    166 	&[type="text"],
    167 	&[type="email"],
    168 	&[type="password"],
    169 	&[type="search"],
    170 	&[type="tel"],
    171 	&[type="url"],
    172 	&[type="number"] {
    173 		font: inherit;
    174 		border: none;
    175 		border-bottom: 1px solid var(--dark-gray);
    176 		background: none;
    177 		padding: 2px 0;
    178 
    179 		&:focus {
    180 			outline: none;
    181 			border-bottom-color: var(--primary);
    182 		}
    183 	}
    184 }
    185 
    186 fieldset {
    187 	border: none;
    188 	padding: 0;
    189 	margin: 12px 0;
    190 }
    191 
    192 legend {
    193 	font-weight: bold;
    194 	padding: 0;
    195 	margin-bottom: 8px;
    196 }
    197 
    198 hr {
    199 	margin: 20px 0;
    200 	border: none;
    201 	border-top: 1px solid var(--light-gray);
    202 }
    203 
    204 label {
    205 	& input {
    206 		margin: 8px 0;
    207 	}
    208 }
    209 
    210 header[role="banner"] {
    211 	display: flex;
    212 	align-items: center;
    213 	justify-content: space-between;
    214 	gap: 15px;
    215 }
    216 
    217 nav {
    218 
    219 	ol,
    220 	ul {
    221 		display: flex;
    222 		gap: 15px;
    223 		list-style: none;
    224 	}
    225 
    226 	a {
    227 		text-decoration: none;
    228 	}
    229 
    230 	a[aria-selected="true"] {
    231 		text-decoration: underline;
    232 		text-decoration-thickness: 1px;
    233 		text-underline-offset: 3px;
    234 	}
    235 }
    236 
    237 [role="tablist"] {
    238 	display: flex;
    239 	gap: 15px;
    240 
    241 	[role="tab"][aria-selected="true"] {
    242 		text-decoration: underline;
    243 		text-decoration-thickness: 1px;
    244 		text-underline-offset: 3px;
    245 	}
    246 }
    247 
    248 table {
    249 	border-collapse: separate;
    250 	border: 2px solid var(--dark-gray);
    251 	text-align: left;
    252 }
    253 
    254 thead {
    255 	background-color: var(--off-white);
    256 
    257 	th {
    258 		border: 1px solid var(--dark-gray);
    259 	}
    260 }
    261 
    262 th,
    263 td {
    264 	padding: 0.1rem 0.5rem;
    265 }
    266 
    267 tbody>tr:nth-of-type(even) {
    268 	background-color: var(--light-gray);
    269 }