Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
632 changes: 632 additions & 0 deletions .github/plans/revised-frontend-design.prompt.md

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions .github/skills/front-design/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: frontend-design
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
license: Complete terms in LICENSE.txt
---

This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.

The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.

## Design Thinking

Before coding, understand the context and commit to a BOLD aesthetic direction:
- **Purpose**: What problem does this interface solve? Who uses it?
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
- **Constraints**: Technical requirements (framework, performance, accessibility).
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?

**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.

Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
- Production-grade and functional
- Visually striking and memorable
- Cohesive with a clear aesthetic point-of-view
- Meticulously refined in every detail

## Frontend Aesthetics Guidelines

Focus on:
- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.

NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.

Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.

**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.

Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
37 changes: 34 additions & 3 deletions _includes/head/custom.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Righteous&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
<link href="https://cdn.jsdelivr.net/npm/geist@latest/dist/fonts/geist-sans/style.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Righteous&display=swap" rel="stylesheet">

<!-- Theme Toggle Script (runs synchronously to prevent flash) -->
<script>
(function() {
const THEME_KEY = 'theme-preference';
const DARK_THEME = 'dark';
const LIGHT_THEME = 'light';

function getThemePreference() {
const saved = localStorage.getItem(THEME_KEY);
if (saved) return saved;

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
return LIGHT_THEME;
}

return DARK_THEME;
}

const theme = getThemePreference();
document.documentElement.setAttribute('data-theme', theme);

// Store theme preference globally for later use
window.__themePreference = theme;
})();
</script>

<link rel="icon" type="image/svg+xml" href="/assets/images/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.png">
<script defer src="/assets/js/theme-toggle.js"></script>
10 changes: 6 additions & 4 deletions _pages/about.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ I'm **Joel Cano**, a passionate software developer who loves crafting elegant so

## What I Do

I'm a software developer with a keen interest in building reliable, scalable, and maintainable applications. I believe in the power of clean code, continuous learning, and sharing knowledge with the community.
I'm a software developer with a deep focus on **software architecture** and building reliable, scalable, and maintainable applications. I specialize in **Ruby on Rails** and **JavaScript** development, crafting well-architected systems that balance pragmatism with elegant design. I believe in the power of clean code, thoughtful architecture, continuous learning, and sharing knowledge with the community.

## My Interests

- **Software Development**: From design patterns to best practices, I'm always exploring ways to write better code
- **Software Architecture**: Designing scalable systems, exploring architectural patterns, and optimizing code organization at scale
- **Ruby on Rails & JavaScript**: Building full-stack applications with elegant, maintainable code
- **Design Patterns**: From SOLID principles to domain-driven design, studying how great architectures are structured
- **Open Source**: Contributing to and learning from the global developer community
- **Technology Trends**: Staying current with emerging technologies and industry developments
- **Problem Solving**: Finding creative solutions to technical challenges
Expand All @@ -30,11 +32,11 @@ I'm a software developer with a keen interest in building reliable, scalable, an
- Python
- JavaScript/TypeScript
- Ruby
- Go

### Frameworks & Tools
- **Ruby on Rails** - Full-stack web development
- **JavaScript/Node.js** - Backend and frontend development
- React / Vue.js
- Node.js
- Django / Flask
- Docker
- Git
Expand Down
7 changes: 5 additions & 2 deletions _posts/2026-02-05-synthwave-redesign-deep-dive.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@
title: "Behind the Screens: A Deep Dive into My Site's Synthwave Redesign"
date: 2026-02-05
categories: [design, web-development, process]
tags: [jekyll, minimal-mistakes, synthwave, css, frontend-design]
tags: [jekyll, minimal-mistakes, synthwave, tokyo-night, css, frontend-design]
excerpt: "A detailed look at how I transformed my personal site with an Outrun/Synthwave aesthetic, complete with the planning process, design decisions, and technical implementation using opencode."
header:
overlay_color: "#0f0f1e"
overlay_color: "#1A1B26"
overlay_filter: "0.5"
toc: true
toc_label: "What We'll Cover"
toc_icon: "palette"
---

> **Note (February 2026):** This post was written during the initial design concept phase when the site used an Outrun/Synthwave palette. The design has since evolved into a **Tokyo Night** aesthetic with updated colors, Geist typography, and enhanced visual effects. The design process and architectural decisions described here remain accurate — only the specific color values have changed.
{: .notice--info}

## Introduction

Every now and then, a website needs more than just new content—it needs a soul transplant. After living with my Jekyll site for a while, I realized it was time for something bolder, something that truly reflected my personality as a developer who appreciates both retro nostalgia and futuristic tech.
Expand Down
Loading