UNPKG

vj-ui-components

Version:

A collection of beautiful, customizable React UI components including versatile navigation with dual layout support (sidebar/top), stylish input fields with icon support, advanced search with recommendations and autocomplete, elegant modals with animation

319 lines (269 loc) 5.63 kB
/* Tags Component Styles */ .tags-container { width: 100%; } .tags-list { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; } /* Base Tag Styles */ .tag { display: inline-flex; align-items: center; gap: 0.25rem; border-radius: 9999px; font-weight: 500; transition: all 0.2s ease-in-out; white-space: nowrap; user-select: none; } /* Size Variants */ .tags-small { padding: 0.25rem 0.5rem; font-size: 0.75rem; line-height: 1rem; } .tags-medium { padding: 0.375rem 0.75rem; font-size: 0.875rem; line-height: 1.25rem; } .tags-large { padding: 0.5rem 1rem; font-size: 1rem; line-height: 1.5rem; } /* Color Variants */ .tags-blue.tags-default { background-color: #dbeafe; color: #1e40af; border: 1px solid #3b82f6; } .tags-blue.tags-outlined { background-color: transparent; color: #3b82f6; border: 1px solid #3b82f6; } .tags-blue.tags-filled { background-color: #3b82f6; color: white; border: 1px solid #3b82f6; } .tags-blue.tags-minimal { background-color: #f1f5f9; color: #3b82f6; border: none; } .tags-green.tags-default { background-color: #dcfce7; color: #166534; border: 1px solid #22c55e; } .tags-green.tags-outlined { background-color: transparent; color: #22c55e; border: 1px solid #22c55e; } .tags-green.tags-filled { background-color: #22c55e; color: white; border: 1px solid #22c55e; } .tags-green.tags-minimal { background-color: #f0fdf4; color: #22c55e; border: none; } .tags-red.tags-default { background-color: #fee2e2; color: #dc2626; border: 1px solid #ef4444; } .tags-red.tags-outlined { background-color: transparent; color: #ef4444; border: 1px solid #ef4444; } .tags-red.tags-filled { background-color: #ef4444; color: white; border: 1px solid #ef4444; } .tags-red.tags-minimal { background-color: #fef2f2; color: #ef4444; border: none; } .tags-yellow.tags-default { background-color: #fef3c7; color: #d97706; border: 1px solid #f59e0b; } .tags-yellow.tags-outlined { background-color: transparent; color: #f59e0b; border: 1px solid #f59e0b; } .tags-yellow.tags-filled { background-color: #f59e0b; color: white; border: 1px solid #f59e0b; } .tags-yellow.tags-minimal { background-color: #fffbeb; color: #f59e0b; border: none; } .tags-purple.tags-default { background-color: #ede9fe; color: #7c3aed; border: 1px solid #8b5cf6; } .tags-purple.tags-outlined { background-color: transparent; color: #8b5cf6; border: 1px solid #8b5cf6; } .tags-purple.tags-filled { background-color: #8b5cf6; color: white; border: 1px solid #8b5cf6; } .tags-purple.tags-minimal { background-color: #faf5ff; color: #8b5cf6; border: none; } .tags-pink.tags-default { background-color: #fce7f3; color: #be185d; border: 1px solid #ec4899; } .tags-pink.tags-outlined { background-color: transparent; color: #ec4899; border: 1px solid #ec4899; } .tags-pink.tags-filled { background-color: #ec4899; color: white; border: 1px solid #ec4899; } .tags-pink.tags-minimal { background-color: #fdf2f8; color: #ec4899; border: none; } .tags-gray.tags-default { background-color: #f3f4f6; color: #374151; border: 1px solid #6b7280; } .tags-gray.tags-outlined { background-color: transparent; color: #6b7280; border: 1px solid #6b7280; } .tags-gray.tags-filled { background-color: #6b7280; color: white; border: 1px solid #6b7280; } .tags-gray.tags-minimal { background-color: #f9fafb; color: #6b7280; border: none; } /* Interactive States */ .tag-clickable { cursor: pointer; } .tag-clickable:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .tag-removable { padding-right: 0.25rem; } /* Remove Button */ .tag-remove { display: flex; align-items: center; justify-content: center; width: 1rem; height: 1rem; border: none; background: none; cursor: pointer; font-size: 1rem; line-height: 1; color: inherit; opacity: 0.7; border-radius: 50%; transition: all 0.2s ease-in-out; } .tag-remove:hover { opacity: 1; background-color: rgba(0, 0, 0, 0.1); } /* Input Field */ .tag-input { border: 1px solid #d1d5db; border-radius: 9999px; background-color: white; outline: none; transition: border-color 0.2s ease-in-out; min-width: 120px; } .tag-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Add Button */ .tag-add-button { border: 1px dashed #d1d5db; border-radius: 9999px; background-color: transparent; cursor: pointer; transition: all 0.2s ease-in-out; font-weight: 500; } .tag-add-button:hover:not(:disabled) { border-color: #3b82f6; color: #3b82f6; background-color: #f8fafc; } .tag-add-button:disabled { opacity: 0.5; cursor: not-allowed; } /* Counter */ .tags-counter { margin-top: 0.5rem; font-size: 0.75rem; color: #6b7280; text-align: right; } /* Responsive Design */ @media (max-width: 640px) { .tags-list { gap: 0.375rem; } .tags-small { padding: 0.2rem 0.4rem; font-size: 0.7rem; } .tags-medium { padding: 0.3rem 0.6rem; font-size: 0.8rem; } .tags-large { padding: 0.4rem 0.8rem; font-size: 0.9rem; } .tag-input { min-width: 100px; } }