Noph UI is a UI library for Svelte that follows the Material 3 Expressive guidelines. It gives you
the buttons, fields, navigation and feedback components a real app needs, with theming, dark mode
and accessibility already handled.
Why Noph UI
Server side renderingComponents render to HTML on the server, so the first paint does not wait for JavaScript. Good for load times, good for search engines.
Zero dependenciesOne package, nothing else pulled in behind your back. Your users download components, not a framework on top of a framework.
download
Expressive motionSpringy shape morphs, ripples and wavy progress from the Material 3 Expressive spec. All of it steps aside when a visitor prefers reduced motion.
animation
Accessible by defaultComponents build on native elements, so roles, labels, keyboard navigation and focus rings come with them.
The default theme is a set of Material 3 color roles written as CSS variables. Use the palette
button in the header to pick a source color and watch this page recolor, then copy the generated
theme straight into your project.
Primary--np-color-primary
Primary container--np-color-primary-container
Secondary container--np-color-secondary-container
Tertiary--np-color-tertiary
Tertiary container--np-color-tertiary-container
Surface variant--np-color-surface-variant
Error--np-color-error
Surface--np-color-surface-container-highest
Start in two minutes
Copy code
npminstall noph-ui
Import the default theme once, in your root layout.
Copy code
import'noph-ui/defaultTheme'
Then import a component and drop it into your markup.
Copy code
<script>
import { Button } from 'noph-ui'
</script><Buttonvariant="filled">Get started</Button>
The quick start covers theming, dark mode and
typography in a few more lines.
Build something expressive
Install the package, import the theme and ship a Material 3 interface that renders on the
server and feels alive in the browser.