Arc
Dibuje un arco elíptico según el ángulo inicial y el ángulo de barrido, adecuado para arcos de escala y visualización de progreso. El borde está determinado por el ancho y el alto. El ancho, el punto final y la posición del trazo son configurables, y se permite que el fondo se llene cuando está completamente cerrado.
Ejemplo
function main() {
return (
<Arc
width={120}
height={120}
startAngle={-90}
sweepAngle={240}
stroke={$env.accent}
lineWidth={8}
lineCap="round"
strokePosition="center"
/>
);
}
Uso
- Ellipse y Arc usan todo el ancho y alto; solo son círculos si coinciden. Los arcos parciales no unen extremos al centro. background rellena únicamente una vuelta completa cerrada.
- Ángulos en grados: 0 derecha, 90 abajo, sweep positivo horario. startAngle módulo 360; sweepAngle limitado a −360…360. 0 no dibuja; ±360 cierra. wrap:360 es para startAngle, no sweepAngle.
- background/stroke aceptan Color o Gradient. Usa los tres constructores Gradient: posiciones y centros 0–1, radios en puntos. HDR envuelve un color; el brillo depende del dispositivo y del entorno.
Propiedades
startAngle?numberÁngulo inicial en grados, normalizado módulo 360 al muestrear.
-90sweepAngle?numberBarrido en grados, limitado a -360…360 al muestrear. Los valores positivos giran en sentido horario; no admite wrap.
270background?PaintRelleno de un círculo o elipse completos y cerrados. Se ignora en arcos parciales.
"clear"stroke?PaintColor o degradado del trazo; clear lo oculta.
HDR($env.dark ? "white" : "black")lineWidth?numberGrosor del trazo en puntos; 0 no dibuja trazo.
2strokePosition?"inside" | "center" | "outside"Posición del trazo respecto al contorno completo del círculo o la elipse. Por defecto, inside.
"inside"lineCap?"round" | "butt" | "square"Extremos: butt corta, square prolonga en cuadrado, round redondea.
"round"dash?number[]Longitudes alternas de trazo y hueco en puntos; matriz vacía para línea continua.
[]dashPhase?numberDesplazamiento del patrón de guiones en puntos.
0Propiedades comunes
width?number | "auto" | "fill"Anchura en puntos, tamaño automático o relleno del contenedor.
"fill"height?number | "auto" | "fill"Altura en puntos, tamaño automático o relleno del contenedor.
"fill"x?numberDesplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.
0y?numberDesplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.
0transform?ViewTransformTransformación global sin alterar el diseño. Traslación en puntos, giro/inclinación en grados, escala 1 sin cambios, anclajes 0–1.
{rotation: 0}opacity?numberOpacidad de todo el View: 0 transparente, 1 opaco.
1clipped?booleanRecorta el dibujo que sobresale de los límites del View.
falseclip?"rectangle" | "ellipse"Recorte rectangle o ellipse; Material también admite false para desactivarlo.
"rectangle"mask?View | nullView de máscara alfa. Centrada sin afectar al diseño; null desactiva la máscara.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrden entre elementos hermanos; los valores mayores aparecen delante.
0blur?numberRadio de desenfoque en puntos; 0 lo desactiva.
4innerShadow?DrawingEffectColor, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectColor, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorColor de la sombra exterior.
HDR("black")shadowOpacity?numberOpacidad de la sombra de 0 a 1; 0 la oculta.
0shadowRadius?numberRadio de desenfoque de la sombra, en puntos.
4shadowX?numberDesplazamiento de sombra en puntos: x derecha, y abajo.
0shadowY?numberDesplazamiento de sombra en puntos: x derecha, y abajo.
2animations?ArcAnimation[]Anima cambios de propiedad. duration/delay en segundos; from/to son extremos; repeat/autoreverse controlan repeticiones y wrap el período.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentidad estable entre elementos hermanos.
Ejemplo práctico
function main() {
return (
<Arc
width={180}
height={100}
startAngle={180}
sweepAngle={180}
background="clear"
stroke={LinearGradient(['#30B3A2', '#A9E56F'])}
lineWidth={8}
strokePosition="inside"
lineCap="round"
/>
);
}
Animación
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYAl omitir
La tabla documenta omisiones comprobadas en la implementación. Los ejemplos no son valores predeterminados. Especifica valores para resultados fijos; tamaños y colores del contexto no son constantes.
| Propiedades | Al omitir |
|---|---|
startAngle | -90 |
sweepAngle | 270 |
lineWidth | 2 |
strokePosition | "inside" |
background | "clear" |
stroke | HDR($env.dark ? 'white' : 'black') |