mirror of
https://git.sanhost.net/sanasol/hytale-f2p.git
synced 2026-02-26 06:41:47 -03:00
Profile System & Mod Loading Fixes
Added a full profile system and fixed a few critical mod loading issues. What changed Profiles — Implemented proper profile management (create, switch, delete). Each profile now has its own isolated mod list. Mod Isolation — Fixed ModManager so mods are strictly scoped to the active profile. Browsing and installing only affects the selected profile. Critical Fix — Fixed a path bug where mods were being saved to ~/AppData/Local on macOS (Windows path) instead of ~/Library/Application Support. Mods now save to the correct location and load correctly in-game. Stability — Added an auto-sync step before every launch to make sure the physical mods folder always matches the active profile. UI — Added a profile selector dropdown and a profile management modal.
This commit is contained in:
462
GUI/style.css
462
GUI/style.css
@@ -10,7 +10,7 @@ body {
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 8px 32px rgba(0, 0, 0, 0.4),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
@@ -263,6 +263,7 @@ body {
|
||||
|
||||
.window-controls {
|
||||
display: flex;
|
||||
width: fit-content;
|
||||
gap: 0.5rem;
|
||||
z-index: 9999;
|
||||
position: relative;
|
||||
@@ -293,6 +294,7 @@ body {
|
||||
transform: translateX(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
@@ -552,7 +554,7 @@ body {
|
||||
letter-spacing: 0.1em;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 0 0 #7c3aed,
|
||||
0 8px 20px rgba(147, 51, 234, 0.3);
|
||||
display: flex;
|
||||
@@ -564,7 +566,7 @@ body {
|
||||
|
||||
.install-button:hover {
|
||||
background: linear-gradient(135deg, #7c3aed, #2563eb);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 2px 0 0 #7c3aed,
|
||||
0 12px 30px rgba(147, 51, 234, 0.4);
|
||||
transform: translateY(2px);
|
||||
@@ -572,7 +574,7 @@ body {
|
||||
|
||||
.install-button:active {
|
||||
transform: translateY(4px);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 0px 0 0 #7c3aed,
|
||||
0 4px 15px rgba(147, 51, 234, 0.3);
|
||||
}
|
||||
@@ -590,6 +592,7 @@ body {
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.content-pages {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
@@ -666,7 +669,7 @@ body {
|
||||
letter-spacing: 0.05em;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 0 0 #7c3aed,
|
||||
0 8px 20px rgba(147, 51, 234, 0.3);
|
||||
display: flex;
|
||||
@@ -677,7 +680,7 @@ body {
|
||||
|
||||
.home-play-button:hover {
|
||||
background: linear-gradient(135deg, #7c3aed, #2563eb);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 2px 0 0 #7c3aed,
|
||||
0 12px 30px rgba(147, 51, 234, 0.4);
|
||||
transform: translateY(2px);
|
||||
@@ -685,7 +688,7 @@ body {
|
||||
|
||||
.home-play-button:active {
|
||||
transform: translateY(4px);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 0px 0 0 #7c3aed,
|
||||
0 4px 15px rgba(147, 51, 234, 0.3);
|
||||
}
|
||||
@@ -1347,7 +1350,7 @@ body {
|
||||
letter-spacing: 0.1em;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 0 0 #15803d,
|
||||
0 8px 20px rgba(34, 197, 94, 0.3);
|
||||
z-index: 10;
|
||||
@@ -1357,7 +1360,7 @@ body {
|
||||
|
||||
.play-button:hover {
|
||||
background: linear-gradient(135deg, #16a34a, #15803d);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 2px 0 0 #15803d,
|
||||
0 12px 30px rgba(34, 197, 94, 0.4);
|
||||
transform: translateY(2px);
|
||||
@@ -1365,7 +1368,7 @@ body {
|
||||
|
||||
.play-button:active {
|
||||
transform: translateY(4px);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 0px 0 0 #15803d,
|
||||
0 4px 15px rgba(34, 197, 94, 0.3);
|
||||
}
|
||||
@@ -1415,7 +1418,7 @@ body {
|
||||
border-radius: 16px;
|
||||
padding: 2rem;
|
||||
z-index: 50;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 8px 32px rgba(0, 0, 0, 0.6),
|
||||
0 0 40px rgba(147, 51, 234, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
@@ -1424,14 +1427,15 @@ body {
|
||||
|
||||
@keyframes progressGlow {
|
||||
0% {
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 8px 32px rgba(0, 0, 0, 0.6),
|
||||
0 0 40px rgba(147, 51, 234, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
border-color: rgba(147, 51, 234, 0.3);
|
||||
}
|
||||
|
||||
100% {
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 8px 32px rgba(0, 0, 0, 0.6),
|
||||
0 0 60px rgba(147, 51, 234, 0.3),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
@@ -1463,8 +1467,15 @@ body {
|
||||
}
|
||||
|
||||
@keyframes textPulse {
|
||||
0%, 100% { opacity: 0.8; }
|
||||
50% { opacity: 1; }
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#progressPercent {
|
||||
@@ -1476,11 +1487,14 @@ body {
|
||||
}
|
||||
|
||||
@keyframes percentGlow {
|
||||
0%, 100% {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
text-shadow: 0 0 20px rgba(147, 51, 234, 0.8);
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
|
||||
50% {
|
||||
text-shadow: 0 0 30px rgba(147, 51, 234, 1);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
@@ -1493,7 +1507,7 @@ body {
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
inset 0 2px 4px rgba(0, 0, 0, 0.5),
|
||||
0 0 20px rgba(147, 51, 234, 0.1);
|
||||
}
|
||||
@@ -1505,28 +1519,31 @@ body {
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg,
|
||||
transparent,
|
||||
rgba(255, 255, 255, 0.2),
|
||||
transparent
|
||||
);
|
||||
background: linear-gradient(90deg,
|
||||
transparent,
|
||||
rgba(255, 255, 255, 0.2),
|
||||
transparent);
|
||||
animation: shimmer 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes shimmer {
|
||||
0% { left: -100%; }
|
||||
100% { left: 100%; }
|
||||
0% {
|
||||
left: -100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
left: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar-fill {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg,
|
||||
#9333ea 0%,
|
||||
#a855f7 25%,
|
||||
#3b82f6 50%,
|
||||
#06b6d4 75%,
|
||||
#10b981 100%
|
||||
);
|
||||
background: linear-gradient(90deg,
|
||||
#9333ea 0%,
|
||||
#a855f7 25%,
|
||||
#3b82f6 50%,
|
||||
#06b6d4 75%,
|
||||
#10b981 100%);
|
||||
background-size: 200% 100%;
|
||||
border-radius: 10px;
|
||||
width: 0%;
|
||||
@@ -1534,14 +1551,19 @@ body {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
animation: progressFlow 3s linear infinite;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 0 30px rgba(147, 51, 234, 0.6),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
@keyframes progressFlow {
|
||||
0% { background-position: 200% 0; }
|
||||
100% { background-position: -200% 0; }
|
||||
0% {
|
||||
background-position: 200% 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar-fill::after {
|
||||
@@ -1552,16 +1574,22 @@ body {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(90deg,
|
||||
transparent 0%,
|
||||
rgba(255, 255, 255, 0.4) 50%,
|
||||
transparent 100%
|
||||
);
|
||||
transparent 0%,
|
||||
rgba(255, 255, 255, 0.4) 50%,
|
||||
transparent 100%);
|
||||
animation: progressPulse 1.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes progressPulse {
|
||||
0%, 100% { opacity: 0; }
|
||||
50% { opacity: 1; }
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.progress-details {
|
||||
@@ -1798,8 +1826,13 @@ body {
|
||||
}
|
||||
|
||||
@keyframes shimmer {
|
||||
0% { transform: translateX(-100%); }
|
||||
100% { transform: translateX(200%); }
|
||||
0% {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(200%);
|
||||
}
|
||||
}
|
||||
|
||||
.mod-image img {
|
||||
@@ -2028,8 +2061,13 @@ body {
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.loading-mods span {
|
||||
@@ -2312,39 +2350,39 @@ body {
|
||||
.mods-header {
|
||||
padding: 1rem 1.5rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-title {
|
||||
font-size: 1.75rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-controls {
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-controls button {
|
||||
padding: 0.6rem 1.2rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-main-content {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-search-bar {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.search-input-container {
|
||||
min-width: unset;
|
||||
}
|
||||
|
||||
|
||||
.mods-filters {
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-list {
|
||||
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||
gap: 1rem;
|
||||
@@ -2355,15 +2393,15 @@ body {
|
||||
.mods-header {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-main-content {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.mods-list {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
|
||||
.modal-content {
|
||||
width: 95vw;
|
||||
padding: 1.5rem;
|
||||
@@ -2593,7 +2631,7 @@ body {
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
overflow: hidden;
|
||||
margin-top: 1%;
|
||||
margin-top: 1%;
|
||||
}
|
||||
|
||||
.mod-header {
|
||||
@@ -2879,6 +2917,7 @@ body {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
@@ -2902,6 +2941,7 @@ body {
|
||||
transform: translateY(50px);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
@@ -3319,8 +3359,15 @@ body {
|
||||
}
|
||||
|
||||
@keyframes pulse-dot {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.5; }
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3373,6 +3420,7 @@ body {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
@@ -3550,6 +3598,7 @@ body {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
@@ -3571,6 +3620,7 @@ body {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
@@ -3798,13 +3848,13 @@ body {
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.settings-checkbox input[type="checkbox"]:checked + .checkmark {
|
||||
.settings-checkbox input[type="checkbox"]:checked+.checkmark {
|
||||
background: linear-gradient(135deg, #9333ea, #3b82f6);
|
||||
border-color: #9333ea;
|
||||
box-shadow: 0 0 20px rgba(147, 51, 234, 0.4);
|
||||
}
|
||||
|
||||
.settings-checkbox input[type="checkbox"]:checked + .checkmark::after {
|
||||
.settings-checkbox input[type="checkbox"]:checked+.checkmark::after {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -4051,7 +4101,7 @@ body {
|
||||
background: linear-gradient(145deg, #1f2937 0%, #111827 50%, #0f172a 100%) !important;
|
||||
padding: 2rem !important;
|
||||
border-radius: 1rem !important;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 25px 50px rgba(0, 0, 0, 0.8),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
|
||||
@@ -4068,6 +4118,7 @@ body {
|
||||
opacity: 0;
|
||||
transform: scale(0.8) translateY(-20px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1) translateY(0);
|
||||
@@ -4166,7 +4217,7 @@ body {
|
||||
border: none !important;
|
||||
cursor: pointer !important;
|
||||
transition: all 0.2s ease !important;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 15px rgba(59, 130, 246, 0.3),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.1) !important;
|
||||
text-decoration: none !important;
|
||||
@@ -4176,7 +4227,7 @@ body {
|
||||
.update-download-btn:hover:not(:disabled) {
|
||||
background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
|
||||
transform: translateY(-1px) !important;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 8px 25px rgba(59, 130, 246, 0.4),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.2) !important;
|
||||
}
|
||||
@@ -4189,7 +4240,7 @@ body {
|
||||
background: linear-gradient(135deg, #6b7280, #9ca3af) !important;
|
||||
cursor: not-allowed !important;
|
||||
transform: none !important;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 2px 8px rgba(107, 114, 128, 0.3),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.05) !important;
|
||||
}
|
||||
@@ -4208,8 +4259,15 @@ body {
|
||||
}
|
||||
|
||||
@keyframes updatePulse {
|
||||
0%, 100% { transform: scale(1); }
|
||||
50% { transform: scale(1.02); }
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.02);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4330,6 +4388,7 @@ body {
|
||||
opacity: 0;
|
||||
transform: translateY(-20px) scale(0.95);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0) scale(1);
|
||||
@@ -4743,29 +4802,29 @@ body {
|
||||
width: 95vw;
|
||||
max-height: 90vh;
|
||||
}
|
||||
|
||||
|
||||
.uuid-modal-body {
|
||||
padding: 1rem;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
|
||||
.uuid-current-display,
|
||||
.uuid-custom-form {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
|
||||
.uuid-list-header {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.uuid-list-item {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.uuid-item-actions {
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -4773,16 +4832,27 @@ body {
|
||||
|
||||
/* Chat Badges et Animations */
|
||||
@keyframes rainbow {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes contributorGlow {
|
||||
0%, 100% {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
filter: brightness(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
filter: brightness(1.2);
|
||||
@@ -4929,12 +4999,12 @@ body {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.color-type-option input[type="radio"]:checked + .radio-custom {
|
||||
.color-type-option input[type="radio"]:checked+.radio-custom {
|
||||
border-color: #9333ea;
|
||||
background: rgba(147, 51, 234, 0.2);
|
||||
}
|
||||
|
||||
.color-type-option input[type="radio"]:checked + .radio-custom::after {
|
||||
.color-type-option input[type="radio"]:checked+.radio-custom::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -5090,6 +5160,7 @@ body {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 16px rgba(147, 51, 234, 0.4);
|
||||
}
|
||||
|
||||
.color-picker-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -5114,3 +5185,238 @@ body {
|
||||
border-color: #fff;
|
||||
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
/* Profile Selector Styles */
|
||||
.profile-selector {
|
||||
position: relative;
|
||||
pointer-events: auto;
|
||||
margin-right: auto;
|
||||
margin-left: 1rem;
|
||||
z-index: 9999 !important;
|
||||
}
|
||||
|
||||
.profile-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
padding: 0.5rem 1rem;
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
border-radius: 12px;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
font-family: 'Space Grotesk', sans-serif;
|
||||
font-weight: 600;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
z-index: 100000 !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
.profile-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border-color: rgba(147, 51, 234, 0.4);
|
||||
}
|
||||
|
||||
.profile-btn i {
|
||||
color: #9333ea;
|
||||
}
|
||||
|
||||
.profile-dropdown {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
margin-top: 0.5rem;
|
||||
width: 200px;
|
||||
background: rgba(20, 20, 20, 0.95);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
border-radius: 12px;
|
||||
padding: 0.5rem;
|
||||
display: none;
|
||||
/* Toggled by JS */
|
||||
flex-direction: column;
|
||||
z-index: 2000;
|
||||
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
|
||||
animation: fadeIn 0.1s ease;
|
||||
}
|
||||
|
||||
.profile-dropdown.show {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.profile-item {
|
||||
padding: 0.6rem 0.8rem;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
color: #ccc;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.profile-item:hover {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.profile-item.active {
|
||||
background: rgba(147, 51, 234, 0.2);
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.profile-item.active::before {
|
||||
content: '•';
|
||||
color: #9333ea;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.profile-divider {
|
||||
height: 1px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
.profile-action {
|
||||
padding: 0.6rem 0.8rem;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
color: #9333ea;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.profile-action:hover {
|
||||
background: rgba(147, 51, 234, 0.1);
|
||||
}
|
||||
|
||||
/* Profile Modal Styles */
|
||||
.profile-modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
backdrop-filter: blur(5px);
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
animation: fadeIn 0.2s ease;
|
||||
}
|
||||
|
||||
.profile-modal-content {
|
||||
background: #111;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
border-radius: 16px;
|
||||
width: 500px;
|
||||
max-width: 90%;
|
||||
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.profile-modal-header {
|
||||
padding: 1.5rem;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.profile-modal-title {
|
||||
margin: 0;
|
||||
font-size: 1.5rem;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.profile-modal-body {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.profile-manager-list {
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
margin-bottom: 1.5rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.profile-manager-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0.8rem;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border-radius: 8px;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.profile-manager-item:hover {
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
.profile-manager-item.active {
|
||||
border-color: #9333ea;
|
||||
background: rgba(147, 51, 234, 0.1);
|
||||
}
|
||||
|
||||
.profile-delete-btn {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #ef4444;
|
||||
cursor: pointer;
|
||||
font-size: 1rem;
|
||||
padding: 0.4rem;
|
||||
border-radius: 6px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.profile-delete-btn:hover {
|
||||
background: rgba(239, 68, 68, 0.1);
|
||||
}
|
||||
|
||||
.profile-create-section {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.profile-input {
|
||||
flex: 1;
|
||||
padding: 0.8rem;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.profile-create-btn {
|
||||
padding: 0 1.2rem;
|
||||
background: #9333ea;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
font-weight: 600;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.profile-create-btn:hover {
|
||||
background: #7c3aed;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user