diff --git a/App/Browser View/BrowserViewController.swift b/App/Browser View/BrowserViewController.swift index 06af7bd..f49f6be 100644 --- a/App/Browser View/BrowserViewController.swift +++ b/App/Browser View/BrowserViewController.swift @@ -308,6 +308,9 @@ class BrowserViewController: UIViewController, WKNavigationDelegate, WKUIDelegat // Show tab bar view? browserView.tabBarViewVisible = tabController.tabs.count > 1 + // Color theme + browserView.titlebarView.setColorTheme(tab.colorTheme) + // Load progress updateLoadProgress(forWebView: webView) loadingObservation = webView.observe(\.estimatedProgress) { [unowned self] (webView, observedChange) in diff --git a/App/Tabs/Tab.swift b/App/Tabs/Tab.swift index f6f0187..bc38d96 100644 --- a/App/Tabs/Tab.swift +++ b/App/Tabs/Tab.swift @@ -40,6 +40,25 @@ class Tab: NSObject, SBRProcessBundleBridgeDelegate didSet { bridge.allowAllScripts = javaScriptEnabled } } + public lazy var colorTheme: [UIColor] = { + // Looks really cool as-is, but maybe compute a color based on the + // title or URL to make it show up the same for each website? + return [ + UIColor( + hue: CGFloat.random(in: 0...1.0), + saturation: 0.89, + brightness: 0.3, + alpha: 1.0 + ), + UIColor( + hue: CGFloat.random(in: 0...1.0), + saturation: 1.0, + brightness: 0.7, + alpha: 1.0 + ), + ] + }() + public var identifier = UUID() public var favicon: UIImage? diff --git a/App/Titlebar and URL Bar/TitlebarView.swift b/App/Titlebar and URL Bar/TitlebarView.swift index bf15a86..3c14491 100644 --- a/App/Titlebar and URL Bar/TitlebarView.swift +++ b/App/Titlebar and URL Bar/TitlebarView.swift @@ -51,6 +51,10 @@ class TitlebarView: UIView titleLabelView.attributedText = NSAttributedString(string: appName, attributes: titleAttributes) } } + + func setColorTheme(_ colorTheme: [UIColor]) { + backgroundView.colors = colorTheme + } override func layoutSubviews() { super.layoutSubviews()