下载 beanie 图标
SVG 矢量源文件,或 PNG 按 16~512 预设与 16~1024 自定义尺寸导出,任意尺寸边缘锐利。
PNG 由矢量源实时渲染,任意尺寸边缘锐利无锯齿;下载与预览均免费,无需注册。
beanie 的预览与使用场景
切换预览颜色后,下方三底色、真实界面场景与各尺寸渲染会实时跟随。
在真实界面里长这样
各尺寸下的可读性
复制 beanie 图标代码
内联 SVG、React、Vue 与 CSS mask 四种主流引用方式,代码基于当前源文件生成,复制即用。
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512"><path fill="none" stroke="#ef4444" stroke-miterlimit="10" stroke-width="9" d="M173 304.7v-17a83 83 0 0 1 83-83a83 83 0 0 1 83 83v17"/><path fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9" d="M160 317.5v34.4c0 6.3 7.1 11.4 16 11.4h160c8.9 0 16-5.1 16-11.4v-34.4c0-6.3-7.1-11.4-16-11.4H176c-8.9 0-16 5-16 11.4Z"/><circle cx="256" cy="170.7" r="22" fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9"><animateTransform id="SVGDavQ7cLk" fill="freeze" additive="sum" attributeName="transform" begin="0s;SVGDavQ7cLk.end+2.58s" calcMode="spline" dur=".42s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .4; .8; 1" type="translate" values="0 0; 0 -9; 0 3; 0 0"/><animateTransform id="SVG0fpL7d3l" fill="freeze" additive="sum" attributeName="transform" begin="1s;SVG0fpL7d3l.end+2.25s" calcMode="spline" dur=".75s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .22; .44; .67; .89; 1" type="rotate" values="0 256 256; -15 256 256; 9 256 256; -9 256 256; 6 256 256; 0 256 256"/></circle></svg>export function BeanieIcon(props: React.SVGProps<SVGSVGElement>) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 512 512"
fill="currentColor"
{...props}
dangerouslySetInnerHTML={{ __html: `<path fill="none" stroke="#ef4444" stroke-miterlimit="10" stroke-width="9" d="M173 304.7v-17a83 83 0 0 1 83-83a83 83 0 0 1 83 83v17"/><path fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9" d="M160 317.5v34.4c0 6.3 7.1 11.4 16 11.4h160c8.9 0 16-5.1 16-11.4v-34.4c0-6.3-7.1-11.4-16-11.4H176c-8.9 0-16 5-16 11.4Z"/><circle cx="256" cy="170.7" r="22" fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9"><animateTransform id="SVGDavQ7cLk" fill="freeze" additive="sum" attributeName="transform" begin="0s;SVGDavQ7cLk.end+2.58s" calcMode="spline" dur=".42s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .4; .8; 1" type="translate" values="0 0; 0 -9; 0 3; 0 0"/><animateTransform id="SVG0fpL7d3l" fill="freeze" additive="sum" attributeName="transform" begin="1s;SVG0fpL7d3l.end+2.25s" calcMode="spline" dur=".75s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .22; .44; .67; .89; 1" type="rotate" values="0 256 256; -15 256 256; 9 256 256; -9 256 256; 6 256 256; 0 256 256"/></circle>` }}
/>
);
}<template>
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 512 512" fill="currentColor" v-html="body"></svg>
</template>
<script setup>
const body = `<path fill="none" stroke="#ef4444" stroke-miterlimit="10" stroke-width="9" d="M173 304.7v-17a83 83 0 0 1 83-83a83 83 0 0 1 83 83v17"/><path fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9" d="M160 317.5v34.4c0 6.3 7.1 11.4 16 11.4h160c8.9 0 16-5.1 16-11.4v-34.4c0-6.3-7.1-11.4-16-11.4H176c-8.9 0-16 5-16 11.4Z"/><circle cx="256" cy="170.7" r="22" fill="none" stroke="#e2e8f0" stroke-miterlimit="10" stroke-width="9"><animateTransform id="SVGDavQ7cLk" fill="freeze" additive="sum" attributeName="transform" begin="0s;SVGDavQ7cLk.end+2.58s" calcMode="spline" dur=".42s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .4; .8; 1" type="translate" values="0 0; 0 -9; 0 3; 0 0"/><animateTransform id="SVG0fpL7d3l" fill="freeze" additive="sum" attributeName="transform" begin="1s;SVG0fpL7d3l.end+2.25s" calcMode="spline" dur=".75s" keySplines=".42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1; .42, 0, .58, 1" keyTimes="0; .22; .44; .67; .89; 1" type="rotate" values="0 256 256; -15 256 256; 9 256 256; -9 256 256; 6 256 256; 0 256 256"/></circle>`;
</script>.beanie {
width: 1em;
height: 1em;
background-color: currentColor;
-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221em%22%20height%3D%221em%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ef4444%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%20d%3D%22M173%20304.7v-17a83%2083%200%200%201%2083-83a83%2083%200%200%201%2083%2083v17%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23e2e8f0%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%20d%3D%22M160%20317.5v34.4c0%206.3%207.1%2011.4%2016%2011.4h160c8.9%200%2016-5.1%2016-11.4v-34.4c0-6.3-7.1-11.4-16-11.4H176c-8.9%200-16%205-16%2011.4Z%22%2F%3E%3Ccircle%20cx%3D%22256%22%20cy%3D%22170.7%22%20r%3D%2222%22%20fill%3D%22none%22%20stroke%3D%22%23e2e8f0%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%3E%3CanimateTransform%20id%3D%22SVGDavQ7cLk%22%20fill%3D%22freeze%22%20additive%3D%22sum%22%20attributeName%3D%22transform%22%20begin%3D%220s%3BSVGDavQ7cLk.end%2B2.58s%22%20calcMode%3D%22spline%22%20dur%3D%22.42s%22%20keySplines%3D%22.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%22%20keyTimes%3D%220%3B%20.4%3B%20.8%3B%201%22%20type%3D%22translate%22%20values%3D%220%200%3B%200%20-9%3B%200%203%3B%200%200%22%2F%3E%3CanimateTransform%20id%3D%22SVG0fpL7d3l%22%20fill%3D%22freeze%22%20additive%3D%22sum%22%20attributeName%3D%22transform%22%20begin%3D%221s%3BSVG0fpL7d3l.end%2B2.25s%22%20calcMode%3D%22spline%22%20dur%3D%22.75s%22%20keySplines%3D%22.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%22%20keyTimes%3D%220%3B%20.22%3B%20.44%3B%20.67%3B%20.89%3B%201%22%20type%3D%22rotate%22%20values%3D%220%20256%20256%3B%20-15%20256%20256%3B%209%20256%20256%3B%20-9%20256%20256%3B%206%20256%20256%3B%200%20256%20256%22%2F%3E%3C%2Fcircle%3E%3C%2Fsvg%3E") no-repeat center / contain;
mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221em%22%20height%3D%221em%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ef4444%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%20d%3D%22M173%20304.7v-17a83%2083%200%200%201%2083-83a83%2083%200%200%201%2083%2083v17%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23e2e8f0%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%20d%3D%22M160%20317.5v34.4c0%206.3%207.1%2011.4%2016%2011.4h160c8.9%200%2016-5.1%2016-11.4v-34.4c0-6.3-7.1-11.4-16-11.4H176c-8.9%200-16%205-16%2011.4Z%22%2F%3E%3Ccircle%20cx%3D%22256%22%20cy%3D%22170.7%22%20r%3D%2222%22%20fill%3D%22none%22%20stroke%3D%22%23e2e8f0%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%229%22%3E%3CanimateTransform%20id%3D%22SVGDavQ7cLk%22%20fill%3D%22freeze%22%20additive%3D%22sum%22%20attributeName%3D%22transform%22%20begin%3D%220s%3BSVGDavQ7cLk.end%2B2.58s%22%20calcMode%3D%22spline%22%20dur%3D%22.42s%22%20keySplines%3D%22.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%22%20keyTimes%3D%220%3B%20.4%3B%20.8%3B%201%22%20type%3D%22translate%22%20values%3D%220%200%3B%200%20-9%3B%200%203%3B%200%200%22%2F%3E%3CanimateTransform%20id%3D%22SVG0fpL7d3l%22%20fill%3D%22freeze%22%20additive%3D%22sum%22%20attributeName%3D%22transform%22%20begin%3D%221s%3BSVG0fpL7d3l.end%2B2.25s%22%20calcMode%3D%22spline%22%20dur%3D%22.75s%22%20keySplines%3D%22.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%3B%20.42%2C%200%2C%20.58%2C%201%22%20keyTimes%3D%220%3B%20.22%3B%20.44%3B%20.67%3B%20.89%3B%201%22%20type%3D%22rotate%22%20values%3D%220%20256%20256%3B%20-15%20256%20256%3B%209%20256%20256%3B%20-9%20256%20256%3B%206%20256%20256%3B%200%20256%20256%22%2F%3E%3C%2Fcircle%3E%3C%2Fsvg%3E") no-repeat center / contain;
}给 beanie 加一点动效
单文件 CSS 即可播放,无需任何依赖;描画动效仅对描边类图标生效。
呼吸
透明度往复渐变,适合状态提示与在线指示。
.icon-beanie {
animation: icon-breathe 1.8s ease-in-out infinite;
}
@keyframes icon-breathe {
0%, 100% { opacity: 1; }
50% { opacity: 0.35; }
}旋转
匀速循环旋转,适合加载中场景。
.icon-beanie {
animation: icon-spin 1.6s linear infinite;
}
@keyframes icon-spin {
to { transform: rotate(360deg); }
}描画
线条从无到有依次绘出,适合线性图标与首屏引导。
.icon-beanie path {
stroke-dasharray: 120;
animation: icon-draw 1.2s ease forwards;
}
@keyframes icon-draw {
from { stroke-dashoffset: 120; }
to { stroke-dashoffset: 0; }
}SVG 健康报告
对源文件的客观技术指标,供工程侧评估引用方式。
文件体积
1.17 KB
1,193 字节
viewBox
0 0 512 512
矢量坐标系
图元总数
3
<path> ×2
风格
多色填充
描边可随字号加粗
同时含 width/height 与 viewBox:可以只保留 viewBox,让图标跟随容器自适应缩放。 文件体积 1.17 KB(1,193 字节),图元 3 个,风格为多色填充。
常见问题
关于 beanie 图标的下载、商用与改色。
beanie 图标是什么?▾
它是 Meteocons(meteocons)开源图标集中的 beanie 图标,多色填充,viewBox 为 0 0 512 512,文件仅 1.17 KB,矢量格式可无损缩放到任意尺寸。
如何下载 beanie 图标?▾
点击「下载与导出」中的 SVG 源文件按钮保存矢量文件;也可以按 512 / 256 / 128 / 64 / 32 / 16px 预设导出 PNG,或在输入框填 16~1024 之间的任意尺寸。需要 iOS、Android 全套尺寸时,用素材包生成器一键打包。
beanie 图标可以商用吗?▾
该图标采用 MIT(MIT) 开源协议,通常允许在遵守协议的前提下免费使用,常见要求是保留作者版权声明。商用前建议阅读协议原文确认。
如何修改 beanie 图标的颜色?▾
在「预览与场景」的色板中切换颜色,三底色与全部场景会实时跟随;点击任一相近图标可打开预览弹层,复制对应颜色的 SVG 源码或 PNG。也可以复制 SVG 源码后自行修改 fill 值。