git-preview @ main

static git web frontend but with images and html previews + code truncation

static/style.css

  1:root {
  2  --white: #fff;
  3  --light: #f4f4f4;
  4  --cyan: #509c93;
  5  --light-gray: #eee;
  6  --medium-gray: #ddd;
  7  --gray: #6a6a6a;
  8  --dark: #444;
  9  --darker: #222;
 10
 11  --sans-font: -apple-system, BlinkMacSystemFont, "Inter", "Roboto", "Segoe UI", sans-serif;
 12  --display-font: -apple-system, BlinkMacSystemFont, "Inter", "Roboto", "Segoe UI", sans-serif;
 13  --mono-font: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', 'Roboto Mono', Menlo, Consolas, monospace;
 14}
 15
 16@media (prefers-color-scheme: dark) {
 17  :root {
 18    color-scheme: dark light;
 19    --light: #181818;
 20    --cyan: #76c7c0;
 21    --light-gray: #333;
 22    --medium-gray: #444;
 23    --gray: #aaa;
 24    --dark: #ddd;
 25    --darker: #f4f4f4;
 26    --white: #000;
 27  }
 28}
 29
 30html {
 31  background: var(--white);
 32  -webkit-text-size-adjust: none;
 33  font-family: var(--sans-font);
 34  font-weight: 380;
 35}
 36
 37pre {
 38  font-family: var(--mono-font);
 39}
 40
 41::selection {
 42  background: var(--medium-gray);
 43  opacity: 0.3;
 44}
 45
 46* {
 47  box-sizing: border-box;
 48  padding: 0;
 49  margin: 0;
 50}
 51
 52body {
 53  max-width: 1000px;
 54  padding: 0 13px;
 55  margin: 40px auto;
 56}
 57
 58main, footer {
 59  font-size: 1rem;
 60  padding: 0;
 61  line-height: 160%;
 62}
 63
 64header h1, h2, h3 {
 65  font-family: var(--display-font);
 66}
 67
 68h2 {
 69  font-weight: 400;
 70}
 71
 72strong {
 73  font-weight: 500;
 74}
 75
 76main h1 {
 77  padding: 10px 0 10px 0;
 78}
 79
 80main h2 {
 81  font-size: 18px;
 82}
 83
 84main h2, h3 {
 85  padding: 20px 0 15px 0;
 86}
 87
 88nav {
 89  padding: 0.4rem 0 1.5rem 0;
 90}
 91
 92nav ul {
 93  padding: 0;
 94  margin: 0;
 95  list-style: none;
 96  padding-bottom: 20px;
 97}
 98
 99nav ul li {
100  padding-right: 10px;
101  display: inline-block;
102}
103
104a {
105  margin: 0;
106  padding: 0;
107  box-sizing: border-box;
108  text-decoration: none;
109  word-wrap: break-word;
110}
111
112a {
113  color: var(--darker);
114  border-bottom: 1.5px solid var(--medium-gray);
115}
116
117a:hover {
118  border-bottom: 1.5px solid var(--gray);
119}
120
121.index {
122  padding-top: 2em;
123  display: grid;
124  grid-template-columns: 6em 1fr minmax(0, 7em);
125  grid-row-gap: 0.5em;
126  min-width: 0;
127}
128
129.clone-url {
130  padding-top: 2rem;
131}
132
133.clone-url pre {
134  color: var(--dark);
135  white-space: pre-wrap;
136}
137
138.desc {
139  font-weight: normal;
140  color: var(--gray);
141  font-style: italic;
142}
143
144.tree {
145  display: grid;
146  grid-template-columns: 10ch auto 1fr;
147  grid-row-gap: 0.5em;
148  grid-column-gap: 1em;
149  min-width: 0;
150}
151
152.log {
153  display: grid;
154  grid-template-columns: 20rem minmax(0, 1fr);
155  grid-row-gap: 0.8em;
156  grid-column-gap: 8rem;
157  margin-bottom: 2em;
158  padding-bottom: 1em;
159  border-bottom: 1.5px solid var(--medium-gray);
160}
161
162.log pre {
163  white-space: pre-wrap;
164}
165
166.mode, .size {
167  font-family: var(--mono-font);
168}
169.size {
170  text-align: right;
171}
172
173.readme pre {
174  white-space: pre-wrap;
175  overflow-x: auto;
176}
177
178.readme {
179  background: var(--light-gray);
180  padding: 0.5rem;
181}
182
183.readme ul {
184  padding: revert;
185}
186
187.readme img {
188  max-width: 100%;
189}
190
191.diff {
192  margin: 1rem 0 1rem 0;
193  padding: 1rem 0 1rem 0;
194  border-bottom: 1.5px solid var(--medium-gray);
195}
196
197.diff pre {
198  overflow: scroll;
199}
200
201.diff-stat {
202  padding: 1rem 0 1rem 0;
203}
204
205.commit-hash, .commit-email {
206  font-family: var(--mono-font);
207}
208
209.commit-email:before {
210  content: '<';
211}
212
213.commit-email:after {
214  content: '>';
215}
216
217.commit {
218  margin-bottom: 1rem;
219}
220
221.commit pre {
222  padding-bottom: 1rem;
223  white-space: pre-wrap;
224}
225
226.diff-stat ul li {
227  list-style: none;
228  padding-left: 0.5em;
229}
230
231.diff-add {
232  color: green;
233}
234
235.diff-del {
236  color: red;
237}
238
239.diff-noop {
240  color: var(--gray);
241}
242
243.ref {
244  font-family: var(--sans-font);
245  font-size: 14px;
246  color: var(--gray);
247  display: inline-block;
248  padding-top: 0.7em;
249}
250
251.line-numbers {
252  white-space: pre-line;
253  -moz-user-select: -moz-none;
254  -khtml-user-select: none;
255  -webkit-user-select: none;
256  -o-user-select: none;
257  user-select: none;
258  display: flex;
259  float: left;
260  flex-direction: column;
261  margin-right: 1ch;
262}
263
264.file-wrapper {
265  display: flex;
266  flex-direction: row;
267  grid-template-columns: 1rem minmax(0, 1fr);
268  gap: 1rem;
269  padding: 0.5rem;
270  background: var(--light-gray);
271  overflow-x: auto;
272}
273
274.chroma-file-wrapper {
275  display: flex;
276  flex-direction: row;
277  grid-template-columns: 1rem minmax(0, 1fr);
278  overflow-x: auto;
279}
280
281.file-content {
282  background: var(--light-gray);
283  overflow-y: hidden;
284  overflow-x: auto;
285}
286
287.diff-type {
288  color: var(--gray);
289}
290
291.commit-info {
292  color: var(--gray);
293  padding-bottom: 1.5rem;
294  font-size: 0.85rem;
295}
296
297@media (max-width: 600px) {
298  .index {
299    grid-row-gap: 0.8em;
300  }
301
302  .log {
303    grid-template-columns: 1fr;
304    grid-row-gap: 0em;
305  }
306
307  .index {
308    grid-template-columns: 1fr;
309    grid-row-gap: 0em;
310  }
311
312  .index-name:not(:first-child) {
313    padding-top: 1.5rem;
314  }
315
316  .commit-info:not(:last-child) {
317    padding-bottom: 1.5rem;
318  }
319
320  pre {
321    font-size: 0.8rem;
322  }
323}
324
325.showcase {
326  display: grid;
327  gap: 1rem;
328  margin: 1.5rem 0;
329}
330
331.showcase-item {
332  margin: 0;
333  border: 1px solid var(--gray);
334  border-radius: 4px;
335  padding: 0.5rem;
336}
337
338.showcase-item img,
339.showcase-item video {
340  display: block;
341  max-width: 100%;
342  height: auto;
343  border-radius: 2px;
344}
345
346.showcase-item iframe {
347  display: block;
348  width: 100%;
349  border: 0;
350  background: #fff;
351  border-radius: 2px;
352}
353
354.showcase-item figcaption {
355  padding-top: 0.4rem;
356  font-size: 0.85rem;
357  color: var(--gray);
358}
359
360.log-table {
361  width: 100%;
362  border-collapse: collapse;
363  font-size: 0.9rem;
364}
365
366.log-table th {
367  text-align: left;
368  color: var(--gray);
369  font-weight: normal;
370  padding: 0.25rem 0.75rem 0.25rem 0;
371  border-bottom: 1px solid var(--medium-gray);
372}
373
374.log-table td {
375  padding: 0.3rem 0.75rem 0.3rem 0;
376  border-bottom: 1px solid var(--light-gray);
377  white-space: nowrap;
378}
379
380.log-table .log-msg {
381  width: 100%;
382  white-space: normal;
383}
384
385.log-table .log-age,
386.log-table .log-files {
387  color: var(--gray);
388}
389
390.deco {
391  display: inline-block;
392  margin-left: 0.4em;
393  padding: 0 0.4em;
394  border: 1px solid;
395  border-radius: 3px;
396  font-size: 0.75rem;
397  font-family: var(--mono-font);
398  vertical-align: 1px;
399  user-select: none;
400}
401
402.deco-head {
403  color: #c74343;
404  border-color: #c74343;
405  background: rgba(199, 67, 67, 0.12);
406}
407
408.deco-tag {
409  color: #b07d2f;
410  border-color: #b07d2f;
411  background: rgba(176, 125, 47, 0.12);
412}
413
414.deco-branch {
415  color: #4a8f3c;
416  border-color: #4a8f3c;
417  background: rgba(74, 143, 60, 0.12);
418}
419
420.file-view {
421  display: flex;
422  gap: 1.5rem;
423  align-items: flex-start;
424}
425
426.file-view .file-code {
427  min-width: 0;
428  flex: 1 1 auto;
429}
430
431.file-showcase {
432  flex: 0 0 340px;
433  position: sticky;
434  top: 1rem;
435}
436
437.file-showcase .showcase {
438  margin: 0;
439}
440
441@media (max-width: 900px) {
442  .file-view {
443    flex-direction: column;
444  }
445
446  .file-showcase {
447    position: static;
448    flex: none;
449    width: 100%;
450  }
451}
452
453.diff-truncated {
454  color: var(--gray);
455  font-style: italic;
456  font-size: 0.85rem;
457}