smithery/ainergiz

create-new-design

Scaffolds a new design in the design-inspirations repo with preview component, detail page, and main page entry. Use when creating a new design, adding a design inspiration, or scaffolding design files.

Installation

$ npx skills add smithery/ainergiz --skill create-new-design

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/ainergiz.

npx skills add smithery/ainergiz

Browse all from smithery/ainergiz

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,458 B
  • docs SUMMARY.md 227 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Create New Design

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

Required Information

Before creating files, gather:

  1. Design ID (kebab-case): e.g., pricing-table, user-profile
  2. Title: e.g., "Pricing Table", "User Profile Card"
  3. Description: One-line description for the main page
  4. Tags: 2-4 category tags (e.g., "Card", "Form", "Dashboard")
  5. 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](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](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