Skip to content

redvars/peacock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Peacock

The foundation for beautiful user interfaces.

Build GitHub license Version

Peacock LOGO

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.

What is Peacock?

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.

Key Features

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.

Documentation

Visit https://peacock.redvars.com to view the documentation.

Getting Started

Script tag

  • 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>

Components

  • 🟒 ready (feature complete for now)
  • 🟑 beta (changes possible, not feature complete)
  • πŸ”΄ not ready (unstyled / no functions)
  • πŸ”΅ planned (created, but empty files)

Input Controls

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 πŸ”΄

Navigation

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

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

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 🟑

General

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 🟒

Charts

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 🟒

πŸ“„ License

Peacock is open-source software licensed under the Apache-2.0 License.


Made with πŸ’– by shivajivarma.

About

The foundation for beautiful user interfaces.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project