Unwanted dark class added to html

31 Views Asked by At

In a Sveltekit application using Tailwind and shadcn-svelte, all works fine except for a specific page located in routes/sales/[client_id]. For a reason I can't explain, when I come on this page, the html goes from :

<html>

to

<html class="dark" style="color-scheme: dark;">

and it stays like that even on the other pages.

There is no layout for the sales pages nor specific style, so I dont' think the problem comes for the routing configuration or the pages parameters. Perhaps it is because I use Sheet and Toaster components of shadcn-svelte.

Here is the app.pcss file (it's the default file generated by shadcn-svelte, I just added my own default.css file which contains very basic css for the moment) :

@import "tailwindcss/base";

@import "tailwindcss/components";

@import "tailwindcss/utilities";
@import './default.css';
 
@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
 
    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;
 
    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;
 
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
 
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
 
    --primary: 222.2 47.4% 11.2%;
    --primary-foreground: 210 40% 98%;
 
    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;
 
    --accent: 210 40% 96.1%;
    --accent-foreground: 222.2 47.4% 11.2%;
 
    --destructive: 0 72.2% 50.6%;
    --destructive-foreground: 210 40% 98%;
 
    --ring: 222.2 84% 4.9%;
 
    --radius: 0.5rem;
  }
 
  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
 
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
 
    --popover: 222.2 84% 4.9%;
    --popover-foreground: 210 40% 98%;
 
    --card: 222.2 84% 4.9%;
    --card-foreground: 210 40% 98%;
 
    --border: 217.2 32.6% 17.5%;
    --input: 217.2 32.6% 17.5%;
 
    --primary: 210 40% 98%;
    --primary-foreground: 222.2 47.4% 11.2%;
 
    --secondary: 217.2 32.6% 17.5%;
    --secondary-foreground: 210 40% 98%;
 
    --accent: 217.2 32.6% 17.5%;
    --accent-foreground: 210 40% 98%;
 
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
 
    --ring: hsl(212.7,26.8%,83.9);
  }
}
 
@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
  }
}
1

There are 1 best solutions below

0
GinDev On

Found the problem (and the workaround) : in my code I use the Toaster/Sonner component and it has got a theme attribute. I just left it empty and now the main application theme is no more affected.

<script>
    import { Toaster as Sonner } from "svelte-sonner";
    import { mode } from "mode-watcher";
</script>

<Sonner
    theme="" <-------------- This is the theme prop I let empty
    class="toaster group"
    toastOptions={{
        classes: {
            toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
            description: "group-[.toast]:text-muted-foreground",
            actionButton:
                "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
            cancelButton:
                "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
        },
    }}
    {...$$restProps}
/>