lusingander / fyne-theme-generator Goto Github PK
View Code? Open in Web Editor NEWWYSIWYG theme editor for Fyne ๐จ
License: MIT License
WYSIWYG theme editor for Fyne ๐จ
License: MIT License
I like the app so far and it is a lot easier to make your own theme with it, so thanks a lot for making it!
I just discovered that the font selection for bold
and bold italic
is mixed up. You can also see it in the card widget titles. They are all italic. If you switch out the fonts manually and put a bold italic
font in the selection for a bold
font and the other way around it works properly.
Edit: But in the theme file it is correct. So I exported my theme file as shown in image 1 but the bold and bold italic fonts are mixed up. So the bug only seems to be in the ui.
Managed to somehow generate a theme that breaks the software it's used in and causes random white dialogues and boxes in a fyne app on random pc's
// Code generated by fyne-theme-generator
package gui
import (
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
type Theme struct{}
func (Theme) Color(c fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
switch c {
case theme.ColorNameBackground:
return color.NRGBA{R: 0x30, G: 0x30, B: 0x30, A: 0xff}
case theme.ColorNameButton:
return color.Alpha16{A: 0x0}
case theme.ColorNameDisabledButton:
return color.NRGBA{R: 0x26, G: 0x26, B: 0x26, A: 0xff}
case theme.ColorNameDisabled:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0x42}
case theme.ColorNameError:
return color.NRGBA{R: 0xf4, G: 0x43, B: 0x36, A: 0xff}
case theme.ColorNameFocus:
return color.NRGBA{R: 0x21, G: 0x96, B: 0xf3, A: 0x7f}
case theme.ColorNameForeground:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0xff}
case theme.ColorNameHover:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0xf}
case theme.ColorNameInputBackground:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0x19}
case theme.ColorNamePlaceHolder:
return color.NRGBA{R: 0xb2, G: 0xb2, B: 0xb2, A: 0xff}
case theme.ColorNamePressed:
return color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0x66}
case theme.ColorNamePrimary:
return color.NRGBA{R: 0x21, G: 0x96, B: 0xf3, A: 0xff}
case theme.ColorNameScrollBar:
return color.NRGBA{R: 0x0, G: 0x0, B: 0x0, A: 0x99}
case theme.ColorNameShadow:
return color.NRGBA{R: 0x0, G: 0x0, B: 0x0, A: 0x66}
case theme.ColorNameSuccess:
return color.NRGBA{R: 0x0, G: 0xf0, B: 0x0, A: 0x66}
default:
return theme.DefaultTheme().Color(c, v)
}
}
func (Theme) Font(s fyne.TextStyle) fyne.Resource {
if s.Monospace {
return theme.DefaultTheme().Font(s)
}
if s.Bold {
if s.Italic {
return theme.DefaultTheme().Font(s)
}
return theme.DefaultTheme().Font(s)
}
if s.Italic {
return theme.DefaultTheme().Font(s)
}
return theme.DefaultTheme().Font(s)
}
func (Theme) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
func (Theme) Size(s fyne.ThemeSizeName) float32 {
switch s {
case theme.SizeNameCaptionText:
return 11
case theme.SizeNameInlineIcon:
return 20
case theme.SizeNamePadding:
return 2
case theme.SizeNameScrollBar:
return 16
case theme.SizeNameScrollBarSmall:
return 6
case theme.SizeNameSeparatorThickness:
return 0
case theme.SizeNameText:
return 14
case theme.SizeNameInputBorder:
return 2
case theme.SizeNameInnerPadding:
return 2
default:
return theme.DefaultTheme().Size(s)
}
}
Then I'm guessing the PCs that it doesn't work on have a different theme variant default (light vs dark) compared to your working PC. Your custom theme is missing some colours that the toolkit is providing - my guess is that
ColorNameOverlayBackground
would be most likely.
How can I reset to the standard Fyne default theme colors ? I changed some colors and now all my Fyne apps use these new colors. I didn't change the code of my Fyne programs, they all changed their colors now !
Regards,
Lennart
The generated font file still references Fyne v1. I don't know if this is intentional so I just want to share my finding with you.
In line 5 of font_gen.go
:
import "fyne.io/fyne"
I got this finding Trojan:Win32/Wacatac.B!ml
today after I compile the project on Windows 11 with go 1.21.4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.