Skip to content

Commit 8d8edbf

Browse files
Redesign website with Nimo-inspired aesthetic
Warm off-white canvas with grain texture, floating dock pill taskbar, high-radius glass windows, monochrome color palette, pill-shaped buttons.
1 parent 178637b commit 8d8edbf

6 files changed

Lines changed: 129 additions & 112 deletions

File tree

website/css/desktop.css

Lines changed: 66 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,20 @@
44
.desktop {
55
position: fixed;
66
inset: 0;
7-
background: var(--bg-desktop);
8-
background-image:
9-
radial-gradient(ellipse at 20% 50%, rgba(108, 92, 231, 0.15) 0%, transparent 50%),
10-
radial-gradient(ellipse at 80% 20%, rgba(0, 184, 148, 0.1) 0%, transparent 50%),
11-
radial-gradient(ellipse at 50% 80%, rgba(253, 203, 110, 0.08) 0%, transparent 50%);
7+
background-color: var(--bg-desktop);
128
z-index: var(--z-desktop);
9+
overflow: hidden;
10+
}
11+
12+
/* Grainy texture overlay */
13+
.desktop::before {
14+
content: "";
15+
position: fixed;
16+
inset: 0;
17+
opacity: 0.22;
18+
pointer-events: none;
19+
z-index: 1;
20+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
1321
}
1422

1523
/* Icon grid */
@@ -20,7 +28,7 @@
2028
display: flex;
2129
flex-direction: column;
2230
gap: 8px;
23-
z-index: calc(var(--z-desktop) + 1);
31+
z-index: calc(var(--z-desktop) + 2);
2432
}
2533

2634
.desktop-icon {
@@ -38,27 +46,27 @@
3846
background: var(--bg-icon-hover);
3947
}
4048
.desktop-icon:active {
41-
background: rgba(255, 255, 255, 0.12);
49+
background: rgba(0, 0, 0, 0.1);
4250
}
4351

4452
.desktop-icon .icon-img {
45-
width: 48px;
46-
height: 48px;
53+
width: 52px;
54+
height: 52px;
4755
display: flex;
4856
align-items: center;
4957
justify-content: center;
50-
font-size: 32px;
51-
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
58+
font-size: 36px;
5259
}
5360

5461
.desktop-icon .icon-label {
55-
font-size: 0.6875rem;
56-
color: var(--text-desktop);
62+
font-size: 0.8rem;
63+
font-weight: 600;
64+
color: #2a2a2a;
5765
text-align: center;
58-
text-shadow: 0 1px 3px var(--text-desktop-shadow);
66+
text-shadow: 0 1px 3px rgba(255, 255, 255, 0.5);
5967
line-height: 1.3;
6068
word-break: break-word;
61-
max-width: 76px;
69+
max-width: 80px;
6270
}
6371

6472
/* Window */
@@ -93,13 +101,13 @@
93101
.window-header {
94102
display: flex;
95103
align-items: center;
96-
height: 38px;
97-
padding: 0 12px;
104+
height: 44px;
105+
padding: 0 16px;
98106
background: var(--bg-window-header);
99107
border-bottom: 1px solid var(--border-subtle);
100108
cursor: default;
101109
flex-shrink: 0;
102-
gap: 8px;
110+
gap: 10px;
103111
}
104112
.window.focused .window-header {
105113
background: var(--bg-window-header);
@@ -237,42 +245,43 @@
237245
.resize-handle.se { bottom: -3px; right: -3px; width: 12px; height: 12px; cursor: se-resize; }
238246
.resize-handle.sw { bottom: -3px; left: -3px; width: 12px; height: 12px; cursor: sw-resize; }
239247

240-
/* Taskbar */
248+
/* Taskbar — floating dock pill */
241249
.taskbar {
242250
position: fixed;
243-
bottom: 0;
244-
left: 0;
245-
right: 0;
246-
height: 48px;
251+
bottom: 24px;
252+
left: 50%;
253+
transform: translateX(-50%);
254+
right: auto;
255+
height: auto;
247256
background: var(--bg-taskbar);
248-
backdrop-filter: blur(20px);
249-
-webkit-backdrop-filter: blur(20px);
250-
border-top: 1px solid rgba(255, 255, 255, 0.08);
257+
border: 1px solid rgba(255, 255, 255, 0.8);
258+
border-radius: 100px;
251259
display: flex;
252260
align-items: center;
253-
padding: 0 16px;
261+
padding: 8px 10px;
254262
z-index: var(--z-taskbar);
255263
box-shadow: var(--shadow-taskbar);
256-
gap: 4px;
264+
gap: 6px;
265+
max-width: 90vw;
257266
}
258267

259268
.taskbar-brand {
260269
display: flex;
261270
align-items: center;
262-
gap: 8px;
263-
padding: 0 12px 0 4px;
271+
gap: 6px;
272+
padding: 0 10px 0 6px;
264273
height: 34px;
265-
border-right: 1px solid rgba(255, 255, 255, 0.1);
266-
margin-right: 4px;
274+
border-right: 1px solid rgba(0, 0, 0, 0.06);
275+
margin-right: 2px;
267276
flex-shrink: 0;
268277
}
269278
.taskbar-brand .brand-icon {
270-
font-size: 18px;
279+
font-size: 16px;
271280
}
272281
.taskbar-brand .brand-text {
273282
font-size: 0.8125rem;
274283
font-weight: 600;
275-
color: #fff;
284+
color: var(--text-primary);
276285
letter-spacing: -0.01em;
277286
}
278287

@@ -287,33 +296,34 @@
287296
.taskbar-item {
288297
display: flex;
289298
align-items: center;
290-
gap: 6px;
291-
padding: 4px 12px;
299+
gap: 5px;
300+
padding: 6px 12px;
292301
height: 34px;
293-
border-radius: 6px;
302+
border-radius: 100px;
294303
font-size: 0.75rem;
295-
color: rgba(255, 255, 255, 0.7);
304+
color: var(--text-secondary);
296305
cursor: pointer;
297306
transition: all var(--transition-fast);
298307
white-space: nowrap;
299308
flex-shrink: 0;
300309
}
301310
.taskbar-item:hover {
302-
background: rgba(255, 255, 255, 0.1);
303-
color: #fff;
311+
background: rgba(0, 0, 0, 0.04);
312+
color: var(--text-primary);
304313
}
305314
.taskbar-item.active {
306-
background: rgba(255, 255, 255, 0.15);
307-
color: #fff;
315+
background: rgba(0, 0, 0, 0.06);
316+
color: var(--text-primary);
317+
font-weight: 600;
308318
}
309319
.taskbar-item .item-icon {
310320
font-size: 14px;
311321
}
312322

313323
.taskbar-clock {
314324
font-size: 0.75rem;
315-
color: rgba(255, 255, 255, 0.7);
316-
padding: 0 8px;
325+
color: var(--text-muted);
326+
padding: 0 8px 0 4px;
317327
flex-shrink: 0;
318328
font-variant-numeric: tabular-nums;
319329
}
@@ -350,7 +360,8 @@
350360
}
351361

352362
.taskbar {
353-
height: 44px;
363+
bottom: 16px;
364+
padding: 6px 10px;
354365
}
355366
.taskbar-windows {
356367
display: none;
@@ -381,8 +392,8 @@
381392
border-bottom: none;
382393
}
383394
.comparison-table .highlight {
384-
color: var(--accent);
385-
font-weight: 600;
395+
color: var(--text-primary);
396+
font-weight: 700;
386397
}
387398

388399
/* Welcome window special styling */
@@ -443,9 +454,9 @@
443454
margin-top: 16px;
444455
}
445456
.example-card {
446-
background: rgba(0,0,0,0.03);
447-
border: 1px solid rgba(0,0,0,0.06);
448-
border-radius: 10px;
457+
background: #fafaf9;
458+
border: 1px solid rgba(0,0,0,0.03);
459+
border-radius: 16px;
449460
padding: 14px 16px;
450461
}
451462
.example-header {
@@ -467,12 +478,12 @@
467478
font-size: 0.95rem;
468479
}
469480
.example-size {
470-
font-size: 0.75rem;
471-
color: var(--accent);
481+
font-size: 0.7rem;
482+
color: var(--text-primary);
472483
font-weight: 600;
473-
background: rgba(108, 92, 231, 0.08);
474-
padding: 2px 8px;
475-
border-radius: 4px;
484+
background: var(--accent-light);
485+
padding: 4px 10px;
486+
border-radius: 100px;
476487
}
477488
.example-desc {
478489
font-size: 0.8rem;

website/css/playground.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
color: #fff;
6666
}
6767
.example-list li.active {
68-
background: rgba(108, 92, 231, 0.2);
68+
background: rgba(255, 255, 255, 0.12);
6969
color: #fff;
7070
}
7171

@@ -105,7 +105,7 @@
105105
color: white;
106106
}
107107
.toolbar-btn.run:hover {
108-
background: #5b4bd5;
108+
background: #333;
109109
}
110110

111111
.toolbar-size {

website/css/shared.css

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
/* shared.css — Typography, colors, resets, responsive */
22

33
:root {
4-
--bg-desktop: #1a1b2e;
4+
--bg-desktop: #f5f4f0;
55
--bg-window: #ffffff;
6-
--bg-window-header: #f0f0f3;
7-
--bg-window-header-inactive: #e8e8eb;
8-
--bg-taskbar: rgba(30, 31, 48, 0.92);
9-
--bg-icon-hover: rgba(255, 255, 255, 0.08);
10-
--bg-tooltip: rgba(20, 20, 30, 0.95);
11-
12-
--text-primary: #1d1d1f;
13-
--text-secondary: #6e6e73;
14-
--text-muted: #86868b;
15-
--text-desktop: #e0e0e6;
16-
--text-desktop-shadow: rgba(0, 0, 0, 0.6);
17-
--text-link: #0071e3;
18-
19-
--border-window: rgba(0, 0, 0, 0.12);
20-
--border-subtle: rgba(0, 0, 0, 0.06);
21-
22-
--shadow-window: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.08);
23-
--shadow-window-focused: 0 12px 48px rgba(0, 0, 0, 0.25), 0 4px 12px rgba(0, 0, 0, 0.12);
24-
--shadow-taskbar: 0 -1px 12px rgba(0, 0, 0, 0.2);
25-
26-
--radius-window: 10px;
27-
--radius-btn: 6px;
28-
--radius-icon: 8px;
6+
--bg-window-header: #fafaf9;
7+
--bg-window-header-inactive: #f5f5f3;
8+
--bg-taskbar: #ffffff;
9+
--bg-icon-hover: rgba(0, 0, 0, 0.04);
10+
--bg-tooltip: rgba(30, 30, 30, 0.9);
11+
12+
--text-primary: #1a1a1a;
13+
--text-secondary: #6b6b6b;
14+
--text-muted: #999999;
15+
--text-desktop: #1a1a1a;
16+
--text-desktop-shadow: none;
17+
--text-link: #1a1a1a;
18+
19+
--border-window: rgba(255, 255, 255, 0.7);
20+
--border-subtle: rgba(0, 0, 0, 0.03);
21+
22+
--shadow-window: 0 30px 60px rgba(0, 0, 0, 0.05);
23+
--shadow-window-focused: 0 30px 60px rgba(0, 0, 0, 0.08);
24+
--shadow-taskbar: 0 15px 40px rgba(0, 0, 0, 0.1);
25+
26+
--radius-window: 32px;
27+
--radius-btn: 14px;
28+
--radius-icon: 16px;
2929

3030
--z-desktop: 1;
3131
--z-window-base: 100;
@@ -42,12 +42,12 @@
4242
--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "JetBrains Mono",
4343
Menlo, Consolas, monospace;
4444

45-
--accent: #6c5ce7;
46-
--accent-light: #a29bfe;
47-
--green: #00b894;
48-
--yellow: #fdcb6e;
49-
--red: #ff6b6b;
50-
--orange: #e17055;
45+
--accent: #1a1a1a;
46+
--accent-light: #f0f0ee;
47+
--green: #40916c;
48+
--yellow: #dda15e;
49+
--red: #e07a5f;
50+
--orange: #d4a373;
5151
}
5252

5353
*, *::before, *::after {
@@ -139,23 +139,29 @@ button {
139139
.btn-primary {
140140
background: var(--accent);
141141
color: white;
142+
border-radius: 100px;
143+
font-weight: 600;
144+
padding: 0.7rem 1.5rem;
142145
}
143146
.btn-primary:hover {
144-
background: #5b4bd5;
147+
background: #333;
145148
transform: translateY(-1px);
146149
}
147150

148151
.btn-secondary {
149-
background: rgba(0, 0, 0, 0.06);
152+
background: var(--accent-light);
150153
color: var(--text-primary);
154+
border-radius: 100px;
155+
font-weight: 600;
156+
padding: 0.7rem 1.5rem;
151157
}
152158
.btn-secondary:hover {
153-
background: rgba(0, 0, 0, 0.1);
159+
background: #e8e8e5;
154160
}
155161

156162
/* Mobile responsive */
157163
@media (max-width: 768px) {
158164
:root {
159-
--radius-window: 12px;
165+
--radius-window: 24px;
160166
}
161167
}

website/js/desktop.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616

1717
// Desktop icon definitions
1818
const icons = [
19-
{ id: 'getting-started', label: 'getting-started.md', icon: '\uD83D\uDCC4', action: openGettingStarted },
20-
{ id: 'examples', label: 'examples/', icon: '\uD83D\uDCC1', action: openExamples },
21-
{ id: 'playground', label: 'playground.app', icon: '\uD83D\uDE80', action: openPlayground },
22-
{ id: 'docs', label: 'docs/', icon: '\uD83D\uDCC1', action: () => window.open('https://github.com/meherpanguluri/lightshell', '_blank') },
23-
{ id: 'benchmarks', label: 'benchmarks.csv', icon: '\uD83D\uDCCA', action: openBenchmarks },
24-
{ id: 'about', label: 'about.txt', icon: '\uD83D\uDCC4', action: openAbout },
25-
{ id: 'github', label: 'github.link', icon: '<img src="assets/icons/github.svg" width="32" height="32" alt="GitHub">', action: () => window.open('https://github.com/meherpanguluri/lightshell', '_blank') },
19+
{ id: 'getting-started', label: 'getting-started.md', icon: '\uD83D\uDCD6', action: openGettingStarted },
20+
{ id: 'examples', label: 'examples/', icon: '\uD83D\uDDC2\uFE0F', action: openExamples },
21+
{ id: 'playground', label: 'playground.app', icon: '\u26A1', action: openPlayground },
22+
{ id: 'docs', label: 'docs/', icon: '\uD83D\uDCDA', action: () => window.open('https://github.com/meherpanguluri/lightshell', '_blank') },
23+
{ id: 'benchmarks', label: 'benchmarks.csv', icon: '\uD83D\uDCC8', action: openBenchmarks },
24+
{ id: 'about', label: 'about.txt', icon: '\uD83D\uDCA1', action: openAbout },
25+
{ id: 'github', label: 'github.link', icon: '<img src="assets/icons/github.svg" width="36" height="36" alt="GitHub" style="filter: brightness(0.2)">', action: () => window.open('https://github.com/meherpanguluri/lightshell', '_blank') },
2626
]
2727

2828
// Render desktop icons

0 commit comments

Comments
 (0)