1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
18 
19 #include "base/geometry/dimension.h"
20 #include "core/components/common/properties/text_style.h"
21 #include "core/components/theme/theme.h"
22 #include "core/components/theme/theme_constants.h"
23 #include "core/components/theme/theme_constants_defines.h"
24 
25 namespace OHOS::Ace {
26 
27 /**
28  * TabTheme defines color and styles of tab. TabTheme should be built
29  * using TabTheme::Builder.
30  */
31 namespace {
32 constexpr double THIRDFONT_DEFAULT_VALUE = 1.45;
33 constexpr double BIGFONT_DEFAULT_VALUE = 1.75;
34 constexpr double LARGEFONT_DEFAULT_VALUE = 2.0;
35 constexpr double MAXFONT_DEFAULT_VALUE = 3.2;
36 } // namespace
37 class TabTheme : public virtual Theme {
38     DECLARE_ACE_TYPE(TabTheme, Theme);
39 
40 public:
41     class Builder {
42     public:
43         Builder() = default;
44         ~Builder() = default;
45 
46         static constexpr Dimension BOTTOM_BAR_HORIZONTAL_TEXT_SIZE = 12.0_vp;
47 
Build(const RefPtr<ThemeConstants> & themeConstants)48         RefPtr<TabTheme> Build(const RefPtr<ThemeConstants>& themeConstants) const
49         {
50             RefPtr<TabTheme> theme = AceType::Claim(new TabTheme());
51             if (!themeConstants) {
52                 return theme;
53             }
54             RefPtr<ThemeStyle> pattern = themeConstants->GetPatternByName(THEME_PATTERN_TAB);
55             if (pattern) {
56                 theme->backgroundColor_ = pattern->GetAttr<Color>(PATTERN_BG_COLOR, Color::WHITE);
57                 theme->activeIndicatorColor_ = pattern->GetAttr<Color>("active_indicator_color", Color::WHITE);
58                 theme->focusIndicatorColor_ = pattern->GetAttr<Color>("focus_indicator_color", Color::WHITE);
59                 theme->focusIndicatorRadius_ = pattern->GetAttr<Dimension>("focus_indicator_radius", 0.0_vp);
60                 theme->subTabIndicatorHeight_ = pattern->GetAttr<Dimension>("subtab_indicator_height", 0.0_vp);
61                 theme->subTabTextOnColor_ = pattern->GetAttr<Color>("subtab_text_on_color", Color::WHITE);
62                 theme->subTabTextOffColor_ = pattern->GetAttr<Color>("subtab_text_off_color", Color::WHITE);
63                 theme->subTabBoardTextOnColor_ = pattern->GetAttr<Color>("subtab_board_text_on_color", Color::WHITE);
64                 theme->subTabIndicatorGap_ = pattern->GetAttr<Dimension>("subtab_indicator_gap", 0.0_vp);
65                 theme->subTabHorizontalPadding_ = pattern->GetAttr<Dimension>("subtab_horizontal_padding", 0.0_vp);
66                 theme->subTabTopPadding_ = pattern->GetAttr<Dimension>("subtab_top_padding", 0.0_vp);
67                 theme->subTabBottomPadding_ = pattern->GetAttr<Dimension>("subtab_bottom_padding", 0.0_vp);
68                 theme->subTabItemPadding_ = pattern->GetAttr<Dimension>("subtab_item_padding", 0.0_vp);
69                 theme->subTabBarHoverColor_ = pattern->GetAttr<Color>("subtab_hover_color", Color::WHITE);
70                 theme->subTabBarPressedColor_ = pattern->GetAttr<Color>("subtab_press_color", Color::WHITE);
71                 theme->subtabTextDefaultFontSize_ =
72                     pattern->GetAttr<Dimension>("subtab_text_default_font_size", 0.0_vp);
73                 theme->subtabLandscapeHorizontalPadding_ =
74                     pattern->GetAttr<Dimension>("subtab_landscape_horizontal_padding", 0.0_vp);
75                 theme->bottomTabHorizontalPadding_ =
76                     pattern->GetAttr<Dimension>("bottom_tab_horizontal_padding", 0.0_vp);
77                 theme->bottomTabTextOn_ = pattern->GetAttr<Color>("bottom_tab_text_on", Color::WHITE);
78                 theme->bottomTabTextOff_ = pattern->GetAttr<Color>("bottom_tab_text_off", Color::WHITE);
79                 theme->bottomTabIconOn_ = pattern->GetAttr<Color>("bottom_tab_icon", Color::WHITE);
80                 theme->bottomTabIconOff_ = pattern->GetAttr<Color>("bottom_tab_icon_off", Color::WHITE);
81                 theme->bottomTabSymbolOn_ = pattern->GetAttr<Color>("bottom_tab_symbol", Color(0xFF007DFF));
82                 theme->bottomTabSymbolOff_ = pattern->GetAttr<Color>("bottom_tab_symbol_off", Color(0x66182431));
83                 theme->bottomTabImageSize_ = pattern->GetAttr<Dimension>("bottom_tab_image_size", 0.0_vp);
84                 theme->bottomTabTextSize_ = pattern->GetAttr<Dimension>("bottom_tab_text_size", 0.0_vp);
85                 theme->bottomTabHorizontalTextSize_ =
86                     pattern->GetAttr<Dimension>("bottom_tab_horizontal_text_size", BOTTOM_BAR_HORIZONTAL_TEXT_SIZE);
87                 theme->bottomTabBackgroundBlurStyle_ = pattern->GetAttr<int>("bottom_tab_bar_bg_blur_style", 0);
88                 theme->defaultTabBarName_ = pattern->GetAttr<std::string>("default_tab_bar_name", "");
89                 theme->bottomTabBarSpace_ = pattern->GetAttr<Dimension>("bottom_tab_bar_space", 0.0_vp);
90                 theme->horizontalBottomTabBarSpace_ =
91                     pattern->GetAttr<Dimension>("horizontal_bottom_tab_bar_space", 0.0_vp);
92                 theme->subTabBarHoverDuration_ = pattern->GetAttr<double>("sub_tab_bar_hover_duration", 0.0);
93                 theme->subTabBarBigFontSizeScale_ =
94                     pattern->GetAttr<double>("sub_tab_bar_big_font_size_scale", BIGFONT_DEFAULT_VALUE);
95                 theme->subTabBarLargeFontSizeScale_ =
96                     pattern->GetAttr<double>("sub_tab_bar_large_font_size_scale", LARGEFONT_DEFAULT_VALUE);
97                 theme->subTabBarMaxFontSizeScale_ =
98                     pattern->GetAttr<double>("sub_tab_bar_max_font_size_scale", MAXFONT_DEFAULT_VALUE);
99                 theme->subTabBarOriginFontSizeScale_ =
100                     pattern->GetAttr<double>("sub_tab_bar_origin_font_size_scale", 1.0);
101                 theme->subTabBarLeftRightMargin_ =
102                     pattern->GetAttr<Dimension>("sub_tab_bar_left_right_margin", 12.0_vp);
103                 theme->subTabBarIndicatorstyleMarginTop_ =
104                     pattern->GetAttr<Dimension>("sub_tab_bar_indicatorstyle_margin_top", 4.0_vp);
105                 theme->subTabBarThirdLargeFontSizeScale_ =
106                     pattern->GetAttr<double>("sub_tab_bar_third_large_font_size_scale", THIRDFONT_DEFAULT_VALUE);
107 
108                 ParseAttribute(theme, pattern);
109                 theme->dialog_radius_level10_ = pattern->GetAttr<Dimension>("dialog_radius_level10", 20.0_vp);
110                 theme->dialog_iconColor_ = pattern->GetAttr<Color>("dialog_icon_primary", Color(0xff182431));
111                 theme->dialog_fontColor_ = pattern->GetAttr<Color>("dialog_font_primary", Color(0xff182431));
112             } else {
113                 LOGW("find pattern of tab fail");
114             }
115             return theme;
116         }
117 
118     private:
ParseAttribute(const RefPtr<TabTheme> & theme,const RefPtr<ThemeStyle> & pattern)119         void ParseAttribute(const RefPtr<TabTheme>& theme, const RefPtr<ThemeStyle>& pattern) const
120         {
121             theme->subTabBarHoverToPressDuration_ =
122                 pattern->GetAttr<double>("sub_tab_bar_hover_to_press_duration", 0.0);
123             theme->tabContentAnimationDuration_ =
124                 pattern->GetAttr<double>("tab_content_animation_duration", 0.0);
125             theme->tabBarDefaultHeight_ = pattern->GetAttr<Dimension>("tab_bar_default_height", 0.0_vp);
126             theme->bottomTabBarDefaultHeight_ =
127                 pattern->GetAttr<Dimension>("bottom_tab_bar_default_height", 0.0_vp);
128             theme->tabBarDefaultWidth_ = pattern->GetAttr<Dimension>("tab_bar_default_width", 0.0_vp);
129             theme->subTabBarMinWidth_ = pattern->GetAttr<Dimension>("sub_tab_bar_min_width", 0.0_vp);
130             theme->dividerColor_ = pattern->GetAttr<Color>("divider_color", Color::BLACK);
131             theme->tabBarShadowMargin_ = pattern->GetAttr<Dimension>("tab_bar_shadow_margin", 0.0_vp);
132             theme->tabBarGradientWidth_ = pattern->GetAttr<Dimension>("tab_bar_gradient_width", 0.0_vp);
133             theme->colorBottomTabSubBg_ = pattern->GetAttr<Color>("color_bottom_tab_sub_bg", Color::WHITE);
134             theme->colorBottomTabSubBgBlur_ = pattern->GetAttr<Color>("color_bottom_tab_sub_bg_blur", Color::WHITE);
135             theme->tabBarColumnGutter_ = pattern->GetAttr<Dimension>("tab_bar_column_gutter", 0.0_vp);
136             theme->tabBarColumnMargin_ = pattern->GetAttr<Dimension>("tab_bar_column_margin", 0.0_vp);
137             theme->horizontalBottomTabMinWidth_ =
138                 pattern->GetAttr<Dimension>("horizontal_bottom_tab_min_width", 0.0_vp);
139 
140             theme->labelPadding_ = pattern->GetAttr<Dimension>("label_padding", 8.0_vp);
141             theme->padding_ = pattern->GetAttr<Dimension>("tab_padding", 16.0_vp);
142             theme->gradientWidth_ = pattern->GetAttr<Dimension>("tab_gradient_width", 24.0_vp);
143             theme->defaultHeight_ = pattern->GetAttr<Dimension>("tab_default_height", 56.0_vp);
144             theme->defaultWidth_ = pattern->GetAttr<Dimension>("tab_default_width", 200.0_px);
145             theme->defaultItemHeight_ = pattern->GetAttr<Dimension>("tab_default_item_height", 200.0_px);
146             theme->activeIndicatorWidth_ = pattern->GetAttr<Dimension>("active_indicator_width", 2.0_vp);
147             theme->activeIndicatorMinWidth_ = pattern->GetAttr<Dimension>("active_indicator_min_width", 32.0_vp);
148             theme->activeIndicatorPadding_ = pattern->GetAttr<Dimension>("active_indicator_padding", 3.0_vp);
149             theme->focusIndicatorHorizontalPadding_ =
150                 pattern->GetAttr<Dimension>("focus_indicator_horizontal_padding", 0.0_vp);
151             theme->focusIndicatorVerticalPadding_ =
152                 pattern->GetAttr<Dimension>("focus_indicator_vertical_padding", 0.0_vp);
153         }
154     };
155 
156     ~TabTheme() override = default;
157 
GetLabelPadding()158     const Dimension& GetLabelPadding() const
159     {
160         return labelPadding_;
161     }
162 
GetPadding()163     const Dimension& GetPadding() const
164     {
165         return padding_;
166     }
167 
GetGradientWidth()168     const Dimension& GetGradientWidth() const
169     {
170         return gradientWidth_;
171     }
172 
GetDefaultHeight()173     const Dimension& GetDefaultHeight() const
174     {
175         return defaultHeight_;
176     }
177 
GetDefaultWidth()178     const Dimension& GetDefaultWidth() const
179     {
180         return defaultWidth_;
181     }
182 
GetDefaultItemHeight()183     const Dimension& GetDefaultItemHeight() const
184     {
185         return defaultItemHeight_;
186     }
187 
GetBackgroundColor()188     const Color& GetBackgroundColor() const
189     {
190         return backgroundColor_;
191     }
192 
GetActiveIndicatorColor()193     const Color& GetActiveIndicatorColor() const
194     {
195         return activeIndicatorColor_;
196     }
197 
GetActiveIndicatorWidth()198     const Dimension& GetActiveIndicatorWidth() const
199     {
200         return activeIndicatorWidth_;
201     }
202 
GetActiveIndicatorMinWidth()203     const Dimension& GetActiveIndicatorMinWidth() const
204     {
205         return activeIndicatorMinWidth_;
206     }
207 
GetActiveIndicatorPadding()208     const Dimension& GetActiveIndicatorPadding() const
209     {
210         return activeIndicatorPadding_;
211     }
212 
GetFocusIndicatorColor()213     const Color& GetFocusIndicatorColor() const
214     {
215         return focusIndicatorColor_;
216     }
217 
GetFocusIndicatorRadius()218     const Dimension& GetFocusIndicatorRadius() const
219     {
220         return focusIndicatorRadius_;
221     }
222 
GetFocusIndicatorHorizontalPadding()223     const Dimension& GetFocusIndicatorHorizontalPadding() const
224     {
225         return focusIndicatorHorizontalPadding_;
226     }
227 
GetFocusIndicatorVerticalPadding()228     const Dimension& GetFocusIndicatorVerticalPadding() const
229     {
230         return focusIndicatorVerticalPadding_;
231     }
232 
GetSubTabTextOnColor()233     const Color& GetSubTabTextOnColor() const
234     {
235         return subTabTextOnColor_;
236     }
237 
GetSubTabTextOffColor()238     const Color& GetSubTabTextOffColor() const
239     {
240         return subTabTextOffColor_;
241     }
242 
GetSubTabBoardTextOnColor()243     const Color& GetSubTabBoardTextOnColor() const
244     {
245         return subTabBoardTextOnColor_;
246     }
247 
GetSubTabIndicatorHeight()248     const Dimension& GetSubTabIndicatorHeight() const
249     {
250         return subTabIndicatorHeight_;
251     }
252 
GetSubTabIndicatorGap()253     const Dimension& GetSubTabIndicatorGap() const
254     {
255         return subTabIndicatorGap_;
256     }
257 
GetSubTabHorizontalPadding()258     const Dimension& GetSubTabHorizontalPadding() const
259     {
260         return subTabHorizontalPadding_;
261     }
262 
GetSubTabItemPadding()263     const Dimension& GetSubTabItemPadding() const
264     {
265         return subTabItemPadding_;
266     }
267 
GetSubTabTopPadding()268     const Dimension& GetSubTabTopPadding() const
269     {
270         return subTabTopPadding_;
271     }
272 
GetSubTabBottomPadding()273     const Dimension& GetSubTabBottomPadding() const
274     {
275         return subTabBottomPadding_;
276     }
277 
GetSubTabBarHoverColor()278     const Color& GetSubTabBarHoverColor() const
279     {
280         return subTabBarHoverColor_;
281     }
282 
GetSubTabBarPressedColor()283     const Color& GetSubTabBarPressedColor() const
284     {
285         return subTabBarPressedColor_;
286     }
287 
GetSubTabTextDefaultFontSize()288     const Dimension& GetSubTabTextDefaultFontSize() const
289     {
290         return subtabTextDefaultFontSize_;
291     }
292 
GetSubtabLandscapeHorizontalPadding()293     const Dimension& GetSubtabLandscapeHorizontalPadding() const
294     {
295         return subtabLandscapeHorizontalPadding_;
296     }
297 
GetBottomTabHorizontalPadding()298     const Dimension& GetBottomTabHorizontalPadding() const
299     {
300         return bottomTabHorizontalPadding_;
301     }
302 
GetBottomTabTextOn()303     const Color& GetBottomTabTextOn() const
304     {
305         return bottomTabTextOn_;
306     }
307 
GetBottomTabTextOff()308     const Color& GetBottomTabTextOff() const
309     {
310         return bottomTabTextOff_;
311     }
312 
GetBottomTabIconOn()313     const Color& GetBottomTabIconOn() const
314     {
315         return bottomTabIconOn_;
316     }
317 
GetBottomTabIconOff()318     const Color& GetBottomTabIconOff() const
319     {
320         return bottomTabIconOff_;
321     }
322 
GetBottomTabSymbolOn()323     const Color& GetBottomTabSymbolOn() const
324     {
325         return bottomTabSymbolOn_;
326     }
327 
GetBottomTabSymbolOff()328     const Color& GetBottomTabSymbolOff() const
329     {
330         return bottomTabSymbolOff_;
331     }
332 
GetBottomTabImageSize()333     const Dimension& GetBottomTabImageSize() const
334     {
335         return bottomTabImageSize_;
336     }
337 
GetBottomTabTextSize()338     const Dimension& GetBottomTabTextSize() const
339     {
340         return bottomTabTextSize_;
341     }
342 
GetBottomTabHorizontalTextSize()343     const Dimension& GetBottomTabHorizontalTextSize() const
344     {
345         return bottomTabHorizontalTextSize_;
346     }
347 
GetBottomTabBackgroundBlurStyle()348     const int& GetBottomTabBackgroundBlurStyle() const
349     {
350         return bottomTabBackgroundBlurStyle_;
351     }
352 
GetDefaultTabBarName()353     const std::string& GetDefaultTabBarName() const
354     {
355         return defaultTabBarName_;
356     }
357 
GetBottomTabBarSpace()358     const Dimension& GetBottomTabBarSpace() const
359     {
360         return bottomTabBarSpace_;
361     }
362 
GetHorizontalBottomTabBarSpace()363     const Dimension& GetHorizontalBottomTabBarSpace() const
364     {
365         return horizontalBottomTabBarSpace_;
366     }
367 
GetSubTabBarHoverDuration()368     double GetSubTabBarHoverDuration() const
369     {
370         return subTabBarHoverDuration_;
371     }
372 
GetSubTabBarHoverToPressDuration()373     double GetSubTabBarHoverToPressDuration() const
374     {
375         return subTabBarHoverToPressDuration_;
376     }
377 
GetTabContentAnimationDuration()378     double GetTabContentAnimationDuration() const
379     {
380         return tabContentAnimationDuration_;
381     }
382 
GetTabBarDefaultHeight()383     const Dimension& GetTabBarDefaultHeight() const
384     {
385         return tabBarDefaultHeight_;
386     }
387 
GetTabBarDefaultWidth()388     const Dimension& GetTabBarDefaultWidth() const
389     {
390         return tabBarDefaultWidth_;
391     }
392 
GetSubTabBarMinWidth()393     const Dimension& GetSubTabBarMinWidth() const
394     {
395         return subTabBarMinWidth_;
396     }
397 
GetDividerColor()398     const Color& GetDividerColor() const
399     {
400         return dividerColor_;
401     }
402 
GetTabBarShadowMargin()403     const Dimension& GetTabBarShadowMargin() const
404     {
405         return tabBarShadowMargin_;
406     }
407 
GetTabBarGradientWidth()408     const Dimension& GetTabBarGradientWidth() const
409     {
410         return tabBarGradientWidth_;
411     }
412 
GetColorBottomTabSubBg()413     const Color& GetColorBottomTabSubBg() const
414     {
415         return colorBottomTabSubBg_;
416     }
GetColorBottomTabSubBgBlur()417     const Color& GetColorBottomTabSubBgBlur() const
418     {
419         return colorBottomTabSubBgBlur_;
420     }
421 
GetTabBarColumnGutter()422     const Dimension& GetTabBarColumnGutter() const
423     {
424         return tabBarColumnGutter_;
425     }
426 
GetTabBarColumnMargin()427     const Dimension& GetTabBarColumnMargin() const
428     {
429         return tabBarColumnMargin_;
430     }
431 
GetsubTabBarThirdLargeFontSizeScale()432     float GetsubTabBarThirdLargeFontSizeScale() const
433     {
434         return subTabBarThirdLargeFontSizeScale_;
435     }
436 
GetHorizontalBottomTabMinWidth()437     const Dimension& GetHorizontalBottomTabMinWidth() const
438     {
439         return horizontalBottomTabMinWidth_;
440     }
GetBottomTabBarDefaultWidth()441     const Dimension& GetBottomTabBarDefaultWidth() const
442     {
443         return bottomTabBarDefaultHeight_;
444     }
GetDialogRadiusLevel10()445     const Dimension& GetDialogRadiusLevel10() const
446     {
447         return dialog_radius_level10_;
448     }
GetDialogIconColor()449     const Color& GetDialogIconColor() const
450     {
451         return dialog_iconColor_;
452     }
GetDialogFontColor()453     const Color& GetDialogFontColor() const
454     {
455         return dialog_fontColor_;
456     }
GetSubTabBarBigFontSizeScale()457     float GetSubTabBarBigFontSizeScale() const
458     {
459         return subTabBarBigFontSizeScale_;
460     }
GetSubTabBarLargeFontSizeScale()461     float GetSubTabBarLargeFontSizeScale() const
462     {
463         return subTabBarLargeFontSizeScale_;
464     }
GetSubTabBarMaxFontSizeScale()465     float GetSubTabBarMaxFontSizeScale() const
466     {
467         return subTabBarMaxFontSizeScale_;
468     }
GetSubTabBarOriginFontSizeScale()469     float GetSubTabBarOriginFontSizeScale() const
470     {
471         return subTabBarOriginFontSizeScale_;
472     }
GetSubTabBarLeftRightMargin()473     const Dimension& GetSubTabBarLeftRightMargin() const
474     {
475         return subTabBarLeftRightMargin_;
476     }
GetSubTabBarIndicatorstyleMarginTop()477     const Dimension& GetSubTabBarIndicatorstyleMarginTop() const
478     {
479         return subTabBarIndicatorstyleMarginTop_;
480     }
481 
482 protected:
483     TabTheme() = default;
484 
485 private:
486     Dimension labelPadding_;
487     Dimension padding_;
488     Dimension gradientWidth_;
489     Dimension defaultHeight_;
490     Dimension defaultWidth_;
491     Dimension defaultItemHeight_;
492     Color backgroundColor_;
493     Color activeIndicatorColor_;
494     Dimension activeIndicatorWidth_;
495     Dimension activeIndicatorMinWidth_;
496     Dimension activeIndicatorPadding_;
497     Color focusIndicatorColor_;
498     Dimension focusIndicatorRadius_;
499     Dimension focusIndicatorHorizontalPadding_;
500     Dimension focusIndicatorVerticalPadding_;
501     Color subTabTextOnColor_;
502     Color subTabTextOffColor_;
503     Color subTabBoardTextOnColor_;
504     Dimension subTabIndicatorHeight_;
505     Dimension subTabIndicatorGap_;
506     Dimension subTabHorizontalPadding_;
507     Dimension subTabTopPadding_;
508     Dimension subTabBottomPadding_;
509     Dimension subTabItemPadding_;
510     Color subTabBarHoverColor_;
511     Color subTabBarPressedColor_;
512     Dimension subtabTextDefaultFontSize_;
513     Dimension subtabLandscapeHorizontalPadding_;
514     Dimension bottomTabHorizontalPadding_;
515     Color bottomTabTextOn_;
516     Color bottomTabTextOff_;
517     Color bottomTabIconOn_;
518     Color bottomTabIconOff_;
519     Color bottomTabSymbolOn_;
520     Color bottomTabSymbolOff_;
521     Dimension bottomTabImageSize_;
522     Dimension bottomTabTextSize_;
523     Dimension bottomTabHorizontalTextSize_;
524     std::string defaultTabBarName_;
525     Dimension bottomTabBarSpace_;
526     Dimension horizontalBottomTabBarSpace_;
527     double subTabBarHoverDuration_;
528     double subTabBarHoverToPressDuration_;
529     double tabContentAnimationDuration_;
530     Dimension tabBarDefaultHeight_;
531     Dimension bottomTabBarDefaultHeight_;
532     Dimension tabBarDefaultWidth_;
533     Dimension subTabBarMinWidth_;
534     Color dividerColor_;
535     Dimension tabBarShadowMargin_;
536     Dimension tabBarGradientWidth_;
537     Color colorBottomTabSubBg_;
538     Color colorBottomTabSubBgBlur_;
539     Dimension tabBarColumnGutter_;
540     Dimension tabBarColumnMargin_;
541     Dimension horizontalBottomTabMinWidth_;
542     Dimension dialog_radius_level10_;
543     Color dialog_iconColor_;
544     Color dialog_fontColor_;
545     int bottomTabBackgroundBlurStyle_;
546     float subTabBarBigFontSizeScale_ = 1.75f;
547     float subTabBarLargeFontSizeScale_ = 2.0f;
548     float subTabBarMaxFontSizeScale_ = 3.2f;
549     float subTabBarOriginFontSizeScale_ = 1.0f;
550     Dimension subTabBarLeftRightMargin_;
551     Dimension subTabBarIndicatorstyleMarginTop_;
552     float subTabBarThirdLargeFontSizeScale_ = 1.45f;
553 };
554 
555 } // namespace OHOS::Ace
556 
557 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_TAB_BAR_TAB_THEME_H
558