Useful
Prioritize scan speed, clear hierarchy, durable surfaces, and visible state over decorative page composition.
Bellthan product system
This template starts from Bellthan's OrviOS product language: dark operational chrome, precise document surfaces, teal-led actions, green collaboration signals, and warm gold highlights for attention and sequencing. OrviOS is one core product in the Bellthan portfolio, and this guide is structured so future products can inherit, adapt, and extend the same practical system.
Brand standards
Use this guide as the first shared page for future apps. It defines the brand-level decisions and leaves detailed component rules to each product design system.
Prioritize scan speed, clear hierarchy, durable surfaces, and visible state over decorative page composition.
Use restrained contrast, readable typography, and explicit status color so work can be reviewed and acted on quickly.
Make documents, queues, decisions, and activity history standard product objects across Bellthan systems.
Color system
These values come from the current application theme. Keep roles stable across apps, even when a future product needs a narrower or expanded palette.
| Role | Light swatch | Light hex | Where used in light mode | Dark swatch | Dark hex | Where used in dark mode |
|---|---|---|---|---|---|---|
| Background | #f8faf6 | Page canvas, low contrast app background. | #101312 | Primary dark page canvas and pre-app shell base. | ||
| Surface | #ffffff | Document cards, panels, tables, readable content regions. | #17201d | App bar, drawer, cards, elevated dark surfaces. | ||
| Text primary | #101312 | Main headings, body copy, table values. | #f8faf6 | Main headings and text on dark surfaces. | ||
| Text secondary | #59645f | Captions, helper text, metadata, subtitles. | #b8c3bd | Muted copy, timestamps, supporting labels on dark surfaces. | ||
| Primary | #217d8f | Primary buttons, active nav, links, lead action accents. | #67c7d4 | Active state, key actions, focus glow, primary data accents. | ||
| Secondary | #2f8f68 | Collaboration, completion queues, secondary action color. | #63d2a1 | Agent activity, done states, secondary positive movement. | ||
| Tertiary | #b97817 | Section numbers, timeline labels, warning-adjacent highlights. | #f2b84b | Document numbering, attention, warm metadata emphasis. | ||
| Success | #23805c | Approved, live, successful, and healthy status indicators. | #58be8f | Positive status chips and operational health signals. | ||
| Warning | #b97817 | Pending, paused, needs attention, and non-blocking alerts. | #f2b84b | Pending states and elevated attention on dark surfaces. | ||
| Error | #b74735 | Blocked, destructive, failed, or access-denied states. | #e36d5a | Errors and destructive emphasis with dark-mode contrast. | ||
| Dark chrome | #17201d | Light-mode app bar, drawer, contrast header base. | #0c0f0e | Deepest contrast layer and grounded dark frame. | ||
| Lines | #d9ded5 | Card borders, table dividers, grouped controls. | #2b3430 | Dark borders, table dividers, surface separation. | ||
| Input lines | #d1d8cf | Fields, form borders, editable control edges. | #37413d | Dark-mode input borders and form control structure. | ||
| Soft divider | #f3f6f1 | Subtle separations and soft interior bands. | #111513 | Quiet background alternation inside dark views. |
Recommended color hierarchy: primary teal for action and navigation, secondary green for collaboration and progress, tertiary gold for numbering and attention, red only for real errors or destructive actions.
Typography
Bellthan uses a compact, highly readable enterprise scale. Large marketing type is not the default; document clarity and dense operational views matter more than distinctive font styling.
| Template | Size | Weight | Use |
|---|---|---|---|
| H1 | 2rem / 32px | 700-800 | Rare page-level title or product header. |
| H2 | 1.75rem / 28px | 700 | Document title, major screen heading. |
| H3 | 1.5rem / 24px | 700 | Organization or project overview title. |
| H4 | 1.25rem / 20px | 650-700 | Toolbar view title, feature heading. |
| H5 | 1.125rem / 18px | 650-700 | Panel title, metric value, queue title. |
| H6 | 1rem / 16px | 650-700 | Requirement title, card heading. |
| Subtitle 1 | 1rem / 16px | 500-600 | Lead metadata, item title, short summary. |
| Subtitle 2 | 0.875rem / 14px | 600 | Section label, compact panel heading. |
| Body 1 | 0.875rem / 14px | 400 | Default body copy and document paragraphs. |
| Body 2 | 0.8125rem / 13px | 400 | Dense row detail and secondary copy. |
| Button | 0.875rem / 14px | 600 | Action labels. Keep casing natural, not all caps. |
| Caption | 0.68rem / 10.9px | 400-600 | Timestamps, IDs, table notes, helper labels. |
| Overline | 0.75rem / 12px | 700 | Eyebrows, category labels, timeline kind. |
Typography templates
Northstar Systems / Workforce
Decision-ready product scope
Use document styling when the user is reading structured requirements, specifications, plans, approvals, or audit history.
Template: document header with readable sans-serif title
Organization inbox
Use the dark operational surface for navigation, workspace chrome, and high-context work areas.
System templates
Keep Bellthan colors as shared tokens first, then map them into the UI system you are using. MudBlazor can consume the C# theme; plain web apps can use the CSS variables; future frameworks can import the JSON-style token shape.
Drop into a stylesheet for any web app.
:root {
--bellthan-ink: #101312;
--bellthan-paper: #f8faf6;
--bellthan-surface: #ffffff;
--bellthan-muted: #59645f;
--bellthan-line: #d9ded5;
--bellthan-primary: #217d8f;
--bellthan-secondary: #2f8f68;
--bellthan-tertiary: #b97817;
--bellthan-success: #23805c;
--bellthan-error: #b74735;
--bellthan-chrome: #17201d;
--app-background: var(--bellthan-paper);
--app-surface: var(--bellthan-surface);
--app-text: var(--bellthan-ink);
--app-muted: var(--bellthan-muted);
--app-border: var(--bellthan-line);
--app-action: var(--bellthan-primary);
}
Use as a shared theme factory.
using MudBlazor;
using MudBlazor.Utilities;
public static class BellthanTheme
{
public static MudTheme Create() => new()
{
PaletteLight = new PaletteLight
{
Background = new MudColor("#f8faf6"),
Surface = new MudColor("#ffffff"),
TextPrimary = new MudColor("#101312"),
TextSecondary = new MudColor("#59645f"),
Primary = new MudColor("#217d8f"),
Secondary = new MudColor("#2f8f68"),
Tertiary = new MudColor("#b97817"),
Success = new MudColor("#23805c"),
Warning = new MudColor("#b97817"),
Error = new MudColor("#b74735"),
AppbarBackground = new MudColor("#17201d"),
AppbarText = new MudColor("#f8faf6"),
DrawerBackground = new MudColor("#17201d"),
DrawerText = new MudColor("#f8faf6"),
LinesDefault = new MudColor("#d9ded5"),
LinesInputs = new MudColor("#d1d8cf"),
Divider = new MudColor("#e1e7dd")
},
PaletteDark = new PaletteDark
{
Background = new MudColor("#101312"),
Surface = new MudColor("#17201d"),
TextPrimary = new MudColor("#f8faf6"),
TextSecondary = new MudColor("#b8c3bd"),
Primary = new MudColor("#67c7d4"),
Secondary = new MudColor("#63d2a1"),
Tertiary = new MudColor("#f2b84b"),
Success = new MudColor("#58be8f"),
Warning = new MudColor("#f2b84b"),
Error = new MudColor("#e36d5a"),
LinesDefault = new MudColor("#2b3430"),
LinesInputs = new MudColor("#37413d")
},
LayoutProperties = new LayoutProperties
{
DefaultBorderRadius = "8px",
AppbarHeight = "60px",
DrawerWidthLeft = "272px"
}
};
}
// MainLayout.razor
<MudThemeProvider Theme="_theme" IsDarkMode="_isDarkMode" />
@code {
private readonly MudTheme _theme = BellthanTheme.Create();
private bool _isDarkMode = true;
}
Use for future frameworks or generators.
{
"brand": "Bellthan",
"font": {
"ui": "Segoe UI Variable, Segoe UI, Inter, system-ui, sans-serif",
"mono": "Cascadia Code, Consolas, Courier New, monospace"
},
"color": {
"light": {
"background": "#f8faf6",
"surface": "#ffffff",
"text": "#101312",
"muted": "#59645f",
"primary": "#217d8f",
"secondary": "#2f8f68",
"tertiary": "#b97817",
"error": "#b74735"
},
"dark": {
"background": "#101312",
"surface": "#17201d",
"text": "#f8faf6",
"muted": "#b8c3bd",
"primary": "#67c7d4",
"secondary": "#63d2a1",
"tertiary": "#f2b84b",
"error": "#e36d5a"
}
}
}
MudBlazor uses a MudThemeProvider with a MudTheme; keep Bellthan tokens in one shared factory
and reference that factory from each product app.
Future assets
Add these sections as the brand matures. Keep assets crisp, inspectable, and tied to the actual product or workflow.