代码之家  ›  专栏  ›  技术社区  ›  Steffen Harbich

如何在Vaadin流中包含自己的图标集合?

  •  2
  • Steffen Harbich  · 技术社区  · 6 年前

    如何在Vaadin Flow中包含自己的图标?你做一个像这样的HTML文件吗 this

    @HtmlImport("frontend://path/to/your/icons.html")
    

    到目前为止我没有找到任何文件。所以我想这是一种可能性?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Youness    6 年前

    下面是添加一些 IcoMoon 图标到一个瓦丁流应用程序;

    1. 使用中的注释 https://icomoon.io/docs.html 在“Generating Icons in SVG&More”部分下,我生成了iron iconset SVG格式的聚合物兼容图标集。

    2. 解压缩zip文件,然后打开polymer文件夹。它包含*-svg.html文件文件,这是@Jouni在上面的注释中提到的“iron iconset svg”格式文件。这个html文件实际上是内联svg的集合。

    3. 将html文件复制到资源文件夹中;

      e.g. resources/META-INF/resources/frontend/styles/

    4. @HtmlImport ;

      e.g. @HtmlImport("frontend://styles/icomoon-iconset-svg.html")

    5. 然后可以使用集合名称和图标名称创建图标;

      Icon icon = new Icon("icomoon", "mobile");

      • 集合名称是中的名称值 <iron-iconset-svg name=...
        2
  •  1
  •   S. Doe    4 年前

    也可以手动创建图标集合。 我曾经 https://github.com/vaadin/vaadin-icons/blob/master/iconset.html 作为模板(或多或少):

    1. 创建新的SVG文件我的图标.svg首先是

      <iron-iconset-svg name="myiconset"><svg><defs>

    2. </defs></svg></iron-iconset-svg>

    3. <g id="myicon" viewBox="0 0 52 56"></g>

    4. 在此文件中设置唯一的id。

    5. 使用原始SVG文件中的值设置viewBox属性(可见尺寸)。
    6. 从原始SVG文件中复制path元素(并删除任何“g”或“symbol”或“title”或任何其他不是path/line/shape的元素),然后将其粘贴到新创建的“g”元素中。

      <path d="m14 15h-13c-.55228475 [...]" />

    7. 在Java代码中阅读我的图标.svg文件并将其粘贴到您的站点中,例如,以这种直接方式(如果您选择了另一个路径,请替换路径):

      add(new Html(Files.readString(new File("src/main/webapp/img/myicons.svg").toPath())));

    8. 创建图标:

      com.vaadin.flow.component.icon.Icon myIcon = new Icon("myiconset", "myicon"); myIcon.getStyle().set("color", "var(--lumo-primary-text-color)"); add(myIcon);

        3
  •  0
  •   Luis Gtz    3 年前

    更新:从vaadin14开始(除了在兼容模式下),您应该改用@JsModule。i、 e.@JsModule(“@聚合物/铁图标/铁-图标.js")