repo_description: ChatGPT at home! A better alternative to commercial smart home assistants, built on the Raspberry Pi using LiteLLM and LangGraph.
repo_topics: ai automation docker fastapi home-assistant home-automation iot langchain langgraph langmem llm nginx nodejs openai python raspberry-pi react speech-recognition spotify typescript
code: /** @type {import('tailwindcss').Config} */
  module.exports = {
      content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],
      darkMode: "class",
      theme: {
          screens: {
              xs: "480px",
              sm: "640px",
              md: "768px",
              lg: "1024px",
              xl: "1280px",
              "2xl": "1536px",
          },
          extend: {
              colors: {
                  primary: {
                      50: "#f0f9ff",
                      100: "#e0f2fe",
                      200: "#bae6fd",
                      300: "#7dd3fc",
                      400: "#38bdf8",
                      500: "#0ea5e9",
                      600: "#0284c7",
                      700: "#0369a1",
                      800: "#075985",
                      900: "#0c4a6e",
                  },
                  dark: {
                      50: "#f8fafc",
                      100: "#f1f5f9",
                      200: "#e2e8f0",
                      300: "#cbd5e1",
                      400: "#94a3b8",
                      500: "#64748b",
                      600: "#475569",
                      700: "#334155",
                      800: "#1e293b",
                      900: "#0f172a",
                      950: "#020617",
                  },
                  accent: {
                      emerald: "#10b981",
                      rose: "#f43f5e",
                      amber: "#f59e0b",
                      violet: "#8b5cf6",
                      cyan: "#06b6d4",
                  },
              },
              fontFamily: {
                  sans: ["Inter", "system-ui", "-apple-system", "sans-serif"],
                  mono: ["JetBrains Mono", "Fira Code", "monospace"],
              },
              animation: {
                  "fade-in": "fadeIn 0.5s ease-out",
                  "slide-in": "slideIn 0.3s ease-out",
                  "slide-up": "slideUp 0.3s ease-out",
                  "pulse-slow": "pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite",
                  "bounce-slow": "bounce 2s infinite",
                  "spin-slow": "spin 3s linear infinite",
                  gradient: "gradient 8s ease infinite",
                  float: "float 6s ease-in-out infinite",
                  glow: "glow 2s ease-in-out infinite alternate",
              },
              keyframes: {
                  fadeIn: {
                      "0%": { opacity: "0" },
                      "100%": { opacity: "1" },
                  },
                  slideIn: {
                      "0%": { transform: "translateX(-100%)", opacity: "0" },
                      "100%": { transform: "translateX(0)", opacity: "1" },
                  },
                  slideUp: {
                      "0%": { transform: "translateY(20px)", opacity: "0" },
                      "100%": { transform: "translateY(0)", opacity: "1" },
                  },
                  gradient: {
                      "0%, 100%": { backgroundPosition: "0% 50%" },
                      "50%": { backgroundPosition: "100% 50%" },
                  },
                  float: {
                      "0%, 100%": { transform: "translateY(0)" },
                      "50%": { transform: "translateY(-10px)" },
                  },
                  glow: {
                      "0%": { opacity: "0.5", transform: "scale(1)" },
                      "100%": { opacity: "0.8", transform: "scale(1.02)" },
                  },
              },
              backdropBlur: {
                  xs: "2px",
              },
              boxShadow: {
                  glow: "0 0 20px rgba(14, 165, 233, 0.3)",
                  "glow-lg": "0 0 40px rgba(14, 165, 233, 0.4)",
                  "inner-lg": "inset 0 2px 10px 0 rgb(0 0 0 / 0.1)",
              },
          },
      },
      plugins: [],
  };
  