أنماط الواجهة

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

أنماط الواجهة هي حل من Roblox لأوراق الأنماط، مشابه لـ CSS، الذي يتيح لك إعلان وتطبيق التعديلات على خصائص مثيلات واجهة المستخدم عالميًا. يعد هذا الدعم على مستوى المحرك الأساس لـ محرر الأنماط وعملية توكين الشاملة.

المفاهيم

تطبق قواعد الأنماط (جزء من StyleSheet) على كل مثيل يتطابق مع تعريف Selector الخاص بالقاعدة لمطابقة سمات مثل اسم الفئة، اسم المثيل، وعلاقات التسلسل الهرمي. راجع توثيق Selector لمزيد من التفاصيل.

تمثل رموز الأنماط، المعرفة من خلال السمات لأوراق أنماط الرموز StyleSheet، متغيرات خصائص واجهة المستخدم التي يمكن استخدامها عبر الأنماط والمكونات، على سبيل المثال لون مشترك لـ Frame.BackgroundColor3، TextLabel.TextColor3، وUIStroke.Color. تعتبر الرموز مشابهة لـ المتغيرات في CSS.

تشمل سمات الأنماط، المعرفة من خلال السمات لورقة نمط السمة StyleSheet، مجموعات من الرموز المحددة التي يمكن تبديلها، مثل رموز الألوان التي تحدد "سمة" و"سمة داكنة". يجب أن تحتوي السمات ذات الصلة على نفس مجموعة الرموز للعمل بشكل صحيح.

تسمح لك استعلامات الأنماط بتطبيق الأنماط بشكل شرطي بناءً على سياق واجهة المستخدم أو بيئتها. تعتبر هذه مقارنة لـ الاستعلامات الخاصة بالوعاء واستعلامات الوسائط، مما يمكّن واجهة المستخدم من التكيف مع حجم الشاشة، أنواع الإدخال، أو إعدادات وصول المستخدم.

انتقال القواعد

يرتبط مثيل StyleLink ورقة نمط StyleSheet وقواعدها المرتبطة بـ ScreenGui الأب وجميع GuiObjects الموجودة فيها. يمكن أن تطبق ورقة نمط واحدة فقط على شجرة معينة.

تعريفات التحديد

على مستوى عالٍ، يعمل مطابقة المثيل والتعديل عبر تعريف Selector للقاعدة من خلال:

يظهر الإعداد التالي كيف أن رموز الحجم واللون، سمة، ومحدد الفئة "Frame" تنتج Frame باللون الأرجواني بحجم 200×200 بكسل.

محدد فئة واجهة المستخدم

local CollectionService = game:GetService("CollectionService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local screenGui = script.Parent
-- الرموز
local tokens = Instance.new("StyleSheet")
tokens.Name = "Tokens"
tokens.Parent = ReplicatedStorage
tokens:SetAttribute("SquareS", UDim2.fromOffset(50, 50))
tokens:SetAttribute("SquareM", UDim2.fromOffset(100, 100))
tokens:SetAttribute("SquareL", UDim2.fromOffset(200, 200))
tokens:SetAttribute("Fit", UDim2.fromScale(1, 1))
tokens:SetAttribute("Magenta", Color3.fromHex("FF0099"))
tokens:SetAttribute("Gold", Color3.fromHex("FFCC00"))
tokens:SetAttribute("Aqua", Color3.fromHex("0093F0"))
-- ThemeA
local themeA = Instance.new("StyleSheet")
themeA.Name = "ThemeA"
themeA.Parent = ReplicatedStorage
local tokensDerive = Instance.new("StyleDerive")
tokensDerive.StyleSheet = tokens -- اشتقاق الرموز العالمية
tokensDerive.Parent = themeA
themeA:SetAttribute("FrameSize", "$SquareM")
themeA:SetAttribute("FrameColor", "$Aqua")
-- ThemeB
local themeB = Instance.new("StyleSheet")
themeB.Name = "ThemeB"
themeB.Parent = ReplicatedStorage
local tokensDerive = Instance.new("StyleDerive")
tokensDerive.StyleSheet = tokens -- اشتقاق الرموز العالمية
tokensDerive.Parent = themeB
themeB:SetAttribute("FrameSize", "$SquareL")
themeB:SetAttribute("FrameColor", "$Magenta")
-- DesignSheet
local designSheet = Instance.new("StyleSheet")
designSheet.Name = "DesignSheet"
designSheet.Parent = ReplicatedStorage
local themeDerive = Instance.new("StyleDerive")
themeDerive.StyleSheet = themeB -- اشتقاق من ThemeB
themeDerive.Parent = designSheet
-- ربط DesignSheet بـ ScreenGui
local styleLink = Instance.new("StyleLink")
styleLink.StyleSheet = designSheet
styleLink.Parent = screenGui
-- تكوين القاعدة
local rule = Instance.new("StyleRule")
rule.Selector = "Frame" -- محدد الفئة
rule.Parent = designSheet
-- ضبط خصائص القاعدة
rule:SetProperties({
["BackgroundColor3"] = "$FrameColor",
["Size"] = "$FrameSize",
["BorderSizePixel"] = 0
})
local frame = Instance.new("Frame")
frame.Parent = screenGui

الخصائص المعدلة

تكون خصائص المثيل المتأثرة بالأنماط معلمة بـ في نافذة الخصائص، والتأشير على خاصية متأثرة يظهر أي نمط يؤثر عليها. على سبيل المثال، إذا أخبر أسلوب قاعدة "إطار" مصنّف بتعيين AnchorPoint لـ 0.5, 0.5، فسوف تظهر خاصية الكائن تلك القيمة الافتراضية لـ 0, 0 لكن AnchorPoint الفعلي الخاص بها سيستخدم القيمة المنمقة للقاعدة.

عندما يتم تعديل قيمة خاصية افتراضية أو ذات طابع أكثر لمثيل واجهة مستخدم معين، فإنها تصبح بالخط العريض للإشارة إلى قيمة مفرطة. على سبيل المثال — بافتراض قيمة افتراضية لـ AnchorPoint بقيمة 0, 0 — فإن تعيين تلك الخاصية إلى 1, 1 لمثيل معين يكشف عن تجاوز بخط عريض:

بالنسبة لأي قيمة خاصية معاد تعريفها، يمكنك النقر بزر الفأرة الأيمن عليها في نافذة الخصائص واختيار إعادة تعيين إلى الافتراضي لإعادتها إلى القيمة المنمقة، أو إلى القيمة الافتراضية للخاصية إذا لم يتم تنسيقها.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.