This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Używaj znaczników w komponentach Label i węzłach tekstowych GUI, aby stosować zagnieżdżone style wizualne i efekty oraz odczytywać odnośniki i obrazy ze skryptów Lua.
go.set("#label", "text", "Score: <color=#69D2E7>1200</color>")
Możesz też zdefiniować w foncie nazwany styl obiektu wielokrotnego użytku i wybrać go w odnośniku:
local fontpath = "/fonts/ui.fontc"
font.set_style(fontpath, "menu_link", "<color=#69D2E7>")
go.set("#label", "text", "Open <link style=menu_link src=inventory>inventory</link>")
| Znacznik | Przeznaczenie | Przykład |
|---|---|---|
color |
Ustawia kolor wypełnienia glifu. | ![]() |
size |
Zmienia kształtowanie glifów i rozmiar układu. | ![]() |
gradient |
Stosuje statyczny lub animowany gradient kolorów. | ![]() |
ul |
Podkreśla tekst. | ![]() |
strike |
Przekreśla tekst. | ![]() |
outline |
Ustawia szerokość i kolor obrysu glifu. | ![]() |
shadow |
Dodaje cień do tekstu. | ![]() |
shake |
Stosuje animowane przesunięcie losowe. | ![]() |
wave |
Porusza tekstem w animowanej fali sinusoidalnej. | ![]() |
sprite |
Dodaje obiekt sprite w wierszu tekstu. | |
link |
Dodaje interaktywny obiekt odnośnika. | ![]() |
W nazwach znaczników i atrybutów wielkość liter ma znaczenie. Znacznik z parą otwierającą i zamykającą dotyczy widocznego tekstu UTF-32 wewnątrz niego. Obiekty sprite używają znaczników samozamykających.
<color=#69D2E7>colored text</color>
<ul pattern=dashed>underlined text</ul>
<outline size=2 color=#000000>outlined text</outline>
<shadow x=2 y=-2 color=#00000080>shadowed text</shadow>
<sprite src=images/icon.png width=2em/>
Wartości atrybutów mogą być zapisane bez cudzysłowów, jeśli nie zawierają białych znaków, lub ujęte w pojedyncze albo podwójne cudzysłowy. color i size obsługują skrótowy zapis pierwszej wartości oraz postać z nazwą value.
<color=#FF8800>Orange</color>
<color value="#FF8800">Orange</color>
<size='120%'>Larger</size>
Znaczniki trzeba zamykać w kolejności odwrotnej do ich otwierania. Wartości stylu wewnętrznego nadpisują tę samą właściwość stylu zewnętrznego. Różne właściwości łączą się ze sobą. Efekty fragmentów tekstu pozostają aktywne niezależnie, więc zagnieżdżone gradienty mnożą kolory, a zagnieżdżone efekty pozycji sumują przesunięcia.
<color=#FFCC00>
Gold <outline size=2 color=#000000>with a black outline</outline>
</color>
Dla zastrzeżonych znaków w widocznym tekście używaj &, ', >, < oraz ". Encje numeryczne nie są obecnie obsługiwane.
Znaczniki tekstu formatowanego stylizują otaczany fragment tekstu albo opisują obiekt, który można odczytać ze skryptu Lua. Znaczniki stylów używają odpowiadającego im znacznika zamykającego. Obiekt sprite jest samozamykający, natomiast link otacza tekst odnośnika.
color
Ustawia kolor wypełnienia glifu. Kolory mają postać #RRGGBB lub #RRGGBBAA. Prefiks z symbolem hasza jest wymagany; 0xFF0000 i FF0000 są nieprawidłowe. Wynik mnoży kolor bazowy etykiety lub mechanizmu renderującego.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
=color lub value=color |
Tak | Brak wartości domyślnej | Kolor wypełnienia w szesnastkowej postaci RGB lub RGBA. |
<color=#00FF00>Opaque green</color>
<color=#00FF0080>Half-alpha green</color>
#00FF00

#00FF0080

size
Zmienia kształtowanie glifów i rozmiar układu, a nie tylko skalę wierzchołków. Wartości względne zawsze odnoszą się do bazowego rozmiaru fontu układu. Nie łączą się kumulatywnie z otaczającym znacznikiem size.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
=size lub value=size |
Tak | Brak wartości domyślnej | Rozmiar bezwzględny, procent, wielokrotność rozmiaru bazowego lub przesunięcie ze znakiem względem rozmiaru bazowego, w jednej z poniższych postaci. |
| Postać | Przykład dla 32 px | Wynikowy rozmiar |
|---|---|---|
Sama liczba lub px |
24, 24px |
24 px |
| Procent rozmiaru bazowego | 120% |
38.4 px |
| Wielokrotność rozmiaru bazowego | 2em |
64 px |
| Przesunięcie ze znakiem względem rozmiaru bazowego | +4, -4 |
36 px, 28 px |
<size=24px>Exactly 24 pixels</size>
<size=120%>120% of the layout base size</size>
<size=2em>Twice the layout base size</size>
24px

120% z 32px

2em dla 32px

gradient
Gradient przyjmuje dokładnie jeden kompletny zestaw atrybutów. Łączenie zestawów lub pominięcie jednego z atrybutów jest nieprawidłowe.
| Tryb | Wymagane atrybuty | Interpolacja |
|---|---|---|
| Poziomy | left, right |
Interpoluje między dwoma kolorami w poziomie. |
| Pionowy | bottom, top |
Interpoluje między kolorem dolnym i górnym. |
| Czterech narożników | tl, tr, bl, br |
Interpoluje między kolorami czterech wierzchołków. |
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
left, right |
Dla trybu poziomego | Brak | Kolory końców w poziomie, w postaci #RRGGBB lub #RRGGBBAA. Oba muszą być obecne. |
bottom, top |
Dla trybu pionowego | Brak | Kolory końców w pionie. Oba muszą być obecne. |
tl, tr, bl, br |
Dla trybu czterech narożników | Brak | Kolory lewego górnego, prawego górnego, lewego dolnego i prawego dolnego narożnika. Wszystkie cztery muszą być obecne. |
fit |
Nie | span |
glyph próbkuje każdą pozycję ukształtowanego tekstu; span rozkłada gradient na całym tekście objętym znacznikiem. |
hz |
Nie | 0 |
Liczba pełnych cykli przepływu na sekundę w zakresie [0,); zero pozostawia gradient nieruchomy. |
direction |
Nie | forward |
forward lub reverse. Steruje kierunkiem przepływu, gdy hz jest różne od zera. |
Gdy fit jest pominięte, fit=span rozkłada gradient na całym tekście objętym znacznikiem. fit=glyph próbkuje niezależnie każdą pozycję ukształtowanego tekstu. Opcjonalne hz określa liczbę pełnych cykli animacji przepływu na sekundę; domyślna wartość zero pozostawia gradient nieruchomy. Powtarzająca się, lustrzanie odbita rampa kolorów płynie bez przerwy i zawija się bez skoku koloru. Domyślnie używane jest direction=forward; użyj direction=reverse, aby odwrócić przepływ.
<gradient left=#FF00FF right=#FFFFFF>Horizontal Gradient</gradient>
<gradient hz=0.25 fit=glyph bottom=#182848 top=#4B6CB7>Animated vertical glyphs</gradient>
<gradient hz=0.25 direction=reverse left=#FF0000 right=#0000FF>Reverse flow</gradient>
<gradient hz=0.25 direction=reverse fit=span left=#FF0000 right=#0000FF>One animated span color</gradient>
<gradient fit=glyph tl=#FF0000 tr=#00FF00 bl=#0000FF br=#FFFFFF>
Four corners
</gradient>
Poziomy

Pionowy

Cztery narożniki
fit=glyph

fit=span

Animowany
fit=glyph

fit=span

Kolory gradientu mnożą bieżący kolor wypełnienia. Gradient wewnątrz color=#808080 nie może więc utworzyć kanału jaśniejszego niż ten mnożnik bazowy.
ul
Rysuje podkreślenie, korzystając z metryk podkreślenia fontu, jeśli są dostępne. Znacznik nie ma osobnego koloru: linia dziedziczy wynikowy kolor wypełnienia, w tym gradienty poziome, pionowe i czterech narożników.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
pattern |
Nie | solid |
solid lub dashed. |
<ul>Solid underline</ul>
<ul pattern=dashed>Dashed underline</ul>
<ul><gradient left=#FF00FF right=#FFFFFF>Gradient line</gradient></ul>
Ciągłe

Przerywane

Gradient

strike
Rysuje linię przekreślającą otoczony tekst. Przyjmuje te same wartości pattern co ul i tak samo dziedziczy wynikowy kolor wypełnienia.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
pattern |
Nie | solid |
solid lub dashed. |
<strike>No longer available</strike>
<strike pattern=dashed>Dashed strikethrough</strike>
Ciągłe

Przerywane

outline
Ustawia szerokość obrysu, jego kolor lub oba parametry. Wymagany jest co najmniej jeden atrybut. Szerokość zero jawnie wyłącza obrys dla fragmentu tekstu.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
size |
Jeden z size/color | Dziedziczona; 0 dla domyślnego fontu |
Szerokość w jednostkach układu, zakres [0,). Przyrostki jednostek nie są akceptowane. |
color |
Jeden z size/color | Dziedziczony; #000000 dla domyślnej etykiety |
Jeden kolor obrysu w szesnastkowej postaci RGB (#RRGGBB) lub RGBA (#RRGGBBAA); składowa alfa steruje kryciem. |
<outline size=3 color=#000000>Black outline</outline>
<outline color=#FF0000>Keep inherited width, change color</outline>
<outline size=0>Disable inherited outline</outline>
Zewnętrzny czarny obrys

shadow
Dodaje twardy cień do otoczonego tekstu. Wymagany jest co najmniej jeden atrybut. Atrybuty pominięte przez zagnieżdżony znacznik zachowują wartości otaczającego cienia; atrybuty pominięte przez znacznik zewnętrzny zachowują bazowe wartości cienia fontu.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
color |
Nie | Dziedziczony; #000000 dla domyślnej etykiety |
Kolor cienia w postaci #RRGGBB lub #RRGGBBAA. |
x |
Nie | Dziedziczone; 0 dla domyślnego fontu |
Poziome przesunięcie cienia w jednostkach układu. Wartości dodatnie przesuwają go w prawo. |
y |
Nie | Dziedziczone; 0 dla domyślnego fontu |
Pionowe przesunięcie cienia w jednostkach układu. Wartości dodatnie przesuwają go w górę. |
blur |
Nie | Dziedziczone; 0 dla domyślnego fontu |
Promień rozmycia w jednostkach układu, zakres [0,). |
<shadow x=6 y=-6 blur=4 color=#000000A0>Shadow</shadow>
<shadow x=-2>Override only the horizontal offset</shadow>
x=6, y=-6, blur=4

Rozmycie cienia jest generowane i przechowywane w atlasie glifów. Fragment tekstu może żądać mniejszego rozmycia niż przygotowane w foncie; większe wartości są zachowywane w układzie, ale obecnie renderowanie używa największego rozmycia dostępnego w atlasie.
shake
Stosuje deterministyczne animowane przesunięcie losowe bez zmiany łamania wierszy ani granic układu. Efekt sam śledzi czas; skrypty nie muszą zmieniać tekstu etykiety w każdej klatce animacji.
| Atrybut | Wymagany | Domyślnie | Prawidłowe wartości | Znaczenie |
|---|---|---|---|---|
hz |
Nie | 20 | [0,) |
Liczba przejść do losowych pozycji docelowych na sekundę. Zero wstrzymuje efekt. |
amplitude |
Nie | 0.5 | [0,) |
Maksymalne przesunięcie w jednostkach układu. |
fit |
Nie | glyph |
glyph lub span |
glyph próbkuje dla każdej jednostki ukształtowanych glifów przesunięcie zachowujące spójność klastrów. span przesuwa cały tekst objęty znacznikiem jako jedną sztywną całość. |
<shake>Default shake</shake>
<shake hz=12 amplitude=0.8 fit=glyph>Glyph shake</shake>
<shake hz=12 amplitude=0.8 fit=span>Rigid span shake</shake>
fit=glyph

fit=span

wave
Porusza znakami w górę i w dół w postaci animowanej fali sinusoidalnej, nie zmieniając łamania wierszy ani granic układu. Układ kumuluje czas animacji podczas aktualizacji.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
amplitude |
Nie | 1 | Maksymalne przesunięcie pionowe w jednostkach układu, zakres [0,). |
hz |
Nie | 1 | Liczba pełnych cykli w czasie na sekundę, zakres [0,). Zero wstrzymuje falę. |
wavelength |
Nie | 6 | Liczba pozycji widocznego tekstu UTF-32 na pełny cykl przestrzenny, zakres [1,). Znaki kształtowane przez font wspólnie, takie jak znak bazowy i jego akcent łączący, poruszają się jako całość. |
fit |
Nie | glyph |
glyph rozkłada falę przestrzenną wzdłuż tekstu. span nadaje całemu fragmentowi tekstu objętemu znacznikiem wspólne pionowe przesunięcie sinusoidalne. |
direction |
Nie | forward |
forward zapewnia zwykły ruch. reverse odwraca kierunek przemieszczania się fali. |
<wave>Animated character wave</wave>
<wave amplitude=4 hz=3 wavelength=8 fit=glyph>Travelling wave</wave>
<wave amplitude=4 hz=3 wavelength=8 fit=glyph direction=reverse>Reverse travelling wave</wave>
<wave amplitude=4 hz=1 fit=span>Whole span moves together</wave>
fit=glyph

fit=span

sprite
Dodaje samozamykający obiekt sprite w bieżącej pozycji widocznego tekstu. Jego atrybuty są zachowywane jako metadane dla label.get_layout_objects() i gui.get_layout_objects().
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
id |
Nie | Generowany | Stały identyfikator, którego hasz trafia do pola id zwracanego obiektu układu. |
src |
Nie | Brak | Identyfikator zasobu sprite zdefiniowany przez aplikację, na przykład ścieżka obrazu lub atlasu w projekcie. |
animation |
Nie | Brak | Zdefiniowany przez aplikację identyfikator animacji w zasobie. |
width |
Nie | 1em |
Wynikowa szerokość obrazu. |
height |
Nie | 1em |
Wynikowa wysokość obrazu. |
| Dowolny inny atrybut | Nie | Nieobecny | Metadane zdefiniowane przez aplikację, zachowywane dla mechanizmu rozwiązywania obiektów i API obiektów układu. |
A <sprite src=engine/engine/content/builtins/assets/images/logo/logo_256.png/> logo
<sprite src=images/banner.png width=4em height=2em/>
<sprite src=images/icons.atlas animation=coin width=2em/>
Osadzony obraz po rozwiązaniu odwołania
![]()
Wymiary przyjmują dodatnie wartości w jednostkach układu bez przyrostka albo z px, em lub %. Zarówno em, jak i % używają bazowego rozmiaru fontu układu tekstu.
Każdy pominięty wymiar domyślnie przyjmuje niezależnie wartość 1em. Pominięcie obu tworzy obiekt 1em × 1em; podanie samej szerokości nie wyznacza automatycznie wysokości na podstawie proporcji zasobu.
Znacznik sprite jest jedynie symbolem zastępczym pozwalającym programiście umieścić w tym miejscu dowolny obiekt!
link
Opisuje zakres widocznego tekstu jako obiekt odnośnika. Otoczony tekst jest układany normalnie i domyślnie otrzymuje nazwany styl link. Komponenty Label i GUI wybierają link:hover i link:active w odpowiedzi na wejście, bez ponownego kształtowania tekstu. Wiadomości powstające podczas obsługi wejścia odnośnika opisano w sekcji wiadomości interakcji.
| Atrybut | Wymagany | Domyślnie | Znaczenie |
|---|---|---|---|
src |
Nie | Brak | Cel odnośnika zdefiniowany przez aplikację. Wartość jest zwracana jako ciąg znaków, bez automatycznej weryfikacji ani przechodzenia do celu. |
id |
Nie | Generowany | Stały identyfikator, którego hasz trafia do pola id zwracanego obiektu układu. |
style |
Nie | link |
Nazwany styl domyślny tekstu odnośnika. |
| Dowolny inny atrybut | Nie | Nieobecny | Metadane zdefiniowane przez aplikację, takie jak identyfikator, akcja, podpowiedź lub wartość analityczna. |
<ul><link id=website src=https://www.defold.com>www.defold.com</link></ul>
<link id=inventory style=menu_link action=open_inventory item=sword>Iron sword</link>
style=link

Komponent śledzi stan wskaźnika dla każdego odnośnika. Stosuje link:hover, gdy wskaźnik znajduje się nad odnośnikiem, i link:active, gdy wskaźnik jest naciśnięty. Gdy żaden z tych stanów nie występuje, komponent przywraca styl wskazany przez atrybut style odnośnika albo link, jeśli atrybut jest nieobecny.
Interakcja z odnośnikami korzysta ze zwykłego systemu wejścia Defold. Dodaj wiązanie Mouse Trigger dla MOUSE_BUTTON_LEFT, które włącza też obsługę pojedynczego dotyku, i przejmij fokus wejścia w skrypcie obiektu gry lub skrypcie GUI:
function init(self)
msg.post(".", "acquire_input_focus")
end
Szczegóły konfiguracji znajdziesz w sekcjach fokus wejścia oraz wejście myszy i dotyku.
Gdy komponent etykiety lub GUI otrzymuje wejście wskaźnika, odnośniki generują poniższe wiadomości. Wiadomości etykiety trafiają do obiektu gry, do którego należy komponent; wiadomości GUI trafiają do skryptu GUI.
| Wiadomość | Kiedy jest wysyłana |
|---|---|
text_object_hovered |
Wskaźnik wchodzi w obszar odnośnika. |
text_object_unhovered |
Wskaźnik opuszcza obszar odnośnika. |
text_object_clicked |
Naciśnięcie zostaje zwolnione nad tym samym odnośnikiem. |
Każda wiadomość zawiera następujące pola:
| Pole | Typ | Opis |
|---|---|---|
id |
hash |
Atrybut id obiektu lub jego wygenerowany identyfikator obiektu układu. |
type |
hash |
Typ obiektu układu, obecnie hash("link"). |
src |
string |
Zdefiniowana przez aplikację wartość atrybutu src obiektu lub pusty ciąg, jeśli atrybut jest nieobecny. |
function on_message(self, message_id, message)
if message_id == hash("text_object_clicked") then
assert(message.type == hash("link"))
print(message.id, message.src)
end
end
Każda kolekcja fontów zawiera nazwane style obiektów wpływające wyłącznie na renderowanie. Odnośnik używa stylu wskazanego przez atrybut style albo link, jeśli atrybut jest nieobecny. Nie ma ogólnego znacznika fragmentu tekstu <style>.
Defold dostarcza następujące ustawienia domyślne:
| Styl | Mnożnik koloru wypełnienia | Dekoracja |
|---|---|---|
link |
(0.10, 0.45, 0.90, 1.0) |
Ciągłe podkreślenie |
link:hover |
(0.30, 0.65, 1.00, 1.0) |
Brak |
link:active |
(0.05, 0.30, 0.70, 1.0) |
Brak |
Zdefiniuj styl za pomocą ciągu tekstowego zawierającego znaczniki otwierające. Znaczniki są niejawnie zamykane w odwrotnej kolejności, dlatego znaczniki zamykające i widoczny tekst są niedozwolone.
font.set_style("/fonts/ui.fontc", "link",
"<color=#2673ff><outline color=#000000 size=1>")
font.set_style("/fonts/ui.fontc", "link:hover",
"<color=#66b3ff><shake amplitude=0.2 hz=20>")
Znaczniki są stosowane od lewej do prawej, jak gdyby były zagnieżdżone wokół tekstu obiektu. Styl obiektu wybrany przez wywołującego jest stosowany po stylu domyślnym. Gdy kilka znaczników ustawia tę samą właściwość renderowania, późniejsza wartość nadpisuje wcześniejsze. Efekty są dodawane w kolejności od lewej do prawej.
Wywołanie font.set_style() zastępuje właściwości renderowania i efekty danego nazwanego stylu. Dekoracje zdefiniowane w zasobie pozostają niezmienione, dlatego ponowne zdefiniowanie link nie usuwa jego domyślnego podkreślenia. Nazwane style przyjmują znaczniki dotyczące tylko renderowania, takie jak color, outline, shadow, gradient, wave i shake. Znaczniki zmieniające układ, dekoracje i znaczniki obiektów są odrzucane.
Użyj label.get_layout_objects() lub gui.get_layout_objects(), aby pobrać obiekty sprite i link z ułożonego tekstu.
label.get_layout_objects()
objects = label.get_layout_objects(url)
| Argument | Typ | Opis |
|---|---|---|
url |
string, hash lub url |
Komponent etykiety do odczytania, na przykład "#label". |
gui.get_layout_objects()
objects = gui.get_layout_objects(node)
| Argument | Typ | Opis |
|---|---|---|
node |
node |
Węzeł tekstowy GUI do odczytania, na przykład gui.get_node("rich_text"). |
Obie funkcje zwracają nowo utworzoną tablicę zawierającą bieżące obiekty układu w kolejności źródłowej. Zwracają pustą tablicę, jeśli tekst nie zawiera znaczników obiektów. Ponieważ obiekty i ich atrybuty są kopiowane do Lua przy każdym wywołaniu, zapisz wynik w pamięci podręcznej i pobierz go ponownie po zmianie tekstu lub innej właściwości wpływającej na jego układ.
| Pole | Typ | Opis |
|---|---|---|
type |
string |
"sprite" lub "link". |
id |
hash |
Identyfikator obiektu używany w wiadomościach interakcji. |
text_offset |
number |
Pozycja w widocznym tekście liczona od zera, w punktach kodowych Unicode. Znaczniki są pomijane, a encje są liczone jako zdekodowane znaki. Dla obrazu jest to punkt wstawienia. |
text_length |
number |
Długość otoczonego widocznego tekstu w punktach kodowych Unicode. Obraz ma długość jeden ze względu na wstawiony znak zastępujący obiekt o punkcie kodowym U+FFFC. |
width |
number |
Wynikowa szerokość w jednostkach układu tekstu. Odnośniki mają obecnie szerokość zero. |
height |
number |
Wynikowa wysokość w jednostkach układu tekstu. Odnośniki mają obecnie wysokość zero. |
x |
number |
Pozioma pozycja lewego dolnego narożnika obiektu względem początku układu tekstu w lewym górnym rogu. |
y |
number |
Pionowa pozycja lewego dolnego narożnika obiektu względem początku układu tekstu w lewym górnym rogu. |
attributes |
table |
Wszystkie atrybuty znacznika jako pary klucz/wartość będące ciągami znaków. Wartości atrybutów zachowują postać źródłową, na przykład "2em". Skrótowa wartość bez nazwy jest przechowywana pod kluczem value. |
text_offset i text_length nie są przesunięciami bajtowymi UTF-8. Znak spoza ASCII, taki jak å lub 猫, zajmuje jedną pozycję.
local text = [[
Read the <link src=https://defold.com/manuals/ id=manual>manual</link>
or inspect <sprite src=images/info.png width=2em/> for more information.
]]
go.set("#label", "text", text)
local objects = label.get_layout_objects("#label")
for _, object in ipairs(objects) do
if object.type == "link" then
print("link", object.attributes.src)
print("visible range", object.text_offset, object.text_length)
print("position", object.x, object.y)
elseif object.type == "sprite" then
print("sprite", object.x, object.y, object.width, object.height)
pprint(object.attributes)
end
end
local gui_objects = gui.get_layout_objects(gui.get_node("rich_text"))
<outline size=2 color=#101820>
<gradient left=#FEE715 right=#FF6F61>Gradient title</gradient>
</outline>
Gradient mnoży tylko kolor wypełnienia; obrys zachowuje własny kolor.
<shake hz=20 amplitude=0.5>
This <gradient left=#FF00FF right=#FFFFFF>whole</gradient> text shakes!
</shake>
Zewnętrzny efekt pozycji dotyczy każdego glifu. Zagnieżdżony efekt koloru dotyczy tylko słowa „whole”.
<color=#FFFFFF><outline size=2 color=#000000>
Normal <color=#FF4040>warning</color> normal
</outline></color>
Kolor wewnętrzny zmienia wypełnienie, zachowując odziedziczoną szerokość i kolor obrysu.