Icon and logo assets for the University of Maryland Design System, organized by category for optimal tree-shaking and selective imports.
npm install @universityofmaryland/web-icons-library
# or
yarn add @universityofmaryland/web-icons-library
Import icons from specific categories using aliases for clarity:
// Arrow icons
import { arrow_up as iconArrowUp } from '@universityofmaryland/web-icons-library/arrows';
import { arrow_left as iconArrowLeft } from '@universityofmaryland/web-icons-library/arrows';
// Control icons
import { close as iconClose } from '@universityofmaryland/web-icons-library/controls';
import { play as iconPlay } from '@universityofmaryland/web-icons-library/controls';
// Social media icons
import { facebook as iconFacebook } from '@universityofmaryland/web-icons-library/social';
import { instagram as iconInstagram } from '@universityofmaryland/web-icons-library/social';
Import entire categories when you need multiple icons from the same category:
import * as ArrowIcons from '@universityofmaryland/web-icons-library/arrows';
import * as SocialIcons from '@universityofmaryland/web-icons-library/social';
// Use icons
const upArrow = ArrowIcons.arrow_up;
const facebook = SocialIcons.facebook;
Import everything from the main entry point (not recommended for production due to bundle size):
import * as Icons from '@universityofmaryland/web-icons-library';
// Access icons directly
const arrow = Icons.arrow_up;
const facebookIcon = Icons.facebook;
All icons are exported as SVG strings and can be injected directly into the DOM:
import { arrow_up as iconArrowUp } from '@universityofmaryland/web-icons-library/arrows';
// Vanilla JS
document.getElementById('icon-container').innerHTML = iconArrowUp;
// React
function MyComponent() {
return <div dangerouslySetInnerHTML={{ __html: iconArrowUp }} />;
}
// With a helper function
import { svgFromString } from '@universityofmaryland/web-utilities-library/media';
const svgElement = svgFromString(iconArrowUp);
container.appendChild(svgElement);
/arrows)Directional arrow icons for navigation and indicating direction
arrow_up - Upward pointing arrowarrow_left - Left/back navigation arrowarrow_right - Right/forward navigation arrowarrow_long - Long horizontal arrow/controls)User interface control icons for actions and media playback
chevron_down - Downward chevron/dropdown indicatorclose - Small close buttonclose_large - Large close/X buttonpause - Media pause controlplay - Media play controlfullscreen - Fullscreen toggleprint - Print actionexternal_link - Open in new window/external link/indicators)Icons for alerts, warnings, and notifications
alert - Exclamation/alert iconwarning - Warning/notification icon/calendar)Time, date, and calendar-related icons
calendar - Calendar date iconclock - Clock/time iconcalendar_multi_day - Multi-day event icon/files)Document and file-related icons
document - Generic document/file icon/search)Search functionality icons
search - Search/magnifying glass icon/media)Media type and playback icons
gif - GIF media type indicator/brand)UMD brand-specific icons and elements
fearless - Fearless Ideas brand iconquote - Quote/testimonial icon/people)User and profile icons
person - Person/user profile icon/location)Geographic and location icons
pin - Map pin/location marker/communication)Communication method icons
email - Email/contact iconphone - Phone/call icon/social)Social media platform icons
facebook - Facebookx - X (formerly Twitter)twitter - Twitter (legacy)instagram - Instagramyoutube - YouTubelinkedin - LinkedInthreads - Threads/logos)University of Maryland logo assets (namespace exports)
import * as UMDLogos from '@universityofmaryland/web-icons-library/logos';
// UMD logos
UMDLogos.umd.dark // Dark background logo
UMDLogos.umd.light // Light background logo
// Forward logos
UMDLogos.forward.dark // Forward logo for dark backgrounds
UMDLogos.forward.light // Forward logo for light backgrounds
// Campaign logos
UMDLogos.campaign./* // Campaign logo variants
// Seal logos
UMDLogos.seal./* // Seal variants
All icons in this library are generated from Figma design files maintained by the University of Maryland Design System team. This ensures:
Note: Direct modifications to icon files in this package may be overwritten during the next sync from Figma. If you need custom icons or modifications, please work with the Design System team to update the source Figma files.
All icons include proper accessibility attributes:
aria-hidden="true" - Icons are decorative and hidden from screen readers by defaulttitle attributes - Provide visual context for sighted usersid attributes - Enable referencing if neededWhen icons convey important information, always provide alternative text:
<!-- ✅ Good: Button has accessible label -->
<button aria-label="Close dialog">
${iconClose}
</button>
<!-- ✅ Good: Icon with visible text -->
<a href="/search">
${iconSearch}
<span>Search</span>
</a>
<!-- ❌ Bad: No accessible alternative -->
<button>
${iconClose}
</button>
Full TypeScript definitions are included with autocomplete support:
import { arrow_up as iconArrowUp } from '@universityofmaryland/web-icons-library/arrows';
// All icons are typed as strings containing SVG markup
const icon: string = iconArrowUp;
// Category imports provide type safety
import type * as ArrowIcons from '@universityofmaryland/web-icons-library/arrows';
Use selective imports to include only the icons you need:
// ✅ Excellent: Only arrow_up is bundled (~1KB)
import { arrow_up as iconArrowUp } from '@universityofmaryland/web-icons-library/arrows';
// ✅ Good: Only arrow category is bundled (~4KB)
import * as ArrowIcons from '@universityofmaryland/web-icons-library/arrows';
// ⚠️ Caution: All icons are bundled (~50KB+)
import * as Icons from '@universityofmaryland/web-icons-library';
Most modern bundlers (Webpack, Rollup, Vite, esbuild) support tree-shaking by default when using ES modules. Ensure your build tool is configured for production mode:
// Vite (vite.config.js)
export default {
build: {
minify: 'terser',
rollupOptions: {
output: {
manualChunks: (id) => {
if (id.includes('@universityofmaryland/web-icons-library')) {
return 'icons';
}
}
}
}
}
};
Full API documentation generated with TypeDoc is available at:
https://umd-digital.github.io/design-system/modules/_universityofmaryland_web_icons_library.html
# Install dependencies
npm install
# Build the package
npm run build
# Watch mode for development
npm start
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch
# Generate TypeDoc documentation
npm run docs
This package uses modern package exports for optimal tree-shaking:
{
"exports": {
".": "./dist/index.mjs",
"./arrows": "./dist/arrows.mjs",
"./controls": "./dist/controls.mjs",
"./indicators": "./dist/indicators.mjs",
// ... other categories
}
}
Both CommonJS (.js) and ES Modules (.mjs) are supported with full TypeScript definitions (.d.ts).
All icons are standard SVG elements and work in all modern browsers:
MIT © University of Maryland
Part of the University of Maryland Design System: