fractalsvelte mascot fractalsvelte fractalsvelte

4 projects · 7 packages · one contract

fractalsvelte fractalsvelte

A styling system, two component libraries and a syntax highlighter for Svelte 5 and SvelteKit. Every package works on its own. None of them needs a framework underneath.

[ The suite ]
4 Projects
7 Packages
498 Styling classes
124 Components

Every package

Take one. Take the stack.

All independently installable, all MIT, none requiring the others.

Start anywhere

One install, then compose.

Pick your package manager once; every install block on the site follows it.

fractalstyler

Styling system. Classes, tokens, CLI, linter and MCP server.

pnpm add -D @fractaldesign/fractalstyler sass
Compose in markup
<div class="row ycenter xbetween gap-sm pad-md bg-surface border radius-md">
	<span class="text-md weight-600">Fractalstyler</span>
	<button data-variant="primary" data-shape="modern">Continue</button>
</div>
fractalsvelte-ui

Component library. Components, tokens and transitions.

pnpm add @fractaldesign/fractalsvelte-ui
Restyle with your own class
<Button class="cta">Buy</Button>

<style>
	:global(.cta) {
		background: hotpink;
		border-radius: 0;
	}
</style>
machines-ui

Character-drawn components. Graphs, animations, diagrams and the flow builder.

pnpm add @fractaldesign/machines-ui
Workflow builder
<script lang="ts">
	import '@fractaldesign/machines-ui/style.css';
	import { FlowCanvas, loadGraph, SEED_GRAPHS } from '@fractaldesign/machines-ui';

	loadGraph('jev', SEED_GRAPHS.jev);
</script>

<!-- FlowCanvas fills its container: give it an explicit height -->
<div style="height: 40rem">
	<FlowCanvas />
</div>
fractalpop

Syntax highlighting. The engine: code in, HTML string out.

pnpm add @fractaldesign/pop
svelte.config.js
import { mdsvex } from 'mdsvex';
import { fractalpopHighlighter } from '@fractaldesign/pop-mdsvex';

export default {
	extensions: ['.svelte', '.svx', '.md'],
	preprocess: [mdsvex({ extensions: ['.svx', '.md'], highlight: { highlighter: fractalpopHighlighter } })]
};
[ How this site is built ]

Every page here is composed from fractalstyler's class registry. No Tailwind, no component-scoped styles, no inline styles.

The site configures fractalstyler's tokens — fonts, this orange, light and dark palettes — and adds a handful of motif classes in its sanctioned extension layer: the dashed frame you are reading, its caption and corner marks, the hairline shelf and the section kicker. Code is highlighted at build time by fractalpop. The package READMEs are synced from npm, so the docs match what you install.