|
2 | 2 | <html lang="en"> |
3 | 3 | <head> |
4 | 4 | <meta charset="UTF-8"> |
5 | | - <title>Pobfus | Repository</title> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | + <title>Pobfus | v1.13.90 Base64-Icon</title> |
6 | 7 | <link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&family=Inter:wght@400;700&display=swap" rel="stylesheet"> |
7 | 8 | <style> |
8 | 9 | :root { |
9 | | - --bg: #050505; |
10 | | - --cobalt: #2e5bff; |
| 10 | + --bg: #010409; |
| 11 | + --sidebar: #0d1117; |
| 12 | + --gh-green: #238636; |
| 13 | + --gh-green-glow: #2ea043; |
| 14 | + --border: #30363d; |
11 | 15 | --fira: 'Fira Code', monospace; |
| 16 | + /* 1.13.90 Palette */ |
| 17 | + --kw: #ff7b72; --fn: #d2a8ff; --en: #bd93f9; --st: #a5d6ff; |
12 | 18 | } |
13 | | - body { background-color: var(--bg); color: #c0c9e0; font-family: 'Inter', sans-serif; margin: 0; display: flex; height: 100vh; overflow: hidden; } |
14 | 19 |
|
15 | | - .sidebar { |
16 | | - width: 380px; background: #0a0a0a; border-right: 1px solid #1a1a1a; |
17 | | - padding: 30px; display: flex; flex-direction: column; |
18 | | - } |
| 20 | + body { background: var(--bg); color: #c9d1d9; font-family: 'Inter', sans-serif; margin: 0; display: flex; flex-direction: column; height: 100vh; overflow: hidden; } |
19 | 21 |
|
20 | | - .header-icons { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; } |
21 | | - .icon-git { width: 45px; filter: invert(1); } |
22 | | - .icon-lua { width: 45px; } |
| 22 | + /* --- SQUIRCLE TOPBAR --- */ |
| 23 | + .top-nav { background: #161b22; border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 25px; height: 60px; position: relative; } |
| 24 | + .nav-content { display: flex; align-items: center; gap: 12px; position: relative; width: 100%; } |
| 25 | + |
| 26 | + .gh-logo { width: 28px; filter: invert(1); margin-right: 10px; } |
| 27 | + .lua-logo { width: 32px; height: 32px; filter: brightness(0) invert(1); } |
23 | 28 |
|
24 | | - .version-tab { |
25 | | - background: #000; border: 1px solid #1a1a1a; border-radius: 4px; |
26 | | - padding: 10px; margin-top: 10px; font-family: var(--fira); font-size: 11px; |
| 29 | + #squircle-follower { |
| 30 | + position: absolute; height: 36px; background: rgba(255, 255, 255, 0.05); |
| 31 | + border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; |
| 32 | + pointer-events: none; transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); |
27 | 33 | } |
28 | | - .version-label { color: #444; text-transform: uppercase; letter-spacing: 1px; font-size: 9px; } |
29 | | - .version-value { color: var(--cobalt); font-weight: bold; } |
30 | 34 |
|
31 | | - #output { |
32 | | - flex: 1; background: #000; color: #79c0ff; padding: 40px; |
33 | | - font-size: 11px; white-space: pre-wrap; overflow-y: auto; |
34 | | - border-top: 1px solid #1a1a1a; font-family: var(--fira); |
35 | | - } |
36 | | - #status-terminal { |
37 | | - margin-top: 15px; width: 100%; height: 120px; background: #000; |
38 | | - border: 1px solid #1a1a1a; border-radius: 4px; font-family: var(--fira); |
39 | | - font-size: 10px; color: #444; padding: 10px; overflow-y: auto; |
40 | | - } |
| 35 | + .nav-item { color: #f0f6fc; font-size: 13px; padding: 8px 12px; cursor: pointer; opacity: 0.6; z-index: 5; transition: 0.2s; } |
| 36 | + .nav-item.active { opacity: 1; font-weight: 700; } |
| 37 | + |
| 38 | + /* --- MAIN LAYOUT --- */ |
| 39 | + .main-container { display: flex; flex: 1; overflow: hidden; } |
41 | 40 |
|
42 | | - .btn-group { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; } |
43 | | - .action-btn { |
44 | | - width: 100%; background: var(--cobalt); color: #fff; border: 0; |
45 | | - padding: 15px; cursor: pointer; font-weight: 700; border-radius: 4px; |
46 | | - font-size: 12px; transition: opacity 0.2s; |
| 41 | + .sidebar { width: 280px; background: var(--sidebar); border-right: 1px solid var(--border); padding: 20px; display: flex; flex-direction: column; gap: 12px; } |
| 42 | + |
| 43 | + .gh-btn { |
| 44 | + width: 100%; padding: 10px; border-radius: 6px; border: 1px solid var(--border); |
| 45 | + font-weight: 600; font-size: 13px; cursor: pointer; transition: 0.2s; |
| 46 | + background: #21262d; color: #c9d1d9; font-family: inherit; |
47 | 47 | } |
48 | | - .action-btn.secondary { background: #1a1a1a; color: #666; } |
49 | | - .action-btn:hover { opacity: 0.8; } |
| 48 | + .btn-green { background: var(--gh-green); border-color: rgba(255,255,255,0.1); color: white; } |
| 49 | + .btn-green:hover { background: var(--gh-green-glow); box-shadow: 0 0 12px rgba(35, 134, 54, 0.3); } |
| 50 | + |
| 51 | + /* --- EDITOR & CONSOLE --- */ |
| 52 | + .editor-area { flex: 1; display: flex; flex-direction: column; background: var(--bg); } |
| 53 | + .code-split { display: flex; flex: 2; border-bottom: 1px solid var(--border); position: relative; overflow: hidden; } |
| 54 | + |
| 55 | + #input { flex: 1; background: transparent; color: transparent; caret-color: #fff; padding: 25px; border: 0; outline: 0; font-size: 13px; font-family: var(--fira); resize: none; z-index: 2; } |
| 56 | + #hl-layer { position: absolute; top: 25px; left: 25px; pointer-events: none; font-size: 13px; font-family: var(--fira); white-space: pre-wrap; word-wrap: break-word; } |
| 57 | + #output { flex: 1; background: #010409; color: var(--gh-green-glow); padding: 25px; font-size: 11px; font-family: var(--fira); border-left: 1px solid var(--border); overflow-y: auto; } |
| 58 | + |
| 59 | + .console { flex: 0.8; background: #010409; display: flex; flex-direction: column; } |
| 60 | + .console-header { padding: 8px 25px; background: #0d1117; font-size: 10px; color: #8b949e; border-bottom: 1px solid var(--border); text-transform: uppercase; } |
| 61 | + #steve-logs { flex: 1; padding: 12px 25px; font-family: var(--fira); font-size: 12px; color: #8b949e; overflow-y: auto; } |
| 62 | + .steve-tag { color: var(--kw); font-weight: bold; } |
50 | 63 | </style> |
51 | 64 | </head> |
52 | 65 | <body> |
53 | 66 |
|
54 | | - <div class="sidebar"> |
55 | | - <div class="header-icons"> |
56 | | - <img src="https://cdn-icons-png.flaticon.com/512/25/25231.png" class="icon-git" alt="GitHub"> |
57 | | - <img src="https://upload.wikimedia.org/wikipedia/commons/c/cf/Lua-logo-nolabel.svg" class="icon-lua" alt="Lua"> |
58 | | - </div> |
59 | | - |
60 | | - <h1 style="font-size:32px; margin:0; color:#fff; font-weight:700;">Pobfus</h1> |
61 | | - |
62 | | - <div class="version-tab"> |
63 | | - <div class="version-label">Build Engine</div> |
64 | | - <div class="version-value">v1.13.0978-6</div> |
65 | | - <div style="margin-top:5px;" class="version-label">Protocol</div> |
66 | | - <div class="version-value">Legacy 10->27 Shift</div> |
| 67 | + <div class="top-nav"> |
| 68 | + <div class="nav-content"> |
| 69 | + <img src="https://cdn-icons-png.flaticon.com/512/25/25231.png" class="gh-logo"> |
| 70 | + <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBkPSJNMjU2IDBDMTE0LjYxNSAwIDAgMTE0LjYxNSAwIDI1NnMxMTQuNjE1IDI1NiAyNTYgMjU2IDI1Ni0xMTQuNjE1IDI1Ni0yNTZTzM5Ny4zODUgMCAyNTYgMHptMTI4IDM4NGE2NCA2NCAwIDEgMSAwLTEyOCA2NCA2NCAwIDAgMSAwIDEyOHpNMTI4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDAgMSAwLTEyOHptMTI4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDAgMSAwLTEyOHoiLz48L3N2Zz4=" class="lua-logo"> |
| 71 | + <div id="squircle-follower"></div> |
| 72 | + <div class="nav-item active" onclick="syncNav(this)">Overview</div> |
| 73 | + <div class="nav-item" onclick="syncNav(this)">Repositories</div> |
| 74 | + <div class="nav-item" onclick="syncNav(this)">Projects</div> |
| 75 | + <div class="nav-item" onclick="syncNav(this)">Milestones</div> |
67 | 76 | </div> |
68 | | - |
69 | | - <div style="background:var(--bg); border:1px solid #1a1a1a; padding:35px; border-radius:10px; display:flex; flex-direction:column; align-items:center; margin-top:20px;"> |
70 | | - <div style="font-size:12px; color:var(--cobalt); font-family:var(--fira);" id="status">READY</div> |
71 | | - <div id="status-terminal"></div> |
| 77 | + </div> |
| 78 | + |
| 79 | + <div class="main-container"> |
| 80 | + <div class="sidebar"> |
| 81 | + <button class="gh-btn btn-green" id="pushBtn">Obfuscate & Push</button> |
| 82 | + <button class="gh-btn" id="dlBtn">Download Output</button> |
| 83 | + <button class="gh-btn" id="clrBtn" style="color:var(--kw)">Clear Buffer</button> |
| 84 | + |
| 85 | + <div style="margin-top: auto; padding: 15px; background: rgba(255,255,255,0.02); border-radius: 6px; border: 1px solid var(--border);"> |
| 86 | + <div style="font-size: 10px; color: #8b949e;">CURRENT VERSION</div> |
| 87 | + <div style="font-size: 13px; font-weight: bold; color: var(--gh-green-glow);">v1.13.90-Agentic</div> |
| 88 | + </div> |
72 | 89 | </div> |
73 | 90 |
|
74 | | - <div class="btn-group"> |
75 | | - <button id="goBtn" class="action-btn">BUILD & ENCRYPT</button> |
76 | | - <button id="clearBtn" class="action-btn secondary">CLEAR BUFFER</button> |
| 91 | + <div class="editor-area"> |
| 92 | + <div class="code-split"> |
| 93 | + <div id="hl-layer"></div> |
| 94 | + <textarea id="input" spellcheck="false" placeholder="-- [ v1.13.90 Universe Pushing Active ]"></textarea> |
| 95 | + <div id="output">-- [ Output Stream ]</div> |
| 96 | + </div> |
| 97 | + <div class="console"> |
| 98 | + <div class="console-header">SKIDDY STEVE // AGENTIC ANALYZER</div> |
| 99 | + <div id="steve-logs">Line 1 Script: System check complete. Icon loaded via Base64.</div> |
| 100 | + </div> |
77 | 101 | </div> |
78 | 102 | </div> |
79 | 103 |
|
80 | | - <div style="flex:1; display:flex; flex-direction:column;"> |
81 | | - <textarea id="input" style="flex:1; background:#050505; color:#666; padding:40px; border:0; outline:0; font-size:14px; font-family:var(--fira); resize:none;" placeholder="-- Source code here..."></textarea> |
82 | | - <div id="output"></div> |
83 | | - </div> |
| 104 | + <script> |
| 105 | + const input = document.getElementById('input'); |
| 106 | + const hl = document.getElementById('hl-layer'); |
| 107 | + const steve = document.getElementById('steve-logs'); |
| 108 | + const squircle = document.getElementById('squircle-follower'); |
| 109 | + |
| 110 | + // Nav Squircle |
| 111 | + function syncNav(el) { |
| 112 | + document.querySelectorAll('.nav-item').forEach(i => i.classList.remove('active')); |
| 113 | + el.classList.add('active'); |
| 114 | + squircle.style.width = (el.offsetWidth) + 'px'; |
| 115 | + squircle.style.left = (el.offsetLeft) + 'px'; |
| 116 | + } |
| 117 | + window.onload = () => syncNav(document.querySelector('.nav-item')); |
| 118 | + |
| 119 | + // 1.13.90 Highlighting |
| 120 | + function paint() { |
| 121 | + let code = input.value; |
| 122 | + code = code.replace(/--.*$/gm, m => `<span style="color:#8b949e">${m}</span>`); |
| 123 | + code = code.replace(/\b(local|function|if|then|else|end|return)\b/g, m => `<span style="color:var(--kw)">${m}</span>`); |
| 124 | + code = code.replace(/\b(getfenv|setfenv|getgenv|hookmetamethod)\b/g, m => `<span style="color:var(--en); font-weight:bold;">${m}</span>`); |
| 125 | + code = code.replace(/\b(print|warn|game|workspace|wait|Instance)\b/g, m => `<span style="color:var(--fn)">${m}</span>`); |
| 126 | + code = code.replace(/('|")(.*?)('|")/g, m => `<span style="color:var(--st)">${m}</span>`); |
| 127 | + hl.innerHTML = code; |
| 128 | + } |
| 129 | + |
| 130 | + input.oninput = () => { paint(); hl.scrollTop = input.scrollTop; }; |
| 131 | + input.onscroll = () => hl.scrollTop = input.scrollTop; |
| 132 | + |
| 133 | + document.getElementById('pushBtn').onclick = () => { |
| 134 | + steve.innerHTML = "Line 1 Script: Pushing build to v1.13.90 remote..."; |
| 135 | + }; |
84 | 136 |
|
85 | | - <script src="script.js"></script> |
| 137 | + document.getElementById('clrBtn').onclick = () => { |
| 138 | + input.value = ""; paint(); |
| 139 | + steve.innerHTML = "Line 1 Script: Buffer cleared."; |
| 140 | + }; |
| 141 | + </script> |
86 | 142 | </body> |
87 | | -</html> |
| 143 | + </html> |
0 commit comments