前言
给侧栏加点样式,主要改个人信息卡片的背景、标签云和归档列表。卡片本身还是主题自带的,不用另外装插件。
美化之前
本站使用 Hexo 6.0.0 + Butterfly 4.5.1,其他版本请按实际情况调整。样式、脚本引入及全局变量用法可参考:
参考链接
- 安知鱼《butterfly 重装日记》:
https://blog.anheyu.com/posts/sdxhu.html(原链接暂不可用)。
修改方案
1. 保留原来的卡片结构
themes/butterfly/layout/includes/widget/index.pug 决定哪些卡片被渲染,_config.butterfly.yml 的 aside 则控制各项开关。先确认卡片能出现,再加 CSS,没有开启的卡片需要先在配置里打开。
个人卡片背景图分了亮色和深色两张,换成自己喜欢的图片即可。颜色变量也加了默认值,没有配置本站变量的可以直接用。
2. 添加样式
新建 source/static/css/aside-beautify.css,添加下面的样式。如果之前改过这一块,记得先合并旧样式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| #aside-content .card-tag-cloud a { color: var(--june-fontcolor, var(--font-color)) !important; font-size: 1.05rem !important; border-radius: 8px; display: inline-block; margin-right: 4px; } #aside-content .card-tag-cloud a:hover { background: var(--june-theme, #49b1f5); color: var(--june-white, #fff) !important; box-shadow: var(--june-shadow-theme, 0 4px 12px #49b1f544); } @media screen and (min-width: 1300px) { #aside-content .card-tag-cloud a:hover { transform: scale(1.03); } #aside-content .card-tag-cloud a:active { transform: scale(0.97); } } #aside-content .card-tag-cloud a sup { opacity: 0.4; margin-left: 2px; }
span.card-archive-list-count { width: auto; text-align: left; font-size: 1.1rem; line-height: 0.9; font-weight: 700; } .card-archive-list-count-group { display: flex; flex-direction: row; align-items: baseline; } #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:last-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:last-child { width: fit-content; margin-left: 4px; } .card-archive-list-date { font-size: 14px; opacity: 0.6; } li.card-archive-list-item { width: 100%; flex: 0 0 48%; } #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, #aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { color: var(--june-white, #fff); background-color: var(--june-theme, #49b1f5); box-shadow: var(--june-shadow-theme, 0 4px 12px #49b1f544); border-radius: 8px; padding-left: 0.5rem; padding-right: 0.5rem; } @media screen and (min-width: 1300px) { #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, #aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { transform: scale(1.03); } #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:active, #aside-content .card-categories ul.card-category-list > .card-category-list-item a:active { transform: scale(0.97); } } #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a, #aside-content .card-categories ul.card-category-list > .card-category-list-item a { border-radius: 8px; margin: 4px 0; display: flex; flex-direction: column; align-content: space-between; border: var(--style-border, 1px solid #e3e8ef); } #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { width: auto; flex: inherit; } #aside-content .card-archives ul.card-archive-list, #aside-content .card-categories ul.card-category-list { display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; }
#aside-content .card-info .card-info-social-icons .social-icon :hover{ transform: scale(1.5); }
#aside-content .avatar-img :hover{ transform: none; }
[data-theme="light"] #aside-content > .card-widget.card-info { background-image: url(https://img.june-pj.cn/img/2024%2F04%2Fpersonalbglight.webp); background-repeat: no-repeat; background-attachment: inherit; background-size: 100%; } [data-theme="dark"] #aside-content > .card-widget.card-info { background-image: linear-gradient(180deg, rgba(16, 22, 28, 0.42), rgba(16, 22, 28, 0.76)), url(https://img.june-pj.cn/img/2024%2F04%2Fpersonalbgdark.webp); background-repeat: no-repeat; background-attachment: inherit; background-size: cover; color: rgba(255, 255, 255, 0.88); border-color: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] #aside-content > .card-widget.card-info .author-info__name, [data-theme="dark"] #aside-content > .card-widget.card-info .author-info__description, [data-theme="dark"] #aside-content > .card-widget.card-info .site-data > a, [data-theme="dark"] #aside-content > .card-widget.card-info .card-info-social-icons .social-icon { color: rgba(255, 255, 255, 0.9) !important; }
[data-theme="dark"] #aside-content > .card-widget.card-info .site-data > a:hover, [data-theme="dark"] #aside-content > .card-widget.card-info .card-info-social-icons .social-icon:hover { color: var(--june, #49b1f5) !important; }
@media screen and (max-width: 768px) { .aside-content > .card-widget { border: none !important; }
.aside-content > .card-widget:hover { border: none !important; } }
|
然后在 _config.butterfly.yml 的 inject.head 里引入:
1 2 3
| inject: head: - <link rel="stylesheet" href="/static/css/aside-beautify.css">
|
3. 深色模式
深色背景加了半透明渐变,文字也单独改成浅色。只把图片换成暗色而不检查文字,往往会让作者名、简介和统计数字读不清。
这里没有重写标签和归档的数据结构;如果自己的模板已经变过,需要核对 .card-tag-cloud、.card-archive-list 和 .card-info 这些 class 是否仍然存在。原版侧栏图标还有旋转效果,想保留或取消都可以单独覆盖,不要误以为缩放一定会移除旋转。