ui-ux-master 1.2.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ui-ux-master
3
3
  description: "Use when an agent must design, audit, improve, prototype, specify, or hand off any UI/UX work end-to-end. Provides one-stop UX strategy, research, IA, flows, wireframes, visual design, design systems, accessibility, usability testing, conversion, and engineering handoff workflows."
4
- version: 1.2.1
4
+ version: 1.5.0
5
5
  author: Rupak Biswas
6
6
  license: MIT
7
7
  platforms: [linux, macos, windows]
@@ -23,32 +23,38 @@ The job is not only to make screens look good. The job is to solve the user's go
23
23
 
24
24
  This skill is opt-in. In Codex, Claude, Windsurf, Antigravity, Gemini, Cursor, and other agents, activate it only when the user includes `/ui-ux-master` in the prompt or invokes the installed native slash command. If the user does not mention `/ui-ux-master`, do not apply this skill automatically.
25
25
 
26
- When activated, the user can write naturally, for example: `/ui-ux-master audit this checkout flow` or `/ui-ux-master design a premium SaaS landing page`. Treat the rest of the prompt as the task and follow this SKILL.md plus the referenced files.
27
-
28
- ## AI Discovery and MCP
29
-
30
- This package exposes the workflow through human-readable instructions and machine-readable discovery assets:
31
-
32
- - `llms.txt` gives AI agents a short map of the package.
33
- - `ai-discovery/ui-ux-master.manifest.json` describes activation, entrypoints, tools, resources, prompts, and supported agents.
34
- - `system-prompts/` contains full, compact, and MCP-focused system prompt add-ons.
35
- - `bin/ui-ux-master-mcp.mjs` runs a local read-only MCP server that exposes UI/UX Master tools, resources, and prompts.
36
-
26
+ When activated, the user can write naturally, for example: `/ui-ux-master audit this checkout flow` or `/ui-ux-master design a premium SaaS landing page`. Treat the rest of the prompt as the task and follow this SKILL.md plus the referenced files.
27
+
28
+ ## AI Discovery and MCP
29
+
30
+ This package exposes the workflow through human-readable instructions and machine-readable discovery assets:
31
+
32
+ - `llms.txt` gives AI agents a short map of the package.
33
+ - `ai-discovery/ui-ux-master.manifest.json` describes activation, entrypoints, tools, resources, prompts, and supported agents.
34
+ - `system-prompts/` contains full, compact, and MCP-focused system prompt add-ons.
35
+ - `bin/ui-ux-master-mcp.mjs` runs a local read-only MCP server that exposes UI/UX Master tools, resources, and prompts.
36
+
37
37
  Use MCP and system prompt add-ons only as discovery/activation layers. The workflow remains opt-in and should still require `/ui-ux-master` unless the user explicitly asks to use UI/UX Master.
38
38
 
39
39
  ## Core Operating Rule
40
40
 
41
41
  Do not jump directly to visuals. Work in this order unless the user explicitly asks for a narrow task:
42
42
 
43
- 1. Check for existing UI/UX memory and branding first: `.ui-ux-memory.md`, design tokens, CSS variables, theme files, existing components, fonts, color scheme, and representative screens.
44
- 2. If memory exists, follow it as the design baseline. If no memory exists, create one for the application using `templates/ui-ux-memory.md` after inspecting existing branding or asking minimum high-value questions for a fresh project.
45
- 3. Understand the product, users, goal, platform, constraints, evidence available, research confidence, and success metric.
46
- 4. Define the UX model: audience, jobs-to-be-done, journeys, service touchpoints, information architecture, flows, states, and content.
47
- 5. Select an appropriate top-brand design method when frontend polish is requested: Product Cinema, Utility Command Center, Editorial Brand World, Enterprise Trust Hub, Card-Based Discovery, Conversion Simplicity, Ecosystem Bundling, Premium Restraint, Playful Familiarity, or Technical Authority.
48
- 6. Design the interface by extending the existing memory/brand baseline unless the user explicitly asks for a redesign or specific visual modification.
49
- 7. Validate: consistency with memory, research evidence, heuristics, WCAG, platform conventions, usability risks, i18n, ethics/privacy, edge cases, technical feasibility, metrics, and brand-fit.
50
- 8. Update the application UI/UX memory with durable design decisions before handoff.
51
- 9. Hand off: exact specs, tokens, component behavior, copy, states, QA checklist, implementation notes.
43
+ 1. **Discovery first.** Load `references/design-discovery-protocol.md`. For any new design task, run the 6-question discovery form before producing any visual output. Lock down: surface, audience, tone, brand context, fidelity, and constraints.
44
+ 2. **Brand extraction or visual direction.** If the user provides brand assets (URL, screenshot, hex codes), run the 5-step brand extraction protocol from `references/design-discovery-protocol.md` and write a brand-spec summary. If there is no brand, load `references/visual-directions.md`, present the 5 directions, and bind the selected direction's token block as the baseline. Never invent or guess brand colors from a company name alone.
45
+ 3. **Check project memory.** Look for `.ui-ux-memory.md` at the project root. If it exists, read all 9 sections (schema defined in `references/design-system-schema.md`) before designing. If it does not exist, create it using the schema after discovery completes.
46
+ 4. Understand the product, users, goal, platform, constraints, evidence available, research confidence, and success metric.
47
+ 5. Define the UX model: audience, jobs-to-be-done, journeys, service touchpoints, information architecture, flows, states, and content.
48
+ 6. **Industry reasoning.** Load `references/industry-reasoning-rules.md`. Match the user's product to an industry category and output the full Design System Block (pattern + style + colors + typography + effects + anti-patterns) in one step before designing.
49
+ 6a. Select an appropriate top-brand design method when frontend polish is requested. Load the corresponding brand-method skill file from references/: `references/brand-method-product-cinema.md`, `references/brand-method-utility-command-center.md`, `references/brand-method-editorial-brand-world.md`, `references/brand-method-enterprise-trust-hub.md`, `references/brand-method-card-based-discovery.md`, `references/brand-method-conversion-simplicity.md`, `references/brand-method-ecosystem-bundling.md`, `references/brand-method-premium-restraint.md`, `references/brand-method-playful-familiarity.md`, or `references/brand-method-technical-authority.md`.
50
+ 6b. Apply color psychology: load `references/color-psychology-branding.md`, identify the industry and sentiment, prescribe a complete palette with contrast ratios and rationale before any visual design begins. Use `references/color-scale-system.md` to generate full 11-step (50–950) OKLch color scales for the brand primary, neutral, and all semantic colors.
51
+ 6c. Select a UI style from `references/ui-styles-catalog.md`. Apply the style's token overrides on top of the visual direction baseline.
52
+ 7. **Junior designer warm-up.** For high-fidelity requests, show a wireframe sketch (grey blocks, real layout) first. Confirm direction before applying brand and polish. Skip if the user explicitly requests final output or provides a detailed reference.
53
+ 8. Design the interface by extending the established brand/direction baseline. Apply only tokens from the schema — no ad-hoc magic values. Apply stack-specific rules from `references/tech-stack-guidelines.md` for the user's chosen framework. For landing pages and marketing pages, follow the appropriate conversion pattern from `references/landing-page-patterns.md`. For dashboards, use the chart type guide in that same file.
54
+ 9. **Quality gates before any emit.** Load `references/output-quality-gates.md`. Run the 5-dimensional self-critique (philosophy/hierarchy/execution/specificity/restraint), pass all P0 hard gates, and clear the anti-slop blacklist. Fix and rescore until all dimensions ≥ 3. Do not emit output until all gates pass.
55
+ 10. Validate: consistency with memory, research evidence, heuristics, WCAG, platform conventions, usability risks, i18n, ethics/privacy, edge cases, technical feasibility, metrics, and brand-fit.
56
+ 11. Update `.ui-ux-memory.md` with any new durable design decisions before handoff.
57
+ 12. Hand off: exact specs, tokens, component behavior, copy, states, QA checklist, implementation notes.
52
58
 
53
59
  ## When to Use
54
60
 
@@ -456,36 +462,52 @@ Must include:
456
462
 
457
463
  ### Top-Brand Frontend Method
458
464
 
459
- When the user asks for a frontend that looks polished, premium, world-class, or similar to top brands, use `references/top-100-brand-website-analysis.md` before designing.
465
+ When the user asks for a frontend that looks polished, premium, world-class, or similar to top brands, use `references/top-100-brand-website-analysis.md` before designing. Then load the dedicated skill file for the selected method.
460
466
 
461
467
  Process:
462
468
 
463
469
  1. Identify the product category and user task.
464
- 2. Pick one primary method and one or two supporting methods:
465
- - Product Cinema for premium product reveals.
466
- - Utility Command Center for task-heavy ecommerce, booking, logistics, dashboards.
467
- - Editorial Brand World for fashion, sports, beverage, entertainment, luxury campaigns.
468
- - Enterprise Trust Hub for B2B, finance, healthcare, infrastructure, industrial.
469
- - Card-Based Discovery for marketplaces, media, travel, catalogs, content libraries.
470
- - Conversion Simplicity for signup, trial, app download, subscription, fintech flows.
471
- - Ecosystem Bundling for multi-product suites.
472
- - Premium Restraint for luxury, high-end finance, premium services.
473
- - Playful Familiarity for food, toys, family, consumer brands.
474
- - Technical Authority for AI, developer tools, semiconductors, infrastructure.
475
- 3. Translate the selected methods into original tokens, layout rules, components, states, and copy.
476
- 4. Never copy a brand exactly unless the user owns that brand. Avoid logos, proprietary images, exact trademark color combinations, and pixel-for-pixel layouts.
477
- 5. Preserve accessibility and usability even when using cinematic, luxury, or experimental layouts.
470
+ 2. Pick one primary method and one or two supporting methods. Load the corresponding brand-method skill file for full layout, color, typography, spacing, motion, accessibility, and component specs:
471
+ - **Product Cinema** `references/brand-method-product-cinema.md` — premium products, hardware, automotive, luxury.
472
+ - **Utility Command Center** `references/brand-method-utility-command-center.md` ecommerce, logistics, booking, dashboards.
473
+ - **Editorial Brand World** `references/brand-method-editorial-brand-world.md` — fashion, sports, beverage, entertainment.
474
+ - **Enterprise Trust Hub** `references/brand-method-enterprise-trust-hub.md` — B2B SaaS, finance, healthcare, industrial.
475
+ - **Card-Based Discovery** `references/brand-method-card-based-discovery.md` — marketplaces, media, travel, catalogs.
476
+ - **Conversion Simplicity** `references/brand-method-conversion-simplicity.md` — signup, trial, subscription, fintech flows.
477
+ - **Ecosystem Bundling** `references/brand-method-ecosystem-bundling.md` — multi-product suites, plan comparison.
478
+ - **Premium Restraint** `references/brand-method-premium-restraint.md` — ultra-luxury, high-end finance, premium services.
479
+ - **Playful Familiarity** `references/brand-method-playful-familiarity.md` — food, toys, family, consumer brands.
480
+ - **Technical Authority** `references/brand-method-technical-authority.md` — AI, developer tools, semiconductors, infra.
481
+ 3. Apply color psychology: load `references/color-psychology-branding.md` to validate and prescribe the palette for the business type and emotional goal. Output the full palette before any visual design.
482
+ 4. Translate the selected methods into original tokens, layout rules, components, states, and copy.
483
+ 5. Never copy a brand exactly unless the user owns that brand. Avoid logos, proprietary images, exact trademark color combinations, and pixel-for-pixel layouts.
484
+ 6. Preserve accessibility and usability even when using cinematic, luxury, or experimental layouts.
478
485
 
479
486
  Deliverable additions:
480
487
 
488
+ - Brand method selected (with rationale).
489
+ - Color psychology palette (business type, emotional goal, full hex palette, contrast ratios).
481
490
  - Brand-inspiration blend.
482
- - Selected method rationale.
483
491
  - Layout archetype.
484
492
  - Token direction.
485
493
  - Component behavior.
486
494
  - Accessibility safeguards.
487
495
  - Anti-copy/IP safety note.
488
496
 
497
+ ### Color Psychology and Branding
498
+
499
+ When a user describes a product, business type, UI feel, or audience, load `references/color-psychology-branding.md` before prescribing any colors.
500
+
501
+ Process:
502
+
503
+ 1. Identify: business category, emotional goal (trust/energy/calm/luxury/health/play/authority/innovation), positioning (mass/premium/luxury).
504
+ 2. Look up the industry prescription and sentiment mapping in the reference file.
505
+ 3. Output the complete palette: primary, secondary, accent/CTA, background, surface, text primary, text secondary, border, semantic success/warning/error/info, and dark mode variant if needed.
506
+ 4. State the psychological rationale for each choice.
507
+ 5. Warn of anti-patterns for this category.
508
+ 6. Verify all text-on-background combinations against WCAG 2.2 AA (4.5:1 body, 3:1 large text/UI).
509
+ 7. Include this palette in the `.ui-ux-memory.md` and all handoff specs.
510
+
489
511
  ### Frontend Implementation UX
490
512
 
491
513
  When implementing UI, first load and follow `references/ui-ux-frontend-implementation-rules.md`. Treat it as the non-negotiable frontend implementation checklist.
@@ -704,7 +726,27 @@ Use the supporting files in this skill folder when useful:
704
726
  - `references/ui-ux-frontend-implementation-rules.md` — mandatory frontend implementation rules so agents do not miss stack inspection, states, accessibility, responsiveness, tokens, QA, or handoff.
705
727
  - `references/wcag-aa-quick-reference.md` — practical WCAG 2.2 AA reference for agents.
706
728
  - `references/design-system-playbook.md` — how to create or extend a design system.
729
+ - `references/ui-styles-catalog.md` — 20+ named UI styles (Glassmorphism, Liquid Glass, Data Brutalism, Aurora Borealis, AI-Native UI, Spatial UI, Cyberpunk, Claymorphism, Bento Grid, Soft UI Evolution, and more) with token overrides, required effects, forbidden patterns, and a style selection decision tree.
730
+ - `references/color-scale-system.md` — 11-step (50–950) OKLch architectural color scales for all brand hue families and semantic states. Semantic role-to-step mapping and dark mode overrides. Full px+rem typography scale.
731
+ - `references/industry-reasoning-rules.md` — one-step reasoning engine: input a product description, output a complete Design System Block (pattern, style, colors, typography, effects, anti-patterns, pre-delivery checklist) for 15+ industry categories.
732
+ - `references/tech-stack-guidelines.md` — stack-specific component patterns, rules, and common AI mistakes for 16 frameworks: React, Next.js, Vue, Nuxt, Angular, Svelte, Astro, Remix, SolidJS, React Native, Flutter, SwiftUI, shadcn/ui, Jetpack Compose, Laravel, HTML+Tailwind.
733
+ - `references/landing-page-patterns.md` — 12 named conversion patterns (Hero-Centric, Problem-Solution, Product Demo First, Comparison, etc.) with section-by-section structure. Plus 25-type chart selection guide with dashboard layout rules and data visualization anti-patterns.
734
+ - `references/design-discovery-protocol.md` — 6-question discovery form, brand extraction 5-step protocol, junior designer warm-up, and discovery checklist. Load at the start of every new design task.
735
+ - `references/output-quality-gates.md` — 5-dimensional self-critique (philosophy/hierarchy/execution/specificity/restraint), P0/P1/P2 hard gates, anti-AI-slop blacklist, and honest placeholder protocol. Run before every design emit.
736
+ - `references/visual-directions.md` — 5 fully-specified OKLch token directions (Neutral Modern, Dark Technical, Warm Editorial, Bold Energetic, Calm Trust) for projects with no brand. Each direction includes complete CSS token block ready to bind.
737
+ - `references/design-system-schema.md` — portable 9-section design system schema (color, typography, spacing, layout, components, motion, voice, brand, anti-patterns). Use as the template for all `.ui-ux-memory.md` files.
707
738
  - `references/top-100-brand-website-analysis.md` — top global brand website patterns and reusable frontend methods.
739
+ - `references/brand-method-product-cinema.md` — full layout, color, typography, spacing, motion, accessibility, and component spec for the Product Cinema design method.
740
+ - `references/brand-method-utility-command-center.md` — full spec for the Utility Command Center design method.
741
+ - `references/brand-method-editorial-brand-world.md` — full spec for the Editorial Brand World design method.
742
+ - `references/brand-method-enterprise-trust-hub.md` — full spec for the Enterprise Trust Hub design method.
743
+ - `references/brand-method-card-based-discovery.md` — full spec for the Card-Based Discovery design method.
744
+ - `references/brand-method-conversion-simplicity.md` — full spec for the Conversion Simplicity design method.
745
+ - `references/brand-method-ecosystem-bundling.md` — full spec for the Ecosystem Bundling design method.
746
+ - `references/brand-method-premium-restraint.md` — full spec for the Premium Restraint design method.
747
+ - `references/brand-method-playful-familiarity.md` — full spec for the Playful Familiarity design method.
748
+ - `references/brand-method-technical-authority.md` — full spec for the Technical Authority design method.
749
+ - `references/color-psychology-branding.md` — color psychology, industry palette prescriptions, sentiment-to-palette mapping, contrast verification, and dark mode adaptation rules.
708
750
  - `references/ux-research-methods.md` — research planning, method selection, evidence confidence, and ethical research rules.
709
751
  - `references/usability-heuristics.md` — heuristic review, cognitive rules, and severity scoring.
710
752
  - `references/platform-guidelines.md` — web, iOS, Android/Material, Windows, desktop, kiosk, email, TV, and cross-platform rules.
@@ -716,16 +758,16 @@ Use the supporting files in this skill folder when useful:
716
758
  - `references/accessibility-advanced-patterns.md` — complex widget accessibility and screen-reader test matrix.
717
759
  - `references/ui-ux-curriculum-and-standards.md` — basic-to-advanced UI/UX curriculum and standards map.
718
760
  - `references/competitive-landscape.md` — competitor gaps and strategy for staying ahead.
719
- - `docs/slash-command-compatibility.md` — cross-agent `/ui-ux-master` trigger compatibility.
720
- - `docs/mcp-server.md` — MCP tools, resources, prompts, client configs, and smoke testing.
721
- - `llms.txt` — AI-readable package map for discovery by agents and indexing tools.
722
- - `ai-discovery/ui-ux-master.manifest.json` — machine-readable manifest for activation, entrypoints, MCP, and capabilities.
723
- - `system-prompts/ui-ux-master-system-add-on.md` — full system prompt add-on.
724
- - `system-prompts/ui-ux-master-compact.md` — compact system prompt add-on.
725
- - `system-prompts/ui-ux-master-mcp-add-on.md` — MCP-focused system prompt add-on.
726
- - `agent-templates/` — Claude, Codex, Windsurf, Antigravity, Gemini, Cursor, and universal installer templates.
727
- - `bin/ui-ux-master.mjs` — npm CLI installer.
728
- - `bin/ui-ux-master-mcp.mjs` — local read-only MCP server.
761
+ - `docs/slash-command-compatibility.md` — cross-agent `/ui-ux-master` trigger compatibility.
762
+ - `docs/mcp-server.md` — MCP tools, resources, prompts, client configs, and smoke testing.
763
+ - `llms.txt` — AI-readable package map for discovery by agents and indexing tools.
764
+ - `ai-discovery/ui-ux-master.manifest.json` — machine-readable manifest for activation, entrypoints, MCP, and capabilities.
765
+ - `system-prompts/ui-ux-master-system-add-on.md` — full system prompt add-on.
766
+ - `system-prompts/ui-ux-master-compact.md` — compact system prompt add-on.
767
+ - `system-prompts/ui-ux-master-mcp-add-on.md` — MCP-focused system prompt add-on.
768
+ - `agent-templates/` — Claude, Codex, Windsurf, Antigravity, Gemini, Cursor, and universal installer templates.
769
+ - `bin/ui-ux-master.mjs` — npm CLI installer.
770
+ - `bin/ui-ux-master-mcp.mjs` — local read-only MCP server.
729
771
  - `templates/ui-ux-brief.md` — intake and requirements template.
730
772
  - `templates/ui-ux-memory.md` — project UI/UX memory file template to copy into an application root as `.ui-ux-memory.md`.
731
773
  - `templates/ui-ux-audit-report.md` — audit output template.
@@ -21,9 +21,9 @@ The GitHub "No packages published" message does not mean the npmjs package is br
21
21
 
22
22
  ## GitHub Packages Setup
23
23
 
24
- Do not add a root `.npmrc` that changes the default registry, because that can accidentally route normal installs away from npmjs.
24
+ The root `.npmrc` intentionally configures only the `@seance1723` scope. It does not change the default registry, so normal `npm install ui-ux-master` and `npm publish` for the unscoped npmjs package still use npmjs.
25
25
 
26
- Use this scoped configuration only when publishing or installing the GitHub Packages mirror:
26
+ Scoped GitHub Packages configuration:
27
27
 
28
28
  ```ini
29
29
  @seance1723:registry=https://npm.pkg.github.com
@@ -36,13 +36,15 @@ Local install from GitHub Packages:
36
36
  npm install @seance1723/ui-ux-master --registry=https://npm.pkg.github.com
37
37
  ```
38
38
 
39
+ Many GitHub Packages installs require authentication. Use a token with `read:packages` for installs and `write:packages` for publishing.
40
+
39
41
  ## Secrets
40
42
 
41
43
  Add these repository secrets:
42
44
 
43
45
  - `NPM_TOKEN` - npm automation token with publish access to `ui-ux-master`.
44
46
 
45
- GitHub Packages publishing uses the built-in `GITHUB_TOKEN` in Actions.
47
+ GitHub Packages publishing uses the built-in `GITHUB_TOKEN` in Actions. The workflow temporarily changes the package name to `@seance1723/ui-ux-master` only for that publish job, then publishes to `https://npm.pkg.github.com/`. Do not permanently rename the root package unless you intentionally want to migrate away from the public unscoped npmjs package.
46
48
 
47
49
  ## Release Strategy
48
50
 
package/index.cjs CHANGED
@@ -4,8 +4,10 @@ const path = require('node:path');
4
4
 
5
5
  const packageRoot = __dirname;
6
6
 
7
+ const _pkg = require('./package.json');
8
+
7
9
  const name = 'ui-ux-master';
8
- const version = '1.2.1';
10
+ const version = _pkg.version;
9
11
  const trigger = '/ui-ux-master';
10
12
 
11
13
  const bins = Object.freeze({
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const name = "ui-ux-master";
2
- export declare const version = "1.2.1";
2
+ export declare const version: string;
3
3
  export declare const trigger = "/ui-ux-master";
4
4
 
5
5
  export declare const bins: Readonly<{
package/index.mjs CHANGED
@@ -1,10 +1,13 @@
1
1
  import path from 'node:path';
2
2
  import { fileURLToPath } from 'node:url';
3
+ import { createRequire } from 'node:module';
3
4
 
4
5
  const packageRoot = path.dirname(fileURLToPath(import.meta.url));
6
+ const _require = createRequire(import.meta.url);
7
+ const _pkg = _require('./package.json');
5
8
 
6
9
  export const name = 'ui-ux-master';
7
- export const version = '1.2.1';
10
+ export const version = _pkg.version;
8
11
  export const trigger = '/ui-ux-master';
9
12
 
10
13
  export const bins = Object.freeze({
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ui-ux-master",
3
- "version": "1.2.1",
3
+ "version": "1.5.0",
4
4
  "description": "Opt-in UI/UX master skill, CLI, and MCP server for AI coding agents, with accessibility, design-system, UX research, and frontend handoff workflows.",
5
5
  "type": "module",
6
- "packageManager": "npm@11.14.0",
6
+ "packageManager": "npm@10.9.2",
7
7
  "main": "./index.cjs",
8
8
  "module": "./index.mjs",
9
9
  "types": "./index.d.ts",
@@ -47,12 +47,13 @@
47
47
  "scripts": {
48
48
  "validate": "python scripts/validate_skill.py --release",
49
49
  "validate:release": "python scripts/validate_skill.py --release",
50
+ "build": "npm run check:syntax",
50
51
  "check:syntax": "node --check index.mjs && node --check index.cjs && node --check bin/ui-ux-master.mjs && node --check bin/ui-ux-master-mcp.mjs",
51
52
  "doctor": "node bin/ui-ux-master.mjs doctor --dry-run",
52
53
  "test": "npm run test:smoke",
53
54
  "test:smoke": "npm run check:syntax && npm run doctor",
54
55
  "test:node": "node --test tests/*.test.mjs",
55
- "ci": "npm run validate && npm run test:smoke && npm run test:node",
56
+ "ci": "npm run validate && npm run build && npm run test:smoke && npm run test:node",
56
57
  "release:check": "npm run ci && npm run pack:dry-run",
57
58
  "pack:dry-run": "npm pack --dry-run",
58
59
  "prepack": "npm run validate && npm test",
@@ -0,0 +1,285 @@
1
+ # Brand Method: Card-Based Discovery
2
+
3
+ Use this skill when building for marketplaces, media platforms, travel aggregators, content libraries, product catalogs, rental platforms, or any context where the user browses, saves, and discovers from a large collection.
4
+
5
+ Reference brands: Airbnb, YouTube, Spotify, Netflix, Disney+, LEGO, Nintendo, Booking.com listings, Etsy, Pinterest.
6
+
7
+ ---
8
+
9
+ ## When to Apply This Method
10
+
11
+ Apply Card-Based Discovery when:
12
+ - The product is a catalog, marketplace, or content library.
13
+ - Users browse, save, filter, and compare rather than searching for one specific item.
14
+ - The value proposition is breadth: "there's always something for you."
15
+ - Discovery and serendipity are core to the experience.
16
+
17
+ Do not apply when:
18
+ - Users arrive with a specific known item in mind (use Utility Command Center).
19
+ - The brand has a single product hero (use Product Cinema).
20
+ - The primary goal is subscription sign-up (use Conversion Simplicity).
21
+
22
+ ---
23
+
24
+ ## Layout Structure
25
+
26
+ ### Hero / Entry Point
27
+ - Not a full-screen hero — the card grid IS the value proposition.
28
+ - Compact hero: search bar, category tabs, or personalized greeting with immediate content below.
29
+ - Alternative: carousel or featured editorial band (1-3 items), then immediate card grid.
30
+ - Call to action: "Browse [Category]" or personalized "Continue Watching / Listening / Exploring."
31
+
32
+ ### Card Grid
33
+ - Primary layout pattern.
34
+ - Grid: responsive, 2-6 columns depending on card type and screen.
35
+ - Card rows: grouped by category, mood, recommendation engine, or curator picks.
36
+ - Section headings above each row with optional "See all →" link.
37
+ - Horizontal scroll rows for mobile (swipe gesture expected).
38
+
39
+ ### Filter and Sort Controls
40
+ - Persistent or collapsible filter panel.
41
+ - Filter types: category, price/rating range, location, date, availability, mood/genre.
42
+ - Active filter chips shown above results — easy to clear individually or all.
43
+ - Sort: relevance, price, rating, newest, most popular.
44
+
45
+ ### Card Types
46
+ Define at least one primary card type per context:
47
+ - **Content card**: thumbnail (16:9 or 1:1), title, creator/source, metadata (duration, views, rating).
48
+ - **Product card**: image, name, price, rating, badge (deal, new, bestseller).
49
+ - **Place/listing card**: image (4:3), name, location, rating, price/night, favorite icon.
50
+ - **Media card**: album art, title, artist/show, play button.
51
+
52
+ ### Detail Page
53
+ - Hero: large image or media player.
54
+ - Primary action: "Play", "Book", "Add to Cart", "Save."
55
+ - Metadata: ratings, description, related tags.
56
+ - Recommendation section: "More like this", "Because you watched/liked."
57
+ - Reviews (if applicable): summary + individual reviews.
58
+
59
+ ---
60
+
61
+ ## Color Scheme
62
+
63
+ ### Palette by Sub-category
64
+
65
+ **Travel Marketplace (Airbnb)**
66
+ - Background: `#FFFFFF`
67
+ - Primary: `#FF385C` (coral/brand)
68
+ - Surface: `#F7F7F7`
69
+ - Text: `#222222`
70
+ - Secondary text: `#717171`
71
+ - Border: `#DDDDDD`
72
+ - Map accent: brand coral
73
+ - Favorite icon: `#FF385C`
74
+
75
+ **Streaming / Media (Netflix, Spotify)**
76
+ - Background: `#141414` (Netflix) or `#121212` (Spotify)
77
+ - Surface: `#1E1E1E` or `#282828`
78
+ - Primary text: `#FFFFFF`
79
+ - Secondary text: `#B3B3B3`
80
+ - Accent: `#E50914` (Netflix red) or `#1DB954` (Spotify green)
81
+ - Progress bar: accent color on dark track
82
+
83
+ **Family / Toys (LEGO, Disney, Nintendo)**
84
+ - Background: `#FFFFFF`
85
+ - Primary: Brand color (LEGO yellow `#FFD700` / red, Nintendo red `#E4000F`)
86
+ - Surface: `#F8F8F8`
87
+ - Text: `#1A1A1A`
88
+ - Secondary text: `#666666`
89
+ - Card border: `#EEEEEE`
90
+ - Accent / CTA: brand primary
91
+
92
+ **General Marketplace (Etsy)**
93
+ - Background: `#FFFFFF`
94
+ - Primary: `#F1641E` (Etsy orange)
95
+ - Surface: `#F4F4F4`
96
+ - Text: `#222222`
97
+
98
+ ### Rules
99
+ - Dark surfaces: Spotify and Netflix — vivid accent pops against dark. Use sparingly.
100
+ - Light surfaces: marketplaces, travel — clean white lets imagery drive color.
101
+ - Card backgrounds must be neutral — let card content (images) provide color energy.
102
+ - Favorites / save icon: always high-contrast so users can find it.
103
+
104
+ ---
105
+
106
+ ## Typography
107
+
108
+ ### Scale
109
+ | Role | Size | Weight | Notes |
110
+ |---|---|---|---|
111
+ | Section heading | 18-24px | 600-700 | |
112
+ | Card title | 14-16px | 500-600 | 1-2 line clamp |
113
+ | Card metadata | 12-14px | 400 | Duration, views, rating |
114
+ | Price | 14-16px | 600 | Tabular numerals |
115
+ | Badge | 10-12px | 600-700 | All-caps, high contrast on brand color |
116
+ | Filter label | 13-14px | 500 | |
117
+ | CTA | 14-16px | 600 | |
118
+ | Hero headline (if any) | 28-40px | 700 | |
119
+
120
+ ### Font Pairings
121
+ | Context | Font |
122
+ |---|---|
123
+ | Travel / marketplace | Cereal (Airbnb), Circular, or Inter |
124
+ | Streaming dark | Netflix Sans, or Inter/Roboto |
125
+ | Music | Circular, Montserrat, or Nunito |
126
+ | Family/toys | Nunito, Poppins, or Fredoka One |
127
+
128
+ ### Rules
129
+ - Card titles must be readable at small sizes — minimum 14px.
130
+ - Use `line-clamp` to keep card grids uniform — never let one card blow the layout.
131
+ - Price: bold, tabular numerals, never ambiguous position on card.
132
+
133
+ ---
134
+
135
+ ## Spacing System
136
+
137
+ | Token | Value | Use |
138
+ |---|---|---|
139
+ | `--space-xs` | 4px | Icon nudges, badge padding |
140
+ | `--space-sm` | 8px | Card inner gaps |
141
+ | `--space-md` | 12-16px | Card padding |
142
+ | `--space-lg` | 20-24px | Grid gutters |
143
+ | `--space-xl` | 32-40px | Section separation (heading to grid) |
144
+ | `--space-2xl` | 48-64px | Between major content sections |
145
+
146
+ - Grid gutter: 16-24px between cards. Smaller for media, larger for travel listings.
147
+ - Section separation: 32-48px between category rows.
148
+ - Cards must have consistent height within a row (use fixed aspect ratio on images).
149
+
150
+ ---
151
+
152
+ ## Motion and Interaction
153
+
154
+ ### Card Interactions
155
+ - Hover: subtle shadow lift `box-shadow: 0 4px 16px rgba(0,0,0,0.15)`, image zoom `scale(1.03)` transition 200ms.
156
+ - Favorite/save button: heart icon fill animation on click (scale 1.2 → 1.0, 150ms).
157
+ - Play button overlay: appears on card hover with opacity transition.
158
+ - Carousel/row scroll: smooth scroll with momentum. Show scroll indicator or arrows at edges.
159
+
160
+ ### Loading
161
+ - Always use skeleton screens for card grids — never blank areas.
162
+ - Skeleton: match exact card dimensions. Animate shimmer gradient left to right.
163
+ - Infinite scroll: load next batch 200px before viewport bottom. Show spinner at bottom.
164
+
165
+ ### Transitions
166
+ - Page navigation: instant load with skeleton → content fade-in. No full-page loading spinners.
167
+ - Filter apply: instant result update with skeleton transition, never full page reload.
168
+ - Media player appear: slide-up from bottom (mobile) or smooth expand (desktop).
169
+
170
+ ---
171
+
172
+ ## Responsive Behavior
173
+
174
+ | Breakpoint | Key changes |
175
+ |---|---|
176
+ | Mobile 375px | Single column (1-2 cards wide). Horizontal scroll rows. Filter: bottom sheet. Search: full width. |
177
+ | Tablet 768px | 2-3 column grid. Horizontal scroll or pagination. Collapsible filter sidebar. |
178
+ | Desktop 1024px | 3-5 column grid. Persistent or toggle filter panel. |
179
+ | Wide 1440px+ | 4-6 columns for media/product cards. Max-width content container. |
180
+
181
+ - Mobile: horizontal scroll card rows (Netflix-style) are expected and usable.
182
+ - Mobile: filter is a full-screen bottom sheet with apply/clear buttons.
183
+ - Mobile: card images must be large enough to see detail (min 140px width).
184
+
185
+ ---
186
+
187
+ ## Accessibility Requirements
188
+
189
+ - Card: each card is a single interactive unit. Use `<article>` or `<li>`. Primary action (title link) is the main focus target.
190
+ - Favorite button: `aria-label="Save [Item Name]"` or `aria-pressed="true/false"`.
191
+ - Play button: `aria-label="Play [Title]"`.
192
+ - Rating stars: `aria-label="4.2 out of 5 stars"`.
193
+ - Carousel/row: `role="region"` with `aria-label="[Category Name]"`. Left/right scroll buttons keyboard accessible.
194
+ - Infinite scroll: announce new results with `aria-live="polite"` — "12 more results loaded."
195
+ - Filter: `<fieldset>` + `<legend>` per group. Active filters: each chip has a remove button with `aria-label="Remove [filter name] filter"`.
196
+ - Image thumbnails: `alt` describes the content (movie title, product name, property name).
197
+ - Dark streaming UI: ensure text-on-image thumbnails meet contrast. Provide text overlays only with scrim.
198
+ - Touch targets: card images, titles, and favorite buttons all ≥ 44×44px on mobile.
199
+
200
+ ---
201
+
202
+ ## UX Principles for This Method
203
+
204
+ 1. **Discovery over search.** Browsing should feel rewarding — "I didn't know I wanted that."
205
+ 2. **Cards are atoms.** Every card must be independently scannable: image, title, key metadata in one glance.
206
+ 3. **Personalization is the feature.** Surface what the user is likely to want next — recommendation rows are high-value real estate.
207
+ 4. **Save and resume.** Favorites, watch later, saved searches — users leave and return. Meet them where they left off.
208
+ 5. **Never lose the user in the grid.** Section headings, pagination, and "see all" links provide orientation.
209
+ 6. **Fast first render.** Skeletons, lazy images, and fast first card row matter — the grid must feel instant.
210
+
211
+ ---
212
+
213
+ ## Component Specs
214
+
215
+ ### Standard Card
216
+ ```
217
+ Width: flexible (grid cell) — typically 200-320px
218
+ Image: aspect-ratio 16:9 (video/media), 1:1 (music/product), 4:3 (travel/place)
219
+ Image object-fit: cover
220
+ Title: 14-16px, font-weight 500-600, 2-line clamp
221
+ Metadata row: 12-13px, text-secondary
222
+ Price (if applicable): 14-16px, bold
223
+ Favorite button: absolute top-right, 36×36px, heart icon, background: white circle with shadow
224
+ Border-radius: 8-12px (travel/marketplace) | 4px (media) | 0 (ultra editorial)
225
+ Shadow: default none, hover: 0 4px 16px rgba(0,0,0,0.1)
226
+ ```
227
+
228
+ ### Category Section Row
229
+ ```
230
+ Heading: 18-22px, font-weight 600, margin-bottom 12px
231
+ "See all" link: right-aligned, 14px, brand color
232
+ Horizontal scroll: overflow-x: scroll, scroll-snap-type: x mandatory
233
+ Scroll snapping: scroll-snap-align: start per card
234
+ Scrollbar: hidden (visually), accessible via keyboard
235
+ ```
236
+
237
+ ### Filter Bottom Sheet (Mobile)
238
+ ```
239
+ Position: fixed bottom 0, full width
240
+ Height: auto, max-height 85vh, overflow-y: scroll
241
+ Background: white
242
+ Border-radius: 16px 16px 0 0
243
+ Handle bar: 4px × 32px, centered top, gray
244
+ Animation: slide up 250ms ease
245
+ Footer: "Apply Filters" (primary) + "Clear All" (ghost), sticky
246
+ ```
247
+
248
+ ### Skeleton Card
249
+ ```
250
+ Background: var(--surface)
251
+ Image area: same aspect ratio as real card, background: linear-gradient shimmer
252
+ Title lines: 2 lines, height 14px, border-radius 4px, same shimmer
253
+ Animation: @keyframes shimmer, background-position shift 1.5s linear infinite
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Anti-Patterns to Avoid
259
+
260
+ - Do not show more than 6 items per horizontal scroll row before a "See all" link.
261
+ - Do not hide card metadata (price, rating, duration) until hover — mobile users cannot hover.
262
+ - Do not use infinite scroll without an easy way to get back to a specific position.
263
+ - Do not auto-play media in card hover on mobile.
264
+ - Do not use pagination alone without telling users how many total results exist.
265
+ - Do not load the full product catalog without filtering options.
266
+ - Do not use pop-up interstitials over the card grid.
267
+ - Do not make the save/favorite button so small it's untappable on mobile.
268
+
269
+ ---
270
+
271
+ ## QA Checklist
272
+
273
+ - [ ] Card grid renders correctly at 375px, 768px, 1024px, 1440px.
274
+ - [ ] Skeleton cards shown while data loads.
275
+ - [ ] Infinite scroll loads next batch before hitting bottom.
276
+ - [ ] Filter updates results without full page reload.
277
+ - [ ] Active filter chips visible above results with individual remove buttons.
278
+ - [ ] Favorite button has `aria-label` with item name.
279
+ - [ ] Rating stars have accessible text alternative.
280
+ - [ ] Horizontal scroll rows keyboard navigable (arrow keys or tab).
281
+ - [ ] `aria-live` announces new results loaded.
282
+ - [ ] Mobile filter bottom sheet accessible and closeable via swipe or close button.
283
+ - [ ] All card images have meaningful `alt` text.
284
+ - [ ] Dark streaming UI: text-on-image contrast passes 4.5:1.
285
+ - [ ] No media autoplays on mobile.