Tips & Tricks

Claude Code के साथ CSS

Claude Code का उपयोग करके CSS सीखें। Practical tips और code examples शामिल हैं।

CSS Variables से Style Management को Efficient बनाएं

CSS variables (custom properties) color और size जैसी design values को centrally manage करते हैं, theme switching और responsive support को dramatically simplify करते हैं। Claude Code का उपयोग करके, systematic design tokens की design से implementation तक एक साथ किया जा सकता है।

Design Tokens Define करना

> पूरे project में use होने वाले CSS variables को design tokens के रूप में define करो।
> Color, typography, spacing, shadow शामिल करो।
:root {
  /* Color palette */
  --color-primary-50: #eff6ff;
  --color-primary-100: #dbeafe;
  --color-primary-500: #3b82f6;
  --color-primary-600: #2563eb;
  --color-primary-700: #1d4ed8;

  --color-gray-50: #f9fafb;
  --color-gray-100: #f3f4f6;
  --color-gray-500: #6b7280;
  --color-gray-800: #1f2937;
  --color-gray-900: #111827;

  /* Semantic colors */
  --color-bg: var(--color-gray-50);
  --color-text: var(--color-gray-900);
  --color-text-muted: var(--color-gray-500);
  --color-border: var(--color-gray-100);
  --color-accent: var(--color-primary-500);

  /* Typography */
  --font-sans: 'Inter', 'Noto Sans JP', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);

  /* Border */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-full: 9999px;
}

Dark Mode Support

/* Dark theme के semantic colors override */
[data-theme="dark"],
.dark {
  --color-bg: var(--color-gray-900);
  --color-text: var(--color-gray-50);
  --color-text-muted: var(--color-gray-400, #9ca3af);
  --color-border: var(--color-gray-800);
  --color-accent: var(--color-primary-400, #60a5fa);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
}

/* OS settings से sync */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg: var(--color-gray-900);
    --color-text: var(--color-gray-50);
    --color-text-muted: var(--color-gray-400, #9ca3af);
    --color-border: var(--color-gray-800);
  }
}

Component-level Variables

/* Button component */
.btn {
  --btn-bg: var(--color-accent);
  --btn-text: white;
  --btn-padding-x: var(--space-4);
  --btn-padding-y: var(--space-2);
  --btn-radius: var(--radius-md);

  background: var(--btn-bg);
  color: var(--btn-text);
  padding: var(--btn-padding-y) var(--btn-padding-x);
  border-radius: var(--btn-radius);
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
}

.btn:hover {
  opacity: 0.9;
}

/* Variations सिर्फ variable override से */
.btn--secondary {
  --btn-bg: var(--color-gray-100);
  --btn-text: var(--color-text);
}

.btn--outline {
  --btn-bg: transparent;
  --btn-text: var(--color-accent);
  border: 1px solid var(--color-accent);
}

.btn--sm {
  --btn-padding-x: var(--space-3);
  --btn-padding-y: var(--space-1);
  font-size: var(--font-size-sm);
}

JavaScript से Operate करना

// Theme switch
function setTheme(theme: 'light' | 'dark') {
  document.documentElement.setAttribute('data-theme', theme);
  localStorage.setItem('theme', theme);
}

// Accent color dynamically change
function setAccentColor(color: string) {
  document.documentElement.style.setProperty('--color-accent', color);
}

// CSS variable get करना
function getCssVariable(name: string): string {
  return getComputedStyle(document.documentElement)
    .getPropertyValue(name)
    .trim();
}

Responsive Variables

:root {
  --content-width: 100%;
  --font-size-heading: var(--font-size-2xl);
  --section-padding: var(--space-6);
}

@media (width >= 768px) {
  :root {
    --content-width: 720px;
    --font-size-heading: var(--font-size-3xl);
    --section-padding: var(--space-8);
  }
}

@media (width >= 1024px) {
  :root {
    --content-width: 960px;
    --section-padding: var(--space-12);
  }
}

.container {
  max-width: var(--content-width);
  padding: var(--section-padding);
  margin: 0 auto;
}

Summary

CSS variables dark mode implementation और design system build करने के लिए essential technology है। Claude Code का उपयोग करके, systematic design tokens की design से components में apply करने तक efficiently implement किया जा सकता है। Flexbox और CSS Grid के साथ combine करके, maintainable stylesheets build किए जा सकते हैं। CSS variables की detailed specification के लिए MDN Web Docs देखें।

#Claude Code #CSS variables #custom properties #design tokens #theming