Skip to content

tejas-mathangi/tejas-mathangi.github.io-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tejas Mathangi — Portfolio

A handcrafted personal portfolio website built with pure HTML, CSS, and vanilla JavaScript. No frameworks, no build tools — just the fundamentals.

Learning project. This site was built as a deep-dive into web fundamentals: CSS custom properties, Grid, Flexbox, clamp(), IntersectionObserver, and GitHub Pages deployment.


Tech Stack

Layer Technology
Structure HTML5 (semantic elements)
Styling CSS3 (custom properties, Grid, Flex)
Behaviour Vanilla JavaScript (ES6+)
Fonts Google Fonts (Instrument Serif + DM Mono)
Hosting GitHub Pages

Features

  • Sticky navigation — border appears on scroll via JS class toggle
  • Mobile hamburger menu — CSS dropdown, toggled by JS
  • Smooth scrollscrollIntoView({ behavior: 'smooth' })
  • Scroll fade-in animationsIntersectionObserver API
  • Active nav link — highlights current section while scrolling
  • Full dark mode@media (prefers-color-scheme: dark) with CSS variables
  • Fluid typographyclamp() for responsive font sizes without breakpoints
  • Responsive layout — single @media (max-width: 640px) breakpoint

Project Structure

portfolio/
├── index.html   ← all markup, semantically structured
├── style.css    ← design system + layout + animations
├── script.js    ← all JS features, heavily commented
└── README.md    ← this file

Running Locally

No build step needed — just open the file:

# Option 1: open directly in browser
open index.html

# Option 2: use a local dev server (recommended)
npx serve .
# or with VS Code: right-click index.html → Open with Live Server

CSS Concepts Used

Concept Where
CSS custom properties (variables) :root in style.css
clamp() fluid sizing .hero__headline, .contact__heading
CSS Grid (2-col) .projects__grid, .about__grid
CSS Grid nested .about__stats inside .about__grid
Flexbox Nav, hero CTAs, skills bar, footer
@keyframes .hero__dot pulse animation
IntersectionObserver Scroll fade-in in script.js
Mobile-first responsive @media (max-width: 640px)

Built from scratch — no frameworks, no shortcuts.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors