char-slop/berry

multipurpose self-modifiable agentic harness

git clone https://git.t4t.associates/char-slop/berry

Charlotte Somweb: space on a 4px grid; the transcript fades under the composer, queued messages keep their actions inline0a0c32b

main
1.7 KiB85 linesraw
1/* the terminal fills the view, in berry's colors, one grid cell per character */
2.terminal-view {
3  position: relative;
4  display: grid;
5  grid-template-rows: minmax(0, 1fr) auto;
6  height: 100%;
7}
8.terminal-screen {
9  position: relative;
10  overflow: hidden;
11  margin: 8px 12px;
12  font-family: var(--mono);
13  font-size: var(--text-ui);
14  line-height: 18px;
15  font-variant-ligatures: none;
16  outline: none;
17  cursor: text;
18}
19/* the cells are a grid of their own, which their rows and runs inherit as a terminal's lines do */
20.terminal-screen * {
21  line-height: inherit;
22}
23/* a shell that has exited leaves its last screen, dimmed */
24.terminal-screen {
25  transition: opacity 0.3s;
26}
27.terminal-view.exited .terminal-screen {
28  opacity: 0.45;
29}
30.terminal-grid,
31.terminal-rows {
32  position: absolute;
33  top: 0;
34  left: 0;
35}
36.terminal-grid {
37  pointer-events: none;
38  user-select: none;
39}
40.terminal-rows {
41  width: 100%;
42}
43.terminal-rows > div {
44  position: relative;
45  width: 100%;
46  white-space: pre;
47  overflow: hidden;
48}
49/* a wide character takes two cells, whatever width its font gives it */
50.terminal-run,
51.terminal-glyph {
52  display: inline-block;
53  vertical-align: top;
54  height: 100%;
55}
56.terminal-probe {
57  position: absolute;
58  visibility: hidden;
59  white-space: pre;
60}
61/* typed into, but never seen: the screen is what shows */
62.terminal-input {
63  position: absolute;
64  top: 0;
65  left: 0;
66  width: 1px;
67  height: 1px;
68  padding: 0;
69  border: 0;
70  opacity: 0;
71  resize: none;
72}
73.terminal-status {
74  display: flex;
75  align-items: center;
76  gap: 16px;
77  padding: 8px 12px;
78  background: var(--panel);
79  border-top: 1px solid var(--line);
80  font-size: var(--text-ui);
81  color: var(--muted);
82}
83.terminal-status-text {
84  margin: 0;
85}