منتجات iOS
المسار: dist/ios/Sources/LhUITokens/LhTokens.swift وLhDarkTokens.swift، ويُضاف LhShadow.swift عند وجود رموز ظلال
دليل الوحدة: Sources/LhUITokens/ (اصطلاح أدلة SwiftPM)
البنية
Section titled “البنية”الأسلوب المعتاد لمساحات الأسماء في Swift (تعدادات بدون نسخ): public enum متداخل + public static let:
import SwiftUIimport CoreGraphics
public enum LhTokens { public enum Button { public static let borderRadius = CGFloat(2) // زاوية انحناء الزر تتبع زاوية الانحناء العامة public static let borderWidth = CGFloat(1) public enum FontSize { public static let large = CGFloat(16) public static let medium = CGFloat(14) } public enum Height { public static let medium = CGFloat(40) // ارتفاع الزر المتوسط (الافتراضي) } }}مراسلات التسمية
Section titled “مراسلات التسمية”| مسار الرمز | العضو في Swift |
|---|---|
button.height.medium |
LhTokens.Button.Height.medium |
color.primary.default |
LhTokens.Color.Primary.default`` |
zIndex.modal |
LhTokens.ZIndex.modal |
تهريب الكلمات المفتاحية
Section titled “تهريب الكلمات المفتاحية”عند تطابق اسم العضو مع كلمة مفتاحية في Swift تُضاف علامات الاقتباس الخلفية، وإلا فلن تُترجم المنتجات:
public enum Primary { public static let `default` = SwiftUI.Color(red: 0.169, green: 0.298, blue: 0.486) public static let `repeat` = ...}يعمل التهريب على أسماء الأعضاء فقط — فأسماء أنواع التعدادات تمر عبر pascalCase (تكبير الحرف الأول) فلا تتصادم مع الكلمات المفتاحية. راجع SWIFT_KEYWORDS وswiftMemberName() في ios.ts.
الوحدات والقيم الحرفية
Section titled “الوحدات والقيم الحرفية”| نوع الرمز | القيمة الحرفية في Swift |
|---|---|
| اللون (غير شفاف) | SwiftUI.Color(red: 0.169, green: 0.298, blue: 0.486) |
| اللون (شبه شفاف) | نفس ما سبق + .opacity(0.400) |
| البعد | CGFloat(40) |
| النسبة المئوية | 0.500 // 50% (كسر، يُحوَّل وفق حجم الحاوية) |
| المدة | 0.200 // 0.2s (ثانية) — رسوم SwiftUI المتحركة تعمل بالثواني، ويتم التحويل في وقت البناء (ملي ثانية ÷ 1000، مع الاحتفاظ بـ 3 خانات عشرية) |
| بيزيه | (x1: 0.4, y1: 0, x2: 0.2, y2: 1) // نقطتا تحكم بيزيه، ويبني الطرف easing بنفسه |
| الظل | LhShadow(color:opacity:radius:x:y:) |
| القيم / السلاسل | كما هي / JSON.stringify |
LhShadow.swift
Section titled “LhShadow.swift”لا يملك SwiftUI نوع ظل مركب، لذلك يُولَّد هيكل حامل (قالب ثابت، بلا محتوى رموز):
public struct LhShadow { public let color: SwiftUI.Color public let opacity: Double public let radius: CGFloat public let x: CGFloat public let y: CGFloat // memberwise init}لا يُولَّد إلا عند وجود رموز من نوع type: shadow.
الوضع الداكن
Section titled “الوضع الداكن”public enum LhDarkTokens مستقل:
public enum LhDarkTokens { public enum Color { public static let focus = SwiftUI.Color(red: 0.498, green: 0.651, blue: 0.851) public static let selected = SwiftUI.Color(red: 0.694, green: 0.757, blue: 0.847) // …بقية المفاتيح المغطاة }}تبقى المفاتيح غير المغطاة في الوضع الداكن تأخذ قيمها من LhTokens.
طريقة الاستهلاك
Section titled “طريقة الاستهلاك”يُدخل مستودع iOS الدليل dist/ios/ عبر SPM كتبعية مسار محلية أو كحزمة منشورة، ويكفي استيراد import LhUITokens.
Copyright © 2024-2026 FengMo WenXue