consolidated css styling

This commit is contained in:
2025-12-30 09:21:45 +01:00
parent 53369baeef
commit c6cc6879d1
29 changed files with 559 additions and 1230 deletions
+477
View File
@@ -1467,4 +1467,481 @@ a,
.spells-grid, .available-spells .spells-grid {
grid-template-columns: repeat(5, 1fr);
}
}
/* ========================================
CONSOLIDATED MODAL STYLES
======================================== */
/* Modal overlay - covers entire viewport */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
/* Modal content container */
.modal-content {
background: white;
border-radius: 8px;
width: 90%;
max-width: 500px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
max-height: 80vh;
animation: modalSlideIn 0.3s ease-out;
}
/* Modal header */
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 1px solid #dee2e6;
flex-shrink: 0;
}
.modal-header h3 {
margin: 0;
color: #333;
font-size: 1.25rem;
}
/* Modal body */
.modal-body {
padding: 20px;
overflow-y: auto;
flex: 1;
min-height: 0;
}
/* Modal footer */
.modal-footer {
display: flex;
justify-content: flex-end;
gap: 10px;
padding: 20px;
border-top: 1px solid #dee2e6;
flex-shrink: 0;
}
/* Modal actions (alternative to footer) */
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
/* Close button */
.close-button {
background: none;
border: none;
font-size: 1.5rem;
color: #999;
cursor: pointer;
padding: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
transition: color 0.2s ease;
}
.close-button:hover {
color: #333;
}
/* Modal slide in animation */
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
/* ========================================
CONSOLIDATED BUTTON STYLES
======================================== */
/* Cancel button */
.btn-cancel {
padding: 10px 20px;
border: 1px solid #dee2e6;
border-radius: 6px;
background: #f8f9fa;
color: #495057;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.btn-cancel:hover {
background: #e9ecef;
border-color: #adb5bd;
}
/* Confirm button (success/submit) */
.btn-confirm {
padding: 10px 20px;
border: none;
border-radius: 6px;
background: #1da766;
color: white;
cursor: pointer;
font-weight: 600;
transition: all 0.2s ease;
}
.btn-confirm:hover:not(:disabled) {
background: #16a085;
}
.btn-confirm:disabled {
background: #ccc;
cursor: not-allowed;
opacity: 0.6;
}
/* Export button */
.btn-export {
padding: 10px 20px;
border: 1px solid #007bff;
border-radius: 6px;
background: #007bff;
color: white;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.btn-export:hover:not(:disabled) {
background: #0056b3;
border-color: #0056b3;
}
.btn-export:disabled {
opacity: 0.6;
cursor: not-allowed;
}
/* Small export button with icon */
.export-button-small {
width: 40px;
height: 40px;
padding: 0;
border: 1px solid #007bff;
border-radius: 8px;
background: #007bff;
color: white;
font-size: 1.2rem;
cursor: pointer;
transition: all 0.2s ease;
flex-shrink: 0;
}
.export-button-small:hover {
background: #0056b3;
border-color: #0056b3;
transform: scale(1.05);
}
/* Delete button */
.btn-delete {
background: none;
border: none;
cursor: pointer;
font-size: 1.2rem;
padding: 4px 8px;
transition: transform 0.2s ease;
color: #dc3545;
}
.btn-delete:hover {
transform: scale(1.2);
}
/* Edit button */
.btn-edit {
background: none;
border: none;
cursor: pointer;
font-size: 1.2rem;
padding: 4px 8px;
transition: transform 0.2s ease;
color: #007bff;
}
.btn-edit:hover {
transform: scale(1.2);
}
/* Add button */
.btn-add,
.btn-add-equipment,
.btn-add-weapon,
.btn-add-inline,
.btn-add-spell {
padding: 8px 16px;
background: #1da766;
color: white;
border: none;
border-radius: 6px;
cursor: pointer;
font-weight: bold;
transition: background 0.2s ease;
}
.btn-add:hover,
.btn-add-equipment:hover,
.btn-add-weapon:hover,
.btn-add-inline:hover,
.btn-add-spell:hover {
background: #16a085;
}
/* Action button small (for table actions) */
.btn-action {
background: none;
border: none;
cursor: pointer;
padding: 4px 8px;
transition: all 0.2s ease;
font-size: 1rem;
}
.btn-action:hover {
transform: scale(1.1);
}
.btn-improve-small {
font-size: 1.2rem;
}
/* ========================================
CONSOLIDATED FORM STYLES
======================================== */
/* Form group container */
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: #495057;
font-size: 0.95rem;
}
/* Form control (input, select, textarea) */
.form-control,
.template-select,
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="password"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
width: 100%;
padding: 10px 12px;
border: 1px solid #dee2e6;
border-radius: 6px;
background: white;
color: #495057;
font-size: 0.95rem;
box-sizing: border-box;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.form-control:focus,
.template-select:focus,
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
outline: none;
border-color: #007bff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.form-control:disabled,
.template-select:disabled,
.form-group input:disabled,
.form-group select:disabled,
.form-group textarea:disabled {
opacity: 0.6;
cursor: not-allowed;
background: #e9ecef;
}
/* Form row */
.form-row {
display: flex;
gap: 15px;
align-items: flex-start;
margin-bottom: 15px;
}
@media (max-width: 768px) {
.form-row {
flex-direction: column;
}
}
/* Checkbox label */
.checkbox-label {
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
user-select: none;
font-weight: normal;
margin: 0;
}
.checkbox-label input[type="checkbox"] {
width: 18px;
height: 18px;
cursor: pointer;
margin: 0;
}
/* Help text */
.help-text {
display: block;
margin-top: 5px;
font-size: 12px;
color: #6c757d;
font-style: italic;
}
/* ========================================
CONSOLIDATED LOADING INDICATORS
======================================== */
/* Loading overlay (absolute positioned within container) */
.loading-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.95);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
border-radius: 8px;
}
.loading-overlay p {
color: #007bff;
font-weight: 500;
margin: 0;
}
/* Spinner animation */
.spinner {
border: 4px solid #f3f3f3;
border-top: 4px solid #007bff;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
margin-bottom: 15px;
}
/* Loading message (text only) */
.loading-message {
text-align: center;
padding: 20px;
color: #6c757d;
font-style: italic;
}
/* ========================================
CONSOLIDATED TABLE STYLES
======================================== */
/* Table header cell */
.cd-table-header {
background-color: #1da766;
color: white;
font-weight: bold;
padding: 8px;
text-align: left;
}
/* Empty state for tables/lists */
.empty-state {
text-align: center;
color: #999;
font-style: italic;
padding: 2rem;
}
.empty-state h3 {
color: #333;
margin-bottom: 10px;
font-size: 1.5rem;
}
/* Action cell */
.action-cell {
text-align: center;
vertical-align: middle;
}
/* ========================================
CONSOLIDATED HEADER/LAYOUT STYLES
======================================== */
/* Header section */
.header-section {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
flex-wrap: wrap;
gap: 10px;
}
/* Header content */
.header-content {
display: flex;
align-items: center;
gap: 15px;
flex: 1;
}
/* Character header */
.character-header {
margin-bottom: 20px;
}
.character-header h2 {
margin: 0;
color: #333;
font-size: 1.5rem;
border-bottom: 2px solid #007bff;
padding-bottom: 10px;
flex: 1;
}
+4 -1
View File
@@ -431,7 +431,10 @@ export default {
};
</script>
<style scoped>
<style>
/* All common styles moved to main.css */
/* AuditLogView specific styles */
.audit-log-view {
padding: 20px;
background: #f8f9fa;
@@ -35,3 +35,7 @@ export default {
},
}
</script>
<style>
/* All common styles moved to main.css */
</style>
@@ -38,3 +38,7 @@ export default {
},
}
</script>
<style>
/* All common styles moved to main.css */
</style>
@@ -359,7 +359,9 @@ export default {
}
</script>
<style scoped>
<style>
/* All common styles moved to main.css */
.character-creation {
width: 100%;
max-width: none;
@@ -336,22 +336,8 @@ export default {
}
</script>
<style scoped>
.attributes-form {
max-width: 800px;
margin: 0 auto;
display: flex;
flex-direction: column;
min-height: 0;
padding-bottom: 20px;
}
.attributes-form h2 {
text-align: center;
margin-bottom: 10px;
color: #333;
flex-shrink: 0;
}
<style>
/* All common styles moved to main.css */
.instruction {
text-align: center;
@@ -361,63 +347,6 @@ export default {
flex-shrink: 0;
}
.attributes-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 20px;
max-height: 50vh;
overflow-y: auto;
padding: 5px;
border: 1px solid #eee;
border-radius: 8px;
background-color: #fefefe;
}
.attribute-group {
padding: 8px;
border: 1px solid #ddd;
border-radius: 8px;
background-color: #fafafa;
min-width: 0; /* Prevent overflow */
}
.attribute-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 5px;
}
.input-with-dice {
display: flex;
gap: 8px;
align-items: center;
}
.attribute-label {
font-weight: bold;
color: #333;
flex: 1;
margin: 0;
}
.attribute-input {
width: 60px;
padding: 6px 8px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
text-align: center;
font-weight: bold;
}
.attribute-input:focus {
outline: none;
border-color: #2196f3;
box-shadow: 0 0 5px rgba(33, 150, 243, 0.3);
}
.attribute-description {
font-size: 11px;
color: #666;
@@ -467,63 +396,10 @@ export default {
background-color: #f57c00;
}
.form-actions {
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
.attributes-form-content {
display: flex;
flex-direction: column;
flex: 1;
}
.prev-btn, .next-btn {
padding: 12px 30px;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.prev-btn {
background-color: #6c757d;
color: white;
}
.prev-btn:hover {
background-color: #5a6268;
}
.next-btn {
background-color: #2196f3;
color: white;
}
.next-btn:hover:not(:disabled) {
background-color: #1976d2;
}
.next-btn:disabled {
background-color: #ccc;
cursor: not-allowed;
}
/* Responsive Design für sehr kleine Bildschirme */
@media (max-width: 600px) {
.attributes-grid {
grid-template-columns: 1fr;
}
.attribute-group {
padding: 10px;
}
}
</style>
@@ -390,49 +390,8 @@ export default {
}
</script>
<style scoped>
.basic-info-form {
max-width: 600px;
margin: 0 auto;
}
.basic-info-form h2 {
text-align: center;
margin-bottom: 30px;
color: #333;
}
.form-group {
margin-bottom: 20px;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
input, select {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
input:focus, select:focus {
outline: none;
border-color: #2196f3;
box-shadow: 0 0 5px rgba(33, 150, 243, 0.3);
}
<style>
/* All common styles moved to main.css */
.belief-search {
position: relative;
@@ -491,63 +450,6 @@ input:focus, select:focus {
color: #f44336;
}
.form-actions {
text-align: center;
margin-top: 30px;
}
.next-btn {
background-color: #2196f3;
color: white;
padding: 12px 30px;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.next-btn:hover:not(:disabled) {
background-color: #1976d2;
}
.next-btn:disabled {
background-color: #ccc;
cursor: not-allowed;
}
/* Social class roll styles */
.input-with-dice {
display: flex;
gap: 8px;
align-items: center;
}
.input-with-dice select {
flex: 1;
}
.dice-btn {
padding: 10px 12px;
background-color: #4caf50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
transition: background-color 0.3s;
flex-shrink: 0;
}
.dice-btn:hover:not(:disabled) {
background-color: #45a049;
}
.dice-btn:disabled {
background-color: #ccc;
cursor: not-allowed;
}
.roll-result {
margin-top: 8px;
padding: 8px;
@@ -557,7 +459,6 @@ input:focus, select:focus {
color: #2e7d32;
}
/* Roll overlay styles */
.roll-overlay {
position: fixed;
top: 0;
@@ -480,3 +480,7 @@ export default {
}
}
</script>
<style>
/* All common styles moved to main.css */
</style>
@@ -705,10 +705,9 @@ export default {
}
</script>
<style scoped>
/* Minimal custom styles - most styling comes from main.css */
<style>
/* All common styles moved to main.css */
/* Override global fullwidth-page padding to achieve true full-width */
.fullwidth-page {
padding: 0 !important;
margin: 0 !important;
@@ -717,35 +716,30 @@ export default {
box-sizing: border-box !important;
}
/* Add minimal padding only where needed */
.page-header {
padding: 15px 20px;
margin-bottom: 20px;
}
/* Full-width three column grid layout */
.three-column-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 30px;
margin: 0 20px 30px 20px; /* Add horizontal margins for content readability */
width: calc(100vw - 40px); /* Use viewport width minus margins */
margin: 0 20px 30px 20px;
width: calc(100vw - 40px);
max-width: calc(100vw - 40px);
box-sizing: border-box;
}
/* Ensure grid takes full available width */
.skills-content {
width: 100%;
max-width: 100%;
}
/* Utility classes for dynamic styling that can't be expressed in main.css */
.opacity-50 {
opacity: 0.6;
}
/* Border color variants for category states */
.border-primary {
border-color: #007bff !important;
background-color: #f8fcff;
@@ -761,7 +755,6 @@ export default {
background-color: #ffebee;
}
/* Responsive behavior for smaller screens */
@media (max-width: 1200px) {
.three-column-grid {
grid-template-columns: 1fr 1fr;
@@ -636,10 +636,9 @@ export default {
}
</script>
<style scoped>
/* Minimal custom styles - most styling comes from main.css */
<style>
/* All common styles moved to main.css */
/* Spell Points Display */
.spell-points-display {
margin: 0 20px 30px 20px;
padding: 16px;
@@ -703,7 +702,6 @@ export default {
font-weight: 600;
}
/* Override global fullwidth-page padding to achieve true full-width */
.fullwidth-page {
padding: 0 !important;
margin: 0 !important;
@@ -712,30 +710,26 @@ export default {
box-sizing: border-box !important;
}
/* Add minimal padding only where needed */
.page-header {
padding: 15px 20px;
margin-bottom: 20px;
}
/* Full-width three column grid layout */
.three-column-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 30px;
margin: 0 20px 30px 20px; /* Add horizontal margins for content readability */
width: calc(100vw - 40px); /* Use viewport width minus margins */
margin: 0 20px 30px 20px;
width: calc(100vw - 40px);
max-width: calc(100vw - 40px);
box-sizing: border-box;
}
/* Ensure grid takes full available width */
.spells-content {
width: 100%;
max-width: 100%;
}
/* Spell-specific styles */
.spell-item {
padding: 12px;
border: 1px solid #ddd;
@@ -828,7 +822,6 @@ export default {
text-align: right;
}
/* Selected spells styles */
.selected-spell-item {
padding: 12px;
border: 1px solid #007bff;
@@ -844,14 +837,6 @@ export default {
margin-bottom: 6px;
}
.spell-header {
display: flex;
justify-content: space-between;
align-items: center;
flex: 1;
margin-right: 8px;
}
.selected-spell-item .spell-category {
color: #6c757d;
font-size: 0.8em;
@@ -880,7 +865,6 @@ export default {
background-color: #c82333;
}
/* Category selection styles */
.category-item {
padding: 12px;
border: 1px solid #ddd;
@@ -924,7 +908,6 @@ export default {
border-radius: 4px;
}
/* Total costs display */
.total-costs {
border-top: 1px solid #dee2e6;
padding-top: 12px;
@@ -948,12 +931,10 @@ export default {
color: #007bff;
}
/* Utility classes for dynamic styling that can't be expressed in main.css */
.opacity-50 {
opacity: 0.6;
}
/* Message styles */
.no-selection-message,
.no-spells-message,
.no-categories-message {
@@ -963,7 +944,6 @@ export default {
padding: 20px;
}
/* Badge styles */
.category-badge,
.count-badge,
.info-badge {
@@ -984,7 +964,6 @@ export default {
color: white;
}
/* Responsive behavior for smaller screens */
@media (max-width: 1200px) {
.three-column-grid {
grid-template-columns: 1fr 1fr;
@@ -58,7 +58,9 @@ export default {
}
</script>
<style scoped>
<style>
/* All common styles moved to main.css */
.sessions-section {
margin-bottom: 30px;
}
@@ -97,7 +99,6 @@ export default {
font-size: 0.8rem;
}
/* Responsive Design */
@media (max-width: 768px) {
.session-header {
flex-direction: column;
+2 -119
View File
@@ -37,7 +37,8 @@
</div>
</template>
<style scoped>
<style>
/* Component-specific styles only - global styles in main.css */
.character-details {
width: 100%;
height: 100%;
@@ -46,124 +47,6 @@
display: flex;
flex-direction: column;
}
.character-header {
margin-bottom: 20px;
}
.header-content {
display: flex;
align-items: center;
gap: 15px;
}
.export-button-small {
width: 40px;
height: 40px;
padding: 0;
border: 1px solid #007bff;
border-radius: 8px;
background: #007bff;
color: white;
font-size: 1.2rem;
cursor: pointer;
transition: all 0.2s ease;
flex-shrink: 0;
}
.export-button-small:hover {
background: #0056b3;
border-color: #0056b3;
transform: scale(1.05);
}
.character-header h2 {
margin: 0;
color: #333;
font-size: 1.5rem;
border-bottom: 2px solid #007bff;
padding-bottom: 10px;
flex: 1;
}
/* Modal Styles */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
width: 90%;
max-width: 500px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 1px solid #dee2e6;
}
.modal-header h3 {
margin: 0;
color: #333;
font-size: 1.25rem;
}
.close-button {
background: none;
border: none;
font-size: 1.5rem;
color: #999;
cursor: pointer;
padding: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.submenu {
display: flex;
gap: 10px;
margin: 20px 0;
flex-wrap: wrap;
}
.submenu button {
padding: 10px 16px;
border: 1px solid #dee2e6;
border-radius: 6px;
background: #f8f9fa;
color: #495057;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.submenu button:hover {
background: #e9ecef;
border-color: #007bff;
}
.submenu button.active {
background: #007bff;
color: white;
border-color: #007bff;
}
</style>
+3 -2
View File
@@ -132,8 +132,9 @@ export default {
}
</script>
<style scoped>
/* Spezifische Styles nur für CharacterList */
<style>
/* All common styles moved to main.css */
.create-character-section {
margin-bottom: 30px;
padding: 20px;
+3 -1
View File
@@ -176,7 +176,9 @@
</template>
<style>
/* DatasheetView spezifische Styles */
/* All common styles moved to main.css */
/* DatasheetView specific styles */
.datasheet-container {
padding-top: 10px;
}
+3 -9
View File
@@ -39,13 +39,7 @@ export default {
}
</script>
<style>
/*
.cd-view {
text-align: center;
}
button {
margin: 5px;
}*/
</style>
<style>
/* All common styles moved to main.css */
</style>
+3 -102
View File
@@ -119,7 +119,9 @@
</template>
<style scoped>
<style>
/* All common styles moved to main.css */
.fullwidth-container {
padding: 1rem;
}
@@ -188,107 +190,6 @@
transform: scale(1.2);
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
width: 90%;
max-width: 600px;
max-height: 80vh;
display: flex;
flex-direction: column;
animation: modalSlideIn 0.3s ease;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal-header {
padding: 20px;
border-bottom: 2px solid #1da766;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal-header h3 {
margin: 0;
color: #333;
}
.close-button {
background: none;
border: none;
font-size: 28px;
cursor: pointer;
color: #666;
line-height: 1;
padding: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.close-button:hover {
color: #333;
}
.modal-body {
padding: 20px;
overflow-y: auto;
flex: 1;
}
.modal-footer {
padding: 15px 20px;
border-top: 1px solid #eee;
display: flex;
justify-content: flex-end;
gap: 10px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
.form-group input {
width: 100%;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
box-sizing: border-box;
}
.loading {
text-align: center;
padding: 2rem;
+2 -2
View File
@@ -93,8 +93,8 @@
</div>
</template>
<style scoped>
/* ExperianceView spezifische Styles */
<style>
/* All common styles moved to main.css */
.experience-section,
.wealth-section {
+2 -188
View File
@@ -48,194 +48,8 @@
</div>
</template>
<style scoped>
/* Modal Styles */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
width: 90%;
max-width: 500px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 1px solid #dee2e6;
}
.modal-header h3 {
margin: 0;
color: #333;
font-size: 1.25rem;
}
.close-button {
background: none;
border: none;
font-size: 1.5rem;
color: #999;
cursor: pointer;
padding: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.close-button:hover {
color: #333;
}
.modal-body {
padding: 20px;
position: relative;
}
.loading-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.95);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
border-radius: 0 0 8px 8px;
}
.spinner {
border: 4px solid #f3f3f3;
border-top: 4px solid #007bff;
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 1s linear infinite;
margin-bottom: 15px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loading-overlay p {
color: #007bff;
font-weight: 500;
margin: 0;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: #495057;
}
.template-select {
width: 100%;
padding: 10px 12px;
border: 1px solid #dee2e6;
border-radius: 6px;
background: white;
color: #495057;
font-size: 0.95rem;
cursor: pointer;
}
.template-select:focus {
outline: none;
border-color: #007bff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.template-select:disabled {
opacity: 0.6;
cursor: not-allowed;
background: #e9ecef;
}
.checkbox-label {
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
user-select: none;
}
.checkbox-label input[type="checkbox"] {
width: 18px;
height: 18px;
cursor: pointer;
}
.modal-footer {
display: flex;
justify-content: flex-end;
gap: 10px;
padding: 20px;
border-top: 1px solid #dee2e6;
}
.btn-cancel {
padding: 10px 20px;
border: 1px solid #dee2e6;
border-radius: 6px;
background: #f8f9fa;
color: #495057;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.btn-cancel:hover {
background: #e9ecef;
border-color: #adb5bd;
}
.btn-export {
padding: 10px 20px;
border: 1px solid #007bff;
border-radius: 6px;
background: #007bff;
color: white;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.btn-export:hover:not(:disabled) {
background: #0056b3;
border-color: #0056b3;
}
.btn-export:disabled {
opacity: 0.6;
cursor: not-allowed;
}
<style>
/* All common styles moved to main.css - no component-specific styles needed */
</style>
<script>
@@ -95,6 +95,6 @@ export default {
}
</script>
<style scoped>
/* No custom CSS needed - using main.css classes */
<style>
/* All common styles moved to main.css */
</style>
+4 -14
View File
@@ -74,7 +74,10 @@
</div>
</template>
<style scoped>
<style>
/* All common styles moved to main.css */
/* ImageUploadCropper specific styles */
.btn-upload {
padding: 8px 16px;
background-color: var(--primary-color);
@@ -151,19 +154,6 @@
border: 1px solid #ccc;
background-color: white;
}
.btn-secondary {
padding: 10px 20px;
background-color: #6c757d;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.btn-secondary:hover {
background-color: #5a6268;
}
</style>
<script>
+2 -2
View File
@@ -90,6 +90,6 @@ export default {
}
</script>
<style scoped>
/* No custom CSS needed - using main.css classes */
<style>
/* All common styles moved to main.css */
</style>
+2
View File
@@ -47,6 +47,8 @@ export default {
</script>
<style>
/* All common styles moved to main.css */
.error {
color: red;
}
+2 -14
View File
@@ -201,18 +201,6 @@ export default {
}
</script>
<style scoped>
.spinner {
width: 20px;
height: 20px;
border: 2px solid #f3f3f3;
border-top: 2px solid #007bff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
<style>
/* All common styles moved to main.css */
</style>
+2 -106
View File
@@ -165,31 +165,8 @@
</div>
</template>
<style scoped>
/* Modal Styles */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
padding: 24px;
max-width: 500px;
width: 90%;
max-height: 80vh;
overflow-y: auto;
animation: modalSlideIn 0.3s ease;
}
<style>
/* All common styles moved to main.css */
.modal-wide {
max-width: 700px;
@@ -330,17 +307,6 @@
color: #6c757d;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal-content h3 {
margin-top: 0;
margin-bottom: 20px;
@@ -349,10 +315,6 @@
padding-bottom: 10px;
}
.form-group {
margin-bottom: 15px;
}
.form-row {
display: flex;
gap: 15px;
@@ -374,29 +336,6 @@
min-width: 140px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
box-sizing: border-box;
}
.form-group textarea {
height: 80px;
resize: vertical;
}
.help-text {
display: block;
margin-top: 5px;
@@ -404,49 +343,6 @@
color: #6c757d;
font-style: italic;
}
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
.btn-confirm {
padding: 8px 20px;
background: #1da766;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: background 0.2s ease;
}
.btn-confirm:hover:not(:disabled) {
background: #16a085;
}
.btn-confirm:disabled {
background: #ccc;
cursor: not-allowed;
}
.btn-cancel {
padding: 8px 20px;
background: #6c757d;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s ease;
}
.btn-cancel:hover:not(:disabled) {
background: #5a6268;
}
</style>
<script>
+3 -11
View File
@@ -739,18 +739,10 @@ export default {
}
</script>
<style scoped>
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: block;
z-index: 1000;
}
<style>
/* All common styles moved to main.css */
/* SkillLearnDialog specific styles */
.modal-content {
background: white;
border-radius: 0;
+3 -117
View File
@@ -252,6 +252,9 @@
</template>
<style>
/* All common styles moved to main.css */
/* SkillView specific styles */
.tables-container {
display: flex;
gap: 1rem;
@@ -424,120 +427,6 @@
color: white;
}
/* Modal Styles */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
padding: 24px;
max-width: 500px;
width: 90%;
max-height: 80vh;
overflow-y: auto;
animation: modalSlideIn 0.3s ease;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal-content h3 {
margin-top: 0;
margin-bottom: 20px;
color: #333;
border-bottom: 2px solid #1da766;
padding-bottom: 10px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
box-sizing: border-box;
}
.form-group textarea {
height: 80px;
resize: vertical;
}
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
.btn-confirm {
padding: 8px 20px;
background: #1da766;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: background 0.2s ease;
}
.btn-confirm:hover:not(:disabled) {
background: #16a085;
}
.btn-confirm:disabled {
background: #ccc;
cursor: not-allowed;
}
.btn-cancel {
padding: 8px 20px;
background: #6c757d;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s ease;
}
.btn-cancel:hover {
background: #5a6268;
}
.icon {
font-size: 14px;
}
@@ -611,11 +500,8 @@
color: #495057;
font-size: 13px;
}
</style>
<script>
import API from '@/utils/api'
import SkillImproveDialog from './SkillImproveDialog.vue'
+4 -94
View File
@@ -179,7 +179,7 @@
<!-- Ausgewählter Zauber Aktionen und Details -->
<div v-if="selectedSpell" class="form-group">
<div class="spell-details-section">
<!---
<!--
<div class="selection-summary">
<div class="spell-actions">
<strong>Ausgewählt:</strong> {{ selectedSpell.name }}
@@ -198,7 +198,7 @@
</button>
</div>
</div>
--->
-->
<!-- Detaillierte Zauber-Informationen -->
<div v-if="isLoadingSpellDetails" class="loading-spell-details">
<span>Lade Zauber-Details...</span>
@@ -612,32 +612,14 @@ export default {
}
};
</script>
<style scoped>
/* Modal Styles */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: flex-start;
align-items: flex-start;
z-index: 1000;
}
<style>
/* All common styles moved to main.css */
.modal-content {
background: white;
border-radius: 8px;
padding: 24px;
width: 100vw;
height: 100vh;
max-width: 100vw;
max-height: 100vh;
overflow-y: auto;
animation: modalSlideIn 0.3s ease;
box-sizing: border-box;
}
@@ -1032,17 +1014,6 @@ export default {
color: #6c757d;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal-content h3 {
margin-top: 0;
margin-bottom: 20px;
@@ -1051,10 +1022,6 @@ export default {
padding-bottom: 10px;
}
.form-group {
margin-bottom: 15px;
}
.form-row {
display: flex;
gap: 15px;
@@ -1091,62 +1058,5 @@ export default {
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
box-sizing: border-box;
}
.form-group textarea {
height: 80px;
resize: vertical;
}
.help-text {
display: block;
margin-top: 5px;
font-size: 12px;
color: #6c757d;
font-style: italic;
}
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
.btn-confirm {
padding: 8px 20px;
background: #1da766;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: background 0.2s ease;
}
.btn-confirm:hover:not(:disabled) {
background: #16a085;
}
.btn-confirm:disabled {
background: #ccc;
cursor: not-allowed;
}
.btn-cancel {
padding: 8px 20px;
background: #6c757d;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s ease;
}
.btn-cancel:hover:not(:disabled) {
background: #5a6268;
}
</style>
+3 -136
View File
@@ -191,7 +191,9 @@
</template>
<style scoped>
<style>
/* All common styles moved to main.css */
.cd-view {
padding: 1rem;
}
@@ -302,107 +304,6 @@
font-family: inherit;
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background: white;
border-radius: 8px;
width: 90%;
max-width: 600px;
max-height: 80vh;
display: flex;
flex-direction: column;
animation: modalSlideIn 0.3s ease;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: scale(0.9) translateY(-20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
.modal-header {
padding: 20px;
border-bottom: 2px solid #1da766;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal-header h3 {
margin: 0;
color: #333;
}
.close-button {
background: none;
border: none;
font-size: 28px;
cursor: pointer;
color: #666;
line-height: 1;
padding: 0;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.close-button:hover {
color: #333;
}
.modal-body {
padding: 20px;
overflow-y: auto;
flex: 1;
}
.modal-footer {
padding: 15px 20px;
border-top: 1px solid #eee;
display: flex;
justify-content: flex-end;
gap: 10px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
.form-group input {
width: 100%;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
box-sizing: border-box;
}
.loading {
text-align: center;
padding: 2rem;
@@ -466,40 +367,6 @@
.selected-weapon-details p {
margin: 8px 0;
}
.btn-confirm {
padding: 8px 20px;
background: #1da766;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: background 0.2s ease;
}
.btn-confirm:hover:not(:disabled) {
background: #16a085;
}
.btn-confirm:disabled {
background: #ccc;
cursor: not-allowed;
}
.btn-cancel {
padding: 8px 20px;
background: #6c757d;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s ease;
}
.btn-cancel:hover {
background: #5a6268;
}
</style>
<script>
+3 -44
View File
@@ -95,7 +95,9 @@
</div>
</template>
<style scoped>
<style>
/* All common styles moved to main.css */
.user-profile {
padding: var(--padding-lg);
margin-top: 2%;
@@ -164,49 +166,6 @@ h1 {
gap: var(--margin-md);
}
.form-group {
display: flex;
flex-direction: column;
gap: var(--margin-xs);
}
.form-group label {
font-weight: bold;
color: var(--color-text-secondary);
}
.form-group input {
padding: var(--padding-sm);
border: 1px solid var(--color-border);
border-radius: var(--border-radius);
font-size: 1em;
}
.form-group input:focus {
outline: none;
border-color: var(--color-primary);
}
.btn-primary {
background-color: var(--color-primary);
color: white;
padding: var(--padding-sm) var(--padding-md);
border: none;
border-radius: var(--border-radius);
cursor: pointer;
font-size: 1em;
align-self: flex-start;
}
.btn-primary:hover:not(:disabled) {
background-color: var(--color-primary-dark);
}
.btn-primary:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.badge-role-standard {
background-color: #6c757d;
color: white;