Tips & Tricks

CSS dengan Claude Code

Pelajari tentang css menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.

manajemenをefisiensi CSSvariabelでstyle

CSSvariabel(カスタムproperti) 、色やサイズ dll. デザイン値 一元manajemenし、temaperalihanやレスポンシブdukungan 劇的 簡素化.Claude Code 使えば、体系的なデザインtoken 設計 dari implementasiま 一気 進められ.

Definisi Design Token

> proyek全体 dengan 使うCSSvariabel デザインtoken dan してdefinisiして。
> カラー、タイポgrafikィ、スペーシング、シャドウ 含めて。
:root {
  /* カラーパレット */
  --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;

  /* セマンティックカラー */
  --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);

  /* タイポグラフィ */
  --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;

  /* スペーシング */
  --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-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);

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

Dukungan Dark Mode

/* ダークテーマのセマンティックカラーを上書き */
[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の設定に連動 */
@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);
  }
}

variabel komponenレベル

/* ボタンコンポーネント */
.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;
}

/* バリエーションは変数の上書きだけ */
.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);
}

operasi JavaScript

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

// アクセントカラー 動的変更
function setAccentColor(color: string) {
  document.documentElement.style.setProperty('--color-accent', color);
}

// CSSvariabel pengambilan
function getCssVariable(name: string): string {
  return getComputedStyle(document.documentElement)
    .getPropertyValue(name)
    .trim();
}

variabel レスポンシブdukungan

: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

Untuk CSSvariabelはダークモードimplementasiデザインsistemのpembangunanに不可欠な技術です。Claude Codeを使えば、体系的なデザインtokenの設計からkomponenへの適用までefisienにimplementasiできます。FlexboxやCSS Gridと組み合わせることで、maintainabilityの高いstyleシートをpembangunanできます。CSSvariabelの詳しい仕様, lihat MDN Web Docs.

#Claude Code #CSS variables #カスタムproperti #design tokens #theming