IKHSAN
EN Read in EnglishID

snapme

Publik
Branch
master
Commit terakhir
130fdb828 Oktober 2026

ShutterButton.tsx

Buka raw
"use client"

import { Camera } from "@phosphor-icons/react"

import { cn } from "@/lib/utils"

/* DESIGN-SYSTEM §9: lingkaran 76 px tangerine dengan garis 3 px paper dan ikon kamera 34 px.
   DESIGN-SYSTEM §7: tekan = hover geser -1,-1 px, aktif geser 4,4 px, 120 ms.
   Latar tombol adalah panggung `ink`, jadi bayangan keras tidak terpakai di sini. */
export function ShutterButton({
  onShoot,
  disabled,
}: {
  onShoot: () => void
  disabled?: boolean
}) {
  return (
    <button
      type="button"
      onClick={onShoot}
      disabled={disabled}
      aria-label="Ambil foto"
      className={cn(
        "flex size-19 shrink-0 items-center justify-center rounded-full border-3 border-paper bg-tangerine text-ink",
        "transition-transform duration-[120ms] hover:-translate-x-px hover:-translate-y-px active:translate-x-1 active:translate-y-1",
        "focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-lime",
        "disabled:pointer-events-none disabled:border-dashed disabled:bg-cream disabled:text-muted"
      )}
    >
      <Camera weight="bold" className="size-[34px]" aria-hidden />
    </button>
  )
}
byte
1.157
baris
34
Jenis
tsx
Commit terakhir
28 Oktober 2026