From e0aea0556e09b7b24c35a0e51021f37e67fa2293 Mon Sep 17 00:00:00 2001 From: Tomas Strba Date: Sun, 20 Mar 2022 22:56:09 +0100 Subject: [PATCH 1/7] MouseOverAnimationButton class --- DuckDuckGo.xcodeproj/project.pbxproj | 16 +++ .../Common/Extensions/AnimationView.swift | 33 +++++ .../AppKit/MouseOverAnimationButton.swift | 134 ++++++++++++++++++ .../Common/View/AppKit/MouseOverButton.swift | 3 +- .../AddressBarButtonsViewController.swift | 13 +- DuckDuckGo/NavigationBar/View/dark-flame.json | 1 + DuckDuckGo/NavigationBar/View/flame.json | 1 + .../TabBar/View/Base.lproj/TabBar.storyboard | 12 +- .../TabBar/View/TabBarViewController.swift | 7 +- 9 files changed, 207 insertions(+), 13 deletions(-) create mode 100644 DuckDuckGo/Common/Extensions/AnimationView.swift create mode 100644 DuckDuckGo/Common/View/AppKit/MouseOverAnimationButton.swift create mode 100644 DuckDuckGo/NavigationBar/View/dark-flame.json create mode 100644 DuckDuckGo/NavigationBar/View/flame.json diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index c333f09339..012b747f5c 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -396,6 +396,10 @@ AA7412B724D1687000D22FE0 /* TabBarScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7412B624D1687000D22FE0 /* TabBarScrollView.swift */; }; AA7412BD24D2BEEE00D22FE0 /* MainWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7412BC24D2BEEE00D22FE0 /* MainWindow.swift */; }; AA75A0AE26F3500C0086B667 /* PrivacyIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA75A0AD26F3500C0086B667 /* PrivacyIconViewModel.swift */; }; + AA7EB6DF27E7C57D00036718 /* MouseOverAnimationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7EB6DE27E7C57D00036718 /* MouseOverAnimationButton.swift */; }; + AA7EB6E227E7D05500036718 /* flame.json in Resources */ = {isa = PBXBuildFile; fileRef = AA7EB6E027E7D05500036718 /* flame.json */; }; + AA7EB6E327E7D05500036718 /* dark-flame.json in Resources */ = {isa = PBXBuildFile; fileRef = AA7EB6E127E7D05500036718 /* dark-flame.json */; }; + AA7EB6E527E7D6DC00036718 /* AnimationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7EB6E427E7D6DC00036718 /* AnimationView.swift */; }; AA80EC54256BE3BC007083E7 /* UserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA80EC53256BE3BC007083E7 /* UserText.swift */; }; AA80EC67256C4691007083E7 /* BrowserTab.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA80EC69256C4691007083E7 /* BrowserTab.storyboard */; }; AA80EC73256C46A2007083E7 /* Suggestion.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA80EC75256C46A2007083E7 /* Suggestion.storyboard */; }; @@ -1130,6 +1134,10 @@ AA7412BC24D2BEEE00D22FE0 /* MainWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainWindow.swift; sourceTree = ""; }; AA75A0AD26F3500C0086B667 /* PrivacyIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIconViewModel.swift; sourceTree = ""; }; AA7DE8E026A9BD000012B490 /* History 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "History 2.xcdatamodel"; sourceTree = ""; }; + AA7EB6DE27E7C57D00036718 /* MouseOverAnimationButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MouseOverAnimationButton.swift; sourceTree = ""; }; + AA7EB6E027E7D05500036718 /* flame.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flame.json; sourceTree = ""; }; + AA7EB6E127E7D05500036718 /* dark-flame.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "dark-flame.json"; sourceTree = ""; }; + AA7EB6E427E7D6DC00036718 /* AnimationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationView.swift; sourceTree = ""; }; AA80EC53256BE3BC007083E7 /* UserText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserText.swift; sourceTree = ""; }; AA80EC68256C4691007083E7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/BrowserTab.storyboard; sourceTree = ""; }; AA80EC74256C46A2007083E7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Suggestion.storyboard; sourceTree = ""; }; @@ -2180,6 +2188,7 @@ B693954426F04BE90015B914 /* LongPressButton.swift */, B693953F26F04BE80015B914 /* MouseClickView.swift */, B693954926F04BEB0015B914 /* MouseOverButton.swift */, + AA7EB6DE27E7C57D00036718 /* MouseOverAnimationButton.swift */, 4B379C2327BDE1B0008A968E /* FlatButton.swift */, B693953D26F04BE70015B914 /* MouseOverView.swift */, B693953C26F04BE70015B914 /* NibLoadable.swift */, @@ -2825,11 +2834,13 @@ AA3439752754D55100B241FA /* trackers-3.json */, AA34396A2754D4E200B241FA /* shield.json */, AA34396B2754D4E300B241FA /* shield-dot.json */, + AA7EB6E027E7D05500036718 /* flame.json */, AA3439762754D55100B241FA /* dark-trackers-1.json */, AA3439722754D55100B241FA /* dark-trackers-2.json */, AA3439772754D55100B241FA /* dark-trackers-3.json */, AA34396F2754D4E900B241FA /* dark-shield.json */, AA34396E2754D4E900B241FA /* dark-shield-dot.json */, + AA7EB6E127E7D05500036718 /* dark-flame.json */, ); path = View; sourceTree = ""; @@ -3185,6 +3196,7 @@ children = ( B6DB3CF826A00E2D00D459B7 /* AVCaptureDevice+SwizzledAuthState.swift */, AA61C0D12727F59B00E6B681 /* ArrayExtension.swift */, + AA7EB6E427E7D6DC00036718 /* AnimationView.swift */, B6106B9D26A565DA0013B453 /* BundleExtension.swift */, 4BA1A6C1258B0A1300F6F690 /* ContiguousBytesExtension.swift */, 85AC3AF625D5DBFD00C7D2AA /* DataExtension.swift */, @@ -3934,6 +3946,8 @@ EAC80DE0271F6C0100BBF02D /* fb-sdk.js in Resources */, 85625994269C8F9600EE44BC /* PasswordManager.storyboard in Resources */, 4B0511C6262CAA5A00F6079C /* DefaultBrowserTableCellView.xib in Resources */, + AA7EB6E327E7D05500036718 /* dark-flame.json in Resources */, + AA7EB6E227E7D05500036718 /* flame.json in Resources */, 4B677433255DBEB800025BD8 /* httpsMobileV2Bloom.bin in Resources */, AA34397B2754D55100B241FA /* trackers-3.json in Resources */, 026ADE1426C3010C002518EE /* macos-config.json in Resources */, @@ -4390,6 +4404,7 @@ 4B9292A326670D2A00AD2C21 /* BookmarkManagedObject.swift in Sources */, 4B723E1326B0007A00E14D75 /* CSVLoginExporter.swift in Sources */, 85C48CCC278D808F00D3263E /* NSAttributedStringExtension.swift in Sources */, + AA7EB6E527E7D6DC00036718 /* AnimationView.swift in Sources */, 8562599A269CA0A600EE44BC /* NSRectExtension.swift in Sources */, 4B0511C5262CAA5A00F6079C /* PrivacySecurityPreferencesTableCellView.swift in Sources */, B6040856274B830F00680351 /* DictionaryExtension.swift in Sources */, @@ -4446,6 +4461,7 @@ B693954A26F04BEB0015B914 /* NibLoadable.swift in Sources */, AA3D531527A1ED9300074EC1 /* FeedbackWindow.swift in Sources */, 85F0FF1327CFAB04001C7C6E /* RecentlyVisitedView.swift in Sources */, + AA7EB6DF27E7C57D00036718 /* MouseOverAnimationButton.swift in Sources */, AA7412B724D1687000D22FE0 /* TabBarScrollView.swift in Sources */, 4B0511C7262CAA5A00F6079C /* PreferenceTableCellView.swift in Sources */, 4B9292D92667124B00AD2C21 /* BookmarkListTreeControllerDataSource.swift in Sources */, diff --git a/DuckDuckGo/Common/Extensions/AnimationView.swift b/DuckDuckGo/Common/Extensions/AnimationView.swift new file mode 100644 index 0000000000..102496b44e --- /dev/null +++ b/DuckDuckGo/Common/Extensions/AnimationView.swift @@ -0,0 +1,33 @@ +// +// AnimationView.swift +// +// Copyright © 2022 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Lottie + +extension AnimationView { + + convenience init?(named animationName: String, imageProvider:AnimationImageProvider? = nil) { + guard let animation = Animation.named(animationName, animationCache: LottieAnimationCache.shared) else { + return nil + } + + self.init(animation: animation, imageProvider: imageProvider) + identifier = NSUserInterfaceItemIdentifier(rawValue: animationName) + } + +} diff --git a/DuckDuckGo/Common/View/AppKit/MouseOverAnimationButton.swift b/DuckDuckGo/Common/View/AppKit/MouseOverAnimationButton.swift new file mode 100644 index 0000000000..3f905086d2 --- /dev/null +++ b/DuckDuckGo/Common/View/AppKit/MouseOverAnimationButton.swift @@ -0,0 +1,134 @@ +// +// MouseOverAnimationButton.swift +// +// Copyright © 2022 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Lottie +import Combine + +final class MouseOverAnimationButton: MouseOverButton { + + // MARK: - Mouse Over Events + + override func awakeFromNib() { + super.awakeFromNib() + + subscribeToIsMouseOver() + } + + private var isMouseOverCancellable: AnyCancellable? + + private func subscribeToIsMouseOver() { + isMouseOverCancellable = $isMouseOver + .dropFirst() + .sink { [weak self] isMouseOver in + if isMouseOver { + self?.animate() + } else { + self?.stopAnimation() + } + } + } + + // MARK: - Loading & Updating of Animation Views + + struct AnimationNames { + let aqua: String + let dark: String + } + + var animationNames: AnimationNames? { + didSet { + loadAnimationViews() + updateAnimationView() + } + } + + struct AnimationViews { + let aqua: AnimationView + let dark: AnimationView + } + + private var animationViewCache: AnimationViews? + + private func loadAnimationViews() { + guard let animationNames = animationNames, + let aquaAnimationView = AnimationView(named: animationNames.aqua), + let darkAnimationView = AnimationView(named: animationNames.dark) else { + assertionFailure("Missing animation names or animation files in the bundle") + return + } + + animationViewCache = AnimationViews( + aqua: aquaAnimationView, + dark: darkAnimationView) + } + + private var currentAnimationView: AnimationView? + + private func updateAnimationView() { + guard let animationViewCache = animationViewCache else { + assertionFailure("No animations loaded") + return + } + + let isAquaMode = NSApp.effectiveAppearance.name == NSAppearance.Name.aqua + let newAnimationView: AnimationView + // Animation view causes problems in tests + if AppDelegate.isRunningTests { + newAnimationView = AnimationView() + } else { + newAnimationView = isAquaMode ? animationViewCache.aqua : animationViewCache.dark + } + + guard currentAnimationView?.identifier != newAnimationView.identifier else { + // No need to update + return + } + + currentAnimationView?.removeFromSuperview() + currentAnimationView = newAnimationView + + addAndLayout(newAnimationView) + } + + // MARK: - Animating + + private var imageCache: NSImage? + + private func hideImage() { + imageCache = image + image = nil + } + + private func showImage() { + if let imageCache = imageCache { + image = imageCache + } + } + + private func animate() { + hideImage() + currentAnimationView?.play() + } + + private func stopAnimation() { + currentAnimationView?.stop() + showImage() + } + +} diff --git a/DuckDuckGo/Common/View/AppKit/MouseOverButton.swift b/DuckDuckGo/Common/View/AppKit/MouseOverButton.swift index a5a9965a21..3bb96bc402 100644 --- a/DuckDuckGo/Common/View/AppKit/MouseOverButton.swift +++ b/DuckDuckGo/Common/View/AppKit/MouseOverButton.swift @@ -121,12 +121,14 @@ internal class MouseOverButton: NSButton { @Published private(set) var isMouseOver = false { didSet { updateTintColor() + updateLayer() } } var isMouseDown = false { didSet { updateTintColor() + updateLayer() } } @@ -140,7 +142,6 @@ internal class MouseOverButton: NSButton { self.contentTintColor = self.normalTintColor } } - updateLayer() } override func updateLayer() { diff --git a/DuckDuckGo/NavigationBar/View/AddressBarButtonsViewController.swift b/DuckDuckGo/NavigationBar/View/AddressBarButtonsViewController.swift index f5336988c4..32891abe86 100644 --- a/DuckDuckGo/NavigationBar/View/AddressBarButtonsViewController.swift +++ b/DuckDuckGo/NavigationBar/View/AddressBarButtonsViewController.swift @@ -415,14 +415,17 @@ final class AddressBarButtonsViewController: NSViewController { } private var animationViewCache = [String: AnimationView]() - private func getAnimationView(for animationName: String) -> AnimationView { + private func getAnimationView(for animationName: String) -> AnimationView? { if let animationView = animationViewCache[animationName] { return animationView } - let animation = Animation.named(animationName, animationCache: LottieAnimationCache.shared) - let animationView = AnimationView(animation: animation, imageProvider: trackerAnimationImageProvider) - animationView.identifier = NSUserInterfaceItemIdentifier(rawValue: animationName) + guard let animationView = AnimationView(named: animationName, + imageProvider: trackerAnimationImageProvider) else { + assertionFailure("Missing animation file") + return nil + } + animationViewCache[animationName] = animationView return animationView } @@ -440,7 +443,7 @@ final class AddressBarButtonsViewController: NSViewController { newAnimationView = AnimationView() } else { // For unknown reason, this caused infinite execution of various unit tests. - newAnimationView = getAnimationView(for: animationName) + newAnimationView = getAnimationView(for: animationName) ?? AnimationView() } animationWrapperView.addAndLayout(newAnimationView) newAnimationView.isHidden = true diff --git a/DuckDuckGo/NavigationBar/View/dark-flame.json b/DuckDuckGo/NavigationBar/View/dark-flame.json new file mode 100644 index 0000000000..8c17781926 --- /dev/null +++ b/DuckDuckGo/NavigationBar/View/dark-flame.json @@ -0,0 +1 @@ +{"v":"5.7.6","fr":60,"ip":60,"op":91,"w":56,"h":56,"nm":"_flame","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"spark R 5","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.853,53.045,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.5,"s":[0]},{"t":84.5,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":69.5,"op":87,"st":47,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"spark L 5","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.508,52.379,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0]},{"t":79,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":64,"op":80,"st":41.5,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"spark R 4","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.853,53.045,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9.5,"s":[0]},{"t":24.5,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9.5,"op":27,"st":-13,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"spark L 4","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.508,52.379,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4,"s":[0]},{"t":19,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":20,"st":-18.5,"bm":0},{"ddd":0,"ind":6,"ty":3,"nm":"_CTRL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[29.934,23.502,0],"ix":2,"l":2},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":-90,"s":[100,100,100]},{"i":{"x":[0.6,0.6,0.6],"y":[1,1,1]},"o":{"x":[0.32,0.32,0.32],"y":[0.94,0.94,0]},"t":-85,"s":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-5.978]},"t":-70,"s":[125,125,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-60,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":30,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":75,"s":[110,110,100]},{"t":90,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":17495,"st":-270,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"inner 2","parent":6,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.409,60.381,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[7.272,3.56],"ix":2},"p":{"a":0,"k":[0,-1],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.978431373835,0.828431382775,0.37843137607,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = content('inner').content('Fill 1').color;"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.043,9.771],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-3.114,-10.476],[1.625,2.962],[4.375,-0.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-2.641,-10.696],[3.461,1.122],[6.211,-3.921]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-3.114,-10.476],[1.625,2.962],[4.375,-0.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":78,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-2.641,-10.696],[3.461,1.122],[6.211,-3.921]],"c":true}]},{"t":90,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.913725495338,0.913725495338,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"inner","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":17495,"st":-270,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"outer 2","parent":6,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.469,54.744,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[1.525,6.617],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-12.074,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[15.075,-7.35],[7.217,0.807],[3.269,-17.705],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[3.294,5.742],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-1.024,6.651],[-1.611,-1.22]],"v":[[-10.19,-6.235],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[2.73,-18.783],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[2.433,6.28],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-7.419,-9.05],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[11.35,-6.419],[7.217,0.807],[3.699,-16.845],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[1.525,6.617],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-12.074,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[15.075,-7.35],[7.217,0.807],[3.269,-17.705],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[3.294,5.742],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-1.024,6.651],[-1.611,-1.22]],"v":[[-10.19,-6.235],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[2.73,-18.783],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[2.433,6.28],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-7.419,-9.05],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[11.35,-6.419],[7.217,0.807],[3.699,-16.845],[-6.999,-0.212]],"c":true}]},{"t":90,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0.20000000298,0.20000000298,0.20000000298,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0.870588243008,0.345098048449,0.20000000298,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":59,"s":[0.870588243008,0.345098048449,0.20000000298,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0.811764717102,0.811764717102,0.811764717102,1]},{"t":65,"s":[0.870588243008,0.345098048449,0.20000000298,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"outer","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":17495,"st":-270,"bm":0}],"markers":[{"tm":0,"cm":"flicker-stay\r","dr":30},{"tm":60,"cm":"dark-flicker-stay","dr":30}]} \ No newline at end of file diff --git a/DuckDuckGo/NavigationBar/View/flame.json b/DuckDuckGo/NavigationBar/View/flame.json new file mode 100644 index 0000000000..b180ad962f --- /dev/null +++ b/DuckDuckGo/NavigationBar/View/flame.json @@ -0,0 +1 @@ +{"v":"5.7.6","fr":60,"ip":0,"op":31,"w":56,"h":56,"nm":"_flame","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"spark R 4","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.853,53.045,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9.5,"s":[0]},{"t":24.5,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9.5,"op":27,"st":-13,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"spark L 4","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.508,52.379,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[119.048,119.048,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.719,13.75]],"o":[[0,0],[6.773,-13.861]],"v":[[-7.5,0.312],[-8.406,-25.125]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":10,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4,"s":[0]},{"t":19,"s":[317]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.870588235294,0.345098039216,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":20,"st":-18.5,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"_CTRL","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[29.934,23.502,0],"ix":2,"l":2},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":-90,"s":[100,100,100]},{"i":{"x":[0.6,0.6,0.6],"y":[1,1,1]},"o":{"x":[0.32,0.32,0.32],"y":[0.94,0.94,0]},"t":-85,"s":[80,80,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-5.978]},"t":-70,"s":[125,125,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-60,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"t":30,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":17495,"st":-270,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"inner 2","parent":3,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.409,60.381,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[7.272,3.56],"ix":2},"p":{"a":0,"k":[0,-1],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.978431373835,0.828431382775,0.37843137607,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = content('inner').content('Fill 1').color;"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.043,9.771],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-3.114,-10.476],[1.625,2.962],[4.375,-0.25]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":18,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-2.641,-10.696],[3.461,1.122],[6.211,-3.921]],"c":true}]},{"t":30,"s":[{"i":[[6.062,-3.375],[0,0],[-1.188,2.375],[0.812,4.438],[0,0],[-0.188,1.938]],"o":[[0,0],[-3.625,-2.25],[1.188,-2.375],[6.312,5.25],[1.062,-0.188],[1.562,1.438]],"v":[[2.562,9.562],[-3.188,9.375],[-5.625,1.125],[-0.375,-9.562],[1.625,3.875],[4.375,-0.25]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725495338,0.913725495338,0.913725495338,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"inner","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":17495,"st":-270,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"outer 2","parent":3,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48.469,54.744,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[1.525,6.617],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-12.074,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[15.075,-7.35],[7.217,0.807],[3.269,-17.705],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[3.294,5.742],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-1.024,6.651],[-1.611,-1.22]],"v":[[-10.19,-6.235],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[2.73,-18.783],[-6.999,-0.212]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[2.433,6.28],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-7.419,-9.05],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[11.35,-6.419],[7.217,0.807],[3.699,-16.845],[-6.999,-0.212]],"c":true}]},{"t":30,"s":[{"i":[[0,1.696],[-13.094,-6.213],[0,0],[-1.868,4.371],[-2.343,5.387],[0.605,-2.973],[-3.662,6.61],[-1.321,-5.562]],"o":[[-2.904,2.721],[0,0],[2.349,-0.597],[2.446,-6.855],[-2.636,0.781],[0,-7.239],[-8.155,1.631],[-1.611,-1.22]],"v":[[-9.281,-5.326],[-3.24,14.982],[2.467,15.131],[10.613,8.429],[12.281,-5.488],[7.217,0.807],[4.556,-15.131],[-6.999,-0.212]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0.20000000298,0.20000000298,0.20000000298,1]},{"t":5,"s":[0.870588243008,0.345098048449,0.20000000298,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"outer","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":17495,"st":-270,"bm":0}],"markers":[{"tm":0,"cm":"flicker5-color","dr":30}]} \ No newline at end of file diff --git a/DuckDuckGo/TabBar/View/Base.lproj/TabBar.storyboard b/DuckDuckGo/TabBar/View/Base.lproj/TabBar.storyboard index da88f187f2..ee6dcdbc50 100644 --- a/DuckDuckGo/TabBar/View/Base.lproj/TabBar.storyboard +++ b/DuckDuckGo/TabBar/View/Base.lproj/TabBar.storyboard @@ -1,8 +1,8 @@ - + - + @@ -169,7 +169,7 @@ -