aktuazalizacja profilow,prefernecji,bezpiecznestwa

This commit is contained in:
2026-08-13 16:18:46 +02:00
parent fbb7ab2d90
commit 571ec05d76
22 changed files with 1339 additions and 151 deletions
+354 -29
View File
@@ -14275,9 +14275,7 @@ svg {
.account-avatar {
align-items: center;
background: #e8f4ff;
border-radius: 999px;
color: #20344f;
display: grid;
font-size: 15px;
font-weight: 800;
@@ -19557,10 +19555,11 @@ svg {
color: #2b4e74;
cursor: pointer;
display: inline-flex;
font-size: 10px;
font-size: 11px;
font-weight: 900;
min-height: 24px;
padding: 0 10px;
min-height: 28px;
padding: 0 12px;
white-space: nowrap;
}
.settings-list .cover-upload-tag input {
@@ -19568,7 +19567,38 @@ svg {
}
.settings-list .cover-photo-row strong {
font-size: 10px;
font-size: 11px;
}
/* Podpowiedz przy zdjeciu w tle to pelne zdanie, a nie krotka etykieta. W waskiej trzeciej
kolumnie konczyla sie wielokropkiem ("Dodaj zdjecie w tle swo..."), wiec schodzi do drugiej
linii pod nazwe i zawija sie normalnie. Nazwa i przycisk zostaja w jednym wierszu. */
.settings-list article.cover-photo-row {
grid-template-columns: 22px minmax(0, 1fr) auto;
row-gap: 3px;
}
.settings-list article.cover-photo-row > span {
grid-column: 1;
grid-row: 1 / span 2;
}
.settings-list article.cover-photo-row > em {
grid-column: 2;
grid-row: 1;
}
.settings-list article.cover-photo-row > .cover-upload-tag {
grid-column: 3;
grid-row: 1;
}
.settings-list article.cover-photo-row > strong {
grid-column: 2 / span 2;
grid-row: 2;
overflow: visible;
text-align: left;
white-space: normal;
}
.cover-photo-actions-row {
@@ -19712,6 +19742,8 @@ svg {
align-items: start;
gap: 8px;
grid-template-columns: 22px 1fr;
/* Wyrazny odstep od wiersza ze zdjeciem w tle - to osobna decyzja, nie kolejna pozycja listy. */
padding-top: 16px;
}
.settings-list article.profile-visibility-card > span {
@@ -19725,10 +19757,19 @@ svg {
grid-column: 2;
}
/* Opis wybranej widocznosci to pelne zdanie pod przyciskami, a nie krotka etykieta w wierszu.
Domyslne .settings-list strong tnie go w jednej linii wielokropkiem - tutaj ma sie zawijac. */
.settings-list article.profile-visibility-card > strong {
overflow: visible;
text-align: left;
white-space: normal;
}
/* Dwie opcje widocznosci: publiczna i prywatna - kolumny dziela szerokosc po rowno. */
.profile-visibility-card .profile-visibility-options {
display: grid;
gap: 6px;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-top: 4px;
width: 100%;
}
@@ -19738,9 +19779,10 @@ svg {
border: 1px solid #d8e1ec;
border-radius: 8px;
color: #41566f;
font-size: 9px;
/* Etykiety byly scisniete do 9 px, zeby zmiescic trzy kolumny - przy dwoch jest miejsce. */
font-size: 11px;
font-weight: 900;
min-height: 28px;
min-height: 30px;
overflow: hidden;
padding: 0 8px;
text-overflow: ellipsis;
@@ -20738,10 +20780,7 @@ svg {
}
.profile-photo-avatar {
background: #eaf2ff;
border: 2px solid #d7e2f2;
border-radius: 999px;
color: #2f6cd3;
display: grid;
font-size: 22px;
font-weight: 900;
@@ -20766,21 +20805,41 @@ svg {
.profile-photo-actions {
align-items: center;
display: flex;
gap: 10px;
margin-top: 8px;
flex-wrap: wrap;
gap: 12px;
/* Przycisk stal tuz pod nazwa konta i wisial wysoko nad linia zamykajaca sekcje - odsuwamy go
od tekstu, zeby siedzial mniej wiecej w polowie miedzy nazwa a ta linia. */
margin-top: 16px;
}
.profile-photo-actions label,
.profile-photo-actions button {
background: #ffffff;
border: 1px solid #d9e2ec;
border-radius: 6px;
color: #344860;
/* Wybor pliku to <label>, a element inline ignoruje wysokosc i pionowe wysrodkowanie -
stad inline-flex: bez tego napis siedzi na krawedzi ramki. */
.profile-photo-actions label {
align-items: center;
background: #12a764;
border: 1px solid #12a764;
border-radius: 8px;
color: #ffffff;
cursor: pointer;
font-size: 11px;
font-weight: 900;
min-height: 30px;
padding: 0 12px;
display: inline-flex;
font-size: 12px;
font-weight: 800;
height: 34px;
justify-content: center;
line-height: 1;
padding: 0 16px;
transition: background 0.15s ease, border-color 0.15s ease;
white-space: nowrap;
}
.profile-photo-actions label:hover {
background: #0f8f56;
border-color: #0f8f56;
}
.profile-photo-actions label:focus-within {
outline: 2px solid #0b7a49;
outline-offset: 2px;
}
.profile-photo-actions label input {
@@ -20788,11 +20847,20 @@ svg {
}
.profile-photo-actions button {
background: none;
border: 0;
color: #d14646;
cursor: pointer;
font-size: 12px;
font-weight: 800;
line-height: 1;
padding: 0;
}
.profile-photo-actions button:hover {
text-decoration: underline;
}
.settings-separator {
border-top: 1px solid #edf1f5;
margin: 14px 0;
@@ -21771,11 +21839,9 @@ svg {
.public-profile-avatar {
align-items: center;
background: #eaf2ff;
border: 3px solid #ffffff;
border-radius: 999px;
box-shadow: 0 6px 14px rgba(29, 52, 82, 0.16);
color: #2f6cd3;
display: grid;
font-size: 26px;
font-weight: 900;
@@ -30014,6 +30080,14 @@ a.listing-detail-back {
align-items: center;
}
/* Wiersz z telefonem jest ostatni, wiec nie ma wlasnej kreski na dole (border-bottom zdejmuje
:last-child). Domyslny odstep separatora dokladal pod nim 14 px pustki, przez co tresc wiersza
wygladala, jakby wisiala w powietrzu: 15 px nad tekstem i 29 px pod nim. Separator idzie tuz
pod wiersz i zamyka go tak samo, jak kreska zamyka wiersz z e-mailem. */
.security-status-list + .settings-separator {
margin-top: 2px;
}
.status-pill {
border-radius: 999px;
font-size: 10px;
@@ -30045,11 +30119,12 @@ a.listing-detail-back {
}
/* Link podgladu profilu jest teraz czwartym dzieckiem karty widocznosci - bez tego
wpadalby do waskiej kolumny z ikona i wychodzil poza karte. */
wpadalby do waskiej kolumny z ikona i wychodzil poza karte. Stoi na dole po prawej,
pod opisem wybranej widocznosci - to domkniecie sekcji, a nie element wiersza. */
.settings-list article.profile-visibility-card > .profile-preview-cta {
grid-column: 2;
justify-self: start;
margin-top: 4px;
justify-self: end;
margin-top: 10px;
}
.settings-danger-zone {
@@ -30168,3 +30243,253 @@ a.listing-detail-back {
}
}
/* --- Awatar uzytkownika: jeden wyglad w calej aplikacji ---------------------------------
Klasa z miejsca uzycia (.account-trigger-avatar, .account-avatar, .public-profile-avatar,
.profile-photo-avatar, .listing-detail-seller-avatar) nadaje rozmiar i pozycje, a ta -
ksztalt, kolor i wpasowanie zdjecia. Bez ustawionego zdjecia zostaja inicjaly: biale
litery na zielonym tle, tak jak awatar w prawym gornym rogu naglowka.
Reguly stoja na koncu arkusza, zeby kolor tla wygral z wczesniejszymi definicjami. */
.avatar {
align-items: center;
background: #12a764;
/* Ksztalt trzymamy tutaj, zeby kazde nowe uzycie bylo okragle bez dopisywania wlasnej reguly. */
border-radius: 999px;
color: #ffffff;
display: inline-flex;
flex: none;
font-weight: 800;
justify-content: center;
letter-spacing: 0.3px;
overflow: hidden;
text-transform: uppercase;
}
.avatar img {
border-radius: inherit;
display: block;
height: 100%;
object-fit: cover;
width: 100%;
}
/* --- Profil prywatny -------------------------------------------------------------------
Zamiast pustego szkieletu profilu pokazujemy jedna karte: czyj to profil i ze jest
prywatny. Ogloszen i danych nie ma tu do ukrycia - serwer ich nie przysyla. */
.private-profile-card {
align-items: center;
display: flex;
flex-direction: column;
gap: 10px;
padding: 40px 24px;
text-align: center;
}
.private-profile-avatar {
font-size: 24px;
height: 76px;
width: 76px;
}
.private-profile-card h1 {
color: #13243d;
font-size: 20px;
font-weight: 900;
margin: 4px 0 0;
}
.private-profile-card strong {
align-items: center;
color: #4a5c73;
display: inline-flex;
font-size: 13px;
font-weight: 800;
gap: 6px;
}
.private-profile-card p {
color: #77869a;
font-size: 13px;
line-height: 1.6;
margin: 0;
max-width: 46ch;
}
/* --- Zmiana hasla: podpowiedzi pod polami i licznik odstepu -----------------------------
Pola nowego hasla otwieraja sie dopiero po potwierdzeniu dotychczasowego, wiec formularz
musi na biezaco mowic, na czym stoi. */
.settings-password-form .field-hint {
color: #77869a;
display: block;
font-size: 11px;
font-weight: 700;
line-height: 1.5;
margin-top: 4px;
}
.settings-password-form .field-hint.ok {
color: #12784f;
}
.settings-password-form .field-hint.error {
color: #c0392f;
}
.settings-password-form input:disabled {
background: #f4f6f9;
color: #9aa7b6;
cursor: not-allowed;
}
.settings-password-form button[type="submit"]:disabled {
cursor: not-allowed;
filter: grayscale(0.55);
opacity: 0.6;
}
.password-cooldown {
align-items: center;
background: #fdf6e8;
border: 1px solid #f0dcae;
border-radius: 8px;
color: #7a5a12;
display: flex;
font-size: 12px;
font-weight: 700;
gap: 8px;
margin: 0 0 4px;
padding: 10px 12px;
}
.password-cooldown svg {
flex: none;
height: 14px;
width: 14px;
}
.password-cooldown strong {
font-variant-numeric: tabular-nums;
font-weight: 900;
}
/* --- Pasek "filtry z Twoich preferencji" nad wynikami ----------------------------------
Wyszukiwarka startuje z preferencjami z /konto/ustawienia. Bez tego paska zawezona lista
wygladalaby jak brak ofert w serwisie, wiec musi byc widoczny i dawac wyjscie jednym kliknieciem. */
.preferences-note {
align-items: center;
background: #eef7f2;
border: 1px solid #cfe8dc;
border-radius: 8px;
color: #1c5c42;
display: flex;
flex-wrap: wrap;
font-size: 12px;
font-weight: 700;
gap: 10px;
margin: 0 0 14px;
padding: 10px 12px;
}
.preferences-note svg {
flex: none;
height: 14px;
width: 14px;
}
.preferences-note > span {
margin-right: auto;
}
.preferences-note button,
.preferences-note a {
background: none;
border: 0;
color: #12784f;
cursor: pointer;
font-size: 12px;
font-weight: 900;
padding: 0;
text-decoration: underline;
white-space: nowrap;
}
.preferences-note button:hover,
.preferences-note a:hover {
color: #0b5c3a;
}
/* Czyszczenie preferencji stoi obok zapisu, ale jest akcja drugorzedna - nie moze wygladac
tak samo jak zielony przycisk zapisu, bo to dwie rozne decyzje. */
.profile-form-actions button.settings-clear-button {
background: #ffffff;
border: 1px solid #d9e2ec;
color: #5c6b7f;
}
.profile-form-actions button.settings-clear-button:hover:not(:disabled) {
border-color: #c3d0de;
color: #33445c;
}
/* Lista podpowiedzi miejscowosci w preferencjach - uklad jak w wyszukiwarce ofert,
ale bez odnosnika do mapy: w ustawieniach nie prowadzimy wyszukiwania. */
.settings-place-suggest {
border: 1px solid #e3eaf3;
border-radius: 8px;
display: flex;
flex-direction: column;
margin-top: 8px;
max-height: 260px;
overflow-y: auto;
}
.settings-place-suggest button {
align-items: center;
background: none;
border: 0;
border-bottom: 1px solid #eff3f8;
cursor: pointer;
display: flex;
gap: 10px;
padding: 9px 12px;
text-align: left;
width: 100%;
}
.settings-place-suggest button:last-child {
border-bottom: 0;
}
.settings-place-suggest button:hover {
background: #f4f8fc;
}
.settings-place-suggest svg {
color: #12a764;
flex: none;
height: 14px;
width: 14px;
}
.settings-place-suggest strong {
color: #1c2c42;
display: block;
font-size: 12px;
font-weight: 800;
}
.settings-place-suggest small {
color: #7d8b9d;
display: block;
font-size: 11px;
font-weight: 600;
}
.settings-place-status {
color: #7d8b9d;
font-size: 11px;
font-weight: 700;
margin: 0;
padding: 10px 12px;
}