Compare commits
4 Commits
5082ec1333
...
2f8b911af8
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f8b911af8 | |||
| e9791de4e2 | |||
| 3b4cc7fbb9 | |||
| 9c0e9249ce |
@@ -1,5 +1,5 @@
|
|||||||
# Stage 1: Build frontend
|
# Stage 1: Build frontend
|
||||||
FROM node:24-alpine AS frontend-build
|
FROM node:25-alpine AS frontend-build
|
||||||
WORKDIR /app/frontend
|
WORKDIR /app/frontend
|
||||||
COPY frontend/package.json frontend/package-lock.json ./
|
COPY frontend/package.json frontend/package-lock.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|||||||
@@ -53,6 +53,12 @@
|
|||||||
"vitest": "^4.0.18",
|
"vitest": "^4.0.18",
|
||||||
"vue-tsc": "^3.2.5"
|
"vue-tsc": "^3.2.5"
|
||||||
},
|
},
|
||||||
|
"browserslist": [
|
||||||
|
">= 0.5%",
|
||||||
|
"last 2 versions",
|
||||||
|
"Firefox ESR",
|
||||||
|
"not dead"
|
||||||
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^20.19.0 || >=22.12.0"
|
"node": "^20.19.0 || >=22.12.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -162,11 +162,32 @@ textarea.form-field {
|
|||||||
min-height: 5rem;
|
min-height: 5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* iOS Safari: datetime-local overflows container and shows empty when no value */
|
||||||
|
input[type="datetime-local"].form-field {
|
||||||
|
min-width: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="datetime-local"].form-field.glass::-webkit-date-and-time-value {
|
||||||
|
color: var(--color-text-on-gradient);
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="datetime-local"].form-field.glass::-webkit-datetime-edit {
|
||||||
|
color: var(--color-text-on-gradient);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="datetime-local"].form-field.glass::-webkit-datetime-edit-fields-wrapper {
|
||||||
|
color: var(--color-text-on-gradient);
|
||||||
|
}
|
||||||
|
|
||||||
/* Form group (label + input) */
|
/* Form group (label + input) */
|
||||||
.form-group {
|
.form-group {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.35rem;
|
gap: 0.35rem;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-label {
|
.form-label {
|
||||||
@@ -244,7 +265,6 @@ textarea.form-field {
|
|||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
box-shadow: var(--shadow-card);
|
box-shadow: var(--shadow-card);
|
||||||
backdrop-filter: blur(16px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(16px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.glass:hover:not(input):not(textarea):not(.btn-primary) {
|
.glass:hover:not(input):not(textarea):not(.btn-primary) {
|
||||||
@@ -256,7 +276,6 @@ textarea.form-field {
|
|||||||
.glass-inner {
|
.glass-inner {
|
||||||
background: var(--color-glass-inner);
|
background: var(--color-glass-inner);
|
||||||
backdrop-filter: blur(16px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(16px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Glow border: conic gradient wrapper with halo (static) */
|
/* Glow border: conic gradient wrapper with halo (static) */
|
||||||
|
|||||||
@@ -107,7 +107,6 @@ function onTouchEnd() {
|
|||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
backdrop-filter: blur(24px);
|
backdrop-filter: blur(24px);
|
||||||
-webkit-backdrop-filter: blur(24px);
|
|
||||||
border-radius: 20px 20px 0 0;
|
border-radius: 20px 20px 0 0;
|
||||||
padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl);
|
padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ watch(
|
|||||||
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
backdrop-filter: blur(24px);
|
backdrop-filter: blur(24px);
|
||||||
-webkit-backdrop-filter: blur(24px);
|
|
||||||
border-radius: var(--radius-card);
|
border-radius: var(--radius-card);
|
||||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
||||||
padding: var(--spacing-xl);
|
padding: var(--spacing-xl);
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ watch(expanded, (isExpanded) => {
|
|||||||
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
backdrop-filter: blur(16px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(16px);
|
|
||||||
border-radius: var(--radius-card);
|
border-radius: var(--radius-card);
|
||||||
padding: var(--spacing-md) var(--spacing-lg);
|
padding: var(--spacing-md) var(--spacing-lg);
|
||||||
box-shadow: var(--shadow-card);
|
box-shadow: var(--shadow-card);
|
||||||
@@ -206,7 +205,6 @@ watch(expanded, (isExpanded) => {
|
|||||||
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
backdrop-filter: blur(16px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(16px);
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: background 0.15s ease;
|
transition: background 0.15s ease;
|
||||||
|
|||||||
@@ -496,7 +496,6 @@ onMounted(fetchEvent)
|
|||||||
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
|
||||||
border: 1px solid var(--color-glass-border);
|
border: 1px solid var(--color-glass-border);
|
||||||
backdrop-filter: blur(16px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(16px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail__meta-text {
|
.detail__meta-text {
|
||||||
|
|||||||
Reference in New Issue
Block a user