github.com/shoshinnikita/budget-manager@v0.7.1-0.20220131195411-8c46ff1c6778/static/css/common.css (about) 1 /* | Variables */ 2 3 :root { 4 --base-color: #ffffff; 5 --background-color: #ffffff; 6 7 --font-color: #212121; 8 --font-color--disabled: #21212140; 9 --font-color--faded: #999999; 10 11 --border-color: #f4f4f4; 12 --border-color--accent: #d2d2d2; 13 14 --hover-color: #fafafa; 15 16 --icon-color: #888888; 17 --icon-color--hover: #666666; 18 19 --scrollbar-track-color: var(--background-color); 20 --scrollbar-thumb-color: #e1e1e1; 21 } 22 23 [data-theme="dark"] { 24 --base-color: #0d1117; 25 --background-color: #10141a; /* Base Color + rgba(255, 255, 255, 0.01) */ 26 27 --font-color: #ffffffa0; 28 --font-color--disabled: #ffffff40; 29 --font-color--faded: #666666; 30 31 --border-color: #242424; 32 --border-color--accent: #555555; 33 34 --hover-color: #161a20; /* Base Color + rgba(255, 255, 255, 0.04) */ 35 36 --icon-color--hover: #aaaaaa; 37 38 --scrollbar-thumb-color: #414141; 39 } 40 41 /* | Common */ 42 43 * { 44 box-sizing: border-box; 45 color: var(--font-color); 46 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, 47 Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 48 font-weight: normal; 49 } 50 51 /* | Layout 52 53 All pages should stick to this layout: 54 55 body 56 #app 57 #header 58 #content 59 #footer 60 61 */ 62 63 body { 64 background-color: var(--base-color); 65 height: 100vh; 66 margin: 0; 67 padding: 0px; 68 width: 100vw; 69 } 70 71 #app { 72 display: grid; 73 grid-template-rows: 40px calc(100% - 70px - 20px) 30px; 74 height: 100%; 75 margin: auto; 76 max-width: 2000px; 77 min-width: 900px; 78 padding: 10px 20px; 79 row-gap: 10px; 80 width: 100%; 81 } 82 83 #header { 84 border-bottom: 1px solid var(--border-color--accent); 85 box-sizing: content-box; 86 font-size: 20px; 87 height: 35px; 88 line-height: 35px; 89 padding-bottom: 5px; 90 width: 100%; 91 } 92 93 .header__path__element::after { 94 content: ' /'; 95 } 96 97 .header__path__element:last-child::after { 98 content: ''; 99 } 100 101 @media (max-width: 1350px) { 102 #app { 103 padding: 0 10px; 104 } 105 106 #header { 107 font-size: 18px; 108 } 109 } 110 111 /* | Card */ 112 113 .card { 114 background-color: var(--background-color); 115 box-shadow: 0 5px 15px rgba(0, 0, 0, .08); 116 } 117 118 [data-theme="dark"] .card { 119 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.8); 120 } 121 122 .card__title { 123 background-color: var(--background-color); 124 border-bottom: 1px solid var(--border-color--accent); 125 font-size: 1.3rem; 126 padding: 5px 10px; 127 position: sticky; 128 top: 0; 129 z-index: 1; 130 } 131 132 .card__body { 133 padding: 10px 5px 20px; 134 } 135 136 .card--hover { 137 transition-duration: 0.175s; 138 transition-property: padding-left; 139 transition-timing-function: ease-in-out; 140 } 141 142 .card--hover:focus, 143 .card--hover:hover { 144 background-color: var(--hover-color); 145 padding-left: 7%; 146 } 147 148 a:link.card--hover:focus, 149 a:link.card--hover:hover { 150 text-decoration: none; 151 } 152 153 /* | Icons */ 154 155 .feather-icon > svg { 156 fill: none; 157 height: 18px; 158 stroke: var(--icon-color); 159 stroke-linecap: round; 160 stroke-linejoin: round; 161 stroke-width: 2; 162 width: 18px; 163 } 164 165 a.feather-icon, 166 button.feather-icon { 167 display: block; 168 padding: 3px; 169 background-color: #00000000; 170 } 171 172 a.feather-icon:not(.disabled), 173 button.feather-icon:not(.disabled) { 174 cursor: pointer; 175 } 176 177 a.feather-icon > svg, 178 button.feather-icon > svg { 179 opacity: 0.64; 180 } 181 182 a.feather-icon:hover:not(.disabled) > svg, 183 button.feather-icon:hover:not(.disabled) > svg, 184 a.feather-icon:focus:not(.disabled) > svg, 185 button.feather-icon:focus:not(.disabled) > svg { 186 opacity: 1; 187 stroke: var(--icon-color--hover); 188 } 189 190 /* | Inputs */ 191 192 a:focus, 193 input:not([type="checkbox"]):focus, 194 select:focus, 195 textarea:focus, 196 button:focus { 197 outline: none; 198 } 199 200 button { 201 background-color: var(--background-color); 202 border: none; 203 padding: 0; 204 } 205 206 input { 207 background-color: var(--background-color); 208 font-size: 15px; 209 } 210 211 input[type="text"], 212 input[type="date"] { 213 border: none; 214 border-bottom: 1px solid var(--border-color); 215 width: 100%; 216 } 217 218 input[type="text"]:focus, 219 input[type="date"]:focus { 220 border-color: var(--border-color--accent); 221 } 222 223 input[type="button"], 224 input[type="submit"] { 225 border: 1px solid var(--border-color--accent); 226 cursor: pointer; 227 padding: 3px; 228 width: 80px; 229 } 230 231 input[type="button"]:hover, 232 input[type="submit"]:hover, 233 input[type="button"]:focus, 234 input[type="submit"]:focus { 235 background-color: var(--hover-color); 236 } 237 238 select { 239 appearance: none; 240 -moz-appearance: none; 241 -webkit-appearance: none; 242 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23212121' stroke-width='2' stroke-linecap='round'><polyline points='19 12 12 19 5 12'></polyline></svg>"); 243 background-position: right; 244 background-repeat: no-repeat; 245 background-color: var(--background-color); 246 border: none; 247 border-bottom: 1px solid var(--border-color); 248 cursor: pointer; 249 padding: 2px 16px 2px 0; 250 scrollbar-width: unset; 251 } 252 253 [data-theme="dark"] select { 254 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffffa0' stroke-width='2' stroke-linecap='round'><polyline points='19 12 12 19 5 12'></polyline></svg>"); 255 } 256 257 select:focus { 258 border-color: var(--border-color--accent); 259 } 260 261 select.reverse { 262 background-position: left; 263 padding-right: 0; 264 padding-left: 16px; 265 text-align-last: right; 266 } 267 268 [data-theme="dark"] ::-webkit-calendar-picker-indicator { 269 filter: invert(1); 270 } 271 272 /* | Links */ 273 274 a:link, 275 a:visited { 276 text-decoration: none; 277 color: #039be5; 278 } 279 280 a:link:focus, 281 a:link:hover { 282 text-decoration: underline; 283 } 284 285 /* | Money */ 286 287 .money--gain { 288 color: green; 289 } 290 291 .money--gain::before { 292 content: "+"; 293 } 294 295 .money--lose { 296 color: crimson; 297 } 298 299 /* | Scrollbar */ 300 301 /* || Firefox */ 302 303 * { 304 scrollbar-width: thin; 305 } 306 307 /* || WebKit */ 308 309 ::-webkit-scrollbar { 310 width: 7px; 311 } 312 313 ::-webkit-scrollbar-track { 314 background-color: var(--scrollbar-track-color); 315 } 316 317 ::-webkit-scrollbar-thumb { 318 background-color: var(--scrollbar-thumb-color); 319 } 320 321 /* | Table */ 322 323 table { 324 border-collapse: collapse; 325 margin-bottom: 1em; 326 width: 100%; 327 } 328 329 table th, 330 td { 331 border-bottom: 1px solid var(--border-color); 332 padding: 5px; 333 text-align: left; 334 word-break: break-word; 335 } 336 337 table th { 338 color: var(--font-color--faded); 339 } 340 341 table tbody tr:hover { 342 background-color: var(--hover-color); 343 } 344 345 table tr:last-child td { 346 border-bottom: none; 347 } 348 349 /* | Other */ 350 351 .noselect { 352 cursor: default; 353 user-select: none; 354 } 355 356 .blurred { 357 filter: blur(2px); 358 }