NetNewsWire/Technotes/DarkMode.md

51 lines
1.7 KiB
Markdown

# Dark Mode - WWDC 2018
https://developer.apple.com/documentation/appkit/supporting_dark_mode_in_your_interface
https://developer.apple.com/videos/play/wwdc2018/210/
- Accent colors
- Can do preference for content — see Mail for example
- linkColor — see if can use in web view
- icons in sidebar should not be vibrant
- Use opaque grayscale colors, not opacity, on top of vibrancy
- Colors in asset catalogs
- Specify for different appearances
- High contrast colors
- Dynamic system colors
- Resolved at draw time
- Pictures in asset catalogs
- Template images
- contentTintColor new API - NSImageView, NSButton
- Render as template image thing in IB
- controlAccentColor
- color.withSystemEffect(.pressed)
- Avoid nonsemantic materials
- Semantic materials: popover, menu, sidebar, selection, titlebar, etc.
- visualEffectView.material = .popover
- Desktop tinted background: window background, underpage, content background
- contentBackground default for collection views
- Use NSAppearance to override inheritance
- .aqua
- .darkAqua
- effectiveAppearance
Advanced Dark Mode:
https://developer.apple.com/videos/play/wwdc2018/218/
- Build with 10.14 SDK
- NSAppearanceCustomization
- NSView, NSWindow conforms
- NSWindow.appearanceSource
- Configure NSBox to fill color to get desired material
- visualEffectView.maskImage
- Can do drawing handler images - for instance with a path
- backgroundStyle on rows - .normal and .emphasized
- Backward deployment…
- Most system colors are available pre-Mo
- Asset catalogs available on 10.13
- Find hardcoded colors, use asset catalog colors
- NSColor(named: "SomeColor")
- Prefer block-based image drawing instead of lockFocus
- Prefer NSTextField to drawing strings