···1616npx sv create my-project
1717```
18181919-### 2. Install fox-ui-svelte
1919+### 2. Install fuchs
20202121```bash
2222-npm install fox-ui-svelte
2222+npm install fuchs
2323```
24242525### 3. set theme variables in your app.css (changing `gray` and `blue` to your preferred colors, using find and replace).
26262727```css
2828-@source "../node_modules/fox-ui-svelte";
2828+@source "../node_modules/fuchs";
29293030@theme {
3131 --color-base-50: var(--color-gray-50);
···58585959```svelte
6060<script>
6161- import { Button } from 'fox-ui-svelte';
6161+ import { Button } from 'fuchs';
6262</script>
63636464<Button onclick={() => alert('clicked')}>Click me</Button>
+1-1
package.json
···11{
22- "name": "duckui",
22+ "name": "fuchs",
33 "version": "0.0.5",
44 "type": "module",
55 "description": "Beautiful UI components built with Tailwind 4 and Svelte 5",
+9-1
src/lib/index.ts
···11export { cn } from '$lib/utils';
2233-// place files you want to import through the `$lib` alias in this folder.
33+// base components
44export { Accordion, AccordionItem } from '$lib/components/base/accordion';
55export { Alert, AlertDescription, AlertTitle } from '$lib/components/base/alert';
66export { Avatar, AvatarGroup } from '$lib/components/base/avatar';
···2626export { Text as Paragraph } from '$lib/components/base/text/';
2727export { Textarea } from '$lib/components/base/textarea';
2828export { Tooltip } from '$lib/components/base/tooltip';
2929+3030+// extra components
3131+export { ColorPicker, PopoverColorPicker } from '$lib/components/extra/color-picker/';
3232+export { default as Excalidraw } from '$lib/components/extra/excalidraw/Excalidraw.svelte';
3333+export { default as Undraw } from '$lib/components/extra/undraw/Undraw.svelte';
3434+3535+// 3d components
3636+export { default as ModelPicker } from '$lib/components/3d/model-picker/ModelPicker.svelte';
···11-<script>
22- import SelectTheme from '$docs/preview/SelectTheme.svelte';
33-</script>
44-55-<SelectTheme />
+26-6
src/routes/docs/philosophy/Philosophy.md
···26262727## Copying components vs installing packages
28282929-I'm a big fan of the philosophy of copying components (shadcn-style) for better customization, but also I think the quickest way to build something is to just install the package and use it.
2929+I'm a big fan of the philosophy of copying components (shadcn-style) for better customization,
3030+but also I think the quickest way to build something is to just install the package and use it.
30313131-So the plan is to have both options (currently only installing as a package is available, but you can copy what you need from the [source code](https://github.com/flo-bit/ui-kit/tree/main/src/lib/components/base) though some imports might need to be adjusted).
3232+So the plan is to have both options (currently only installing as a package is available,
3333+but you can copy what you need from the [source code](https://github.com/flo-bit/ui-kit/tree/main/src/lib/components/base)
3434+though some imports might need to be adjusted).
32353336## Lots of components
34373538While currently only the base components are visible, there are lots of components in the pipeline.
3636-The aim is to have a component library that has lots of components that are useful for building webapps/websites/games, all in a consistent style/theme.
3939+The aim is to have a component library that has lots of components that are useful for building
4040+webapps/websites/games, all in a consistent style/theme.
37413842See here for a few examples of work in progress components (some may be partially broken):
3943···45494650### extras
47514848-- [color picker](/ui-kit/components/extras/color-picker/)
4949-- [excalidraw](/ui-kit/components/extras/excalidraw/)
5052- [quote](/ui-kit/components/extras/quote/)
5153- [phone](/ui-kit/components/extras/phone/)
5254- [timer](/ui-kit/components/extras/timer/)
···6365- [model-picker](/ui-kit/components/3d/model-picker/)
6466- [voxel-art](/ui-kit/components/3d/voxel-art/)
65676868+## Works without javascript when possible / is accessible
6969+7070+Whenever possible components should work without javascript.
7171+Also all components should be accessible to the best of my knowledge.
7272+Please let me know [if you find any issues](https://github.com/flo-bit/ui-kit/issues).
7373+6674## Dark mode
67756868-This ui kit is designed to be used in both light and dark mode (and switch automatically depending on system settings).
7676+This ui kit is designed to be used in both light and dark mode
7777+(and switch automatically depending on system settings).
6978If you want to disable dark mode, add the following to your app.css:
70797180```css
7281@custom-variant dark (&:is(.dark *));
7382```
74838484+Similarly you can disable light mode:
8585+8686+1. Add the above code to your app.css
8787+2. Add the `dark` class to the `html` element in your app.
8888+7589## Contributing/Feedback
76907791If you have any suggestions for components or feedback in general, please open an issue on [github](https://github.com/flo-bit/ui-kit/issues).
78927993Also feel free to contribute yourself, preferably by first opening an issue about the component/feature you want to add!
9494+9595+You can also reach me on [bluesky](https://bsky.app/profile/flo-bit.dev).
9696+9797+## Credits
9898+9999+This ui kit is largely based on [bits-ui](https://bits-ui.com/).
+5-5
src/routes/docs/quick-start/QuickStart.md
···14141515Also add the `@tailwindcss/typography` and `@tailwindcss/forms` plugins.
16161717-## 2. Install fox-ui-svelte
1717+## 2. Install fuchs
18181919```bash
2020-npm install fox-ui-svelte
2020+npm install fuchs
2121```
22222323-## 3. Add this to your `app.css`
2323+## 3. Set theme variables in your `app.css`
24242525You can change the colors to your liking.
26262727```css
2828-@source "../node_modules/fox-ui-svelte";
2828+@source "../node_modules/fuchs";
29293030@theme {
3131 --color-base-50: var(--color-gray-50);
···58585959```svelte
6060<script>
6161- import { Button } from 'fox-ui-svelte';
6161+ import { Button } from 'fuchs';
6262</script>
63636464<Button>Click me</Button>
+5
src/routes/docs/theme/+page.svelte
···11+<script>
22+ import SelectTheme from '$docs/preview/SelectTheme.svelte';
33+</script>
44+55+<SelectTheme />
···11+export { default as ColorPicker } from './base/ColorPicker.svelte';
22+export { default as PopoverColorPicker } from './popover/PopoverColorPicker.svelte';
···86868787```svelte
8888<script>
8989- import { Badge } from 'fox-ui-svelte';
8989+ import { Badge } from 'fuchs';
9090</script>
91919292<Badge size="sm" variant="primary">Badge</Badge>
+1-1
src/routes/components/base/box/Box.md
···13131414```svelte
1515<script>
1616- import { Box } from 'fox-ui-svelte';
1616+ import { Box } from 'fuchs';
1717</script>
18181919<Box class="text-sm">This is a box, put your stuff here.</Box>
+1-1
src/routes/components/base/button/Button.md
···180180181181```svelte
182182<script>
183183- import { Button } from 'fox-ui-svelte';
183183+ import { Button } from 'fuchs';
184184</script>
185185186186<Button variant="primary" size="sm">Button</Button>
+3-3
src/routes/components/base/cards/Cards.md
···13131414## Examples
15151616-Full width
1616+### Full width
17171818<ImageCard
1919 src={nature1}
···2424 class="not-prose mb-16"
2525/>
26262727-In a grid
2727+### In a grid
28282929<div class="grid w-full grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3 not-prose">
3030 <ImageCard
···53535454```svelte
5555<script>
5656- import { ImageCard } from 'fox-ui-svelte';
5656+ import { ImageCard } from 'fuchs';
5757</script>
58585959<ImageCard src={'/image.jpg'} alt="" title="Card title" description="Card description" href="#" />
···11+<script>
22+ import Excalidraw from '$lib/components/extra/excalidraw/Excalidraw.svelte';
33+44+ import svg from '$docs/assets/demo.svg?raw';
55+</script>
66+77+<Excalidraw {svg} alt="Excalidraw Demo" caption="This is a demo of the Excalidraw component." />
···11+<script lang="ts">
22+ import ExcalidrawExample from './Example.svelte';
33+</script>
44+55+# Excalidraw
66+77+## Example
88+99+<ExcalidrawExample />
1010+1111+## Usage
1212+1313+1. Draw a diagram in [excalidraw](https://excalidraw.com/) with the default colors and export it as a svg without a background.
1414+1515+2. Import that svg and use it with the excalidraw component, colors will be automatically changed to your theme colors.
1616+1717+```svelte
1818+<script lang="ts">
1919+ import { Excalidraw } from 'fuchs';
2020+2121+ import svg from '$docs/assets/demo.svg?raw';
2222+</script>
2323+2424+<Excalidraw {svg} alt="Excalidraw Demo" caption="This is a demo of the Excalidraw component." />
2525+```
···11+<script lang="ts">
22+ import UndrawExample from './Example.svelte';
33+ import {Alert} from '$lib';
44+</script>
55+66+# Undraw
77+88+## Example
99+1010+<UndrawExample />
1111+1212+## Usage
1313+1414+<Alert variant="default" type="warning" title="Doesn't work automatically in dark mode">
1515+ <span>
1616+ Use the `colorMap` prop to change the colors of the illustration like in the example below to make it work in both light and dark mode.
1717+ </span>
1818+</Alert>
1919+2020+2121+1. Download a svg illustration from [undraw](https://undraw.co/illustrations) leaving the theme color as it is (#6c63ff).
2222+2. Import that svg and use it with the undraw component. This will automatically change the theme color to your theme color.
2323+2424+```svelte
2525+<script lang="ts">
2626+ import Undraw from '$lib/components/extra/undraw/Undraw.svelte';
2727+2828+ import svg from '$docs/assets/undraw_yoga.svg?raw';
2929+</script>
3030+3131+<Undraw
3232+ {svg}
3333+ alt="Undraw"
3434+ colorMap={{
3535+ '#090814': 'fill-base-950 dark:fill-accent-950',
3636+ '#d6d6e3': 'fill-base-300 dark:fill-base-700',
3737+ '#cacaca': 'fill-base-400 dark:fill-base-600',
3838+ '#cfcce0': 'fill-base-500 dark:fill-base-500',
3939+ '#f2f2f2': 'fill-base-200 dark:fill-base-800'
4040+ }}
4141+/>
4242+```