JR Dream Design System

Iconography

Source-defined Lucide meanings, sizes, geometry, semantic colours and accessible application.

Clear symbols, consistent meaning

JR Dream uses a curated outline family to support Architectural Minimalism with Technical Precision. Stable geometry, explicit labels and consistent meanings help people distinguish navigation, actions and feedback. Interface symbols never replace the complete JR Dream logo.

These are internally accepted working specifications, pending implementation testing and final company approval. Service and operational examples describe a proposed vocabulary, not evidence of business capabilities or existing software.

Source: Iconography System Exploration & Validation v1.0, pages 1 and 16–17.

Library, source version and meaning register

The source selects 40 Lucide icons, not the entire catalogue. This page renders genuine SVGs from the exact lucide-static 1.59.0 archive. The existing application retains lucide-react 0.468.0 and its current icon usage. These versions are distinct; this page does not establish a second global production icon system.

The original SVGs and full ISC licence, including the Feather-derived MIT notice, are retained alongside the scoped implementation. Commercial use is permitted under those notices; retain the full licence in source and asset distributions. No visible attribution line is required by the reviewed licence.

Use building-complex and trash in the source register. Do not substitute the older Building2 export, or treat aliases as separate meanings. Any future framework upgrade needs deliberate name, geometry, API and licence review.

Register previews use primary charcoal. Their role labels describe intended application colours, demonstrated separately below.

Services and main navigation
Source iconMeaning and contextDefault size / roleVisible text and restriction
building-complex
Property management
Service / property
32px / PrimaryRequired. Not ownership or a luxury claim.
wrench
Facilities / maintenance
Service / maintenance
32px / PrimaryRequired. Label facilities versus repair context.
bed-double
Accommodation
Service / accommodation
32px / PrimaryRequired. Not a hotel or booking claim.
clipboard-list
Project consultancy
Service / project
32px / PrimaryRequired. Not proof of project tracking features.
house
Home
Main navigation
20px / PrimaryRequired. Home only, not the property service.
briefcase-business
Services
Main navigation
20px / PrimaryRequired. Distinguish service index from individual services.
users-round
About
Main navigation
20px / PrimaryRequired. Could imply team; always label About.
contact
Contact page
Main navigation
20px / PrimaryRequired. Page destination, not an individual record.
menu
Open menu
Navigation control
24px / PrimaryException. Icon-only requires an accessible Open menu name.
arrow-left
Back
Previous view / step
20px / ActionRequired. Swap direction for logical Back in RTL.
arrow-right
Forward
Next view / step
20px / ActionRequired. Swap direction for logical Forward in RTL.
external-link
External destination
Link suffix
16px / InheritLink text. Keep orientation; disclose a new window separately.
chevron-down
Expand / collapse
Disclosure
20px / InheritTrigger text. Not download; expose expanded state.
x
Close
Dialog / panel action
24px / PrimaryException. Accessible Close name; never deletion.
Operational navigation and actions
Source iconMeaning and contextDefault size / roleVisible text and restriction
layout-dashboard
Dashboard
Operational navigation
20px / PrimaryRequired. Proposed context only.
folders
Records collection
Operational navigation
20px / PrimaryRequired. Collection, not individual document.
inbox
Requests
Operational navigation
20px / PrimaryRequired. Label Requests; not an email inbox here.
chart-column
Reports
Operational navigation
20px / PrimaryRequired. No analytics capability claim.
search
Search
Search field / action
20px / MutedField label. Icon-only submit needs an accessible Search name.
list-filter
Filter
Filter trigger
20px / PrimaryRequired. Label applied state and clear-filter action.
plus
Add
Create action
20px / InheritRequired. Name the object, such as Add record.
pencil
Edit
Edit action
20px / InheritRequired. Repeated icon-only exceptions must name the record.
trash
Delete
Destructive action
20px / ErrorRequired. Label Delete; confirmation / undo policy is deferred.
download
Download
File action
20px / InheritRequired. Name the file; no offline availability promise.
upload
Upload
File action
20px / InheritRequired. Not submit or send.
settings
Settings
Configuration
20px / PrimaryRequired. Not generic maintenance; no feature claim.
bell
Notifications
Notification control
20px / PrimaryRequired. Count / unread state needs accessible wording.
Feedback, property and contact
Source iconMeaning and contextDefault size / roleVisible text and restriction
circle-check
Success
Feedback / result
20px / SuccessRequired. Only after a stated outcome is confirmed.
info
Information
Informational feedback
20px / InformationRequired. Do not imply verification.
triangle-alert
Warning
Attention needed
20px / WarningRequired. Include reason and next action.
circle-x
Error
Failure feedback
20px / ErrorRequired. Distinct from plain x / close.
clock
Pending review
Workflow status
20px / MutedRequired. No countdown or SLA implication.
folder-open
Empty collection
Empty state
32px / MutedRequired. Use No records wording; not failure.
map-pin
Location
Place / contact detail
20px / PrimaryRequired. No unsupported exact address or GPS claim.
clipboard-check
Inspection
Operational concept
24px / PrimaryRequired. Label inspection; not certification.
file-text
Document
Individual document
20px / PrimaryRequired. Distinct from collection / records navigation.
boxes
Asset inventory
Operational concept
24px / PrimaryRequired. Label assets; could otherwise imply shipping.
list-checks
Tasks
Operational concept
24px / PrimaryRequired. Not project consultancy service shorthand.
mail
Email
Contact channel
20px / PrimaryChannel text. Verified email or explicit placeholder.
phone
Telephone
Contact channel
20px / PrimaryChannel text. Verified number or explicit placeholder.

Role key: Primary uses --text-primary; Muted uses --text-secondary; Action uses --action-primary-background on light surfaces. Inherit uses the tested parent text colour. Status roles use their existing foreground/tint pairs. Inverse applications require a suitable light foreground. Exception means only the named patterns described below.

Source: Iconography System Exploration & Validation v1.0, pages 2, 5–7 and 14–17.

Source-defined sizes

16px square
Supporting

Simple labelled link suffixes and supporting symbols only.

20px square
UI

Standard navigation, actions and feedback.

24px square
Control

Prominent controls and detailed operational concepts.

32px square
Service

Labelled services and empty states.

Keep the complete 24 × 24 design canvas and proportions. Restrict 16px to simple, labelled supporting roles. Buildings, clipboard details, boxes and settings are denser at small sizes; use 24px or 32px for detailed business concepts. Increase size or use text if recognition is weak, without drawing a special small variant.

A standalone control retains a minimum var(--target-min) 48 × 48px target. A centred 24px glyph has approximately 12px breathing room per side. The glyph size is not the click target.

Source: Iconography System Exploration & Validation v1.0, pages 3–4 and 15.

Stroke and visual weight

Native SVG geometry
PropertyWorking specification
CanvasviewBox 0 0 24 24; keep full proportions.
Outline2 SVG units at design size; round caps and joins; fill none.
ScalingUniform scaling, including strokes. No non-scaling-stroke override.
PrimitivesPreserve internal dots and tiny supplied shapes; do not force-fill glyphs.
SeparationSVG stroke geometry is independent of interface border widths and corner radii.
Geometric stroke widths before rasterisation
Rendered canvasSource stroke width
16pxabout 1.33px
20pxabout 1.67px
24px2px
32pxabout 2.67px
16px
20px
24px
32px
16px
20px
24px
32px

These are geometric widths, not constant 2 CSS-pixel strokes at every size. Numerical contrast does not prove that thin strokes remain clear after rasterisation.

Source: Iconography System Exploration & Validation v1.0, pages 3–4 and 8.

Optical balance and label alignment

Property management
Labelled service specimen
Accommodation
Labelled service specimen

Equal canvases create stable alignment, not identical visible silhouettes. Keep native optical positioning: do not stretch the bed, thicken only the building or shift individual nodes to equalise bounds. Leading icons use an 8px logical gap via --space-08, alongside the first line of wrapped labels. Centre the pair inside a flexible-height button wrapper.

Optical balance does not introduce a new spacing scale or authorise arbitrary per-icon offsets. The examples preserve source geometry.

Source: Iconography System Exploration & Validation v1.0, pages 3, 10–11 and 14.

Colour roles, contrast and states

Inline SVG strokes inherit semantic currentColor. Use charcoal on light surfaces, muted secondary for supporting metadata and white inside primary orange actions. Primary hover and pressed fills use --action-primary-hover and --action-primary-pressed; the white glyph and its meaning stay stable.

Source-calculated sRGB contrast, page 8
PairExisting tokens and resolved valuesSource ratioMeaningful icon check
Standard / white--text-primary #252827
--surface-primary #FFFFFF
14.88:1Meets 3:1 numerical threshold
Standard / warm white--text-primary #252827
--surface-secondary #F7F4ED
13.54:1Meets 3:1 numerical threshold
Muted / white--text-secondary #635F57
--surface-primary #FFFFFF
6.35:1Meets 3:1 numerical threshold
Muted / warm white--text-secondary #635F57
--surface-secondary #F7F4ED
5.78:1Meets 3:1 numerical threshold
Action / white--action-primary-background #B83D16
--surface-primary #FFFFFF
5.65:1Meets 3:1 numerical threshold
Inverse / charcoal--text-inverse #FFFFFF
--surface-inverse #252827
14.88:1Meets 3:1 numerical threshold
Disabled / stone--state-disabled-text #635F57
--state-disabled-background #EFEAE0
5.30:1Meets 3:1 numerical threshold
Success / tint--status-success #22633F
--status-success-surface #EDF7F0
6.55:1Meets 3:1 numerical threshold
Information / tint--status-information #245B8A
--status-information-surface #EDF4FC
6.45:1Meets 3:1 numerical threshold
Warning / tint--status-warning #855500
--status-warning-surface #FFF6DD
5.91:1Meets 3:1 numerical threshold
Error / tint--status-error #B42318
--status-error-surface #FFF0EE
5.93:1Meets 3:1 numerical threshold
Error / charcoal--status-error #B42318
--surface-inverse #252827
2.26:1Below 3:1; restricted
Decorative divider / white--border-default #DED8CC
--surface-primary #FFFFFF
1.42:1Below 3:1; restricted
Brand orange / white--brand-accent-primary #F15E2A
--surface-primary #FFFFFF
3.29:1Meets 3:1 numerical threshold

Independent implementation recalculation matches all 14 source ratios to two decimals. These numerical checks do not establish comprehensive WCAG conformance. Meaningful non-text cues target 3:1 against adjacent colours; normal text retains its own 4.5:1 requirement.

  • Decorative brand orange passes 3:1 on white but fails normal-text contrast. Use it for restrained decorative emphasis, not as the automatic icon colour or small white labels.
  • Error red alone fails on charcoal. Use the existing light error panel with an explicit message.
  • Decorative separators are not meaningful icon cues or functional control boundaries.
  • Inactive controls are exempt from the non-text criterion; JR Dream still prefers the readable disabled pair, without whole-control opacity.

The source selected recipe uses orange icons on subtle orange fill, with written/semantic state. The accepted documentation sidebar remains solid accessible orange with white text/icons, 4px radius, no marker or selected outline, aria-current="page", existing focus and minimum targets. That shell exception is not a general corporate website selection rule.

Source: Iconography System Exploration & Validation v1.0, pages 8–9 and 15.

Documentation interface specimens

These excerpts demonstrate source-supported combinations. They are not production-ready components, functioning business services or an approved application workflow.

Property management

Service metaphor specimen. Approved service copy is still required.

Facilities / maintenance

Service metaphor specimen. Approved service copy is still required.

Accommodation

Service metaphor specimen. Approved service copy is still required.

Project consultancy

Service metaphor specimen. Approved service copy is still required.

Documentation controls only. Adding a record changes a local count; no data is saved. The named menu button toggles the demonstration panel.

Static print representation of interactive specimens:

Add demonstration record: local action only, no persistence.
Open demonstration menu: named 48px target, 24px glyph.
Close demonstration panel: returns focus to its opener.

Read-only visual specimen; no search is performed.

Illustrative table and action vocabulary
ReferenceWritten statusAction vocabulary (static)
JRD-024 Pending review Edit record JRD-024
Information: this is a documentation example, not a verification.
Warning: this demonstration needs review. Check its label before reuse.
Error: the illustrative request could not be saved. Review the entry before retrying.

Static feedback is not announced as a live event. The Add demonstration record control above confirms a real local outcome through a success shape, text and polite status announcement. No notification dot, hue or glyph alone carries state.

Source: Iconography System Exploration & Validation v1.0, pages 5–7, 9 and 11–12.

Correct and incorrect applications

Source-supported usage comparisons
UseAvoid
One curated outline family with visible, role-specific wording.Mixed families, manually redrawn details or a building glyph as the JR Dream logo.
Native proportions and scaled 2-unit outlines.Stretching, decorative rotation, gradients, glyph shadows or forcing fill for selection.
32px labelled building-complex for the property service.House as property service, or an unverified visually similar replacement.
Wrench for labelled facilities / maintenance.Settings gear as generic maintenance; changing metaphors between card and navigation.
Plain x for Close; circle-x plus explicit error wording for failure.Using Close for Delete, or status colour as the only meaning.
Increase size or retain text when a detailed glyph is hard to recognise.Thickening selected paths or creating a custom 16px variant.

Source: Iconography System Exploration & Validation v1.0, pages 3–7 and 9–12.

Names, targets and keyboard access

With equivalent visible wording, hide the redundant SVG using aria-hidden="true" and focusable="false". If a standalone informational SVG is essential, use role="img" with an accessible name, such as an associated title; prefer visible text. Never announce both an image and an equivalent repeated label.

Icon-only exceptions use real buttons with accessible action names. A tooltip may supplement the name. Keep at least 48 × 48px targets, 8px between neighbouring targets, flexible heights and visible focus. Repeated actions should name their object; any later justified icon-only exception must name the record.

Preserve the local 2px focus ring plus 2px surface-coloured gap; inverse focus uses --focus-inverse on charcoal. Do not clip focus or remove required control boundaries. Selection needs semantic current/selected state and written or equivalent meaning. The shell retains its accepted exception above.

The source’s accessibility conventions appear on pages 8–10 and reference WCAG non-text contrast on page 17. The demonstrations apply those conventions; automated DOM and contrast checks do not replace screen-reader, native high-contrast, user recognition or comprehensive accessibility testing.

Source: Iconography System Exploration & Validation v1.0, pages 8–10 and 15–17.

Responsive, bilingual and physical contexts

Retain the documented size roles and allow labels and wrappers to grow. A narrower viewport does not justify shrinking detailed service symbols to 16px or compressing a target to its glyph. Use logical placement, an 8px gap and first-line alignment. Inter and IBM Plex Sans Arabic remain the established type families.

LTR technical direction specimen
Logical Back
RTL technical direction specimen
Logical Back

For RTL logical Back, choose arrow-right; for Forward, choose arrow-left. Resolve names semantically, not with a global SVG flip. External-link retains its orientation. Download, upload and chevron-down retain vertical direction; disclosures expose aria-expanded. Buildings, beds, tools, documents, statuses and charts retain native geometry. Technical English identifiers here are direction-isolated; no Arabic translation or sample prose is supplied.

Separate physical recipes, source page 13
ContextWorking recipe and limitation
Presentation service24pt square beside EN 22pt / AR 24pt body; the 2-unit stroke becomes 2pt.
Presentation sequenceLabelled Document / Inspection / Tasks using file-text / clipboard-check / list-checks. A sequence example, not a JR Dream workflow claim.
Document contact12pt square beside EN 11pt / AR 12.5pt body. Label channels and use verified values or explicit placeholders.
ExportPrefer vectors. If SVG import fails, use a high-resolution transparent PNG at intended physical size and inspect after import.
ValidationCSS pixels are not physical units. Native slide/document import and actual-size print/projector proofs remain pending.

Source: Iconography System Exploration & Validation v1.0, pages 10–14 and 16.

Developer and asset governance reference

Import only explicit approved meanings. This page reads its 40 verified assets at build time and alters only rendered size/accessibility attributes, retaining native paths and geometry. Originals, archive integrity and per-file hashes are recorded locally. Do not migrate existing React imports implicitly or mix source releases inside a new production inventory.

.icon-action {
  display: inline-flex;
  align-items: center;
  gap: var(--space-08);
  min-block-size: var(--target-min);
  padding: var(--space-12) var(--space-16);
  border-radius: var(--radius-control);
  color: var(--action-primary-text);
  background: var(--action-primary-background);
}
.icon-action > svg { flex: 0 0 auto; }
.icon-action > span { min-inline-size: 0; overflow-wrap: anywhere; }
.icon-action:hover { background: var(--action-primary-hover); }
.icon-action:active { background: var(--action-primary-pressed); }
/* For wrapped labels: top-align the pair and align the icon with
   the first line. Keep the 8px gap, not arbitrary node shifts. */
.label-pair { display: flex; align-items: flex-start; gap: var(--space-08); }
.icon-action:focus-visible {
  outline: var(--focus-width) solid var(--focus-ring);
  outline-offset: var(--focus-offset);
  box-shadow: 0 0 0 var(--focus-offset) var(--focus-gap);
}
@media (forced-colors: active) {
  .icon-action:focus-visible { outline-color: Highlight; box-shadow: none; }
}
<!-- Use the verified source SVG, not a manually redrawn path.
     Set its outer width/height to 20; retain viewBox="0 0 24 24",
     fill="none", stroke="currentColor", stroke-width="2" and round
     caps/joins. Do not set vector-effect="non-scaling-stroke". -->
<button type="button" class="icon-action">
  <!-- Verified plus.svg inline; aria-hidden="true" focusable="false" -->
  <span>Add record</span>
</button>
<!-- Icon-only: put aria-label="Open menu" on the real button.
     A tooltip is supplementary, never the sole accessible name. -->
<!-- Meaningful standalone SVG: role="img" and an accessible name.
     Prefer visible text; never duplicate an equivalent label. -->
// Semantic mapping, not a global transform on all SVGs.
const back = direction === "rtl" ? "arrow-right" : "arrow-left";
const forward = direction === "rtl" ? "arrow-left" : "arrow-right";
// external-link, download, upload and direction-neutral symbols stay intact.
// Load only verified, explicitly selected source assets.

/* A language-specific container also needs its appropriate lang attribute. */
.bilingual-row { display: flex; gap: var(--space-08); text-align: start; }
.bilingual-row > span { min-inline-size: 0; }
/* Isolate mixed identifiers with <bdi dir="ltr">JRD-024</bdi>.
   Set dir="rtl" on the actual Arabic container, once approved copy exists. */

Set --focus-ring and --focus-gap to the immediate local surface, including light content inside an inverse parent. Inline SVG supports inherited colour; an external image does not inherit parent currentColor into its SVG. Use a prepared export with meaningful alternative text, or empty alternative text for redundant imagery.

Future Figma masters use names such as Icon/Lucide/building-complex, retain 24 × 24 frames and original 2-unit strokes, and bind semantic colour variables. Scale vectors and strokes together; resizing only the frame is insufficient. One owner should review changes to meanings, all four sizes, contrast, labels, RTL and licence notices. No Figma library is created here.

For the future corporate website, deliberately select and pin compatible source/framework versions, retain notices and log mapping changes. The source’s proposed asset organisation is governance guidance, not an instruction to create another global icon utility in this repository.

Source: Iconography System Exploration & Validation v1.0, pages 2, 14–15 and 17.

Validation and approval status

The source study reports 40 genuine SVGs and 320 placements across four sizes and two surfaces, 14 colour calculations and static bilingual layout checks. That evidence belongs to the source study, not this website’s browser testing.

Task-specific checks and results are recorded in docs/stage-02.2f-implementation.md. The working source’s label vocabulary, service metaphors and meaning register remain subject to implementation testing and final company approval.

  • Actual-screen recognition at standard and high pixel density remains pending.
  • Competent Arabic/native-reader review, culturally appropriate meanings and real bilingual content remain pending. No unreliable PDF Arabic sample was reused.
  • Real devices, assistive technology, native forced colours, text-spacing overrides and browser zoom/reflow require further testing.
  • Figma import, physical print/projector output and final company approval remain pending.

Photography, graphics and architectural motifs have separate source PDFs and remain outside this stage. The original logo and all prior foundations are preserved. Documentation specimens do not establish production component readiness.

Review colour roles and geometry and focus guidance before reuse.

Source: Iconography System Exploration & Validation v1.0, pages 16–17.