Skip to content

Nocturne

nocturne

Dark, fluid AI-chat interfaces lit from below.

A dark-first art direction for AI products and modern webchat: near-black canvas, softly raised graphite surfaces, hairline borders, pill-shaped bubbles and a periwinkle-to-pink glow that pools under the composer. Motion is liquid — messages rise and settle, text streams in, nothing snaps.

Fonts
Onest · displayFigtree · bodyFragment Mono · mono
Demo product
Nova — An AI assistant that remembers your team's context — chat, search and automate across every tool.
Palette

Use Nocturne in your project

Installing any Nocturne module brings its tokens. Then follow the one-time setup.

Setup guide

Sections 8

UI components 6

App layouts 4

Effects 4

Set up Nocturne in your project

Once per project. Installing any Nocturne module copies its tokens for you — or install them alone first. New to Artmode? Start with the getting started guide.

npx shadcn@latest add https://artmode.alpvisionweb.online/r/nocturne-theme.json

1. Import the tokens

app/globals.css
@import "tailwindcss";
@import "../components/modules/_core/da-theme.css";
@import "../components/modules/nocturne/tokens.css";

3. Scope the area

any page or layout
<div data-da="nocturne">
  {/* Nocturne modules */}
</div>

2. Load the fonts

app/layout.tsx
import { Onest, Figtree, Fragment_Mono } from "next/font/google";

const nocturneDisplay = Onest({ subsets: ["latin"], variable: "--font-nocturne-display" });
const nocturneBody = Figtree({ subsets: ["latin"], variable: "--font-nocturne-body" });
const nocturneMono = Fragment_Mono({ subsets: ["latin"], variable: "--font-nocturne-mono", weight: ["400"] });

// <html className={`${nocturneDisplay.variable} ${nocturneBody.variable} ${nocturneMono.variable}`}>