Skip to content

ryanatkn/fuz

Repository files navigation

@ryanatkn/fuz

a friendly brown spider facing you

friendly user zystem 🧶 fuz.dev

Fuz is a Svelte UI library with components and helpers for making websites. It's in early alpha and it will go through many breaking changes.

Fuz is being made to support my other projects that focus on end-users. Fuz emphasizes capability and efficiency and tries to be simple for those goals. Compared to most UI libraries, Fuz has fewer conventional features and more opinions.

To learn more see the docs and contributing.md. Feel free to take the ideas and code for your own purposes.

The Svelte components and helpers:

  • builds on my CSS framework Moss
  • plain CSS and minimal abstraction
  • near-zero dependencies except for Svelte, SvelteKit, Moss, and my utility library @ryanatkn/belt (not all components require SvelteKit but some do import its modules, needs more consideration)
  • not a fully-featured enterprise-ready set of components, it's being developed for the needs of specific projects, though eventually it will fill out
  • should be easy to copy/paste into your projects when you need full control like shadcn-svelte, I'll look into smoothing this pattern out in the future

Usage

⚠️ Expect a lot of breaking changes. If you want to help stabilize the API, thank you see contributing.md, your input is appreciated.

If you feel comfortable looking at the source code, Fuz is ready to use in your own projects, with the major caveat that there will be a lot of breaking changes ahead. The code is significantly incomplete but I think it's stable enough to use if you're willing to keep up with the relatively fast-moving changelog.

npm i -D @ryanatkn/fuz

Fuz uses my style framework Moss. Import modules at their full paths:

// Moss has one main plain CSS stylesheet:
import '@ryanatkn/moss/style.css';

// and import a Moss theme:
import '@ryanatkn/moss/theme.css'; // or bring your own

// using Gro generates Moss' utility classes stylesheet by default:
import '$routes/moss.css';

// then import Fuz Svelte components:
import Themed from '@ryanatkn/fuz/Themed.svelte';

// and Fuz TypeScript modules:
import {type Theme, themer_context} from '@ryanatkn/fuz/theme.svelte.js';

See the library for more.

Contributing

See contributing.md.

Develop

npm i # node >=20.10

# development
npm run dev

# production
npm run build
npm start

Fuz uses Gro, my CLI and toolkit that I use to run tasks in all of my projects. If you're not allergic it's handy to install globally.

License 🐦

MIT