Styles and Themes Support #3
레이블
마일스톤 없음
담당자 없음
참여자 1명
알림
마감일
마감일이 설정되지 않았습니다.
의존성
No dependencies set.
Reference: go/ui#3
불러오는 중...
Reference in New Issue
아직 콘텐츠가 없습니다.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Ideas how to add styles and themes to the UI toolkit.
Basic Overview
Themes and styles should be a sub-package of ui, i.e. at go/ui/style.
Each widget that supports styles will define a .SetStyle() function that will take a widget-specific struct with options relevant to the widget.
A Theme will be a struct with pointers to default styles for all supported widgets. A nil value means that widget is not styled by the theme and the widget should use its own defaults.
Struct Examples
Setting a Theme
Probably have the theme be a global ui package variable that can be changed. New widgets created after a theme change will use the theme when they first style themselves.
ui.SetTheme(style.Theme)
When a widget needs its style info the logic should be:
Default Styles
Provide some Bootstrap-style default styles for buttons, to easily mark a button as "primary", "secondary", "success", "info", "warning" and "danger".
btn.SetStyle(style.ButtonPrimary)
Maybe styles like this can be functions that return their style dynamically, so it can take your theme's style and just set the background color as needed and return it, making it usable for custom themes.
Default Themes
Include a few default built-in themes, like: