Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Assets/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1.2</string>
<string>1.1.3</string>
<key>CFBundleVersion</key>
<string>15</string>
<string>16</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
<key>LSUIElement</key>
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ All notable changes to this project are documented here.

## [Unreleased]

## [1.1.3] - 2026-09-18

### Fixed

- The settings window is a little taller and Preferences is more compact, so the Updates card is no longer cut off at the bottom.
- The disabled "Save current" and "Restore" buttons in Workspaces stay readable in Light appearance.
- Switches that are off are clearly visible on the settings cards in Light appearance.
- The zone grid lines and the small footnotes in Zones and Preferences are easier to read in both appearances.

## [1.1.2] - 2026-09-18

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion Sources/EncajeApp/EncajeApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate, NSMe
showWelcome: { [weak self] in self?.showWelcome() })
settingsWindow = makeWindow(
title: localized("Encaje Settings", "Ajustes de Encaje"),
size: NSSize(width: 880, height: 660),
size: NSSize(width: 880, height: 690),
view: view)
settingsWindow?.identifier = NSUserInterfaceItemIdentifier("encaje.settings")
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/EncajeApp/SettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ struct SettingsView: View {
}.padding(12).background(.quaternary.opacity(0.5))
}
}
}.frame(width: 880, height: 660).ignoresSafeArea(.container, edges: .top).tint(.teal)
}.frame(width: 880, height: 690).ignoresSafeArea(.container, edges: .top).tint(.teal)
}

private var sidebar: some View {
Expand Down
10 changes: 5 additions & 5 deletions Sources/EncajeApp/UI/PreferencesView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ struct PreferencesView: View {

var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 18) {
VStack(alignment: .leading, spacing: 14) {
GroupBox {
HStack(spacing: 12) {
Image(systemName: permissions.granted ? "checkmark.shield.fill" : "hand.raised.fill")
Expand Down Expand Up @@ -64,7 +64,7 @@ struct PreferencesView: View {
localized("Launch at login", "Abrir al iniciar sesión"),
isOn: Binding(get: { model.loginEnabled }, set: { model.setLogin($0) })
)
.labelsHidden().toggleStyle(.switch)
.labelsHidden().toggleStyle(.settingSwitch)
}.frame(maxWidth: .infinity)
if model.loginApprovalNeeded {
Button(localized("Approve in Login Items…", "Aprobar en Ítems de inicio…")) {
Expand All @@ -76,7 +76,7 @@ struct PreferencesView: View {
Label(localized("Pause shortcuts", "Pausar atajos"), systemImage: "pause.circle")
Spacer()
Toggle(localized("Pause shortcuts", "Pausar atajos"), isOn: $model.paused)
.labelsHidden().toggleStyle(.switch)
.labelsHidden().toggleStyle(.settingSwitch)
}.frame(maxWidth: .infinity)
Divider()
HStack {
Expand Down Expand Up @@ -126,8 +126,8 @@ struct PreferencesView: View {
"Your window settings stay on your Mac.",
"La configuración de tus ventanas se queda en tu Mac.")
)
.font(.caption).foregroundStyle(.tertiary)
}.padding(22)
.font(.caption).foregroundStyle(.secondary)
}.padding(.horizontal, 22).padding(.vertical, 14)
}
}
}
Expand Down
26 changes: 26 additions & 0 deletions Sources/EncajeApp/UI/SettingSwitchToggleStyle.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import SwiftUI

struct SettingSwitchToggleStyle: ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
OutlinedSwitch(configuration: configuration)
}

private struct OutlinedSwitch: View {
@Environment(\.colorScheme) private var colorScheme
let configuration: Configuration

var body: some View {
Toggle(configuration).toggleStyle(.switch)
.overlay(
Capsule().strokeBorder(Color.primary.opacity(outlineOpacity), lineWidth: 1)
.opacity(configuration.isOn ? 0 : 1)
.allowsHitTesting(false))
}

private var outlineOpacity: Double { colorScheme == .dark ? 0.22 : 0.45 }
}
}

extension ToggleStyle where Self == SettingSwitchToggleStyle {
static var settingSwitch: SettingSwitchToggleStyle { SettingSwitchToggleStyle() }
}
6 changes: 3 additions & 3 deletions Sources/EncajeApp/UI/WorkspaceSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct WorkspaceSettingsView: View {
Button(action: save) {
Label(localized("Save current", "Guardar actual"), systemImage: "plus")
}
.disabled(!canSave)
.disabled(!canSave).tint(canSave ? Color.teal : nil)
}
HStack {
Text(localized("SAVED WORKSPACES", "ESPACIOS GUARDADOS"))
Expand Down Expand Up @@ -63,8 +63,8 @@ struct WorkspaceSettingsView: View {
.font(.caption).foregroundStyle(.secondary)
}
Spacer()
Button(localized("Restore", "Restaurar")) { model.restoreLayout(layout) }.disabled(
!granted)
Button(localized("Restore", "Restaurar")) { model.restoreLayout(layout) }
.disabled(!granted).tint(granted ? Color.teal : nil)
Button(role: .destructive) {
model.layouts.removeAll { $0.id == layout.id }
} label: {
Expand Down
11 changes: 6 additions & 5 deletions Sources/EncajeApp/UI/ZoneGridView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ struct ZoneGridView: View {
@Binding var zone: GridZone
var references: [ZoneReference] = []
var editingChanged: (Bool) -> Void = { _ in }
@Environment(\.colorScheme) private var colorScheme
@State private var dragging = false
@GestureState private var gestureActive = false

Expand All @@ -25,10 +26,6 @@ struct ZoneGridView: View {
ForEach(references) { reference in
ZoneReferenceShape(reference: reference, size: proxy.size)
}
Rectangle().fill(.teal.opacity(0.26))
.frame(width: cellWidth * Double(zone.width), height: cellHeight * Double(zone.height))
.overlay(Rectangle().strokeBorder(.teal, lineWidth: 2))
.offset(x: cellWidth * Double(zone.x), y: cellHeight * Double(zone.y))
Path { path in
for column in 0...zone.columns {
let x = Double(column) * cellWidth
Expand All @@ -40,7 +37,11 @@ struct ZoneGridView: View {
path.move(to: CGPoint(x: 0, y: y))
path.addLine(to: CGPoint(x: proxy.size.width, y: y))
}
}.stroke(.primary.opacity(0.12), lineWidth: 0.5)
}.stroke(.primary.opacity(colorScheme == .dark ? 0.12 : 0.22), lineWidth: 1)
Rectangle().fill(.teal.opacity(0.26))
.frame(width: cellWidth * Double(zone.width), height: cellHeight * Double(zone.height))
.overlay(Rectangle().strokeBorder(.teal, lineWidth: 2))
.offset(x: cellWidth * Double(zone.x), y: cellHeight * Double(zone.y))
Text("\(zone.width) × \(zone.height)")
.font(.system(size: 13, weight: .semibold, design: .rounded)).monospacedDigit()
.padding(6).background(.regularMaterial, in: RoundedRectangle(cornerRadius: 5))
Expand Down
2 changes: 1 addition & 1 deletion Sources/EncajeApp/UI/ZoneSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ private struct ZoneRuleEditor: View {
"Los atajos reemplazan esas teclas en otras apps. Puedes pausar Encaje cuando quieras."
)
)
.font(.system(size: 10)).foregroundStyle(.tertiary)
.font(.system(size: 10)).foregroundStyle(.secondary)
}.padding(18)
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
Expand Down
Loading