foundation-ui-svelte Svelte Themes

Foundation Ui Svelte

Foundation UI (Svelte)

Prerequisites

  • Git
  • Node.js
  • Svelte

Installation

  1. Make sure your project is a git repository

    git init
    
  2. Add as a git submodule. You can name the destination folder whatever you prefer

    git submodule add [email protected]:chrisquices/foundation-ui-svelte.git resources/js/components/foundation-ui
    

    Common alternatives:

    # SvelteKit
    git submodule add [email protected]:chrisquices/foundation-ui-svelte.git src/lib/components/foundation-ui
    
    # Or any folder you prefer
    git submodule add [email protected]:chrisquices/foundation-ui-svelte.git components/ui
    
  3. Install the required dependencies in your project

    npm install bits-ui tailwind-variants clsx tailwind-merge tw-animate-css
    
  4. Add the following to your CSS file

     @import "tw-animate-css";
    
     @theme inline {
        --font-sans: 'Noto Sans Variable', sans-serif;
        --font-heading: 'JetBrains Mono Variable', monospace;
        --color-sidebar-ring: var(--sidebar-ring);
        --color-sidebar-border: var(--sidebar-border);
        --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
        --color-sidebar-accent: var(--sidebar-accent);
        --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
        --color-sidebar-primary: var(--sidebar-primary);
        --color-sidebar-foreground: var(--sidebar-foreground);
        --color-sidebar: var(--sidebar);
        --color-ring: var(--ring);
        --color-input: var(--input);
        --color-border: var(--border);
        --color-destructive: var(--destructive);
        --color-accent-foreground: var(--accent-foreground);
        --color-accent: var(--accent);
        --color-muted-foreground: var(--muted-foreground);
        --color-muted: var(--muted);
        --color-secondary-foreground: var(--secondary-foreground);
        --color-secondary: var(--secondary);
        --color-primary-foreground: var(--primary-foreground);
        --color-primary: var(--primary);
        --color-popover-foreground: var(--popover-foreground);
        --color-popover: var(--popover);
        --color-card-foreground: var(--card-foreground);
        --color-card: var(--card);
        --color-foreground: var(--foreground);
        --color-background: var(--background);
        --radius-sm: calc(var(--radius) * 0.6);
        --radius-md: calc(var(--radius) * 0.8);
        --radius-lg: var(--radius);
        --radius-xl: calc(var(--radius) * 1.4);
        --radius-2xl: calc(var(--radius) * 1.8);
        --radius-3xl: calc(var(--radius) * 2.2);
        --radius-4xl: calc(var(--radius) * 2.6);
    }
    
    :root {
        --background: oklch(1 0 0);
        --foreground: oklch(0.141 0.005 285.823);
        --card: oklch(1 0 0);
        --card-foreground: oklch(0.141 0.005 285.823);
        --popover: oklch(1 0 0);
        --popover-foreground: oklch(0.141 0.005 285.823);
        --primary: oklch(0.21 0.006 285.885);
        --primary-foreground: oklch(0.985 0 0);
        --secondary: oklch(0.967 0.001 286.375);
        --secondary-foreground: oklch(0.21 0.006 285.885);
        --muted: oklch(0.967 0.001 286.375);
        --muted-foreground: oklch(0.552 0.016 285.938);
        --accent: oklch(0.21 0.006 285.885);
        --accent-foreground: oklch(0.985 0 0);
        --destructive: oklch(0.577 0.245 27.325);
        --border: oklch(0.92 0.004 286.32);
        --input: oklch(0.92 0.004 286.32);
        --ring: oklch(0.705 0.015 286.067);
        --radius: 0.625rem;
        --sidebar: oklch(0.985 0 0);
        --sidebar-foreground: oklch(0.141 0.005 285.823);
        --sidebar-primary: oklch(0.21 0.006 285.885);
        --sidebar-primary-foreground: oklch(0.985 0 0);
        --sidebar-accent: oklch(0.967 0.001 286.375);
        --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
        --sidebar-border: oklch(0.92 0.004 286.32);
        --sidebar-ring: oklch(0.705 0.015 286.067);
    }
    
    .dark {
        --background: oklch(0.141 0.005 285.823);
        --foreground: oklch(0.985 0 0);
        --card: oklch(0.21 0.006 285.885);
        --card-foreground: oklch(0.985 0 0);
        --popover: oklch(0.21 0.006 285.885);
        --popover-foreground: oklch(0.985 0 0);
        --primary: oklch(0.92 0.004 286.32);
        --primary-foreground: oklch(0.21 0.006 285.885);
        --secondary: oklch(0.274 0.006 286.033);
        --secondary-foreground: oklch(0.985 0 0);
        --muted: oklch(0.274 0.006 286.033);
        --muted-foreground: oklch(0.705 0.015 286.067);
        --accent: oklch(0.92 0.004 286.32);
        --accent-foreground: oklch(0.21 0.006 285.885);
        --destructive: oklch(0.704 0.191 22.216);
        --border: oklch(1 0 0 / 10%);
        --input: oklch(1 0 0 / 15%);
        --ring: oklch(0.552 0.016 285.938);
        --sidebar: oklch(0.21 0.006 285.885);
        --sidebar-foreground: oklch(0.985 0 0);
        --sidebar-primary: oklch(0.488 0.243 264.376);
        --sidebar-primary-foreground: oklch(0.985 0 0);
        --sidebar-accent: oklch(0.274 0.006 286.033);
        --sidebar-accent-foreground: oklch(0.985 0 0);
        --sidebar-border: oklch(1 0 0 / 10%);
        --sidebar-ring: oklch(0.552 0.016 285.938);
    }
    
    @layer base {
        * {
            @apply border-border outline-ring/50;
        }
        body {
            @apply bg-background text-foreground;
        }
        html {
            @apply font-sans;
        }
    }
    

Updating

git submodule update --remote resources/js/components/foundation-ui

Fresh Clone

If cloning a project that already uses foundation-ui-svelte:

git clone --recurse-submodules [email protected]:you/your-project.git

Or if already cloned without submodules:

git submodule update --init

Top categories

Loading Svelte Themes