mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-28 03:00:29 -04:00
* improvement(landing, blog): SEO and GEO optimization * improvement(docs): ui/ux cleanup * chore(blog): remove unused buildBlogJsonLd export and wordCount schema field * fix(blog): stack related posts vertically on mobile and fill all suggestion slots - Add flex-col sm:flex-row and matching border classes to related posts nav for consistent mobile stacking with the main blog page - Remove score > 0 filter in getRelatedPosts so it falls back to recent posts when there aren't enough tag matches - Align description text color with main page cards
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { cva, type VariantProps } from 'class-variance-authority'
|
|
|
|
const variants = {
|
|
primary: 'bg-fd-primary text-fd-primary-foreground hover:bg-fd-primary/80',
|
|
outline: 'border hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
ghost: 'hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
secondary:
|
|
'border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground',
|
|
} as const
|
|
|
|
export const buttonVariants = cva(
|
|
'inline-flex items-center justify-center rounded-[5px] p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring',
|
|
{
|
|
variants: {
|
|
variant: variants,
|
|
color: variants,
|
|
size: {
|
|
sm: 'gap-1 px-2 py-1.5 text-xs',
|
|
icon: 'p-1.5 [&_svg]:size-5',
|
|
'icon-sm': 'p-1.5 [&_svg]:size-4.5',
|
|
'icon-xs': 'p-1 [&_svg]:size-4',
|
|
},
|
|
},
|
|
}
|
|
)
|
|
|
|
export type ButtonProps = VariantProps<typeof buttonVariants>
|