A modern blog website built with Astro, TypeScript, and Tailwind CSS, featuring responsive design and custom typography scaling.
/
├── public/
│ └── favicon.svg
├── src/
│ ├── components/
│ │ ├── Header.astro
│ │ └── Footer.astro
│ ├── layouts/
│ │ └── Layout.astro
│ ├── pages/
│ │ ├── index.astro (Home page)
│ │ ├── about.astro (About page)
│ │ └── post.astro (Single post page)
│ └── styles/
│ └── global.css
├── astro.config.mjs
├── postcss.config.js
├── package.json
└── tsconfig.json
- Astro - Static site generator
- TypeScript - Type safety
- Tailwind CSS - Utility-first CSS framework
- PostCSS - CSS processing
- Vite - Build tool
The project uses a responsive typography scale generated with Utopia:
- Scales from 360px to 1440px viewport
- Base sizes: 17px to 19px
- Scale ratios: 1.125 to 1.2
- Custom CSS variables for all text sizes
- Colors: Custom green palette (#EAF4F0, #318C66, #236348)
- Fonts: Instrument Sans (headings) and Geist (body text)
- Components: Header, Footer, Article cards, Sidebar widgets
- Layouts: Responsive grid with sidebar
- Home - Blog listing with hero section, article grid, and sidebar
- About - Personal profile with experience and skills sections
- Post - Single article layout with content and sidebar
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:4321 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run astro- Run Astro CLI commands
This project was built based on Figma designs:
- Home page: Blog listing with article cards and sidebar
- Post page: Single article layout with hero image
- About page: Personal profile with experience timeline
The website is fully responsive and adapts to different screen sizes:
- Mobile-first approach
- Flexible grid layouts
- Scalable typography
- Touch-friendly interactions
Configured with custom colors and typography. See astro.config.mjs for Vite plugin setup.
Basic configuration with Tailwind CSS and Autoprefixer. See postcss.config.js.
Custom CSS variables defined in src/styles/global.css for fluid typography scaling.
This project is for educational and demonstration purposes.