feat: Enhance goodbye and welcome forms with new message types and image options

- Added support for different message types (text, embed, both) in goodbye and welcome forms.
- Implemented embed options including title, description, color, thumbnail, and footer for both forms.
- Introduced image options with gradient selection, title, subtitle, and member count display for goodbye and welcome messages.
- Updated API routes to handle new configuration parameters for saving and retrieving goodbye and welcome settings.
- Created a new function to generate welcome images with customizable gradients and text.
This commit is contained in:
Arthur Puechberty
2026-01-18 17:28:23 +01:00
parent 0ba91ac116
commit fac4b0c9e5
11 changed files with 1530 additions and 156 deletions
+78
View File
@@ -1528,3 +1528,81 @@ body {
padding: var(--spacing-lg);
}
/* ===== Gradient Picker ===== */
.gradient-picker {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
margin-top: var(--spacing-xs);
}
.gradient-option {
width: 50px;
height: 50px;
border-radius: var(--radius-md);
cursor: pointer;
border: 3px solid transparent;
transition: all 0.2s ease;
position: relative;
}
.gradient-option:hover {
transform: scale(1.1);
box-shadow: var(--shadow-md);
}
.gradient-option.selected {
border-color: var(--primary);
box-shadow: 0 0 0 2px var(--primary), var(--shadow-md);
}
.gradient-option.selected::after {
content: '✓';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
font-size: 1.2rem;
font-weight: bold;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
/* ===== Image Preview ===== */
.image-preview {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.image-preview img {
max-width: 100%;
height: auto;
border-radius: var(--radius-sm);
}
.preview-placeholder {
color: var(--text-muted);
font-style: italic;
}
/* ===== Color Input ===== */
.form-color {
height: 45px;
padding: 5px;
cursor: pointer;
}
.form-color::-webkit-color-swatch-wrapper {
padding: 2px;
}
.form-color::-webkit-color-swatch {
border: none;
border-radius: var(--radius-sm);
}