- A unified set of React components for consistent styling across gemmology.dev.
- All components are available from @/components/ui.
-
Container component with optional hover effects and subcomponents.
- -Card content goes here.
-Hover over me to see the effect.
-{`import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui';
-
-
-
- Title
- Description
-
- Content
- Footer
-
-
-// As a link
-Clickable card `}
- Small labels for categorization, status, and metadata.
- -Styled container for icons with color variants.
- -{`import { IconBox } from '@/components/ui';
-
-
-
- `}
- Specialized badge for indicating content difficulty levels.
- -{`import { DifficultyBadge } from '@/components/ui';
-
-
-
- `}
- Layout wrapper with consistent max-width and padding.
- -size="sm" → max-w-3xl
- size="md" → max-w-4xl
- size="lg" → max-w-6xl
- size="xl" → max-w-7xl (default)
- {`import { Container } from '@/components/ui';
-
-
- Content with max-w-7xl and medium padding
-
-
-
- Section with max-w-3xl and large padding
- `}
- Consistent section title and description pattern.
- -{`import { SectionHeader } from '@/components/ui';
-
- `}
- Styled anchor element with variants and arrow option.
- -{`import { Link } from '@/components/ui';
-
-
- Go to page
-
-
-
- External site
-`}
- Unified table component with multiple variants.
- -{`import { Table, DataTable, PropertyTable } from '@/components/ui';
-
-// Simple data table
-
-
-// Key-value property table
- `}
- Core color palette and typography scale.
- -Best practices for using the component library.
- -import {'{'} Button, Card, Badge {'}'} from '@/components/ui';
-
- <Button variant="primary"> not .btn-primary<Card> not raw border/shadow classes<Badge variant="crystal"> with the variant prop<IconBox> not manual flexbox containers<SectionHeader> for centered titles<Container> for max-width and paddingimport {'{'} cn {'}'} from '@/components/ui';
-className={'{'}cn('base-class', conditional && 'conditional-class', className){'}'}
-