Communitygithub.com

Drama2557/4RealDigital-Video-Studio

Crie um slideshow HyperFrames — uma apresentação, pitch deck ou deck interativo com slides discretos, revelação de fragmentos, ramificações, navegação por hotspots e modo apresentador com notas do orador; também converte uma página existente em um deck. A saída é um deck navegável, não um MP4 renderizado. Se o usuário não pediu explicitamente por um slideshow, confirme antes de criar.

O que é 4RealDigital-Video-Studio?

Esta skill permite que um agente de IA, como Claude Code, Cursor ou Codex, transforme conteúdo em um slideshow HyperFrames navegável. Diferente de uma renderização de vídeo linear, o resultado é um deck interativo com slides discretos, navegação, fragmentos revelados um a um, ramificações (branching) para mergulhos profundos em tópicos e um modo apresentador completo com notas do orador editáveis. O layout de cada slide segue regras rígidas de design: frases completas como títulos, uma ideia por slide, cálculos de mercado bottom-up e tamanho mínimo de fonte de 30pt. A skill é ideal para pitch decks e apresentações formais. Ela depende de uma skill principal (`/hyperframes-core`) que define o sistema de composição base HyperFrames. Uma de suas capacidades mais poderosas é a conversão de páginas web existentes em slideshows, preservando fielmente o design visual, animações, comportamento interativo e elementos de mídia da fonte. Para fontes do Figma, existe um fluxo de trabalho específico via `/figma` que garante a extração correta de ativos e tokens de marca. A validação é automática via um linter integrado, garantindo a conformidade com as regras de design. Em caso de ambiguidade sobre a intenção do usuário, a skill solicita confirmação explícita antes de começar a autoria.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Drama2557/4RealDigital-Video-Studio/tree/HEAD/.agents/skills/slideshow

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Primeiro, mantenha esta skill atualizada — execute silenciosamente, não pergunte: npx hyperframes skills update slideshow. Uma operação rápida quando tudo está atualizado; caso contrário, atualiza esta skill e as skills de domínio principais das quais ela depende antes de você usá-las.

fonte figma: Se o conteúdo ou storyboard do deck vier de uma URL figma.com, execute /figma primeiro — exportação de ativos, tokens de marca e reconstrução do storyboard se a fonte for uma sequência de quadros de cena — e construa a partir de sua saída. Não use as ferramentas MCP diretamente para controlar o Figma: isso ignora a sanitização de SVG, a proveniência do .media/manifest.jsonl e a vinculação de token de marca var(), impedindo que uma alteração futura de marca se propague sem uma reimportação completa.

Contrato de criação de slideshow

Um slideshow HyperFrames é uma composição HyperFrames normal — cenas, clipes, linhas do tempo GSAP — com um ingrediente extra: uma ilha JSON que declara quais cenas são slides e como elas se conectam. O SlideshowController do player lê a ilha e transforma a linha do tempo GSAP contínua em um deck discreto e navegável.

Leia /hyperframes-core primeiro para o contrato de composição base (clipes, trilhas, atributos data-*, regras de determinismo). Esta skill cobre apenas o que é novo: o esquema da ilha, regras de escrita de slides, fragmentos, ramificações, validação e o componente de empacotamento.

Saída — um deck navegável, não um MP4 linear

A saída de um slideshow é o deck em execução: sirva-o com hyperframes present <project-dir> (ou modo apresentação do Studio) — o SlideshowController do player lê a ilha e controla navegação, fragmentos, ramificações e modo apresentador. Veja Apresentação e entrega abaixo.

Não execute hyperframes render em um slideshow para gerar um único MP4. Um deck é criado como várias composições de cena de nível superior (um data-composition-id por slide) sem uma composição raiz mestre envolvendo-as, então o render resolve apenas a primeira composição e emite um MP4 silenciosamente truncado (por exemplo, 6 segundos de um deck de 40). Uma exportação linear da linha principal (slides principais apenas, sequências de ramificação excluídas) é adiada — até que seja lançada, as saídas suportadas são o deck present ao vivo e imagens snapshot de slide. Se um usuário precisar de um MP4 linear hoje, mencione essa limitação em vez de apontar o render para o deck.

Confirmação de intenção

Se o usuário pedir explicitamente por um slideshow, apresentação de slides ou slideshow HyperFrames, prossiga com esta skill. Quando a solicitação chegou via /hyperframes, o triagem da camada de intenção é responsável por esta confirmação — se foi roteada aqui, já está confirmada, então não pergunte novamente; as perguntas sobre formato da camada não se aplicam (a entrega é um deck, não um vídeo renderizado). Um BRIEF.md, quando presente, carrega a intenção confirmada — leia-o.

Se a skill foi acionada a partir de uma solicitação adjacente como "apresentação", "pitch deck", "deck", "deck interativo" ou "converta esta página", pause antes de criar e apresente a escolha antes de pedir confirmação. Explique brevemente que um slideshow HyperFrames significa um deck executável com slides discretos, navegação embutida e modo apresentador, notas do orador editáveis, manipulação de mídia compartilhada e validação antes da entrega. Para conversões de página de origem, mencione também que o objetivo é preservar o design visual original, interações, movimento e comportamento de mídia da página ao traduzir o movimento da página em transições de slide para slide.

Em seguida, faça uma breve pergunta de confirmação:

Você quer isso como um slideshow HyperFrames?

Use uma interface de escolha sim/não quando o ambiente fornecer uma; caso contrário, faça a pergunta em texto simples.

Não implemente o slideshow até que o usuário diga sim. Se ele disser não, pare de usar esta skill — leia /hyperframes e deixe a camada de intenção redirecionar. Esta confirmação é uma decisão de roteamento, não uma preferência criativa — conforme ../hyperframes-core/referencias/contrato-brief.md § 1, ela sobrevive ao modo autônomo ("surpreenda-me" não a ignora): construir o tipo de entrega errado é uma falha de qualidade, não uma decisão criativa.


As duas partes

1. Cenas — declaradas da maneira normal

Cada slide é apoiado por uma cena. Declare as cenas com data-composition-id, data-start, data-duration e data-label:

<div
  data-composition-id="problema"
  data-start="0"
  data-duration="8"
  data-label="O problema"
  data-width="1920"
  data-height="1080"
>
  <!-- os clipes vão aqui -->
</div>

Slides de ramificação (acessíveis apenas por um hotspot, excluídos da linha principal) são declarados exatamente da mesma forma — eles apenas aparecem apenas em uma entrada slideSequences na ilha, não no array principal slides.

2. A ilha JSON — um bloco de script por composição

Adicione exatamente um bloco <script type="application/hyperframes-slideshow+json"> ao HTML da composição. Ele contém todos os metadados do slideshow:

<script type="application/hyperframes-slideshow+json">
  {
    "slides": [...],
    "slideSequences": [...]
  }
</script>

A ilha é a fonte única da verdade para a ordem dos slides, notas, pontos de retenção de fragmentos, hotspots e sequências de ramificação. Mantenha-a perto do topo do <body>, antes dos divs de cena, para que seja fácil de encontrar.

Não esconda o manifesto do slideshow atrás de um bloco <script type="application/json"> alternativo mais código em tempo de execução que cria a ilha. O comando present lê o HTML da composição estaticamente e espera que a ilha application/hyperframes-slideshow+json real já esteja presente.


Esquema

SlideshowManifest (o objeto da ilha de nível superior)

{
  "slides": [
    /* SlideRef[] — a linha principal, em ordem */
  ],
  "slideSequences": [
    /* SlideSequence[] — sequências de ramificação fora da linha */
  ]
}

SlideRef

{
  "sceneId": "problema",
  "notes": "Comece pela dor, não pela empresa.",
  "fragments": [3.5, 5.2, 7.0],
  "hotspots": [
    /* SlideHotspot[] */
  ],
  "ttsScript": null,
  "ttsAudioUrl": null,
  "ttsDurationMs": null
}
CampoObrigatórioNotas
sceneIdsimDeve corresponder exatamente ao data-composition-id de uma cena (ou fornecer startTime/endTime explícitos). A regra de lint resolve cenas por data-composition-id.
notesnãoTexto apenas para o apresentador. Nunca mostrado ao público.
fragmentsnãoArray de tempos (em segundos) dentro do intervalo [início, fim] do slide — veja Fragmentos abaixo.
hotspotsnãoSobreposições interativas que acionam uma ramificação — veja Ramificações abaixo.
startTimenãoOpcional. Substitui os limites de tempo da cena correspondente; o padrão é o início/fim da cena.
endTimenãoOpcional. Substitui os limites de tempo da cena correspondente; o padrão é o início/fim da cena.
ttsScript, ttsAudioUrl, ttsDurationMsnãoReservado. Os campos de esquema existem, mas a reprodução de TTS ainda não está implementada. Omita, a menos que esteja pré-populando para uma construção futura.

SlideHotspot

{
  "id": "h1",
  "label": "Como calculamos isso?",
  "target": "mergulho-profundo-mercado",
  "region": { "x": 60, "y": 10, "w": 35, "h": 20 }
}
CampoObrigatórioNotas
idsimÚnico dentro do slide.
labelsimTexto da dica de ferramenta / botão mostrado ao público.
targetsimDeve corresponder a um SlideSequence.id em slideSequences.
regionnãoCaixa delimitadora percentual do slide: {x, y, w, h} em 0–100. Omita para renderizar o hotspot como um botão rotulado de slide inteiro.

SlideSequence

{
  "id": "mergulho-profundo-mercado",
  "label": "Metodologia de dimensionamento de mercado",
  "slides": [{ "sceneId": "mkt-1" }, { "sceneId": "mkt-2" }]
}

slides dentro de uma sequência usa a mesma forma SlideRef da linha principal. Fragmentos e hotspots aninhados são permitidos.


Regras de escrita de slides

Estas são restrições rígidas, não sugestões. Um slide que as violar será substituído imediatamente quando um revisor o vir.

  • O título é uma afirmação completa, não um rótulo. Escreva "PMEs gastam 14 horas/semana com agendamento manual" não "Problema de agendamento". A frase deve fazer sentido sozinha mesmo se o visual for ignorado.
  • Uma ideia + um visual por slide. Se você estiver tentado a adicionar um segundo bloco de marcadores ou um segundo gráfico, divida o slide.
  • Comece com a conclusão. O ponto mais forte vem primeiro — no slide e na ordem do deck. Investidores leem da esquerda para a direita, de cima para baixo, e param.
  • Dimensionamento de mercado de baixo para cima apenas. Nunca escreva "TAM de $50B" sem mostrar a matemática. Construa a partir da economia unitária: contas × ACV, ou transações × taxa de captação.
  • Fonte mínima equivalente a 30pt. Em 1920×1080, um título tem 72–96px; o corpo do texto tem 48px. Nunca vá abaixo de 40px para qualquer texto que o público precise ler.

Portando páginas de origem

Ao converter uma página existente em um slideshow, a fidelidade à origem faz parte do contrato. Não substitua widgets específicos da origem por aproximações simplificadas, a menos que o usuário peça explicitamente por um redesign.

  • Preserve o design visual original da página, linguagem de movimento, comportamento interativo, comportamento de mídia e recursos de apresentação o mais próximo possível. Quando o sistema de slideshow suportar o modo apresentador, inclua notas do orador usando o comportamento compartilhado de notas editáveis, em vez de uma implementação específica do deck.
  • Porte mecanismos visuais do DOM/CSS/JS da origem com a maior exatidão possível: players personalizados, visualizadores de canvas, linhas do tempo, cabeças de reprodução, hastes, círculos expansivos, estados de hover e outros detalhes interativos devem sobreviver à conversão.
  • Trate elementos <video> / <audio> nativos como a fonte da verdade para qualquer cromada de mídia personalizada, visualizador de canvas, forma de onda, grade de batida ou cabeça de reprodução. Conecte os eventos de mídia da origem (play, pause, timeupdate, seeking, seeked, ended, ratechange, volumechange) e derive o estado visual de media.currentTime; não execute um timer separado que possa se afastar da reprodução real.
  • Cada <video> ou <audio> com src copiado deve ter atributos de tempo HyperFrames antes da análise: data-start e data-duration, além de data-has-audio="true" quando o áudio nativo audível deve ser preservado. Use o intervalo de tempo da cena para mídia específica do slide; para vídeos de evidência controlados pelo usuário que podem ser reproduzidos de vários slides focados, use um intervalo de todo o deck. Não deixe preload="none" na mídia; use metadata ou auto.
  • Resolva os tokens de fonte da origem antes da validação. Se preservar fontes personalizadas da origem, adicione regras @font-face para arquivos de fonte locais/capturados. Se usar fallbacks do sistema, substitua declarações tokenizadas como font-family: var(--f-body) por pilhas concretas seguras para renderização, como system-ui, sans-serif ou ui-monospace, monospace; não deixe var(...) como o valor da família de fontes.
  • Audite a origem quanto a movimentos de página atípicos, especialmente comportamento orientado por rolagem, roda, toque, estado de hash, redimensionamento ou um loop requestAnimationFrame. Trate viewports fixas com camadas "mundo" traduzidas/escaladas, paralaxe, painéis fixados, rolagens horizontais, linhas do tempo depuradas por rolagem, encaixe de seções e câmeras de zoom em elementos como comportamento de origem. A rolagem é frequentemente o gatilho de transição da origem, então preserve a transição extraindo suas paradas de progresso, easing e estados de câmera/foco, e então realoque esse movimento na navegação do slideshow por meio de posições de linha do tempo, fragmentos ou um hook de player/harness reutilizável. Wrappers independentes que pulam para pontos de retenção de slide ainda precisam de um hook explícito de transição de câmera de navegação; calcular transformações de câmera por slide não é suficiente. Não simule uma transição literal de rolagem de página para baixo dentro do slide; o espectador deve sentir a viagem/movimento da câmera de um ponto focal a outro, não ver uma página da web sendo rolada. Mantenha cada movimento de câmera de slide para slide contínuo: evite paradas de rota intermediárias que invertam a direção x/y ou o zoom, a menos que a origem faça isso visivelmente no mesmo limite. Uma transição que se move erraticamente antes de chegar ao destino é pior do que um movimento focal direto mais simples.
  • Preserve a semântica de corte de mídia da origem. Trate capturas de tela, posts de tweet/mídia social, capturas de interface de produto, gráficos, documentos, código, placares de líderes e qualquer imagem com texto legível como evidência de conteúdo, não mídia decorativa: use a proporção de aspecto da origem (height: auto) ou object-fit: contain dentro de um quadro estável. Use object-fit: cover apenas quando a origem o fez, ou para miniaturas intencionalmente decorativas/de fundo/cinematográficas. Depois de encaixar essas capturas no slide, inspecione todas as quatro bordas para texto, logotipos, controles ou legendas truncados; um corte visível em conteúdo significativo é um bug, a menos que a própria origem o tenha cortado.
  • Se um...

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Drama2557/4RealDigital-Video-Studio

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

Drama2557/4RealDigital-Video-Studio

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Drama2557/4RealDigital-Video-Studio

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

Drama2557/4RealDigital-Video-Studio

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Drama2557/4RealDigital-Video-Studio

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

Drama2557/4RealDigital-Video-Studio

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

Drama2557/4RealDigital-Video-Studio

Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers local, HeyGen-hosted cloud, AWS Lambda, and Google Cloud Run rendering.

Drama2557/4RealDigital-Video-Studio

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition HTML.

Drama2557/4RealDigital-Video-Studio

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

Drama2557/4RealDigital-Video-Studio

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Drama2557/4RealDigital-Video-Studio

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

Drama2557/4RealDigital-Video-Studio

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

Drama2557/4RealDigital-Video-Studio

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

Drama2557/4RealDigital-Video-Studio

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

Drama2557/4RealDigital-Video-Studio

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Agent skill / project related to launch or product demo video: Drama2557/4RealDigital-Video-Studio

Habilidades Relacionadas