Version 1

Markaz Nerkh design system

Tokens, components and patterns extracted from the reference design and adapted for Persian and right-to-left interfaces. Token source file: app/assets/css/main.css and component themes app/app.config.ts ; full documentation at docs/design-system.md.

Colours

Color scales were sampled from the reference image. In code, use semantic colors only (primary, success, text-muted, etc.); raw shades are reserved for special cases.

Brand colour — primary

brand-50 … brand-950

Primary buttons, active links, logo and highlights. Shade 500 matches the Figma redesign color (#4849D7).

  1. 50—
  2. 100—
  3. 200—
  4. 300—
  5. 400—
  6. 500—
  7. 600—
  8. 700—
  9. 800—
  10. 900—
  11. 950—

Premium purple — secondary

premium-50 … premium-950

Premium subscription, AI assistant and chart gradients.

  1. 50—
  2. 100—
  3. 200—
  4. 300—
  5. 400—
  6. 500—
  7. 600—
  8. 700—
  9. 800—
  10. 900—
  11. 950—

Up green — success

gain-50 … gain-950

Price increases, profit and successful status.

  1. 50—
  2. 100—
  3. 200—
  4. 300—
  5. 400—
  6. 500—
  7. 600—
  8. 700—
  9. 800—
  10. 900—
  11. 950—

Down red — error

loss-50 … loss-950

Price decline, loss and errors.

  1. 50—
  2. 100—
  3. 200—
  4. 300—
  5. 400—
  6. 500—
  7. 600—
  8. 700—
  9. 800—
  10. 900—
  11. 950—

Ink grey — neutral

ink-50 … ink-950

Dark surfaces, borders and text.

  1. 50—
  2. 100—
  3. 200—
  4. 300—
  5. 400—
  6. 500—
  7. 600—
  8. 700—
  9. 800—
  10. 900—
  11. 950—

Levels

Deepest to highest

  • bg-defaultPage canvas ·
  • bg-mutedHeader, footer, tables and inputs ·
  • bg-elevatedCards and menus ·
  • bg-accentedPremium band and active state ·
  • bg-invertedTooltip ·

Text

Strong to subtle

  • Atext-highlightedTitle and price ·
  • Atext-defaultBody text ·
  • Atext-tonedEmphasised secondary text ·
  • Atext-mutedDescription ·
  • Atext-dimmedHeaders, symbols and axes ·

Borders and meaning

Semantic colours

  • border-defaultSeparator line ·
  • border-accentedOutline button and chart zero line ·
primarysecondarysuccesserrorwarninginfo

Typography

Estedad is used across all pages with a seven-step type scale. The top three sizes scale fluidly with the viewport. Do not apply letter spacing to Persian text.

Active font: Estedad An open-source variable font (OFL), loaded locally from @fontsource-variable/estedad.

text-display

32–48 pixels · 800 · Hero title

Live currency and gold price reference

text-h1

28–44 pixels · 800 · Two-column sections and premium band

In-depth price-trend analysis

text-h2

24–36 pixels · 700 · Section headings and CTA

All markets, one platform

text-h3

18 pixels · 600 · Card and feature headings

120+ price sources

text-body-lg

16 pixels · 1.9 line height · Hero and section descriptions

Live prices, professional charts and a reliable API — all in one platform.

text-body

14 pixels · 1.85 line height · Default text and table

Rates are collected from the open market, exchange offices and global markets.

text-caption

12 pixels · Labels, column headings and fine print

24h change · 7-day chart

Radius, shadow and gradient

Corner radius

Derived from --ui-radius = 0.25rem

md · ۶pxBadges
lg · ۸pxSmall button and selector
xl · ۱۲pxButtons, inputs and cards
2xl · ۱۶pxTable and analysis card
3xl · ۲۴pxCTA card
fullAsset icon and floating button

Shadows

shadow-glowPrimary button
shadow-glow-premiumSpecial button
shadow-floatFloating cards and tiles

Gradients

bg-announcementAnnouncement banner
bg-hero-glowGlow behind the hero
bg-cta-glowAI question card background (layers: bg-cta-arcs and bg-cta-purple)
bg-hub-glowSource chart core

Brand text gradient — text-gradient-brand

Buttons

The primary button is blue with white text and a subtle glow; the special button is purple with white text. Use only one primary button per view.

Variants

<UButton label="شروع کنید" />
<UButton label="شروع دوره‌ی آزمایشی" color="secondary" />
<UButton label="مشاهده‌ی بیشتر" color="neutral" variant="outline" />
<UButton label="از Claude بپرسید" icon="i-simple-icons-claude" color="neutral" variant="subtle" />

Sizes

xs to xl

Forms and navigation

Search

<AppSearch class="w-64" />  <!-- با کلید / فوکوس می‌گیرد -->
<UInput size="xl" icon="i-lucide-search" placeholder="جستجوی نماد…" />

Choose range and tabs

<UTabs v-model="tab" :items="marketTabs" :content="false" variant="link" />

Badges

Price changes always include an arrow and a color so they remain distinguishable for people with color blindness. Zero change is green.

Price change

Increase 0.18%Decrease 0.03%Increase 0%Increase 7.28%Decrease 6.32%Increase 1.41%Decrease 0.63%
<MarketPriceChange :value="0.18" />
<MarketPriceChange :value="-0.03" size="sm" />
<MarketPriceChange :value="1.41" variant="text" />

Market data

Building blocks of rate tables. This page uses demo data.

Asset icon and name

18
Gold spot
<MarketAssetIcon icon="i-circle-flags-us" size="lg" />
<MarketAssetIcon icon="i-simple-icons-ethereum" bg="#627EEA" fg="#FFFFFF" />
<MarketAssetCell name="بیت‌کوین" symbol="BTC" :visual="rate.visual" />

Mini chart and watchlist

<MarketSparkline :data="rate.sparkline" class="h-8 w-28" />

Rates table

Add to watchlistNamePrice24h change
US dollar
102,350Increase 0.42%
Euro
111,870Decrease 0.18%
British pound
131,240Increase 0.27%
<!-- const { rates } = useMarket()  (قیمت‌ها با واحد انتخاب‌شده در تنظیمات) -->
<MarketRatesTable v-model:tab="tab" :rates="rates" :tabs="marketTabs" more-to="/rates" />

Charts

All charts use Lightweight Charts, TradingView's open-source engine, with colors and fonts from design tokens. The chart is left-to-right: time flows left to right and the price axis is on the right. Persian dates are used in Persian mode.

Trading chart (TradingView style)

Drawing tools are on the left, OHLC details above the chart, interval and scale controls below, and settings in the gear beside the axes. Drawings are saved per symbol in your browser.

US dollar
Open
101,660
Maximum
102,510
Minimum
101,530
Close
102,350
Change
+850 (+0.84%)

Volume970.5K

Trading chart for US dollar in Free market, in Toman
US dollar, candles Daily
DateOpenMaximumMinimumClose
Jul 29, 2026107,530108,050107,450107,810
Jul 30, 2026107,880108,440107,310107,560
Jul 31, 2026107,590107,590107,240107,450
Aug 1, 2026107,290108,650107,030107,840
Aug 2, 2026107,890108,620107,060107,250
Aug 3, 2026107,450108,060106,520106,580
Aug 4, 2026106,340106,660105,660105,890
Aug 5, 2026105,770106,610105,590106,530
Aug 6, 2026106,420107,080105,430105,620
Aug 7, 2026105,620106,300104,850104,910
Aug 8, 2026104,770105,200103,500104,140
Aug 9, 2026103,940104,490103,650103,690
Aug 10, 2026103,620104,430103,390104,110
Aug 11, 2026103,920104,310103,080103,250
Aug 12, 2026103,180104,500102,470104,200
Aug 13, 2026104,270104,640102,780103,280
Aug 14, 2026103,440103,850102,970103,360
Aug 15, 2026103,250103,360102,630102,680
Aug 16, 2026102,880102,960101,990102,650
Aug 17, 2026102,850104,340102,360104,030
Aug 18, 2026104,020104,310102,910103,440
Aug 19, 2026103,310103,750102,940103,010
Aug 20, 2026102,960104,620102,260103,830
Aug 21, 2026103,890104,610103,850104,480
Aug 22, 2026104,360104,900103,290103,630
Aug 23, 2026103,570104,150102,740103,190
Aug 24, 2026103,310103,800102,520103,500
Aug 25, 2026103,370104,520102,650104,110
Aug 26, 2026103,920104,380103,350103,420
Aug 27, 2026103,200103,310102,620102,940
Aug 28, 2026102,870103,090102,420102,970
Aug 29, 2026102,960103,650102,860103,080
Aug 30, 2026103,220103,650103,100103,340
Aug 31, 2026103,410104,860103,100104,330
Sep 1, 2026104,260104,520103,760103,950
Sep 2, 2026103,940105,400103,310105,140
Sep 3, 2026105,100105,790104,780105,640
Sep 4, 2026105,680106,310104,950105,190
Sep 5, 2026105,170106,220104,620106,070
Sep 6, 2026106,010106,030104,750105,250
Sep 7, 2026105,400105,670104,870105,430
Sep 8, 2026105,280105,840104,770104,880
Sep 9, 2026104,680105,020103,630103,810
Sep 10, 2026103,670103,850102,620102,860
Sep 11, 2026103,070104,180102,590103,490
Sep 12, 2026103,450103,760102,540102,550
Sep 13, 2026102,370103,220101,790102,470
Sep 14, 2026102,480102,690101,470101,900
Sep 15, 2026101,910102,240101,020101,500
Sep 16, 2026101,550102,450100,900102,080
Sep 17, 2026101,950102,260100,300101,070
Sep 18, 2026101,010102,110100,610101,720
Sep 19, 2026101,520102,720101,100101,940
Sep 20, 2026102,020102,560101,870102,480
Sep 21, 2026102,480102,830102,460102,800
Sep 22, 2026102,920103,450101,700101,900
Sep 23, 2026101,760102,040101,000101,070
Sep 24, 2026100,890102,360100,170101,680
Sep 25, 2026101,620101,860100,800101,500
Sep 26, 2026101,660102,510101,530102,350
<!-- کارت کامل؛ const { candles } = useMarket() (واحد پول، نرخ خرید/فروش و رویدادها را هم دارد) -->
<MarketCandleCard v-bind="candles" />

<!-- خود نمودار؛ ارتفاع را با کلاس بدهید -->
<ChartTrading
  :candles="candles"
  name="دلار آمریکا"
  symbol="USD"
  unit="تومان"
  :visual="{ icon: 'i-circle-flags-us' }"
  market="بازار آزاد"
  :quote="{ buy: 102250, sell: 102450 }"
  :events="[{ time: fromJalali(1405, 1, 1), badge: 'ن', title: 'نوروز ۱۴۰۵' }]"
  label="نمودار معاملاتی دلار آمریکا"
  class="h-[38rem]"
/>

Lines and bars

US dollar price trend; from 101,449 to 102,350، کمینه 100,547 and بیشینه 103,409

Cumulative trend; from -914 to 4.4K، کمینه -1.2K and بیشینه 5.2K

Daily changes
29 Esfand+1,850
1 Farvardin-420
2 Farvardin+690
3 Farvardin+2,240
<ChartLine :data="series" color="gradient" :grid="false" :y-axis="false" label="…" class="h-24" />
<ChartLine :data="series" color="success" area :labels="labels" label="…" class="h-48" />
<ChartBar :data="[1850, -420, 690, 2240]" :labels="labels" label="…" class="h-48" />

Cards and decorative elements

Market cards

US dollar · Free market

102,350 Toman

+1,250Increase 1.24%

Price trend for US dollar · Free market; from 101,449 to 102,350، کمینه 100,547 and بیشینه 103,409

Daily changes
Daily changes chart
29 Esfand+1,850
1 Farvardin-420
2 Farvardin+690
3 Farvardin+2,240
Cumulative trend

Cumulative trend chart; from -914 to 4.4K، کمینه -1.2K and بیشینه 5.2K

Advanced profit and loss analysis

Purchase value
77,791,100
Unrealised profit
5,927,010 Increase 26.18%
Daily loss
412,300 Decrease 1.35%
Markaz NerkhMarkaz NerkhNow

Today's API usage reached 80% of the daily limit: 80,000 of 100,000 requests.

<MarketSourceCard title="ارز" :visual="{ icon: 'i-circle-flags-us' }" to="#markets" />
<MarketStatsCard v-bind="analytics" />
<MarketInsightCard title="…" :rows="rows" />
<MarketAlertCard message="…" />

Dashboard card

Dashboard cards in /panel on their own background

API usage

۶۴٪
<PanelCard title="مصرف API" icon="i-lucide-activity" to="/panel/usage">
  <template #meta>
    <UBadge label="۶۴٪" color="neutral" variant="soft" size="sm" class="rounded-full" />
  </template>
  <PanelMeter :value="64" size="md" label="مصرف سهمیه‌ی درخواست" />
  <PanelBars :values="daily" :labels="days" unit="درخواست" label="…" class="mt-5 h-20" />
</PanelCard>

Icon tiles

<BaseIconTile icon="i-lucide-trending-up" color="secondary" float />
<BaseIconTile icon="i-lucide-flame" variant="glass" shape="circle" />

Footer: social networks and app stores

  • News
Get it onApp StoreGet it onGoogle Play

Device frame and logo

Markaz Nerkh

Application content

Markaz NerkhMarkaz NerkhMarkaz Nerkh
Markaz NerkhMarkaz NerkhMarkaz Nerkh

Icons

Two icon families: Lucide line icons for the interface, and Nucleo Glass icons when the icon serves as an illustration. Both are rendered with UIcon.

Glass icons

The back layer uses the brand color (or purple, green or red for color-suffixed variants); the front is frosted glass with a bright edge. Colors are embedded in the file and remain the same in both themes. Below 36 pixels they look crowded. Custom means it was not in Nucleo and was drawn in the same style.

On dark background

  • analytics
  • arrows-converge
  • bell
  • bolt
  • candlesCustom
  • caret-maximize-diagonal-red
  • circle-check-green
  • circle-question-violet
  • flame
  • heart
  • layers
  • move-up-left
  • sparkle-violet
  • square-chart-line-violet
  • star

On light background

  • analytics
  • arrows-converge
  • bell
  • bolt
  • candlesCustom
  • caret-maximize-diagonal-red
  • circle-check-green
  • circle-question-violet
  • flame
  • heart
  • layers
  • move-up-left
  • sparkle-violet
  • square-chart-line-violet
  • star
<!-- ویژگی و سرتیتر بخش: ۴۰ تا ۵۶ پیکسل -->
<UIcon name="i-glass-bolt" class="size-11" />
<UPageFeature icon="i-glass-layers" title="…" :ui="{ leadingIcon: 'size-11' }" />

<!-- تزئینی و شناور -->
<UIcon name="i-glass-sparkle-violet" class="size-12 drop-shadow-lg motion-safe:animate-float" />

Which icon goes where?

Use glass icons only at large sizes as illustrations. Use line icons beside text and on buttons.

Glass

Feature lists, section headings, floating decorative icons and the brand panel. 40–56 pixels.

Outline (Lucide)

Buttons, menus, fields, tables and anywhere an icon performs an action. 16–24 pixels, matching the text color.

Page patterns

Homepage sections and their mappings to components and the reference design.

PatternComponent
Announcement bannerAppAnnouncement ← UBannerView
HeaderAppHeader ← UHeader، UNavigationMenu، AppSearchView
HeroLandingHero ← MarketSymbolSearch، تصاویر سه‌بعدی فیگماView
Rates tableMarketRatesTable ← UTabs، UTableView
All in one platformLandingFeatureHub ← BaseBorderGlowView
Trend analysisLandingAnalytics ← LandingAnalyticsPanelView
Candlestick chartLandingTrading ← ChartTradingView
Premium subscriptionLandingPremium ← UButton، MarketSparkline، MarketAssetIconView
Business productsLandingProducts ← UPageSection، UBadge، UButton (در صفحه‌ی اصلی نیست)View
Ask AILandingAskAi ← UTooltip، دکمه‌های شیشه‌ای (glass-pill)، تصاویر سه‌بعدی فیگماView
FooterAppFooter ← BaseStoreBadge، UTooltipView
Floating buttonsAppFloatingActionsView
Settings menuAppSettingsPanel ← UPopover، USwitchView
Log inlayouts/auth ← AuthOtpForm (UPinInput)، AuthBrandPanelView
Sign uplayouts/auth ← AuthOtpForm (UCheckbox، UPinInput)، AuthBrandPanelView
Dashboardlayouts/panel ← UDashboardGroup، UDashboardSidebar، PanelCardView