fix: DockerSecretsResolver - don't normalize absolute paths like /var/www/html/...
Some checks failed
Deploy Application / deploy (push) Has been cancelled

This commit is contained in:
2025-11-24 21:28:25 +01:00
parent 4eb7134853
commit 77abc65cd7
1327 changed files with 91915 additions and 9909 deletions

View File

@@ -8,7 +8,7 @@
* - Keyboard navigation enhancements
*/
@layer admin-utilities {
@layer utilities {
/**
* Focus Visible Enhancement (WCAG 2.1 Level AA)
*
@@ -16,9 +16,9 @@
* must have a visible focus indicator with min 3:1 contrast ratio.
*/
:focus-visible {
outline: var(--admin-focus-ring-width, 2px) solid var(--admin-focus-ring);
outline-offset: var(--admin-focus-ring-offset, 2px);
border-radius: var(--admin-radius-sm);
outline: var(--focus-ring-width, 2px) solid var(--focus-ring);
outline-offset: var(--focus-ring-offset, 2px);
border-radius: var(--radius-sm);
}
/**
@@ -31,18 +31,18 @@
position: absolute;
top: -9999px;
left: -9999px;
z-index: var(--admin-z-toast);
padding: var(--admin-spacing-md) var(--admin-spacing-lg);
background-color: var(--admin-accent-primary);
z-index: var(--z-toast);
padding: var(--spacing-md) var(--spacing-lg);
background-color: var(--accent-primary);
color: white;
text-decoration: none;
font-weight: var(--admin-font-weight-semibold);
border-radius: var(--admin-radius-md);
box-shadow: var(--admin-shadow-lg);
font-weight: var(--font-weight-semibold);
border-radius: var(--radius-md);
box-shadow: var(--shadow-lg);
&:focus {
top: var(--admin-spacing-md);
left: var(--admin-spacing-md);
top: var(--spacing-md);
left: var(--spacing-md);
}
}
@@ -111,8 +111,8 @@
right: -2px;
top: -2px;
bottom: -2px;
border: 2px solid var(--admin-focus-ring);
border-radius: var(--admin-radius-md);
border: 2px solid var(--focus-ring);
border-radius: var(--radius-md);
pointer-events: none;
}
}
@@ -123,7 +123,7 @@
* Show clear visual feedback for keyboard users.
*/
body.user-is-tabbing *:focus {
outline: 3px solid var(--admin-accent-info);
outline: 3px solid var(--accent-info);
outline-offset: 3px;
}
@@ -173,13 +173,13 @@
*/
.text-contrast-aa {
/* Ensures minimum 4.5:1 contrast */
color: var(--admin-content-text);
color: var(--content-text);
}
.text-contrast-large {
/* Large text can use lower contrast */
font-size: 1.125rem;
color: var(--admin-content-text);
color: var(--content-text);
opacity: 0.9;
}
@@ -190,7 +190,7 @@
*/
.admin-error,
.admin-form-error {
color: var(--admin-accent-error);
color: var(--accent-error);
&::before {
content: '⚠ ';
@@ -200,7 +200,7 @@
}
[aria-invalid="true"] {
border-color: var(--admin-accent-error) !important;
border-color: var(--accent-error) !important;
border-width: 2px !important;
/* Error icon */
@@ -219,21 +219,21 @@
.admin-success::before {
content: '✓ ';
font-weight: bold;
color: var(--admin-accent-success);
color: var(--accent-success);
margin-right: 0.25rem;
}
.admin-warning::before {
content: '⚠ ';
font-weight: bold;
color: var(--admin-accent-warning);
color: var(--accent-warning);
margin-right: 0.25rem;
}
.admin-info::before {
content: ' ';
font-weight: bold;
color: var(--admin-accent-info);
color: var(--accent-info);
margin-right: 0.25rem;
}
@@ -285,20 +285,20 @@
*/
table {
caption {
font-weight: var(--admin-font-weight-semibold);
font-weight: var(--font-weight-semibold);
text-align: left;
padding: var(--admin-spacing-md);
background-color: var(--admin-bg-secondary);
padding: var(--spacing-md);
background-color: var(--bg-secondary);
}
th {
font-weight: var(--admin-font-weight-semibold);
font-weight: var(--font-weight-semibold);
text-align: left;
}
/* Zebra striping for better readability */
tbody tr:nth-child(even) {
background-color: var(--admin-bg-secondary);
background-color: var(--bg-secondary);
}
}
@@ -321,7 +321,7 @@
a[href]::after {
content: " (" attr(href) ")";
font-size: 0.875em;
color: var(--admin-content-text);
color: var(--content-text);
}
/* Don't show internal links */

View File

@@ -5,7 +5,7 @@
* Respects prefers-reduced-motion for accessibility.
*/
@layer admin-utilities {
@layer utilities {
/**
* Theme Transition Class
*
@@ -15,18 +15,18 @@
:root {
/* Smooth transitions for theme changes */
transition:
background-color var(--admin-transition-base),
color var(--admin-transition-base),
border-color var(--admin-transition-base);
background-color var(--transition-base),
color var(--transition-base),
border-color var(--transition-base);
}
/* Apply transitions to all elements during theme change */
* {
transition:
background-color var(--admin-transition-base),
color var(--admin-transition-base),
border-color var(--admin-transition-base),
box-shadow var(--admin-transition-base);
background-color var(--transition-base),
color var(--transition-base),
border-color var(--transition-base),
box-shadow var(--transition-base);
}
/* Respect reduced motion preference */
@@ -41,16 +41,15 @@
* Theme Loading State
*
* Prevent FOUC (Flash of Unstyled Content) during initial theme load.
* REMOVED: visibility hidden rule - causes blank page if data-theme is not set
*/
html:not([data-theme]) {
/* Hide content until theme is determined */
/* html:not([data-theme]) {
visibility: hidden;
}
html[data-theme] {
/* Show content once theme is set */
visibility: visible;
}
} */
/**
* Theme Toggle Animation
@@ -58,7 +57,7 @@
* Icon rotation when toggling theme.
*/
[data-theme-toggle] svg {
transition: transform var(--admin-transition-base);
transition: transform var(--transition-base);
}
[data-theme-toggle]:hover svg {
@@ -88,14 +87,14 @@
@media (prefers-contrast: high) {
[data-theme="dark"] {
/* Increase contrast in forced colors mode */
--admin-bg-primary: oklch(10% 0 0);
--admin-content-text: oklch(100% 0 0);
--bg-primary: oklch(10% 0 0);
--content-text: oklch(100% 0 0);
}
[data-theme="light"] {
/* Ensure maximum contrast */
--admin-bg-primary: oklch(100% 0 0);
--admin-content-text: oklch(0% 0 0);
--bg-primary: oklch(100% 0 0);
--content-text: oklch(0% 0 0);
}
}
@@ -108,15 +107,15 @@
:root,
[data-theme] {
/* Force light colors for printing */
--admin-bg-primary: oklch(100% 0 0);
--admin-content-bg: oklch(100% 0 0);
--admin-content-text: oklch(0% 0 0);
--admin-border-light: oklch(20% 0 0);
--bg-primary: oklch(100% 0 0);
--content-bg: oklch(100% 0 0);
--content-text: oklch(0% 0 0);
--border-light: oklch(20% 0 0);
/* Remove shadows for print */
--admin-shadow-sm: none;
--admin-shadow-md: none;
--admin-shadow-lg: none;
--shadow-sm: none;
--shadow-md: none;
--shadow-lg: none;
}
}
}

View File

@@ -0,0 +1,97 @@
/**
* View Transitions - Admin Interface
*
* View Transitions API für Admin-Navigation und Content-Updates.
* Baseline 2023: View Transitions API ist Baseline Newly available.
*
* Features:
* - View Transitions für Admin-Sidebar-Navigation
* - View Transitions für Admin-Content-Bereiche
* - View Transitions für Popover-Öffnen/Schließen
* - Benannte Bereiche für präzise Animationen
*/
@layer utilities {
/**
* View Transition Root
*/
@view-transition {
navigation: auto;
}
/**
* Admin Sidebar View Transition
*/
@view-transition-group(admin-sidebar) {
animation-duration: var(--transition-base);
animation-timing-function: ease-in-out;
}
/**
* Admin Content View Transition
*/
@view-transition-group(admin-content) {
animation-duration: var(--transition-base);
animation-timing-function: ease-in-out;
}
/**
* Admin Header View Transition
*/
@view-transition-group(admin-header) {
animation-duration: var(--transition-base);
animation-timing-function: ease-in-out;
}
/**
* Popover View Transitions
*/
@view-transition-group(admin-popover) {
animation-duration: var(--transition-base);
animation-timing-function: ease-in-out;
}
/**
* View Transition Names für Admin-Bereiche
*/
.admin-sidebar {
view-transition-name: admin-sidebar;
}
.admin-content {
view-transition-name: admin-content;
}
.admin-header {
view-transition-name: admin-header;
}
/**
* Popover View Transition Names
*/
[popover].admin-popover {
view-transition-name: admin-popover;
}
/**
* Navigation Links mit View Transitions
*/
.admin-nav a {
view-transition-name: none; /* Disable for individual links */
}
/**
* View Transition für Content-Updates
*/
.admin-page {
view-transition-name: admin-content;
}
/**
* View Transition für Sidebar-Navigation
*/
.admin-nav__section[open] {
view-transition-name: admin-nav-section;
}
}