# Hallmark Skill Dependencies in Nutlope/hallmark: A Complete Guide

> Explore hallmark skill dependencies in Nutlope/hallmark. Learn how it detects optional motion libraries from your host project for its design stack.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: how-to-guide
- Published: 2026-07-29

---

**The Hallmark design skill ships with zero runtime npm dependencies and instead detects optional motion libraries from your host project to determine its design stack.**

The Nutlope/hallmark repository provides an AI-driven design skill that adapts to your project's existing animation capabilities. Unlike traditional npm packages that bundle their requirements, Hallmark implements a dependency-free architecture that inspects your codebase to toggle between "motion-on" and "motion-cut" modes.

## Runtime Dependencies in package.json

Hallmark itself declares **no direct npm dependencies**. In the root [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json), the `dependencies` field remains empty, with only a `serve` script defined for local development.

```json
// package.json - dependencies section is empty
{
  "name": "hallmark",
  "version": "1.0.0",
  "dependencies": {},
  "scripts": {
    "serve": "..."
  }
}

```

This design choice keeps the skill lightweight and prevents version conflicts with your existing animation libraries. As implemented in `Nutlope/hallmark`, the skill relies entirely on the host project's `node_modules` rather than bundling its own.

## Optional Motion Dependencies Detected by Hallmark

Instead of shipping with fixed requirements, Hallmark scans your project's [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) for specific animation libraries. When any of the following dependencies appear in your host project, Hallmark treats the codebase as a **"motion-on"** project; otherwise, it assumes a **"motion-cut"** configuration:

- **`framer-motion`** – Enables declarative motion-enabled components and layout animations
- **`gsap`** – Provides advanced timeline-based animations and scroll triggers
- **`motion`** – Supplies lightweight, performant motion utilities for modern React apps
- **`lenis`** – Adds smooth scrolling effects with inertia and dampening
- **`lottie-react`** – Allows embedding of After Effects vector animations as JSON
- **`@react-spring/*`** – Supplies physics-based spring animations for React components
- **`auto-animate`** – Offers zero-configuration auto-animations for DOM mutations

According to the skill documentation in [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md), this detection mechanism determines whether Hallmark generates animation-heavy components or static, performance-optimized designs.

## External AI Service Requirements

While Hallmark avoids npm dependencies, it requires access to the **Together AI** API for its core generative capabilities. This external service dependency is documented in the skill description and handles the AI-driven design logic, component generation, and layout decisions.

Unlike the motion libraries, Together AI is not an installable package—you must configure API access separately through environment variables or configuration files.

## How Hallmark Detects Project Dependencies

The detection logic resides in the skill's runtime rather than its manifest. When Hallmark initializes, it performs the following checks:

1. **Scans the host [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json)** for the optional motion libraries listed above
2. **Sets the motion flag** to `true` if any are found (triggering "motion-on" mode)
3. **Adjusts component generation** to either include animation props or static alternatives
4. **Validates Together AI connectivity** before executing design commands

This approach allows Hallmark to remain **dependency-free** while still leveraging your existing animation stack. The skill adapts its output based on your project's actual capabilities rather than forcing you to adopt specific versions of animation libraries.

## Summary

- Hallmark declares **zero runtime npm dependencies** in its [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json), keeping the package lightweight
- The skill detects **seven optional motion libraries** (`framer-motion`, `gsap`, `motion`, `lenis`, `lottie-react`, `@react-spring/*`, and `auto-animate`) from your host project
- Detection of these libraries triggers **"motion-on" mode**; absence triggers **"motion-cut" mode**
- **Together AI** provides the external API dependency required for AI-driven design generation
- File paths [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) and [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) contain the authoritative configuration for this behavior

## Frequently Asked Questions

### Does Hallmark require framer-motion to work?

No. Hallmark does not require `framer-motion` or any other animation library to function. The skill operates in "motion-cut" mode when no animation dependencies are detected, generating static, high-performance components instead of animated ones.

### What happens if I install gsap after setting up Hallmark?

If you add `gsap` (or any supported motion library) to your project's [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) after initial setup, Hallmark will detect it on the next run and switch to "motion-on" mode. The skill dynamically adapts to your dependency changes without requiring updates to Hallmark itself.

### Is Together AI included as an npm dependency?

No. Together AI is an external API service, not an npm package. While Hallmark's code interacts with this service for AI capabilities, you must configure API access separately—it is not installed via `npm install` or listed in the [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) dependencies.

### Why does Hallmark avoid shipping its own animation dependencies?

Hallmark avoids bundling animation libraries to prevent **version conflicts** and **bloat**. By detecting your existing stack, the skill ensures compatibility with your current animation versions and keeps bundle sizes minimal, only leveraging motion capabilities when your project already supports them.