create-new-design

Scaffold a new design inspiration with the correct file structure, ViewTransition naming, and component patterns.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "create-new-design" with this command: npx skills add ainergiz/design-inspirations/ainergiz-design-inspirations-create-new-design

Create New Design

Scaffold a new design inspiration with the correct file structure, ViewTransition naming, and component patterns.

Required Information

Before creating files, gather:

  • Design ID (kebab-case): e.g., pricing-table , user-profile

  • Title: e.g., "Pricing Table", "User Profile Card"

  • Description: One-line description for the main page

  • Tags: 2-4 category tags (e.g., "Card", "Form", "Dashboard")

  • Attribution (optional): Twitter handle of original designer

File Structure

src/ ├── app/ │ ├── designs/ │ │ └── [design-id]/ │ │ └── page.tsx # Detail page │ └── page.tsx # Update designs array └── components/ └── previews/ └── [Name]Preview.tsx # Preview component

Step 1: Create Preview Component

Create src/components/previews/[Name]Preview.tsx .

See examples/preview-template.tsx for the full template.

Key conventions:

  • Export named function: export function [Name]Preview()

  • ViewTransition names: [design-id]-light , [design-id]-dark , [design-id]-light-panel , [design-id]-dark-panel

  • Side-by-side layout with dot grid backgrounds

  • Light panel: bg-[#f5f5f5] with #d4d4d4 dots

  • Dark panel: bg-zinc-950 with #3f3f46 dots

Step 2: Create Detail Page

Create src/app/designs/[design-id]/page.tsx .

See examples/page-template.tsx for the full template.

Key conventions:

  • Use DM Sans font for design pages

  • Split layout: 50/50 light/dark

  • Header with back arrow, Code button, and attribution

  • Code button links to the component file on GitHub

  • Attribution format: "Inspired from @username" with profile photo via unavatar.io

Step 3: Update Main Page

Add entry to src/app/page.tsx :

import { [Name]Preview } from "@/components/previews/[Name]Preview";

const designs = [ // ... existing designs { id: "[design-id]", number: "XX", // Increment from last title: "[Title]", description: "[Description]", tags: ["Tag1", "Tag2"], PreviewComponent: [Name]Preview, }, ];

Step 4: Update globals.css

Add ViewTransition CSS for new design in src/app/globals.css :

/* Add to existing shared element transitions section */ ::view-transition-old([design-id]-light), ::view-transition-new([design-id]-light), ::view-transition-old([design-id]-dark), ::view-transition-new([design-id]-dark), ::view-transition-old([design-id]-light-panel), ::view-transition-new([design-id]-light-panel), ::view-transition-old([design-id]-dark-panel), ::view-transition-new([design-id]-dark-panel) { animation-duration: 300ms; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

/* Add to reduced motion section */ @media (prefers-reduced-motion: reduce) { ::view-transition-old([design-id]-light), ::view-transition-new([design-id]-light), ::view-transition-old([design-id]-dark), ::view-transition-new([design-id]-dark), ::view-transition-old([design-id]-light-panel), ::view-transition-new([design-id]-light-panel), ::view-transition-old([design-id]-dark-panel), ::view-transition-new([design-id]-dark-panel) { animation: none; } }

ViewTransition Naming Convention

Element Pattern Example

Light card [design-id]-light

pricing-table-light

Dark card [design-id]-dark

pricing-table-dark

Light panel [design-id]-light-panel

pricing-table-light-panel

Dark panel [design-id]-dark-panel

pricing-table-dark-panel

Code Button Format

<a href="https://github.com/ainergiz/design-inspirations/blob/main/src/app/designs/[design-id]/page.tsx" target="_blank" rel="noopener noreferrer" className="flex items-center gap-1.5 px-3 py-1.5 text-sm text-zinc-500 hover:text-zinc-700 hover:bg-zinc-100 rounded-lg transition-colors"

<Code className="w-4 h-4" /> <span className="hidden sm:inline">Code</span> </a>

Attribution Format

<a href="https://x.com/[username]" target="_blank" rel="noopener noreferrer" className="flex items-center gap-2 text-sm text-zinc-500 hover:text-zinc-700"

<span className="hidden sm:inline text-zinc-400">Inspired from</span> <Image src="https://unavatar.io/x/[username]" alt="[Name]" width={24} height={24} className="w-6 h-6 rounded-full" /> <span className="font-medium text-zinc-700">@[username]</span> <ExternalLink className="w-3.5 h-3.5" /> </a>

Step 5: Custom Animations (if needed)

If your component has custom animations (e.g., carousels, progress bars), add keyframes to src/app/globals.css :

/* Example: Carousel progress animation */ @keyframes carousel-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.animate-carousel-progress { animation: carousel-progress linear forwards; }

Common animation patterns:

  • Progress bars: scaleX(0) to scaleX(1) with origin-left

  • Fade in: opacity: 0 to opacity: 1

  • Slide up: translateY(10px) to translateY(0)

Related Skills

Consider using these patterns in your design:

  • component-variants: Color token mapping for light/dark modes

  • expandable-card: Smooth expand/collapse with grid-rows

  • image-carousel: Auto-advance carousel with touch support

  • glassmorphism: Frosted glass overlay effects

  • nested-card: Outer gradient with inner content card

  • stacked-cards: Fanned/cascading card stacks with hover lift

  • dropdown-menu: Click-outside detection and z-index stacking

Checklist

  • Preview component created with correct ViewTransition names

  • Detail page created with split layout

  • Code button links to component file on GitHub

  • Design entry added to main page designs array

  • globals.css updated with ViewTransition CSS

  • Custom keyframes added to globals.css (if needed)

  • Attribution included (if available)

  • Both light and dark variants implemented

  • Components follow existing code style

  • Touch interactions considered for mobile

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

glassmorphism

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-carousel

No summary provided by upstream source.

Repository SourceNeeds Review
General

nested-card

No summary provided by upstream source.

Repository SourceNeeds Review
General

expandable-card

No summary provided by upstream source.

Repository SourceNeeds Review