ui: size subtitle glass to text within eighty percent width

This commit is contained in:
2026-10-13 08:45:18 +02:00
parent 1aa5454194
commit d1f0d83e4c
3 changed files with 4 additions and 3 deletions
+1 -1
View File
@@ -251,7 +251,7 @@ The inline URL field, including its placeholder, uses the same 12-point system f
With no media open, the full window uses native behind-window HUD glass with a 35%-opaque brown tint. Static, cached amber/rust radial gradients add ambient color only to the empty screen; they disappear during loading or errors, and are never drawn over video or playback chrome. Glass title/control/error surfaces use the same brown tint with half-point sand outlines. Decorative drawing does not intercept input. The idle Metal surface stays attached but hidden; opening media restores a solid black background and letterboxing without tinting the video, and closing it restores the ambient frosted background. macOS controls the material’s appearance, including Reduce Transparency. With no media open, the full window uses native behind-window HUD glass with a 35%-opaque brown tint. Static, cached amber/rust radial gradients add ambient color only to the empty screen; they disappear during loading or errors, and are never drawn over video or playback chrome. Glass title/control/error surfaces use the same brown tint with half-point sand outlines. Decorative drawing does not intercept input. The idle Metal surface stays attached but hidden; opening media restores a solid black background and letterboxing without tinting the video, and closing it restores the ambient frosted background. macOS controls the material’s appearance, including Reduce Transparency.
In normal mode, the captions selector sits immediately right of the compact-mode button and is disabled when no external subtitle tracks are available. Its native symbol uses a 16-point configuration within a 24-point click target. The native pull-down menu includes a visible Off option and prefers opening above the button; AppKit can reposition it to fit the screen. In compact mode, subtitle selection and Off are available through the settings button's Subtitles submenu; the compact cog uses a 21-point symbol to balance the adjacent icons. Subtitle lines can use the player width with 8-point outer side margins and 12-point internal padding. Their HUD-glass background uses 60% opacity without dimming the text. Visible compact controls raise subtitles by the actual compact control height plus spacing, rather than the normal controller's clearance. Subtitle-load errors remain visible independently of auto-hidden controls. In normal mode, the captions selector sits immediately right of the compact-mode button and is disabled when no external subtitle tracks are available. Its native symbol uses a 15-point configuration within a 24-point click target. The native pull-down menu includes a visible Off option and prefers opening above the button; AppKit can reposition it to fit the screen. In compact mode, subtitle selection and Off are available through the settings button's Subtitles submenu; the compact cog uses a 21-point symbol to balance the adjacent icons. Subtitle glass hugs the text and its 12-point internal padding, with the complete container capped at 80% of the window width; longer text wraps within that limit. Its HUD-glass background uses 60% opacity without dimming the text. Visible compact controls raise subtitles by the actual compact control height plus spacing, rather than the normal controller's clearance. Subtitle-load errors remain visible independently of auto-hidden controls.
Accepted relative seeks, including keyboard shortcuts, preserve control visibility instead of revealing hidden chrome. Seek failures still reveal the error; dragging the timeline continues to show the controls. Accepted relative seeks, including keyboard shortcuts, preserve control visibility instead of revealing hidden chrome. Seek failures still reveal the error; dragging the timeline continues to show the controls.
+2 -2
View File
@@ -1328,7 +1328,7 @@ private struct CaptionSelector: NSViewRepresentable {
imageScaling = .scaleProportionallyUpOrDown imageScaling = .scaleProportionallyUpOrDown
(cell as? NSPopUpButtonCell)?.arrowPosition = .noArrow (cell as? NSPopUpButtonCell)?.arrowPosition = .noArrow
let symbol = NSImage(systemSymbolName: "captions.bubble", accessibilityDescription: "Subtitles")? let symbol = NSImage(systemSymbolName: "captions.bubble", accessibilityDescription: "Subtitles")?
.withSymbolConfiguration(.init(pointSize: 16, weight: .regular)) .withSymbolConfiguration(.init(pointSize: 13, weight: .regular))
captionItem.image = symbol captionItem.image = symbol
contentTintColor = SunsetPalette.text contentTintColor = SunsetPalette.text
toolTip = "Subtitles" toolTip = "Subtitles"
@@ -1739,10 +1739,10 @@ private struct PlayerContent: View {
.foregroundStyle(.white) .foregroundStyle(.white)
.multilineTextAlignment(.center) .multilineTextAlignment(.center)
.fixedSize(horizontal: false, vertical: true) .fixedSize(horizontal: false, vertical: true)
.frame(maxWidth: .infinity)
.padding(12) .padding(12)
.background(PlayerGlass().opacity(0.6) .background(PlayerGlass().opacity(0.6)
.clipShape(RoundedRectangle(cornerRadius: 12)).allowsHitTesting(false)) .clipShape(RoundedRectangle(cornerRadius: 12)).allowsHitTesting(false))
.frame(maxWidth: geometry.size.width * 0.8)
.padding(.horizontal, 8) .padding(.horizontal, 8)
.padding(.bottom, model.controlsVisible .padding(.bottom, model.controlsVisible
? (model.isCompact ? compactControlHeight + 20 : 110) ? (model.isCompact ? compactControlHeight + 20 : 110)
+1
View File
@@ -1,2 +1,3 @@
- [x] add miruro streaming support - [x] add miruro streaming support
- [ ] investigate and fix audio when streaming from miruro - audio seems to crackle (not for youtube i think; only for miruros)
- [ ] add chrome cast support - [ ] add chrome cast support