A minimal, single-page portfolio website built with Astro. Designed for a Linux Enthusiast, featuring a monochrome Text User Interface (TUI) aesthetic, clean typography, and high performance.
- Monochrome TUI Design: High-contrast black and white theme inspired by terminal interfaces.
- Typography: Uses Monaspace Neon for a code-native look.
- Performance: Static site generation (SSG) with zero runtime JavaScript overhead.
- Responsive: Mobile-friendly layout using CSS Grid and Flexbox.
- Dark/Light Mode: Strict monochrome palette that adapts to system preferences (or defaults to high contrast).
/
├── src/
│ ├── pages/
│ │ └── index.astro # Main single-page layout (Content lives here)
│ └── styles/
│ └── global.css # Global styles, TUI theme, and CSS variables
├── public/
│ └── favicon.svg # Custom SVG favicon
├── astro.config.mjs # Astro configuration
└── package.json # Project dependencies and scripts
- Node.js (v18.14.1 or higher)
- npm
- Clone the repository.
- Install dependencies:
npm installStart the local development server:
npm run devVisit http://localhost:4321 to view the site.
Generate the static site in the dist/ directory:
npm run buildTo preview the production build locally:
npm run previewThis project is configured to be easily deployed to GitHub Pages.
- Update
astro.config.mjswith your GitHub repository details:
export default defineConfig({
site: 'https://YOUR_USERNAME.github.io',
base: '/YOUR_REPO_NAME',
});- Push your code to GitHub.
- Configure GitHub Pages in your repository settings to deploy from a GitHub Actions workflow or the
gh-pagesbranch.
- Content: Edit
src/pages/index.astroto update your name, bio, projects, and contact links. - Theme: Modify
src/styles/global.cssto tweak the monochrome colors or spacing. - Favicon: The favicon is an SVG file located at
public/favicon.svg. You can edit the text inside the<text>tag to change the monogram.