wip animation
This commit is contained in:
@@ -22,6 +22,44 @@
|
|||||||
.htmx-request .htmx-indicator{
|
.htmx-request .htmx-indicator{
|
||||||
opacity:1
|
opacity:1
|
||||||
}
|
}
|
||||||
|
/* https://cssloaders.github.io/ */
|
||||||
|
.loader {
|
||||||
|
width: 4px;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: block;
|
||||||
|
margin: 20px auto;
|
||||||
|
position: relative;
|
||||||
|
background: currentColor;
|
||||||
|
color: #FFF;
|
||||||
|
box-sizing: border-box;
|
||||||
|
animation: animloader 0.3s 0.3s linear infinite alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader::after, .loader::before {
|
||||||
|
content: '';
|
||||||
|
width: 4px;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: currentColor;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
left: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
animation: animloader 0.3s 0.45s linear infinite alternate;
|
||||||
|
}
|
||||||
|
.loader::before {
|
||||||
|
left: -20px;
|
||||||
|
animation-delay: 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes animloader {
|
||||||
|
0% { height: 24px}
|
||||||
|
100% { height: 2px}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="bg-gray-100 p-4">
|
<body class="bg-gray-100 p-4">
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ func (a *App) Chat(m sse.Manager) func(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
m.Send(
|
m.Send(
|
||||||
sse.NewMessage(
|
sse.NewMessage(
|
||||||
chatDiv("...", "red") + "<script> document.getElementById('inputMessage').disabled = true;</script>",
|
`<div class="p-2 my-2 rounded bg-gray-100"><span class="loader"></span></div><script> document.getElementById('inputMessage').disabled = true;</script>`,
|
||||||
).WithEvent("message_status"))
|
).WithEvent("message_status"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user