|
5 | 5 | <link rel="icon" type="image/png" href="/favicon.png" /> |
6 | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
7 | 7 | <title>glua.dev - REPL for GLua</title> |
8 | | - <script src="https://cdn.tailwindcss.com"></script> |
9 | | - <script src="https://unpkg.com/ansi_up@5.1.0/ansi_up.js"></script> |
10 | | - <link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500&display=swap" rel="stylesheet"> |
11 | | - <style> |
12 | | - body { font-family: 'Fira Code', monospace; background-color: #111827; } |
13 | | - ::-webkit-scrollbar { width: 8px; } |
14 | | - ::-webkit-scrollbar-track { background: #1F2937; } |
15 | | - ::-webkit-scrollbar-thumb { background: #4B5563; border-radius: 4px; } |
16 | | - ::-webkit-scrollbar-thumb:hover { background: #6B7280; } |
17 | | - .console-output-line { white-space: pre-wrap; word-break: break-all; } |
18 | | - .console-script-link { |
19 | | - display: inline-flex; |
20 | | - align-items: center; |
21 | | - gap: 0.375rem; |
22 | | - padding: 0.25rem 0.5rem; |
23 | | - margin: 0.25rem 0; |
24 | | - cursor: pointer; |
25 | | - border-radius: 0.25rem; |
26 | | - background-color: rgba(79, 70, 229, 0.1); |
27 | | - border: 1px solid rgba(79, 70, 229, 0.25); |
28 | | - transition: background-color 0.15s, border-color 0.15s; |
29 | | - font-size: 0.8rem; |
30 | | - } |
31 | | - .console-script-link:hover { |
32 | | - background-color: rgba(79, 70, 229, 0.2); |
33 | | - border-color: rgba(79, 70, 229, 0.5); |
34 | | - } |
35 | | - .console-script-link .script-icon { color: #818cf8; } |
36 | | - .console-script-link .script-name { color: #a5b4fc; text-decoration: underline; text-underline-offset: 2px; } |
37 | | - .console-script-link .script-hint { color: #6b7280; font-size: 0.75rem; } |
38 | | - #start-modal-backdrop.hidden, #console-container.hidden { display: none; } |
39 | | - select { |
40 | | - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); |
41 | | - background-position: right 0.5rem center; background-repeat: no-repeat; background-size: 1.5em 1.5em; padding-right: 2.5rem; |
42 | | - -webkit-appearance: none; -moz-appearance: none; appearance: none; |
43 | | - } |
44 | | - #status-panel .panel-content { max-height: 500px; opacity: 1; transition: max-height 0.3s ease-in-out, opacity 0.2s linear, padding 0.3s ease-in-out, margin 0.3s ease-in-out; } |
45 | | - #status-panel.collapsed .panel-content { max-height: 0px; opacity: 0; padding-top: 0; padding-bottom: 0; margin-top: 0; overflow: hidden; } |
46 | | - #status-panel .toggle-icon { transition: transform 0.3s ease; } |
47 | | - #status-panel.collapsed .toggle-icon { transform: rotate(180deg); } |
48 | | - |
49 | | - #editor-panel { |
50 | | - height: 100%; |
51 | | - overflow: hidden; |
52 | | - display: flex; |
53 | | - flex-direction: column; |
54 | | - background-color: #1f2937; /* bg-gray-800 */ |
55 | | - } |
56 | | - #editor-toggle-button { |
57 | | - position: absolute; |
58 | | - top: 50%; |
59 | | - right: 1rem; |
60 | | - transform: translateY(-50%); |
61 | | - z-index: 50; |
62 | | - background-color: #374151; /* bg-gray-700 */ |
63 | | - border-radius: 0.375rem; /* rounded-md */ |
64 | | - padding: 0.5rem; |
65 | | - cursor: pointer; |
66 | | - transition: background-color 0.2s ease-in-out; |
67 | | - color: white; |
68 | | - display: flex; |
69 | | - align-items: center; |
70 | | - gap: 0.5rem; |
71 | | - } |
72 | | - #editor-toggle-button:hover { |
73 | | - background-color: #4f46e5; /* bg-indigo-600 */ |
74 | | - } |
75 | | - #resizer { |
76 | | - width: 8px; |
77 | | - cursor: col-resize; |
78 | | - background-color: #111827; |
79 | | - transition: background-color 0.2s ease-in-out; |
80 | | - z-index: 20; |
81 | | - } |
82 | | - #resizer:hover { |
83 | | - background-color: #4f46e5; /* bg-indigo-600 */ |
84 | | - } |
85 | | - #editor-wrapper { |
86 | | - position: relative; |
87 | | - height: 100%; |
88 | | - display: flex; |
89 | | - flex-direction: column; |
90 | | - } |
91 | | - #editor-container { |
92 | | - flex-grow: 1; |
93 | | - overflow: hidden; |
94 | | - } |
95 | | - #editor-footer { |
96 | | - padding: 0.5rem; |
97 | | - background-color: #111827; /* bg-gray-900 */ |
98 | | - text-align: right; |
99 | | - } |
100 | | - #run-script-button { |
101 | | - display: flex; |
102 | | - align-items: center; |
103 | | - gap: 0.5rem; |
104 | | - background-color: #4f46e5; /* bg-indigo-600 */ |
105 | | - color: white; |
106 | | - padding: 0.5rem 1rem; |
107 | | - border-radius: 0.375rem; /* rounded-md */ |
108 | | - font-weight: 500; |
109 | | - font-size: 0.875rem; |
110 | | - line-height: 1.25rem; |
111 | | - border: none; |
112 | | - cursor: pointer; |
113 | | - transition: background-color 0.2s ease-in-out; |
114 | | - } |
115 | | - #run-script-button:hover { |
116 | | - background-color: #4338ca; /* bg-indigo-700 */ |
117 | | - } |
118 | | - #run-script-button:disabled { |
119 | | - background-color: #374151; /* bg-gray-700 */ |
120 | | - color: #9ca3af; /* text-gray-400 */ |
121 | | - cursor: not-allowed; |
122 | | - } |
123 | | - #run-script-button svg { |
124 | | - width: 1rem; |
125 | | - height: 1rem; |
126 | | - } |
127 | | - .cm-editor { |
128 | | - height: 100%; |
129 | | - background-color: #1F2937 !important; |
130 | | - color: #d1d5db !important; |
131 | | - } |
132 | | - .cm-gutters { |
133 | | - background-color: #1F2937 !important; |
134 | | - border-right: 1px solid #374151; |
135 | | - } |
136 | | - .cm-activeLine { |
137 | | - background-color: #374151 !important; |
138 | | - } |
139 | | - .cm-content { |
140 | | - caret-color: #60a5fa; |
141 | | - } |
142 | | - .cm-selectionBackground { |
143 | | - background-color: #3b82f6 !important; |
144 | | - opacity: 0.5; |
145 | | - } |
146 | | - |
147 | | - /* ANSI Colors */ |
148 | | - .ansi-black-fg { color: #374151; } /* gray-700 */ |
149 | | - .ansi-red-fg { color: #ef4444; } /* red-500 */ |
150 | | - .ansi-green-fg { color: #22c55e; } /* green-500 */ |
151 | | - .ansi-yellow-fg { color: #eab308; } /* yellow-500 */ |
152 | | - .ansi-blue-fg { color: #3b82f6; } /* blue-500 */ |
153 | | - .ansi-magenta-fg { color: #a855f7; } /* purple-500 */ |
154 | | - .ansi-cyan-fg { color: #06b6d4; } /* cyan-500 */ |
155 | | - .ansi-white-fg { color: #d1d5db; } /* gray-300 */ |
156 | | - |
157 | | - .ansi-bright-black-fg { color: #6b7280; } /* gray-500 */ |
158 | | - .ansi-bright-red-fg { color: #f87171; } /* red-400 */ |
159 | | - .ansi-bright-green-fg { color: #4ade80; } /* green-400 */ |
160 | | - .ansi-bright-yellow-fg { color: #facc15; } /* yellow-400 */ |
161 | | - .ansi-bright-blue-fg { color: #60a5fa; } /* blue-400 */ |
162 | | - .ansi-bright-magenta-fg { color: #c084fc; } /* purple-400 */ |
163 | | - .ansi-bright-cyan-fg { color: #22d3ee; } /* cyan-400 */ |
164 | | - .ansi-bright-white-fg { color: #f9fafb; } /* gray-50 */ |
165 | | - |
166 | | - </style> |
167 | 8 | </head> |
168 | 9 | <body class="text-gray-300"> |
169 | 10 | <div id="app"></div> |
|
0 commit comments