From 6b1e9a25afcc764630f8063176524a5ffbf3d797 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 15:26:37 +0000 Subject: [PATCH] Add responsive design --- docs/RESPONSIVE.md | 324 +++++++++++++++++++++++++++++ src/components/DashboardLayout.tsx | 82 ++++---- src/components/ExploreSection.tsx | 8 +- src/components/PlacesSection.tsx | 8 +- src/hooks/useResponsive.tsx | 75 +++++++ src/middleware/responsiveAPI.ts | 103 +++++++++ src/utils/responsive.ts | 93 +++++++++ 7 files changed, 646 insertions(+), 47 deletions(-) create mode 100644 docs/RESPONSIVE.md create mode 100644 src/hooks/useResponsive.tsx create mode 100644 src/middleware/responsiveAPI.ts create mode 100644 src/utils/responsive.ts diff --git a/docs/RESPONSIVE.md b/docs/RESPONSIVE.md new file mode 100644 index 0000000..05dd051 --- /dev/null +++ b/docs/RESPONSIVE.md @@ -0,0 +1,324 @@ +# Responsive Design Documentation + +## Overview + +Karibeo está completamente optimizado para funcionar en dispositivos móviles, tablets y escritorio. Esta documentación detalla las estrategias de diseño responsivo implementadas. + +## Breakpoints + +El proyecto utiliza breakpoints estándar de Tailwind CSS: + +```typescript +const BREAKPOINTS = { + mobile: 768, // < 768px + tablet: 1024, // 768px - 1023px + desktop: 1280, // 1024px - 1279px + largeDesktop: 1280+ // >= 1280px +} +``` + +## Hooks Personalizados + +### useResponsive + +Hook para detectar el breakpoint actual: + +```typescript +import { useResponsive } from '@/hooks/useResponsive'; + +const { isMobile, isTablet, isDesktop, width } = useResponsive(); +``` + +### useOrientation + +Hook para detectar orientación del dispositivo: + +```typescript +import { useOrientation } from '@/hooks/useResponsive'; + +const orientation = useOrientation(); // 'portrait' | 'landscape' +``` + +## Frontend Responsive + +### Dashboard Layout + +- **Sidebar**: Oculto en móvil, colapsable en desktop +- **Top Navigation**: Componentes adaptados según tamaño de pantalla +- **Content Area**: Padding responsive (3 en móvil, 6 en desktop) + +```tsx +// Ejemplo de uso +
+```
+
+## Accesibilidad
+
+### Viewport Meta Tag
+
+Ya incluido en index.html:
+
+```html
+
+```
+
+### Focus States
+
+Asegurar estados de focus visibles:
+
+```tsx
+