Color / Gradient

Forneça cores e gradientes para texto, plano de fundo e traçado. Paint pode ser uma cor ou um valor criado pelo construtor gradiente.

cor

Os métodos de escrita comumente usados ​​incluem nomes de cores, cores hexadecimais e objetos { r, g, b, a }. Componentes RGB e transparência usam 0–1, clear significa transparente. $env.foreground e $env.accent fornecem cores comuns que mudam de acordo com o tema.

HDR(color) adiciona a tag HDR à string de cores. As cores normais preenchidas explicitamente permanecem SDR; por exemplo, color={$env.foreground} não será aprimorado automaticamente e pode ser escrito como color={HDR($env.foreground)} quando o realce for necessário. O comportamento padrão quando o atributo color é omitido é mostrado na tabela abaixo.

HDR valor padrão quando a cor é omitida

Quando nenhuma cor de desenho é especificada, as seguintes cores padrão são marcadas com HDR.

contente cor quando omitido
Texto, símbolos, imagens de modelo HDR($env.foreground);O símbolo preserva as cores da paleta ao usar o modo paleta e uma paleta é especificada.
Preenchimento de retângulos, círculos, elipses e histogramas HDR($env.dark ? 'white' : 'black').
Traços de linhas, arcos, polilinhas, caminhos e gráficos de polilinhas HDR($env.dark ? 'white' : 'black').
Eixos e rótulos do gráfico A cor de primeiro plano HDR é usada por padrão. Definir explicitamente o preenchimento ou o traçado do gráfico não altera a cor padrão dos rótulos.
Brilho, sombra interna, sombra projetada ativada Quando a cor é omitida do efeito, o padrão do brilho é HDR branco, e a sombra interna e a sombra projetada são padrão para HDR preto; omitir o efeito em si não o ativará.

O fundo do contêiner permanece transparente. Imagens em cores primárias, mapas e materiais do sistema mantêm suas próprias cores e exibição. Cores normais, escalas de cores gradientes e paletas de símbolos especificadas explicitamente não são convertidas em HDR como um todo, e as cores que requerem aprimoramento devem ser marcadas separadamente.

Quando o aprimoramento entra em vigor?

O sinalizador HDR não garante o brilho real. O aprimoramento requer iOS 26 ou posterior, telas suportadas, modo HUD e ativação do aprimoramento HDR; os resultados reais também são afetados pelo ambiente de exibição atual. O modo normal do instrumento, a visualização do editor e o PNG exportado usam a faixa de exibição normal e a visualização não pode ser usada para avaliar o efeito de realce real.

As três linhas a seguir omitem a cor, usam explicitamente a cor normal e marcam explicitamente a cor de destaque. Pode parecer igual na visualização, mas a diferença de aprimoramento se torna aparente após entrar em um ambiente HUD que suporta HDR.

function main() {
  return (
    <VStack spacing={8}>
      <Text fontSize={22}>Default HDR</Text>
      <Text fontSize={22} color={$env.foreground}>
        Explicit SDR
      </Text>
      <Text fontSize={22} color={HDR($env.accent)}>
        Explicit HDR
      </Text>
    </VStack>
  );
}

Gradiente

LinearGradient muda ao longo de uma linha reta, RadialGradient se espalha a partir do centro e AngularGradient muda angularmente em torno do centro. Ao construir, você pode passar um array de cores ou um array de cores com color e location. Use 0–1 para localização da amostra de cor e coordenadas centrais, pontos para raio radial e graus para ângulos.

O gradiente criado pode ser passado para background, stroke e outros atributos que suportam Paint. Atributos que aceitam apenas Color ainda precisam usar cor única. Os tipos específicos disponíveis estão sujeitos à definição do atributo.

Exemplo: fundo e gradiente de traço

Fundo linear, preenchimento radial, traço angular e texto HDR são mostrados abaixo, respectivamente.

function main() {
  return (
    <VStack spacing={12}>
      <Rectangle
        height={48}
        background={LinearGradient(['#B9E883', '#30B3A2'], { angle: 30 })}
      />
      <Circle
        width={100}
        height={100}
        background={RadialGradient(['white', '#30B3A2'])}
      />
      <Circle
        width={100}
        height={100}
        stroke={AngularGradient(['#B9E883', '#30B3A2', '#B9E883'])}
        lineWidth={8}
        background="clear"
      />
      <Text color={HDR('white')}>CapDrive</Text>
    </VStack>
  );
}

Construtor

HDR(color: string) → HDRColor

Marca uma cor para aprimoramento HDR, preservando sua cor SDR base.

LinearGradient(colors: GradientColors, options?: LinearGradientOptions) → Gradient

Cria um gradiente. Chame diretamente ou com new.

RadialGradient(colors: GradientColors, options?: RadialGradientOptions) → Gradient

Cria um gradiente. Chame diretamente ou com new.

AngularGradient(colors: GradientColors, options?: AngularGradientOptions) → Gradient

Cria um gradiente. Chame diretamente ou com new.