Getting Started
Welcome to PRISM, the Manheim Design System
PRISM enables every Manheim product team to more quickly deliver and optimize digital experiences with a coherent system of flexible, on-brand, modular UI components.
Communication on Slack or Teams channels is generally the best way to reach others with knowledge of the existing workflow for contributors.
- Slack: #prism-community for discussions with UX and developers
- Slack: #prism-developers for technical discussions
- Teams: Prism Design System - General
Choose your role below to get started with PRISM.
Designers
Good interaction and interface design begins with understanding our design environment, users, and standards. To that end, designers should thoroughly review the Foundations section of the PRISM Design System. We recommend you start with the following topics:
Developers
Using a PRISM component in your project is just like using any other library.
Developers implement PRISM's reusable components to improve speed and consistency while delivering a best-in-class user experience. PRISM is created from the building blocks found in Bootstrap layered with React components. This provides a familiar syntax to element class names and treatments, while allowing for an unlimited amount of capabilities.
Use PRISM within your application whether it uses Bootstrap or React:
Quickstart
If your project uses React and is already configured with Artifactory you can get started right away. In other cases, continue below to learn more about how to use Prism in your project.
// Existing projects may already be configured to access
// artifactory. If not, follow the instructions below.
import React from 'react';
// Typically, you can import from the full library.
import { Button } from '@prism/library'
import '@prism/styles/prism.comps.min.css';
// or '@prism/styles/prism/button.min.css'
function MyComponent() {
return <Button variant="primary">Click Me</Button>
}
Using PRISM in Your Project
In the following section, we will:
- Setup your project to be able to access artifactory
- Install PRISM packages (individually or the entire library)
- Use PRISM Styles and Components in your project
The PRISM javascript library is available as a single bundle or as individual components.
PRISM provides packages as CommonJS (CJS), ES Module (ESM), Immediately-invoked Function Expressions (IIFE), and SystemJS (SJS). The type of module used is often determined by the environment using the package, but each module type is available for direct use if needed.
In modern javascript applications, like create-react-app
, PRISM will support code-splitting/lazy loading. However, this feature is still under development, so the best way to get only the code you want is to install individual
components (i.e. @prism/button
).
Using Artifactory
Using the artifactory credentials script
To use Prism in a React project, you will first need to setup npm/yarn to use the artifactory registry for Prism packages. We have created a script to help you get your artifcatory credentials and setup your .npmrc
file.
To use the artifactory credentials script, you will need to either clone the Prism repository on to your local machine or download the artifcatory credentials script file Once the script is on your machine, you can execute it in your terminal by running:
sudo ./scripts/get_artifactory_creds.sh
The script will walk you through the process of getting your artifactory token, which you will use to complete your .npmrc
file.
Updating Your .npmrc
In order to install and use the Prism node modules, you will need to configure your package manager to use the artifactory registry. An easy way to do this is by using the .npmrc
. This file is used to configure npm OR yarn to download @prism packages from the artifactory registry. If you are using yarn, the .npmrc
will work just fine. You won't need a .yarnrc
.
For this example, we will use an .npmrc
in the project's root directory. Copy the example .npmrc into the root directory of your project and rename the file to .npmrc
. Export the ARTIFACTORY_EMAIL
and ARTIFACTORY_TOKEN
generated by the artifactory credentials script into your system environment, like so:
export ARTIFACTORY_EMAIL=************** && export ARTIFACTORY_TOKEN=**************
Now, your package manager is ready to install @prism packages from artifactory.
Installing Prism
Installing the Prism Styles Package
Prism relies on css styles that are not packaged with the components or the library, so you will need to install them in your project prior to using the components.
yarn add @prism/styles
Once installed, you will need to import the styles into your project's entrypoint. Typically, this is a file at the root of your project directory or project src
directory, called index.js
, App.js
, or Main.js
. In the top of your entrypoint file, include the following line:
import '@prism/styles/prism.comps.min.css';
import '@prism/styles/icon-font.min.css'; // only if using @prism/icons without SVG.
If your project utilizes scss and you would like to import prism styles through your own scss pipeline, you may use @prism/scss
, which includes all Sass files from the framework and all available themes.
Installing Prism Component Packages
Prism is a modular library, so you can import individual components (recommended) OR the entire prism library into your project.
Individual components can be installed using:
yarn add @prism/button
The entire library can be installed using*:
yarn add @prism/library openseadragon
*When you install the library, you will need to also install the openseadragon module as a dependency of the multimedia viewer. This will be updated in a future release to remove this requirement.
Using PRISM
You will need to import the component in the file where you intend to use the component.
If you installed an individual component:
import Button from @prism/button
If you installed the entire library:
import { Button } from @prism/library
That's it! Now you're using PRISM in your project!
Contributing to PRISM
If you would like to make PRISM better, contributions can be made via pull request on Github.
- Github
- Site/Code Organization
- Contributing Best Practices
Developer Resources
Product Managers, Business Stakeholders, and Everyone Else
What is a design system?
Our PRISM design system is a coherent set of reusable, coded components, branding elements, and interaction patterns that can be combined in different ways to create digital products. Think of it as a set of digital LEGO® bricks that your team uses to build amazing, fully interactive client experiences.
How does a design system benefit our clients?
Every component in the design system has been carefully thought out, built to exacting standards, and exhaustively tested. Out of the box, they include such built-in benefits as responsive design (they work well on both desktop and mobile) and hooks for analytics tagging. When we build all of our products using a design system, they share a common look and feel and work together seamlessly, so even new products feel familiar and easy to use.
Take a few minutes to peruse PRISM elements and components for inspiration on how you can evolve the user experience of your product. To learn more about how PRISM can benefit your users and development teams, contact prism@coxautoinc.com, or post a message on the #prism-community Slack channel.
Benefits of PRISM
- Efficiency - A build-it once model for most common components
- Velocity - Prebuilt components lets designers and developers work more quickly
- High-quality Code - Components are rigorously tested and embody our standards
- Seamless Experience - Familiar interfaces across products builds client confidence
- Cost Savings - We don't pay to design, build, test, or maintain duplicate components
- Rigor - Our governance model guides enhancements and additions to the system