Files
Todo/components/NewListButton.tsx
Paul Bailey a037117b15 feat: implement responsive design enhancements
- Add touch-optimized tap targets (44x44px minimum for iOS)
- Enhance mobile responsiveness across all components
- Improve button sizing and spacing for touch interactions
- Add responsive text sizing and layout adjustments
- Implement mobile-first modal behavior (bottom sheet on mobile)
- Enhance form controls with better touch targets
- Add active states for better touch feedback
- Improve grid layouts for various screen sizes
- Add smooth scrolling and better focus states
- Optimize FilterPanel for mobile with grid layouts
- Enhance all interactive elements with tap-target classes

Requirements: 7.1, 7.2
2025-12-01 20:54:54 +00:00

35 lines
1.0 KiB
TypeScript

'use client'
import { useState } from 'react'
import { PlusIcon } from 'lucide-react'
import Modal from './Modal'
import ListForm from './ListForm'
export default function NewListButton() {
const [isModalOpen, setIsModalOpen] = useState(false)
return (
<>
<button
onClick={() => setIsModalOpen(true)}
className="bg-blue-500 hover:bg-blue-600 active:bg-blue-700 text-white px-4 sm:px-6 py-3 rounded-lg flex items-center gap-2 transition-colors tap-target shadow-sm hover:shadow-md text-sm sm:text-base font-medium"
>
<PlusIcon size={20} className="flex-shrink-0" />
<span className="hidden xs:inline sm:inline">New List</span>
<span className="xs:hidden sm:hidden">New</span>
</button>
<Modal
isOpen={isModalOpen}
onClose={() => setIsModalOpen(false)}
title="Create New List"
>
<ListForm
onCancel={() => setIsModalOpen(false)}
onSuccess={() => setIsModalOpen(false)}
/>
</Modal>
</>
)
}