JR Dream Design System

Typography

Working guidance for English and Arabic font families, type hierarchy, responsive metrics and readable implementation.

A script-aware typography system

JR Dream uses Inter for English and IBM Plex Sans Arabic for Arabic. The shared sans-serif approach supports a consistent information hierarchy while each script keeps its own sizes, rhythm and line heights.

Use these working specifications across digital interfaces, documentation and future corporate experiences. Presentation and document recipes use the same families at their own point sizes. Do not stretch either typeface or replace the lettering inside the supplied logo.

The specification is internally accepted, pending implementation validation, competent Arabic review and final company approval. No linguistically approved Arabic specimen copy is available for this page. Arabic-font specimens use technical digits only; they are not translations or a choice of business numeral convention.

Source: Typography System Exploration & Validation v1.0, pages 1–2, 5 and 12.

Font families and local files

Inter: English

Clear information, consistently presented.

Local variable TTF, version 4.001 (git-66647c0bb). The file offers a weight axis of 100–900 and optical-size axis of 14–32; this project uses only 400, 500 and 600 with automatic optical sizing.

public/fonts/inter/Inter-Variable.ttf

IBM Plex Sans Arabic: Arabic

0123456789

Technical digit specimen from the Arabic font, not Arabic-language sample copy. Approved Arabic content and native-reader validation remain pending.

Local static TTF files, version 1.101: Regular (400), Medium (500) and SemiBold (600). The wider family offers upright weights 100–700; this project declares only the three working weights.

  • public/fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-Regular.ttf
  • public/fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-Medium.ttf
  • public/fonts/ibm-plex-sans-arabic/IBMPlexSansArabic-SemiBold.ttf

Both families are locally hosted, unmodified files obtained through the official Google Fonts repository. The checked-in files and hashes in public/fonts/README.md fix the deployed versions. styles/fonts.css uses real faces and font-display: swap; the typography stylesheet disables synthetic faces and enables automatic optical sizing.

Both fonts declare SIL Open Font License 1.1. The source records permission for commercial use and document embedding. Retain copyright and licence notices with redistributed fonts, do not sell fonts alone, and respect Reserved Font Names when modifying. The Plex licence reserves “Plex”. This task does not modify, convert or redistribute font files outside the project.

The source prefers official WOFF2 for future web production and static TTF/OTF for desktop editing. This implementation retains the existing full TTF files and Arabic coverage; no conversion or subsetting is performed. Fallbacks are availability fallbacks, not visually equivalent substitutes.

Source: Typography System Exploration & Validation v1.0, pages 2, 8, 11 and 12; local font metadata, font declarations, provenance record and retained OFL licences.

Working font weights

Use actual 400, 500 and 600 faces. The hierarchy requires no weight above 600. English and Arabic examples below demonstrate those same three weights without synthesised bold or italic.

Regular: 400

Clear information

0123456789

Inter phrase and Plex Arabic technical digits. Approved Arabic words remain pending. Variable: --weight-regular.

Medium: 500

Clear information

0123456789

Inter phrase and Plex Arabic technical digits. Approved Arabic words remain pending. Variable: --weight-medium.

SemiBold: 600

Clear information

0123456789

Inter phrase and Plex Arabic technical digits. Approved Arabic words remain pending. Variable: --weight-semibold.

Source: Typography System Exploration & Validation v1.0, pages 1–4 and 11.

Digital type hierarchy

Sizes are source CSS-pixel references at a 16px root. The implementation uses equivalent rem units. D / T / M means desktop / tablet / mobile; line height is a unitless multiplier and tracking is in em. Values below resolve from the existing CSS, including its responsive overrides.

English: Inter

English digital hierarchy: Typography v1.0 page 3
Style / weightSize D / T / M (px)Line heightTracking (em)Existing size variable
Display / 60064 / 52 / 401.1-.02em--type-display-size
H1 / 60048 / 40 / 321.15-.02em--type-h1-size
H2 / 60036 / 32 / 281.25-.01em--type-h2-size
H3 / 60028 / 26 / 241.30--type-h3-size
H4 / 60024 / 22 / 221.350--type-h4-size
H5 / 50020 / 20 / 201.40--type-h5-size
H6 / 50018 / 18 / 181.40--type-h6-size
Body large / 40018 / 18 / 181.60--type-body-large-size
Body regular / 40016 / 16 / 161.60--type-body-size
Body small / 40014 / 14 / 141.50--type-body-small-size

Arabic: IBM Plex Sans Arabic

Arabic digital hierarchy: Typography v1.0 page 3
Style / weightSize D / T / M (px)Line heightTracking (em)Existing size variable
Display / 60060 / 48 / 381.350--type-display-size
H1 / 60048 / 40 / 341.40--type-h1-size
H2 / 60036 / 32 / 281.40--type-h2-size
H3 / 60028 / 26 / 241.450--type-h3-size
H4 / 60024 / 22 / 221.450--type-h4-size
H5 / 50022 / 22 / 221.50--type-h5-size
H6 / 50020 / 20 / 201.50--type-h6-size
Body large / 40020 / 20 / 201.70--type-body-large-size
Body regular / 40018 / 18 / 181.70--type-body-size
Body small / 40016 / 16 / 161.650--type-body-small-size

Generic size variables resolve through language aliases, such as --type-h1-size to --type-en-h1-size or --type-ar-h1-size. Heading leading uses --type-h1-leading through --type-h6-leading; large and regular body share --type-body-leading. Small body uses --type-body-small-leading.

Live specimens at the current viewport

Each sample uses the existing responsive variables. Style names are labels, not extra document headings. Arabic-font samples contain technical digits only; actual Arabic wording is pending.

Display

Clear information

0123456789

H1

Clear information

0123456789

H2

Clear information

0123456789

H3

Clear information

0123456789

H4

Clear information

0123456789

H5

Clear information

0123456789

H6

Clear information

0123456789

Body large

Clear information

0123456789

Body regular

Clear information

0123456789

Body small

Clear information

0123456789

Use one H1 per page as the source’s editorial convention, with meaningful heading levels below it. A display style can decorate the page H1; do not use all heading levels merely to create visual variety.

Source: Typography System Exploration & Validation v1.0, page 3; implementation: styles/tokens.css and styles/typography.css.

Contextual typography

Digital contexts: Typography v1.0 page 4
Role / weightEN size / LHAR size / LHApplication
Navigation / UI / 50016 / 1.418 / 1.5Sentence case; allow wrapping and growing targets.
Form label / 50016 / 1.418 / 1.5Use a visible label, not placeholder-only instruction.
Field value / 40016 / 1.518 / 1.7Retain body size; validate long values and input scrolling.
Table body / 40014 / 1.516 / 1.65Scroll the table region; preserve accessible headings.
Table header / 50014 / 1.516 / 1.65For content-heavy tables, use body size: 16px EN / 18px AR.
Metric label / 50014 / 1.516 / 1.65Retain context alongside the value.
Metric value / 60032 / 1.232 / 1.4Use tabular figures for comparable numeric columns; identifiers are not quantities.
Caption / metadata / 40012 / 1.514 / 1.6Optional secondary information only; never essential instructions.

Documentation demonstrations

These examples illustrate type roles, not production-ready navigation, forms or product records.

View implementation guidance

Read-only documentation field with a visible label. Its width follows its container and its text stays at body size.

Illustrative count128

This synthetic number demonstrates a metric style, not JR Dream operational data.

Optional specimen note: caption typography is not for essential instructions.

Specification tables on this page demonstrate existing 14px / 1.5 English table text and medium-weight headers. Use 16px English / 18px Arabic for content-heavy tables, keeping the same readable leading. Use tabular figures only for comparable numeric columns; do not treat reference codes as quantities.

Presentation and document reference

These are source-defined point values for physical/document contexts, not new CSS tokens or a print redesign of this website. Nominal sizes still require actual-size and recipient-software testing.

Slide and document recipes: Typography v1.0 page 4
Role / weightEnglish pt / LHArabic pt / LH
Slide title / 60044 / 1.1544 / 1.4
Slide heading / 60032 / 1.2532 / 1.4
Slide body / 40022 / 1.524 / 1.65
Slide footnote14; optional only16; optional only
Document title / 60030 / 1.230 / 1.4
Document H1 / 60022 / 1.324 / 1.45
Document H2 / 60016 / 1.3518 / 1.5
Document H3 / 50013 / 1.415 / 1.5
Document body / 40011 / 1.512.5 / 1.7
Document caption / 4009 / 1.510 / 1.6

Reduce slide wording before reducing type size. Confirm exact installed font names, embed where supported, export PDF and compare Arabic joins and line breaks. Recipient substitution, projector distance and physical proofs remain unverified.

Source: Typography System Exploration & Validation v1.0, pages 4, 8–10.

Responsive typography

Existing responsive bands: Typography v1.0 page 6
BandViewport widthEnglish H1 / Arabic H1English body / Arabic body
MobileBelow 600px32px / 34px16px / 18px
Tablet600–1023px40px / 40px16px / 18px
Desktop1024px and above48px / 48px16px / 18px

Headlines step down across these existing bands. Body sizes remain stable on mobile. The live specimens above follow the current viewport, while the hierarchy tables retain all three reference sizes. No separate typography breakpoint system is introduced.

Keep the root at 100%, allow text to wrap and containers to grow, and do not disable zoom or cap text to fit fixed heights. Wide tables scroll inside their own keyboard-accessible regions while the article remains in normal document flow.

Source: Typography System Exploration & Validation v1.0, pages 6, 11 and 12.

Arabic and bilingual layout

  • Set both lang="ar" and dir="rtl" on Arabic sections. Keep English sections LTR and use start alignment, not a forced shared left edge.
  • Use IBM Plex Sans Arabic at section level, with Arabic-specific heading and body metrics. Arabic regular body is 18px / 1.7; changing only the font family or body size is insufficient.
  • Keep Arabic letter spacing at zero, normal word spacing and no uppercase transformation. Do not justify paragraphs, insert manual kashida, add spaces to stretch lines, synthesize italic or horizontally scale either font.
  • Isolate codes, dates, URLs and Latin names with bdi, giving an explicit direction when known. Do not reverse strings manually. Use an explicit English font span only when necessary; isolated identifiers can retain the section font.
  • Choose Western or Arabic-Indic business numerals with the business and Arabic reviewer. Do not mix conventions in a data column; preserve machine identifiers in their original form.

Arabic content placeholder

Approved Arabic heading, paragraph and mixed-direction specimen text will be added after competent review. No PDF sample sentences are reused, and no translations are invented.

JR-0242026-10-20

Technical identifiers only: explicit LTR isolation inside an RTL container using the Arabic section font. This verifies layout settings, not Arabic reading order, shaping quality or linguistic accuracy.

Source: Typography System Exploration & Validation v1.0, pages 3, 5, 6, 11 and 12.

Accessibility, readability and writing

  • Retain the script-specific unitless leading in the tables. Arabic needs room for connected forms, dots and diacritics; equal English and Arabic sizes/leading are not a reliable recipe.
  • English paragraph guidance is 45–75 characters, about 65ch maximum. The Arabic measure near 55ch is provisional and needs visual review: ch is not a count of Arabic characters.
  • Allow user text enlargement and spacing overrides without clipped labels or fixed-height text boxes. The source leaves a full text-spacing override test pending; it does not define new letter or word spacing values for this purpose.
  • Keep meaningful heading order, correct language attributes and visible field labels. Essential guidance must remain above optional caption size.
  • Use paragraph spacing instead of blank-line characters or manual text boxes that disrupt reading order. Prefer start alignment and avoid justified paragraphs.
  • Use charcoal or muted text on tested light surfaces and white on charcoal. Small white action labels stay on accessible action orange. A heading style does not exempt ordinary text from contrast checks.

Use the Colour foundation’s tested pairings and restrictions when applying these text roles. Font scaling, spacing, focus, language and assistive-technology behaviour need validation beyond a small contrast sample.

Project writing standard

Do not use Unicode U+2014 in authored JR Dream content. Use a comma, colon, full stop or grammatically appropriate standard hyphen according to the sentence. This applies to documentation, UI copy, accessibility descriptions, developer explanations and future corporate website content. The persistent rule is recorded in AGENTS.md.

Source: Typography System Exploration & Validation v1.0, pages 3–6, 9–12; punctuation convention is a project instruction, not a typography PDF specification.

Developer implementation

Reuse the existing font declarations, central tokens and language-aware aliases. Do not duplicate the type scale in components. A genuinely English subsection inside Arabic must declare its language and direction so English metrics are restored.

/* Load the existing fonts.css, tokens.css and typography.css.
   Language aliases already select the script and responsive band. */
.feature-title {
  font-family: var(--font-content);
  font-size: var(--type-h1-size);
  font-weight: var(--weight-semibold);
  line-height: var(--type-h1-leading);
  letter-spacing: var(--tracking-h1);
  text-align: start;
}
.reading-text {
  font-family: var(--font-content);
  font-size: var(--type-body-size);
  font-weight: var(--weight-regular);
  line-height: var(--type-body-leading);
  max-inline-size: var(--measure);
}
.comparable-number { font-variant-numeric: tabular-nums; }
/* Headings remain semantic HTML. Do not create another breakpoint scale.
   Keep html at 100%, font-synthesis: none and optical sizing: auto,
   as the existing stylesheets do. */
<section lang="en" dir="ltr">
  <h2>Implementation example</h2>
  <p class="reading-text">English documentation content.</p>
</section>

<!-- Template only: approved Arabic text has not been supplied. -->
<section lang="ar" dir="rtl">
  <!-- Insert approved Arabic heading and paragraph here. -->
  <!-- Isolate Latin identifiers and dates without reversing strings: -->
  <bdi dir="ltr">JR-024</bdi>
  <bdi dir="ltr">2026-10-20</bdi>
  <!-- Add lang="en" dir="ltr" to a genuinely English subsection.
       Leave isolated identifiers in the section font unless needed. -->
</section>

The HTML is a technical template with no Arabic sample prose. Font fallback line breaks, diacritics, long labels and mixed punctuation require later testing with approved content. Never apply font CSS to reconstruct or replace the supplied logo lettering.

Source: Typography System Exploration & Validation v1.0, pages 5, 10–12; snippets are documentation implementation guidance.

Validation and approval status

Specification evidence and pending validation
AreaStatusEvidence or next action
Typography working specificationInternally acceptedSource-defined families, weights and script-specific metrics remain pending final company approval.
Source rendering studiesRecorded in PDFWeasyPrint/Pango simulations, not browser tests. The source reports doubled-root native-input overflow at 320px; it does not claim a complete resize pass.
Prior shell checksRecorded in Stage 02.1Local font loading, numeric Arabic CSS metrics and English shell text enlargement were checked. These do not certify Arabic content.
This implementationLimited checks recorded separatelySee docs/stage-02.2c-implementation.md for actual font, metric, responsive, keyboard, screenshot and PDF checks.
Arabic language and native-reader comfortPendingReview approved text, joins, diacritics, punctuation, bilingual content and business numeral choice.
Real devices and accessibilityPendingReview real screens, fallback substitution, actual zoom/reflow, full text-spacing overrides and screen-reader behaviour.
Physical/document reproductionPendingVerify recipient application imports, font embedding/substitution, projectors and actual-size print proofs.
Final company approvalPendingJoseph Dass’s approval of the complete brand system remains separate from internal acceptance and technical checks.

No comprehensive WCAG conformance, Arabic linguistic approval, production release or final company approval is claimed. Real Arabic content remains a validation requirement, not an inferred result from technical digit specimens.

Source: Typography System Exploration & Validation v1.0, page 12; prior implementation records and current Stage 02.2C report.