@olivier808s/tribe-components
v4.1.2
Published
A Vue 3 component library with 30+ reusable, themeable UI components
Downloads
113
Maintainers
Readme
Tribe Components
A Vue 3 component library with 30+ reusable, themeable UI components.
Installation
npm install @olivier808s/tribe-componentsSetup
Register all components globally:
import { createApp } from 'vue'
import TribeComponents from '@olivier808s/tribe-components'
import '@olivier808s/tribe-components/style.css'
const app = createApp(App)
app.use(TribeComponents)
app.mount('#app')Or import components individually:
import { Button, Card, Modal } from '@olivier808s/tribe-components'Components
Layout & Structure
Accordion— collapsible content sectionsCard— content containerTabs— tabbed navigationStepper— multi-step flow indicatorTableCard— table with card styling
Navigation
DropdownMenu— contextual menuDropdownOptions— option list dropdownHoverBox— hover-triggered contentTooltip— inline tooltip
Forms & Inputs
Textbox,Textarea— text input fieldsCheckbox,Radio,Toggle— boolean inputsSelect,Multiselect— single and multi-selectionDatePicker— date selectionNumberInput,CurrencyInput— numeric inputsFileButton,DragAndDropFiles,Dropzone— file upload
Display
Button,IconButton— action buttonsBadge,Tag,ClickableTag— labels and chipsAvatar,AvatarGroup— user avatarsParagraph— styled text blockLoader— loading indicatorCodeSnippet— formatted code displayAttachmentList,FileList— file listingsMediaCarousel,MediaInput— media handlingModal,ModalContent— modal dialogsToastContainer,ToastMessage— toast notifications
Utilities
TribeIcon— built-in SVG icon setStopPropagation— event propagation wrapper
Composables
import { useToast, useFiles, useIsHandheld } from '@olivier808s/tribe-components'useToast()— show and dismiss toast notificationsuseFiles()— file formatting utilities and readable file sizesuseIsHandheld()— detect handheld/mobile viewport (configurable breakpoint, default 800px)
Theming
Tribe Components uses Tailwind CSS v4 with a CSS variable-based theme. Override the following variables in your own CSS to customize the look:
@theme {
--color-primary: ...;
--color-secondary: ...;
--color-accent: ...;
--color-error: ...;
--color-success: ...;
--color-base: ...;
--color-card: ...;
--color-card-accent: ...;
--color-border: ...;
--color-dropdown: ...;
--color-dropdown-select: ...;
--color-quick-filter: ...;
--color-quick-filter-selected: ...;
--color-base-text: ...;
--color-secondary-text: ...;
--color-dropdown-text: ...;
}Dark mode is supported via Tailwind's class strategy — add the dark class to your root element.
CSS Exports
| Import path | Contents |
|---|---|
| .../style.css | Full library styles |
TypeScript
Full TypeScript support is included. Props, emits, slots, and shared types are all exported:
import type { ButtonVariant, TribeIconType } from '@olivier808s/tribe-components'Requirements
- Vue 3.2+
- Node 18+
License
MIT
