Overlay - Tamanos
OverlayLos tamanos controlan el ancho maximo del panel overlay usando clases responsivas de Tailwind CSS.
Demo en vivo
Compara los diferentes tamanos abriendo el mismo overlay con distintos tamanoss.
Tamanos disponibles
Once tamanos que usan clases max-w-* responsivas para adaptarse a diferentes breakpoints.
| Tamano | Clases CSS |
|---|---|
sm | sm:max-w-sm |
md | sm:max-w-md |
lg | sm:max-w-md md:max-w-lg |
xl | sm:max-w-md md:max-w-xl |
2xl | sm:max-w-md md:max-w-xl lg:max-w-2xl |
3xl | sm:max-w-md md:max-w-xl lg:max-w-3xl |
4xl | sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl |
5xl | sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl |
6xl | sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl |
7xl | sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl |
full | max-w-full |
Como funcionan
En mobile (debajo del breakpoint sm) todo overlay es full-width. A medida que el viewport crece, el max-width se expande progresivamente.
Ejemplo: overlay con tamano 5xl
< sm: ancho completo
sm: max-w-md (28rem)
md: max-w-xl (36rem)
lg: max-w-3xl (48rem)
xl: max-w-5xl (64rem)
Si el tamano solicitado no es reconocido, hace fallback a 2xl.
Definir el tamano
Sobreescribe el metodo estatico overlaySize() en tu componente.
use KoreUi\Overlay\OverlayComponent;
class QuickAction extends OverlayComponent
{
public static function overlaySize(): string
{
return 'sm';
}
public function render()
{
return view('livewire.overlays.quick-action');
}
}use KoreUi\Overlay\OverlayComponent;
class QuickAction extends OverlayComponent
{
public static function overlaySize(): string
{
return 'sm';
}
public function render()
{
return view('livewire.overlays.quick-action');
}
}El tamano por defecto, si no se sobreescribe, es 2xl (configurable en config/kore-ui.php).
Tamanos por tipo
El tamano controla max-width en el panel del overlay, aplicable a todos los tipos.
Modal: restringe el ancho del dialogo centrado.
Drawer: restringe el ancho del panel lateral.
Confirm: restringe el ancho del dialogo de confirmacion.
Bottom Sheet: restringe el ancho de la hoja inferior.
Fullscreen: normalmente usa full para llenar el viewport.
class WideDrawer extends OverlayComponent
{
public static function overlayType(): string
{
return 'drawer';
}
public static function overlaySize(): string
{
return '4xl';
}
public function render()
{
return view('livewire.overlays.wide-drawer');
}
}class WideDrawer extends OverlayComponent
{
public static function overlayType(): string
{
return 'drawer';
}
public static function overlaySize(): string
{
return '4xl';
}
public function render()
{
return view('livewire.overlays.wide-drawer');
}
}Override en runtime
Puedes sobreescribir el tamano al momento de abrir sin modificar el componente.
{{-- Abrir pequeno --}}
<button x-on:click="$dispatch('kore:open', {
name: 'overlays.edit-form',
overlayAttributes: { size: 'lg' }
})">
Abrir (pequeno)
</button>
{{-- Abrir grande --}}
<button x-on:click="$dispatch('kore:open', {
name: 'overlays.edit-form',
overlayAttributes: { size: '5xl' }
})">
Abrir (grande)
</button>{{-- Abrir pequeno --}}
<button x-on:click="$dispatch('kore:open', {
name: 'overlays.edit-form',
overlayAttributes: { size: 'lg' }
})">
Abrir (pequeno)
</button>
{{-- Abrir grande --}}
<button x-on:click="$dispatch('kore:open', {
name: 'overlays.edit-form',
overlayAttributes: { size: '5xl' }
})">
Abrir (grande)
</button>Cuando sobreescribes size via overlayAttributes, el sizeClass se recalcula automaticamente desde el nuevo valor por el OverlayManager.