Configuration

Customize UI Lab to fit your project’s design requirements and preferences.

Basic Configuration

Create a ui-lab.config.js file in your project root:

export default {
  theme: {
    primary: '#3b82f6',
    secondary: '#64748b',
    accent: '#f59e0b',
    neutral: '#374151',
    success: '#10b981',
    warning: '#f59e0b',
    error: '#ef4444',
  },
  darkMode: 'class', // 'class' | 'media' | false
  prefix: 'ui-',
  borderRadius: {
    small: '4px',
    medium: '8px',
    large: '12px',
  },
  spacing: {
    scale: 1.2,
    base: '16px',
  }
};

Theme Customization

Color Palette

Define your brand colors:

export default {
  theme: {
    colors: {
      primary: {
        50: '#eff6ff',
        100: '#dbeafe',
        500: '#3b82f6',
        900: '#1e3a8a',
      },
      // Custom color scales
      brand: '#ff6b35',
      accent: '#4ecdc4',
    }
  }
};

Typography

Customize fonts and text scales:

export default {
  theme: {
    fontFamily: {
      sans: ['Inter', 'sans-serif'],
      heading: ['Poppins', 'sans-serif'],
      mono: ['Fira Code', 'monospace'],
    },
    fontSize: {
      xs: '0.75rem',
      sm: '0.875rem',
      base: '1rem',
      lg: '1.125rem',
      xl: '1.25rem',
    }
  }
};

Dark Mode

Enable dark mode support:

export default {
  darkMode: 'class'
};

Add the dark mode toggle:

// Toggle dark mode
document.documentElement.classList.toggle('dark');

Media Query-based

export default {
  darkMode: 'media'
};

Component Defaults

Override default component props:

export default {
  components: {
    Button: {
      variant: 'primary',
      size: 'medium',
      rounded: true,
    },
    Card: {
      shadow: 'medium',
      padding: 'large',
    }
  }
};

CSS Variables

UI Lab generates CSS custom properties for easy runtime theming:

:root {
  --ui-color-primary: #3b82f6;
  --ui-color-secondary: #64748b;
  --ui-spacing-base: 16px;
  --ui-border-radius: 8px;
}

/* Dark mode overrides */
.dark {
  --ui-color-primary: #60a5fa;
  --ui-color-secondary: #94a3b8;
}

Environment-specific Configuration

Development

export default {
  debug: true,
  warnings: true,
  devtools: true,
};

Production

export default {
  debug: false,
  warnings: false,
  minify: true,
  purge: true,
};

Ready to start building? Check out our component library next!