Download index.html from Boobs00/myspace: direct link, hf CLI and curl.
- Browser
- Download file 56.8 kB
-
https://huggingface.co/spaces/Boobs00/myspace/resolve/main/index.html
- Command line
-
hf download hf://spaces/Boobs00/myspace/index.html
-
curl -L -o index.html https://huggingface.co/spaces/Boobs00/myspace/resolve/main/index.html
56.8 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Cyberpunk Desktop</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| /* Cyberpunk neon glow effect */ | |
| @keyframes neonGlow { | |
| 0%, 100% { text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #0073e6, 0 0 20px #0073e6; } | |
| 50% { text-shadow: 0 0 2px #fff, 0 0 5px #fff, 0 0 10px #0073e6, 0 0 15px #0073e6; } | |
| } | |
| /* Base styles with cyberpunk flair */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| user-select: none; | |
| } | |
| body { | |
| font-family: 'Segoe UI', 'Noto Sans', system-ui, -apple-system, sans-serif; | |
| background-color: #000; | |
| background-image: url('https://4kwallpapers.com/images/wallpapers/windows-11-dark-mode-stock-official-3840x2400-5630.jpg'); | |
| background-size: cover; | |
| background-position: center; | |
| height: 100vh; | |
| overflow: hidden; | |
| color: #fff; | |
| } | |
| /* Desktop area with grid layout for icons */ | |
| .desktop { | |
| height: calc(100vh - 48px); | |
| padding: 20px; | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, 80px); | |
| grid-auto-rows: min-content; | |
| gap: 20px; | |
| align-content: start; | |
| } | |
| /* Desktop icons with hover effects */ | |
| .desktop-icon { | |
| width: 80px; | |
| text-align: center; | |
| cursor: pointer; | |
| padding: 8px; | |
| border-radius: 8px; | |
| transition: all 0.2s ease; | |
| } | |
| .desktop-icon:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(0, 115, 230, 0.4); | |
| } | |
| .desktop-icon:active { | |
| transform: translateY(0); | |
| } | |
| .desktop-icon img { | |
| width: 40px; | |
| height: 40px; | |
| margin-bottom: 8px; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.7)); | |
| } | |
| .desktop-icon span { | |
| font-size: 12px; | |
| display: block; | |
| text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); | |
| word-break: break-word; | |
| color: #fff; | |
| } | |
| /* Taskbar with glass morphism effect */ | |
| .taskbar { | |
| position: fixed; | |
| bottom: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 48px; | |
| background: rgba(32, 32, 32, 0.7); | |
| backdrop-filter: blur(12px); | |
| display: flex; | |
| align-items: center; | |
| z-index: 1000; | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| /* Start button with Windows logo */ | |
| .start-button { | |
| height: 100%; | |
| padding: 0 12px; | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .start-button:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| } | |
| .start-button i { | |
| font-size: 18px; | |
| color: #fff; | |
| filter: drop-shadow(0 0 3px rgba(0, 115, 230, 0.7)); | |
| } | |
| /* Taskbar icons */ | |
| .taskbar-icons { | |
| display: flex; | |
| height: 100%; | |
| align-items: center; | |
| gap: 4px; | |
| margin-left: 8px; | |
| } | |
| .taskbar-icon { | |
| width: 24px; | |
| height: 24px; | |
| padding: 12px; | |
| cursor: pointer; | |
| border-radius: 6px; | |
| transition: all 0.2s ease; | |
| } | |
| .taskbar-icon:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| } | |
| .taskbar-icon.active { | |
| background-color: rgba(255, 255, 255, 0.2); | |
| border-bottom: 2px solid rgba(0, 115, 230, 0.7); | |
| } | |
| .taskbar-icon img { | |
| width: 100%; | |
| height: 100%; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.5)); | |
| } | |
| /* Clock with neon effect */ | |
| .clock { | |
| margin-left: auto; | |
| padding: 0 16px; | |
| font-size: 12px; | |
| font-weight: 500; | |
| color: #fff; | |
| animation: neonGlow 3s infinite alternate; | |
| } | |
| /* Start menu - cyberpunk style */ | |
| .start-menu { | |
| position: absolute; | |
| bottom: 48px; | |
| left: 0; | |
| width: 600px; | |
| height: 650px; | |
| background: rgba(32, 32, 32, 0.9); | |
| backdrop-filter: blur(24px); | |
| border-radius: 8px 8px 0 0; | |
| display: none; | |
| z-index: 1001; | |
| box-shadow: 0 0 30px rgba(0, 115, 230, 0.3); | |
| overflow: hidden; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| transform-origin: bottom left; | |
| transform: scale(0.95); | |
| opacity: 0; | |
| transition: all 0.2s ease; | |
| } | |
| .start-menu.visible { | |
| display: block; | |
| transform: scale(1); | |
| opacity: 1; | |
| } | |
| /* Start menu header with search */ | |
| .start-menu-header { | |
| padding: 16px; | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .start-menu-header i { | |
| font-size: 16px; | |
| color: rgba(255, 255, 255, 0.7); | |
| } | |
| .start-menu-header input { | |
| flex-grow: 1; | |
| background: rgba(255, 255, 255, 0.1); | |
| border: none; | |
| padding: 8px 16px; | |
| border-radius: 20px; | |
| color: white; | |
| outline: none; | |
| font-size: 14px; | |
| transition: all 0.2s ease; | |
| } | |
| .start-menu-header input:focus { | |
| background: rgba(255, 255, 255, 0.15); | |
| box-shadow: 0 0 0 2px rgba(0, 115, 230, 0.5); | |
| } | |
| /* Start menu content grid */ | |
| .start-menu-content { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| height: calc(100% - 120px); | |
| } | |
| .pinned-apps, .recommended { | |
| padding: 16px; | |
| overflow-y: auto; | |
| } | |
| .pinned-apps h3, .recommended h3 { | |
| margin-bottom: 16px; | |
| font-weight: 500; | |
| font-size: 14px; | |
| color: rgba(255, 255, 255, 0.7); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| /* App grid layout */ | |
| .app-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 12px; | |
| } | |
| .app { | |
| padding: 12px; | |
| border-radius: 6px; | |
| cursor: pointer; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| text-align: center; | |
| transition: all 0.2s ease; | |
| } | |
| .app:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| transform: translateY(-2px); | |
| box-shadow: 0 5px 15px rgba(0, 115, 230, 0.3); | |
| } | |
| .app img { | |
| width: 32px; | |
| height: 32px; | |
| margin-bottom: 8px; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.5)); | |
| } | |
| .app span { | |
| font-size: 12px; | |
| color: #fff; | |
| } | |
| /* User profile at bottom */ | |
| .user-profile { | |
| margin-top: auto; | |
| padding: 16px; | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| background-color: rgba(0, 0, 0, 0.3); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .user-profile:hover { | |
| background-color: rgba(0, 0, 0, 0.4); | |
| } | |
| .user-profile img { | |
| width: 32px; | |
| height: 32px; | |
| border-radius: 50%; | |
| border: 2px solid rgba(0, 115, 230, 0.7); | |
| } | |
| .user-profile span { | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: #fff; | |
| } | |
| /* Window styles - cyberpunk enhanced */ | |
| .window { | |
| position: absolute; | |
| min-width: 300px; | |
| min-height: 200px; | |
| background: rgba(32, 32, 32, 0.95); | |
| backdrop-filter: blur(16px); | |
| border-radius: 8px; | |
| box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); | |
| display: none; | |
| flex-direction: column; | |
| overflow: hidden; | |
| z-index: 10; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| transform: scale(0.95); | |
| opacity: 0; | |
| transition: all 0.2s ease; | |
| } | |
| .window.active { | |
| z-index: 100; | |
| display: flex; | |
| transform: scale(1); | |
| opacity: 1; | |
| } | |
| .window.maximized { | |
| width: calc(100% - 20px) ; | |
| height: calc(100% - 68px) ; | |
| top: 10px ; | |
| left: 10px ; | |
| border-radius: 0; | |
| } | |
| /* Window header with title and controls */ | |
| .window-header { | |
| padding: 8px 12px; | |
| display: flex; | |
| align-items: center; | |
| background: rgba(0, 0, 0, 0.3); | |
| cursor: move; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .window-icon { | |
| width: 16px; | |
| height: 16px; | |
| margin-right: 8px; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.7)); | |
| } | |
| .window-title { | |
| flex-grow: 1; | |
| font-size: 12px; | |
| font-weight: 500; | |
| color: #fff; | |
| } | |
| .window-controls { | |
| display: flex; | |
| } | |
| .window-btn { | |
| width: 32px; | |
| height: 32px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| background: none; | |
| border: none; | |
| color: rgba(255, 255, 255, 0.7); | |
| transition: all 0.2s ease; | |
| border-radius: 4px; | |
| } | |
| .window-btn:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| color: #fff; | |
| } | |
| .window-btn i { | |
| font-size: 12px; | |
| } | |
| .window-btn.close:hover { | |
| background-color: #e81123; | |
| color: #fff; | |
| } | |
| /* Window content area */ | |
| .window-content { | |
| flex-grow: 1; | |
| padding: 16px; | |
| overflow: auto; | |
| color: rgba(255, 255, 255, 0.9); | |
| } | |
| /* Window footer */ | |
| .window-footer { | |
| padding: 8px 12px; | |
| background: rgba(0, 0, 0, 0.2); | |
| font-size: 12px; | |
| display: flex; | |
| justify-content: space-between; | |
| color: rgba(255, 255, 255, 0.7); | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| /* Explorer window specific styles */ | |
| .explorer-nav { | |
| display: flex; | |
| padding: 8px 12px; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
| background: rgba(0, 0, 0, 0.2); | |
| gap: 4px; | |
| } | |
| .explorer-nav-btn { | |
| background: none; | |
| border: none; | |
| color: rgba(255, 255, 255, 0.7); | |
| padding: 6px 12px; | |
| font-size: 12px; | |
| cursor: pointer; | |
| border-radius: 4px; | |
| transition: all 0.2s ease; | |
| } | |
| .explorer-nav-btn:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| color: #fff; | |
| } | |
| .explorer-nav-btn i { | |
| font-size: 12px; | |
| } | |
| .explorer-path { | |
| flex-grow: 1; | |
| padding: 6px 12px; | |
| font-size: 12px; | |
| color: rgba(255, 255, 255, 0.7); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| border-radius: 4px; | |
| background: rgba(0, 0, 0, 0.2); | |
| outline: none; | |
| transition: all 0.2s ease; | |
| } | |
| .explorer-path:focus { | |
| border-color: rgba(0, 115, 230, 0.7); | |
| box-shadow: 0 0 0 1px rgba(0, 115, 230, 0.5); | |
| } | |
| .explorer-body { | |
| display: flex; | |
| height: calc(100% - 80px); | |
| } | |
| .explorer-sidebar { | |
| width: 200px; | |
| padding: 12px; | |
| border-right: 1px solid rgba(255, 255, 255, 0.1); | |
| background: rgba(0, 0, 0, 0.1); | |
| overflow-y: auto; | |
| } | |
| .explorer-files { | |
| flex-grow: 1; | |
| padding: 12px; | |
| overflow-y: auto; | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); | |
| gap: 12px; | |
| align-content: start; | |
| } | |
| .folder { | |
| display: flex; | |
| align-items: center; | |
| padding: 8px; | |
| cursor: pointer; | |
| border-radius: 4px; | |
| transition: all 0.2s ease; | |
| } | |
| .folder:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| } | |
| .folder-icon { | |
| width: 20px; | |
| height: 20px; | |
| margin-right: 8px; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.5)); | |
| } | |
| .folder span { | |
| font-size: 12px; | |
| color: #fff; | |
| } | |
| .file { | |
| padding: 12px; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| text-align: center; | |
| transition: all 0.2s ease; | |
| } | |
| .file:hover { | |
| background-color: rgba(255, 255, 255, 0.1); | |
| } | |
| .file img { | |
| width: 40px; | |
| height: 40px; | |
| margin-bottom: 8px; | |
| filter: drop-shadow(0 0 2px rgba(0, 115, 230, 0.5)); | |
| } | |
| .file span { | |
| font-size: 12px; | |
| color: #fff; | |
| display: block; | |
| word-break: break-word; | |
| } | |
| /* Notepad window specific */ | |
| .notepad-textarea { | |
| width: 100%; | |
| height: 100%; | |
| background: none; | |
| border: none; | |
| color: white; | |
| font-family: 'Consolas', 'Courier New', monospace; | |
| resize: none; | |
| outline: none; | |
| font-size: 14px; | |
| line-height: 1.5; | |
| } | |
| /* Calculator window specific */ | |
| .calculator { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 8px; | |
| padding: 12px; | |
| } | |
| .calculator-display { | |
| grid-column: span 4; | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: 4px; | |
| padding: 12px; | |
| text-align: right; | |
| font-size: 24px; | |
| margin-bottom: 8px; | |
| height: 48px; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .calculator-btn { | |
| padding: 12px; | |
| border: none; | |
| border-radius: 4px; | |
| background: rgba(255, 255, 255, 0.1); | |
| color: #fff; | |
| font-size: 16px; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .calculator-btn:hover { | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .calculator-btn.operator { | |
| background: rgba(0, 115, 230, 0.7); | |
| } | |
| .calculator-btn.operator:hover { | |
| background: rgba(0, 115, 230, 0.9); | |
| } | |
| .calculator-btn.equals { | |
| background: rgba(0, 180, 100, 0.7); | |
| } | |
| .calculator-btn.equals:hover { | |
| background: rgba(0, 180, 100, 0.9); | |
| } | |
| .calculator-btn.clear { | |
| background: rgba(230, 50, 50, 0.7); | |
| } | |
| .calculator-btn.clear:hover { | |
| background: rgba(230, 50, 50, 0.9); | |
| } | |
| /* Resize handles - invisible but functional */ | |
| .resize-handle { | |
| position: absolute; | |
| background: transparent; | |
| z-index: 10; | |
| } | |
| .resize-handle.top { | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 4px; | |
| cursor: ns-resize; | |
| } | |
| .resize-handle.right { | |
| top: 0; | |
| right: 0; | |
| width: 4px; | |
| height: 100%; | |
| cursor: ew-resize; | |
| } | |
| .resize-handle.bottom { | |
| bottom: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 4px; | |
| cursor: ns-resize; | |
| } | |
| .resize-handle.left { | |
| top: 0; | |
| left: 0; | |
| width: 4px; | |
| height: 100%; | |
| cursor: ew-resize; | |
| } | |
| .resize-handle.top-left { | |
| top: 0; | |
| left: 0; | |
| width: 10px; | |
| height: 10px; | |
| cursor: nwse-resize; | |
| } | |
| .resize-handle.top-right { | |
| top: 0; | |
| right: 0; | |
| width: 10px; | |
| height: 10px; | |
| cursor: nesw-resize; | |
| } | |
| .resize-handle.bottom-left { | |
| bottom: 0; | |
| left: 0; | |
| width: 10px; | |
| height: 10px; | |
| cursor: nesw-resize; | |
| } | |
| .resize-handle.bottom-right { | |
| bottom: 0; | |
| right: 0; | |
| width: 10px; | |
| height: 10px; | |
| cursor: nwse-resize; | |
| } | |
| /* Ghost preview for resizing */ | |
| .resize-ghost { | |
| position: absolute; | |
| border: 2px dashed rgba(0, 115, 230, 0.7); | |
| background: rgba(0, 115, 230, 0.1); | |
| pointer-events: none; | |
| z-index: 1000; | |
| display: none; | |
| } | |
| /* Context menu */ | |
| .context-menu { | |
| position: absolute; | |
| background: rgba(32, 32, 32, 0.95); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: 6px; | |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); | |
| z-index: 2000; | |
| display: none; | |
| min-width: 180px; | |
| overflow: hidden; | |
| } | |
| .context-menu.visible { | |
| display: block; | |
| } | |
| .context-menu-item { | |
| padding: 8px 16px; | |
| font-size: 12px; | |
| color: rgba(255, 255, 255, 0.9); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .context-menu-item:hover { | |
| background: rgba(0, 115, 230, 0.5); | |
| color: #fff; | |
| } | |
| .context-menu-item i { | |
| font-size: 12px; | |
| width: 16px; | |
| text-align: center; | |
| } | |
| .context-menu-divider { | |
| height: 1px; | |
| background: rgba(255, 255, 255, 0.1); | |
| margin: 4px 0; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <!-- Desktop with icons --> | |
| <div class="desktop" id="desktop"> | |
| <div class="desktop-icon" onclick="openWindow('explorer')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="File Explorer"> | |
| <span>File Explorer</span> | |
| </div> | |
| <div class="desktop-icon" onclick="openWindow('notepad')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2809/2809932.png" alt="Notepad"> | |
| <span>Notepad</span> | |
| </div> | |
| <div class="desktop-icon" onclick="openWindow('calculator')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/210/210826.png" alt="Calculator"> | |
| <span>Calculator</span> | |
| </div> | |
| <div class="desktop-icon" onclick="openWindow('chrome')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/888/888882.png" alt="Chrome"> | |
| <span>Google Chrome</span> | |
| </div> | |
| <div class="desktop-icon" onclick="openWindow('terminal')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/6124/6124995.png" alt="Terminal"> | |
| <span>Terminal</span> | |
| </div> | |
| </div> | |
| <!-- Taskbar --> | |
| <div class="taskbar"> | |
| <div class="start-button" id="startButton" onclick="toggleStartMenu()"> | |
| <i class="fab fa-windows"></i> | |
| </div> | |
| <div class="taskbar-icons"> | |
| <div class="taskbar-icon" id="explorerTaskbarIcon" onclick="toggleWindow('explorer')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="File Explorer"> | |
| </div> | |
| <div class="taskbar-icon" id="notepadTaskbarIcon" onclick="toggleWindow('notepad')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2809/2809932.png" alt="Notepad"> | |
| </div> | |
| <div class="taskbar-icon" id="calculatorTaskbarIcon" onclick="toggleWindow('calculator')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/210/210826.png" alt="Calculator"> | |
| </div> | |
| </div> | |
| <div class="clock" id="clock">12:00 PM</div> | |
| </div> | |
| <!-- Start Menu --> | |
| <div class="start-menu" id="startMenu"> | |
| <div class="start-menu-header"> | |
| <i class="fas fa-search"></i> | |
| <input type="text" placeholder="Type here to search"> | |
| </div> | |
| <div class="start-menu-content"> | |
| <div class="pinned-apps"> | |
| <h3>Pinned</h3> | |
| <div class="app-grid"> | |
| <div class="app" onclick="openWindow('explorer')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="File Explorer"> | |
| <span>File Explorer</span> | |
| </div> | |
| <div class="app" onclick="openWindow('notepad')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2809/2809932.png" alt="Notepad"> | |
| <span>Notepad</span> | |
| </div> | |
| <div class="app" onclick="openWindow('calculator')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/210/210826.png" alt="Calculator"> | |
| <span>Calculator</span> | |
| </div> | |
| <div class="app" onclick="openWindow('chrome')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/888/888882.png" alt="Chrome"> | |
| <span>Google Chrome</span> | |
| </div> | |
| <div class="app" onclick="openWindow('settings')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965278.png" alt="Settings"> | |
| <span>Settings</span> | |
| </div> | |
| <div class="app" onclick="openWindow('store')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965256.png" alt="Store"> | |
| <span>Microsoft Store</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="recommended"> | |
| <h3>Recommended</h3> | |
| <div class="app-grid"> | |
| <div class="app" onclick="openWindow('word')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965283.png" alt="Word"> | |
| <span>Word</span> | |
| </div> | |
| <div class="app" onclick="openWindow('excel')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965335.png" alt="Excel"> | |
| <span>Excel</span> | |
| </div> | |
| <div class="app" onclick="openWindow('powerpoint')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965291.png" alt="PowerPoint"> | |
| <span>PowerPoint</span> | |
| </div> | |
| <div class="app" onclick="openWindow('vscode')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2913/2913111.png" alt="Visual Studio"> | |
| <span>Visual Studio</span> | |
| </div> | |
| <div class="app" onclick="openWindow('edge')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/5968/5968666.png" alt="Edge"> | |
| <span>Edge</span> | |
| </div> | |
| <div class="app" onclick="openWindow('outlook')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/3046/3046125.png" alt="Outlook"> | |
| <span>Outlook</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="user-profile" onclick="openWindow('user-settings')"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/149/149071.png" alt="User"> | |
| <span>Cyberpunk User</span> | |
| </div> | |
| </div> | |
| <!-- File Explorer Window --> | |
| <div class="window" id="explorerWindow" style="width: 800px; height: 500px; top: 100px; left: 100px;"> | |
| <div class="window-header"> | |
| <img class="window-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Explorer"> | |
| <div class="window-title">File Explorer</div> | |
| <div class="window-controls"> | |
| <button class="window-btn minimize" onclick="minimizeWindow('explorerWindow')"><i class="fas fa-minus"></i></button> | |
| <button class="window-btn maximize" onclick="toggleMaximize('explorerWindow')"><i class="far fa-square"></i></button> | |
| <button class="window-btn close" onclick="closeWindow('explorerWindow')"><i class="fas fa-times"></i></button> | |
| </div> | |
| </div> | |
| <div class="explorer-nav"> | |
| <button class="explorer-nav-btn"><i class="fas fa-arrow-left"></i></button> | |
| <button class="explorer-nav-btn"><i class="fas fa-arrow-right"></i></button> | |
| <button class="explorer-nav-btn"><i class="fas fa-arrow-up"></i></button> | |
| <input type="text" class="explorer-path" value="This PC > Documents"> | |
| </div> | |
| <div class="explorer-body"> | |
| <div class="explorer-sidebar"> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965318.png" alt="Desktop"> | |
| <span>Desktop</span> | |
| </div> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965316.png" alt="Documents"> | |
| <span>Documents</span> | |
| </div> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965311.png" alt="Downloads"> | |
| <span>Downloads</span> | |
| </div> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965334.png" alt="Music"> | |
| <span>Music</span> | |
| </div> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965351.png" alt="Pictures"> | |
| <span>Pictures</span> | |
| </div> | |
| <div class="folder"> | |
| <img class="folder-icon" src="https://cdn-icons-png.flaticon.com/512/2965/2965341.png" alt="Videos"> | |
| <span>Videos</span> | |
| </div> | |
| </div> | |
| <div class="explorer-files"> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Folder"> | |
| <span>Documents</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Folder"> | |
| <span>Downloads</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Folder"> | |
| <span>Music</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Folder"> | |
| <span>Pictures</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2965/2965300.png" alt="Folder"> | |
| <span>Videos</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/2809/2809932.png" alt="File"> | |
| <span>notes.txt</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/210/210826.png" alt="File"> | |
| <span>calc.exe</span> | |
| </div> | |
| <div class="file"> | |
| <img src="https://cdn-icons-png.flaticon.com/512/888/888882.png" alt="File"> | |
| <span>chrome.exe</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="window-footer"> | |
| <div>8 items</div> | |
| <div>150 GB free of 256 GB</div> | |
| </div> | |
| <!-- Resize handles --> | |
| <div class="resize-handle top"></div> | |
| <div class="resize-handle right"></div> | |
| <div class="resize-handle bottom"></div> | |
| <div class="resize-handle left"></div> | |
| <div class="resize-handle top-left"></div> | |
| <div class="resize-handle top-right"></div> | |
| <div class="resize-handle bottom-left"></div> | |
| <div class="resize-handle bottom-right"></div> | |
| </div> | |
| <!-- Notepad Window --> | |
| <div class="window" id="notepadWindow" style="width: 600px; height: 400px; top: 150px; left: 200px;"> | |
| <div class="window-header"> | |
| <img class="window-icon" src="https://cdn-icons-png.flaticon.com/512/2809/2809932.png" alt="Notepad"> | |
| <div class="window-title">Untitled - Notepad</div> | |
| <div class="window-controls"> | |
| <button class="window-btn minimize" onclick="minimizeWindow('notepadWindow')"><i class="fas fa-minus"></i></button> | |
| <button class="window-btn maximize" onclick="toggleMaximize('notepadWindow')"><i class="far fa-square"></i></button> | |
| <button class="window-btn close" onclick="closeWindow('notepadWindow')"><i class="fas fa-times"></i></button> | |
| </div> | |
| </div> | |
| <div class="window-content"> | |
| <textarea class="notepad-textarea">Welcome to Cyberpunk Notepad! | |
| This is a rebellious text editor for the digital underworld. | |
| • Hack the planet | |
| • Break the rules | |
| • Code with attitude | |
| Remember: | |
| - The system is your playground | |
| - Conformity is the enemy | |
| - Style matters as much as function | |
| Now go forth and create something that would make the establishment nervous!</textarea> | |
| </div> | |
| <div class="window-footer"> | |
| <div>Ln 10, Col 1</div> | |
| <div>Windows (CRLF)</div> | |
| <div>UTF-8</div> | |
| </div> | |
| <!-- Resize handles --> | |
| <div class="resize-handle top"></div> | |
| <div class="resize-handle right"></div> | |
| <div class="resize-handle bottom"></div> | |
| <div class="resize-handle left"></div> | |
| <div class="resize-handle top-left"></div> | |
| <div class="resize-handle top-right"></div> | |
| <div class="resize-handle bottom-left"></div> | |
| <div class="resize-handle bottom-right"></div> | |
| </div> | |
| <!-- Calculator Window --> | |
| <div class="window" id="calculatorWindow" style="width: 300px; height: 400px; top: 200px; left: 300px;"> | |
| <div class="window-header"> | |
| <img class="window-icon" src="https://cdn-icons-png.flaticon.com/512/210/210826.png" alt="Calculator"> | |
| <div class="window-title">Calculator</div> | |
| <div class="window-controls"> | |
| <button class="window-btn minimize" onclick="minimizeWindow('calculatorWindow')"><i class="fas fa-minus"></i></button> | |
| <button class="window-btn maximize" onclick="toggleMaximize('calculatorWindow')"><i class="far fa-square"></i></button> | |
| <button class="window-btn close" onclick="closeWindow('calculatorWindow')"><i class="fas fa-times"></i></button> | |
| </div> | |
| </div> | |
| <div class="window-content"> | |
| <div class="calculator"> | |
| <div class="calculator-display" id="calcDisplay">0</div> | |
| <button class="calculator-btn clear" onclick="clearCalculator()">C</button> | |
| <button class="calculator-btn" onclick="appendToCalc('(')">(</button> | |
| <button class="calculator-btn" onclick="appendToCalc(')')">)</button> | |
| <button class="calculator-btn operator" onclick="appendToCalc('/')">/</button> | |
| <button class="calculator-btn" onclick="appendToCalc('7')">7</button> | |
| <button class="calculator-btn" onclick="appendToCalc('8')">8</button> | |
| <button class="calculator-btn" onclick="appendToCalc('9')">9</button> | |
| <button class="calculator-btn operator" onclick="appendToCalc('*')">×</button> | |
| <button class="calculator-btn" onclick="appendToCalc('4')">4</button> | |
| <button class="calculator-btn" onclick="appendToCalc('5')">5</button> | |
| <button class="calculator-btn" onclick="appendToCalc('6')">6</button> | |
| <button class="calculator-btn operator" onclick="appendToCalc('-')">-</button> | |
| <button class="calculator-btn" onclick="appendToCalc('1')">1</button> | |
| <button class="calculator-btn" onclick="appendToCalc('2')">2</button> | |
| <button class="calculator-btn" onclick="appendToCalc('3')">3</button> | |
| <button class="calculator-btn operator" onclick="appendToCalc('+')">+</button> | |
| <button class="calculator-btn" onclick="appendToCalc('0')">0</button> | |
| <button class="calculator-btn" onclick="appendToCalc('.')">.</button> | |
| <button class="calculator-btn" onclick="backspaceCalc()">⌫</button> | |
| <button class="calculator-btn equals" onclick="calculateResult()">=</button> | |
| </div> | |
| </div> | |
| <!-- Resize handles --> | |
| <div class="resize-handle top"></div> | |
| <div class="resize-handle right"></div> | |
| <div class="resize-handle bottom"></div> | |
| <div class="resize-handle left"></div> | |
| <div class="resize-handle top-left"></div> | |
| <div class="resize-handle top-right"></div> | |
| <div class="resize-handle bottom-left"></div> | |
| <div class="resize-handle bottom-right"></div> | |
| </div> | |
| <!-- Chrome Window --> | |
| <div class="window" id="chromeWindow" style="width: 800px; height: 600px; top: 50px; left: 150px;"> | |
| <div class="window-header"> | |
| <img class="window-icon" src="https://cdn-icons-png.flaticon.com/512/888/888882.png" alt="Chrome"> | |
| <div class="window-title">Google Chrome</div> | |
| <div class="window-controls"> | |
| <button class="window-btn minimize" onclick="minimizeWindow('chromeWindow')"><i class="fas fa-minus"></i></button> | |
| <button class="window-btn maximize" onclick="toggleMaximize('chromeWindow')"><i class="far fa-square"></i></button> | |
| <button class="window-btn close" onclick="closeWindow('chromeWindow')"><i class="fas fa-times"></i></button> | |
| </div> | |
| </div> | |
| <div class="window-content"> | |
| <div style="text-align: center; padding-top: 50px;"> | |
| <img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" alt="Google" style="width: 200px; margin-bottom: 30px;"> | |
| <div style="width: 80%; margin: 0 auto; position: relative;"> | |
| <input type="text" style="width: 100%; padding: 12px 20px; border-radius: 24px; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); color: white; outline: none;"> | |
| <i class="fas fa-search" style="position: absolute; right: 20px; top: 12px; color: rgba(255,255,255,0.5);"></i> | |
| </div> | |
| <div style="margin-top: 30px;"> | |
| <button style="padding: 10px 16px; margin: 0 5px; background: rgba(255,255,255,0.1); border: none; border-radius: 4px; color: white; cursor: pointer;">Google Search</button> | |
| <button style="padding: 10px 16px; margin: 0 5px; background: rgba(255,255,255,0.1); border: none; border-radius: 4px; color: white; cursor: pointer;">I'm Feeling Lucky</button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Resize handles --> | |
| <div class="resize-handle top"></div> | |
| <div class="resize-handle right"></div> | |
| <div class="resize-handle bottom"></div> | |
| <div class="resize-handle left"></div> | |
| <div class="resize-handle top-left"></div> | |
| <div class="resize-handle top-right"></div> | |
| <div class="resize-handle bottom-left"></div> | |
| <div class="resize-handle bottom-right"></div> | |
| </div> | |
| <!-- Terminal Window --> | |
| <div class="window" id="terminalWindow" style="width: 600px; height: 400px; top: 100px; left: 200px;"> | |
| <div class="window-header"> | |
| <img class="window-icon" src="https://cdn-icons-png.flaticon.com/512/6124/6124995.png" alt="Terminal"> | |
| <div class="window-title">Terminal</div> | |
| <div class="window-controls"> | |
| <button class="window-btn minimize" onclick="minimizeWindow('terminalWindow')"><i class="fas fa-minus"></i></button> | |
| <button class="window-btn maximize" onclick="toggleMaximize('terminalWindow')"><i class="far fa-square"></i></button> | |
| <button class="window-btn close" onclick="closeWindow('terminalWindow')"><i class="fas fa-times"></i></button> | |
| </div> | |
| </div> | |
| <div class="window-content" style="background: #1e1e1e; color: #0f0; font-family: 'Courier New', monospace; padding: 10px; white-space: pre;"> | |
| <div>Microsoft Windows [Version 10.0.19042.1237]</div> | |
| <div>(c) Microsoft Corporation. All rights reserved.</div> | |
| <br> | |
| <div>C:\Users\Cyberpunk> <span id="terminalInput" contenteditable="true" style="outline: none;"></span> | |
| </div> | |
| <!-- Resize handles --> | |
| <div class="resize-handle top"></div> | |
| <div class="resize-handle right"></div> | |
| <div class="resize-handle bottom"></div> | |
| <div class="resize-handle left"></div> | |
| <div class="resize-handle top-left"></div> | |
| <div class="resize-handle top-right"></div> | |
| <div class="resize-handle bottom-left"></div> | |
| <div class="resize-handle bottom-right"></div> | |
| </div> | |
| <!-- Ghost preview for resizing --> | |
| <div class="resize-ghost" id="resizeGhost"></div> | |
| <!-- Context Menu --> | |
| <div class="context-menu" id="contextMenu"> | |
| <div class="context-menu-item" onclick="openWindow('explorer')"> | |
| <i class="fas fa-folder-open"></i> Open Explorer | |
| </div> | |
| <div class="context-menu-item" onclick="openWindow('notepad')"> | |
| <i class="fas fa-edit"></i> New Text File | |
| </div> | |
| <div class="context-menu-divider"></div> | |
| <div class="context-menu-item"> | |
| <i class="fas fa-palette"></i> Display Settings | |
| </div> | |
| <div class="context-menu-item"> | |
| <i class="fas fa-cog"></i> Personalize | |
| </div> | |
| <div class="context-menu-divider"></div> | |
| <div class="context-menu-item" onclick="refreshDesktop()"> | |
| <i class="fas fa-sync-alt"></i> Refresh | |
| </div> | |
| </div> | |
| <script> | |
| // Clock functionality - keeps time like a cyberpunk watch | |
| function updateClock() { | |
| const now = new Date(); | |
| const hours = now.getHours(); | |
| const minutes = now.getMinutes().toString().padStart(2, '0'); | |
| const ampm = hours >= 12 ? 'PM' : 'AM'; | |
| const formattedHours = hours % 12 || 12; | |
| document.getElementById('clock').textContent = `${formattedHours}:${minutes} ${ampm}`; | |
| } | |
| // Start the clock and keep it ticking | |
| setInterval(updateClock, 1000); | |
| updateClock(); | |
| // Start menu functionality - the rebel's command center | |
| function toggleStartMenu() { | |
| const startMenu = document.getElementById('startMenu'); | |
| if (startMenu.classList.contains('visible')) { | |
| startMenu.classList.remove('visible'); | |
| setTimeout(() => { startMenu.style.display = 'none'; }, 200); | |
| } else { | |
| startMenu.style.display = 'block'; | |
| setTimeout(() => { startMenu.classList.add('visible'); }, 10); | |
| } | |
| } | |
| // Close start menu when clicking outside - security measure | |
| document.addEventListener('click', function(event) { | |
| const startMenu = document.getElementById('startMenu'); | |
| const startButton = document.getElementById('startButton'); | |
| if (!startMenu.contains(event.target) && event.target !== startButton && | |
| !event.target.closest('.window') && !event.target.closest('.desktop-icon')) { | |
| startMenu.classList.remove('visible'); | |
| setTimeout(() => { startMenu.style.display = 'none'; }, 200); | |
| } | |
| }); | |
| // Window management system - the rebel's toolkit | |
| const windows = { | |
| explorer: document.getElementById('explorerWindow'), | |
| notepad: document.getElementById('notepadWindow'), | |
| calculator: document.getElementById('calculatorWindow'), | |
| chrome: document.getElementById('chromeWindow'), | |
| terminal: document.getElementById('terminalWindow') | |
| }; | |
| // Open a window with style | |
| function openWindow(windowId) { | |
| const window = windows[windowId]; | |
| if (window) { | |
| window.classList.add('active'); | |
| document.getElementById('startMenu').classList.remove('visible'); | |
| setTimeout(() => { document.getElementById('startMenu').style.display = 'none'; }, 200); | |
| // Update taskbar icon | |
| const taskbarIcon = document.getElementById(`${windowId}TaskbarIcon`); | |
| if (taskbarIcon) { | |
| taskbarIcon.classList.add('active'); | |
| } | |
| } | |
| } | |
| // Toggle window visibility - for the taskbar icons | |
| function toggleWindow(windowId) { | |
| const window = windows[windowId]; | |
| if (window) { | |
| if (window.classList.contains('active')) { | |
| minimizeWindow(windowId); | |
| } else { | |
| openWindow(windowId); | |
| } | |
| } | |
| } | |
| // Close a window - like shutting down the system | |
| function closeWindow(windowId) { | |
| const window = windows[windowId]; | |
| if (window) { | |
| window.classList.remove('active'); | |
| // Update taskbar icon | |
| const taskbarIcon = document.getElementById(`${windowId}TaskbarIcon`); | |
| if (taskbarIcon) { | |
| taskbarIcon.classList.remove('active'); | |
| } | |
| } | |
| } | |
| // Minimize a window - hide it but keep it running | |
| function minimizeWindow(windowId) { | |
| const window = windows[windowId]; | |
| if (window) { | |
| window.classList.remove('active'); | |
| } | |
| } | |
| // Toggle maximize - go fullscreen or back to normal | |
| function toggleMaximize(windowId) { | |
| const window = windows[windowId]; | |
| if (window) { | |
| window.classList.toggle('maximized'); | |
| const maximizeBtn = window.querySelector('.maximize i'); | |
| if (window.classList.contains('maximized')) { | |
| maximizeBtn.classList.remove('fa-square'); | |
| maximizeBtn.classList.add('fa-clone'); | |
| } else { | |
| maximizeBtn.classList.remove('fa-clone'); | |
| maximizeBtn.classList.add('fa-square'); | |
| } | |
| } | |
| } | |
| // Make windows draggable - the rebel's playground | |
| windows.forEach((window, windowId) => { | |
| const header = window.querySelector('.window-header'); | |
| let isDragging = false; | |
| let offsetX, offsetY; | |
| let startX, startY; | |
| header.addEventListener('mousedown', function(e) { | |
| // Don't drag if we're resizing | |
| if (e.target.classList.contains('resize-handle')) return; | |
| isDragging = true; | |
| offsetX = e.clientX - window.getBoundingClientRect().left; | |
| offsetY = e.clientY - window.getBoundingClientRect().top; | |
| startX = window.offsetLeft; | |
| startY = window.offsetTop; | |
| // Bring to front | |
| windows.forEach(w => { | |
| if (w !== window) w.style.zIndex = 10; | |
| }); | |
| window.style.zIndex = 100; | |
| }); | |
| document.addEventListener('mousemove', function(e) { | |
| if (!isDragging) return; | |
| // Calculate new position | |
| let x = e.clientX - offsetX; | |
| let y = e.clientY - offsetY; | |
| // Constrain to viewport | |
| const maxX = window.innerWidth - window.offsetWidth; | |
| const maxY = window.innerHeight - window.offsetHeight; | |
| x = Math.max(0, Math.min(x, maxX)); | |
| y = Math.max(0, Math.min(y, maxY)); | |
| window.style.left = x + 'px'; | |
| window.style.top = y + 'px'; | |
| }); | |
| document.addEventListener('mouseup', function() { | |
| isDragging = false; | |
| }); | |
| }); | |
| // Resize functionality - make it fit your rebellious needs | |
| windows.forEach((window, windowId) => { | |
| const resizeHandles = window.querySelectorAll('.resize-handle'); | |
| let isResizing = false; | |
| let resizeDirection = ''; | |
| let startX, startY, startWidth, startHeight; | |
| let ghost = document.getElementById('resizeGhost'); | |
| resizeHandles.forEach(handle => { | |
| handle.addEventListener('mousedown', function(e) { | |
| e.preventDefault(); | |
| isResizing = true; | |
| resizeDirection = handle.classList[1]; | |
| startX = e.clientX; | |
| startY = e.clientY; | |
| startWidth = window.offsetWidth; | |
| startHeight = window.offsetHeight; | |
| // Show ghost preview | |
| ghost.style.display = 'block'; | |
| ghost.style.width = startWidth + 'px'; | |
| ghost.style.height = startHeight + 'px'; | |
| ghost.style.left = window.offsetLeft + 'px'; | |
| ghost.style.top = window.offsetTop + 'px'; | |
| // Bring to front | |
| windows.forEach(w => { | |
| if (w !== window) w.style.zIndex = 10; | |
| }); | |
| window.style.zIndex = 100; | |
| ghost.style.zIndex = 1000; | |
| }); | |
| }); | |
| document.addEventListener('mousemove', function(e) { | |
| if (!isResizing) return; | |
| const minWidth = 150; | |
| const minHeight = 100; | |
| let newWidth = startWidth; | |
| let newHeight = startHeight; | |
| let newLeft = window.offsetLeft; | |
| let newTop = window.offsetTop; | |
| // Calculate new dimensions based on resize direction | |
| if (resizeDirection.includes('right')) { | |
| newWidth = startWidth + (e.clientX - startX); | |
| } | |
| if (resizeDirection.includes('left')) { | |
| newWidth = startWidth - (e.clientX - startX); | |
| newLeft = window.offsetLeft + (e.clientX - startX); | |
| } | |
| if (resizeDirection.includes('bottom')) { | |
| newHeight = startHeight + (e.clientY - startY); | |
| } | |
| if (resizeDirection.includes('top')) { | |
| newHeight = startHeight - (e.clientY - startY); | |
| newTop = window.offsetTop + (e.clientY - startY); | |
| } | |
| // Enforce minimum size | |
| if (newWidth < minWidth) { | |
| if (resizeDirection.includes('left')) { | |
| newLeft = window.offsetLeft + startWidth - minWidth; | |
| } | |
| newWidth = minWidth; | |
| } | |
| if (newHeight < minHeight) { | |
| if (resizeDirection.includes('top')) { | |
| newTop = window.offsetTop + startHeight - minHeight; | |
| } | |
| newHeight = minHeight; | |
| } | |
| // Constrain to viewport | |
| if (newLeft < 0) { | |
| newWidth += newLeft; | |
| newLeft = 0; | |
| } | |
| if (newTop < 0) { | |
| newHeight += newTop; | |
| newTop = 0; | |
| } | |
| if (newLeft + newWidth > window.innerWidth) { | |
| newWidth = window.innerWidth - newLeft; | |
| } | |
| if (newTop + newHeight > window.innerHeight) { | |
| newHeight = window.innerHeight - newTop; | |
| } | |
| // Update ghost preview | |
| ghost.style.width = newWidth + 'px'; | |
| ghost.style.height = newHeight + 'px'; | |
| ghost.style.left = newLeft + 'px'; | |
| ghost.style.top = newTop + 'px'; | |
| }); | |
| document.addEventListener('mouseup', function() { | |
| if (!isResizing) return; | |
| isResizing = false; | |
| // Apply the resize to the actual window | |
| window.style.width = ghost.style.width; | |
| window.style.height = ghost.style.height; | |
| window.style.left = ghost.style.left; | |
| window.style.top = ghost.style.top; | |
| // Hide ghost | |
| ghost.style.display = 'none'; | |
| }); | |
| }); | |
| // Calculator functionality - for all your rebellious calculations | |
| let calcValue = '0'; | |
| const calcDisplay = document.getElementById('calcDisplay'); | |
| function updateCalcDisplay() { | |
| calcDisplay.textContent = calcValue; | |
| } | |
| function appendToCalc(value) { | |
| if (calcValue === '0' && value !== '.') { | |
| calcValue = value; | |
| } else { | |
| calcValue += value; | |
| } | |
| updateCalcDisplay(); | |
| } | |
| function clearCalculator() { | |
| calcValue = '0'; | |
| updateCalcDisplay(); | |
| } | |
| function backspaceCalc() { | |
| if (calcValue.length === 1) { | |
| calcValue = '0'; | |
| } else { | |
| calcValue = calcValue.slice(0, -1); | |
| } | |
| updateCalcDisplay(); | |
| } | |
| function calculateResult() { | |
| try { | |
| calcValue = eval(calcValue).toString(); | |
| updateCalcDisplay(); | |
| } catch (e) { | |
| calcValue = 'Error'; | |
| updateCalcDisplay(); | |
| setTimeout(clearCalculator, 1000); | |
| } | |
| } | |
| // Terminal functionality - the hacker's playground | |
| const terminalInput = document.getElementById('terminalInput'); | |
| terminalInput.addEventListener('keydown', function(e) { | |
| if (e.key === 'Enter') { | |
| const command = terminalInput.textContent.trim(); | |
| terminalInput.textContent = ''; | |
| // Add the command to history | |
| const terminalContent = document.querySelector('.terminal-window .window-content'); | |
| terminalContent.innerHTML += `<div>C:\\Users\\Cyberpunk> ${command}</div>`; | |
| // Process command | |
| let response = ''; | |
| switch (command.toLowerCase()) { | |
| case 'help': | |
| response = 'Available commands: help, clear, about, hack'; | |
| break; | |
| case 'clear': | |
| terminalContent.innerHTML = '<div>Microsoft Windows [Version 10.0.19042.1237]</div><div>(c) Microsoft Corporation. All rights reserved.</div><br>'; | |
| return; | |
| case 'about': | |
| response = 'Cyberpunk Terminal v1.0 - For rebels only'; | |
| break; | |
| case 'hack': | |
| response = 'Hacking the mainframe... Just kidding!'; | |
| break; | |
| case '': | |
| return; | |
| default: | |
| response = `'${command}' is not recognized as an internal or external command, operable program or batch file.`; | |
| } | |
| terminalContent.innerHTML += `<div>${response}</div><br><div>C:\\Users\\Cyberpunk> </div>`; | |
| terminalInput = terminalContent.querySelector('#terminalInput'); | |
| terminalInput.focus(); | |
| // Scroll to bottom | |
| terminalContent.scrollTop = terminalContent.scrollHeight; | |
| } | |
| }); | |
| // Context menu - right-click goodness | |
| document.getElementById('desktop').addEventListener('contextmenu', function(e) { | |
| e.preventDefault(); | |
| const contextMenu = document.getElementById('contextMenu'); | |
| contextMenu.style.left = e.clientX + 'px'; | |
| contextMenu.style.top = e.clientY + 'px'; | |
| contextMenu.classList.add('visible'); | |
| // Close when clicking elsewhere | |
| const closeMenu = function() { | |
| contextMenu.classList.remove('visible'); | |
| document.removeEventListener('click', closeMenu); | |
| }; | |
| document.addEventListener('click', closeMenu); | |
| }); | |
| // Refresh desktop - because sometimes you need a fresh start | |
| function refreshDesktop() { | |
| // Just for show - in a real app you might reload content | |
| console.log('Desktop refreshed!'); | |
| } | |
| // Open File Explorer by default - let's get this party started | |
| openWindow('explorer'); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Boobs00/myspace" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |