Assets

SVGs, PNGs, imagens remotas e fontes usadas no app.

SVGs

SVGs importados diretamente como componentes React Native via react-native-svg-transformer. Configurado em metro.config.js.

ArquivoUsoDimensões
assets/embarko-logo.svgLogo no header da Home165×24
assets/favorito.svgIlustração hero da tela Favoritos (não logado)100% × 320px
assets/viagem-empty.svgIlustração estado vazio na tela Viagens240×240
// metro.config.js — habilitar SVG
const { getDefaultConfig } = require('expo/metro-config');
const config = getDefaultConfig(__dirname);
config.transformer.babelTransformerPath = require.resolve('react-native-svg-transformer');
config.resolver.assetExts = config.resolver.assetExts.filter(ext => ext !== 'svg');
config.resolver.sourceExts = [...config.resolver.sourceExts, 'svg'];
module.exports = config;

// Uso no componente
import EmbarkoLogo from '@/assets/embarko-logo.svg';
<EmbarkoLogo width={165} height={24} />

PNGs

ArquivoUsoTamanho
assets/icon.pngÍcone do app (app store)1024×1024
assets/splash.pngSplash screen1284×2778
assets/adaptive-icon.pngÍcone adaptativo Android1024×1024
assets/favicon.pngFavicon web48×48
assets/providers/*.pngLogos de companhias aéreas e providers80×80

Imagens remotas

Carregadas dinamicamente via URL. Sempre usar FastImage ou <Image /> do Expo com contentFit="cover".

RecursoURL Pattern
Fotos de cidades (Unsplash)https://images.unsplash.com/photo-ID?w=640&q=80
Imagens de passeios (Viator)https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/...
Imagens de passeios (Tiqets)https://cdn.tiqets.com/...
Imagens de shows (Ticketmaster)https://s1.ticketm.net/dam/a/...
Logos de companhias aéreashttps://pics.avs.io/80/80/{iataCode}.png

Fontes

Família General Sans. Carregadas via expo-font em app/_layout.tsx. No web, usar string CSS completa (não as constantes do FontFamily).

ArquivoPesoFontFamily key
GeneralSans-Regular.otf400Regular
GeneralSans-Medium.otf500Medium
GeneralSans-Semibold.otf600Semibold
GeneralSans-Bold.otf700Bold
// Web: usar string CSS completa
fontFamily: "'General Sans', sans-serif"

// Mobile: usar constante
import { FontFamily } from '@/constants/theme';
fontFamily: FontFamily.Semibold   // "GeneralSans-Semibold"

// _layout.tsx — carregamento
const [fontsLoaded] = useFonts({
  'GeneralSans-Regular':  require('@/assets/fonts/GeneralSans-Regular.otf'),
  'GeneralSans-Medium':   require('@/assets/fonts/GeneralSans-Medium.otf'),
  'GeneralSans-Semibold': require('@/assets/fonts/GeneralSans-Semibold.otf'),
  'GeneralSans-Bold':     require('@/assets/fonts/GeneralSans-Bold.otf'),
});