feat(ios): refine native ui controls

This commit is contained in:
chick
2026-09-09 11:14:39 +08:00
parent c568e496b2
commit 995206ac23
18 changed files with 397 additions and 212 deletions
@@ -4,12 +4,12 @@ import XCTest
@testable import MultiSimAdmin
final class AIThemeTests: XCTestCase {
func testControlDimensionsMatchWebScale() {
XCTAssertEqual(AITheme.buttonHeight, 38, accuracy: 0.1)
XCTAssertEqual(AITheme.compactButtonHeight, 34, accuracy: 0.1)
XCTAssertEqual(AITheme.largeButtonHeight, 42, accuracy: 0.1)
XCTAssertEqual(AITheme.buttonRadius, 10, accuracy: 0.1)
XCTAssertEqual(AITheme.iconButtonSize, 40, accuracy: 0.1)
func testControlDimensionsMatchIOS() {
XCTAssertEqual(AITheme.buttonHeight, 44, accuracy: 0.1)
XCTAssertEqual(AITheme.compactButtonHeight, 40, accuracy: 0.1)
XCTAssertEqual(AITheme.largeButtonHeight, 50, accuracy: 0.1)
XCTAssertEqual(AITheme.buttonRadius, 12, accuracy: 0.1)
XCTAssertEqual(AITheme.iconButtonSize, 44, accuracy: 0.1)
}
func testButtonKindsHaveDistinctBaseColors() {
@@ -20,4 +20,23 @@ final class AIThemeTests: XCTestCase {
].map(\.backgroundColor)
XCTAssertEqual(Set(colors).count, 3)
}
func testDisabledKindsUseReducedButVisibleRendering() {
let disabledKinds = [
AIButtonStyle.Kind.primary,
.secondary,
.danger
]
let disabledColors = disabledKinds.map { $0.backgroundColor(isEnabled: false) }
XCTAssertEqual(Set(disabledColors).count, disabledKinds.count)
XCTAssertEqual(
disabledKinds.map { $0.foregroundColor(isEnabled: false) },
[
.white.opacity(0.72),
AITheme.muted,
.white.opacity(0.72)
]
)
}
}