turn the terminal/Gruvbox theme into the skeuo console
- rename the theme everywhere: id terminal -> skeuo, desktop sim skeuo -> desktop, skeleton terminal shell -> SkeuoLayout, page.css -> shared.css (shared components), old skeuo.css -> desktop.css, storage key theme -> dmx-theme (with migration) - rebuild the theme as a walnut-and-aluminium home-lab console: brass plates, patch bay, analogue gym gauges, clipboard, stitched leather logbook, service rack with pilot lamps, framed print, chart recorder, cartridge, software box, pegboard tags, card-index drawer - all materials are CSS + inline-SVG noise (no texture images); Barlow Semi Condensed + Courier Prime via next/font with fallbacks - desktop mode is now phone-only (<=768px): switch hidden above that, stored desktop preference overridden, sim never mounted on wide viewports - drop the ASCII train background and its gruvbox.webp asset
This commit is contained in:
parent
b2244da743
commit
d3f953e4a2
17 changed files with 4439 additions and 2834 deletions
|
|
@ -1,8 +1,28 @@
|
|||
import type { Metadata } from "next";
|
||||
// Removed unused google fonts since we use local Custom Mono
|
||||
import { Barlow_Semi_Condensed, Courier_Prime } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import ThemeScript from "./components/ThemeScript";
|
||||
|
||||
// The skeuo theme's two voices: an engraved-panel grotesque for metal
|
||||
// (labels, headings, controls) and a typewriter for anything on paper.
|
||||
// Both get an explicit fallback stack so the page still reads correctly
|
||||
// if the webfont never arrives.
|
||||
const panel = Barlow_Semi_Condensed({
|
||||
variable: "--font-panel",
|
||||
subsets: ["latin"],
|
||||
weight: ["500", "600", "700"],
|
||||
display: "swap",
|
||||
fallback: ["Arial Narrow", "Helvetica Neue", "Arial", "sans-serif"],
|
||||
});
|
||||
|
||||
const typewriter = Courier_Prime({
|
||||
variable: "--font-typewriter",
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "700"],
|
||||
display: "swap",
|
||||
fallback: ["Courier New", "Courier", "monospace"],
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "dvorakmortonxd.dev",
|
||||
description: "Martin Dvořák's personal website.",
|
||||
|
|
@ -25,7 +45,12 @@ export default function RootLayout({
|
|||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en" data-theme="skeuo" suppressHydrationWarning>
|
||||
<html
|
||||
lang="en"
|
||||
data-theme="skeuo"
|
||||
suppressHydrationWarning
|
||||
className={`${panel.variable} ${typewriter.variable}`}
|
||||
>
|
||||
<body className="antialiased">
|
||||
<ThemeScript />
|
||||
{children}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue