diff --git a/safari/Mue Extension/Resources/manifest.json b/safari/Mue Extension/Resources/manifest.json index 76385fc6..1e469f0c 100644 --- a/safari/Mue Extension/Resources/manifest.json +++ b/safari/Mue Extension/Resources/manifest.json @@ -7,9 +7,6 @@ "version": "7.1.2", "homepage_url": "https://muetab.com", "permissions": ["search"], - "action": { - "default_icon": "icons/128x128.png" - }, "chrome_url_overrides": { "newtab": "index.html" }, diff --git a/safari/Mue.xcodeproj/project.pbxproj b/safari/Mue.xcodeproj/project.pbxproj index 41e3e149..44fd5434 100644 --- a/safari/Mue.xcodeproj/project.pbxproj +++ b/safari/Mue.xcodeproj/project.pbxproj @@ -62,8 +62,8 @@ ); explicitFolders = ( Resources/_locales, - Resources/icons, Resources/assets, + Resources/icons, Resources/src, ); path = "Mue Extension"; @@ -248,19 +248,19 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "Mue Extension/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = "Mue Extension"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright (c) 2019-2026 The Mue Authors"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@executable_path/../../../../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 7.1.2; OTHER_LDFLAGS = ( "-framework", SafariServices, ); - PRODUCT_BUNDLE_IDENTIFIER = mueauthors.mue.Extension; + PRODUCT_BUNDLE_IDENTIFIER = mueauthors.mue.extension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -282,19 +282,19 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "Mue Extension/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = "Mue Extension"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright (c) 2019-2026 The Mue Authors"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@executable_path/../../../../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 7.1.2; OTHER_LDFLAGS = ( "-framework", SafariServices, ); - PRODUCT_BUNDLE_IDENTIFIER = mueauthors.mue.Extension; + PRODUCT_BUNDLE_IDENTIFIER = mueauthors.mue.extension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -428,6 +428,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; @@ -437,14 +438,14 @@ ENABLE_USER_SELECTED_FILES = readonly; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_CFBundleDisplayName = Mue; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright (c) 2019-2026 The Mue Authors"; INFOPLIST_KEY_NSMainStoryboardFile = Main; INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 7.1.2; OTHER_LDFLAGS = ( "-framework", SafariServices, @@ -468,6 +469,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; @@ -477,14 +479,14 @@ ENABLE_USER_SELECTED_FILES = readonly; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_CFBundleDisplayName = Mue; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright (c) 2019-2026 The Mue Authors"; INFOPLIST_KEY_NSMainStoryboardFile = Main; INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 7.1.2; OTHER_LDFLAGS = ( "-framework", SafariServices, diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/Contents.json b/safari/Mue/Assets.xcassets/AppIcon.appiconset/Contents.json index 3f00db43..64dc11ee 100644 --- a/safari/Mue/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/safari/Mue/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,51 +1,61 @@ { "images" : [ { + "filename" : "icon_16x16.png", "idiom" : "mac", "scale" : "1x", "size" : "16x16" }, { + "filename" : "icon_16x16@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "16x16" }, { + "filename" : "icon_32x32.png", "idiom" : "mac", "scale" : "1x", "size" : "32x32" }, { + "filename" : "icon_32x32@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "32x32" }, { + "filename" : "icon_128x128.png", "idiom" : "mac", "scale" : "1x", "size" : "128x128" }, { + "filename" : "icon_128x128@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "128x128" }, { + "filename" : "icon_256x256.png", "idiom" : "mac", "scale" : "1x", "size" : "256x256" }, { + "filename" : "icon_256x256@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "256x256" }, { + "filename" : "icon_512x512.png", "idiom" : "mac", "scale" : "1x", "size" : "512x512" }, { + "filename" : "icon_512x512@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "512x512" diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 00000000..b1a2fd50 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png new file mode 100644 index 00000000..2c5f2807 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 00000000..04852976 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 00000000..e25ea3bd Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 00000000..2c5f2807 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 00000000..00802aa6 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 00000000..e25ea3bd Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 00000000..4988b857 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 00000000..00802aa6 Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512.png differ diff --git a/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 00000000..bd59022d Binary files /dev/null and b/safari/Mue/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ diff --git a/safari/Mue/Base.lproj/Main.storyboard b/safari/Mue/Base.lproj/Main.storyboard index bfe40da2..8594dc28 100644 --- a/safari/Mue/Base.lproj/Main.storyboard +++ b/safari/Mue/Base.lproj/Main.storyboard @@ -80,7 +80,7 @@ - + @@ -99,11 +99,11 @@ - + - + diff --git a/safari/Mue/Resources/Base.lproj/Main.html b/safari/Mue/Resources/Base.lproj/Main.html index 129e2774..9c1cc232 100644 --- a/safari/Mue/Resources/Base.lproj/Main.html +++ b/safari/Mue/Resources/Base.lproj/Main.html @@ -2,18 +2,30 @@ - + + + + - Mue Icon -

You can turn on Mue’s extension in Safari Extensions preferences.

-

Mue’s extension is currently on. You can turn it off in Safari Extensions preferences.

-

Mue’s extension is currently off. You can turn it on in Safari Extensions preferences.

- +
+
+ Mue Icon +

Mue

+

Fast, open and free-to-use new tab page

+ +
+

Enable Mue in Safari Extensions preferences to get started.

+

✓ Extension is enabled and ready to use!

+

Extension is disabled. Enable it in Safari Extensions preferences.

+
+ + +
diff --git a/safari/Mue/Resources/Icon.png b/safari/Mue/Resources/Icon.png index 423b491d..b1a2fd50 100644 Binary files a/safari/Mue/Resources/Icon.png and b/safari/Mue/Resources/Icon.png differ diff --git a/safari/Mue/Resources/Script.js b/safari/Mue/Resources/Script.js index d7e0ff8e..9ac56575 100644 --- a/safari/Mue/Resources/Script.js +++ b/safari/Mue/Resources/Script.js @@ -1,9 +1,9 @@ function show(enabled, useSettingsInsteadOfPreferences) { if (useSettingsInsteadOfPreferences) { - document.getElementsByClassName('state-on')[0].innerText = "Mue’s extension is currently on. You can turn it off in the Extensions section of Safari Settings."; - document.getElementsByClassName('state-off')[0].innerText = "Mue’s extension is currently off. You can turn it on in the Extensions section of Safari Settings."; - document.getElementsByClassName('state-unknown')[0].innerText = "You can turn on Mue’s extension in the Extensions section of Safari Settings."; - document.getElementsByClassName('open-preferences')[0].innerText = "Quit and Open Safari Settings…"; + document.getElementsByClassName('state-on')[0].innerText = "Extension is enabled and ready to use!"; + document.getElementsByClassName('state-off')[0].innerText = "Extension is disabled. Enable it in Safari Settings."; + document.getElementsByClassName('state-unknown')[0].innerText = "Enable Mue in Safari Settings to get started."; + document.getElementsByClassName('open-preferences')[0].innerText = "Open Safari Settings"; } if (typeof enabled === "boolean") { diff --git a/safari/Mue/Resources/Style.css b/safari/Mue/Resources/Style.css index cbde9e69..4480ad6e 100644 --- a/safari/Mue/Resources/Style.css +++ b/safari/Mue/Resources/Style.css @@ -2,12 +2,16 @@ -webkit-user-select: none; -webkit-user-drag: none; cursor: default; + margin: 0; + padding: 0; + box-sizing: border-box; } :root { - color-scheme: light dark; - --spacing: 20px; + --text-color: #ffffff; + --shadow: 0 4px 20px rgb(0 0 0 / 30%); + --background-color: #0A0A0A; } html { @@ -15,17 +19,71 @@ html { } body { + height: 100%; + margin: 0; + overflow: hidden; + font-family: 'Lexend Deca', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; +} + +.gradient-bg { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--background-color); + z-index: -1; +} + +.content { display: flex; align-items: center; justify-content: center; flex-direction: column; - - gap: var(--spacing); - margin: 0 calc(var(--spacing) * 2); + gap: calc(var(--spacing) * 0.5); height: 100%; - - font: -apple-system-short-body; text-align: center; + color: var(--text-color); + padding: var(--spacing); +} + +img { + filter: drop-shadow(var(--shadow)); + margin-bottom: 5px; +} + +.title { + font-size: 3em; + font-weight: 700; + margin: 0; + text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); + letter-spacing: -0.5px; +} + +.subtitle { + font-size: 1.2em; + font-weight: 400; + margin: 0; + opacity: 0.95; + text-shadow: 0 1px 5px rgba(0, 0, 0, 0.2); +} + +.status-container { + margin: 10px 0; + min-height: 50px; + display: flex; + align-items: center; + justify-content: center; +} + +.status-container p { + font-size: 1.1em; + margin: 0; + padding: 12px 24px; + background: #fff; + color: #000; + border-radius: 12px; + box-shadow: var(--shadow); } body:not(.state-on, .state-off) :is(.state-on, .state-off) { @@ -41,5 +99,26 @@ body.state-off :is(.state-on, .state-unknown) { } button { - font-size: 1em; + font-size: 1.1em; + font-weight: 600; + padding: 12px 28px; + background: #fff; + color: #000; + border: none; + border-radius: 12px; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: var(--shadow); + margin-top: 5px; +} + +button:hover { + background: #f0f0f0; + transform: translateY(-2px); + box-shadow: 0 6px 25px rgb(0 0 0 / 40%); +} + +button:active { + transform: translateY(0); + box-shadow: var(--shadow); } diff --git a/safari/Mue/ViewController.swift b/safari/Mue/ViewController.swift index ea6b1403..bcfa2a06 100644 --- a/safari/Mue/ViewController.swift +++ b/safari/Mue/ViewController.swift @@ -9,7 +9,7 @@ import Cocoa import SafariServices import WebKit -let extensionBundleIdentifier = "mueauthors.Mue.Extension" +let extensionBundleIdentifier = "mueauthors.mue.Extension" class ViewController: NSViewController, WKNavigationDelegate, WKScriptMessageHandler {