diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css index 7d21444..c727f3d 100644 --- a/frontend/src/assets/main.css +++ b/frontend/src/assets/main.css @@ -627,7 +627,9 @@ button { color: #fff !important; --status-bar-color: #fff; } -.app-icon--darkchat { background: #050507; } +.app-icon--darkchat { + background: #050507; +} .darkchat-page { --dc-purple: #8b5cf6; --dc-purple-dark: #5b21b6; @@ -642,18 +644,29 @@ button { overflow: hidden; background: #000; color: #f5f5f7; - font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif; + font-family: + -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', sans-serif; } .darkchat-page button, .darkchat-page input, .darkchat-page textarea, -.darkchat-page select { font: inherit; } -.darkchat-page button { color: inherit; } +.darkchat-page select { + font: inherit; +} +.darkchat-page button { + color: inherit; +} .darkchat-page input, .darkchat-page textarea, -.darkchat-page select { color: #f5f5f7; } -.darkchat-page button:disabled { opacity: .34; } -.darkchat-page button:active:not(:disabled) { transform: scale(.96); } +.darkchat-page select { + color: #f5f5f7; +} +.darkchat-page button:disabled { + opacity: 0.34; +} +.darkchat-page button:active:not(:disabled) { + transform: scale(0.96); +} .darkchat-round { width: 39px; height: 39px; @@ -664,10 +677,18 @@ button { border: 1px solid var(--dc-border); border-radius: 50%; background: var(--dc-surface); - transition: transform .14s ease, background .2s ease; + transition: + transform 0.14s ease, + background 0.2s ease; +} +.darkchat-round--large { + width: 43px; + height: 43px; +} +.darkchat-round.active { + background: var(--dc-purple); + border-color: var(--dc-purple); } -.darkchat-round--large { width: 43px; height: 43px; } -.darkchat-round.active { background: var(--dc-purple); border-color: var(--dc-purple); } .darkchat-glass-action { width: 44px; height: 44px; @@ -678,9 +699,12 @@ button { border-radius: 50%; color: #f5f5f7; line-height: 0; - transition: transform .14s ease; + transition: transform 0.14s ease; +} +.darkchat-glass-action--large { + width: 48px; + height: 48px; } -.darkchat-glass-action--large { width: 48px; height: 48px; } .darkchat-glass-action--pill { width: 68px; border-radius: 22px; @@ -693,11 +717,16 @@ button { height: 46px; border-color: #3a3a3c; background: linear-gradient(145deg, rgb(44 44 46 / 96%), rgb(28 28 30 / 92%)); - box-shadow: inset 0 1px 0 rgb(255 255 255 / 9%), 0 5px 18px rgb(0 0 0 / 42%); + box-shadow: + inset 0 1px 0 rgb(255 255 255 / 9%), + 0 5px 18px rgb(0 0 0 / 42%); color: #fff; line-height: 0; } -.darkchat-back svg { display: block; margin: 0; } +.darkchat-back svg { + display: block; + margin: 0; +} .darkchat-pill { width: 54px; min-width: 54px; @@ -727,9 +756,21 @@ button { background: linear-gradient(145deg, var(--dc-purple), var(--dc-purple-dark)); box-shadow: 0 18px 45px rgb(91 33 182 / 40%); } -.darkchat-gate h1 { margin: 21px 0 8px; font-size: 27px; } -.darkchat-gate p { margin: 0; color: #d1d1d6; font-size: 14px; line-height: 1.45; } -.darkchat-gate small { margin-top: 13px; color: var(--dc-muted); font-size: 11px; } +.darkchat-gate h1 { + margin: 21px 0 8px; + font-size: 27px; +} +.darkchat-gate p { + margin: 0; + color: #d1d1d6; + font-size: 14px; + line-height: 1.45; +} +.darkchat-gate small { + margin-top: 13px; + color: var(--dc-muted); + font-size: 11px; +} .darkchat-loader { width: 27px; height: 27px; @@ -737,13 +778,24 @@ button { border: 3px solid rgb(139 92 246 / 25%); border-top-color: var(--dc-purple); border-radius: 50%; - animation: darkchat-spin .7s linear infinite; + animation: darkchat-spin 0.7s linear infinite; +} +.darkchat-loader--small { + width: 17px; + height: 17px; + border-width: 2px; } -.darkchat-loader--small { width: 17px; height: 17px; border-width: 2px; } .darkchat-inbox, .darkchat-sheet-page, -.darkchat-thread { height: 100%; padding: 44px 0 25px; box-sizing: border-box; } -.darkchat-inbox { display: flex; flex-direction: column; } +.darkchat-thread { + height: 100%; + padding: 44px 0 25px; + box-sizing: border-box; +} +.darkchat-inbox { + display: flex; + flex-direction: column; +} .darkchat-inbox__header, .darkchat-sheet-page > header, .darkchat-thread__header { @@ -756,9 +808,15 @@ button { background: #000; } .darkchat-inbox__header > strong, -.darkchat-sheet-page > header > strong { font-size: 17px; font-weight: 720; letter-spacing: -.2px; } +.darkchat-sheet-page > header > strong { + font-size: 17px; + font-weight: 720; + letter-spacing: -0.2px; +} .darkchat-inbox__header > :last-child, -.darkchat-sheet-page > header > :last-child { justify-self: end; } +.darkchat-sheet-page > header > :last-child { + justify-self: end; +} .darkchat-security-strip { height: 32px; margin: 0 15px 4px; @@ -772,9 +830,22 @@ button { color: #b9a3ff; font-size: 11px; } -.darkchat-security-strip span { flex: 1; } -.darkchat-security-strip button { padding: 0; border: 0; background: transparent; color: #b9a3ff; font-size: 10px; } -.darkchat-conversations { min-height: 0; flex: 1; padding: 3px 12px 76px; overflow-y: auto; } +.darkchat-security-strip span { + flex: 1; +} +.darkchat-security-strip button { + padding: 0; + border: 0; + background: transparent; + color: #b9a3ff; + font-size: 10px; +} +.darkchat-conversations { + min-height: 0; + flex: 1; + padding: 3px 12px 76px; + overflow-y: auto; +} .darkchat-conversation { position: relative; width: 100%; @@ -788,7 +859,7 @@ button { text-align: left; } .darkchat-conversation::after { - content: ""; + content: ''; position: absolute; right: 0; bottom: 0; @@ -818,19 +889,85 @@ button { font-weight: 800; text-shadow: 0 1px 7px rgb(0 0 0 / 35%); } -.darkchat-avatar--small { width: 37px; height: 37px; font-size: 18px; } -.darkchat-avatar--header { width: 39px; height: 39px; font-size: 18px; } -.darkchat-conversation__body { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 3px; } -.darkchat-conversation__body > span { display: flex; align-items: center; gap: 4px; } -.darkchat-conversation__body strong { min-width: 0; flex: 1; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; } -.darkchat-conversation__body time { color: var(--dc-muted); font-size: 11px; } -.darkchat-conversation__body svg { color: #636366; } -.darkchat-conversation__body small { overflow: hidden; color: var(--dc-muted); font-size: 13px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; } -.darkchat-timer-icon { position: absolute; right: 4px; bottom: 7px; color: #a78bfa; } -.darkchat-empty { flex: 1; padding: 15px 40px 80px; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; } -.darkchat-empty > span { width: 57px; height: 57px; display: grid; place-items: center; border-radius: 20px; background: var(--dc-surface); color: var(--dc-purple); } -.darkchat-empty h2 { margin: 14px 0 5px; font-size: 18px; } -.darkchat-empty p { margin: 0; color: var(--dc-muted); font-size: 12px; line-height: 1.4; } +.darkchat-avatar--small { + width: 37px; + height: 37px; + font-size: 18px; +} +.darkchat-avatar--header { + width: 39px; + height: 39px; + font-size: 18px; +} +.darkchat-conversation__body { + min-width: 0; + flex: 1; + display: flex; + flex-direction: column; + gap: 3px; +} +.darkchat-conversation__body > span { + display: flex; + align-items: center; + gap: 4px; +} +.darkchat-conversation__body strong { + min-width: 0; + flex: 1; + overflow: hidden; + font-size: 15px; + text-overflow: ellipsis; + white-space: nowrap; +} +.darkchat-conversation__body time { + color: var(--dc-muted); + font-size: 11px; +} +.darkchat-conversation__body svg { + color: #636366; +} +.darkchat-conversation__body small { + overflow: hidden; + color: var(--dc-muted); + font-size: 13px; + line-height: 1.3; + text-overflow: ellipsis; + white-space: nowrap; +} +.darkchat-timer-icon { + position: absolute; + right: 4px; + bottom: 7px; + color: #a78bfa; +} +.darkchat-empty { + flex: 1; + padding: 15px 40px 80px; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + text-align: center; +} +.darkchat-empty > span { + width: 57px; + height: 57px; + display: grid; + place-items: center; + border-radius: 20px; + background: var(--dc-surface); + color: var(--dc-purple); +} +.darkchat-empty h2 { + margin: 14px 0 5px; + font-size: 18px; +} +.darkchat-empty p { + margin: 0; + color: var(--dc-muted); + font-size: 12px; + line-height: 1.4; +} .darkchat-inbox__toolbar { position: absolute; z-index: 5; @@ -853,16 +990,70 @@ button { background: rgb(28 28 30 / 94%); backdrop-filter: blur(22px); } -.darkchat-inbox__toolbar input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: 14px; } -.darkchat-sheet-page { overflow-y: auto; padding-right: 15px; padding-left: 15px; } -.darkchat-sheet-page > header { position: sticky; z-index: 4; top: -1px; margin: 0 -15px; } -.darkchat-new-hero { padding: 14px 23px 19px; text-align: center; } -.darkchat-new-hero > span { width: 59px; height: 59px; margin: auto; display: grid; place-items: center; border-radius: 20px; background: linear-gradient(145deg, var(--dc-purple), var(--dc-purple-dark)); } -.darkchat-new-hero h2 { margin: 12px 0 4px; font-size: 19px; } -.darkchat-new-hero p { margin: 0; color: var(--dc-muted); font-size: 11px; line-height: 1.4; } -.darkchat-input { margin: 9px 0; padding: 9px 12px; display: flex; flex-direction: column; gap: 5px; border: 1px solid var(--dc-border); border-radius: 12px; background: var(--dc-surface); } -.darkchat-input span { color: var(--dc-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .5px; } -.darkchat-input input { border: 0; outline: 0; background: transparent; font-size: 13px; } +.darkchat-inbox__toolbar input { + min-width: 0; + flex: 1; + border: 0; + outline: 0; + background: transparent; + font-size: 14px; +} +.darkchat-sheet-page { + overflow-y: auto; + padding-right: 15px; + padding-left: 15px; +} +.darkchat-sheet-page > header { + position: sticky; + z-index: 4; + top: -1px; + margin: 0 -15px; +} +.darkchat-new-hero { + padding: 14px 23px 19px; + text-align: center; +} +.darkchat-new-hero > span { + width: 59px; + height: 59px; + margin: auto; + display: grid; + place-items: center; + border-radius: 20px; + background: linear-gradient(145deg, var(--dc-purple), var(--dc-purple-dark)); +} +.darkchat-new-hero h2 { + margin: 12px 0 4px; + font-size: 19px; +} +.darkchat-new-hero p { + margin: 0; + color: var(--dc-muted); + font-size: 11px; + line-height: 1.4; +} +.darkchat-input { + margin: 9px 0; + padding: 9px 12px; + display: flex; + flex-direction: column; + gap: 5px; + border: 1px solid var(--dc-border); + border-radius: 12px; + background: var(--dc-surface); +} +.darkchat-input span { + color: var(--dc-muted); + font-size: 9px; + text-transform: uppercase; + letter-spacing: 0.5px; +} +.darkchat-input input { + border: 0; + outline: 0; + background: transparent; + font-size: 13px; +} .darkchat-primary, .darkchat-danger { width: 100%; @@ -878,8 +1069,17 @@ button { font-size: 13px; font-weight: 700; } -.darkchat-danger { background: rgb(255 69 58 / 14%); color: var(--dc-red) !important; } -.darkchat-sheet-page h3 { margin: 17px 5px 5px; color: var(--dc-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .5px; } +.darkchat-danger { + background: rgb(255 69 58 / 14%); + color: var(--dc-red) !important; +} +.darkchat-sheet-page h3 { + margin: 17px 5px 5px; + color: var(--dc-muted); + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.5px; +} .darkchat-contact-row { width: 100%; min-height: 54px; @@ -892,28 +1092,151 @@ button { background: transparent; text-align: left; } -.darkchat-contact-row > span:nth-child(2) { min-width: 0; flex: 1; display: flex; flex-direction: column; } -.darkchat-contact-row strong { font-size: 13px; } -.darkchat-contact-row small { color: var(--dc-muted); font-size: 9px; } -.darkchat-contact-row svg { color: var(--dc-muted); } -.darkchat-qr-card { margin: 18px 0 6px; padding: 15px; display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 12px; border: 1px solid var(--dc-border); border-radius: 18px; background: var(--dc-surface); } -.darkchat-faux-qr { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 10px; background: #fff; color: #111; } -.darkchat-qr-card > span { min-width: 0; display: flex; flex-direction: column; gap: 3px; } -.darkchat-qr-card > span strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; } -.darkchat-qr-card > span small { color: var(--dc-muted); font-size: 9px; } -.darkchat-qr-card > button { grid-column: 1 / -1; height: 35px; display: flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 10px; background: rgb(139 92 246 / 16%); color: #c4b5fd; font-size: 11px; } -.darkchat-thread { display: flex; flex-direction: column; padding-bottom: 79px; } -.darkchat-thread--panel { padding-bottom: 342px; } -.darkchat-thread__header { position: relative; flex: none; grid-template-columns: 50px 1fr 50px; } -.darkchat-thread__identity { min-width: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; background: transparent; } -.darkchat-thread__identity > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; } -.darkchat-thread__identity strong { max-width: 142px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; } -.darkchat-thread__identity small { color: var(--dc-muted); font-size: 10px; } -.darkchat-thread__identity svg { color: var(--dc-muted); } -.darkchat-thread__meta { height: 25px; flex: none; display: flex; align-items: center; justify-content: center; gap: 4px; border-bottom: 1px solid #1b1b1d; color: var(--dc-muted); font-size: 10px; } -.darkchat-thread__messages { min-height: 0; padding: 14px 15px 20px; flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; overflow-y: auto; } -.darkchat-day { align-self: center; margin: 5px 0 9px; color: var(--dc-muted); font-size: 11px; font-weight: 600; } -.darkchat-system { max-width: 86%; margin: 8px auto; display: flex; align-items: center; gap: 5px; color: var(--dc-muted); font-size: 10px; text-align: center; } +.darkchat-contact-row > span:nth-child(2) { + min-width: 0; + flex: 1; + display: flex; + flex-direction: column; +} +.darkchat-contact-row strong { + font-size: 13px; +} +.darkchat-contact-row small { + color: var(--dc-muted); + font-size: 9px; +} +.darkchat-contact-row svg { + color: var(--dc-muted); +} +.darkchat-qr-card { + margin: 18px 0 6px; + padding: 15px; + display: grid; + grid-template-columns: 72px 1fr; + align-items: center; + gap: 12px; + border: 1px solid var(--dc-border); + border-radius: 18px; + background: var(--dc-surface); +} +.darkchat-faux-qr { + width: 72px; + height: 72px; + display: grid; + place-items: center; + border-radius: 10px; + background: #fff; + color: #111; +} +.darkchat-qr-card > span { + min-width: 0; + display: flex; + flex-direction: column; + gap: 3px; +} +.darkchat-qr-card > span strong { + overflow: hidden; + font-size: 12px; + text-overflow: ellipsis; +} +.darkchat-qr-card > span small { + color: var(--dc-muted); + font-size: 9px; +} +.darkchat-qr-card > button { + grid-column: 1 / -1; + height: 35px; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + border: 0; + border-radius: 10px; + background: rgb(139 92 246 / 16%); + color: #c4b5fd; + font-size: 11px; +} +.darkchat-thread { + display: flex; + flex-direction: column; + padding-bottom: 79px; +} +.darkchat-thread--panel { + padding-bottom: 342px; +} +.darkchat-thread__header { + position: relative; + flex: none; + grid-template-columns: 50px 1fr 50px; +} +.darkchat-thread__identity { + min-width: 0; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + border: 0; + background: transparent; +} +.darkchat-thread__identity > span:nth-child(2) { + min-width: 0; + display: flex; + flex-direction: column; + align-items: flex-start; +} +.darkchat-thread__identity strong { + max-width: 142px; + overflow: hidden; + font-size: 15px; + text-overflow: ellipsis; + white-space: nowrap; +} +.darkchat-thread__identity small { + color: var(--dc-muted); + font-size: 10px; +} +.darkchat-thread__identity svg { + color: var(--dc-muted); +} +.darkchat-thread__meta { + height: 25px; + flex: none; + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + border-bottom: 1px solid #1b1b1d; + color: var(--dc-muted); + font-size: 10px; +} +.darkchat-thread__messages { + min-height: 0; + padding: 14px 15px 20px; + flex: 1; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 7px; + overflow-y: auto; +} +.darkchat-day { + align-self: center; + margin: 5px 0 9px; + color: var(--dc-muted); + font-size: 11px; + font-weight: 600; +} +.darkchat-system { + max-width: 86%; + margin: 8px auto; + display: flex; + align-items: center; + gap: 5px; + color: var(--dc-muted); + font-size: 10px; + text-align: center; +} .darkchat-message { position: relative; max-width: 86%; @@ -928,125 +1251,686 @@ button { line-height: 1.32; text-align: left; overflow-wrap: anywhere; - animation: darkchat-message-in .28s cubic-bezier(.32,.72,0,1) both; + animation: darkchat-message-in 0.28s cubic-bezier(0.32, 0.72, 0, 1) both; +} +.darkchat-message--sent { + align-self: flex-end; + background: linear-gradient(145deg, #8b5cf6, #6d28d9); } -.darkchat-message--sent { align-self: flex-end; background: linear-gradient(145deg, #8b5cf6, #6d28d9); } .darkchat-message--received::before, -.darkchat-message--sent::after { content: ""; position: absolute; bottom: 0; width: 9px; height: 11px; } -.darkchat-message--received::before { left: -5px; border-bottom-right-radius: 10px; background: var(--dc-surface-2); } -.darkchat-message--sent::after { right: -5px; border-bottom-left-radius: 10px; background: #6d28d9; } -.darkchat-message > small { align-self: flex-end; color: rgb(255 255 255 / 57%); font-size: 9px; white-space: nowrap; } -.darkchat-message--received > small { color: var(--dc-muted); } -.darkchat-message--failed { outline: 1px solid var(--dc-red); } +.darkchat-message--sent::after { + content: ''; + position: absolute; + bottom: 0; + width: 9px; + height: 11px; +} +.darkchat-message--received::before { + left: -5px; + border-bottom-right-radius: 10px; + background: var(--dc-surface-2); +} +.darkchat-message--sent::after { + right: -5px; + border-bottom-left-radius: 10px; + background: #6d28d9; +} +.darkchat-message > small { + align-self: flex-end; + color: rgb(255 255 255 / 57%); + font-size: 9px; + white-space: nowrap; +} +.darkchat-message--received > small { + color: var(--dc-muted); +} +.darkchat-message--failed { + outline: 1px solid var(--dc-red); +} .darkchat-message > img, -.darkchat-message > video { width: min(228px, 74vw); max-height: 240px; margin: -7px -10px 2px; border-radius: 14px; object-fit: cover; } -.darkchat-message > video { background: #000; } -.darkchat-reply-preview { padding: 5px 7px; display: flex; align-items: center; gap: 5px; overflow: hidden; border-left: 2px solid #c4b5fd; border-radius: 5px; background: rgb(0 0 0 / 18%); color: rgb(255 255 255 / 72%); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } -.darkchat-reactions { position: absolute; right: 4px; bottom: -15px; z-index: 2; padding: 1px 5px; border: 2px solid #000; border-radius: 9px; background: #343438; font-size: 9px; white-space: nowrap; } -.darkchat-message:has(.darkchat-reactions) { margin-bottom: 12px; } -.darkchat-replying { position: absolute; z-index: 6; right: 55px; bottom: 72px; left: 55px; min-height: 39px; padding: 5px 8px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--dc-border); border-radius: 11px; background: rgb(28 28 30 / 96%); color: #c4b5fd; } -.darkchat-replying > span { min-width: 0; flex: 1; display: flex; flex-direction: column; } -.darkchat-replying small { font-size: 9px; text-transform: uppercase; } -.darkchat-replying strong { overflow: hidden; color: #fff; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } -.darkchat-replying button { width: 25px; height: 25px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #343438; } -.darkchat-composer { position: absolute; z-index: 7; right: 12px; bottom: 28px; left: 12px; display: flex; align-items: flex-end; gap: 8px; } -.darkchat-composer > label { min-height: 47px; padding: 7px 7px 7px 14px; flex: 1; display: flex; align-items: center; gap: 6px; border: 1px solid var(--dc-border); border-radius: 24px; background: var(--dc-surface); } -.darkchat-composer textarea { min-height: 21px; max-height: 76px; min-width: 0; padding: 2px 0; flex: 1; resize: none; border: 0; outline: 0; background: transparent; font-size: 14px; line-height: 19px; } -.darkchat-composer label button { width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: #a78bfa; } -.darkchat-actions-bubbles { position: absolute; z-index: 8; bottom: 76px; left: 14px; display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 6px; } -.darkchat-actions-bubbles button { min-height: 40px; padding: 4px 13px 4px 5px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--dc-border); border-radius: 20px; background: var(--dc-surface); font-size: 12px; box-shadow: 0 7px 19px rgb(0 0 0 / 45%); animation: darkchat-bubble-in .23s cubic-bezier(.32,.72,0,1) both; } -.darkchat-actions-bubbles button > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: rgb(139 92 246 / 18%); color: #c4b5fd; font-size: 18px; } +.darkchat-message > video { + width: min(228px, 74vw); + max-height: 240px; + margin: -7px -10px 2px; + border-radius: 14px; + object-fit: cover; +} +.darkchat-message > video { + background: #000; +} +.darkchat-reply-preview { + padding: 5px 7px; + display: flex; + align-items: center; + gap: 5px; + overflow: hidden; + border-left: 2px solid #c4b5fd; + border-radius: 5px; + background: rgb(0 0 0 / 18%); + color: rgb(255 255 255 / 72%); + font-size: 10px; + text-overflow: ellipsis; + white-space: nowrap; +} +.darkchat-reactions { + position: absolute; + right: 4px; + bottom: -15px; + z-index: 2; + padding: 1px 5px; + border: 2px solid #000; + border-radius: 9px; + background: #343438; + font-size: 9px; + white-space: nowrap; +} +.darkchat-message:has(.darkchat-reactions) { + margin-bottom: 12px; +} +.darkchat-replying { + position: absolute; + z-index: 6; + right: 55px; + bottom: 72px; + left: 55px; + min-height: 39px; + padding: 5px 8px; + display: flex; + align-items: center; + gap: 7px; + border: 1px solid var(--dc-border); + border-radius: 11px; + background: rgb(28 28 30 / 96%); + color: #c4b5fd; +} +.darkchat-replying > span { + min-width: 0; + flex: 1; + display: flex; + flex-direction: column; +} +.darkchat-replying small { + font-size: 9px; + text-transform: uppercase; +} +.darkchat-replying strong { + overflow: hidden; + color: #fff; + font-size: 11px; + text-overflow: ellipsis; + white-space: nowrap; +} +.darkchat-replying button { + width: 25px; + height: 25px; + display: grid; + place-items: center; + border: 0; + border-radius: 50%; + background: #343438; +} +.darkchat-composer { + position: absolute; + z-index: 7; + right: 12px; + bottom: 28px; + left: 12px; + display: flex; + align-items: flex-end; + gap: 8px; +} +.darkchat-composer > label { + min-height: 47px; + padding: 7px 7px 7px 14px; + flex: 1; + display: flex; + align-items: center; + gap: 6px; + border: 1px solid var(--dc-border); + border-radius: 24px; + background: var(--dc-surface); +} +.darkchat-composer textarea { + min-height: 21px; + max-height: 76px; + min-width: 0; + padding: 2px 0; + flex: 1; + resize: none; + border: 0; + outline: 0; + background: transparent; + font-size: 14px; + line-height: 19px; +} +.darkchat-composer label button { + width: 32px; + height: 32px; + padding: 0; + display: grid; + place-items: center; + border: 0; + border-radius: 50%; + background: transparent; + color: #a78bfa; +} +.darkchat-actions-bubbles { + position: absolute; + z-index: 8; + bottom: 76px; + left: 14px; + display: flex; + flex-direction: column-reverse; + align-items: flex-start; + gap: 6px; +} +.darkchat-actions-bubbles button { + min-height: 40px; + padding: 4px 13px 4px 5px; + display: flex; + align-items: center; + gap: 9px; + border: 1px solid var(--dc-border); + border-radius: 20px; + background: var(--dc-surface); + font-size: 12px; + box-shadow: 0 7px 19px rgb(0 0 0 / 45%); + animation: darkchat-bubble-in 0.23s cubic-bezier(0.32, 0.72, 0, 1) both; +} +.darkchat-actions-bubbles button > span { + width: 30px; + height: 30px; + display: grid; + place-items: center; + border-radius: 50%; + background: rgb(139 92 246 / 18%); + color: #c4b5fd; + font-size: 18px; +} .darkchat-gif-panel, -.darkchat-page .messages-full-emoji-picker { position: absolute; z-index: 8; right: 0; bottom: 0; left: 0; height: 285px; border-top: 1px solid var(--dc-border); background: rgb(20 20 22 / 97%); color: #fff; backdrop-filter: blur(25px); } -.darkchat-gif-panel > header { height: 37px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; } -.darkchat-gif-panel > header strong { font-size: 13px; } -.darkchat-gif-panel > header button { border: 0; background: transparent; color: #a78bfa; font-size: 11px; } -.darkchat-gif-panel > label { height: 31px; margin: 0 9px 6px; padding: 0 9px; display: flex; align-items: center; gap: 6px; border-radius: 16px; background: #2c2c2e; color: var(--dc-muted); } -.darkchat-gif-panel > label input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: 10px; } -.darkchat-gif-panel > div { height: 175px; padding: 0 9px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; overflow-y: auto; } -.darkchat-gif-panel > div button { min-height: 80px; padding: 0; overflow: hidden; border: 0; border-radius: 9px; background: #2c2c2e; } -.darkchat-gif-panel > div img { width: 100%; height: 100%; object-fit: cover; } -.darkchat-load-more { width: calc(100% - 18px); height: 28px; margin: 4px 9px; border: 0; border-radius: 9px; background: #2c2c2e; color: #a78bfa !important; font-size: 10px; } -.darkchat-page .messages-full-emoji-picker { animation: darkchat-panel-in .28s cubic-bezier(.32,.72,0,1) both; } +.darkchat-page .messages-full-emoji-picker { + position: absolute; + z-index: 8; + right: 0; + bottom: 0; + left: 0; + height: 285px; + border-top: 1px solid var(--dc-border); + background: rgb(20 20 22 / 97%); + color: #fff; + backdrop-filter: blur(25px); +} +.darkchat-gif-panel > header { + height: 37px; + padding: 0 13px; + display: flex; + align-items: center; + justify-content: space-between; +} +.darkchat-gif-panel > header strong { + font-size: 13px; +} +.darkchat-gif-panel > header button { + border: 0; + background: transparent; + color: #a78bfa; + font-size: 11px; +} +.darkchat-gif-panel > label { + height: 31px; + margin: 0 9px 6px; + padding: 0 9px; + display: flex; + align-items: center; + gap: 6px; + border-radius: 16px; + background: #2c2c2e; + color: var(--dc-muted); +} +.darkchat-gif-panel > label input { + min-width: 0; + flex: 1; + border: 0; + outline: 0; + background: transparent; + font-size: 10px; +} +.darkchat-gif-panel > div { + height: 175px; + padding: 0 9px; + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 5px; + overflow-y: auto; +} +.darkchat-gif-panel > div button { + min-height: 80px; + padding: 0; + overflow: hidden; + border: 0; + border-radius: 9px; + background: #2c2c2e; +} +.darkchat-gif-panel > div img { + width: 100%; + height: 100%; + object-fit: cover; +} +.darkchat-load-more { + width: calc(100% - 18px); + height: 28px; + margin: 4px 9px; + border: 0; + border-radius: 9px; + background: #2c2c2e; + color: #a78bfa !important; + font-size: 10px; +} +.darkchat-page .messages-full-emoji-picker { + animation: darkchat-panel-in 0.28s cubic-bezier(0.32, 0.72, 0, 1) both; +} .darkchat-page .messages-full-emoji-picker > header button, .darkchat-page .messages-full-emoji-picker__search, -.darkchat-page .messages-full-emoji-picker nav button.active { background: #2c2c2e; color: #fff; } -.darkchat-page .messages-full-emoji-picker__search input { color: #fff; } -.darkchat-page .messages-full-emoji-picker nav { border-color: var(--dc-border); } -.darkchat-recorder { position: absolute; z-index: 9; right: 12px; bottom: 28px; left: 12px; height: 43px; padding: 0 7px; display: flex; align-items: center; gap: 6px; border: 1px solid var(--dc-border); border-radius: 22px; background: var(--dc-surface); } -.darkchat-recorder > button { width: 29px; height: 29px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #2c2c2e; } -.darkchat-recorder > button:last-child { color: #a78bfa; } -.darkchat-recorder > i { width: 7px; height: 7px; border-radius: 50%; background: var(--dc-red); animation: messages-record-pulse 1s ease infinite; } -.darkchat-recorder time { font-size: 10px; } -.darkchat-recorder > span { height: 26px; min-width: 0; flex: 1; display: flex; align-items: center; justify-content: center; gap: 1px; overflow: hidden; } -.darkchat-recorder > span b { width: 2px; flex: none; border-radius: 2px; background: #a78bfa; } -.darkchat-voice { min-width: 197px; display: flex; align-items: center; gap: 8px; } -.darkchat-voice > button { width: 30px; height: 30px; display: grid; place-items: center; padding: 0; flex: none; border: 0; border-radius: 50%; background: rgb(255 255 255 / 17%); } -.darkchat-voice > div { min-width: 0; flex: 1; } -.darkchat-voice__wave { height: 27px; display: flex; align-items: center; gap: 1px; } -.darkchat-voice__wave i { width: 2px; border-radius: 2px; background: rgb(255 255 255 / 38%); } -.darkchat-voice__wave i.active { background: #fff; } -.darkchat-voice > div small { display: block; font-size: 9px; } -.darkchat-voice .darkchat-voice__speed { width: 30px; color: #fff; font-size: 9px; font-weight: 800; } -.darkchat-profile-hero { padding: 15px 0 17px; display: flex; align-items: center; flex-direction: column; } -.darkchat-profile-hero .darkchat-avatar { width: 67px; height: 67px; font-size: 30px; box-shadow: 0 13px 32px rgb(91 33 182 / 32%); } -.darkchat-profile-hero h2 { margin: 10px 0 3px; font-size: 20px; } -.darkchat-profile-hero button { padding: 5px 9px; display: flex; align-items: center; gap: 5px; border: 0; border-radius: 11px; background: var(--dc-surface); color: #c4b5fd; font-size: 11px; } -.darkchat-profile-hero small { margin-top: 6px; color: var(--dc-muted); font-size: 10px; } +.darkchat-page .messages-full-emoji-picker nav button.active { + background: #2c2c2e; + color: #fff; +} +.darkchat-page .messages-full-emoji-picker__search input { + color: #fff; +} +.darkchat-page .messages-full-emoji-picker nav { + border-color: var(--dc-border); +} +.darkchat-recorder { + position: absolute; + z-index: 9; + right: 12px; + bottom: 28px; + left: 12px; + height: 43px; + padding: 0 7px; + display: flex; + align-items: center; + gap: 6px; + border: 1px solid var(--dc-border); + border-radius: 22px; + background: var(--dc-surface); +} +.darkchat-recorder > button { + width: 29px; + height: 29px; + display: grid; + place-items: center; + border: 0; + border-radius: 50%; + background: #2c2c2e; +} +.darkchat-recorder > button:last-child { + color: #a78bfa; +} +.darkchat-recorder > i { + width: 7px; + height: 7px; + border-radius: 50%; + background: var(--dc-red); + animation: messages-record-pulse 1s ease infinite; +} +.darkchat-recorder time { + font-size: 10px; +} +.darkchat-recorder > span { + height: 26px; + min-width: 0; + flex: 1; + display: flex; + align-items: center; + justify-content: center; + gap: 1px; + overflow: hidden; +} +.darkchat-recorder > span b { + width: 2px; + flex: none; + border-radius: 2px; + background: #a78bfa; +} +.darkchat-voice { + min-width: 197px; + display: flex; + align-items: center; + gap: 8px; +} +.darkchat-voice > button { + width: 30px; + height: 30px; + display: grid; + place-items: center; + padding: 0; + flex: none; + border: 0; + border-radius: 50%; + background: rgb(255 255 255 / 17%); +} +.darkchat-voice > div { + min-width: 0; + flex: 1; +} +.darkchat-voice__wave { + height: 27px; + display: flex; + align-items: center; + gap: 1px; +} +.darkchat-voice__wave i { + width: 2px; + border-radius: 2px; + background: rgb(255 255 255 / 38%); +} +.darkchat-voice__wave i.active { + background: #fff; +} +.darkchat-voice > div small { + display: block; + font-size: 9px; +} +.darkchat-voice .darkchat-voice__speed { + width: 30px; + color: #fff; + font-size: 9px; + font-weight: 800; +} +.darkchat-profile-hero { + padding: 15px 0 17px; + display: flex; + align-items: center; + flex-direction: column; +} +.darkchat-profile-hero .darkchat-avatar { + width: 67px; + height: 67px; + font-size: 30px; + box-shadow: 0 13px 32px rgb(91 33 182 / 32%); +} +.darkchat-profile-hero h2 { + margin: 10px 0 3px; + font-size: 20px; +} +.darkchat-profile-hero button { + padding: 5px 9px; + display: flex; + align-items: center; + gap: 5px; + border: 0; + border-radius: 11px; + background: var(--dc-surface); + color: #c4b5fd; + font-size: 11px; +} +.darkchat-profile-hero small { + margin-top: 6px; + color: var(--dc-muted); + font-size: 10px; +} .darkchat-settings-group, -.darkchat-danger-group { margin: 10px 0; overflow: hidden; border: 1px solid var(--dc-border); border-radius: 13px; background: var(--dc-surface); } -.darkchat-settings-group { overflow: visible; } +.darkchat-danger-group { + margin: 10px 0; + overflow: hidden; + border: 1px solid var(--dc-border); + border-radius: 13px; + background: var(--dc-surface); +} +.darkchat-settings-group { + overflow: visible; +} .darkchat-settings-group label, .darkchat-settings-group .darkchat-select, -.darkchat-danger-group button { width: 100%; min-height: 50px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; gap: 9px; border: 0; border-bottom: 1px solid var(--dc-border); background: transparent; font-size: 13px; } +.darkchat-danger-group button { + width: 100%; + min-height: 50px; + padding: 0 13px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 9px; + border: 0; + border-bottom: 1px solid var(--dc-border); + background: transparent; + font-size: 13px; +} .darkchat-settings-group label:last-child, .darkchat-settings-group .darkchat-select:last-child, -.darkchat-danger-group button:last-child { border-bottom: 0; } +.darkchat-danger-group button:last-child { + border-bottom: 0; +} .darkchat-settings-group label > span, .darkchat-settings-group .darkchat-select > span, -.darkchat-danger-group button { justify-content: flex-start; } +.darkchat-danger-group button { + justify-content: flex-start; +} .darkchat-settings-group label > span, -.darkchat-settings-group .darkchat-select > span { display: flex; align-items: center; gap: 8px; } +.darkchat-settings-group .darkchat-select > span { + display: flex; + align-items: center; + gap: 8px; +} .darkchat-settings-group label > span svg, -.darkchat-settings-group .darkchat-select > span svg { color: #a78bfa; } -.darkchat-settings-group input[type="checkbox"] { width: 36px; height: 21px; accent-color: var(--dc-purple); } -.darkchat-select { position: relative; z-index: 2; } -.darkchat-danger-group button { color: var(--dc-red); text-align: left; } -.darkchat-save { padding: 7px; border: 0; background: transparent; color: #a78bfa !important; font-size: 13px; } -.darkchat-privacy-note { margin: 14px 4px 4px; display: flex; align-items: flex-start; gap: 7px; color: var(--dc-muted); font-size: 11px; line-height: 1.45; } -.darkchat-privacy-note svg { flex: none; color: #a78bfa; } -.darkchat-modal-backdrop { position: absolute; z-index: 40; inset: 0; padding: 44px 18px 27px; display: flex; align-items: center; justify-content: center; background: rgb(0 0 0 / 67%); backdrop-filter: blur(10px); } +.darkchat-settings-group .darkchat-select > span svg { + color: #a78bfa; +} +.darkchat-settings-group input[type='checkbox'] { + width: 36px; + height: 21px; + accent-color: var(--dc-purple); +} +.darkchat-select { + position: relative; + z-index: 2; +} +.darkchat-danger-group button { + color: var(--dc-red); + text-align: left; +} +.darkchat-save { + padding: 7px; + border: 0; + background: transparent; + color: #a78bfa !important; + font-size: 13px; +} +.darkchat-privacy-note { + margin: 14px 4px 4px; + display: flex; + align-items: flex-start; + gap: 7px; + color: var(--dc-muted); + font-size: 11px; + line-height: 1.45; +} +.darkchat-privacy-note svg { + flex: none; + color: #a78bfa; +} +.darkchat-modal-backdrop { + position: absolute; + z-index: 40; + inset: 0; + padding: 44px 18px 27px; + display: flex; + align-items: center; + justify-content: center; + background: rgb(0 0 0 / 67%); + backdrop-filter: blur(10px); +} .darkchat-modal, -.darkchat-message-menu { width: 100%; padding: 17px; display: flex; align-items: stretch; flex-direction: column; border: 1px solid var(--dc-border); border-radius: 21px; background: rgb(28 28 30 / 98%); box-shadow: 0 24px 70px rgb(0 0 0 / 60%); animation: darkchat-modal-in .3s cubic-bezier(.32,.72,0,1) both; } -.darkchat-modal { text-align: center; } -.darkchat-modal__icon { width: 52px; height: 52px; margin: 0 auto; display: grid; place-items: center; border-radius: 17px; background: rgb(139 92 246 / 16%); color: #a78bfa; } -.darkchat-modal__icon--danger { background: rgb(255 69 58 / 14%); color: var(--dc-red); } -.darkchat-modal h2 { margin: 11px 0 6px; font-size: 18px; } -.darkchat-modal p { margin: 0 0 10px; color: var(--dc-muted); font-size: 12px; line-height: 1.45; } -.darkchat-modal > strong { margin-bottom: 12px; color: #c4b5fd; font-size: 12px; } -.darkchat-modal > button:not(.darkchat-primary):not(.darkchat-danger) { min-height: 40px; border: 0; background: transparent; color: var(--dc-muted); font-size: 13px; } +.darkchat-message-menu { + width: 100%; + padding: 17px; + display: flex; + align-items: stretch; + flex-direction: column; + border: 1px solid var(--dc-border); + border-radius: 21px; + background: rgb(28 28 30 / 98%); + box-shadow: 0 24px 70px rgb(0 0 0 / 60%); + animation: darkchat-modal-in 0.3s cubic-bezier(0.32, 0.72, 0, 1) both; +} +.darkchat-modal { + text-align: center; +} +.darkchat-modal__icon { + width: 52px; + height: 52px; + margin: 0 auto; + display: grid; + place-items: center; + border-radius: 17px; + background: rgb(139 92 246 / 16%); + color: #a78bfa; +} +.darkchat-modal__icon--danger { + background: rgb(255 69 58 / 14%); + color: var(--dc-red); +} +.darkchat-modal h2 { + margin: 11px 0 6px; + font-size: 18px; +} +.darkchat-modal p { + margin: 0 0 10px; + color: var(--dc-muted); + font-size: 12px; + line-height: 1.45; +} +.darkchat-modal > strong { + margin-bottom: 12px; + color: #c4b5fd; + font-size: 12px; +} +.darkchat-modal > button:not(.darkchat-primary):not(.darkchat-danger) { + min-height: 40px; + border: 0; + background: transparent; + color: var(--dc-muted); + font-size: 13px; +} .darkchat-modal select, -.darkchat-modal textarea { margin-bottom: 8px; padding: 9px; border: 1px solid var(--dc-border); border-radius: 10px; outline: 0; background: #2c2c2e; font-size: 11px; } -.darkchat-report-select { width: 100%; margin-bottom: 8px; } +.darkchat-modal textarea { + margin-bottom: 8px; + padding: 9px; + border: 1px solid var(--dc-border); + border-radius: 10px; + outline: 0; + background: #2c2c2e; + font-size: 11px; +} +.darkchat-report-select { + width: 100%; + margin-bottom: 8px; +} .darkchat-report-select .darkchat-choice__trigger, -.darkchat-report-select .darkchat-choice__menu { width: 100%; } -.darkchat-modal textarea { min-height: 65px; resize: none; } -.darkchat-message-menu { padding: 7px; } -.darkchat-message-menu > button { min-height: 46px; padding: 0 12px; display: flex; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid var(--dc-border); background: transparent; font-size: 13px; text-align: left; } -.darkchat-message-menu > button:last-child { justify-content: center; border-bottom: 0; color: var(--dc-muted); } -.darkchat-message-menu > button.danger { color: var(--dc-red); } -.darkchat-reaction-row { margin: -30px 4px 8px; padding: 8px 5px; display: flex; justify-content: space-around; border: 1px solid var(--dc-border); border-radius: 20px; background: #2c2c2e; box-shadow: 0 7px 20px rgb(0 0 0 / 35%); } -.darkchat-reaction-row button { width: 34px; height: 31px; padding: 0; border: 0; border-radius: 13px; background: transparent; font-size: 18px; } -.darkchat-toast { position: absolute; z-index: 60; bottom: 95px; left: 50%; max-width: 80%; padding: 8px 13px; transform: translateX(-50%); border: 1px solid var(--dc-border); border-radius: 14px; background: rgb(44 44 46 / 96%); box-shadow: 0 8px 30px rgb(0 0 0 / 45%); font-size: 10px; text-align: center; } +.darkchat-report-select .darkchat-choice__menu { + width: 100%; +} +.darkchat-modal textarea { + min-height: 65px; + resize: none; +} +.darkchat-message-menu { + padding: 7px; +} +.darkchat-message-menu > button { + min-height: 46px; + padding: 0 12px; + display: flex; + align-items: center; + gap: 10px; + border: 0; + border-bottom: 1px solid var(--dc-border); + background: transparent; + font-size: 13px; + text-align: left; +} +.darkchat-message-menu > button:last-child { + justify-content: center; + border-bottom: 0; + color: var(--dc-muted); +} +.darkchat-message-menu > button.danger { + color: var(--dc-red); +} +.darkchat-reaction-row { + margin: -30px 4px 8px; + padding: 8px 5px; + display: flex; + justify-content: space-around; + border: 1px solid var(--dc-border); + border-radius: 20px; + background: #2c2c2e; + box-shadow: 0 7px 20px rgb(0 0 0 / 35%); +} +.darkchat-reaction-row button { + width: 34px; + height: 31px; + padding: 0; + border: 0; + border-radius: 13px; + background: transparent; + font-size: 18px; +} +.darkchat-toast { + position: absolute; + z-index: 60; + bottom: 95px; + left: 50%; + max-width: 80%; + padding: 8px 13px; + transform: translateX(-50%); + border: 1px solid var(--dc-border); + border-radius: 14px; + background: rgb(44 44 46 / 96%); + box-shadow: 0 8px 30px rgb(0 0 0 / 45%); + font-size: 10px; + text-align: center; +} .darkchat-toast-enter-active, -.darkchat-toast-leave-active { transition: opacity .2s ease, transform .2s ease; } +.darkchat-toast-leave-active { + transition: + opacity 0.2s ease, + transform 0.2s ease; +} .darkchat-toast-enter-from, -.darkchat-toast-leave-to { opacity: 0; transform: translate(-50%, 8px); } -@keyframes darkchat-spin { to { transform: rotate(360deg); } } -@keyframes darkchat-message-in { from { opacity: 0; transform: translateY(8px) scale(.94); } } -@keyframes darkchat-bubble-in { from { opacity: 0; transform: translate(-8px, 6px) scale(.8); } } -@keyframes darkchat-panel-in { from { transform: translateY(100%); } } -@keyframes darkchat-modal-in { from { opacity: 0; transform: translateY(18px) scale(.92); } } +.darkchat-toast-leave-to { + opacity: 0; + transform: translate(-50%, 8px); +} +@keyframes darkchat-spin { + to { + transform: rotate(360deg); + } +} +@keyframes darkchat-message-in { + from { + opacity: 0; + transform: translateY(8px) scale(0.94); + } +} +@keyframes darkchat-bubble-in { + from { + opacity: 0; + transform: translate(-8px, 6px) scale(0.8); + } +} +@keyframes darkchat-panel-in { + from { + transform: translateY(100%); + } +} +@keyframes darkchat-modal-in { + from { + opacity: 0; + transform: translateY(18px) scale(0.92); + } +} .springboard-track { height: 100%; display: flex; @@ -1144,6 +2028,7 @@ button { overflow: visible; } .app-icon { + --app-icon-scale: 1; width: 56px; height: 56px; border-radius: 13px; @@ -1155,6 +2040,40 @@ button { 0 4px 13px #0004, inset 0 1px 1px #ffffff55; } +.app-icon--calendar { + background: linear-gradient(180deg, #fff 0%, #f8f8f8 72%, #ededed 100%); + color: #111; + box-shadow: + 0 4px 13px #0004, + inset 0 0 0 1px #ffffffcc, + inset 0 -1px 2px #00000018; +} +.app-icon-calendar { + width: 100%; + height: 100%; + padding-top: calc(2px * var(--app-icon-scale)); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: linear-gradient(180deg, #fff, #f4f4f4); + text-shadow: none; +} +.app-icon-calendar strong { + color: #e54842; + font-size: calc(11px * var(--app-icon-scale)); + font-weight: 750; + line-height: 1; + letter-spacing: -0.2px; +} +.app-icon-calendar b { + margin-top: calc(1px * var(--app-icon-scale)); + color: #151515; + font-size: calc(31px * var(--app-icon-scale)); + font-weight: 350; + line-height: 0.98; + letter-spacing: calc(-1.8px * var(--app-icon-scale)); +} .app-icon-badge { position: absolute; z-index: 2; @@ -1563,6 +2482,7 @@ button { gap: 18px 10px; } .app-icon-button--compact .app-icon { + --app-icon-scale: 0.7857; width: 44px; height: 44px; border-radius: 11px; @@ -1573,6 +2493,7 @@ button { } } .app-library-group .app-icon-button--compact .app-icon { + --app-icon-scale: 1; width: 56px; height: 56px; border-radius: 13px; @@ -1786,7 +2707,9 @@ button { scrollbar-width: none; } -.banking-scroll::-webkit-scrollbar { display: none; } +.banking-scroll::-webkit-scrollbar { + display: none; +} .banking-pull-refresh { position: absolute; @@ -1803,7 +2726,9 @@ button { transform 0.16s ease; } -.banking-pull-refresh.is-visible { opacity: 1; } +.banking-pull-refresh.is-visible { + opacity: 1; +} .banking-loading, .banking-empty { @@ -1891,7 +2816,11 @@ button { flex: 0 0 auto; place-items: center; border-radius: 11px; - background: linear-gradient(145deg, rgb(60 129 255 / 34%), rgb(25 54 115 / 25%)); + background: linear-gradient( + 145deg, + rgb(60 129 255 / 34%), + rgb(25 54 115 / 25%) + ); color: #8fb8ff; } @@ -1944,7 +2873,9 @@ button { letter-spacing: -0.025em; } -.banking-section-title > svg { color: rgb(220 232 255 / 43%); } +.banking-section-title > svg { + color: rgb(220 232 255 / 43%); +} .banking-section-title button { color: #7ca8ff; @@ -1956,8 +2887,12 @@ button { margin: 0 !important; } -.banking-transactions { padding: 0 3px; } -.banking-transactions--all { margin-top: 18px; } +.banking-transactions { + padding: 0 3px; +} +.banking-transactions--all { + margin-top: 18px; +} .banking-transaction-list b { flex: 0 0 auto; @@ -1966,7 +2901,9 @@ button { font-weight: 620; } -.banking-transaction-list b.is-incoming { color: var(--bank-green); } +.banking-transaction-list b.is-incoming { + color: var(--bank-green); +} .banking-no-transactions { padding: 24px 12px; @@ -2004,7 +2941,9 @@ button { font-size: 9px; } -.banking-chart-card { padding: 18px 14px 15px !important; } +.banking-chart-card { + padding: 18px 14px 15px !important; +} .banking-chart-legend { display: flex; @@ -2014,7 +2953,11 @@ button { font-size: 8px; } -.banking-chart-legend span { display: flex; align-items: center; gap: 4px; } +.banking-chart-legend span { + display: flex; + align-items: center; + gap: 4px; +} .banking-chart-legend i { width: 6px; @@ -2023,7 +2966,9 @@ button { background: #58647f; } -.banking-chart-legend i.is-incoming { background: var(--bank-blue); } +.banking-chart-legend i.is-incoming { + background: var(--bank-blue); +} .banking-chart { display: grid; @@ -2094,7 +3039,9 @@ button { place-items: center; border-radius: 15px; background: linear-gradient(145deg, #3c83ff, #1849b6); - box-shadow: 0 12px 28px rgb(22 76 196 / 36%), inset 0 1px rgb(255 255 255 / 28%); + box-shadow: + 0 12px 28px rgb(22 76 196 / 36%), + inset 0 1px rgb(255 255 255 / 28%); } .banking-sheet__content h2 { @@ -2110,7 +3057,9 @@ button { line-height: 1.45; } -.banking-form-list { margin: 12px 0 0 !important; } +.banking-form-list { + margin: 12px 0 0 !important; +} .banking-sheet__content .banking-form-error { margin: 10px 3px 0; @@ -2118,7 +3067,9 @@ button { font-size: 9px; } -.banking-sheet__content > button:last-child { margin-top: 15px; } +.banking-sheet__content > button:last-child { + margin-top: 15px; +} .banking-sheet__content > button:last-child > span { display: flex; @@ -3074,7 +4025,9 @@ button { place-items: center; border-radius: 50%; color: #181818; - transition: background 0.18s ease, color 0.18s ease; + transition: + background 0.18s ease, + color 0.18s ease; } .messages-inbox-header > button.active { background: #e8f4ff; @@ -3409,7 +4362,9 @@ button { height: 58px; margin-bottom: 7px; border: 2px solid #fff; - box-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 8px 22px rgb(0 0 0 / 12%); + box-shadow: + 0 0 0 1px rgb(0 0 0 / 5%), + 0 8px 22px rgb(0 0 0 / 12%); } .messages-avatar--header .messages-avatar__glyph { padding-top: 7px; @@ -3580,7 +4535,8 @@ button { flex-direction: column; align-items: flex-start; gap: 7px; - animation: messages-action-menu-in 0.28s cubic-bezier(0.22, 1.25, 0.36, 1) both; + animation: messages-action-menu-in 0.28s cubic-bezier(0.22, 1.25, 0.36, 1) + both; } .messages-attachment-menu > button { height: 39px; @@ -3650,7 +4606,12 @@ button { .messages-media-picker > header strong { font-size: 14px; } -.messages-media-picker > header small { margin-left: auto; color: #8e8e93; font-size: 9px; font-weight: 650; } +.messages-media-picker > header small { + margin-left: auto; + color: #8e8e93; + font-size: 9px; + font-weight: 650; +} .messages-media-picker > header button { border: 0; background: transparent; @@ -3734,8 +4695,13 @@ button { border-radius: 50%; background: rgb(255 255 255 / 20%); } -.messages-media-picker__videos strong { font-size: 12px; } -.messages-media-picker__videos small { font-size: 10px; opacity: 0.8; } +.messages-media-picker__videos strong { + font-size: 12px; +} +.messages-media-picker__videos small { + font-size: 10px; + opacity: 0.8; +} .messages-emoji-picker { position: fixed; z-index: 41; @@ -3959,7 +4925,12 @@ button { content: ''; position: absolute; inset: -20%; - background: linear-gradient(115deg, transparent 30%, rgb(255 255 255 / 20%), transparent 70%); + background: linear-gradient( + 115deg, + transparent 30%, + rgb(255 255 255 / 20%), + transparent 70% + ); transform: translateX(-70%); } .messages-attachment--video.playing::before { @@ -4053,7 +5024,9 @@ button { margin: 10px 0 2px; font-size: 20px; } -.messages-contact-details__hero small { color: #8e8e93; } +.messages-contact-details__hero small { + color: #8e8e93; +} .messages-contact-details__actions { padding: 0 45px 16px; display: grid; @@ -4087,7 +5060,9 @@ button { gap: 2px; border-bottom: 1px solid #e5e5e8; } -.messages-contact-details__fields label:last-child { border-bottom: 0; } +.messages-contact-details__fields label:last-child { + border-bottom: 0; +} .messages-contact-details__fields span { color: #8e8e93; font-size: 9px; @@ -4099,7 +5074,9 @@ button { color: #111; font-size: 13px; } -.messages-contact-details__fields input:not([readonly]) { color: #007aff; } +.messages-contact-details__fields input:not([readonly]) { + color: #007aff; +} .messages-contact-details__primary, .messages-contact-details__delete { width: calc(100% - 22px); @@ -4115,7 +5092,9 @@ button { color: #007aff; font-size: 13px; } -.messages-contact-details__delete { color: #ff3b30; } +.messages-contact-details__delete { + color: #ff3b30; +} @keyframes messages-send-in { from { opacity: 0; @@ -4130,18 +5109,34 @@ button { } } @keyframes messages-action-menu-in { - from { opacity: 0; transform: translate(-8px, 18px) scale(0.84); } - to { opacity: 1; transform: none; } + from { + opacity: 0; + transform: translate(-8px, 18px) scale(0.84); + } + to { + opacity: 1; + transform: none; + } } @keyframes messages-gif-bounce { - to { transform: translateY(-5px) rotate(4deg) scale(1.05); } + to { + transform: translateY(-5px) rotate(4deg) scale(1.05); + } } @keyframes messages-video-play { - to { transform: translateX(70%); } + to { + transform: translateX(70%); + } } @keyframes messages-contact-in { - from { opacity: 0; transform: translateX(35%); } - to { opacity: 1; transform: none; } + from { + opacity: 0; + transform: translateX(35%); + } + to { + opacity: 1; + transform: none; + } } /* iOS 26-style Liquid Glass refinements and complete media pickers. */ .phone-app:has(.messages-page) { @@ -4154,7 +5149,11 @@ button { .messages-chat-header, .messages-contact-details > header { border-bottom: 1px solid rgb(60 60 67 / 10%); - background: linear-gradient(180deg, rgb(255 255 255 / 82%), rgb(248 248 252 / 62%)); + background: linear-gradient( + 180deg, + rgb(255 255 255 / 82%), + rgb(248 248 252 / 62%) + ); box-shadow: inset 0 1px 0 var(--ios-glass-border); backdrop-filter: blur(30px) saturate(190%); -webkit-backdrop-filter: blur(30px) saturate(190%); @@ -4162,8 +5161,14 @@ button { .messages-chat-header__back, .messages-messagebar__tools button { border: 1px solid rgb(255 255 255 / 78%); - background: linear-gradient(145deg, rgb(255 255 255 / 90%), rgb(236 238 244 / 68%)); - box-shadow: inset 0 1px 0 #fff, 0 5px 16px rgb(32 40 60 / 11%); + background: linear-gradient( + 145deg, + rgb(255 255 255 / 90%), + rgb(236 238 244 / 68%) + ); + box-shadow: + inset 0 1px 0 #fff, + 0 5px 16px rgb(32 40 60 / 11%); backdrop-filter: blur(22px) saturate(175%); -webkit-backdrop-filter: blur(22px) saturate(175%); } @@ -4172,41 +5177,118 @@ button { .messages-messagebar, .messages-chat-header__name { border-color: rgb(255 255 255 / 74%); - background: linear-gradient(145deg, rgb(255 255 255 / 88%), rgb(242 243 248 / 69%)); - box-shadow: inset 0 1px 0 #fff, 0 7px 24px rgb(24 31 50 / 10%); + background: linear-gradient( + 145deg, + rgb(255 255 255 / 88%), + rgb(242 243 248 / 69%) + ); + box-shadow: + inset 0 1px 0 #fff, + 0 7px 24px rgb(24 31 50 / 10%); backdrop-filter: blur(30px) saturate(185%); -webkit-backdrop-filter: blur(30px) saturate(185%); } .messages-conversation { - transition: transform 160ms cubic-bezier(.2,.8,.2,1), background 160ms ease; + transition: + transform 160ms cubic-bezier(0.2, 0.8, 0.2, 1), + background 160ms ease; +} +.messages-conversation:active { + transform: scale(0.985); } -.messages-conversation:active { transform: scale(.985); } .messages-attachment-menu > button { border-color: rgb(255 255 255 / 78%); - background: linear-gradient(145deg, rgb(255 255 255 / 91%), rgb(239 241 247 / 73%)); - box-shadow: inset 0 1px 0 #fff, 0 8px 24px rgb(22 30 48 / 15%); + background: linear-gradient( + 145deg, + rgb(255 255 255 / 91%), + rgb(239 241 247 / 73%) + ); + box-shadow: + inset 0 1px 0 #fff, + 0 8px 24px rgb(22 30 48 / 15%); backdrop-filter: blur(28px) saturate(190%); -webkit-backdrop-filter: blur(28px) saturate(190%); } -.messages-attachment-menu > button:active { transform: scale(.96); } +.messages-attachment-menu > button:active { + transform: scale(0.96); +} .messages-attachment-menu > button[aria-disabled='true'] { - opacity: .48; + opacity: 0.48; cursor: default; } -.messages-attachment-menu > button[aria-disabled='true']:active { transform: none; } -.messages-thread-page--emoji { padding-bottom: 392px !important; } -.messages-media-picker { height: 310px; background: rgb(247 247 251 / 82%); backdrop-filter: blur(32px) saturate(180%); -webkit-backdrop-filter: blur(32px) saturate(180%); } +.messages-attachment-menu > button[aria-disabled='true']:active { + transform: none; +} +.messages-thread-page--emoji { + padding-bottom: 392px !important; +} +.messages-media-picker { + height: 310px; + background: rgb(247 247 251 / 82%); + backdrop-filter: blur(32px) saturate(180%); + -webkit-backdrop-filter: blur(32px) saturate(180%); +} .messages-media-picker__photos, .messages-media-picker__gifs, -.messages-media-picker__videos { height: 270px; } -.messages-media-picker__photos button { background-position: center !important; background-size: cover !important; } -.messages-media-picker__empty { grid-column: 1 / -1; margin: auto; padding: 25px; color: #8e8e93; font-size: 12px; text-align: center; } -.messages-gif-search { grid-column: 1 / -1; position: sticky; z-index: 2; top: 0; height: 34px; padding: 0 11px; display: flex; align-items: center; gap: 6px; border-radius: 17px; background: rgb(118 118 128 / 12%); color: #8e8e93; } -.messages-gif-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: 12px; } -.messages-media-picker__gifs button { min-height: 92px; overflow: hidden; padding: 0; background: #e9e9ed; } -.messages-media-picker__gifs button img { width: 100%; height: 100%; object-fit: cover; } -.messages-media-picker__gifs .messages-gif-more { min-height: 36px; grid-column: 1 / -1; color: var(--ios-blue); font-size: 12px; font-weight: 650; } -.messages-gif-loading { grid-column: 1 / -1; justify-self: center; } +.messages-media-picker__videos { + height: 270px; +} +.messages-media-picker__photos button { + background-position: center !important; + background-size: cover !important; +} +.messages-media-picker__empty { + grid-column: 1 / -1; + margin: auto; + padding: 25px; + color: #8e8e93; + font-size: 12px; + text-align: center; +} +.messages-gif-search { + grid-column: 1 / -1; + position: sticky; + z-index: 2; + top: 0; + height: 34px; + padding: 0 11px; + display: flex; + align-items: center; + gap: 6px; + border-radius: 17px; + background: rgb(118 118 128 / 12%); + color: #8e8e93; +} +.messages-gif-search input { + min-width: 0; + flex: 1; + border: 0; + outline: 0; + background: transparent; + font-size: 12px; +} +.messages-media-picker__gifs button { + min-height: 92px; + overflow: hidden; + padding: 0; + background: #e9e9ed; +} +.messages-media-picker__gifs button img { + width: 100%; + height: 100%; + object-fit: cover; +} +.messages-media-picker__gifs .messages-gif-more { + min-height: 36px; + grid-column: 1 / -1; + color: var(--ios-blue); + font-size: 12px; + font-weight: 650; +} +.messages-gif-loading { + grid-column: 1 / -1; + justify-self: center; +} .messages-gif-error { grid-column: 1 / -1; min-height: 150px; @@ -4219,7 +5301,11 @@ button { color: #8e8e93; text-align: center; } -.messages-gif-error strong { max-width: 220px; font-size: 12px; font-weight: 550; } +.messages-gif-error strong { + max-width: 220px; + font-size: 12px; + font-weight: 550; +} .messages-media-picker__gifs .messages-gif-error button { min-height: 32px; padding: 0 14px; @@ -4230,10 +5316,34 @@ button { font-size: 12px; font-weight: 650; } -.messages-media-picker__videos button { position: relative; overflow: hidden; min-height: 92px; padding: 0; grid-template-columns: 1fr; } -.messages-media-picker__videos button video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } -.messages-media-picker__videos button > span { position: relative; z-index: 1; justify-self: center; } -.messages-media-picker__videos button small { position: absolute; z-index: 1; right: 7px; bottom: 6px; padding: 2px 6px; border-radius: 9px; background: rgb(0 0 0 / 48%); } +.messages-media-picker__videos button { + position: relative; + overflow: hidden; + min-height: 92px; + padding: 0; + grid-template-columns: 1fr; +} +.messages-media-picker__videos button video { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; +} +.messages-media-picker__videos button > span { + position: relative; + z-index: 1; + justify-self: center; +} +.messages-media-picker__videos button small { + position: absolute; + z-index: 1; + right: 7px; + bottom: 6px; + padding: 2px 6px; + border-radius: 9px; + background: rgb(0 0 0 / 48%); +} .messages-full-emoji-picker { position: fixed; z-index: 47; @@ -4245,29 +5355,115 @@ button { border-top: 1px solid rgb(255 255 255 / 76%); background: rgb(247 247 251 / 84%); box-shadow: 0 -10px 34px rgb(20 26 43 / 13%); - animation: messages-panel-in .32s cubic-bezier(.32,.72,0,1) both; + animation: messages-panel-in 0.32s cubic-bezier(0.32, 0.72, 0, 1) both; backdrop-filter: blur(34px) saturate(190%); -webkit-backdrop-filter: blur(34px) saturate(190%); } -.messages-full-emoji-picker > header { height: 38px; padding: 0 12px 0 16px; display: flex; align-items: center; justify-content: space-between; } -.messages-full-emoji-picker > header strong { font-size: 14px; } -.messages-full-emoji-picker > header button { width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgb(118 118 128 / 13%); color: #5d5d62; } -.messages-full-emoji-picker__search { height: 31px; margin: 0 10px 4px; padding: 0 10px; display: flex; align-items: center; gap: 6px; border-radius: 16px; background: rgb(118 118 128 / 13%); color: #8e8e93; } -.messages-full-emoji-picker__search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: 12px; } -.messages-full-emoji-picker nav { height: 34px; padding: 1px 7px 4px; display: flex; gap: 1px; overflow-x: auto; border-bottom: 1px solid rgb(60 60 67 / 10%); } -.messages-full-emoji-picker nav i { width: 1px; height: 21px; margin: 4px 4px; flex: none; background: rgb(60 60 67 / 16%); } -.messages-full-emoji-picker nav button { min-width: 32px; height: 29px; border: 0; border-radius: 9px; background: transparent; filter: grayscale(.55); } -.messages-full-emoji-picker nav button.active { background: rgb(118 118 128 / 14%); filter: none; } -.messages-full-emoji-picker__grid { height: 211px; padding: 7px 9px 18px; display: grid; grid-template-columns: repeat(7,1fr); grid-auto-rows: 38px; overflow-y: auto; } -.messages-full-emoji-picker__grid button { display: grid; place-items: center; border: 0; background: transparent; font-family: 'Apple Color Emoji','Segoe UI Emoji',sans-serif; font-size: 24px; transition: transform .12s ease; } -.messages-full-emoji-picker__grid button:active { transform: scale(1.35); } -.messages-attachment--image { padding: 0; } +.messages-full-emoji-picker > header { + height: 38px; + padding: 0 12px 0 16px; + display: flex; + align-items: center; + justify-content: space-between; +} +.messages-full-emoji-picker > header strong { + font-size: 14px; +} +.messages-full-emoji-picker > header button { + width: 28px; + height: 28px; + display: grid; + place-items: center; + border: 0; + border-radius: 50%; + background: rgb(118 118 128 / 13%); + color: #5d5d62; +} +.messages-full-emoji-picker__search { + height: 31px; + margin: 0 10px 4px; + padding: 0 10px; + display: flex; + align-items: center; + gap: 6px; + border-radius: 16px; + background: rgb(118 118 128 / 13%); + color: #8e8e93; +} +.messages-full-emoji-picker__search input { + min-width: 0; + flex: 1; + border: 0; + outline: 0; + background: transparent; + font-size: 12px; +} +.messages-full-emoji-picker nav { + height: 34px; + padding: 1px 7px 4px; + display: flex; + gap: 1px; + overflow-x: auto; + border-bottom: 1px solid rgb(60 60 67 / 10%); +} +.messages-full-emoji-picker nav i { + width: 1px; + height: 21px; + margin: 4px 4px; + flex: none; + background: rgb(60 60 67 / 16%); +} +.messages-full-emoji-picker nav button { + min-width: 32px; + height: 29px; + border: 0; + border-radius: 9px; + background: transparent; + filter: grayscale(0.55); +} +.messages-full-emoji-picker nav button.active { + background: rgb(118 118 128 / 14%); + filter: none; +} +.messages-full-emoji-picker__grid { + height: 211px; + padding: 7px 9px 18px; + display: grid; + grid-template-columns: repeat(7, 1fr); + grid-auto-rows: 38px; + overflow-y: auto; +} +.messages-full-emoji-picker__grid button { + display: grid; + place-items: center; + border: 0; + background: transparent; + font-family: 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif; + font-size: 24px; + transition: transform 0.12s ease; +} +.messages-full-emoji-picker__grid button:active { + transform: scale(1.35); +} +.messages-attachment--image { + padding: 0; +} .messages-attachment--image img, .messages-attachment--gif img, -.messages-attachment--video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } +.messages-attachment--video video { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; +} .messages-attachment--video > span, -.messages-attachment--video small { z-index: 2; } -.messages-attachment--gif:has(img) { background: #e9e9ed; } +.messages-attachment--video small { + z-index: 2; +} +.messages-attachment--gif:has(img) { + background: #e9e9ed; +} /* Konsta's k-app dark state drives the complete iOS Messages palette. */ .phone-app.dark:has(.messages-page) { @@ -4276,7 +5472,9 @@ button { --ios-glass-border: rgb(255 255 255 / 12%); color-scheme: dark; } -.phone-app.dark:has(.messages-page)::before { background: #000; } +.phone-app.dark:has(.messages-page)::before { + background: #000; +} .phone-app.dark:has(.messages-page) .phone-status-bar { color: #fff; text-shadow: none; @@ -4307,7 +5505,9 @@ button { .phone-app.dark .messages-attachment-menu > button { border-color: rgb(255 255 255 / 10%); background: linear-gradient(145deg, rgb(58 58 60 / 92%), rgb(28 28 30 / 78%)); - box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%), 0 7px 22px rgb(0 0 0 / 32%); + box-shadow: + inset 0 1px 0 rgb(255 255 255 / 10%), + 0 7px 22px rgb(0 0 0 / 32%); color: #f5f5f7; } .phone-app.dark .messages-conversation::after, @@ -4317,12 +5517,16 @@ button { border-color: rgb(84 84 88 / 55%); } .phone-app.dark .messages-conversation:active, -.phone-app.dark .messages-conversation--selected { background: #1c1c1e; } +.phone-app.dark .messages-conversation--selected { + background: #1c1c1e; +} .phone-app.dark .messages-conversation__selection { border-color: #636366; background: #1c1c1e; } -.phone-app.dark .messages-conversation--selected .messages-conversation__selection { +.phone-app.dark + .messages-conversation--selected + .messages-conversation__selection { border-color: #0a84ff; background: #0a84ff; } @@ -4341,7 +5545,9 @@ button { .phone-app.dark .messages-chat-header__name { border-color: rgb(255 255 255 / 11%); background: linear-gradient(145deg, rgb(48 48 50 / 92%), rgb(28 28 30 / 80%)); - box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%), 0 8px 26px rgb(0 0 0 / 32%); + box-shadow: + inset 0 1px 0 rgb(255 255 255 / 10%), + 0 8px 26px rgb(0 0 0 / 32%); } .phone-app.dark .messages-inbox-toolbar input, .phone-app.dark .messages-messagebar textarea, @@ -4353,7 +5559,9 @@ button { background: #2c2c2e !important; color: #fff !important; } -.phone-app.dark .messages-bubbles .k-message:not(.self-end) > div > div::after { background: #2c2c2e; } +.phone-app.dark .messages-bubbles .k-message:not(.self-end) > div > div::after { + background: #2c2c2e; +} .phone-app.dark .messages-media-picker, .phone-app.dark .messages-full-emoji-picker, .phone-app.dark .messages-emoji-picker { @@ -4368,7 +5576,9 @@ button { .phone-app.dark .messages-full-emoji-picker nav button.active { background: rgb(118 118 128 / 28%); } -.phone-app.dark .messages-media-picker__gifs button { background: #2c2c2e; } +.phone-app.dark .messages-media-picker__gifs button { + background: #2c2c2e; +} .phone-app.dark .messages-media-picker__gifs .messages-gif-more, .phone-app.dark .messages-media-picker__gifs .messages-gif-error button { background: rgb(10 132 255 / 20%); @@ -4379,14 +5589,18 @@ button { background: rgb(36 36 38 / 94%); color: #f5f5f7; } -.phone-app.dark .messages-contact-details { background: #000; } +.phone-app.dark .messages-contact-details { + background: #000; +} .phone-app.dark .messages-contact-details__actions button, .phone-app.dark .messages-contact-details__fields, .phone-app.dark .messages-contact-details__primary, .phone-app.dark .messages-contact-details__delete { background: #1c1c1e; } -.phone-app.dark .messages-avatar--header { border-color: #2c2c2e; } +.phone-app.dark .messages-avatar--header { + border-color: #2c2c2e; +} /* Native iOS Messages thread treatment shared by light and dark appearances. */ .messages-thread-page { @@ -4426,7 +5640,9 @@ button { display: block; margin: 0; } -.messages-thread-page .messages-chat-header__contact { top: 4px; } +.messages-thread-page .messages-chat-header__contact { + top: 4px; +} .messages-thread-page .messages-avatar--header { width: 64px; height: 64px; @@ -4492,16 +5708,26 @@ button { font-size: 16px; line-height: 1.28; } -.messages-thread-page .messages-bubbles .k-message { max-width: 86% !important; } +.messages-thread-page .messages-bubbles .k-message { + max-width: 86% !important; +} .messages-thread-page .messages-bubbles .k-message:not(.self-end) > div > div { background: var(--messages-thread-received) !important; color: var(--messages-thread-primary) !important; } -.messages-thread-page .messages-bubbles .k-message:not(.self-end) > div > div::after { +.messages-thread-page + .messages-bubbles + .k-message:not(.self-end) + > div + > div::after { background: var(--messages-thread-received); } -.messages-thread-page .messages-thread-timestamp { color: var(--messages-thread-secondary); } -.messages-thread-page .messages-message--failed { position: relative; } +.messages-thread-page .messages-thread-timestamp { + color: var(--messages-thread-secondary); +} +.messages-thread-page .messages-message--failed { + position: relative; +} .messages-thread-page .messages-message--failed.self-end::after { content: '!'; position: absolute; @@ -4528,7 +5754,9 @@ button { background: var(--messages-thread-field); box-shadow: var(--messages-thread-control-shadow); } -.messages-thread-page .messages-messagebar textarea { color: var(--messages-thread-primary) !important; } +.messages-thread-page .messages-messagebar textarea { + color: var(--messages-thread-primary) !important; +} .messages-thread-page .messages-messagebar__tools button { padding: 0; display: grid; @@ -4557,7 +5785,9 @@ button { background: var(--messages-thread-control); box-shadow: none; } -.phone-app.dark .messages-thread-page .messages-chat-header { background: #000; } +.phone-app.dark .messages-thread-page .messages-chat-header { + background: #000; +} .phone-app.dark .messages-thread-page .messages-avatar--unknown { border-color: #000; background: linear-gradient(145deg, #625c79, #3f3a55) !important; @@ -4572,7 +5802,9 @@ button { backdrop-filter: none; -webkit-backdrop-filter: none; } -.messages-thread-page .messages-messagebar > .k-toolbar { background: transparent; } +.messages-thread-page .messages-messagebar > .k-toolbar { + background: transparent; +} .messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) { position: relative; width: 100%; @@ -4582,7 +5814,11 @@ button { align-items: center; gap: 10px !important; } -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > div:first-child, +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > div:first-child, .messages-thread-page .messages-messagebar__tools, .messages-thread-page .messages-messagebar__tools button { width: 46px; @@ -4613,7 +5849,11 @@ button { display: block; margin: 0; } -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > .k-glass { +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > .k-glass { width: 100%; height: 46px; grid-column: 2; @@ -4622,7 +5862,11 @@ button { background: var(--messages-thread-field) !important; box-shadow: var(--messages-thread-control-shadow) !important; } -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > div:last-child { +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > div:last-child { position: absolute; z-index: 2; top: 50%; @@ -4633,8 +5877,18 @@ button { place-items: center; transform: translateY(-50%); } -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > div:last-child .k-toolbar-pane, -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > div:last-child .k-link { +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > div:last-child + .k-toolbar-pane, +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > div:last-child + .k-link { width: 34px !important; height: 34px !important; padding: 0 !important; @@ -4642,7 +5896,12 @@ button { place-items: center !important; line-height: 0; } -.messages-thread-page .messages-messagebar > .k-toolbar > div:nth-child(2) > div:last-child svg { +.messages-thread-page + .messages-messagebar + > .k-toolbar + > div:nth-child(2) + > div:last-child + svg { display: block; margin: 0; transform: none; @@ -4717,7 +5976,9 @@ button { display: block; transform: translateY(1px); } -.messages-inbox-page .messages-conversation-list { padding: 4px 14px 18px; } +.messages-inbox-page .messages-conversation-list { + padding: 4px 14px 18px; +} .messages-inbox-page .messages-conversation { min-height: 88px; padding: 10px 0 10px 8px; @@ -4730,7 +5991,11 @@ button { } .messages-inbox-page .messages-conversation:active, .messages-inbox-page .messages-conversation--selected { - background: color-mix(in srgb, var(--messages-inbox-control) 86%, #0a84ff 14%); + background: color-mix( + in srgb, + var(--messages-inbox-control) 86%, + #0a84ff 14% + ); } .messages-inbox-page .messages-conversation__dot { left: -9px; @@ -4746,7 +6011,9 @@ button { padding-top: 6px; font-size: 34px; } -.messages-inbox-page .messages-conversation__body { gap: 3px; } +.messages-inbox-page .messages-conversation__body { + gap: 3px; +} .messages-inbox-page .messages-conversation__headline { grid-template-columns: minmax(0, 1fr) auto 16px; gap: 5px; @@ -4756,7 +6023,10 @@ button { font-size: 17px; font-weight: 650; } -.messages-inbox-page .messages-conversation--unread .messages-conversation__headline strong { +.messages-inbox-page + .messages-conversation--unread + .messages-conversation__headline + strong { font-weight: 780; } .messages-inbox-page .messages-conversation__headline time, @@ -4764,7 +6034,9 @@ button { .messages-inbox-page .messages-conversation__preview { color: var(--messages-inbox-secondary); } -.messages-inbox-page .messages-conversation__headline time { font-size: 13px; } +.messages-inbox-page .messages-conversation__headline time { + font-size: 13px; +} .messages-inbox-page .messages-conversation__headline svg { width: 16px; height: 16px; @@ -4818,7 +6090,10 @@ button { display: block; flex: none; } -.messages-inbox-page .messages-inbox-header > button:not(.messages-inbox-header__edit) svg, +.messages-inbox-page + .messages-inbox-header + > button:not(.messages-inbox-header__edit) + svg, .messages-inbox-page .messages-inbox-toolbar > button svg { transform: translateY(1px); } @@ -4836,7 +6111,9 @@ button { background: var(--messages-inbox-control); box-shadow: none; } -.phone-app.dark .messages-inbox-page .messages-inbox-header { background: #000; } +.phone-app.dark .messages-inbox-page .messages-inbox-header { + background: #000; +} .phone-app.dark .messages-inbox-page .messages-avatar--unknown { border-color: #000; background: linear-gradient(145deg, #625c79, #3f3a55) !important; diff --git a/frontend/src/components/AppIcon.vue b/frontend/src/components/AppIcon.vue index 25e3df5..b6b6ca0 100644 --- a/frontend/src/components/AppIcon.vue +++ b/frontend/src/components/AppIcon.vue @@ -1,7 +1,7 @@ @@ -200,10 +216,17 @@ onBeforeUnmount(() => {