From 81e8b2ed40e52c20806655c67fe52072d7f2c6c5 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 14:28:42 +0000 Subject: [PATCH] Refine Video Modal moderation UI styles: blur creator avatar and fix text contrast. --- css/tailwind.source.css | 17 ++++ js/ui/components/VideoModal.js | 8 ++ verification/3_dark_mode_neutral.png | Bin 0 -> 34247 bytes verification/4_light_mode_neutral.png | Bin 0 -> 36616 bytes verification/verify_moderation_style.py | 123 ++++++++++++++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 verification/3_dark_mode_neutral.png create mode 100644 verification/4_light_mode_neutral.png create mode 100644 verification/verify_moderation_style.py diff --git a/css/tailwind.source.css b/css/tailwind.source.css index 3f38c8aa..81ced014 100644 --- a/css/tailwind.source.css +++ b/css/tailwind.source.css @@ -3295,6 +3295,23 @@ .watch-history-card__hidden .moderation-badge { @apply self-start; } + + /* Ensure the video modal avatar respects the blur state */ + #playerModal .channel-card__avatar img[data-visual-state="blurred"] { + @apply transition duration-base ease-in-out; + filter: blur(var(--blur-thumbnail-blur)); + transform: scale(1.05); + } + + /* Override moderation badge text color inside the modal bar for better contrast in all themes */ + #playerModal .video-modal__moderation-bar .moderation-badge { + --text-status-neutral-on: var(--color-text); + --text-status-warning-on: var(--color-warning-on); + } + + #playerModal .video-modal__moderation-bar .moderation-badge[data-variant="neutral"] { + color: var(--color-text); + } } @layer components { diff --git a/js/ui/components/VideoModal.js b/js/ui/components/VideoModal.js index 5b3093af..4a80168b 100644 --- a/js/ui/components/VideoModal.js +++ b/js/ui/components/VideoModal.js @@ -4140,6 +4140,14 @@ export class VideoModal { } } + if (this.creatorAvatar) { + if (shouldBlur) { + this.creatorAvatar.dataset.visualState = "blurred"; + } else if (this.creatorAvatar.dataset.visualState === "blurred") { + delete this.creatorAvatar.dataset.visualState; + } + } + if (overlay) { // Changed logic: Always show the bar if moderation is active, even if overridden if (showModeration) { diff --git a/verification/3_dark_mode_neutral.png b/verification/3_dark_mode_neutral.png new file mode 100644 index 0000000000000000000000000000000000000000..036a24c36791bd1f12766359b5688e2be53733c2 GIT binary patch literal 34247 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
  • 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 literal 0 HcmV?d00001 diff --git a/verification/4_light_mode_neutral.png b/verification/4_light_mode_neutral.png new file mode 100644 index 0000000000000000000000000000000000000000..4bf18ab1194d31b7fea306e0242a68258c58a557 GIT binary patch literal 36616 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%0AH3j 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 literal 0 HcmV?d00001 diff --git a/verification/verify_moderation_style.py b/verification/verify_moderation_style.py new file mode 100644 index 00000000..524189b9 --- /dev/null +++ b/verification/verify_moderation_style.py @@ -0,0 +1,123 @@ +from playwright.sync_api import sync_playwright +import time + +def verify_moderation_style(page): + print("Navigating to app...") + page.goto("http://localhost:8080") + + # Wait for the app to initialize + print("Waiting for #videoList...") + page.wait_for_selector("#videoList", timeout=30000) + + # Inject logic to manipulate DOM directly to verify structure and styles + print("Manipulating DOM to show modal...") + page.evaluate(""" + const modal = document.getElementById('playerModal'); + modal.classList.remove('hidden'); + modal.removeAttribute('hidden'); + document.body.classList.add('modal-open'); + + // Find the moderation bar and show it in "neutral" state (simulating "Show anyway") + const bar = modal.querySelector('[data-moderation-bar]'); + if (bar) { + bar.removeAttribute('hidden'); + const badge = bar.querySelector('.moderation-badge'); + if (badge) { + badge.setAttribute('data-variant', 'neutral'); + const text = badge.querySelector('[data-moderation-text]'); + if (text) text.textContent = "Showing despite blocked content"; + } + } + + // Unblur video but blur avatar to simulate "active moderation" state visually + // (Though logically if "neutral" usually implies override, maybe we want to test that too. + // Let's test the specific requirement: Avatar Blur + Text Color) + + // Force blur on avatar + const avatarImg = modal.querySelector('.channel-card__avatar img'); + if (avatarImg) { + avatarImg.src = 'assets/svg/default-profile.svg'; // Ensure src so it renders + avatarImg.dataset.visualState = 'blurred'; + } + """) + + time.sleep(1) + + # Test Dark Mode first (usually default or we can toggle) + # Check if we can toggle theme. + # Assuming default might be light or system. Let's force dark mode if possible. + print("Setting Dark Mode...") + page.evaluate("document.documentElement.setAttribute('data-theme', 'dark')") + time.sleep(0.5) + page.screenshot(path="verification/3_dark_mode_neutral.png") + print("Screenshot 3 taken: Dark Mode Neutral Badge + Blurred Avatar") + + # Verify Avatar Blur CSS + # We can check computed style via evaluate + blur_filter = page.evaluate(""" + () => { + const img = document.querySelector('#playerModal .channel-card__avatar img'); + return window.getComputedStyle(img).filter; + } + """) + print(f"Avatar Filter: {blur_filter}") + if "blur" in blur_filter: + print("SUCCESS: Avatar has blur filter applied.") + else: + print("FAILURE: Avatar does NOT have blur filter.") + + # Verify Text Color in Dark Mode + # The badge text should be readable (light color in dark mode) + text_color = page.evaluate(""" + () => { + const badge = document.querySelector('#playerModal .video-modal__moderation-bar .moderation-badge'); + return window.getComputedStyle(badge).color; + } + """) + print(f"Badge Text Color (Dark Mode): {text_color}") + # In dark mode, text should be rgb(226, 232, 240) or similar light color. + # rgb(24, 31, 44) is dark. + + # Simple check: sum of RGB should be high for light color + import re + rgb = re.findall(r'\d+', text_color) + if rgb and len(rgb) >= 3: + brightness = sum(map(int, rgb[:3])) + print(f"Text Brightness: {brightness}") + if brightness > 300: # Arbitrary threshold for "light enough" + print("SUCCESS: Text is light in Dark Mode.") + else: + print("FAILURE: Text is dark in Dark Mode (Hard to read).") + + # Test Light Mode + print("Setting Light Mode...") + page.evaluate("document.documentElement.setAttribute('data-theme', 'light')") + time.sleep(0.5) + page.screenshot(path="verification/4_light_mode_neutral.png") + print("Screenshot 4 taken: Light Mode Neutral Badge") + + text_color_light = page.evaluate(""" + () => { + const badge = document.querySelector('#playerModal .video-modal__moderation-bar .moderation-badge'); + return window.getComputedStyle(badge).color; + } + """) + print(f"Badge Text Color (Light Mode): {text_color_light}") + rgb_light = re.findall(r'\d+', text_color_light) + if rgb_light and len(rgb_light) >= 3: + brightness_light = sum(map(int, rgb_light[:3])) + print(f"Text Brightness: {brightness_light}") + if brightness_light < 400: # Arbitrary threshold for "dark enough" + print("SUCCESS: Text is dark in Light Mode.") + else: + print("FAILURE: Text is light in Light Mode (Hard to read).") + +with sync_playwright() as p: + browser = p.chromium.launch(headless=True) + page = browser.new_page() + try: + verify_moderation_style(page) + except Exception as e: + print(f"Verification failed: {e}") + finally: + browser.close()