Attributes, timelines, states, fallbacks, reduced motion.Atributos, timelines, estados, fallbacks, movimento reduzido.
Must not ownNão deve controlarBrand, component anatomy, editorial layout.Marca, anatomia de componentes, layout editorial.
A Skin is a complete design-system model, not a palette. It changes colour, type, spacing, geometry, media and motion tokens together. The motion grammar stays the same.Uma Skin é um modelo completo de design system, não uma paleta. Ela muda cor, tipografia, espaçamento, geometria, mídia e tokens de movimento juntos. A gramática de movimento continua a mesma.

Three layers, each with one job. A Skin never adds behaviour and never needs JavaScript animation.Três camadas, cada uma com uma função. Uma Skin nunca adiciona comportamento e nunca precisa de JavaScript de animação.
Attributes, timelines, states, fallbacks, reduced motion.Atributos, timelines, estados, fallbacks, movimento reduzido.
Must not ownNão deve controlarBrand, component anatomy, editorial layout.Marca, anatomia de componentes, layout editorial.
Colour, type, spacing, grid, geometry, material, media, component voice, motion tokens.Cor, tipografia, espaçamento, grid, geometria, material, mídia, voz dos componentes, tokens de movimento.
Must not ownNão deve controlarNew behavioural attributes or JavaScript animation.Novos atributos de comportamento ou JavaScript de animação.
Narrative, examples, art direction, comparison.Narrativa, exemplos, direção de arte, comparação.
Must not ownNão deve controlarPrivate framework behaviour or one-off inline APIs.Comportamento de framework privado ou APIs inline pontuais.
The markup below never changes. Pick a state and watch type, hierarchy, media, anatomy and motion voice change together. These previews are built from each Skin's documented tokens, not from the final packages.A marcação abaixo nunca muda. Escolha um estado e veja tipografia, hierarquia, mídia, anatomia e voz de movimento mudarem juntas. Estas prévias são montadas a partir dos tokens documentados de cada Skin, não dos pacotes finais.
↓ Pick a Skin, then hover the motion box↓ Escolha uma Skin e passe o mouse sobre a caixa de movimento
Same markup in every state. Only tokens change: colour, type, spacing, geometry, media and motion.A mesma marcação em todos os estados. Só os tokens mudam: cor, tipografia, espaçamento, geometria, mídia e movimento.
<article class="card" vl-enter="clip-rise">
<img src="…" alt="…">
<h3>Light the scene, then let it move.</h3>
</article>
<!-- identical in every state -->None is not a Skin: it is the host-controlled state that proves Motion Core works without any Velora visual model.Nenhuma não é uma Skin: é o estado controlado pelo host que prova que o Motion Core funciona sem nenhum modelo visual do Velora.
A named Skin must define all of them before it can be promoted. Values below come from the Noir and Earth design documents.Uma Skin nomeada precisa definir todas elas antes de ser promovida. Os valores abaixo vêm dos documentos de design do Noir e do Earth.
| FamilyFamília | Velora in developmentVelora em desenvolvimento | Noir beta | Earth beta |
|---|---|---|---|
| ColourCor | Olive on stone Oliva sobre pedra | Kinetic green on near-black Verde cinético sobre quase-preto | Deep green on cream Verde profundo sobre creme |
| Display typeTipografia de display | Heavy sans, tight trackingSans pesada, tracking justo | Space Grotesk 700, −0.03em | Space Grotesk 600, −0.02em |
| Body typeTipografia do corpo | Inter-style sansSans estilo Inter | Manrope 400, 26px lineManrope 400, linha de 26px | Manrope 400, 26px lineManrope 400, linha de 26px |
| SpacingEspaçamento | 8px base, wide editorial gapsBase de 8px, grandes vazios editoriais | 8px base, section 48px, card 24pxBase de 8px, seção 48px, cartão 24px | 8px base, section 48px, card 24pxBase de 8px, seção 48px, cartão 24px |
| GeometryGeometria | Square, 18.4° corner cutQuadrado, corte de canto de 18,4° | 2 / 6 / 12px radiiRaios de 2 / 6 / 12px | 4 / 8 / 14px radiiRaios de 4 / 8 / 14px |
| DepthProfundidade | Hairlines and cut edgesFiletes e bordas cortadas | Tonal glass, blur 12–24pxVidro tonal, blur de 12–24px | Paper stack, soft shadowsPilha de papel, sombras suaves |
| MediaMídia | Cut crop, accent edgeCorte, borda de destaque | Darkened, cinematic ratioEscurecida, proporção cinematográfica | Natural colour, calm ratioCor natural, proporção calma |
| MotionMovimento | 300ms, cut-reveal feel300ms, sensação de cut-reveal | 180 / 260 / 420 / 900ms · cubic-bezier(.22,1,.36,1) | 160 / 240 / 320 / 700ms · cubic-bezier(.4,0,.2,1) |
| Reduced motionMovimento reduzido | HonouredRespeitado | Opacity onlySomente opacidade | Opacity and colour onlySomente opacidade e cor |
Five elevation tiers with no offset and no angle: the blur grows and the shadow darkens as an element rises. Two variables retheme the whole family. It is a proposal and is not in the current stylesheet.Cinco níveis de elevação sem deslocamento e sem ângulo: o blur cresce e a sombra escurece conforme o elemento sobe. Duas variáveis retematizam a família inteira. É uma proposta e não está na folha de estilo atual.
↓ Switch the preset↓ Troque o preset.tier { box-shadow: 0 0 calc(var(--depth-blur) * (1 + var(--n) * .35))
color-mix(in oklab, var(--fg) calc(var(--depth-alpha) * (1 + var(--n) * .5) * 1%), transparent); }
/* --depth-blur base blur of the lowest tier
--depth-alpha base opacity, in percent */The current core already has --vl-shadow-sm, -md, -lg, -glow, -dramatic and -float, which use offsets. The names --vl-shadow-low to -glow and --vl-kinetic-blur proposed here are not in the stylesheet. If accepted, depth would become one more token family that a Skin maps.O core atual já tem --vl-shadow-sm, -md, -lg, -glow, -dramatic e -float, que usam deslocamentos. Os nomes --vl-shadow-low a -glow e --vl-kinetic-blur propostos aqui não estão na folha de estilo. Se aceita, a profundidade viraria mais uma família de tokens que uma Skin mapeia.
Premium Skins are not in the public package. They are listed so you can see where the system is going, not as something you can install today.As Skins Premium não estão no pacote público. Elas aparecem para você ver para onde o sistema vai, não como algo que dá para instalar hoje.
The official Skin. Olive primary, cut structure.A Skin oficial. Oliva como cor principal, estrutura em corte.
In developmentEm desenvolvimentoDark cinematic base, kinetic green, measured depth, long editorial landings.Base cinematográfica escura, verde cinético, profundidade medida, landings editoriais longas.
BetaWarm light laboratory, organic spacing, softer geometry, restrained motion.Laboratório claro e quente, espaçamento orgânico, geometria mais suave, movimento contido.
BetaArchitectural black, copper massing, dense grid, decisive motion.Preto arquitetônico, massas de cobre, grid denso, movimento decisivo.
Terrain intelligence, cartographic lines, translucent fields, spatial drift.Inteligência de terreno, linhas cartográficas, campos translúcidos, deriva espacial.
Optical precision, cold electric-blue instrumentation, short exact motion.Precisão óptica, instrumentação azul-elétrico fria, movimento curto e exato.
Broadcast information system, explicit rules, signal-orange accents, fast directional motion.Sistema de informação de broadcast, regras explícitas, acentos laranja-sinal, movimento direcional rápido.
Atmospheric spatial light, translucent surfaces, open spacing, long fluid motion.Luz espacial atmosférica, superfícies translúcidas, espaçamento aberto, movimento longo e fluido.
From the Skin Contract. They keep Skins from turning into private frameworks.Vindas do Contrato de Skins. Elas impedem que as Skins virem frameworks privados.
prefers-reduced-motion.A personalidade de movimento pode mudar distância, duração e easing, e sempre respeita prefers-reduced-motion.<html data-editorial-theme="noir">
<!-- Selector for a named Skin. Each Skin declares its own light and dark intent. -->Selection can be stored by Showcase and Docs as product-experience state. It is not part of Motion Core and must not block when storage is unavailable.A seleção pode ser guardada pelo Showcase e pela Docs como estado de experiência do produto. Não faz parte do Motion Core e não deve bloquear quando o armazenamento estiver indisponível.