Skip to content
Mohra

Private Salla Theme

Mohra. A theme that speaks Arabic commerce.

A complete Twilight storefront — RTL-first, dual-mode, with 27 custom blocks the merchant configures from Salla's editor.

custom blocks
27
features
17
animations
13
  • 27 custom merchant-editable blocks
  • 17 built-in features
  • 13 entrance animations
  • 2 dual light + dark mode
  • Arabic-first by default

Capabilities

What makes Mohra different.

Six structural choices the theme makes, deeper than what merchants see in the editor.

The kit

27 custom blocks, all editable.

Every block below is a real Twig component in src/views/components/home/, registered in twilight.json. Tap any card to see its configurable fields.

Design system

The tokens behind every screen.

Light and dark are not themes — they're parallel sets of CSS variables, injected once from twilight.json merchant settings.

Brand primary ladder

--color-primary-*

big-lighter

#FFE8E8

lighter

#FFB0B0

light

#FF4040

primary

#FF1414

dark

#D40E0E

darker

#4A0505

reverse

#FFFFFF

Light mode -lm tokens
  • #f7f7f7
    store-bg
  • #242424
    main
  • #4f4f4f
    subtext
  • #f0f0f0
    header-bg
  • #f5f5f5
    footer-bg
  • #f2f2f2
    card-bg
  • #707070
    card-subtitle
  • #ff1414
    price
Dark mode -dm tokens
  • #222222
    store-bg
  • #ffffff
    main
  • #eeeeee
    subtext
  • #222222
    header-bg
  • #222222
    footer-bg
  • #383838
    card-bg
  • #cacaca
    card-subtitle
  • #ff1414
    price

Typography scale

--font-main

text-display-md · 80px

Aa أا

text-title-size · 42px

Title size

text-22px · 22px

Twenty-two pixels

text-base · 16px

Body copy — the most-used size, used for paragraphs and form fields throughout the storefront.

text-sm · 14px

Meta, captions, secondary navigation.

text-xs / xxs / xxxs · 12 / 10 / 8px

Small. Smaller. Smallest.

Radius

tiny
3px

default
12px

large
22px

big
40px

Shadow

default

md

huge

RTL ↔ LTR · contained flip

The frame below flips its dir attribute without touching the rest of the page — proving every internal layout is direction-agnostic.

م

Premium pour-over kettle · إبريق قهوة احترافي

SKU · MOHRA-001

Stock · 12

Interactive · مختبر تفاعلي

Card features lab.

21 toggles on window.mazaya_features — the same flags the theme reads. Flip switches; the card responds.

Live preview · changes apply instantly

Architecture

Salla's runtime, the theme's presentation.

Mohra owns the views, the styles, and the page-level JS. Salla owns the data, the routing, and the <salla-*> web components — injected at runtime.

Layer 1

Salla backend

Renders Twig templates server-side. Injects globals (salla, theme, store, user, language) into every template.

Layer 2

Twilight runtime

Injects <salla-*> web components into the DOM (cart, search, modals, slider, scopes, gifting…). Mohra styles them via ~5,000 .s-* selectors.

Layer 3

Mohra theme

Twig views + SCSS + per-page JS. Compiled by webpack to stable un-hashed names so {{ 'app.js' | asset }} references resolve.

13 webpack entries

webpack.config.js:104-118

No splitChunks. Each entry is a standalone <script> referenced by name from Twig. Dynamic chunks (loaded by webpack's runtime) use [contenthash]; Twig-referenced entries don't.

Entry Loaded by Purpose
appevery pagestyles + global theme JS
homeindex.twighome page bundle
productsingle + listingPDP + category
checkoutcart + thankyoucart + order confirm
pagesloyalty + brandsmulti-page bundle
ordercustomer/ordersorder detail
testimonialstestimonials.twigdedicated reviews
product-cardmaster.twig:68product card partial
main-menumaster.twig:69mmenu-light mobile nav
wishlist-cardcustomer/wishlistwishlist partial
add-product-toastmaster (conditional)cart toast notifications
digital-filesproduct/single (conditional)digital downloads
videos-shopM_videos_shophome video section

Performance budgets

webpack.config.js:154-167

800KB

max asset

1MB

max entrypoint

Tuned to flag regressions, not the ~68KB brotli floor that Salla's safelist (2,297 classes) + the .s-* selectors set.

Optimization passes

production only

  • Terser · 2-pass, drop_console, drop_debugger, dead_code
  • cssnano via CssMinimizerPlugin
  • Gzip · quality 11, 10KB threshold
  • Brotli · quality 11
  • sharp · PNG L9, mozjpeg q78
  • svgo · multipass, preserves viewBox

Built with

Localization

96 strings, two languages, one source.

Theme strings live in src/locales/{ar,en}.json and are read by Twig as trans('…') and by JS as salla.lang.get('…').

pages.product_pagetrust

أصلي 100%

100% Original

pages.product_pageurgency

سارع بالشراء! ينتهى العرض خلال

Hurry up! The offer will end soon

pages.productssocial proof

هذا المنتج عليه طلب كبير ✨

This product is in high demand

cartinterpolation

(:count منتج)

(:count items)

homefeedback

تم نسخ الكود بنجاح

Code copied successfully

blocks.footersocial

تابعنا على انستقرام

follow us on Instagram

Talk to us

Get a live demo of Mohra on your store.

Tell us a little about the store you're building. We'll send a guided walkthrough and a personalized component map within one business day.

  • Editor tour scoped to your category
  • Performance audit on your current theme
  • Migration plan and timeline estimate

No mailing list. We reply directly, then delete the email if no demo is booked.

Category

Block

M_id

Configurable fields