backface‑visibility Demo - Online 3D Card Flip
Build a 3D card flip effect and toggle backface‑visibility. See the hidden back face. Copy the complete CSS.
UD5 Toolkit
Explore how PWA title bar customization works with the Window Controls Overlay API. Visualize safe zones, environment variables, and build immersive app-like experiences.
{
"name": "My PWA App",
"short_name": "PWA",
"start_url": "/",
"display": "standalone",
"display_override": ["window-controls-overlay"],
"theme_color": "#667eea",
"background_color": "#ffffff",
"icons": [
{
"src": "icon-192.png",
"sizes": "192x192",
"type": "image/png"
}
]
}
display_override: ["window-controls-overlay"] enables the feature. Falls back gracefully if unsupported.
/* Detect WCO mode */
@media (display-mode: window-controls-overlay) {
/* Styles specific to WCO mode */
.titlebar {
position: fixed;
left: env(titlebar-area-x, 0);
top: env(titlebar-area-y, 0);
width: env(titlebar-area-width, 100%);
height: env(titlebar-area-height, 40px);
background: #1a1a2e;
color: #fff;
display: flex;
align-items: center;
padding: 0 12px;
}
}
/* Drag region - titlebar background */
.titlebar {
-webkit-app-region: drag;
app-region: drag;
}
/* Interactive elements need no-drag */
.titlebar button,
.titlebar input {
-webkit-app-region: no-drag;
app-region: no-drag;
}
// Check if WCO is available
if ('windowControlsOverlay' in navigator) {
const wco = navigator.windowControlsOverlay;
console.log('WCO visible:', wco.visible);
// Listen for geometry changes
wco.addEventListener('geometrychange', () => {
if (wco.visible) {
console.log('Titlebar area changed!');
// CSS env() variables update automatically
}
});
}
// CSS env variables available in WCO mode:
// env(titlebar-area-x) - X offset of titlebar
// env(titlebar-area-y) - Y offset of titlebar
// env(titlebar-area-width) - Full titlebar width
// env(titlebar-area-height) - Titlebar height
<!-- Titlebar with safe content placement -->
<div class="titlebar">
<div class="titlebar-content">
<span class="app-logo">📱</span>
<span class="app-name">My PWA</span>
</div>
<input type="search" placeholder="Search...">
</div>
display_override: ["window-controls-overlay"] in the web app manifest.
env(titlebar-area-x) — X coordinate of the title bar area (usually 0)env(titlebar-area-y) — Y coordinate of the title bar area (usually 0)env(titlebar-area-width) — Full width of the title barenv(titlebar-area-height) — Height of the title bar (varies by OS: ~29px Windows 10, ~32px Windows 11, ~22-28px macOS)env(titlebar-area-height, 40px).
display_override and use the standard display mode.
-webkit-app-region: drag; — Makes an element draggable (for the titlebar background)-webkit-app-region: no-drag; — Makes interactive elements (buttons, inputs) clickableno-drag set, otherwise clicks won't register. The window control buttons are automatically handled by the OS.
env(titlebar-area-*) variables automatically account for these differences, so using them correctly ensures your content never overlaps the controls regardless of platform. Always test on both operating systems.
navigator.windowControlsOverlay:navigator.windowControlsOverlay.visible — Returns true if WCO is currently activenavigator.windowControlsOverlay.addEventListener('geometrychange', callback) — Fires when the titlebar area changes (e.g., when the user resizes the window or toggles WCO)@media (display-mode: window-controls-overlay) { ... } to apply styles conditionally.
env() variables to avoid overlapping control buttons.env() for when WCO is not active.no-drag.
frame: "none" in Electron or similar) completely removes the native window controls and requires you to re-implement minimize/maximize/close functionality from scratch. Window Controls Overlay is different — it keeps the native window controls but allows you to draw content in the remaining title bar space. This is safer, more accessible, and respects OS conventions while still giving you creative freedom.
Build a 3D card flip effect and toggle backface‑visibility. See the hidden back face. Copy the complete CSS.
Paste your manifest.json and instantly validate it against the W3C spec. Catch errors and warnings. Client‑side.
Generate a grand, aristocratic title like 'Duke of Waffleshire'. Perfect for silly fun or RPG characters. Local.
Create a 5‑star rating widget using only HTML and CSS. Customize colors and size. Copy the clean code.
Create a fully accessible form by adding fields; the tool generates the proper labels, inputs, and ARIA attributes. Copy the clean HTML.
Flip a coin with adjustable bias (e.g., 70% heads). Used for random decision-making when you want to gently influence outcomes. History & stats shown.
Paste an SVG and check if the graphic‑aria roles are used correctly. Improve accessible diagrams and icons.
Pick a base color and generate a 10‑step scale where each step meets a specific contrast ratio against white or black. Export as CSS custom properties.
Convert .srt subtitles to .vtt format for web video players. Preserves all timestamps and formatting. Local.
Set your birth date and see a live countdown with days, hours, minutes, and seconds. Shareable link. Pure frontend.
Shift the color temperature of your photo towards warm (orange) or cool (blue). Instant canvas filter. Download result.
Paste HTML snippet and highlight interactive elements missing accessible labels. Quick a11y audit.
Paste an HTML snippet and check for common ARIA mistakes: missing labels, invalid roles, and aria‑hidden misuse. Educate your team.
Enter a text color and background color and instantly see if the combination passes WCAG AA and AAA ratio. Safe colors.
Enter an HTML snippet and see a rough transcription of what a screen reader might announce. Check alt texts.
Paste a WebVTT file and instantly check for syntax errors. Validate timestamps and cue formatting. Essential for video devs.
Validate a language tag like en‑US or zh‑Hans against the IANA registry. Ensure correct HTML lang attribute.
Paste a set of hex colors and simulate how they appear with common color vision deficiencies. Get contrast warnings.
Automatically restore natural colors to a photo by removing color casts. Gray world algorithm. One‑click fix. Canvas.
Interactive visual guide to figure out if a door is left-handed or right-handed. Click through steps. Avoid ordering the wrong door.
Reverse any short video clip and download the backward version. Fun for creative effects. Browser‑based.
Calculate the perceived brightness of an RGB color and determine if black or white text is more readable. Accessibility tool.
Build a simple decision tree by adding yes/no nodes. Flowchart style. Export as text outline.
Enter original and target color to compute the exact CSS hue‑rotate(deg) filter needed. For precise icon and image tinting.
Paste a string of weather emojis and get a written weather forecast. Fun and educational emoji tool.
Convert plain text lines into HTML ordered or unordered lists. Instantly copy the generated HTML to paste into your website. No hassle, fully browser-based.
View the moon phase for any date in past or future. See full moon dates and eclipses for a given year.
Convert plain text into HTML‑safe strings by escaping <, >, &, and quotes. Insert into code safely. Local copy.
Search common dream symbols and their traditional meanings. For entertainment and self-reflection. Static data.
Enter latitude and longitude and get a human‑readable address using the browser's built‑in reverse geocoding (if available).