[NUI] Support Layout property by ViewStyle
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI.Components / Theme / DefaultThemeCommon.cs
1 /*
2  * Copyright(c) 2022 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #if !PROFILE_WEARABLE
18
19 using System.Diagnostics.CodeAnalysis;
20 using Tizen.NUI.BaseComponents;
21
22 namespace Tizen.NUI.Components
23 {
24     // It is a C# version of res/Tizen.NUI.Components_Tizen.NUI.Theme.Common.xaml
25     internal partial class DefaultThemeCreator : IThemeCreator
26     {
27         /// <summary>
28         /// The base theme description.
29         /// </summary>
30         [SuppressMessage("Microsoft.Reliability", "CA2000: Dispose objects before losing scope", Justification = "The responsibility to dispose the object is transferred to the theme object.")]
31         public Theme Create()
32         {
33             var theme = new Theme()
34             {
35                 Id = Tizen.NUI.DefaultThemeCreator.DefaultId,
36                 Version = Tizen.NUI.DefaultThemeCreator.DefaultVersion
37             };
38
39             // Button base style
40             theme.AddStyleWithoutClone("Tizen.NUI.Components.Button", new ButtonStyle()
41             {
42                 Size = new Size(252, 48),
43                 ItemSpacing = new Size2D(8, 8),
44                 CornerRadius = 12.0f,
45                 ItemHorizontalAlignment = HorizontalAlignment.Center,
46                 ItemVerticalAlignment = VerticalAlignment.Center,
47                 BackgroundColor = new Selector<Color>()
48                 {
49                     Normal = new Color(1.0f, 0.384f, 0.0f, 1),
50                     Pressed = new Color(0.85f, 0.325f, 0.0f, 1),
51                     Focused = new Color(1.0f, 0.827f, 0.624f, 1),
52                     Selected = new Color(0.624f, 0.239f, 0.0f, 1),
53                     Disabled = new Color(0.792f, 0.792f, 0.792f, 1),
54                 },
55                 Text = new TextLabelStyle()
56                 {
57                     TextColor = new Color("#FDFDFD"),
58                     PixelSize = 24,
59                 },
60                 Layout = new LinearLayout()
61                 {
62                     LinearOrientation = LinearLayout.Orientation.Horizontal,
63                     HorizontalAlignment = HorizontalAlignment.Center,
64                     VerticalAlignment = VerticalAlignment.Center,
65                     CellPadding = new Size2D(8, 8),
66                 },
67             });
68
69             // CheckBox base style
70             theme.AddStyleWithoutClone("Tizen.NUI.Components.CheckBox", new ButtonStyle()
71             {
72                 Padding = new Extents(8, 8, 8, 8),
73                 ItemSpacing = new Size2D(16, 16),
74                 ItemHorizontalAlignment = HorizontalAlignment.Center,
75                 ItemVerticalAlignment = VerticalAlignment.Center,
76                 Icon = new ImageViewStyle()
77                 {
78                     Size = new Size(32, 32),
79                     ResourceUrl = new Selector<string>()
80                     {
81                         Normal = FrameworkInformation.ResourcePath + "IoT_check_off.png",
82                         Pressed = FrameworkInformation.ResourcePath + "IoT_check_off_p.png",
83                         Disabled = FrameworkInformation.ResourcePath + "IoT_check_off_d.png",
84                         Focused = FrameworkInformation.ResourcePath + "IoT_check_off_f.png",
85                         Selected = FrameworkInformation.ResourcePath + "IoT_check_on.png",
86                         SelectedPressed = FrameworkInformation.ResourcePath + "IoT_check_on_p.png",
87                         SelectedFocused = FrameworkInformation.ResourcePath + "IoT_check_on_f.png",
88                         DisabledSelected = FrameworkInformation.ResourcePath + "IoT_check_on_d.png",
89                     },
90                 },
91                 Text = new TextLabelStyle()
92                 {
93                     TextColor = new Color("#090E21"),
94                     PixelSize = 24,
95                 }
96             });
97
98             // Popup base style
99             theme.AddStyleWithoutClone("Tizen.NUI.Components.Popup", new PopupStyle()
100             {
101                 Size = new Size(500, 280),
102                 BackgroundColor = new Color(0.9f, 0.9f, 0.9f, 1),
103                 ImageShadow = new ImageShadow()
104                 {
105                     Url = FrameworkInformation.ResourcePath + "nui_component_default_popup_shadow.png",
106                     Border = new Rectangle(24, 24, 24, 24),
107                     Extents = new Vector2(48, 48)
108                 },
109                 Title = new TextLabelStyle()
110                 {
111                     PointSize = 16,
112                     Padding = new Extents(20, 20, 20, 20),
113                 },
114                 Buttons = new ButtonStyle()
115                 {
116                     Size = new Size(0, 80),
117                     CornerRadius = 0,
118                     BackgroundColor = new Selector<Color>()
119                     {
120                         Normal = new Color(1, 1, 1, 1),
121                         Pressed = new Color(1, 1, 1, 0.5f),
122                     },
123                     Overlay = new ImageViewStyle()
124                     {
125                         BackgroundColor = new Selector<Color>()
126                         {
127                             Pressed = new Color(0, 0, 0, 0.1f),
128                             Other = new Color(1, 1, 1, 0.1f),
129                         },
130                     },
131                     Text = new TextLabelStyle()
132                     {
133                         TextColor = new Color(0.05f, 0.63f, 0.9f, 1),
134                     }
135                 }
136             });
137
138             // Progress base style
139             theme.AddStyleWithoutClone("Tizen.NUI.Components.Progress", new ProgressStyle()
140             {
141                 Size = new Size(508, 16),
142                 Track = new ImageViewStyle()
143                 {
144                     CornerRadius = 8.0f,
145                     BackgroundColor = new Selector<Color>()
146                     {
147                         Normal = new Color(0.82f, 0.31f, 0.0f, 0.1f),
148                         Disabled = new Color(0.82f, 0.31f, 0.0f, 0.1f),
149                     },
150                 },
151                 Buffer = new ImageViewStyle()
152                 {
153                     CornerRadius = 8.0f,
154                     BackgroundColor = new Color(0.82f, 0.31f, 0.0f, 0.1f),
155                 },
156                 Progress = new ImageViewStyle()
157                 {
158                     CornerRadius = 8.0f,
159                     BackgroundColor = new Color("#D25000"),
160                 },
161                 IndeterminateImageUrl = FrameworkInformation.ResourcePath + "IoT_progress_indeterminate.png",
162             });
163
164             // RadioButton base style
165             theme.AddStyleWithoutClone("Tizen.NUI.Components.RadioButton", new ButtonStyle()
166             {
167                 Padding = new Extents(8, 8, 8, 8),
168                 ItemSpacing = new Size2D(16, 16),
169                 ItemHorizontalAlignment = HorizontalAlignment.Center,
170                 ItemVerticalAlignment = VerticalAlignment.Center,
171                 Icon = new ImageViewStyle()
172                 {
173                     Size = new Size(32, 32),
174                     ResourceUrl = new Selector<string>()
175                     {
176                         Normal = FrameworkInformation.ResourcePath + "IoT_radiobutton_off.png",
177                         Pressed = FrameworkInformation.ResourcePath + "IoT_radiobutton_off_p.png",
178                         Disabled = FrameworkInformation.ResourcePath + "IoT_radiobutton_off_d.png",
179                         Focused = FrameworkInformation.ResourcePath + "IoT_radiobutton_off_f.png",
180                         Selected = FrameworkInformation.ResourcePath + "IoT_radiobutton_on.png",
181                         SelectedPressed = FrameworkInformation.ResourcePath + "IoT_radiobutton_on_p.png",
182                         SelectedFocused = FrameworkInformation.ResourcePath + "IoT_radiobutton_on_f.png",
183                         DisabledSelected = FrameworkInformation.ResourcePath + "IoT_radiobutton_on_d.png",
184                     },
185                 },
186                 Text = new TextLabelStyle()
187                 {
188                     TextColor = new Color("#090E21"),
189                     PixelSize = 24,
190                 }
191             });
192
193             // Slider base style
194             theme.AddStyleWithoutClone("Tizen.NUI.Components.Slider", new SliderStyle()
195             {
196                 Size = new Size(850, 50),
197                 TrackThickness = 8,
198                 Track = new ImageViewStyle()
199                 {
200                     Size = new Size(800, 8),
201                     CornerRadius = 4.0f,
202                     BackgroundColor = new Selector<Color>()
203                     {
204                         Normal = new Color(1.0f, 0.37f, 0.0f, 0.1f),
205                         Disabled = new Color(1.0f, 0.37f, 0.0f, 0.1f),
206                     },
207                 },
208                 Progress = new ImageViewStyle()
209                 {
210                     Size = new Size(800, 8),
211                     CornerRadius = 4.0f,
212                     BackgroundColor = new Selector<Color>()
213                     {
214                         Normal = new Color("#FF6200"),
215                         Disabled = new Color("#CACACA"),
216                     },
217                 },
218                 Thumb = new ImageViewStyle()
219                 {
220                     Size = new Size(40, 40),
221                     ResourceUrl = new Selector<string>()
222                     {
223                         Normal = FrameworkInformation.ResourcePath + "IoT_slider_handler_normal.png",
224                         Pressed = FrameworkInformation.ResourcePath + "IoT_slider_handler_pressed.png",
225                         Focused = FrameworkInformation.ResourcePath + "IoT_slider_handler_pressed.png",
226                         Disabled = FrameworkInformation.ResourcePath + "IoT_slider_handler_disabled.png",
227                     },
228                 },
229                 ValueIndicatorImage = new ImageViewStyle()
230                 {
231                     Size = new Size(16, 24),
232                     BorderlineWidth = 0.5f,
233                     BorderlineColor = new Color("#FF6200"),
234                     BackgroundColor = new Color(0.0f, 0.04f, 0.16f, 1.0f),
235                 },
236             });
237
238             // Switch base style
239             theme.AddStyleWithoutClone("Tizen.NUI.Components.Switch", new SwitchStyle()
240             {
241                 ItemSpacing = new Size2D(16, 16),
242                 ItemHorizontalAlignment = HorizontalAlignment.Begin,
243                 ItemVerticalAlignment = VerticalAlignment.Center,
244                 Track = new ImageViewStyle()
245                 {
246                     Size = new Size(84, 44),
247                     ResourceUrl = new Selector<string>()
248                     {
249                         Normal = FrameworkInformation.ResourcePath + "IoT_switch_track_off.png",
250                         Pressed = FrameworkInformation.ResourcePath + "IoT_switch_track_off_p.png",
251                         Disabled = FrameworkInformation.ResourcePath + "IoT_switch_track_off_d.png",
252                         Focused = FrameworkInformation.ResourcePath + "IoT_switch_track_off_f.png",
253                         Selected = FrameworkInformation.ResourcePath + "IoT_switch_track_on.png",
254                         SelectedPressed = FrameworkInformation.ResourcePath + "IoT_switch_track_on_p.png",
255                         SelectedFocused = FrameworkInformation.ResourcePath + "IoT_switch_track_on_f.png",
256                         DisabledSelected = FrameworkInformation.ResourcePath + "IoT_switch_track_on_d.png",
257                     },
258                 },
259                 Thumb = new ImageViewStyle()
260                 {
261                     Size = new Size(44, 44),
262                     ResourceUrl = new Selector<string>()
263                     {
264                         Normal = FrameworkInformation.ResourcePath + "IoT_switch_thumb.png",
265                         Disabled = FrameworkInformation.ResourcePath + "IoT_switch_thumb_d.png",
266                         Selected = FrameworkInformation.ResourcePath + "IoT_switch_thumb_s.png",
267                         SelectedPressed = FrameworkInformation.ResourcePath + "IoT_switch_thumb_sp.png",
268                         SelectedFocused = FrameworkInformation.ResourcePath + "IoT_switch_thumb_sf.png",
269                     }
270                 },
271                 Text = new TextLabelStyle()
272                 {
273                     TextColor = new Color("#090E21"),
274                     PixelSize = 24,
275                 }
276             });
277
278             // Loading base style
279             theme.AddStyleWithoutClone("Tizen.NUI.Components.Loading", new LoadingStyle()
280             {
281                 LoadingSize = new Size(200, 200),
282             });
283
284             // Pagination base style
285             theme.AddStyleWithoutClone("Tizen.NUI.Components.Pagination", new PaginationStyle()
286             {
287                 Size = new Size(450, 24),
288                 IndicatorImageUrl = new Selector<string>()
289                 {
290                     Normal = FrameworkInformation.ResourcePath + "nui_component_default_pagination_normal_dot.png",
291                     Selected = FrameworkInformation.ResourcePath + "nui_component_default_pagination_focus_dot.png",
292                 },
293                 IndicatorSize = new Size(64, 8),
294                 IndicatorSpacing = 16,
295             });
296
297             // Scrollbar base style
298             theme.AddStyleWithoutClone("Tizen.NUI.Components.Scrollbar", new ScrollbarStyle()
299             {
300                 TrackThickness = 8,
301                 ThumbThickness = 8,
302                 TrackColor = new Color(0f, 0f, 0f, 0f),
303                 ThumbColor = new Color("#FFFEFE"),
304                 TrackPadding = 4,
305                 //7.0 UX no require image resource.
306                 Thumb = new ImageViewStyle()
307                 {
308                     CornerRadius = 4.0f,
309                     BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
310                 }
311                 //ThumbVerticalImageUrl = FrameworkInformation.ResourcePath + "nui_component_default_scroll_vbar.#.png",
312                 //ThumbHorizontalImageUrl = FrameworkInformation.ResourcePath + "nui_component_default_scroll_hbar.#.png",
313             });
314
315             // LinearLayouter base style
316             theme.AddStyleWithoutClone("Tizen.NUI.Components.LinearLayouter", new ViewStyle()
317             {
318                 Padding = new Extents(0, 0, 0, 0)
319             });
320
321             // GridLayouter base style
322             theme.AddStyleWithoutClone("Tizen.NUI.Components.GridLayouter", new ViewStyle()
323             {
324                 Padding = new Extents(0, 0, 0, 0),
325             });
326
327             // ItemsLayouter base style
328             theme.AddStyleWithoutClone("Tizen.NUI.Components.ItemsLayouter", new ViewStyle()
329             {
330                 Padding = new Extents(0, 0, 0, 0),
331             });
332
333             // RecyclerViewItem base style
334             theme.AddStyleWithoutClone("Tizen.NUI.Components.RecyclerViewItem", new RecyclerViewItemStyle()
335             {
336                 BackgroundColor = new Selector<Color>()
337                 {
338                     Normal = new Color(1, 1, 1, 1),
339                     Pressed = new Color(0.85f, 0.85f, 0.85f, 1),
340                     Disabled = new Color(0.70f, 0.70f, 0.70f, 1),
341                     Selected = new Color(0.701f, 0.898f, 0.937f, 1),
342                 },
343             });
344
345             // DefaultLinearItem base style
346             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultLinearItem", new DefaultLinearItemStyle()
347             {
348                 SizeHeight = 64,
349                 Padding = new Extents(16, 16, 0, 0),
350                 Margin = new Extents(0, 0, 0, 0),
351                 Label = new TextLabelStyle()
352                 {
353                     PixelSize = 24,
354                     Ellipsis = true,
355                     FontFamily = "SamsungOneUI600",
356                     TextColor = new Selector<Color>()
357                     {
358                         Normal = new Color("#090E21"),
359                         Pressed = new Color("#FF6200"),
360                         Disabled = new Color("#CACACA"),
361                         Selected = new Color("#FF6200"),
362                     },
363                     ThemeChangeSensitive = false
364                 },
365                 SubLabel = new TextLabelStyle()
366                 {
367                     PixelSize = 20,
368                     Ellipsis = true,
369                     FontFamily = "SamsungOneUI400",
370                     TextColor = new Selector<Color>()
371                     {
372                         Normal = new Color("#090E21"),
373                         Pressed = new Color("#FF6200"),
374                         Disabled = new Color("#CACACA"),
375                         Selected = new Color("#FF6200"),
376                     },
377                     ThemeChangeSensitive = false
378                 },
379                 Icon = new ViewStyle()
380                 {
381                     Margin = new Extents(0, 16, 0, 0)
382                 },
383                 Extra = new ViewStyle()
384                 {
385                     Margin = new Extents(16, 0, 0, 0)
386                 },
387             });
388
389             // DefaultGridItem base style
390             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultGridItem", new DefaultGridItemStyle()
391             {
392                 ClippingMode = ClippingModeType.ClipChildren,
393                 Padding = new Extents(0, 0, 0, 0),
394                 Margin = new Extents(5, 5, 5, 5),
395                 CornerRadius = 12.0f,
396                 BackgroundColor = new Selector<Color>()
397                 {
398                     Normal = new Color("#FAFAFA"),
399                     Pressed = new Color(1f, 0.38f, 0, 0.2f),
400                     Disabled = new Color("#FAFAFA"),
401                     Selected = new Color(1f, 0.38f, 0, 0.2f),
402                 },
403                 Image = new ImageViewStyle()
404                 {
405                     //FIXME: Clip mode is not working on CornerRadius.
406                     CornerRadius = 12.0f,
407                     ClippingMode = ClippingModeType.ClipChildren,
408                 },
409                 Label = new TextLabelStyle()
410                 {
411                     SizeHeight = 24,
412                     PixelSize = 16,
413                     FontFamily = "SamsungOneUI400",
414                     LineWrapMode = LineWrapMode.Character,
415                     TextColor = new Selector<Color>()
416                     {
417                         Normal = new Color("#090E21"),
418                         Pressed = new Color("#FF6200"),
419                         Disabled = new Color("#CACACA"),
420                         Selected = new Color("#FF6200"),
421                     },
422                     ThemeChangeSensitive = false
423                 },
424                 Badge = new ViewStyle()
425                 {
426                     Margin = new Extents(0, 0, 0, 0),
427                 },
428                 BoxShadow = new Shadow(12.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 4.0f)),
429             });
430
431             // DefaultTitleItem base style
432             theme.AddStyleWithoutClone("Tizen.NUI.Components.DefaultTitleItem", new DefaultTitleItemStyle()
433             {
434                 SizeHeight = 48,
435                 Padding = new Extents(20, 20, 0, 0),
436                 Margin = new Extents(0, 0, 0, 0),
437                 BackgroundColor = Color.Transparent,
438                 Label = new TextLabelStyle()
439                 {
440                     PixelSize = 24,
441                     Ellipsis = true,
442                     FontFamily = "SamsungOneUI400",
443                     TextColor = new Color("#090E217F"),
444                     ThemeChangeSensitive = false
445                 },
446                 Icon = new ViewStyle()
447                 {
448                     Margin = new Extents(24, 0, 0, 0)
449                 },
450                 Seperator = new ViewStyle()
451                 {
452                     Margin = new Extents(0, 0, 0, 0),
453                     BackgroundColor = new Color(0, 0, 0, 0),
454                 },
455             });
456
457             // ContentPage base style
458             theme.AddStyleWithoutClone("Tizen.NUI.Components.ContentPage", new ViewStyle()
459             {
460                 BackgroundColor = new Color("#FAFAFA"),
461                 CornerRadius = new Vector4(24.0f, 24.0f, 24.0f ,24.0f),
462                 CornerRadiusPolicy = VisualTransformPolicyType.Absolute,
463                 BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
464             });
465
466             // AppBar base style
467             theme.AddStyleWithoutClone("Tizen.NUI.Components.AppBar", new AppBarStyle()
468             {
469                 Size = new Size(-1, 64),
470                 BackgroundColor = Color.Transparent,
471                 BackButton = new ButtonStyle()
472                 {
473                     Size = new Size(48, 48),
474                     CornerRadius = 0,
475                     BackgroundColor = Color.Transparent,
476                     Icon = new ImageViewStyle()
477                     {
478                         Size = new Size(48, 48),
479                         ResourceUrl = FrameworkInformation.ResourcePath + "nui_component_default_back_button.png",
480                         Color = new Selector<Color>()
481                         {
482                             Normal = new Color("#17234D"),
483                             Focused = new Color("#17234D"),
484                             Pressed = new Color("#FF6200"),
485                             Disabled = new Color("#CACACA"),
486                         },
487                     },
488                     ThemeChangeSensitive = false
489                 },
490                 TitleTextLabel = new TextLabelStyle()
491                 {
492                     PixelSize = 24,
493                     VerticalAlignment = VerticalAlignment.Center,
494                     TextColor = new Selector<Color>()
495                     {
496                         Normal = new Color("#17234D"),
497                     },
498                     ThemeChangeSensitive = false
499                 },
500                 ActionView = new ViewStyle()
501                 {
502                     Size = new Size(48, 64),
503                     CornerRadius = 0,
504                     BackgroundColor = Color.Transparent,
505                 },
506                 ActionButton = new ButtonStyle()
507                 {
508                     Size = new Size(-2, 64),
509                     CornerRadius = 0,
510                     BackgroundColor = Color.Transparent,
511                     Text = new TextLabelStyle()
512                     {
513                         PixelSize = 24,
514                         TextColor = new Selector<Color>()
515                         {
516                             Normal = new Color("#FF6200"),
517                             Focused = new Color("#FF6200"),
518                             Pressed = new Color("#D95300"),
519                             Disabled = new Color("#CACACA"),
520                         },
521                     },
522                     Icon = new ImageViewStyle()
523                     {
524                         Size = new Size(48, 48),
525                         Color = new Selector<Color>()
526                         {
527                             Normal = new Color("#17234D"),
528                             Focused = new Color("#17234D"),
529                             Pressed = new Color("#FF6200"),
530                             Disabled = new Color("#CACACA"),
531                         },
532                     },
533                     ThemeChangeSensitive = false,
534                 },
535                 Padding = new Extents(16, 16, 0, 0),
536                 NavigationPadding = new Extents(0, 8, 0, 0),
537                 ActionPadding = new Extents(16, 0, 0, 0),
538                 ActionCellPadding = new Size2D(16, 0),
539             });
540
541             // Picker base style
542             theme.AddStyleWithoutClone("Tizen.NUI.Components.Picker", new PickerStyle()
543             {
544                 Size = new Size(160, 339),
545                 ItemTextLabel = new TextLabelStyle()
546                 {
547                     //FIXME: Should be check PointSize. given size from UX is too large.
548                     PixelSize = 32,
549                     VerticalAlignment = VerticalAlignment.Center,
550                     HorizontalAlignment = HorizontalAlignment.Center,
551                     Size = new Size(0,72),
552                     TextColor = new Selector<Color>()
553                     {
554                         Normal = new Color("#000C2B"),
555                     },
556                     BackgroundColor = Color.White,
557                 },
558                 Divider = new ViewStyle()
559                 {
560                     SizeHeight = 2.0f,
561                     WidthResizePolicy = ResizePolicyType.FillToParent,
562                     Position = new Position(0, 132),
563                     BackgroundColor = new Color("#0A0E4A"),
564                 },
565                 StartScrollOffset = new Size(0, 12),
566             });
567
568             // TabBar base style
569             theme.AddStyleWithoutClone("Tizen.NUI.Components.TabBar", new ViewStyle()
570             {
571                 Size = new Size(-1, -2),
572                 Margin = new Extents(16, 16, 0, 0),
573                 Padding = new Extents(14, 14, 0, 0),
574                 CornerRadius = new Vector4(12.0f, 12.0f, 12.0f, 12.0f),
575                 CornerRadiusPolicy = VisualTransformPolicyType.Absolute,
576                 BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
577                 BackgroundColor = new Color("#FAFAFA"),
578             });
579
580             // TabButton base style
581             theme.AddStyleWithoutClone("Tizen.NUI.Components.TabButton", new TabButtonStyle()
582             {
583                 Size = new Size(-1, 72),
584                 SizeWithIcon = new Size(-1, 116),
585                 SizeWithIconOnly = new Size(-1, 64),
586                 MinimumSize = new Size(80, 64),
587                 Padding = new Extents(24, 24, 16, 16),
588                 ItemSpacing = new Size2D(10, 10),
589                 CornerRadius = 0,
590                 IconSizeWithIconOnly = new Size(32, 32),
591                 TextSizeWithIcon = 16.0f,
592                 BackgroundColor = new Selector<Color>()
593                 {
594                     Normal = new Color("#FAFAFA"),
595                     Selected = new Color("#FFE0CC"),
596                     Pressed = new Color("#FFCAA8"),
597                     Focused = new Color("#FAFAFA"),
598                     Disabled = new Color("#FAFAFA"),
599                 },
600                 Text = new TextLabelStyle()
601                 {
602                     PixelSize = 24,
603                     Size = new Size(-2, -2),
604                     TextColor = new Selector<Color>()
605                     {
606                         Normal = new Color("#090E21"),
607                         Selected = new Color("#FF6200"),
608                         Pressed = new Color("#FF6200"),
609                         Focused = new Color("#FF6200"),
610                         Disabled = new Color("#CACACA"),
611                     },
612                     ThemeChangeSensitive = false,
613                 },
614                 Icon = new ImageViewStyle()
615                 {
616                     Size = new Size(48, 48),
617                     Color = new Selector<Color>()
618                     {
619                         Normal = new Color("#090E21"),
620                         Selected = new Color("#FF6200"),
621                         Pressed = new Color("#FF6200"),
622                         Focused = new Color("#FF6200"),
623                         Disabled = new Color("#CACACA"),
624                     },
625                 },
626             });
627
628             // NotificationToast base style
629             theme.AddStyleWithoutClone("NotificationToast", new TextLabelStyle()
630             {
631                 BackgroundColor = new Color("#FAFAFA"),
632                 CornerRadius = 12.0f,
633                 BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
634                 TextColor = new Color("#090E21"),
635                 PixelSize = 24,
636                 WidthResizePolicy = ResizePolicyType.UseNaturalSize,
637                 HeightResizePolicy = ResizePolicyType.UseNaturalSize,
638                 PositionUsesPivotPoint = true,
639                 HorizontalAlignment = HorizontalAlignment.Center,
640                 VerticalAlignment = VerticalAlignment.Center,
641                 Padding = new Extents(16, 16, 16, 16),
642                 PositionY = 120,
643             });
644
645             // AlertDialog base style
646             theme.AddStyleWithoutClone("Tizen.NUI.Components.AlertDialog", new AlertDialogStyle()
647             {
648                 Size = new Size(-2, -2),
649                 Padding = new Extents(32, 32, 32, 32),
650                 ItemSpacing = new Size2D(0, 32),
651                 BackgroundColor = new Color("#FAFAFA"),
652                 CornerRadius = 12.0f,
653                 BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
654                 TitleTextLabel = new TextLabelStyle()
655                 {
656                     Size = new Size(626, -2),
657                     PixelSize = 24,
658                     HorizontalAlignment = HorizontalAlignment.Center,
659                     VerticalAlignment = VerticalAlignment.Center,
660                     TextColor = new Color("#090E21"),
661                     ThemeChangeSensitive = false,
662                 },
663                 MessageTextLabel = new TextLabelStyle()
664                 {
665                     Size = new Size(626, -2),
666                     PixelSize = 24,
667                     MultiLine = true,
668                     HorizontalAlignment = HorizontalAlignment.Center,
669                     VerticalAlignment = VerticalAlignment.Center,
670                     TextColor = new Color("#090E21"),
671                     ThemeChangeSensitive = false,
672                 },
673                 ActionContent = new ViewStyle()
674                 {
675                     Size = new Size(626, -2),
676                 },
677             });
678
679             // TimePicker base style
680             theme.AddStyleWithoutClone("Tizen.NUI.Components.TimePicker", new TimePickerStyle()
681             {
682                 CellPadding = new Size(50, 339),
683
684                 Pickers = new PickerStyle()
685                 {
686                     Size = new Size(160, 339),
687                     ItemTextLabel = new TextLabelStyle()
688                     {
689                         //FIXME: Should be check PointSize. given size from UX is too large.
690                         PixelSize = 32,
691                         VerticalAlignment = VerticalAlignment.Center,
692                         HorizontalAlignment = HorizontalAlignment.Center,
693                         Size = new Size(0,72),
694                         TextColor = new Color("#000C2B"),
695                         BackgroundColor = Color.White,
696                         ThemeChangeSensitive = false
697                     },
698                     Divider = new ViewStyle()
699                     {
700                         SizeHeight = 2.0f,
701                         WidthResizePolicy = ResizePolicyType.FillToParent,
702                         Position = new Position(0, 132),
703                         BackgroundColor = new Color("#0A0E4A"),
704                     },
705                     StartScrollOffset = new Size2D(0, 12),
706                 }
707             });
708
709             // DatePicker base style
710             theme.AddStyleWithoutClone("Tizen.NUI.Components.DatePicker", new DatePickerStyle()
711             {
712                 CellPadding = new Size(50, 339),
713
714                 Pickers = new PickerStyle()
715                 {
716                     Size = new Size(160, 339),
717                     ItemTextLabel = new TextLabelStyle()
718                     {
719                         //FIXME: Should be check PointSize. given size from UX is too large.
720                         PixelSize = 32,
721                         VerticalAlignment = VerticalAlignment.Center,
722                         HorizontalAlignment = HorizontalAlignment.Center,
723                         Size = new Size(0,72),
724                         TextColor = new Color("#000C2B"),
725                         BackgroundColor = Color.White,
726                         ThemeChangeSensitive = false
727                     },
728                     Divider = new ViewStyle()
729                     {
730                         SizeHeight = 2.0f,
731                         WidthResizePolicy = ResizePolicyType.FillToParent,
732                         Position = new Position(0, 132),
733                         BackgroundColor = new Color("#0A0E4A"),
734                     },
735                     StartScrollOffset = new Size2D(0, 12),
736                 }
737             });
738
739             // Menu base style
740             theme.AddStyleWithoutClone("Tizen.NUI.Components.Menu", new MenuStyle()
741             {
742                 Content = new ViewStyle()
743                 {
744                     BackgroundColor = new Color("#FFFEFE"),
745                     CornerRadius = 24.0f,
746                     BoxShadow = new Shadow(8.0f, new Color(0.0f, 0.0f, 0.0f, 0.16f), new Vector2(0.0f, 2.0f)),
747                     // FIXME: ScrollableBase with LinearLayout's Padding.Start is applied both Start and End.
748                     //        ScrollableBase with LinearLayout's Padding.Top is applied both Top and Bottom.
749                     Padding = new Extents(32, 0, 16, 0),
750                 },
751             });
752
753             // MenuItem base style
754             theme.AddStyleWithoutClone("Tizen.NUI.Components.MenuItem", new ButtonStyle()
755             {
756                 Size = new Size(324, -2),
757                 MinimumSize = new Size2D(0, 64),
758                 BackgroundColor = new Color("#FFFEFE"),
759                 CornerRadius = 0,
760                 // FIXME: ClippingModeType.ClipChildren cannot support anti-aliasing
761                 //        So not to show left bottom corner of MenuItem, MenuItem.Padding.Start is 0 and Menu.Content.Padding.Start is 32.
762                 //        (instead of MenuItem.Padding.Start 16 and Menu.Content.Padding.Start is 16)
763                 Padding = new Extents(0, 0, 24, 24),
764                 Text = new TextLabelStyle()
765                 {
766                     PixelSize = 24,
767                     MultiLine = true,
768                     HorizontalAlignment = HorizontalAlignment.Begin,
769                     VerticalAlignment = VerticalAlignment.Center,
770                     TextColor = new Selector<Color>()
771                     {
772                         Normal = new Color("#090E21"),
773                         Focused = new Color("#FF6200"),
774                         Pressed = new Color("#FF6200"),
775                         Disabled = new Color("#CACACA"),
776                         Selected = new Color("#FF6200"),
777                     },
778                     ThemeChangeSensitive = false
779                 },
780                 Icon = new ImageViewStyle()
781                 {
782                     Color = new Selector<Color>()
783                     {
784                         Normal = new Color("#090E21"),
785                         Focused = new Color("#FF6200"),
786                         Pressed = new Color("#FF6200"),
787                         Disabled = new Color("#CACACA"),
788                         Selected = new Color("#FF6200"),
789                     },
790                 },
791             });
792
793             // AlertDialog base style
794             theme.AddStyleWithoutClone("Tizen.NUI.Components.DialogPage.Scrim", new ViewStyle()
795             {
796                 BackgroundColor = new Color("#090E21"),
797                 Opacity = 0.5f,
798             });
799
800             return theme;
801         }
802     }
803 }
804
805 #endif // !PROFILE_WEARABLE