Back to skills
SkillHub ClubShip Full StackFull Stack

neuphorism

Imported from https://github.com/gahoccode/PRDs.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
0
Hot score
74
Updated
March 19, 2026
Overall rating
C2.4
Composite score
2.4
Best-practice grade
A92.0

Install command

npx @skill-hub/cli install gahoccode-prds-neuphorism

Repository

gahoccode/PRDs

Skill path: skills/neuphorism

Imported from https://github.com/gahoccode/PRDs.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: MIT.

Original source

Catalog source: SkillHub Club.

Repository owner: gahoccode.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install neuphorism into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/gahoccode/PRDs before adding neuphorism to shared team environments
  • Use neuphorism for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: neuphorism
description: Create web pages and UI components using the Neuphorism design system—a soft, tactile neumorphic aesthetic with extruded/pressed shadows, muted surface colors, and refined typography. Use when the user requests neuphorism/neumorphic styling, soft UI, or references this design system for any web page, component, dashboard, or application. Framework-agnostic (works with vanilla HTML/CSS, React, Vue, Tailwind, etc.).
license: MIT
---

# Neuphorism Design System

A soft, tactile design system featuring extruded shadows, pressed states, and muted color palettes that create depth through light simulation rather than hard borders.

## Core Aesthetic

Neuphorism creates UI that appears **carved from the surface**:
- Elements "extrude" with dual shadows (dark bottom-right, light top-left)
- Interactive elements "press" into the surface on activation
- Soft, muted backgrounds with subtle gradients
- Clean Inter typography at light-to-medium weights
- Generous spacing and rounded corners

## Quick Reference

### Shadows (The Heart of Neuphorism)

```css
/* Extruded - default raised state */
box-shadow: 12px 12px 24px #c5c8ce, -12px -12px 24px #ffffff;

/* Pressed - active/focused state */
box-shadow: inset 6px 6px 12px #c5c8ce, inset -6px -6px 12px #ffffff;

/* Elevated - hover state */
box-shadow: 16px 16px 32px #c5c8ce, -16px -16px 32px #ffffff;
```

### Color Palette

| Token | Light | Dark | Purpose |
|-------|-------|------|---------|
| bg-primary | `#e6e8ed` | `#2d3748` | Main surface |
| shadow-dark | `#c5c8ce` | `#1a202c` | Bottom-right shadow |
| shadow-light | `#ffffff` | `#3d4a5c` | Top-left highlight |
| text-primary | `#4a5568` | `#e2e8f0` | Body text |
| text-heading | `#2d3748` | `#f7fafc` | Headings |
| accent | `#667eea` | `#667eea` | Interactive elements |

### Typography

```css
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
/* Weights: 300 (light), 400 (regular), 500 (medium) */
```

### Spacing Scale

`4px` → `8px` → `12px` → `16px` → `24px` → `32px` → `48px` → `64px`

### Border Radius

- Small: `8px` (inputs, small buttons)
- Medium: `12px` (buttons, cards)
- Large: `20px` (containers, heroes)

## Implementation Patterns

### Pattern 1: CSS Variables (Vanilla/Any Framework)

Include at document root for consistent theming:

```css
:root {
  --neu-bg: #e6e8ed;
  --neu-shadow-dark: #c5c8ce;
  --neu-shadow-light: #ffffff;
  --neu-text: #4a5568;
  --neu-heading: #2d3748;
  --neu-accent: #667eea;
  --neu-radius: 12px;
  --neu-extruded: 12px 12px 24px var(--neu-shadow-dark), -12px -12px 24px var(--neu-shadow-light);
  --neu-pressed: inset 6px 6px 12px var(--neu-shadow-dark), inset -6px -6px 12px var(--neu-shadow-light);
}
```

### Pattern 2: Component States

Every interactive element needs three shadow states:

```css
.neu-element {
  box-shadow: var(--neu-extruded);
  transition: box-shadow 250ms ease, transform 250ms ease;
}
.neu-element:hover {
  box-shadow: 16px 16px 32px var(--neu-shadow-dark), -16px -16px 32px var(--neu-shadow-light);
  transform: translateY(-2px);
}
.neu-element:active, .neu-element:focus {
  box-shadow: var(--neu-pressed);
  transform: translateY(0);
}
```

### Pattern 3: Dark Mode

Toggle via `data-theme="dark"` on root element:

```css
:root[data-theme="dark"] {
  --neu-bg: #2d3748;
  --neu-shadow-dark: #1a202c;
  --neu-shadow-light: #3d4a5c;
  --neu-text: #e2e8f0;
  --neu-heading: #f7fafc;
}
```

## Component Reference

See `references/components.md` for complete component CSS (buttons, cards, inputs, navigation, heroes).

See `references/tailwind-config.md` for Tailwind CSS configuration.

## Accessibility Notes

1. **Focus visibility**: Add visible ring on `:focus-visible`:
   ```css
   .neu-element:focus-visible {
     box-shadow: var(--neu-pressed), 0 0 0 3px rgba(102, 126, 234, 0.3);
   }
   ```

2. **Reduced motion**: Wrap animations in media query:
   ```css
   @media (prefers-reduced-motion: no-preference) {
     .neu-element { transition: all 250ms ease; }
   }
   ```

3. **Touch targets**: Ensure minimum 44×44px for mobile.

4. **Contrast**: All text colors pass WCAG AA against backgrounds.

## Usage Workflow

1. Set background to `#e6e8ed` (light) or `#2d3748` (dark)
2. Apply CSS variables at `:root`
3. Import Inter font (weights 300, 400, 500)
4. Use extruded shadow for raised elements
5. Use pressed shadow for inputs and active states
6. Apply transitions for smooth state changes
neuphorism | SkillHub