Enhance safe area support for iOS devices: update CSS for navbar and body to respect safe area insets and improve layout on mobile screens
This commit is contained in:
@@ -34,6 +34,25 @@
|
|||||||
--ui-shadow-md: 0 10px 24px rgba(0, 0, 0, 0.5);
|
--ui-shadow-md: 0 10px 24px rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Safe Area Support for iPad notches, Dynamic Island, and rounded corners */
|
||||||
|
html {
|
||||||
|
/* Ensure viewport-fit is respected */
|
||||||
|
viewport-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
/* Respect safe areas on mobile devices */
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Future-proof: Support for various viewport and safe-area features */
|
||||||
|
@supports (padding: max(0px)) {
|
||||||
|
body {
|
||||||
|
/* Ensure body padding never conflicts with safe areas */
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Make inputs visible in dark mode */
|
/* Make inputs visible in dark mode */
|
||||||
:root[data-theme="dark"] input,
|
:root[data-theme="dark"] input,
|
||||||
:root[data-theme="dark"] select,
|
:root[data-theme="dark"] select,
|
||||||
@@ -172,11 +191,16 @@ select:focus {
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
-webkit-backdrop-filter: blur(10px);
|
-webkit-backdrop-filter: blur(10px);
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
|
/* Safe area insets for iPad notches and Dynamic Island */
|
||||||
|
padding-left: env(safe-area-inset-left, 0);
|
||||||
|
padding-right: env(safe-area-inset-right, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand {
|
.navbar-brand {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
letter-spacing: 0.02em;
|
letter-spacing: 0.02em;
|
||||||
|
/* Prevent navbar brand from extending into unsafe areas */
|
||||||
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 900px) {
|
@media (max-width: 900px) {
|
||||||
@@ -190,6 +214,41 @@ select:focus {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mobile and tablet safe area handling for navbar */
|
||||||
|
@media (max-width: 992px) {
|
||||||
|
.navbar {
|
||||||
|
/* Ensure navbar spans full width but respects safe areas */
|
||||||
|
width: 100vw;
|
||||||
|
margin-left: calc(-50vw + 50%);
|
||||||
|
/* Safe area padding is already handled by navbar class */
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .container-fluid {
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
/* Ensure padding accounts for safe areas on small screens */
|
||||||
|
padding-left: max(env(safe-area-inset-left, 0), 12px);
|
||||||
|
padding-right: max(env(safe-area-inset-right, 0), 12px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-collapse {
|
||||||
|
/* Ensure collapsed navbar respects safe areas */
|
||||||
|
padding-left: env(safe-area-inset-left, 0);
|
||||||
|
padding-right: env(safe-area-inset-right, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* iPad-specific landscape and portrait handling */
|
||||||
|
@media (max-height: 600px) and (orientation: landscape) {
|
||||||
|
.navbar {
|
||||||
|
padding-top: max(env(safe-area-inset-top, 0), 4px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .container-fluid {
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Edit and generate buttons with theme-aware text for better visibility */
|
/* Edit and generate buttons with theme-aware text for better visibility */
|
||||||
.edit-button, .duplicate-button, .generate-qr-button {
|
.edit-button, .duplicate-button, .generate-qr-button {
|
||||||
color: var(--ui-text) !important; /* Override any existing color */
|
color: var(--ui-text) !important; /* Override any existing color */
|
||||||
|
|||||||
@@ -169,13 +169,19 @@
|
|||||||
background-color: var(--module-primary-color) !important;
|
background-color: var(--module-primary-color) !important;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
padding-top: env(safe-area-inset-top, 0); /* iOS Safe Area */
|
/* iOS Safe Area insets for notches and rounded corners */
|
||||||
|
padding-top: env(safe-area-inset-top, 0);
|
||||||
|
padding-left: env(safe-area-inset-left, 0);
|
||||||
|
padding-right: env(safe-area-inset-right, 0);
|
||||||
z-index: 1900;
|
z-index: 1900;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar .container-fluid {
|
.navbar .container-fluid {
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
padding-bottom: env(safe-area-inset-bottom, 0); /* Fallback */
|
/* Ensure container respects safe areas on all sides */
|
||||||
|
padding-left: max(env(safe-area-inset-left, 0), 16px);
|
||||||
|
padding-right: max(env(safe-area-inset-right, 0), 16px);
|
||||||
|
padding-bottom: env(safe-area-inset-bottom, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand {
|
.navbar-brand {
|
||||||
|
|||||||
Reference in New Issue
Block a user