RTL-First Modest Luxury Theme

Modesta

RTL-first modest luxury Shopify theme — abaya, hijab, modest evening, modest occasion.

MENA modest-luxury houses (Gulf, Levant, North Africa) selling abaya, hijab, modest evening and modest bridal, and Pakistani modest-luxury lines selling cross-border into the Gulf — 50–1,000 SKUs at USD 80 – 800 AOV. The only theme architected RTL-first instead of RTL-as-translation.

AuthorSMB Resource Group
Version1.0.0
StatusIn review
RTL-first CSS (logical properties only)Layered Styling CombinatorModest Sizing Native GuideModest Layered Card (flat → draped)Trilingual (Arabic + English + Urdu)Region-Aware Banner (Shopify Markets)Hijab Tutorial libraryClick-to-zoom PDP gallery
Modesta home page — RTL architectural hero
Why Modesta

RTL is the design — not a translation layer.

Modest fashion is large, growing, and underserved by themes built LTR-first then mirrored. Modesta inverts the polarity: the entire layout is authored RTL-first in CSS logical properties, and LTR is the variant that mirrors. Headers, hero composition, navigation drawers, cart drawers — all default to right-anchored, all flip cleanly for English.

RTL is the design, not a translation

Authored RTL-first in CSS architecture

Modesta is the only Shopify theme on the market authored RTL-first. Every layout uses CSS logical properties (margin-inline-start, padding-inline-end, inset-inline-start) — never margin-left/right. LTR locales receive a properly mirrored variant automatically. Inspect the source and the architecture is visible — that's the reviewer signal.

Modest fashion is layered

Layered Styling Combinator

An outfit is base + outer + accessory + hijab. The Combinator stacks each layer as a transparent image overlay, lets the customer toggle pieces on and off to see the silhouette shift, and adds the complete set to the cart in a single tap via Shopify's multi-item /cart/add API. Custom element, no framework.

Modest fits aren't standard fits

Modest Sizing Native Guide

Standard size charts skip the measurements that matter for modest garments — total length to floor with floor-clearance preference, sleeve-to-wrist with cuff buffer, hijab cap circumference, neckline coverage. A dedicated /pages/modest-sizing template ships with a pure-client-side calculator. No fetch, no POST, no third-party — verifiable in DevTools.

The card knows the drape

Modest Layered Card (flat → draped)

Product cards on the PLP show the flat product photo by default. On hover (or tap on mobile) the card fades to a "draped on body" image driven by product.metafield('details', 'draped_image'). The flat-vs-draped pair tells the modest-fashion story standard cards can't.

Codebase Fork of Shopify Skeleton Theme
Online Store 2.0 JSON templates, section groups, app blocks everywhere
Industry fit MENA modest luxury · Pakistani modest capsules
Catalog size 50–1,000 SKUs · AOV USD 80 – 800
Languages at launch Arabic (primary, RTL) · English · Urdu (Nastaliq)
Theme version 1.0.0
Author SMB Resource Group
Color presets 2 — Modesta (sand + ink), Modesta Noir (emerald + bone)
Display typography Reem Kufi (Arabic) · Cormorant Garamond / Tenor Sans (Latin)
Body typography Noto Naskh Arabic / IBM Plex Sans Arabic (Arabic) · Inter (Latin)
Urdu typography Noto Nastaliq Urdu (direct Google Fonts load)
CSS architecture Logical properties only — zero physical margin/padding/border anywhere
Cart type Notification (default) · Page · Drawer optional
Companion apps Product Add-ons & Size Chart (optional, @app block)
Theme features

Every surface modest fashion actually uses.

A combinator that styles a layered outfit as a single composite. A sizing calculator that knows total length to the floor and hijab cap circumference. A card that swaps from flat to draped on hover. A region-aware banner that surfaces Ramadan content to Gulf visitors only — all without an app.

RTL

RTL-first CSS architecture

Zero margin-left/right, zero padding-left/right, zero border-left/right anywhere in the section liquid or modesta-base.css. Every layout uses logical properties (margin-inline-*, padding-inline-*, inset-inline-*, border-inline-*) so Arabic and LTR locales mirror automatically via <html dir>. Direction-aware icon mirroring (chevrons, arrows) and an optional "mirror hero in LTR" setting for photography that needs it.

LSC

Layered Styling Combinator

sections/layered-styling-combinator.liquid stacks 2–4 product layers as a single composite image with toggle-per-layer controls. A single "Style this set" CTA POSTs all selected layers to /cart/add via the items[] array. Renders inside the home, inside a layered PDP, or as a section in any page template.

MSG

Modest Sizing Native Guide

sections/modest-size-chart.liquid with a pure-client-side JS calculator. Inputs: bust, waist, hips, total length to floor, sleeve to wrist, hijab cap circumference, neckline coverage preference. Outputs: suggested size for abaya / kaftan / hijab + your coverage preference recorded for filtering. Mounts as a page template (page.modest-sizing.json) or as a block inside any PDP.

MLC

Modest Layered Card

snippets/modest-card.liquid renders the PLP card with a default flat product photo and an on-hover draped-on-body image driven by product.metafield('details', 'draped_image'). Cards without a draped image fall back gracefully. Toggleable per-theme via the layered_card_hover_swap setting.

TRI

Trilingual typography (Ar + En + Ur)

sections/dual-script-headline.liquid renders Arabic + English (italic) headlines together with optional Urdu Nastaliq beneath. Reem Kufi (Arabic display) and Noto Naskh Arabic (Arabic body) and Noto Nastaliq Urdu (Urdu) load directly from Google Fonts because Shopify's font picker library doesn't include them. Latin display + body fonts ship via Shopify's font picker.

RAB

Region-Aware Banner

sections/region-aware-banner.liquid reads localization.country.iso_code from Shopify Markets and surfaces a region-specific block — Ramadan edit for MENA during the window, Hari Raya for SEA, fallback for everyone else. Per-block date range + country list. Pure Liquid, no app, no external geolocation. Passes Shopify Section 8 banned-features review.

HIJ

Hijab tutorial library

sections/hijab-tutorial-video.liquid + templates/page.hijab-tutorials.json render a documentary-style video grid. YouTube no-cookie iframes (or bundled thumbnails as fallback) with Arabic + English step-by-step instructions per tutorial. Ships with four tutorials seeded (classic wrap, side drape, pleated front, turban).

PDP

PDP — swatches, chips, click-to-zoom

main-product auto-detects "Color"/"Colour" options and renders them as round swatches (with --swatch-color variable + named-color overrides for the Modesta palette). Other options render as pill chips. Click any thumbnail to swap the main image. Click the main image to open a fullscreen lightbox with ‹ › arrows, ESC to close, and keyboard navigation. Vanilla custom elements, no carousel library.

HER

Architectural hero

sections/hero-architectural.liquid renders a 90vh hero with an architectural backdrop (arched doorway, mashrabiya screen, riad courtyard). Plate-style headline overlay supports dual-script + Urdu pairing. Optional "mirror hero image in LTR" toggle so model-side photography reads correctly in both directions.

CRT

Page-style RTL cart

sections/cart.liquid is a destination page, not a drawer. Two-column layout with line items left (modest-card thumbnail, dual-script title, qty stepper, remove) and a summary panel right (subtotal, shipping note, page-wide checkout button). Mirrors automatically in RTL via logical properties.

CON

Trilingual contact form

sections/contact-form.liquid + templates/page.contact.json. Dual-script "تواصلي معنا / Write to the atelier" header, sidebar with atelier address, hours, email, and WhatsApp number. Built on Shopify's native {% form 'contact' %} — no third-party form app.

APP

App-block ready

Main product, cart, and editorial sections expose @app blocks. SMB's Product Add-ons & Size Chart app drops in cleanly, and any other Shopify app that targets product page blocks works without code changes.

Theme tour

The visual vocabulary of considered modesty.

Architectural hero, layered combinator, dual-script headlines, modest layered cards, modest sizing calculator, hijab tutorial library, region-aware banner, page-style cart — every surface tuned for the modest-luxury customer.

Modesta home — architectural hero with Andalusian arched doorway, mashrabiya screen, and the dual-script Arabic + English headline plate
Home · Architectural hero
Layered Styling Combinator — stacked base + outer + hijab on a single model with toggle controls and Style this set CTA
Layered Styling Combinator
Three-up collections strip (Abaya · Kaftan · Hijab) above a region-aware banner surfaced via Shopify Markets
Collections + Region-aware banner
Lulu silk hijab PDP — round color swatches (Ivory · Sand · Emerald) with the dual-script English + Arabic description
PDP · Color swatches
Najma abaya PDP — pill-style size chips (S · M · L) with active-state highlight
PDP · Size chips
PDP lightbox — fullscreen image viewer with prev/next arrows and image counter
PDP · Click-to-zoom gallery
Yasmeen collection PLP — modest layered cards in 3-column grid with the dual-script title bar
Collection · Yasmeen PLP
Modest sizing guide — pure client-side calculator with bust/waist/hips, floor clearance, sleeve to wrist, hijab cap circumference, neckline coverage
Modest Sizing Native Guide
Hijab tutorials page — documentary-style cards for classic wrap, side drape, pleated front, turban style
Hijab tutorial library
Page-style cart with two items, dual-script header, modest card thumbnails, and GCC shipping note
Cart · Page style
Modesta contact form — dual-script header with atelier address, hours, email and WhatsApp sidebar
Contact · Trilingual form
Modesta mobile home — vertical architectural hero with model in lower 60% and headline plate above
Mobile · Home

Install & first-run setup

Modesta is a Skeleton-based theme — install it via Shopify CLI for development or upload the zipped theme through Online Store → Themes → Add theme for production.

  • Run shopify theme dev --store your-dev-store.myshopify.com from the theme directory for hot-reload development.
  • After install, add Arabic via Settings → Languages and set it as the default — Modesta is architected RTL-first, so Arabic is the design's natural direction. English is the secondary locale; Urdu (Nastaliq) is supported for Pakistani modest brands selling cross-border into the Gulf.
  • Pick a preset in Theme settings → Colors: Modesta (sand + ink) or Modesta Noir (emerald + bone).
  • In Theme settings → RTL / direction, decide whether hero images should mirror automatically in LTR (the mirror_in_ltr toggle) and whether to surface a Hijri date hint in the announcement bar when the visitor is in an Arabic locale.
  • Optional: connect the Product Add-ons & Size Chart app from the Shopify App Store — Modesta exposes the required @app blocks on the main product section.

Color presets & typography

Modesta ships two color schemes built on the same palette tokens: background, text, accent, olive, rose, bone. All schemes meet Shopify's contrast requirements (4.5:1 body, 3:1 large + non-text).

  • Modesta (default): sand background #EDE6D5, ink text #1A1A1A, emerald accent #214A3A, olive overlines #7B8366, dusty rose #CDA5A5. The daytime / spring preset.
  • Modesta Noir: emerald base #214A3A, bone text #F4EFE3, dusty rose accent — for evening, occasion and modest bridal brands.
  • Hairlines: every divider is computed from text-color at 12% (--hairline) and 22% (--hairline-strong) alpha. Don't override directly.
  • Fonts (Arabic): Reem Kufi (display) and Noto Naskh Arabic (body) loaded direct from Google Fonts because Shopify's font picker doesn't include them. The merchant's Arabic body picker is the fallback.
  • Fonts (Latin): Cormorant Garamond (display, picker default Playfair Display as a safe Shopify-curated handle) and Inter (body), both via Shopify's font picker.
  • Fonts (Urdu): Noto Nastaliq Urdu loaded direct from Google Fonts. The merchant's Urdu picker is the fallback.
  • Spacing scale: three presets fed to a --section-y CSS variable — Compact (40–80px), Standard (48–96px, Modesta default), Editorial (56–108px).

RTL-first architecture

Modesta is the only Shopify theme on the market authored RTL-first in CSS. Every section's layout uses CSS logical properties — margin-inline-start, padding-inline-end, inset-inline-start, border-inline-end-width — and never the physical margin-left/right or padding-left/right equivalents. <html dir> is set from request.locale.text_direction, and direction-aware icons (chevrons, arrows) flip via CSS transform: scaleX(-1) when [dir="rtl"] matches.

  • Verification: git grep -nE "margin-(left|right)|padding-(left|right)|border-(left|right)" across sections/ and assets/modesta-base.css returns zero hits. Visible to any Theme Store reviewer.
  • Hero mirroring: a per-section allow_mirror toggle plus a global mirror_in_ltr setting flip hero images horizontally in LTR so model-side photography reads correctly in both directions.
  • Cart / drawer side: notification, drawer, and page cart types all open from the inline-end side automatically — right in RTL, left in LTR — without any duplicate code paths.
  • Country / language selectors: the localization-form lives in the header utility zone and uses the inline-end side, ensuring it surfaces where the merchant's primary audience expects it.

Home page composition

The home page is built from JSON-defined sections — every one editable in the Theme Editor. The default templates/index.json ships with the order below.

  • announcement-bar — single-line strip with optional Hijri date hint in Arabic locales.
  • header — three-zone grid: brand on inline-start, nav center, utility (search, locale, account, cart) on inline-end.
  • hero-architectural — 90vh hero with arched doorway / mashrabiya backdrop and a plate-style headline overlay (Arabic + English + optional Urdu).
  • dual-script-headline — centred Arabic + English (+ Urdu) pairing as an editorial divider band.
  • layered-styling-combinator — the marquee section, see the dedicated docs entry below.
  • collections-strip — 3-up RTL-ordered collection cards with Arabic + English labels.
  • region-aware-banner — country + date-window banner blocks (Ramadan edit for MENA, fallback for others).
  • editorial-quote — Arabic + English pull quote with hairline rules.
  • newsletter-inline — single-line RTL form on ink background.
  • footer — 4-column with the column order mirroring automatically in RTL via logical properties.

Layered Styling Combinator

The marquee section of Modesta. Stacks 2–4 product layers as a single composite image with toggle-per-layer controls and a single "Style this set" CTA that POSTs all selected layers to /cart/add via the items[] array. Custom element, no framework.

  • Block type: layer — each block carries a layer name (e.g. Base / Outer / Hijab), a product reference, an optional transparent overlay PNG (falls back to the product's featured image), and a stack-order range setting (0–10).
  • Default count: 3 layers ship out of the box (matching the Sunbula slip + Najma abaya + Lulu hijab demo set). Configurable via the layered_combinator_default_count theme setting.
  • Behavior: right-side panel lists each layer with name + price + toggle dot. Toggling a layer hides it (data-layer-active="false") without resetting the others.
  • Style this set: the CTA collects active variant IDs, posts to /cart/add as a single multi-item request, and redirects to /cart on success.
  • Surfaces: renders on the home, inside templates/product.layered.json below the buy block, or as an ad-hoc section in any page template.

Modest Sizing Native Guide

Modest fashion has measurements standard size charts skip. Modesta ships a dedicated page template (templates/page.modest-sizing.json) and a reusable section (sections/modest-size-chart.liquid) with a pure-client-side calculator.

  • Inputs: Bust, Waist, Hips (cm), Total length to floor (cm), Sleeve length to wrist (cm), Hijab cap circumference (cm), Floor clearance preference (brushing / 1cm / 5cm / 10cm), Neckline coverage preference (close / 2-finger / collar bone / softly scooped).
  • Outputs: Suggested size for abaya / kaftan / hijab + the coverage preference recorded so customers can filter by it later.
  • Privacy: all math runs in the visitor's browser. Verifiable in DevTools network tab — submitting the form makes zero requests.
  • Surfaces: page template at /pages/modest-sizing + a "Find your size" link auto-rendered on the PDP (controlled by the modest_sizing_visibility theme setting: all products / only products tagged modest-sizing / hidden by default).

Modest Layered Card (PLP)

Standard product cards show a flat product photo. Modesta's modest-card snippet adds an on-hover draped-on-body image so the customer sees the silhouette, not just the garment.

  • Default image: product.featured_image — flat product photography on neutral backdrop.
  • Hover image: product.metafield('details', 'draped_image') — image of the same garment on a real model. Falls back gracefully when the metafield is empty.
  • Transition: 250ms fade, controlled by the layered_card_hover_swap theme setting (toggle off to disable across the store).
  • Card detail order: vendor (eyebrow) → Arabic title → English title → price. In RTL the image stays on the inline-start side of any 2-column row.

Product page & blocks

The default product page (templates/product.json) is a clean two-column layout — gallery left, info right — with dual-script title support and a "Find your size" link to the Modest Sizing guide. A second template, product.layered.json, adds the Layered Combinator below the buy block.

  • Variant picker: auto-detects "Color"/"Colour" options and renders them as round swatches with a --swatch-color CSS variable and named-color overrides for the Modesta palette (ivory, bone, sand, oyster, emerald, olive, rose, coral, aquamarine, indigo). Other options render as pill chips.
  • Gallery: thumbnail click swaps the main image, main image click opens a fullscreen lightbox with ‹ › prev/next arrows, ESC to close, ←/→ to navigate, click-scrim-to-close. Vanilla custom element, no carousel library.
  • Dual-script title: reads product.metafields.translations.title_ar for the Arabic headline and title_ur for optional Urdu Nastaliq. Falls back gracefully to English-only when metafields aren't set.
  • Material & care: collapsible <details> block, configurable per-section open-by-default.
  • App + Custom Liquid blocks: exposed for the SMB Product Add-ons & Size Chart app and any other Shopify app that targets product page blocks.

Hijab tutorial library

A dedicated content surface for hijab styling tutorials — sells the brand's point of view on modest dress without requiring a heavyweight blog. templates/page.hijab-tutorials.json renders a stack of tutorial cards, each with a YouTube no-cookie embed and Arabic + English step-by-step instructions.

  • Block type: tutorial — eyebrow, Arabic title, English title, optional YouTube URL (no-cookie embed), thumbnail fallback, and a richtext step list (validated as an <ol> top-level node).
  • Demo content: four tutorials seeded — classic wrap, side drape, pleated front, turban style — with Arabic + English steps for each.
  • Banned-features compliance: Shopify's Section 8 review prohibits third-party tutorial platforms. Modesta uses YouTube embeds only (or self-hosted Shopify media). No proprietary widgets.

Region-Aware Banner

sections/region-aware-banner.liquid reads localization.country.iso_code from Shopify Markets and surfaces a region-specific block based on the visitor's country plus a date window — all in pure Liquid. No external API, no third-party geolocation, no scheduled task. Passes Shopify's Section 8 banned-features review.

  • Block type: region — comma-separated ISO 3166-1 alpha-2 country list (use ALL as a fallback), optional start + end dates (YYYY-MM-DD), Arabic + English heading, CTA, banner image (with bundled asset fallback).
  • Match order: first block whose country list contains the visitor's country AND whose date window is current renders. Subsequent matches are skipped.
  • Default content: Ramadan edit for the MENA region during the Ramadan window, generic spring fallback for everyone else.
  • No app: the visibility logic is pure Liquid keyed on Shopify's localization context. Section 8 reviewer can verify by reading the section file.

Trilingual contact form

templates/page.contact.json renders a Modesta-styled contact form with dual-script header, atelier sidebar (address, hours, email, WhatsApp), and Shopify's native {% form 'contact' %} backing — no third-party form app.

  • Form fields: name, email, optional phone, subject (select), message (textarea). All RTL-aware via logical properties.
  • Sidebar panels: atelier address, opening hours, contact email, WhatsApp link (auto-formats to wa.me/<number>).
  • Success state: success message rendered when form.posted_successfully? is true; error block when form.errors is populated.
  • Endpoint: Shopify's native contact-form endpoint — submissions land in the merchant's email + Shopify admin.

Page-style cart

The default cart is the notification cart for fast-moving modest-fashion catalogs, with a page-style cart and a drawer cart both available via the cart_type theme setting.

  • Page cart: two-column layout — line items left (modest-card thumbnail, vendor eyebrow, dual-script title, qty stepper, remove link, line price) and a summary panel right (order notes textarea, subtotal, shipping note, page-wide checkout button).
  • Dual-script header: Arabic "السلة" + English "Your bag" rendered together at the top.
  • Free shipping note: "Complimentary GCC shipping over USD 250" by default — editable in the section settings.
  • RTL behavior: in Arabic locales the line items occupy the inline-start (right) and the summary the inline-end (left); the entire layout flips via CSS logical properties without any duplicate code paths.

Metaobject & metafield reference

KeyTypeUsed by
product.details.draped_imageFile (image)Modest Layered Card — on-hover draped image
product.translations.title_arSingle line textPDP & cart — dual-script Arabic title
product.translations.title_urSingle line textPDP — optional Urdu Nastaliq title (when show_urdu_in_dual_script is on)
collection.translations.title_arSingle line textCollection PLP — Arabic title above English
page.translations.title_arSingle line textGeneric page template — Arabic title above English

All custom metafields use the details namespace for shared (Mehfil/Atelier-compatible) fields, and the translations namespace for dual-script titles. If you also install the Product Add-ons & Size Chart companion app, additional custom.* metafields are managed by the app and consumed by its app-block.

Launch checklist

Before going live, walk this list — it mirrors the Theme Store submission bar, plus Modesta's RTL-specific items. Full checklist (with [x] / [ ] status tracking) ships in the theme repo at SUBMISSION_CHECKLIST.md.

  • All 15 required JSON templates present + 3 Liquid templates (gift card, layout, password).
  • Header + footer wired as section groups.
  • Main product section includes an @app block and a Custom Liquid block.
  • Color scheme set to Modesta or Modesta Noir; contrast checked (4.5:1 body, 3:1 large + non-text).
  • Arabic added and set as default locale. Modesta is designed RTL-first; Arabic is the natural direction.
  • Both RTL and LTR screenshots in submission package (1280×800 min): home, PDP (Lulu hijab), collection, cart, modest-sizing, hijab-tutorials. 6 + 6 = 12 minimum.
  • Logical-properties grep: zero margin-left/right, padding-left/right, border-left/right across sections + modesta-base.css.
  • Modest sizing calculator verifiably client-side (zero network requests on submit).
  • Region-aware banner verifiably keyed on localization.country.iso_code only — no external geolocation.
  • Hijab tutorial embeds use YouTube no-cookie or Shopify-hosted media. No third-party tutorial platform.
  • Arabic font picker ships regular / 500 / bold variants via font_modify. Urdu picker likewise.
  • No banned imagery: no Quranic verses, no Kaaba imagery, no mosque interiors as commercial backdrops, no Sanskrit text. No real designer names — Modesta ships with the fictitious house Lamis Al-Najjar by default.
  • Lighthouse perf ≥ 60 avg on product + collection + home, desktop AND mobile. Accessibility ≥ 90.
Support & updates

Built and supported by the SMB engineering team.

Updates, bug fixes and merchant support are handled by the same engineers who wrote the theme. Email us — we respond within one business day.

Contact support →