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
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions