fix(ui): enhance header and post styles with new animations and layout adjustments

这个提交包含在:
rohow
2026-01-29 16:28:33 +08:00
未验证
父节点 c34fb7da19
当前提交 d3af9f09d9
修改 4 个文件,包含 81 行新增19 行删除
+6 -9
查看文件
@@ -158,7 +158,7 @@
&.open { &.open {
display: block; display: block;
animation: terminal-frame 0.2s ease-out; animation: terminal-frame-reveal 0.3s ease-out forwards;
// 逐行渲染效果 - 为每个子项添加延迟动画 // 逐行渲染效果 - 为每个子项添加延迟动画
li { li {
@@ -182,17 +182,14 @@
padding: 0; padding: 0;
} }
// 菜单框架渲染动画 - 模拟终端窗口从上到下打开 // 菜单框架渲染动画 - 从上到下逐层渲染边框和内容
@keyframes terminal-frame { @keyframes terminal-frame-reveal {
0% { 0% {
max-height: 0; clip-path: inset(-10px -10px calc(100% + 10px) -10px);
opacity: 0;
}
50% {
opacity: 1; opacity: 1;
} }
100% { 100% {
max-height: 800px; clip-path: inset(-10px -10px -10px -10px);
opacity: 1; opacity: 1;
} }
} }
@@ -201,7 +198,7 @@
@keyframes terminal-line { @keyframes terminal-line {
0% { 0% {
opacity: 0; opacity: 0;
transform: translateX(-10px); transform: translateX(-2px);
} }
50% { 50% {
opacity: 0.5; opacity: 0.5;
+57 -1
查看文件
@@ -38,6 +38,8 @@
} }
%meta { %meta {
display: flex;
align-items: center;
font-size: 1rem; font-size: 1rem;
margin-bottom: 10px; margin-bottom: 10px;
color: var(--brightBlue); color: var(--brightBlue);
@@ -53,6 +55,30 @@
display: inline; display: inline;
} }
&-separator {
position: relative;
top: 1px;
display: inline-grid;
grid-template-columns: repeat(2, 3px);
grid-template-rows: repeat(2, 3px);
gap: 2px;
margin: 0 6px;
span {
width: 2px;
height: 2px;
background-color: var(--brightBlue);
border-radius: 50%;
opacity: 0.2;
}
// 每个点使用不同动画和时长,形成随机效果
span:nth-child(1) { animation: dot-blink-1 2.8s ease-in-out infinite; }
span:nth-child(2) { animation: dot-blink-2 2.2s ease-in-out infinite 0.4s; }
span:nth-child(3) { animation: dot-blink-3 3.4s ease-in-out infinite 1s; }
span:nth-child(4) { animation: dot-blink-4 2.6s ease-in-out infinite 0.2s; }
}
&-title { &-title {
--border: 3px dotted var(--blue); --border: 3px dotted var(--blue);
@@ -172,4 +198,34 @@
.comment-wrap { .comment-wrap {
position: relative; position: relative;
z-index: 2; z-index: 2;
} }
// 4个不同的随机动画模式
@keyframes dot-blink-1 {
0%, 100% { opacity: 0.2; }
25% { opacity: 1; }
50% { opacity: 0.3; }
75% { opacity: 0.8; }
}
@keyframes dot-blink-2 {
0%, 100% { opacity: 0.3; }
30% { opacity: 0.9; }
60% { opacity: 0.2; }
85% { opacity: 0.7; }
}
@keyframes dot-blink-3 {
0%, 100% { opacity: 0.2; }
20% { opacity: 0.6; }
45% { opacity: 1; }
70% { opacity: 0.4; }
}
@keyframes dot-blink-4 {
0%, 100% { opacity: 0.4; }
15% { opacity: 0.2; }
40% { opacity: 0.8; }
65% { opacity: 1; }
90% { opacity: 0.3; }
}
+10 -7
查看文件
@@ -12,18 +12,21 @@
<div class="posts"> <div class="posts">
<div class="post on-list" th:each="post : ${posts.items}"> <div class="post on-list" th:each="post : ${posts.items}">
<h1 class="post-title"> <h1 class="post-title">
<a th:text="${post.spec.title}" th:href="${post.status.permalink}">Post Title</a> <a th:text="'<' + ${post.spec.title} + '>'" th:href="${post.status.permalink}">Post Title</a>
</h1> </h1>
<div class="post-meta"> <div class="post-meta">
<span class="post-date" th:text="${#dates.format(post.spec.publishTime,'yyyy-MM-dd')}"> <span class="post-date" th:text="${#dates.format(post.spec.publishTime,'yyyy-MM-dd')}">
Post CreateTime Post CreateTime
</span> </span>
<span <span class="post-separator">
class="post-author" <span></span>
th:with="contributor = ${post.contributors[0]}" <span></span>
th:text="${':: '+contributor.displayName}" <span></span>
>:: Author</span <span></span>
> </span>
<span class="post-author" th:with="contributor = ${post.contributors[0]}" th:text="${contributor.displayName}">
Author
</span>
</div> </div>
<span class="post-tags-inline" th:each="tag : ${post.tags}"> <span class="post-tags-inline" th:each="tag : ${post.tags}">
<a <a
+8 -2
查看文件
@@ -5,10 +5,16 @@
> >
<th:block th:fragment="content"> <th:block th:fragment="content">
<div class="post"> <div class="post">
<h1 class="post-title" th:text="${post.spec.title}">Post Title</h1> <h1 class="post-title" th:text="'<' + ${post.spec.title} + '>'">Post Title</h1>
<div class="post-meta"> <div class="post-meta">
<span class="post-date" th:text="${#dates.format(post.spec.publishTime,'yyyy-MM-dd')}"> publishTime </span> <span class="post-date" th:text="${#dates.format(post.spec.publishTime,'yyyy-MM-dd')}"> publishTime </span>
<span class="post-author" th:text="${':: '+post.owner.displayName}">:: Author</span> <span class="post-separator">
<span></span>
<span></span>
<span></span>
<span></span>
</span>
<span class="post-author" th:text="${post.owner.displayName}">Author</span>
</div> </div>
<span class="post-tags-inline" th:each="tag : ${post.tags}"> <span class="post-tags-inline" th:each="tag : ${post.tags}">
<a <a