The foundation for beautiful user interfaces.
Peacock gives you the tools and foundation to build beautiful, usable product interfaces. Itβs the system you use to craft your own component library.
Peacock is more than just a collection of components; it is an aesthetic philosophy. Like its avian namesake, it provides the core elements (the primitives) that allow the full, vibrant display (the design) to be unveiled.
Opinionated Beauty: We deliver pre-styled, beautiful components that follow modern design trends, significantly reducing the boilerplate needed to achieve a professional look.
Foundation First: Similar to projects like shadcn/ui, Peacock focuses on providing the foundational primitives, ensuring maximum flexibility for customization without sacrificing initial polish.
Seamless Integration: Designed with modern web frameworks in mind (e.g., React, Vue), integrating Peacock into your existing project structure is fast, efficient, and empowering.
Vibrant & Consistent Design System: Every componentβfrom buttons and cards to complex data tablesβshares a cohesive, high-quality visual language.
Highly Extensible: The component structure is designed for easy overwriting and theme customization, allowing you to quickly adapt the style to your specific brand identity.
Built for Accessibility: Focus on semantic HTML and proper ARIA attributes to ensure that your beautiful interfaces are accessible to all users.
Responsive by Default: Components are built with responsiveness baked in, guaranteeing a graceful display across all screen sizes and devices.
Visit https://peacock.redvars.com to view the documentation.
- Put a script tag similar to
this
<script type="module" src="https://cdn.jsdelivr.net/npm/@goatui/components@2.0.0-0/dist/goatui/goatui.esm.js"></script>in the head of your index.html - Include default font Roboto in the page
- Then you can use the element anywhere in your template, JSX, html etc
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width' />
<title>Goat UI Component</title>
<!-- include your custom theme variable values, view variable names at https://cdn.jsdelivr.net/npm/@goatui/components@2.0.0-0/dist/goatui/assets/styles/theme.css -->
<!--link rel="stylesheet" href="/custom-theme.css"></link-->
<script type='module'
src='https://cdn.jsdelivr.net/npm/@goatui/components@2.0.0-0/dist/goatui/goatui.esm.js'></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&family=IBM+Plex+Sans+Condensed:ital@0;1&family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Serif:ital@0;1&display=swap');
:root {
--font-family-base: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
}
</style>
</head>
<body>
<goat-button size='lg' color='primary'>Click me</goat-button>
</body>
</html>- π’ ready (feature complete for now)
- π‘ beta (changes possible, not feature complete)
- π΄ not ready (unstyled / no functions)
- π΅ planned (created, but empty files)
Input controls are UI design elements that allow users to input information into the system. They are essential for collecting data and enabling user interactions. Some common examples of input controls include text fields, dropdown menus, checkboxes, and radio buttons.
| Name | Component | State |
|---|---|---|
| Code editor | goat-card-editor | π’ |
| Color picker | goat-color-picker | π΄ |
| Checkbox | goat-checkbox | π’ |
| Date picker | goat-date-picker | π‘ |
| Date Time picker | goat-datetime-picker | π΄ |
| Form control | goat-form-control | π‘ |
| File picker | goat-file-picker | π΄ |
| HTML editor | goat-html-editor | π’ |
| Input | pc-input | π’ |
| Input URL | pc-input-url | π’ |
| Month picker | goat-month-picker | π΄ |
| Number | goat-number | π’ |
| Select | goat-select | π’ |
| Textarea | goat-textarea | π’ |
| Time picker | goat-time-picker | π‘ |
| URL input | goat-url-input. | π΄ |
| Week picker | goat-week-picker | π΄ |
Navigational components are UI elements that help users move around the app or website. They provide users with a clear and intuitive way to navigate through different sections and pages. Some common examples of navigational components include menus, tabs, and breadcrumbs.
| Name | Component | State |
|---|---|---|
| Breadcrumb | pc-breadcrumb | π’ |
| Dropdown | pc-dropdown | π‘ |
| Menu | pc-menu | π‘ |
| Tabs | pc-tabs | π’ |
Informational components are UI elements that provide information to users. They communicate important messages, updates, or instructions within the app or website. Some common examples of informational components include notifications, tooltips, and progress bars.
| Name | Component | State |
|---|---|---|
| Badge | goat-badge | π’ |
| Progress | goat-progress | π’ |
| Spinner | pc-spinner | π’ |
| Tooltip | pc-tooltip | π’ |
| Notification | pc-notification | π’ |
| Notification Manager | pc-notification-manager | π’ |
Containers are UI elements that group similar content together, making it easier for users to navigate and scan through the interface. Examples of common containers include cards, carousels, and accordions, which provide structure and organization to the content.
| Name | Component | State |
|---|---|---|
| Accordion | pc-accordion | π’ |
| Card | goat-card | π‘ |
These components are used for general purpose. They include
| Name | Component | State |
|---|---|---|
| Avatar | pc-avatar | π’ |
| Button | goat-button | π’ |
| Button Group | goat-button-group | π’ |
| Calendar | pc-calendar | π’ |
| Card Select | goat-cardselect | π΄ |
| Code Highlighter | goat-card-highlighter | π’ |
| Column | goat-col | π΄ |
| Empty State | pc-empty-state | π‘ |
| Flow Designer | goat-flow-designer | π΅ |
| Grid | goat-grid | π΄ |
| Group | goat-group | π΄ |
| Header | goat-header | π’ |
| Icon | pc-icon | π’ |
| Link | goat-link | π’ |
| Modal | pc-modal | π’ |
| Notification Manager | pc-notification-manager | π‘ |
| Observer | goat-observer | π΄ |
| Pagination | goat-pagination | π΄ |
| Radio Group | goat-radiogroup | π΄ |
| Row | goat-row | π΄ |
| Slider | goat-slider | π‘ |
| Spoiler | goat-spoiler | π΄ |
| Stepper | goat-stepper | π΄ |
| Table | pc-table | π‘ |
| Tag / Chip | pc-tag | π’ |
| Text | pc-text | π’ |
| Tree View | pc-tree-view | π‘ |
| Toggle | pc-toggle | π’ |
These components are used to display data in a graphical format. They include
| Name | Component | State |
|---|---|---|
| Doughnut Chart | pc-chart-doughnut | π’ |
| Pie Chart | pc-chart-pie | π’ |
Peacock is open-source software licensed under the Apache-2.0 License.
Made with π by shivajivarma.
