Easy UI
Easy UI is a component library designed to help developers create the best experience for shippers who use EasyPost.
Getting Started
- Install Easy UI using npm or your project's package manager:
npm install @easypost/easy-ui --save
- Include the Easy UI CSS file in your app entry point:
import "@easypost/easy-ui/style.css";
- Render your app inside the Easy UI
Provider
:
import { Provider as EasyUIProvider } from "@easypost/easy-ui/Provider";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<EasyUIProvider>
<App />
</EasyUIProvider>,
);
import { VerticalStack } from "@easypost/easy-ui/VerticalStack";
import { Button } from "@easypost/easy-ui/Button";
function App() {
return (
<VerticalStack>
<Button>Click me!</Button>
</VerticalStack>
);
}
See our Storybook for detailed component documentation.
Fonts
Easy UI uses Poppins
font. You can host it yourself or use Google Fonts. For hosting it yourself, Poppins
is included in .storybook/public/fonts/poppins
.
If hosting yourself, include this declaration in your stylesheets, replacing the path with wherever the fonts are located:
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 300;
font-display: swap;
src:
url("/fonts/poppins/poppins-v20-latin-300.woff2") format("woff2"),
url("/fonts/poppins/poppins-v20-latin-300.woff") format("woff");
}
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 400;
font-display: swap;
src:
url("/fonts/poppins/poppins-v20-latin-400.woff2") format("woff2"),
url("/fonts/poppins/poppins-v20-latin-400.woff") format("woff");
}
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 500;
font-display: swap;
src:
url("/fonts/poppins/poppins-v20-latin-500.woff2") format("woff2"),
url("/fonts/poppins/poppins-v20-latin-500.woff") format("woff");
}
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 600;
font-display: swap;
src:
url("/fonts/poppins/poppins-v20-latin-600.woff2") format("woff2"),
url("/fonts/poppins/poppins-v20-latin-600.woff") format("woff");
}
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 700;
font-display: swap;
src:
url("/fonts/poppins/poppins-v20-latin-700.woff2") format("woff2"),
url("/fonts/poppins/poppins-v20-latin-700.woff") format("woff");
}
Server Rendering
When server rendering an app that uses Easy UI and React <18, your app must be wrapped with a single instance of React Aria's SSRProvider
. If an app is using an additional version of React Aria, ensure there's only one version of @react-aria/ssr
using NPM's overrides
or Yarn's resolutions
property.
Development
We use Storybook to create a simple, hot-reloading playground for development on these components.
Commands
npm run build | Builds the project |
npm run clean | Removes temp directories |
npm run lint | Lints the project (ESLint, Stylelint, Prettier) |
npm run test | Tests the project |
npm run test:watch | Tests the project in watch mod |