CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a personal portfolio website for Lana Gasparyan built with Jekyll and hosted on GitHub Pages. The site uses the Minimal Mistakes theme with extensive custom SCSS styling to create a modern, professional portfolio showcasing software engineering projects and experience.
Technology Stack
- Static Site Generator: Jekyll (via github-pages gem)
- Theme: Minimal Mistakes (remote theme version 4.27.3)
- Styling: SCSS with custom overrides in
assets/css/main.scss - Deployment: GitHub Pages (automatic deployment on push to master)
- Ruby Version Management: Bundler for gem dependencies
Development Workflow
Local Development
# Install dependencies (first time setup)
bundle install
# Run local development server
bundle exec jekyll serve
# The site will be available at http://localhost:4000
# Changes to most files will auto-reload, but _config.yml requires server restart
Building the Site
# Build the site (output to _site directory)
bundle exec jekyll build
# Build with specific environment
JEKYLL_ENV=production bundle exec jekyll build
Important Notes
- Configuration Changes: Changes to
_config.ymlrequire restarting the Jekyll server - Git Branch: The main branch is
master(not main) - Deployment: Pushing to master automatically triggers GitHub Pages deployment
- Generated Files: The
_sitedirectory is auto-generated and should not be edited directly
Architecture & Structure
Content Organization
index.markdown: Home page with hero section, technical expertise cards, featured projects, and CTAabout.markdown: Professional bio and background informationprojects.markdown: Detailed project showcase with descriptions and technologiesskills.markdown: Technical skills and competencies breakdownresume.markdown: Professional resume and work experience_posts/: Blog posts (using Jekyll’s blog functionality)_data/navigation.yml: Site navigation structure for header and footer
Styling Architecture
The site uses a layered styling approach:
- Base Theme: Minimal Mistakes theme with “mint” skin (
@import "minimal-mistakes/skins/mint") - Theme Overrides: Main theme partials imported second (
@import "minimal-mistakes") - Custom Styles: Extensive custom SCSS in
assets/css/main.scssusing!importantto override theme defaults
Key Custom Components:
.hero-card,.hero-content,.hero-text,.hero-image: Main landing section with profile and intro.profile-picture,.profile-img,.profile-fallback: Profile image with fallback icon.hero-badges: Badge container for location, education, etc..hero-links,.social-btn: Social media link buttons.expertise-section,.skills-grid,.skill-card: Technical skills grid (3-column on desktop).skill-icon,.skill-badges,.skill-badge: Skill display components.featured-projects,.projects-grid: Project showcase cards container.project-card: Individual project card with hover effects.project-image: Project screenshot image (150px height, covers card top).project-icon: Emoji icon for projects without images.project-tech: Technology stack display in project cards.tools,.tool-tag: Technology tags with gray background.card-footer,.language,.github-link: Project card footer elements.cta-section,.cta-buttons: Call-to-action section with buttons.btn,.btn--primary,.btn--outline,.btn--large,.btn--small: Button styles.page-container: Main page wrapper- Responsive Design: Mobile breakpoints at 768px and 480px
Configuration Pattern
Site-wide settings in _config.yml are accessed via Liquid templating:
Lana Gasparyan - Software Engineer- Site titleLana Gasparyan- Author namelanagasparyan- Social media linksFull-Stack Software Engineer with 3+ years building production applications serving 65K+ annual users. Expertise in React, Spring Boot, and AWS with proven ability to architect and deploy scalable web applications.- Site description for SEO
Customization Guidelines
Adding New Pages
- Create a new
.markdownfile in the root directory - Add YAML front matter with
layout,title, andpermalink - Use
layout: singlefor standard pages - Add navigation entry in
_data/navigation.ymlif needed in the menu
Styling Modifications
- All custom styles are in
assets/css/main.scss - The file uses
!importantextensively to override theme defaults - Theme uses a mint color scheme with primary color
#0abab5 - Follow the existing pattern: component sections separated by comments
- Test responsive behavior at mobile breakpoints (768px, 480px)
Working with the Minimal Mistakes Theme
- Theme documentation: https://mmistakes.github.io/minimal-mistakes/
- Uses remote_theme to pull from GitHub, no local theme files
- Custom layouts should extend existing theme layouts
- The
jekyll-include-cacheplugin is required for theme performance
HTML in Markdown Files
The site extensively uses HTML directly within .markdown files for complex layouts:
- Wrap content in
<div class="page-container">for consistent spacing - Use semantic section divs (
.hero-card,.expertise-section,.featured-projects,.cta-section) - Grid layouts are created with
.projects-gridor.skills-gridcontaining multiple card components - Jekyll/Liquid templating can be mixed with HTML (e.g.,
Lana Gasparyan - Software Engineer) - This approach allows for pixel-perfect design control while maintaining markdown simplicity for text content
Common Patterns
Front Matter Structure
---
layout: single
title: "Page Title"
permalink: /page-url/
classes: wide # Optional: for full-width layouts
---
Color Palette
- Primary:
#0abab5(mint/teal) - Text:
#2c3e50(dark blue-gray) - Secondary Text:
#5a6c7d,#7f8c8d - Background:
#f8f9fa(light gray) - Accent:
#e0f7f6(light mint)
Grid Layouts
- Desktop: 3-column grid for skills and projects
- Tablet (≤768px): 1-column stack
- Mobile (≤480px): Optimized spacing and sizing
Key Dependencies
From Gemfile:
github-pages: Meta-gem that includes Jekyll and GitHub Pages compatible pluginsjekyll-include-cache: Required for Minimal Mistakes theme performance- Platform-specific gems for Windows/JRuby compatibility
Assets Management
- Images: Store in
assets/images/directory - CSS: Main stylesheet at
assets/css/main.scss - Profile Image: Currently at
/assets/images/Screenshot at Oct 22 11-38-53.png - Image paths in markdown use absolute paths from site root (e.g.,
/assets/images/filename.png)
SEO & Metadata
The site uses these Jekyll plugins for SEO:
jekyll-seo-tag: Automatic meta tags and structured datajekyll-sitemap: Auto-generated sitemap.xmljekyll-feed: RSS feed generation
Portfolio Content Pattern
Project Card Structure (on home page)
<div class="project-card">
<div class="project-icon">🌐</div>
<h3>Project Name</h3>
<p>Description with <strong>user metrics</strong></p>
<div class="project-tech">React • TypeScript • Tailwind CSS</div>
<a href="https://example.com" target="_blank" class="btn btn--primary btn--small">Visit Site</a>
</div>
Detailed Project Card Structure (on projects page)
<div class="project-card">
<img src="/assets/images/project.png" alt="Project" class="project-image">
<h3>Project Name</h3>
<p>Detailed description of the project</p>
<div class="tools">
<span class="tool-tag">React</span>
<span class="tool-tag">TypeScript</span>
</div>
<div class="card-footer">
<span class="language">JavaScript</span>
<a href="https://github.com" target="_blank" class="github-link">View on GitHub</a>
</div>
</div>
Hero Section Pattern
The home page uses HTML within markdown for rich layouts:
- Hero section with side-by-side text and profile image
- Badge components for credentials (location, education, etc.)
- Social buttons linking to GitHub, LinkedIn, email
- Font Awesome icons via CDN (classes like
fas fa-*,fab fa-*)
Git Workflow
- Default branch:
master(notmain) - Deployment: Automatic via GitHub Pages on push to master
- Commit messages should be descriptive and follow existing patterns