v0.6.0 b250c5e

terminal.css RawHistoryFolder

1.vev-terminal {
2  --vev-fg: #d8dee9;
3  --vev-bg: #101218;
4  --vev-cursor: #ff8700;
5  --vev-selection-bg: #394150;
6  --vev-selection-fg: #ffffff;
7  --vev-color-0: #000000;
8  --vev-color-1: #800000;
9  --vev-color-2: #008000;
10  --vev-color-3: #808000;
11  --vev-color-4: #000080;
12  --vev-color-5: #800080;
13  --vev-color-6: #008080;
14  --vev-color-7: #c0c0c0;
15  --vev-color-8: #808080;
16  --vev-color-9: #ff0000;
17  --vev-color-10: #00ff00;
18  --vev-color-11: #ffff00;
19  --vev-color-12: #0000ff;
20  --vev-color-13: #ff00ff;
21  --vev-color-14: #00ffff;
22  --vev-color-15: #ffffff;
23  --vev-font-family: ui-monospace, "Cascadia Mono", "Noto Sans Mono", monospace;
24  --vev-font-size: 14px;
25  --vev-line-height: 1.2;
26  --vev-cell-width: 1ch;
27  --vev-cell-height: calc(var(--vev-font-size) * var(--vev-line-height));
28
29  position: relative;
30  display: inline-block;
31  overflow: hidden;
32  color: var(--vev-fg);
33  background: var(--vev-bg);
34  font-family: var(--vev-font-family);
35  font-size: var(--vev-font-size);
36  line-height: var(--vev-line-height);
37  font-variant-ligatures: none;
38  white-space: pre;
39  user-select: text;
40}
41
42.vev-terminal:focus-within {
43  outline: 2px solid var(--vev-cursor);
44  outline-offset: 2px;
45}
46
47.vev-terminal__viewport {
48  position: relative;
49  display: grid;
50  grid-template-rows: repeat(var(--vev-rows), var(--vev-cell-height));
51}
52
53.vev-terminal__row {
54  contain: strict;
55  display: grid;
56  grid-template-columns: repeat(var(--vev-cols), var(--vev-cell-width));
57  min-width: calc(var(--vev-cols) * var(--vev-cell-width));
58  height: var(--vev-cell-height);
59}
60
61.vev-terminal__cell {
62  overflow: hidden;
63  min-width: 0;
64  color: var(--vev-cell-fg, var(--vev-fg));
65  background: var(--vev-cell-bg, var(--vev-bg));
66  text-decoration-color: var(--vev-cell-underline, currentColor);
67  letter-spacing: var(--vev-letter-spacing, 0);
68}
69
70.vev-terminal__measure {
71  position: absolute;
72  top: 0;
73  left: 0;
74  display: block;
75  width: var(--vev-cell-width);
76  white-space: pre;
77  visibility: hidden;
78  pointer-events: none;
79  user-select: none;
80}
81
82.vev-terminal__cell--bold { font-weight: 700; }
83.vev-terminal__cell--italic { font-style: italic; }
84.vev-terminal__cell--dim { color: color-mix(in srgb, var(--vev-cell-fg, var(--vev-fg)) 50%, var(--vev-cell-bg, var(--vev-bg))); }
85.vev-terminal__cell--strike { text-decoration-line: line-through; }
86.vev-terminal__cell--underline { text-decoration-line: underline; }
87.vev-terminal__cell--strike.vev-terminal__cell--underline { text-decoration-line: line-through underline; }
88.vev-terminal__cell--underline-double { text-decoration-style: double; }
89.vev-terminal__cell--underline-wavy { text-decoration-style: wavy; }
90.vev-terminal__cell--underline-dotted { text-decoration-style: dotted; }
91.vev-terminal__cell--underline-dashed { text-decoration-style: dashed; }
92.vev-terminal__cell--blink { animation: vev-terminal-blink 1s step-end infinite; }
93
94.vev-terminal__cursor {
95  position: absolute;
96  z-index: 2;
97  pointer-events: none;
98  background: var(--vev-cursor);
99  opacity: 0.75;
100}
101
102.vev-terminal__cursor--bar { width: max(1px, calc(var(--vev-cell-width) * 0.12)); }
103.vev-terminal__cursor--underline { height: max(1px, calc(var(--vev-cell-height) * 0.12)); }
104
105.vev-terminal__input { font-size: 16px; }
106
107.vev-terminal__input,
108.vev-terminal__accessible-output {
109  position: absolute;
110  width: 1px;
111  height: 1px;
112  padding: 0;
113  margin: -1px;
114  overflow: hidden;
115  clip-path: inset(50%);
116  white-space: pre;
117  border: 0;
118}
119
120.vev-terminal ::selection {
121  color: var(--vev-selection-fg);
122  background: var(--vev-selection-bg);
123}
124
125.vev-terminal--mouse-capture { user-select: none; }
126
127@keyframes vev-terminal-blink {
128  50% { visibility: hidden; }
129}
130
131@media (prefers-reduced-motion: reduce) {
132  .vev-terminal__cell--blink { animation: none; }
133}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 13

↑↓ moveenter openesc close