This endpoint was in the local server but missing from Vercel serverless
functions, causing "Source not available" on the deployed site.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Gemini does get skill content via GEMINI.frontend-design.md imports,
just not through a native skill system. Updated note to reflect this.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Users can now toggle "Prefix commands with /i-" in the download section
to get bundles with all commands prefixed (e.g., /i-audit instead of /audit).
This helps avoid conflicts with existing custom commands.
Build system changes:
- Transformers now accept optional prefix/outputSuffix parameters
- Build generates both unprefixed and i-prefixed variants
- ZIP bundles created for both variants
UI changes:
- Add toggle switch to download section
- Toggle controls which bundle variant gets downloaded
- Styled to match existing design language
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The /review command conflicts with a built-in Claude Code command.
Renamed to /critique which better reflects design terminology.
- Rename source/commands/review.md → critique.md
- Update command content and descriptions
- Rename demo file and update references
- Update data.js command mappings
- Update case study example in index.html
- Rebuild dist files for all providers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add X/Twitter and LinkedIn social icons to footer
- Add "Renaissance Geek" newsletter button with arrow animation
- Create dedicated author section with subtle divider styling
- Responsive layout that stacks on mobile
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert "See It In Action" section to tabbed interface for space efficiency
- Add CLAUDE.md with project instructions for CSS build process
- Update README with additional documentation
- Enhance glass terminal component
- Add new API handlers and server routes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rewrite README to be user-focused (move dev info to DEVELOP.md)
- Credit Anthropic's original frontend-design skill
- Change license from MIT to Apache 2.0 for consistency
- Add NOTICE.md with proper attribution
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add meta description and OpenGraph tags for social sharing
- Create OG image (SVG)
- Fix README: "Design Language" → "Impeccable"
- Fix DEVELOP.md: update build script line count
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- New carousel + demo + info layout for commands on mobile (<900px)
- Add touch support to framework viz (tap instead of hover)
- Fix split-content width for demo comparisons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Hero: simpler, factual description
- Problem section: remove em dash, less dramatic
- Antidote: properly credit Anthropic's original skill
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Clarify: 1 skill with 7 reference files (not 8 separate skills)
- Add "The Problem" section about AI design bias
- Simplify installation and usage sections
- Add patterns/anti-patterns summary
- Add author credit
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 80ms threshold for "instant" perception
- Active vs passive time (preemptive start, early completion)
- Optimistic UI patterns with appropriate use cases
- Easing affects perceived duration (peak-end effect)
- Caution: too-fast can decrease perceived value
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reduced to most impactful items only:
- Typography: modular scale, distinctive fonts, avoid overused fonts
- Color: off-whites/near-blacks, modern CSS, no gray on color, always tint
- Layout: visual rhythm, asymmetry, grid-breaking, no card obsession, modals are lazy
- Motion: no layout animation, no bounce/elastic
- Interaction: no redundant copy
- Responsive: don't hide mobile functionality
9 categories, ~15 items total - lean and focused.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removed items that are:
- Accessibility 101 (WCAG, color blindness, reduced motion, focus indicators)
- Basic design principles (hierarchy, readability, semantic tokens)
- Well-known rules (2-3 fonts max, mobile-first, decorative body fonts)
Kept items that fight specific AI biases:
- Off-whites/near-blacks, dominant color with accents
- Spacing scales, asymmetry, staggered reveals
- Bounce/elastic easing ban, cards-on-cards
- Gray text on color, placeholder-as-labels, generic errors
Reduced from 60 items to 34 - more focused and actionable.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Updated claude-code transformer to generate markdown from YAML patterns/antipatterns
- Removed redundant prose body from patterns.md
- SKILL.md now contains detailed lists (5 items per category) instead of condensed prose
- patterns.md YAML frontmatter is now the single source of truth for both:
- Website API (/api/patterns)
- Generated skill files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Before/after split comparison now appears immediately after the lead text
- Replaced verbose 6-card bias grid with compact horizontal tag row
- Demo is now the hero moment, biases are supporting context
- Better visual hierarchy and flow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Response.json() is for Edge Functions, not Node.js serverless functions.
Switched all API handlers to use res.status().json() format which is
the standard for Vercel Node.js functions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fs/promises appears to hang on Vercel serverless functions.
Switched to readdirSync/readFileSync which should work reliably.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Inlined the file reading logic directly in API handlers to eliminate
import issues. Added try/catch with JSON error responses to diagnose
the timeout issue.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Vercel serverless functions are bundled separately and don't automatically
include project directories. Added includeFiles config to ensure source/
and dist/ are available to API handlers at runtime.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
process.cwd() is unreliable in Vercel serverless functions.
Using import.meta.url + dirname to resolve PROJECT_ROOT ensures
the source/ and dist/ directories are found correctly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bun's native CSS bundler doesn't support Tailwind v4's @theme directive.
Solution:
1. Run Tailwind CLI first to compile main.css → styles.css
2. Reference styles.css in HTML
3. Bun HTML bundler then bundles everything together
Build output:
- JS: 82 KB (minified, bundled)
- CSS: 63 KB (minified, includes all custom styles)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use HTML as entrypoint for Bun.build() instead of separate JS/CSS builds
- Leverage bun-plugin-tailwind for automatic Tailwind CSS processing
- Output bundled site to ./build/ directory
- Update vercel.json outputDirectory to build
- Clean up obsolete build artifacts and gitignore entries
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Bundle all frontend JS with Bun.build() (82KB minified)
- Dependencies (motion, lenis, three) are now bundled instead of CDN
- Remove import map from index.html (no longer needed)
- Output to public/dist/app.bundle.js with source map
- Add public/dist/ to .gitignore (generated during build)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The API functions import from server/lib/api-handlers.js which was
being excluded by .vercelignore. Now only excludes server/index.js
(the local dev server) instead of the entire server/ directory.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove invalid functions.runtime config from vercel.json
- Replace Bun.file() with Node.js fs/promises APIs
- Vercel's Bun runtime only supports Next.js/Express/Hono/Nitro frameworks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add missing /api/patterns.js endpoint (was causing 404)
- Fix Tailwind CSS: compile with @tailwindcss/cli instead of Bun virtual module
- Update API handlers to use standard Vercel function export format
- Configure vercel.json with proper Bun runtime (runtime: "bun@1")
- Add @tailwindcss/cli to devDependencies
- Add generated styles.css to .gitignore
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add skip-to-content link for keyboard navigation (WCAG 2.4.1)
- Add ARIA labels to download buttons and periodic table elements
- Convert periodic table from divs to semantic buttons with keyboard support
- Add focus-visible styles to all interactive elements
- Implement WAI-ARIA tabs pattern for pattern categories with arrow key nav
- Add global prefers-reduced-motion support in CSS and JavaScript
- Fix touch gesture trapping in split-compare (allows vertical scroll)
- Add error states with retry button for API failures
- Add underlines to links for non-color identification (WCAG 1.4.1)
- Respect reduced motion preference in Lenis smooth scroll and hero canvas
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Commit 3d9f4ae accidentally reverted public/app.js and public/css/main.css
(plus other files) to old versions. This broke the site because:
- app.js imported from deleted files (commands.js, skills.js)
- main.css lost 1200+ lines of Renaissance redesign (split comparison, etc.)
Restored from commit 343e342 which had the working frontend.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace subway map with periodic table of commands
- Info panel shows command details on hover
- Click element to jump to command in Commands section
- URL hash updates as you scroll between sections
- Direct linking to sections works
- Fix spacing issues in solution section
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>