Skip to content

Commit cc56cd5

Browse files
Template v2 (#234)
* Setup hero * Add config * Enhance Hero component with programming symbols background pattern and improved structure * Enhance Hero component with fade-in animations for improved user experience * Add gradient overlay to Hero component for enhanced visual appeal * Refactor index page to include About component and update meta tags for better SEO * Revamp About section with new layout and content for improved presentation * Update About section to utilize dynamic content from config and adjust styling for better responsiveness * Add skills section to About component, displaying dynamic content from config for enhanced user engagement * Add Projects component to display project details dynamically from config, enhancing site content and user engagement * Add experience section to config and integrate Experience component in index page for enhanced user profile display * Add education section to config and integrate Education component in index page for comprehensive user profile display * Refactor Experience component to improve layout and styling, adding connecting lines between experience cards for better visual continuity * Add Footer component to enhance site layout and integrate dynamic content from config, improving overall user experience * Add Header component for improved navigation and integrate section IDs for smooth scrolling, enhancing user experience and site structure * Enhance Header and Footer components to conditionally display navigation links based on available content in site configuration, improving user experience and site navigation. * Refactor Header and Projects components for improved readability and styling consistency, including conditional rendering of navigation links and adjustments to backdrop blur effect. * Update Header component to change scroll threshold for background effect from 0 to 100 pixels, enhancing visibility and user experience during navigation. * Revamp README and update favicon; enhance site configuration with new project details and social links. Improve Hero component for conditional rendering of social media icons based on config.
1 parent eae8e3b commit cc56cd5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+6492
-13797
lines changed

.cursor/rules

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# DevPortfolio - Cursor AI Rules
2+
3+
## Project Context
4+
This is a modern portfolio template built with Astro and Tailwind CSS v4. The project is designed for simplicity and ease of customization through a single configuration file.
5+
6+
## Code Style Guidelines
7+
8+
### General
9+
- Use TypeScript for type safety in configuration files
10+
- Prefer functional and declarative patterns
11+
- Keep components simple and focused on a single responsibility
12+
- Follow existing code conventions and patterns
13+
14+
### Astro Components
15+
- Use `.astro` files for all components
16+
- Import styles through Tailwind utility classes
17+
- Keep component logic minimal - components should primarily render data from config
18+
- Use semantic HTML elements
19+
20+
### Styling
21+
- Use Tailwind CSS utility classes exclusively
22+
- Maintain the monospace font aesthetic (IBM Plex Mono)
23+
- Follow the existing spacing and layout patterns
24+
- Use the accent color from config for themed elements
25+
26+
### Configuration
27+
- All content changes should be made in `src/config.ts`
28+
- Keep the config structure flat and simple
29+
- Make all config sections optional where it makes sense
30+
- Use TypeScript interfaces for config type safety
31+
32+
## Development Practices
33+
34+
### When Adding Features
35+
1. First check if it can be accomplished through config changes
36+
2. If new components are needed, follow the existing component patterns
37+
3. Ensure new sections can be hidden by removing their config data
38+
4. Maintain the minimalist aesthetic
39+
40+
### When Modifying Components
41+
1. Read the existing component structure first
42+
2. Maintain consistency with other components
43+
3. Use Tabler Icons for any new icons
44+
4. Test with different config variations (empty data, full data)
45+
46+
### File Organization
47+
- Components go in `src/components/`
48+
- Keep the single-page structure (all sections in index.astro)
49+
- Don't create unnecessary abstraction layers
50+
51+
## Common Tasks
52+
53+
### Adding a New Section
54+
1. Create a new component in `src/components/`
55+
2. Add the corresponding data structure to `src/config.ts`
56+
3. Import and add the component to `src/pages/index.astro`
57+
4. Ensure it renders conditionally based on config data
58+
59+
### Updating Styles
60+
1. Use Tailwind utilities only
61+
2. Check responsive behavior
62+
3. Maintain consistent spacing with other sections
63+
64+
### Changing Content
65+
1. Only modify `src/config.ts`
66+
2. Don't edit component files for content changes
67+
68+
## Commands to Remember
69+
```bash
70+
npm run dev # Development server
71+
npm run build # Production build
72+
npm run preview # Preview production build
73+
```
74+
75+
## Important Notes
76+
- No testing framework is configured
77+
- No linting tools are set up
78+
- The project uses Tailwind CSS v4 with Vite plugin
79+
- All icons should come from Tabler Icons for consistency

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,24 @@
1+
# build output
2+
dist/
3+
# generated types
4+
.astro/
5+
6+
# dependencies
17
node_modules/
8+
9+
# logs
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
pnpm-debug.log*
14+
15+
16+
# environment variables
17+
.env
18+
.env.production
19+
20+
# macOS-specific files
21+
.DS_Store
22+
23+
# jetbrains setting folder
24+
.idea/

.vscode/extensions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"recommendations": ["astro-build.astro-vscode"],
3+
"unwantedRecommendations": []
4+
}

.vscode/launch.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"command": "./node_modules/.bin/astro dev",
6+
"name": "Development server",
7+
"request": "launch",
8+
"type": "node-terminal"
9+
}
10+
]
11+
}

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Changelog
2+
3+
### 2.0.0
4+
5+
- Complete rewrite of the template using Astro and Tailwind
6+
7+
### 1.2.2
8+
9+
- Updated dependencies and gulpfile
10+
11+
### 1.2.1
12+
13+
- Updated dependencies and gulpfile
14+
- Added `no-image` optional class for projects without images (see above for
15+
usage)
16+
17+
### 1.2.0
18+
19+
- Added support for optional "Show More Projects" that hides some projects by
20+
default if included
21+
- Added optional sections to display certifications, languages, etc.
22+
23+
### 1.1.3
24+
25+
- Added default favicon to be used or changed
26+
- Added `sticky` class to make header fixed
27+
- Updated docs to add image section
28+
29+
### 1.1.2
30+
31+
- Added `no-scroll` class option to header navigation anchor if you want to link
32+
to external site
33+
- Changed contact form input / textarea colours to be based off `$base-color`
34+
- Changed main background to 100vh so it doesn't overflow if viewport height <
35+
700px
36+
37+
### 1.1.1
38+
39+
- Made input placeholder text more readable
40+
- Removed timeline line when no JS
41+
- Added some basic styling to timeline when no JS
42+
43+
### 1.1.0
44+
45+
- Fixed menu toggle on mobile devices
46+
- Fixed z-index / scrolling issue with mobile menu
47+
- Mobile menu now closes once a nav element is hit

CLAUDE.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is a modern, minimalist portfolio template built with Astro and Tailwind CSS v4. It's designed to be easily customizable through a single configuration file while maintaining a clean, professional appearance.
8+
9+
## Tech Stack
10+
11+
- **Astro**: Static site generator
12+
- **Tailwind CSS v4**: Utility-first CSS framework using the new @tailwindcss/vite plugin
13+
- **TypeScript**: For type-safe configuration
14+
- **Tabler Icons**: Icon library
15+
16+
## Development Commands
17+
18+
```bash
19+
npm run dev # Start development server
20+
npm run build # Build for production
21+
npm run preview # Preview production build
22+
```
23+
24+
## Architecture
25+
26+
The project follows a component-based architecture with all customization centralized in `src/config.ts`:
27+
28+
- **Components** (`src/components/`): Individual Astro components for each section (Hero, About, Projects, Experience, Education, Header, Footer)
29+
- **Main Layout** (`src/pages/index.astro`): Single-page layout that imports all components
30+
- **Configuration** (`src/config.ts`): Single source of truth for all content and customization
31+
32+
### Key Architectural Decisions
33+
34+
1. **Single Configuration File**: All content is managed through `src/config.ts` to make customization simple
35+
2. **Conditional Rendering**: Sections automatically hide if their data is removed from the config
36+
3. **Component Independence**: Each section is a self-contained component that reads from the config
37+
4. **Accent Color System**: Single `accentColor` in config propagates throughout the site via CSS custom properties
38+
39+
## Important Implementation Details
40+
41+
- The site uses Tailwind CSS v4 with the Vite plugin configuration
42+
- No linting or testing framework is currently configured
43+
- All components are in `.astro` format (not React/Vue/etc)
44+
- The project uses IBM Plex Mono font loaded from Google Fonts
45+
- Social links in the config are all optional and will conditionally render
46+
47+
## Working with Components
48+
49+
When modifying components:
50+
1. Components read directly from the imported `siteConfig` object
51+
2. Use Tailwind utility classes for styling
52+
3. Maintain the existing monospace font aesthetic
53+
4. Use Tabler Icons for consistency with existing icons
54+
55+
## Configuration Structure
56+
57+
The `src/config.ts` exports a `siteConfig` object with these sections:
58+
- Basic info: name, title, description, accentColor
59+
- Social links: email, linkedin, twitter, github (all optional)
60+
- aboutMe: string
61+
- skills: string[]
62+
- projects: array of {name, description, link, skills}
63+
- experience: array of {company, title, dateRange, bullets}
64+
- education: array of {school, degree, dateRange, achievements}

LICENSE.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
MIT License
2-
3-
Copyright (c) 2020 Ryan Fitzgerald
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
MIT License
2+
3+
Copyright (c) 2025 Ryan Fitzgerald
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
this software and associated documentation files (the "Software"), to deal in
7+
the Software without restriction, including without limitation the rights to
8+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9+
the Software, and to permit persons to whom the Software is furnished to do so,
10+
subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0 commit comments

Comments
 (0)