UNPKG

@anpdgovbr/shared-ui

Version:

Biblioteca de componentes React com MUI v7 e padrão GovBR-ds para ANPD

979 lines 31.3 kB
/** * Sistema de Z-Index e Animações do GovBR Design System * * @security Camadas z-index organizadas previnem conflitos de sobreposição * @resilience Durações padronizadas garantem animações acessíveis (WCAG 2.1) * * Define camadas organizadas de z-index e propriedades de animação * baseadas no design system oficial para consistência visual. */ /** * Camadas de z-index organizadas * * Sistema de camadas para controlar a sobreposição de elementos * de forma consistente e previsível. */ export declare const zLayers: { readonly base: 0; readonly dropdown: 1000; readonly modal: 2000; readonly notification: 3000; readonly critical: 4000; readonly toast: 5000; }; /** * Tokens CSS de z-index */ export declare const zIndexTokens: { readonly '--z-index-layer-0': 0; readonly '--z-index-layer-1': 1000; readonly '--z-index-layer-2': 2000; readonly '--z-index-layer-3': 3000; readonly '--z-index-layer-4': 4000; readonly '--z-index-layer-5': 5000; }; /** * Durações de animação padronizadas */ export declare const animationDurations: { readonly instant: "50ms"; readonly quick: "150ms"; readonly base: "250ms"; readonly slow: "500ms"; readonly slowest: "800ms"; }; /** * Curvas de animação (easing functions) */ export declare const animationEasings: { readonly linear: "linear"; readonly base: "ease-out"; readonly accelerate: "cubic-bezier(0.4, 0, 1, 1)"; readonly decelerate: "cubic-bezier(0, 0, 0.2, 1)"; readonly ease: "cubic-bezier(0.4, 0, 0.2, 1)"; readonly bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)"; readonly elastic: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"; }; /** * Propriedades de movimento/transform */ export declare const motionProperties: { readonly translate: { readonly sm: "4px"; readonly md: "8px"; readonly lg: "16px"; readonly xl: "32px"; }; readonly scale: { readonly sm: 0.95; readonly md: 0.9; readonly lg: 0.8; readonly grow: 1.05; readonly growLg: 1.1; }; readonly rotate: { readonly sm: "2deg"; readonly md: "5deg"; readonly lg: "10deg"; readonly quarter: "90deg"; readonly half: "180deg"; }; }; /** * Tokens CSS de animação compilados */ export declare const animationTokens: { readonly '--duration-instant': "50ms"; readonly '--duration-quick': "150ms"; readonly '--duration-base': "250ms"; readonly '--duration-slow': "500ms"; readonly '--duration-slowest': "800ms"; readonly '--animation-easing-linear': "linear"; readonly '--animation-easing-base': "ease-out"; readonly '--animation-easing-accelerate': "cubic-bezier(0.4, 0, 1, 1)"; readonly '--animation-easing-decelerate': "cubic-bezier(0, 0, 0.2, 1)"; readonly '--animation-easing-ease': "cubic-bezier(0.4, 0, 0.2, 1)"; readonly '--animation-easing-bounce': "cubic-bezier(0.68, -0.55, 0.265, 1.55)"; readonly '--animation-easing-elastic': "cubic-bezier(0.175, 0.885, 0.32, 1.275)"; }; /** * Animações pré-definidas comuns */ export declare const commonAnimations: { readonly fadeIn: { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; }; readonly fadeOut: { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; }; readonly slideInUp: { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; }; readonly slideInDown: { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; }; readonly slideInLeft: { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; }; readonly slideInRight: { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; }; readonly scaleIn: { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; }; readonly scaleOut: { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; }; readonly pulse: { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; }; readonly shake: { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; }; /** * Helpers para criar animações */ export declare const animationHelpers: { readonly transition: (property: string | string[], duration?: keyof typeof animationDurations, easing?: keyof typeof animationEasings) => string; readonly zIndex: (layer: keyof typeof zLayers) => { zIndex: 0 | 3000 | 4000 | 1000 | 2000 | 5000; }; readonly enterAnimation: (type: keyof typeof commonAnimations) => { '@keyframes enter': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; animation: string; }; readonly exitAnimation: (type: keyof typeof commonAnimations) => { '@keyframes exit': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; animation: string; }; }; /** * Mixins de animação para componentes específicos */ export declare const componentAnimations: { readonly button: { readonly hover: { readonly transition: string; readonly '&:hover': { readonly transform: "translateY(-4px)"; }; }; readonly pressed: { readonly '&:active': { readonly transform: "scale(0.95)"; readonly transition: string; }; }; }; readonly modal: { readonly backdrop: { readonly '@keyframes enter': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; readonly content: { readonly zIndex: 0 | 3000 | 4000 | 1000 | 2000 | 5000; readonly '@keyframes enter': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; }; readonly tooltip: { readonly enter: { readonly zIndex: 0 | 3000 | 4000 | 1000 | 2000 | 5000; readonly '@keyframes enter': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; readonly exit: { readonly '@keyframes exit': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; }; readonly notification: { readonly enter: { readonly zIndex: 0 | 3000 | 4000 | 1000 | 2000 | 5000; readonly '@keyframes enter': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; readonly exit: { readonly '@keyframes exit': { readonly from: { readonly opacity: 0; }; readonly to: { readonly opacity: 1; }; } | { readonly from: { readonly opacity: 1; }; readonly to: { readonly opacity: 0; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateY(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateY(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(-16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "translateX(16px)"; }; readonly to: { readonly opacity: 1; readonly transform: "translateX(0)"; }; } | { readonly from: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; readonly to: { readonly opacity: 1; readonly transform: "scale(1)"; }; } | { readonly from: { readonly opacity: 1; readonly transform: "scale(1)"; }; readonly to: { readonly opacity: 0; readonly transform: "scale(0.9)"; }; } | { readonly '0%': { readonly transform: "scale(1)"; }; readonly '50%': { readonly transform: "scale(1.05)"; }; readonly '100%': { readonly transform: "scale(1)"; }; } | { readonly '0%, 100%': { readonly transform: "translateX(0)"; }; readonly '25%': { readonly transform: "translateX(-4px)"; }; readonly '75%': { readonly transform: "translateX(4px)"; }; }; readonly animation: string; }; }; }; export type ZLayer = keyof typeof zLayers; export type AnimationDuration = keyof typeof animationDurations; export type AnimationEasing = keyof typeof animationEasings; export type CommonAnimation = keyof typeof commonAnimations; //# sourceMappingURL=motion.d.ts.map