npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@instructure/ui-icons

v10.10.0

Published

Icon set for Instructure, Inc. products

Downloads

61,737

Readme


category: packages

ui-icons

npm MIT License Code of Conduct

Installation

npm install @instructure/ui-icons

Usage

To use the React components:

---
type: code
---
import { IconAddLine } from '@instructure/ui-icons'

const MyComponent = () => {
  return <IconAdd />
}

Adding and Modifying Icons

  • Use dashes in the name of the .svg files (e.g calendar-month). Use the same name for the "line" and "solid" variants, and save them in the respective folder, e.g. Solid/calendar-month and Line/calendar-month.

  • Copy the new icon files in the /svg/Solid and /svg/Line directories.

  • Double-check that the SVG size is 1920x1920.

---
type: code
---

<svg
  width="1920"
  height="1920"
  viewBox="0 0 1920 1920"
  fill="none"
  xmlns="http://www.w3.org/2000/svg"
>
  {...}
</svg>
  • The files cannot contain clipping paths! Sadly, when the Designers export icons from Figma, most of the time they have a clipping path around the whole canvas. If the source code has them, manually refactor the code, e.g:
---
type: code
---

// Before:
<svg
  width="1920"
  height="1920"
  viewBox="0 0 1920 1920"
  fill="none"
  xmlns="http://www.w3.org/2000/svg"
>
  <g clip-path="url(#clip0_1007_24)">
    <path d="..." fill="#2D3B45" />
  </g>
  <defs>
    <clipPath id="clip0_1007_24">
      <rect width="1920" height="1920" fill="white" />
    </clipPath>
  </defs>
</svg>

// After:
<svg
  width="1920"
  height="1920"
  viewBox="0 0 1920 1920"
  fill="none"
  xmlns="http://www.w3.org/2000/svg"
>
  <path d="..." fill="#2D3B45" />
</svg>
  • If the icon has to bidirectional (being mirrored in RTL mode, typically arrow icons), add the icon name to the bidirectional list in packages/ui-icons/icons.config.js. Deprecated icons are handled here as well.

  • Run npm run export:icons from the repository root directory to generate the icons. This script will also take care of further optimizations on the SVG files (e.g. removing the fills). The configs for this are located in packages/ui-icons-build/lib/tasks/optimize-svgs/index.js and packages/ui-icons/svgo.config.js.

  • Run npm install && npm run bootstrap.

  • Finally, run npm run dev from the repository root directory to start the local server and check the generated output.

  • Verify icons display correctly by checking under Icons in the main nav. Check all 3 versions (React, SVG and icon font).

(Note: The fonts are sometimes not rendered correctly, but we decided not to fix them, because they are not really used anywhere, and we might stop supporting icon fonts in the future in general.)

Guidelines for Drawing Icons

  • Draw your icons on the 1920 x 1920 art-boards.

  • Before you flatten shapes or vectorize strokes as described below, make a hidden copy of the original paths off to the side so that you can more easily come back and make changes later.

  • Flatten your shapes.

  • Export strokes to vector.

  • Don’t use borders on vectors, especially not inside/outside borders which aren’t supported in SVG. Do not use clipping paths.

  • Make sure none of the paths go outside of the art-board. If so, the glyph in the icon font will be misaligned. Draw inside the lines.

  • Fill the space edge-to-edge as much as possible. The build process will add margins as needed.