nandi/oripublic Fork 0
main
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

main.css · 185 lines · 3.0 KBCSS Blame HistoryRaw
✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme 76d62ac k33g yesterday1/* ori-desktop — minimal dark shell around the ori webapp. */
2:root {
3 --bg: #18181b;
4 --panel: #232327;
5 --border: #34343a;
6 --text: #e4e4e7;
7 --muted: #9ca3af;
8 --accent: #7c9cff;
9 --ok: #34d399;
10 --err: #f87171;
11 color-scheme: dark;
12}
13
14* {
15 box-sizing: border-box;
16}
17
18html,
19body {
20 margin: 0;
21 height: 100%;
22 background: var(--bg);
23 color: var(--text);
24 font: 14px / 1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
25 -webkit-user-select: none;
26 user-select: none;
27}
28
29.screen {
30 height: 100%;
31}
32/* Class + attribute selectors only: an id selector such as #connect-screen
33 would outrank .screen[hidden] and keep the screen visible for ever. */
34.screen[hidden] {
35 display: none !important;
36}
37
38/* ---- connection screen ---------------------------------------------- */
39.connect {
40 display: grid;
41 place-items: center;
42 padding: 24px;
43}
44
45.card {
46 width: min(460px, 100%);
47 background: var(--panel);
48 border: 1px solid var(--border);
49 border-radius: 12px;
50 padding: 28px;
51 display: flex;
52 flex-direction: column;
53 gap: 10px;
54}
55
56h1 {
57 margin: 0 0 4px;
58 font-size: 28px;
59 font-weight: 600;
60 letter-spacing: 0.02em;
61}
62
63.hint {
64 margin: 0 0 8px;
65 color: var(--muted);
66}
67
68label {
69 font-size: 12px;
70 color: var(--muted);
71 text-transform: uppercase;
72 letter-spacing: 0.06em;
73}
74
75input {
76 -webkit-user-select: text;
77 user-select: text;
78 width: 100%;
79 padding: 10px 12px;
80 border-radius: 8px;
81 border: 1px solid var(--border);
82 background: var(--bg);
83 color: var(--text);
84 font: inherit;
85 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
86}
87input:focus {
88 outline: 2px solid var(--accent);
89 outline-offset: 1px;
90}
91
92.actions {
93 display: flex;
94 gap: 8px;
95 justify-content: flex-end;
96 margin-top: 6px;
97}
98
99button {
100 font: inherit;
101 padding: 8px 14px;
102 border-radius: 8px;
103 border: 1px solid var(--border);
104 background: var(--panel);
105 color: var(--text);
106 cursor: pointer;
107}
108button:hover {
109 border-color: var(--accent);
110}
111button:disabled {
112 opacity: 0.5;
113 cursor: progress;
114}
115button.primary {
116 background: var(--accent);
117 border-color: var(--accent);
118 color: #0b1020;
119 font-weight: 600;
120}
121button.ghost {
122 background: transparent;
123 padding: 4px 10px;
124 font-size: 13px;
125}
126
127.status {
128 min-height: 1.4em;
129 margin: 4px 0 0;
130 -webkit-user-select: text;
131 user-select: text;
132}
133.status.ok {
134 color: var(--ok);
135}
136.status.err {
137 color: var(--err);
138}
139.fineprint {
140 margin: 0;
141 font-size: 11px;
142 color: var(--muted);
143 word-break: break-all;
144}
145
146/* ---- viewer -------------------------------------------------------- */
147.viewer {
148 display: flex;
149 flex-direction: column;
150}
151.viewer[hidden] {
152 display: none;
153}
154
155.bar {
156 display: flex;
157 align-items: center;
158 gap: 8px;
159 padding: 4px 8px;
160 border-bottom: 1px solid var(--border);
161 background: var(--panel);
162 font-size: 13px;
163}
164.dot {
165 width: 8px;
166 height: 8px;
167 border-radius: 50%;
168 background: var(--ok);
169}
170.url {
171 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
172 color: var(--muted);
173 -webkit-user-select: text;
174 user-select: text;
175}
176.spacer {
177 flex: 1;
178}
179
180iframe {
181 flex: 1;
182 width: 100%;
183 border: 0;
184 background: var(--bg);
185}