Skip to content

Metro Bundler hangs on 99.9% with this global.css setup #267

@dv00d00

Description

@dv00d00

Describe the bug
Having hsl var in tailwind.config.js or/and global.css causes metro bundler for android api 35 (OS: Windows 11) to hang with this output

Correction: it is likely not related to hsl, there is something special in the vibe coded global.css which causes this hang

Correction 2: commenting out one of the @layer base {} blocks fixes hang

@tailwind base;
@tailwind components;
@tailwind utilities;

/* First Bites Design System - Muted colors with subtle violet accents */

@layer base {
    :root {
      /* Muted Brand Colors - Pastel Violet */
      --primary-violet: 179 153 204;        /* Soft violet for subtle accents */
      --primary-violet-light: 204 194 217;  /* Very light violet */
      --primary-violet-dark: 153 122 191;   /* Slightly darker violet */
      
      --sage-green: 114 127 97;           /* Muted sage green */
      --sage-green-light: 136 143 130;     /* Light muted sage */
      --sage-green-dark: 92 107 82;      /* Dark muted sage */
      
      --neutral-50: 250 250 252;          /* Very light neutral */
      --neutral-100: 241 243 247;         /* Light neutral */
      --neutral-200: 228 232 240;         /* Lighter gray */
      --neutral-300: 209 215 227;         /* Light gray */
      --neutral-400: 175 185 203;         /* Medium gray */
      --neutral-500: 143 152 168;         /* Balanced gray */
      --neutral-600: 104 115 132;         /* Dark gray */
      --neutral-700: 77 89 107;         /* Darker gray */
      --neutral-800: 53 61 76;         /* Very dark gray */
      --neutral-900: 34 39 51;         /* Darkest gray */
      
      --trust-blue: 102 153 204;          /* Muted blue for trust elements */
      --warning-orange: 219 168 102;       /* Softer orange for warnings */
      --success-green: 102 179 102;       /* Muted green for success */
      
      /* Shadcn UI Compatible Colors */
      --background: var(--neutral-50);
      --foreground: var(--neutral-800);
  
      --card: 255 255 255;
      --card-foreground: var(--foreground);
  
      --popover: 255 255 255;
      --popover-foreground: var(--foreground);
  
      --primary: var(--primary-violet);
      --primary-foreground: 255 255 255;
  
      --secondary: var(--neutral-100);
      --secondary-foreground: var(--neutral-700);
  
      --muted: var(--neutral-100);
      --muted-foreground: var(--neutral-500);
  
      --accent: var(--neutral-100);
      --accent-foreground: var(--neutral-700);
  
      --destructive: var(--warning-orange);
      --destructive-foreground: 255 255 255;
  
      --border: var(--neutral-200);
      --input: var(--neutral-100);
      --ring: var(--primary-violet);
  
      --radius: 0.75rem;
  
      --sidebar-background: var(--neutral-50);
      --sidebar-foreground: var(--foreground);
      --sidebar-primary: var(--primary-violet);
      --sidebar-primary-foreground: 255 255 255;
      --sidebar-accent: var(--neutral-100);
      --sidebar-accent-foreground: var(--neutral-700);
      --sidebar-border: var(--neutral-200);
      --sidebar-ring: var(--primary-violet);
    }
  
    .dark {
      /* Dark mode with muted slate colors */
      --background: var(--neutral-900);
      --foreground: var(--neutral-100);
  
      --card: var(--neutral-800);
      --card-foreground: var(--foreground);
  
      --popover: var(--neutral-800);
      --popover-foreground: var(--foreground);
  
      --primary: var(--primary-violet-light);
      --primary-foreground: var(--neutral-900);
  
      --secondary: var(--neutral-700);
      --secondary-foreground: var(--neutral-200);
  
      --muted: var(--neutral-800);
      --muted-foreground: var(--neutral-400);
  
      --accent: var(--neutral-700);
      --accent-foreground: var(--neutral-200);
  
      --destructive: var(--warning-orange);
      --destructive-foreground: 255 255 255;
  
      --border: var(--neutral-700);
      --input: var(--neutral-800);
      --ring: var(--primary-violet-light);
  
      --sidebar-background: var(--neutral-900);
      --sidebar-foreground: var(--foreground);
      --sidebar-primary: var(--primary-violet-light);
      --sidebar-primary-foreground: var(--neutral-900);
      --sidebar-accent: var(--neutral-700);
      --sidebar-accent-foreground: var(--neutral-200);
      --sidebar-border: var(--neutral-700);
      --sidebar-ring: var(--primary-violet-light);
    }
  }
  
  @layer base {
    * {
      @apply border-border;
    }
  
    body {
      @apply bg-background text-foreground font-body;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }
  
    /* Typography scale for baby app */
    .text-display {
      @apply text-4xl font-display font-bold leading-tight;
    }
    
    .text-heading-1 {
      @apply text-3xl font-display font-bold leading-tight;
    }
    
    .text-heading-2 {
      @apply text-2xl font-display font-semibold leading-snug;
    }
    
    .text-heading-3 {
      @apply text-xl font-display font-semibold leading-snug;
    }
    
    .text-body-large {
      @apply text-lg font-body font-normal leading-relaxed;
    }
    
    .text-body {
      @apply text-base font-body font-normal leading-relaxed;
    }
    
    .text-body-small {
      @apply text-sm font-body font-normal leading-relaxed;
    }
    
    .text-caption {
      @apply text-xs font-body font-medium leading-normal;
    }
  }
  
  /* Subtle gradient backgrounds for First Bites */
  @layer utilities {
    .bg-gradient-subtle {
      background: linear-gradient(135deg, rgb(var(--neutral-50)), rgb(var(--neutral-100)));
    }
    
    .bg-gradient-violet-subtle {
      background: linear-gradient(135deg, rgb(var(--primary-violet-light)), rgb(var(--primary-violet)));
    }
    
    .bg-gradient-sage-subtle {
      background: linear-gradient(135deg, rgb(var(--sage-green-light)), rgb(var(--sage-green)));
    }
  }
Android node_modules\expo-router\entry.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 99.8% (1257/1258)

Reproduction

https://github.com/dv00d00/metro-bundler-hang-repro

Expected behavior
Fail fast with error message during build, or during bundling

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions