Many new functionalities

This commit is contained in:
2026-03-10 02:49:27 +01:00
parent 640d92d231
commit 61612b52d3
15 changed files with 1920 additions and 97 deletions

View File

@@ -211,23 +211,55 @@
position: relative;
align-self: start;
max-width: min(75%, 34rem);
padding: 0.9rem 1rem;
padding: 0.9rem 3.4rem 0.9rem 1rem;
border-radius: 1.2rem;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}
.bubble-delete {
.bubble-actions {
position: absolute;
top: 0.45rem;
right: 0.55rem;
display: flex;
align-items: flex-start;
gap: 0.35rem;
}
.bubble-action {
width: 1.5rem;
height: 1.5rem;
padding: 0;
border: 0;
border-radius: 999px;
color: #fff;
background: var(--danger-background);
background: var(--badge-background);
line-height: 1;
font-size: 1rem;
font-size: 0.9rem;
}
.bubble-delete {
background: var(--danger-background);
}
.bubble-forward-menu {
position: absolute;
top: 1.9rem;
right: 0;
z-index: 2;
min-width: 12rem;
padding: 0.45rem;
border: 1px solid var(--surface-border);
border-radius: 0.85rem;
background: var(--surface-background);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}
.bubble-forward-select {
width: 100%;
border: 1px solid var(--input-border);
border-radius: 0.65rem;
color: var(--page-text);
background: var(--input-background);
}
.bubble-incoming {
@@ -250,14 +282,21 @@
}
.bubble-meta {
display: flex;
justify-content: space-between;
gap: 1rem;
display: grid;
gap: 0.12rem;
margin-bottom: 0.35rem;
font-size: 0.78rem;
opacity: 0.7;
}
.bubble-author {
font-weight: 600;
}
.bubble-time {
display: block;
}
.composer {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
@@ -268,10 +307,27 @@
border-top: 1px solid var(--surface-border-soft);
}
.composer-actions {
display: grid;
gap: 0.6rem;
}
.composer-send {
display: grid;
gap: 0.6rem;
}
.composer-emoji-picker-shell {
position: relative;
}
.composer-file-input {
display: none;
}
.composer-camera,
.composer-image-generate,
.composer-emoji-trigger,
.composer-plus,
.send-emoji {
width: 3.25rem;
@@ -293,6 +349,21 @@
color: var(--placeholder-color);
}
.composer-camera {
color: var(--page-text);
background: var(--badge-background);
}
.composer-image-generate {
color: var(--page-text);
background: linear-gradient(135deg, #ffe6b0, #ffc8a8);
}
.composer-emoji-trigger {
color: var(--page-text);
background: var(--badge-background);
}
.composer-plus {
color: var(--page-text);
background: var(--badge-background);
@@ -302,6 +373,41 @@
background: linear-gradient(135deg, #def7dd, #9bd5ff);
}
.composer-emoji-picker {
position: absolute;
right: 0;
bottom: calc(100% + 0.65rem);
z-index: 3;
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 0.35rem;
width: min(14rem, 70vw);
max-height: 10.35rem;
overflow-y: auto;
overflow-x: hidden;
padding: 0.65rem;
border: 1px solid var(--surface-border);
border-radius: 1rem;
background: var(--panel-background);
box-shadow: 0 18px 36px rgba(0, 0, 0, 0.18);
}
.composer-emoji-option {
width: 2.1rem;
height: 2.1rem;
padding: 0;
border: 0;
border-radius: 0.75rem;
background: var(--surface-background);
font-size: 1.2rem;
line-height: 1;
}
.composer-emoji-option:hover,
.composer-emoji-option:focus-visible {
background: var(--surface-hover-background);
}
.bubble-image {
width: 200px;
max-width: 100%;
@@ -310,6 +416,15 @@
display: block;
}
.bubble-video {
width: 200px;
max-width: 100%;
height: auto;
display: block;
border-radius: 1rem;
background: #000;
}
.bubble-download {
color: inherit;
font-weight: 600;