Wbudowany Edytor Stylów to kompleksowe narzędzie, które pozwala na tworzenie, zarządzanie i stosowanie stylów UI w grach Roblox za pomocą kombinacji tokenów, arkuszy projektowych, reguł stylów i motywów.
Uzyskaj dostęp do Edytora Stylów za pomocą zakładki UI.

Po otwarciu kliknij przycisk Utwórz Projekt, aby wygenerować zestaw podstawowych stylów.

Tokeny stylów
Tokeny stylów, zdefiniowane przez atrybuty tokenu StyleSheet, reprezentują zmienne właściwości UI, które mogą być używane w różnych stylach i komponentach; na przykład, może istnieć wspólny kolor dla Frame.BackgroundColor3, TextLabel.TextColor3 i UIStroke.Color. Tokeny są porównywalne do zmiennych CSS.
Utwórz nowy arkusz stylów tokenów:
- W lewym kolumnie Edytora Stylów najedź na Tokeny, kliknij ⊕, a następnie wybierz Nowy Arkusz Tokenów.
- Zmień nazwę nowego arkusza na TokenSheet.

Po wybraniu nowego arkusza tokenów utwórz kilka tokenów, klikając Dodaj Token… w głównym panelu. Te tokeny będą używane w tym przewodniku zarówno dla reguł, jak i motywów.

Nazwa tokena Typ Wartość Złoty Color3 #ffcc00 Magenta Color3 #ff0099 Pomarańczowy Color3 #dd6030 Oswald Font Oswald Rad20 UDim 0, 20 RectL UDim2 0, 300, 0, 160 SquareL UDim2 0, 200, 0, 200 Text24 number 24 Text32 number 32 
Arkusze projektowe
Arkusz stylu projektowego agreguje reguły stylów i może być powiązany z drzewami DataModel, aby zastosować właściwości stylów do instancji UI. Tylko jeden StyleSheet może być zastosowany do danego drzewa, chociaż można używać motywów, aby zamieniać powiązane style w UI, co zostanie omówione później w tym przewodniku.
Wstępnie wypełniony arkusz projektowy o nazwie StyleSheet jest tworzony za pomocą przycisku Utwórz Projekt. Zawiera reguły klas dla wspólnych obiektów UI, takich jak Frame i TextLabel. Zawiera również dwie instancje StyleDerive, które dziedziczą tokeny i style z arkusza bazowego dla zastosowania w twoich własnych ustawieniach stylów.

Po posiadaniu arkusza projektowego możesz skonfigurować testowy kontener na ekranie, którego chcesz użyć z Edytorem Stylów, lub kontener w doświadczeniu, jeśli zajdzie taka potrzeba.
Najedź na StarterGui w Eksploratorze i wstaw ScreenGui.
Potwierdź, że nowa instancja StyleLink pojawia się pod ScreenGui z wartością StyleSheet ustawioną na arkusz projektowy StyleSheet.


Reguły stylów
Reguły stylów mają zastosowanie do każdej instancji, która pasuje do definicji Selector reguły, aby dopasować cechy takie jak nazwa klasy, tag instancji oraz relacje hierarchiczne. Na ogólnym poziomie, dopasowywanie i modyfikowanie instancji za pomocą definicji Selector działa poprzez:
- Selekcje klasy Roblox, które mają na celu wszystkie instancje danej klasy UI, na przykład Frame, ImageLabel, TextButton itd.
- Selekcje tagów instancji, które mają na celu konkretne obiekty UI otagowane przez CollectionService.
- Modyfikatory instancji (ui-modifier) stosowane poprzez fantomowe UIComponents, takie jak UICorner lub UIStroke.
- Selekcje stanu GuiObject, które odpowiadają jednemu z czterech wartości enum Enum.GuiState, takich jak Hover.
- Selekcja nazwy instancji zgodnie z wartością Instance.Name obiektu UI.
Reguła klasy
Selektor klasy stylu class ma na celu wszystkie instancje danej klasy UI. Następująca konfiguracja reguły stylów ustawia wszystkie Frames z jednolitą kolorystyką tła i rozmiarem.
W lewym kolumnie Edytora Stylów wybierz Frame w gałęzi UI Elements.

Połącz dwa wcześniej utworzone tokeny stylów z dwoma właściwościami Frame:
Właściwość Token stylu BackgroundColor3 $Magenta Size $SquareL - Kliknij Dodaj Właściwość… w głównym panelu i wybierz potrzebną właściwość. Pamiętaj, że możesz wpisać słowa kluczowe, aby szybciej znaleźć właściwości w rozwijanym menu.
- Zamiast wpisywać statyczną wartość, kliknij przycisk ⋮ i wybierz Połącz z Tokenem.
- Kliknij $, które pojawia się w polu wartości i wybierz odpowiedni token powiązany.


Wstaw nowy Frame do ScreenGui, który wcześniej utworzyłeś i powiązałeś. Zdefiniowane style powinny automatycznie się do niego zastosować.

Reguła tagu
Selektory tagów instancji tag mają na celu konkretne obiekty UI otagowane przez CollectionService. Następująca konfiguracja reguły ustawia styl dla TextButton otagowanego jako ButtonPrimary z niestandardowym kolorem tła, czcionką i rozmiarem tekstu.
W lewym kolumnie Edytora Stylów najedź na arkusz StyleSheet, kliknij przycisk ⋮ i przejdź do Nowy ⟩ Tag.

Zmień nazwę nowej reguły tagu na .ButtonPrimary (wprowadzając .).

Połącz trzy wcześniej utworzone tokeny stylów z trzema właściwościami TextButton:
Właściwość Token stylu BackgroundColor3 $Gold FontFace $Oswald TextSize $Text32 - Kliknij Dodaj Właściwość… w głównym panelu i wybierz potrzebną właściwość. Pamiętaj, że możesz wpisać słowa kluczowe, aby szybciej znaleźć właściwości w rozwijanym menu.
- Zamiast wpisywać statyczną wartość, kliknij przycisk ⋮ i wybierz Połącz z Tokenem.
- Kliknij $, które pojawia się w polu wartości i wybierz odpowiedni token powiązany.


Wstaw nowy TextButton do ScreenGui, który wcześniej stworzono i powiązano i otaguj go jako ButtonPrimary. Wygodny skrót jest następujący:
- Upewnij się, że nowy TextButton jest wybrany w Eksploratorze.
- Z wybraną regułą .ButtonPrimary w lewej kolumnie Edytora Stylów kliknij Zastosuj Tag w głównym panelu. Zdefiniowane style powinny automatycznie zostać zastosowane do przycisku.


Modyfikator UI
Selektory modyfikatorów instancji stosują fantomowe UIComponents, takie jak UICorner lub UIStroke, aby dalej stylizować obiekt. Następująca konfiguracja reguły ustawia styl dla TextLabel z niestandardowym rozmiarem tekstu i zaokrąglonymi rogami.
W lewym kolumnie Edytora Stylów wybierz TextLabel w gałęzi UI Elements.

Połącz wcześniej utworzony token stylu z właściwością TextSize:
- Kliknij Dodaj Właściwość… w głównym panelu i wybierz właściwość TextSize. Pamiętaj, że możesz wpisać słowa kluczowe, aby szybciej znaleźć właściwości w rozwijanym menu.
- Zamiast wpisywać statyczną wartość, kliknij przycisk ⋮ i wybierz Połącz z Tokenem.
- Kliknij $, które pojawia się w polu wartości i wybierz token $Text32.


Aby skonfigurować i zastosować zaokrąglone rogi do innych elementów, potrzebny jest pseudo obiekt. Aby go stworzyć:
W lewym kolumnie najedź na TextLabel, kliknij przycisk ⋮ i przejdź do Nowy ⟩ Pseudo Instancja ⟩ UICorner.

Nowa pseudo instancja UICorner pojawia się w lewej kolumnie pod elementem TextLabel.

Mając wybraną nową instancję UICorner w lewej kolumnie, połącz wcześniej utworzony token stylu z właściwością CornerRadius:
- Kliknij Dodaj Właściwość… w głównym panelu i wybierz właściwość CornerRadius.
- Zamiast wpisywać statyczną wartość, kliknij przycisk ⋮ i wybierz Połącz z Tokenem.
- Kliknij $, które pojawia się w polu wartości i wybierz token $Rad20.

Wstaw nowy TextLabel do ScreenGui, który wcześniej stworzono i powiązano. Stylizacje, które zdefiniowałeś, powinny automatycznie się do niego zastosować.

Reguła stanu
Selektory stanu GuiObject odpowiadają jednej z czterech wartości enum GuiState, takich jak Hover, co pozwala na automatyczne konfigurowanie zmian stylów dla interaktywnych stanów. Następująca konfiguracja reguły tworzy stan najechania o rotacji -4 stopnie dla wszystkich ImageButtons.
W lewym kolumnie Edytora Stylów wybierz ImageButton w gałęzi UI Elements.

Kliknij przycisk ⋮ i przejdź do Nowy ⟩ GuiState ⟩ Hover.

Nowa instancja modyfikatora Hover pojawia się pod elementem ImageButton w lewej kolumnie.

Z nowym modyfikatorem Hover zaznaczonym w lewej kolumnie kliknij Dodaj Właściwość… w głównym panelu i wybierz Rotation. Pamiętaj, że możesz wpisać słowa kluczowe, aby szybciej znaleźć właściwości w rozwijanym menu.
Wpisz -4 w polu wartości.

Wstaw nowy ImageButton do ScreenGui, który wcześniej stworzono i powiązano. Kiedy najedziesz myszką na przycisk w widoku, powinien on obrócić się o 4 stopnie w lewo.

Zapytania stylów
Zapytania stylów, podobne do zapytania o pojemniki i media CSS, pozwalają na zastosowanie logiki warunkowej do UI w zależności od rozmiaru pojemnika, typu wejścia lub innych czynników. Edytor Stylów zapewnia uproszczony przepływ pracy do tworzenia zarówno logiki zapytań (warunków), jak i wynikowych stylów jako zintegrowanego zestawu.
Wbudowane zapytania
Niektóre warunki StyleQuery są bardzo powszechne, takie jak zmiana właściwości w zależności od ViewportDisplaySize. Aby to uprościć, Edytor Stylów zawiera wbudowane zapytania, które pozwalają na tworzenie reguł warunkowych bez potrzeby posiadania pseudo- lub faktycznej instancji StyleQuery; zamiast tego, używasz po prostu reguły zapytania z wcześniej zdefiniowanym selektorem, takim jak ViewportDisplaySizeSmall.
Poniższe kroki demonstrują, jak wygenerować wbudowane zapytania dla TextLabel, aby obsłużyć rozmiary widoków Small, Medium i Large.
W lewym kolumnie Edytora Stylów najedź na TextLabel, kliknij przycisk ⋮ i przejdź do Nowy ⟩ StyleQuery ⟩ Builtin ⟩ ViewportDisplaySize.

To tworzy folder Zapytania pod regułą TextLabel, zawierający trzy reguły zapytań:
- @ViewportDisplaySizeLarge — Zdefiniuj właściwości, które mają zastosowanie, gdy widok ma Large.
- @ViewportDisplaySizeMedium — Zdefiniuj właściwości, które mają zastosowanie, gdy widok ma Medium.
- @ViewportDisplaySizeSmall — Zdefiniuj właściwości, które mają zastosowanie, gdy widok ma Small.

Kliknij Dodaj Właściwość… pod każdą regułą zapytania i ustaw konkretne łańcuchi Text, które powinny być wyświetlane, gdy to zapytanie jest aktywne:
Aby zweryfikować zapytania, użyj Emulatora Urządzeń, aby przetestować, jak UI reaguje na różne rozdzielczości na trzech różnych urządzeniach:
Zmień Urządzenie w Emulatorze Urządzeń, aby zobaczyć tekst zmieniający się w czasie rzeczywistym.
Niestandardne zapytanie
Możesz dodać zapytanie stylu do każdej istniejącej reguły, aby stworzyć responsywne UI, które dostosowuje się do swojego pojemnika. Poniższa konfiguracja ustawia TextLabel, aby automatycznie zmieniać swój wygląd tylko wtedy, gdy rozszerza się do szerokości 400 pikseli lub więcej.
W lewym kolumnie Edytora Stylów najedź na TextLabel, kliknij przycisk ⋮ i przejdź do Nowy ⟩ StyleQuery ⟩ Custom.

Ta akcja tworzy folder Zapytania pod regułą TextLabel, zawierający dwa powiązane elementy:
- ::StyleQuery reguła pseudo-instancji, gdzie definiujesz Warunki.
- @StyleQuery reguła, gdzie definiujesz Właściwości, które mają zastosowanie, gdy te warunki są spełnione.

Wybierz regułę główną TextLabel w głównym panelu i zdefiniuj następujące domyślne właściwości:
Właściwość Wartość BackgroundColor3 $Magenta Text Domyślny Tekst Wybierz regułę ::StyleQuery w głównym panelu, kliknij Dodaj Warunek…, a następnie skonfiguruj:
Warunek Wartość MinSize 400, 0 Wybierz regułę @StyleQuery w głównym panelu i ustaw właściwości, które powinny mieć zastosowanie, gdy zapytanie jest aktywne:
Właściwość Wartość BackgroundColor3 $Gold Text Duży Tekst
Aby zweryfikować zapytanie, możesz ręcznie zmienić rozmiar TextLabel w widoku.
Dostosuj jego szerokość, aby zobaczyć, jak styl zmienia się w czasie rzeczywistym.
Gdy szerokość TextLabel jest mniejsza, warunek MinSize nie jest spełniony i etykieta używa domyślnego koloru tła i tekstu.

Przejścia stylów
Przejścia stylów, porównywalne do przejść CSS, pozwalają na płynne zmienianie wartości właściwości w określonym czasie.
Domyślne
Aby płynnie zmieniać wiele właściwości UI z tymi samymi parametrami, możesz ustawić domyślne przejście, które ma zastosowanie do wszystkich właściwości, chyba że inne przejście jest wyraźnie ustawione dla konkretnej właściwości.
Wybierz TextButton w gałęzi UI Elements, a następnie w głównym panelu dodaj trzy nowe właściwości z następującymi wartościami:
Właściwość Wartość AutoButtonColor false BackgroundColor3 #335FFF Rotation 0 
Najedź na wiersz główny TextButton, kliknij przycisk ⋮ i przejdź do Nowy ⟩ GuiState ⟩ Hover.

Dla nowego modyfikatora Hover dodaj dwie nowe właściwości jako cele dla stanu najechania.
Właściwość Wartość BackgroundColor3 #33AAFF Rotation -5 
Wstaw nowy TextButton do ScreenGui, który wcześniej stworzono i powiązano. Kiedy najedziesz myszką na przycisk w widoku, powinien on stopniowo jaśnieć i obracać się o 5 stopni w lewo.

Połączone z tokenami
Aby ponownie wykorzystać zachowania przejścia w różnych regułach, możesz zdefiniować tokeny reprezentujące typ danych TweenInfo. Następująca konfiguracja reguły tworzy stan najechania, aby przejść wszystkie TextButtons do/od -5 stopni rotacji i jaśniejszego koloru tła.
Jeśli jeszcze tego nie zrobiłeś, utwórz arkusz tokenów o nazwie TokenSheet.

Wybierz TextButton w gałęzi UI Elements, a następnie w głównym panelu dodaj trzy nowe właściwości z następującymi wartościami:
Właściwość Wartość AutoButtonColor false BackgroundColor3 #335FFF Rotation 0 
Dla każdej nowej właściwości, z wyjątkiem AutoButtonColor, najedź na jej wiersz, kliknij przycisk ⋮ i wybierz Wstaw ⟩ Przejście.

Najedź na nowy wiersz Przejście pod każdą właściwością, kliknij przycisk ⋮, a następnie wybierz Połącz z Tokenem. Następnie, zamiast wprowadzać statyczną wartość, kliknij $, które pojawia się w polu wartości i wybierz odpowiedni token przejścia.

Przejście właściwości Token przejścia BackgroundColor3 $CubicOut Size $QuadInOut 
Najedź na wiersz główny TextButton, kliknij przycisk ⋮ i przejdź do Nowy ⟩ GuiState ⟩ Hover.

Dla nowego modyfikatora Hover dodaj dwie nowe właściwości jako cele dla stanu najechania.
Właściwość Wartość BackgroundColor3 #33AAFF Rotation -5 
Wstaw nowy TextButton do ScreenGui, który wcześniej stworzono i powiązano. Kiedy najedziesz myszką na przycisk w widoku, powinien on stopniowo jaśnieć i obracać się o 5 stopni w lewo.

Motywy stylów
Motywy stylów składają się z zestawów specyficznych tokenów, które mogą być zamieniane, na przykład tokeny kolorystyczne, które definiują "jasny" i "ciemny" motyw.
Tworzenie motywów
Dla elastyczności motywy są organizowane w foldery. Chociaż jeden folder może wystarczyć do większości celów, możesz dowolnie organizować motywy w folderach, takich jak "kolory" lub "czcionki".
Utwórz nowy folder motywów:
- W lewym kolumnie Edytora Stylów najedź na Motywy, kliknij ⊕, a następnie wybierz Nowy Motyw.
- Zmień nazwę nowego elementu Folder na Ogólne.

Utwórz nowy arkusz stylów motywu:
- Najedź na nowy folder Ogólne, kliknij przycisk ⋮ oraz wybierz Nowy Arkusz Stylów Motywu.
- Zmień jego nazwę na MotywA.

Tokeny motywów
Gdy motyw jest skonstruowany, możesz powiązać jego tokeny z różnymi właściwościami obiektów UI, takimi jak BackgroundColor3 w TextButton. Arkusze motywów muszą używać wspólnego zestawu tokenów, aby działały prawidłowo.
Gdy MotywA jest zaznaczony w lewej kolumnie Edytora Stylów:
Połącz trzy wcześniej utworzone tokeny stylów z trzema nowymi tokenami motywu:
Token Motywu Token Stylu BackColor $Gold ButtonFont $Oswald ButtonTextSize $Text32 - Kliknij Dodaj Token… w głównym panelu i wprowadź nazwę tokena motywu.
- Kliknij $, które pojawia się w polu wartości i wybierz powiązany token stylu.

W lewej kolumnie Edytora Stylów wybierz TextButton w gałęzi UI Elements.

Połącz tokeny motywu z trzema nowymi właściwościami TextButton:
Właściwość Token Motywu BackgroundColor3 $BackColor FontFace $ButtonFont TextSize $ButtonTextSize - Kliknij Dodaj Właściwość… w głównym panelu i wybierz potrzebną właściwość.
- Zamiast wprowadzać statyczną wartość, kliknij przycisk ⋮ i wybierz Połącz z Tokenem.
- Kliknij $, które pojawia się w polu wartości i wybierz odpowiedni token motywu.


Duplikacja motywów
Gdy masz ogólnie ustalony motyw, możesz go duplikować i zmienić różne tokeny, aby zdefiniować unikalny styl motywu.
W lewej kolumnie Edytora Stylów najedź na motyw MotywA, kliknij przycisk ⋮ i wybierz Duplikuj.
Zmień nazwę skopiowanego motywu na MotywB.

Połącz dwa tokeny motywu z dwoma różnymi tokenami stylów:
Token Motywu Token Stylu BackColor $Magenta ButtonTextSize $Text24 - Kliknij przycisk ⋮ obok pola wartości właściwości i wybierz Odłącz Token.
- Kliknij ponownie ⋮ i wybierz Połącz Token.
- W polu wartości kliknij $ i wybierz nowy powiązany token stylu.

Zamiana motywów
Po posiadaniu wielu motywów możesz przełączać się między nimi za pomocą folderu motywów lub za pomocą skryptu, jak opisano w SetDerives().
W lewej kolumnie Edytora Stylów wybierz folder Ogólne w gałęzi Motywy.
W głównym panelu przełączaj między motywami, używając przycisków radiowych.




