Skip to content
System

Theme Settings

A ready-made appearance screen for the theme store.

Walkthrough

1. Basic

The whole appearance screen, already bound to the theme store. Change anything here and this page changes with it.

Appearance
Accent color
Saturation 100%

How vivid the accent colors are.

Surface tint 100%

How much the greys lean toward the accent.

Using the defaults.

<script lang="ts">	import { ThemeSettings } from 'omaris';</script>​<div class="w-full max-w-2xl">	<ThemeSettings /></div>

2. Sections

sections narrows it to the parts you want to expose, and stack drops the tabs — which is what a settings page wants when it already has its own.

Appearance
Accent color
Saturation 100%

How vivid the accent colors are.

Surface tint 100%

How much the greys lean toward the accent.

<script lang="ts">	import { ThemeSettings } from 'omaris';</script>​<div class="w-full max-w-2xl">	<ThemeSettings layout="stack" sections={['color']} customHue={false} resettable={false} /></div>

3. Languages

Four languages built in — English, Arabic, Turkish and Sorani Kurdish. locale picks one, and Arabic and Kurdish turn the screen right to left. Leave it out and the screen follows the page's own lang.

المظهر
لون التمييز
التشبّع 100%

مدى حيوية ألوان التمييز.

صبغة الأسطح 100%

مدى ميل الرماديات نحو لون التمييز.

تُستخدم الإعدادات الافتراضية.

<script lang="ts">	import { ThemeSettings, SegmentedButton, type ThemeSettingsLocale } from 'omaris';​	let locale = $state<ThemeSettingsLocale>('ar');</script>​<div class="flex w-full max-w-2xl flex-col gap-6">	<SegmentedButton		label="Language"		size="sm"		check={false}		bind:value={() => locale, (v) => (locale = v as ThemeSettingsLocale)}		items={[			{ value: 'en', label: 'English' },			{ value: 'ar', label: 'العربية' },			{ value: 'tr', label: 'Türkçe' },			{ value: 'ckb', label: 'کوردی' }		]}	/>	<ThemeSettings {locale} /></div>

4. Overridden

A narrow side panel, a few words of the product's own, and the cards restyled through classes. The cards fold to fewer columns on their own when the container is narrow.

Color

Appearance
Brand color
Saturation 100%

How vivid the accent colors are.

Surface tint 100%

How much the greys lean toward the accent.

Text

Text size
Typeface

The product's own typeface

Nothing changed yet.

<script lang="ts">	import { ThemeSettings } from 'omaris';</script>​<div class="w-80 max-w-full rounded-xl border border-border bg-surface-container-low p-4">	<ThemeSettings		layout="stack"		sections={['color', 'text']}		labels={{ color: 'Brand color', defaults: 'Nothing changed yet.' }}		classes={{ choice: 'rounded-shape-lg', choiceArt: 'h-12' }}	/></div>