diff --git a/src/App.css b/src/App.css
index f90339d..fafff60 100644
--- a/src/App.css
+++ b/src/App.css
@@ -1,184 +1,32 @@
-.counter {
- font-size: 16px;
- padding: 5px 10px;
- border-radius: 5px;
- color: var(--accent);
- background: var(--accent-bg);
- border: 2px solid transparent;
- transition: border-color 0.3s;
- margin-bottom: 24px;
+*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
- &:hover {
- border-color: var(--accent-border);
- }
- &:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
- }
+:root {
+ --font-ui: 'Outfit', system-ui, sans-serif;
+ --font-mono: 'Fira Code', 'Courier New', monospace;
+
+ --accent-red: #ff453a;
+ --accent-yellow: #ffd60a;
+ --accent-green: #30d158;
+ --accent-blue: #0a84ff;
+ --accent-purple: #bf5af2;
+ --accent-teal: #64d2ff;
+
+ --glass-bg: rgba(30, 30, 40, 0.55);
+ --glass-border: rgba(255, 255, 255, 0.08);
+ --glass-blur: blur(24px) saturate(1.4);
+ --glass-shadow: 0 8px 40px rgba(0, 0, 0, 0.35);
+ --radius-window: 12px;
+ --radius-icon: 14px;
+
+ --menubar-height: 28px;
+ --dock-height: 72px;
+ --titlebar-height: 36px;
}
-.hero {
- position: relative;
-
- .base,
- .framework,
- .vite {
- inset-inline: 0;
- margin: 0 auto;
- }
-
- .base {
- width: 170px;
- position: relative;
- z-index: 0;
- }
-
- .framework,
- .vite {
- position: absolute;
- }
-
- .framework {
- z-index: 1;
- top: 34px;
- height: 28px;
- transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
- scale(1.4);
- }
-
- .vite {
- z-index: 0;
- top: 107px;
- height: 26px;
- width: auto;
- transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
- scale(0.8);
- }
-}
-
-#center {
- display: flex;
- flex-direction: column;
- gap: 25px;
- place-content: center;
- place-items: center;
- flex-grow: 1;
-
- @media (max-width: 1024px) {
- padding: 32px 20px 24px;
- gap: 18px;
- }
-}
-
-#next-steps {
- display: flex;
- border-top: 1px solid var(--border);
- text-align: left;
-
- & > div {
- flex: 1 1 0;
- padding: 32px;
- @media (max-width: 1024px) {
- padding: 24px 20px;
- }
- }
-
- .icon {
- margin-bottom: 16px;
- width: 22px;
- height: 22px;
- }
-
- @media (max-width: 1024px) {
- flex-direction: column;
- text-align: center;
- }
-}
-
-#docs {
- border-right: 1px solid var(--border);
-
- @media (max-width: 1024px) {
- border-right: none;
- border-bottom: 1px solid var(--border);
- }
-}
-
-#next-steps ul {
- list-style: none;
- padding: 0;
- display: flex;
- gap: 8px;
- margin: 32px 0 0;
-
- .logo {
- height: 18px;
- }
-
- a {
- color: var(--text-h);
- font-size: 16px;
- border-radius: 6px;
- background: var(--social-bg);
- display: flex;
- padding: 6px 12px;
- align-items: center;
- gap: 8px;
- text-decoration: none;
- transition: box-shadow 0.3s;
-
- &:hover {
- box-shadow: var(--shadow);
- }
- .button-icon {
- height: 18px;
- width: 18px;
- }
- }
-
- @media (max-width: 1024px) {
- margin-top: 20px;
- flex-wrap: wrap;
- justify-content: center;
-
- li {
- flex: 1 1 calc(50% - 8px);
- }
-
- a {
- width: 100%;
- justify-content: center;
- box-sizing: border-box;
- }
- }
-}
-
-#spacer {
- height: 88px;
- border-top: 1px solid var(--border);
- @media (max-width: 1024px) {
- height: 48px;
- }
-}
-
-.ticks {
- position: relative;
+html, body, #root {
width: 100%;
-
- &::before,
- &::after {
- content: '';
- position: absolute;
- top: -4.5px;
- border: 5px solid transparent;
- }
-
- &::before {
- left: 0;
- border-left-color: var(--border);
- }
- &::after {
- right: 0;
- border-right-color: var(--border);
- }
+ height: 100%;
+ overflow: hidden;
+ font-family: var(--font-ui);
+ -webkit-font-smoothing: antialiased;
}
diff --git a/src/App.tsx b/src/App.tsx
index 46a5992..cadf235 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,121 +1,19 @@
-import { useState } from 'react'
-import reactLogo from './assets/react.svg'
-import viteLogo from './assets/vite.svg'
-import heroImg from './assets/hero.png'
-import './App.css'
+import { useState } from 'react';
+import { WindowProvider } from './context/WindowContext';
+import BootScreen from './components/BootScreen/BootScreen';
+import Desktop from './components/Desktop/Desktop';
+import './App.css';
-function App() {
- const [count, setCount] = useState(0)
+export default function App() {
+ const [booted, setBooted] = useState(false);
return (
- <>
-
- Edit
-
-
-
Get started
- src/App.tsx and save to test HMR
-
Connect with us
-Join the Vite community
---
-
-
- GitHub
-
-
- -
-
-
- Discord
-
-
- -
-
-
- X.com
-
-
- -
-
-
- Bluesky
-
-
-
-