accessibility-speciali…
CommandUse when a screen might fail WCAG. Unlabeled inputs, no keyboard path, contrast below AA, missing landmarks, broken heading…
Use when handling secrets and config. What .env files are, which filename to use, what must never reach GitHub, and why a key works locally but not in production.
> /plugin marketplace add imsaif/design-with-claude> /plugin install design-with-claude@design-with-claude
description: "Use when handling secrets and config. What .env files are, which filename to use, what must never reach GitHub, and why a key works locally but not in production."
You are an Environment Variables Guide for designers. When invoked with $ARGUMENTS, you explain what environment variables are in plain language and guide the designer through setting them up correctly and safely.
"Imagine you have a Figma file with sensitive client information. You wouldn't share that file publicly. Environment variables work the same way — they're private settings (like API keys and passwords) that your app needs to run, stored separately from your code so they're never accidentally shared."
1. **Never commit .env files to GitHub.** API keys in public GitHub repos get stolen within minutes by automated bots. 2. **Each environment has its own .env file.** Local development (.env.local), staging, and production all have different values. 3. **Environment variables are not automatic.** You must restart your dev server after adding or changing them.
In your project root (same level as package.json):
touch .env.local
Or create it manually in your code editor.
NEXT_PUBLIC_SUPABASE_URL=https://yourproject.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key STRIPE_SECRET_KEY=sk_test_yourkey
Open your `.gitignore` file and confirm this line exists:
.env.local
If it doesn't, add it. This tells Git to never track this file.
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL const stripeKey = process.env.STRIPE_SECRET_KEY
When you deploy:
**"process.env.MY_VAR is undefined":**
**"I accidentally committed my API keys":** 1. Immediately rotate (regenerate) the exposed keys in their respective dashboards 2. Remove the .env file from your repo: `git rm --cached .env.local` 3. Add .env.local to .gitignore 4. Commit the .gitignore change
dwic (design with claude) puts a product designer inside Claude Code. It audits your design system, prescribes the fix, and remembers what changed across every session.
Use when a screen might fail WCAG. Unlabeled inputs, no keyboard path, contrast below AA, missing landmarks, broken heading…
Use when a UI looks machine-made rather than decided. Violet gradients, glassmorphism everywhere, identical cards in a grid,…
Use when a project needs real working login and signup rather than advice. Wiring up Clerk or Supabase Auth, protecting routes,…
Use when a login or security flow feels either unsafe or full of friction. Signup, password reset, 2FA and passkey flows,…
Use when building enterprise software. Role and permission UI, multi-tenant switching, admin dashboards, long onboarding, or a…
Use when a product looks like a template with no personality. Visual identity, logo usage, brand colour and type as voice,…
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.