Compare commits

..

2 Commits

8 changed files with 9 additions and 68 deletions
+4 -1
View File
@@ -84,7 +84,10 @@
/* always-open file menu (the shell's "ls") — only shown on the home page; /* always-open file menu (the shell's "ls") — only shown on the home page;
on subpages it stays in the DOM (hidden) so typed commands still resolve */ on subpages it stays in the DOM (hidden) so typed commands still resolve */
.menu { margin: var(--spacing-sm) 0 0; } /* stays the file list's normal width even when .topbar is widened (below) to
line up the shell/lang-switch with a wider info panel elsewhere — the home
menu was never meant to stretch, only the prompt row + toggle were */
.menu { margin: var(--spacing-sm) 0 0; max-width: var(--container-width); }
body:not(.home) .menu { display: none; } body:not(.home) .menu { display: none; }
/* easter-egg output line — takes no space until it actually has output */ /* easter-egg output line — takes no space until it actually has output */
-1
View File
@@ -44,7 +44,6 @@
["ok", "Mounted /", 50], ["ok", "Mounted /", 50],
["ok", "Mounted /portfolio", 50], ["ok", "Mounted /portfolio", 50],
["ok", "Mounted /about", 50], ["ok", "Mounted /about", 50],
["ok", "Mounted /studio", 50],
["ok", "Mounted /openbureau", 50], ["ok", "Mounted /openbureau", 50],
["ok", "Mounted /cv", 50], ["ok", "Mounted /cv", 50],
["ok", "Mounted /colophon", 110], ["ok", "Mounted /colophon", 110],
+3 -4
View File
@@ -110,7 +110,7 @@
var email = bar.getAttribute("data-email"); var email = bar.getAttribute("data-email");
if (info) lines.push(info); if (info) lines.push(info);
if (email) lines.push(email); if (email) lines.push(email);
lines.push("type: portfolio · about · studio · openbureau"); lines.push("type: portfolio · about · openbureau");
return lines.join("\n"); return lines.join("\n");
} }
@@ -151,7 +151,6 @@
l.push("├── portfolio/"); l.push("├── portfolio/");
work.forEach(function (s, i) { l.push("│ " + (i === work.length - 1 ? "└── " : "├── ") + s + "/"); }); work.forEach(function (s, i) { l.push("│ " + (i === work.length - 1 ? "└── " : "├── ") + s + "/"); });
l.push("├── about/"); l.push("├── about/");
l.push("├── studio/");
l.push("├── openbureau/"); l.push("├── openbureau/");
l.push("├── .colophon"); l.push("├── .colophon");
l.push("└── .legal-notice"); l.push("└── .legal-notice");
@@ -168,7 +167,7 @@
" |_|\\_\\ degree: ba architecture", " |_|\\_\\ degree: ba architecture",
" status: ma in progress", " status: ma in progress",
" uptime: " + up + "s", " uptime: " + up + "s",
" ~: portfolio · about · studio · openbureau" " ~: portfolio · about · openbureau"
].join("\n"); ].join("\n");
} }
@@ -259,7 +258,7 @@
if (/^rm\b/.test(lc)) return "rm: some things you keep."; if (/^rm\b/.test(lc)) return "rm: some things you keep.";
if (lc === "whoami") return "karim"; if (lc === "whoami") return "karim";
if (lc === "pwd") return pwd(); if (lc === "pwd") return pwd();
if (lc === "help" || /^man\b/.test(lc)) return "nav: portfolio · about · studio · openbureau · cv\nbasics: info · contact · date · time · tree · fetch · history\ntheme: dark · light"; if (lc === "help" || /^man\b/.test(lc)) return "nav: portfolio · about · openbureau · cv\nbasics: info · contact · date · time · tree · fetch · history\ntheme: dark · light";
if (lc === "hello" || lc === "hi" || lc === "hey") return "hi :)"; if (lc === "hello" || lc === "hi" || lc === "hey") return "hi :)";
if (lc === "exit" || lc === "logout") return "there is no exit. only architecture."; if (lc === "exit" || lc === "logout") return "there is no exit. only architecture.";
if (lc === "coffee" || lc === "brew") return "☕ brewing… (418: i'm a teapot)"; if (lc === "coffee" || lc === "brew") return "☕ brewing… (418: i'm a teapot)";
+1 -1
View File
@@ -8,7 +8,7 @@ diese seite ist ein kleines terminal.
sie ist statisch. hugo verwandelt meinen text in einfache html-dateien, und mehr gibt der server nie heraus. keine datenbank, kein backend, nichts zum einloggen. sie läuft auf fast jedem host. sie ist statisch. hugo verwandelt meinen text in einfache html-dateien, und mehr gibt der server nie heraus. keine datenbank, kein backend, nichts zum einloggen. sie läuft auf fast jedem host.
die leiste oben ist eine echte shell. du kannst darin tippen. portfolio, about, studio, openbureau bringen dich zu diesen seiten. help zeigt die grundlagen, tab vervollständigt ein wort, die pfeiltaste nach oben holt zurück, was du vorher getippt hast. nicht alles, was sie kennt, steht in der liste. jede seite ist auch eine dateiliste, du kannst die projekte und sogar das impressum wie verzeichnisse durchsehen und an ort und stelle lesen. die leiste oben ist eine echte shell. du kannst darin tippen. portfolio, about, openbureau bringen dich zu diesen seiten. help zeigt die grundlagen, tab vervollständigt ein wort, die pfeiltaste nach oben holt zurück, was du vorher getippt hast. nicht alles, was sie kennt, steht in der liste. jede seite ist auch eine dateiliste, du kannst die projekte und sogar das impressum wie verzeichnisse durchsehen und an ort und stelle lesen.
der rest sind kleinigkeiten. die schrift ist iosevka curly slab, hier gehostet und von niemandem nachgeladen. der cursor ist pixel für pixel gezeichnet. es gibt einen dunkelmodus, wenn du dark tippst. nichts wird verfolgt, keine cookies, kein tracking. der rest sind kleinigkeiten. die schrift ist iosevka curly slab, hier gehostet und von niemandem nachgeladen. der cursor ist pixel für pixel gezeichnet. es gibt einen dunkelmodus, wenn du dark tippst. nichts wird verfolgt, keine cookies, kein tracking.
+1 -1
View File
@@ -8,7 +8,7 @@ this site is a small terminal.
it's static. hugo turns my text into plain html files, and that's all the server ever hands out. no database, no backend, nothing to log into. it runs on almost any host. it's static. hugo turns my text into plain html files, and that's all the server ever hands out. no database, no backend, nothing to log into. it runs on almost any host.
the bar at the top is a real shell. you can type in it. work, about, studio, openbureau take you to those pages. help shows the basics, tab completes a word, the up arrow brings back what you typed before. not everything it knows is in the list. every page is also a file listing, so you browse the projects, and even the legal notice, like directories and read them on the spot. the bar at the top is a real shell. you can type in it. work, about, openbureau take you to those pages. help shows the basics, tab completes a word, the up arrow brings back what you typed before. not everything it knows is in the list. every page is also a file listing, so you browse the projects, and even the legal notice, like directories and read them on the spot.
the rest is small things. the type is iosevka curly slab, hosted here and not pulled from anyone. the cursor is drawn pixel by pixel. there's a dark mode if you type dark. nothing is tracked, no cookies, no analytics. the rest is small things. the type is iosevka curly slab, hosted here and not pulled from anyone. the cursor is drawn pixel by pixel. there's a dark mode if you type dark. nothing is tracked, no cookies, no analytics.
-26
View File
@@ -1,26 +0,0 @@
---
title: "studio"
description: "ruhige, typografisch präzise websites für architektur und gestaltung"
---
ich gestalte ruhige, typografisch präzise websites für menschen, die genug haben von überladenen baukasten-seiten. ich bin architekt. ich verstehe, wie man arbeit zeigt, bevor das gespräch anfängt.
**was ich mache**\
schlanke, schnelle websites, die dem gehören, der sie bezahlt. kein plugin-wildwuchs, keine monatlichen lizenzfallen, keine seite, die nach zwei jahren auseinanderfällt. gestaltung, die zurücktritt, damit die arbeit nach vorne kommt.
**warum so und nicht anders**\
die meisten kleinen websites laufen auf systemen, die mehr verwalten als gestalten. sie sind langsam, teuer im unterhalt und hängen an diensten, über die niemand mehr kontrolle hat. ich baue anders. statische seiten, die in fünf jahren noch laufen, im unterhalt fast nichts kosten und von keinem konzern abhängen. die gleiche haltung steckt hinter [openbureau](/de/openbureau/).
**für wen**\
architekturbüros, innenarchitekten, fotografen, werkstätten mit anspruch. menschen, die form ernst nehmen und eine website wollen, die das zeigt, statt es zu behaupten.
**arbeiten**\
<dl class="meta">
<dt>fund bureau</dt><dd>one-page-website für ein kollektiv von architekten in luzern · 2026 · <a href="https://fundbureau.xyz">fundbureau.xyz</a></dd>
</dl>
---
**kontakt**\
wenn das nach ihrer vorstellung klingt, schreiben sie mir. ein kurzer satz dazu, wer sie sind und was sie machen, reicht für den anfang.\
[hi@karimgabrielevarano.xyz](mailto:hi@karimgabrielevarano.xyz)
-26
View File
@@ -1,26 +0,0 @@
---
title: "studio"
description: "calm, typographically precise websites for architecture and design"
---
i make calm, typographically precise websites for people who have had enough of bloated site builders. i'm an architect. i understand how to show work before the conversation starts.
**what i do**\
lean, fast websites that belong to whoever pays for them. no plugin sprawl, no monthly licence traps, no site that falls apart in two years. design that steps back so the work comes forward.
**why this way**\
most small websites run on systems that manage more than they design. they're slow, expensive to maintain, and tied to services no one really controls anymore. i build differently. static pages that still run in five years, cost almost nothing to keep, and depend on no corporation. the same stance behind [openbureau](/openbureau/).
**who it's for**\
architecture practices, interior designers, photographers, workshops with standards. people who take form seriously and want a website that shows it instead of claiming it.
**work**\
<dl class="meta">
<dt>fund bureau</dt><dd>one-page website for a collective of architects in lucerne · 2026 · <a href="https://fundbureau.xyz">fundbureau.xyz</a></dd>
</dl>
---
**contact**\
if that sounds like what you have in mind, write to me. a short line about who you are and what you do is enough to start.\
[hi@karimgabrielevarano.xyz](mailto:hi@karimgabrielevarano.xyz)
-8
View File
@@ -34,10 +34,6 @@ enableRobotsTXT = true
name = "about" name = "about"
pageRef = "/about" pageRef = "/about"
weight = 2 weight = 2
[[languages.en.menu.main]]
name = "studio"
pageRef = "/studio"
weight = 3
[[languages.en.menu.main]] [[languages.en.menu.main]]
name = "openbureau" name = "openbureau"
pageRef = "/openbureau" pageRef = "/openbureau"
@@ -58,10 +54,6 @@ enableRobotsTXT = true
name = "about" name = "about"
pageRef = "/about" pageRef = "/about"
weight = 2 weight = 2
[[languages.de.menu.main]]
name = "studio"
pageRef = "/studio"
weight = 3
[[languages.de.menu.main]] [[languages.de.menu.main]]
name = "openbureau" name = "openbureau"
pageRef = "/openbureau" pageRef = "/openbureau"