Skip to main content
Version: Winter 2024 SheCodes Program

Sasa's Personal Blog

👩‍đŸ’ģ Author Introduction​

Author: Sasa

Website: Pika's Home

Project Type: Personal Blog Website

Tech Stack: Docusaurus v2, React, CSS3

🎨 Project Showcase​

Homepage Display​

Sasa's Blog Homepage Screenshot

Homepage Design: Features a fresh color scheme and clean layout design, highlighting personal brand characteristics

Growth Path Page​

Growth Path Page Screenshot

Growth Path: Showcases personal growth journey and learning trajectory with well-organized content

Design Highlights Analysis​

Visual Hierarchy​

User Experience Flow​

✨ Key Features​

đŸŽ¯ Core Characteristics​

  • Fresh Design: Adopts a minimalist and elegant visual style with focus on user experience
  • Responsive Layout: Perfectly adapts to mobile, tablet, and desktop devices
  • Personalized Content: Showcases personal growth journey and experience sharing
  • Smooth Animations: Carefully designed interactive effects enhance user experience

🌟 Innovation Highlights​

  1. Personalized Navigation Design

    • Unique navigation bar style
    • Smooth page transition effects
    • Mobile-friendly interactive experience
  2. Content Presentation

    • Card-based information display
    • Progressive content loading
    • Clear information hierarchy
  3. Visual Effects Optimization

    • Carefully selected color schemes
    • Appropriate whitespace design
    • Unified design language

đŸ› ī¸ Technical Implementation​

Core Tech Stack​

Performance Optimization Measures​

Image Optimization​

docusaurus.config.js
const config = {
plugins: [
[
'@docusaurus/plugin-ideal-image',
{
quality: 70,
max: 1030,
min: 640,
steps: 2,
disableInDev: false,
},
],
],

themeConfig: {
image: '/screenshot/screencapture-pika-s-home-vercel-app-2024-11-24-23_08_34.png',
},
};

Code Splitting​

src/components/LazyImage.js
import { lazy, Suspense } from 'react';
import useBaseUrl from '@docusaurus/useBaseUrl';

const LazyImage = lazy(() => import('./OptimizedImage'));

export default function ImageWithFallback({ src, alt, ...props }) {
return (
<Suspense fallback={<div className="image-loading">Loading...</div>}>
<LazyImage
src={useBaseUrl(src)}
alt={alt}
loading="lazy"
{...props}
/>
</Suspense>
);
}

Caching Strategy​

vercel.json
{
"headers": [
{
"source": "/screenshot/(.*)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
}
]
}

Architecture Design​

đŸŽ¯ Learning Value​

Design Thinking​

This project demonstrates how to:

  1. Build Personal Brand Identity

    • Consistent visual style
    • Personalized content presentation
    • Professional technical implementation
  2. Optimize User Experience

    • Clear information architecture
    • Smooth interaction design
    • Responsive layout adaptation
  3. Technical Implementation Details

    • Modern frontend tech stack
    • Performance optimization strategies
    • Deployment and maintenance solutions

Key Learning Points​

Design Inspiration

Sasa's work embodies the design philosophy of "simple yet sophisticated," worthy of beginners learning:

  • Layout Planning Skills: Rational grid system and space allocation
  • Color Matching Methods: Warm yet professional color schemes
  • Interaction Design Concepts: User-friendly operation experience
  • Content Organization Strategy: Clear information hierarchy and navigation structure

Practice Recommendations​

  1. Start with Imitation

    • Analyze design elements of excellent works
    • Understand the thought process behind the design
    • Gradually develop your own design style
  2. Focus on User Experience

    • Always think from the user's perspective
    • Simplify operational processes
    • Provide clear visual feedback
  3. Continuous Improvement

    • Collect user feedback
    • Regularly update content
    • Optimize performance

🚀 Project Characteristics​

Content Architecture​

Design System​

Color Specifications​

src/css/design-tokens.css
:root {
/* Primary Colors */
--primary-color: #ff6b6b;
--primary-light: #ff8e8e;
--primary-dark: #ff4757;

/* Secondary Colors */
--secondary-color: #4ecdc4;
--secondary-light: #6bccc4;
--secondary-dark: #26a69a;

/* Neutral Colors */
--gray-100: #f8f9fa;
--gray-200: #e9ecef;
--gray-300: #dee2e6;
--gray-400: #ced4da;
--gray-500: #adb5bd;

/* Semantic Colors */
--success-color: #2ed573;
--warning-color: #ffa726;
--error-color: #ff6b6b;
--info-color: #54a0ff;
}

Typography System​

src/css/typography.css
/* Font Families */
--font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'Fira Code', 'SF Mono', Monaco, monospace;

/* Font Sizes */
--text-xs: 0.75rem; /* 12px */
--text-sm: 0.875rem; /* 14px */
--text-base: 1rem; /* 16px */
--text-lg: 1.125rem; /* 18px */
--text-xl: 1.25rem; /* 20px */
--text-2xl: 1.5rem; /* 24px */
--text-3xl: 1.875rem; /* 30px */
--text-4xl: 2.25rem; /* 36px */

Responsive Design​

src/css/responsive.css
/* Breakpoint Definitions */
@media (min-width: 640px) {
.container {
max-width: 640px;
}
}

@media (min-width: 768px) {
.container {
max-width: 768px;
}
}

@media (min-width: 1024px) {
.container {
max-width: 1024px;
}
}

@media (min-width: 1280px) {
.container {
max-width: 1280px;
}
}

📊 Performance Metrics​

Performance Indicators​

Optimization Recommendations​

  1. Image Compression

    • Use modern image formats (WebP, AVIF)
    • Implement lazy loading strategy
    • Provide different resolution versions
  2. Code Optimization

    • Remove unused CSS
    • JavaScript code splitting
    • Enable Gzip compression
  3. Caching Strategy

    • Set appropriate cache headers
    • Leverage CDN acceleration
    • Implement server-side caching

This project is an excellent example for learning personal website development, demonstrating how to perfectly combine technical implementation with design aesthetics to provide users with an excellent browsing experience.