找找图标

sofa-duotone SVG 图标

keyline-iconssofa-duotone

来自 Keyline Icons 开源图标集,矢量 SVG 可无损缩放到任意尺寸,支持在线改色、复制 React/Vue/HTML 代码。

图标 ID
keyline-icons:sofa-duotone
中文名
—
所属集合
Keyline Icons
集合规模
13,232 枚
基础网格
24px
色彩
单色(可改色)
开源协议
MIT
作者
Keyline Icons

下载 sofa-duotone 图标

SVG 矢量源文件,或 PNG 按 16~512 预设与 16~1024 自定义尺寸导出,任意尺寸边缘锐利。

px

PNG 由矢量源实时渲染,任意尺寸边缘锐利无锯齿;下载与预览均免费,无需注册。

sofa-duotone 的预览与使用场景

切换预览颜色后,下方三底色、真实界面场景与各尺寸渲染会实时跟随。

预览颜色
sofa-duotone 图标 浅色背景预览浅色背景
sofa-duotone 图标 深色背景预览深色背景
sofa-duotone 图标 灰底融入预览灰底融入

在真实界面里长这样

继续按钮内 · 主操作
搜索sofa-duotone…输入框 · 前缀图标
sofa-duotone导航菜单 · 选中态
暂无内容空状态 · 引导提示
9:41sofa-duotone App 图标sofa-duotonesofasofa-fillsofa-sharpsofa-sharp-duotonesofa-sharp-fillsofa-sharp-two-tonesofa-two-tone手机桌面 · App 图标
sofa-duotonekeyline-icons.design/icons/sofa-duotone浏览器 · 标签页与站点图标

各尺寸下的可读性

sofa-duotone 图标 24px 渲染24pxsofa-duotone 图标 32px 渲染32pxsofa-duotone 图标 48px 渲染48pxsofa-duotone 图标 64px 渲染64pxsofa-duotone 图标 96px 渲染96pxsofa-duotone 图标 128px 渲染128px

复制 sofa-duotone 图标代码

内联 SVG、React、Vue 与 CSS mask 四种主流引用方式,代码基于当前源文件生成,复制即用。

svgSVG 源码(内联 HTML)
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path fill="currentColor" fill-opacity=".4" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11Z" stroke="none"/><path fill="currentColor" fill-rule="evenodd" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11ZM9 13L15 13L15 11C15 9.176 16.2339 7.583 18 7.127L18 6C18 5.4477 17.5523 5 17 5L7 5C6.4477 5 6 5.4477 6 6L6 7.127C7.7661 7.583 9 9.176 9 11L9 13Z" clip-rule="evenodd" stroke="none"/><path d="M5 18L5 20M19 18L19 20"/></g></svg>
reactReact 组件(TSX)
export function SofaDuotoneIcon(props: React.SVGProps<SVGSVGElement>) {
  return (
    <svg
      xmlns="http://www.w3.org/2000/svg"
      width="1em"
      height="1em"
      viewBox="0 0 24 24"
      fill="currentColor"
      {...props}
      dangerouslySetInnerHTML={{ __html: `<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path fill="currentColor" fill-opacity=".4" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11Z" stroke="none"/><path fill="currentColor" fill-rule="evenodd" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11ZM9 13L15 13L15 11C15 9.176 16.2339 7.583 18 7.127L18 6C18 5.4477 17.5523 5 17 5L7 5C6.4477 5 6 5.4477 6 6L6 7.127C7.7661 7.583 9 9.176 9 11L9 13Z" clip-rule="evenodd" stroke="none"/><path d="M5 18L5 20M19 18L19 20"/></g>` }}
    />
  );
}
vueVue 3 组件
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" v-html="body"></svg>
</template>

<script setup>
const body = `<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path fill="currentColor" fill-opacity=".4" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11Z" stroke="none"/><path fill="currentColor" fill-rule="evenodd" d="M1 11C1 9.176 2.2339 7.583 4 7.127L4 6C4 4.3431 5.3431 3 7 3L17 3C18.6569 3 20 4.3431 20 6L20 7.127C21.7661 7.583 23 9.176 23 11L23 15C23 17.2091 21.2091 19 19 19L5 19C2.7909 19 1 17.2091 1 15L1 11ZM9 13L15 13L15 11C15 9.176 16.2339 7.583 18 7.127L18 6C18 5.4477 17.5523 5 17 5L7 5C6.4477 5 6 5.4477 6 6L6 7.127C7.7661 7.583 9 9.176 9 11L9 13Z" clip-rule="evenodd" stroke="none"/><path d="M5 18L5 20M19 18L19 20"/></g>`;
</script>
cssCSS mask(随 currentColor 改色)
.sofa-duotone {
  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%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%3E%3Cpath%20fill%3D%22currentColor%22%20fill-opacity%3D%22.4%22%20d%3D%22M1%2011C1%209.176%202.2339%207.583%204%207.127L4%206C4%204.3431%205.3431%203%207%203L17%203C18.6569%203%2020%204.3431%2020%206L20%207.127C21.7661%207.583%2023%209.176%2023%2011L23%2015C23%2017.2091%2021.2091%2019%2019%2019L5%2019C2.7909%2019%201%2017.2091%201%2015L1%2011Z%22%20stroke%3D%22none%22%2F%3E%3Cpath%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%20d%3D%22M1%2011C1%209.176%202.2339%207.583%204%207.127L4%206C4%204.3431%205.3431%203%207%203L17%203C18.6569%203%2020%204.3431%2020%206L20%207.127C21.7661%207.583%2023%209.176%2023%2011L23%2015C23%2017.2091%2021.2091%2019%2019%2019L5%2019C2.7909%2019%201%2017.2091%201%2015L1%2011ZM9%2013L15%2013L15%2011C15%209.176%2016.2339%207.583%2018%207.127L18%206C18%205.4477%2017.5523%205%2017%205L7%205C6.4477%205%206%205.4477%206%206L6%207.127C7.7661%207.583%209%209.176%209%2011L9%2013Z%22%20clip-rule%3D%22evenodd%22%20stroke%3D%22none%22%2F%3E%3Cpath%20d%3D%22M5%2018L5%2020M19%2018L19%2020%22%2F%3E%3C%2Fg%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%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%3E%3Cpath%20fill%3D%22currentColor%22%20fill-opacity%3D%22.4%22%20d%3D%22M1%2011C1%209.176%202.2339%207.583%204%207.127L4%206C4%204.3431%205.3431%203%207%203L17%203C18.6569%203%2020%204.3431%2020%206L20%207.127C21.7661%207.583%2023%209.176%2023%2011L23%2015C23%2017.2091%2021.2091%2019%2019%2019L5%2019C2.7909%2019%201%2017.2091%201%2015L1%2011Z%22%20stroke%3D%22none%22%2F%3E%3Cpath%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%20d%3D%22M1%2011C1%209.176%202.2339%207.583%204%207.127L4%206C4%204.3431%205.3431%203%207%203L17%203C18.6569%203%2020%204.3431%2020%206L20%207.127C21.7661%207.583%2023%209.176%2023%2011L23%2015C23%2017.2091%2021.2091%2019%2019%2019L5%2019C2.7909%2019%201%2017.2091%201%2015L1%2011ZM9%2013L15%2013L15%2011C15%209.176%2016.2339%207.583%2018%207.127L18%206C18%205.4477%2017.5523%205%2017%205L7%205C6.4477%205%206%205.4477%206%206L6%207.127C7.7661%207.583%209%209.176%209%2011L9%2013Z%22%20clip-rule%3D%22evenodd%22%20stroke%3D%22none%22%2F%3E%3Cpath%20d%3D%22M5%2018L5%2020M19%2018L19%2020%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center / contain;
}

给 sofa-duotone 加一点动效

单文件 CSS 即可播放,无需任何依赖;描画动效仅对描边类图标生效。

sofa-duotone 呼吸动效演示

呼吸

透明度往复渐变,适合状态提示与在线指示。

css呼吸动效样式
.icon-sofa-duotone {
  animation: icon-breathe 1.8s ease-in-out infinite;
}

@keyframes icon-breathe {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
sofa-duotone 旋转动效演示

旋转

匀速循环旋转,适合加载中场景。

css旋转动效样式
.icon-sofa-duotone {
  animation: icon-spin 1.6s linear infinite;
}

@keyframes icon-spin {
  to { transform: rotate(360deg); }
}
sofa-duotone 描画动效演示

描画

线条从无到有依次绘出,适合线性图标与首屏引导。

css描画动效样式
.icon-sofa-duotone path {
  stroke-dasharray: 120;
  animation: icon-draw 1.2s ease forwards;
}

@keyframes icon-draw {
  from { stroke-dashoffset: 120; }
  to { stroke-dashoffset: 0; }
}

SVG 健康报告

对源文件的客观技术指标,供工程侧评估引用方式。

文件体积

0.90 KB

921 字节

viewBox

0 0 24 24

矢量坐标系

图元总数

3

<path> ×3

风格

单色轮廓(描边)

描边可随字号加粗

同时含 width/height 与 viewBox:可以只保留 viewBox,让图标跟随容器自适应缩放。 文件体积 0.90 KB(921 字节),图元 3 个,风格为单色轮廓(描边)。

常见问题

关于 sofa-duotone 图标的下载、商用与改色。

sofa-duotone 图标是什么?▾

它是 Keyline Icons(keyline-icons)开源图标集中的 sofa-duotone 图标,单色轮廓(描边),viewBox 为 0 0 24 24,文件仅 0.90 KB,矢量格式可无损缩放到任意尺寸。

如何下载 sofa-duotone 图标?▾

点击「下载与导出」中的 SVG 源文件按钮保存矢量文件;也可以按 512 / 256 / 128 / 64 / 32 / 16px 预设导出 PNG,或在输入框填 16~1024 之间的任意尺寸。需要 iOS、Android 全套尺寸时,用素材包生成器一键打包。

sofa-duotone 图标可以商用吗?▾

该图标采用 MIT(MIT) 开源协议,通常允许在遵守协议的前提下免费使用,常见要求是保留作者版权声明。商用前建议阅读协议原文确认。

如何修改 sofa-duotone 图标的颜色?▾

在「预览与场景」的色板中切换颜色,三底色与全部场景会实时跟随;点击任一相近图标可打开预览弹层,复制对应颜色的 SVG 源码或 PNG。也可以复制 SVG 源码后自行修改 fill 值。

Keyline Icons 中的相近图标

sofa
sofa-fill
sofa-sharp
sofa-sharp-duotone
sofa-sharp-fill
sofa-sharp-two-tone
sofa-two-tone