Skip to content

SStack <s-stack> ​

Organiza sus hijos en una fila o columna con espaciado y alineación coherentes. SStack es el wrapper de Vue 3 tipado del web component <s-stack> de Shopify Polaris.

ts
import { SStack } from 'polaris-vue-elements'

Buenas prácticas ​

  • Haz que el espaciado refleje las relaciones. Un gap pequeño indica que los elementos van juntos, mientras que uno más grande separa grupos distintos. Elige el espaciado que corresponda a la jerarquía de tu contenido.
  • Cuenta con que los stacks en línea se ajusten. Con direction="inline", los elementos pasan a una nueva línea cuando se quedan sin espacio. Normalmente es lo que quieres, pero si necesitas un control exacto de los saltos de línea o varias filas, recurre a otro enfoque de diseño.
  • Define la alineación a propósito. La alineación predeterminada sirve para la mayoría de los diseños. Ajusta alignItems o justifyContent cuando los elementos tengan tamaños distintos o necesiten un posicionamiento específico.
vue
<SStack direction="inline" gap="small-200" alignItems="center">
  <SBadge>Draft</SBadge>
  <SText>Last edited today</SText>
</SStack>

Consulta las buenas prácticas de Shopify para <s-stack> (en inglés) para ver todas las recomendaciones.

Ejemplo ​

Item 1Item 2Item 3
vue
<script setup>
import { SStack, SBox, SText } from 'polaris-vue-elements'
</script>

<template>
  <SStack direction="inline" gap="large" alignItems="center">
    <SBox background="subdued" padding="base" borderRadius="200">
      <SText>Item 1</SText>
    </SBox>
    <SBox background="subdued" padding="base" borderRadius="200">
      <SText>Item 2</SText>
    </SBox>
    <SBox background="subdued" padding="base" borderRadius="200">
      <SText>Item 3</SText>
    </SBox>
  </SStack>
</template>

Props ​

PropTipoDescripción
accessibilityLabelstringUna etiqueta que describe el propósito o el contenido del elemento. Cuando se define, se anuncia a los usuarios de tecnologías de asistencia y les proporciona más contexto. Úsala solo cuando el contenido del elemento no aporte suficiente contexto a los usuarios de tecnologías de asistencia.
accessibilityRole"generic" | "status" | "main" | "header" | "footer" | "section" | "region" | "aside" … (9 more)Define el significado semántico del contenido del componente. Cuando se establece, las tecnologías de asistencia usan el rol para ayudar a los usuarios a navegar por la página.
accessibilityVisibility"visible" | "hidden" | "exclusive"Cambia la visibilidad del elemento. - visible: el elemento es visible para todos los usuarios. - hidden: el elemento se elimina del árbol de accesibilidad, pero sigue siendo visible. - exclusive: el elemento se oculta visualmente, pero permanece en el árbol de accesibilidad.
alignContent"normal" | "stretch" | "baseline" | "first baseline" | "last baseline" | "center" | "start" | "end" … (9 more)Controla la distribución de las líneas a lo largo del eje de bloque cuando el contenido se distribuye en varias líneas. Esta propiedad solo afecta a las pilas cuyo contenido salta de línea. Para las pilas de una sola línea, usa alignItems en su lugar.
alignItems"normal" | "stretch" | "baseline" | "first baseline" | "last baseline" | "center" | "start" | "end" … (6 more)Controla la alineación de los hijos a lo largo del eje de bloque (verticalmente en los modos de escritura horizontales). Úsalo para alinear los elementos perpendicularmente a la dirección de la pila: verticalmente en las pilas en línea u horizontalmente en las pilas de bloque.
background"subdued" | "base" | "strong" | "transparent"El color de fondo del componente.
blockSize"auto" | "0"El tamaño vertical del elemento en diseños estándar (la altura en modos de escritura de izquierda a derecha o de derecha a izquierda). El tamaño de bloque se ajusta según la dirección de escritura: en diseños horizontales controla la altura; en diseños verticales controla la anchura. Esto garantiza un comportamiento coherente en distintas direcciones de texto. Más información sobre block-size.
borderBorderShorthandUn borde aplicado con sintaxis abreviada para especificar el ancho, el color y el estilo en una sola propiedad.
borderColor"subdued" | "base" | "strong"El color del borde según la escala de colores del sistema de diseño. Cuando se establece, sobrescribe el valor de color especificado en la propiedad border. Elige entre subdued, base o strong según el énfasis visual necesario.
borderRadiusMaybeAllValuesShorthandProperty<BoxBorderRadii>El redondeo de las esquinas del elemento según la escala de radios del sistema de diseño. Admite la sintaxis de 1 a 4 valores para especificar radios distintos por esquina. Úsalo para crear esquinas redondeadas o elementos completamente redondeados.
borderStyle"" | MaybeAllValuesShorthandProperty<BoxBorderStyles>El estilo visual del borde en todos los lados, como sólido, discontinuo o punteado. Cuando se establece, anula el valor de estilo especificado en la propiedad border. Admite la sintaxis de 1 a 4 valores para especificar estilos distintos por lado.
borderWidth"" | MaybeAllValuesShorthandProperty<"base" | "small-100" | "small" | "large" | "large-100" | "none">El grosor del borde en todos los lados. Cuando se establece, anula el valor de ancho especificado en la propiedad border. Admite la sintaxis de 1 a 4 valores para especificar anchos distintos por lado.
columnGap"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)Ajusta el espaciado entre elementos en el eje en línea. Reemplaza el valor de columna de gap. Acepta: - Un único valor de SpacingKeyword, como large-100 - Una cadena de valor adaptable con el SpacingKeyword admitido como valor de consulta
direction"block" | "inline"La dirección en la que se colocan los hijos de la pila dentro de ella. Acepta: - Un solo valor, inline o block - Una cadena de valor adaptable con los valores de dirección admitidos como valor de consulta
display"auto" | "none"El tipo de display externo del componente. El tipo externo determina cómo participa un componente en el flujo de diseño. - auto: el valor inicial del componente. El valor real depende del componente y del contexto. - none: oculta el componente y lo elimina del árbol de accesibilidad, de modo que resulta invisible para los lectores de pantalla.
gapMaybeResponsive<MaybeTwoValuesShorthandProperty<SpacingKeyword>>Ajusta el espaciado entre elementos. Acepta: - Un único valor de SpacingKeyword aplicado a ambos ejes, como large-100 - Un par de valores, como large-100 large-500, para definir los ejes en línea y de bloque respectivamente - Una cadena de valor adaptable con el SpacingKeyword admitido como valor de consulta
inlineSize"auto" | "0"La anchura en modos de escritura horizontales, o la altura en modos de escritura verticales. Úsalo para un dimensionamiento relativo al flujo que se adapte a la dirección del texto. Más información sobre inline-size.
justifyContent"normal" | "stretch" | "center" | "start" | "end" | "unsafe center" | "unsafe start" | "unsafe end" … (6 more)Controla la distribución de los hijos a lo largo del eje en línea (horizontalmente en los modos de escritura horizontales). Úsalo para colocar los elementos a lo largo del eje principal de la pila: horizontalmente en las pilas en línea o verticalmente en las pilas de bloque cuando se distribuyen en varias líneas.
maxBlockSize"none" | "0"La altura máxima en modos de escritura horizontales, o la anchura máxima en modos de escritura verticales. Impide que el elemento crezca más allá de este tamaño. Más información sobre max-block-size.
maxInlineSize"none" | "0"La anchura máxima en modos de escritura horizontales, o la altura máxima en modos de escritura verticales. Impide que el elemento crezca más allá de este tamaño. Más información sobre max-inline-size.
minBlockSize"0"La altura mínima en modos de escritura horizontales, o la anchura mínima en modos de escritura verticales. Impide que el elemento se reduzca por debajo de este tamaño. Más información sobre min-block-size.
minInlineSize"0"La anchura mínima en modos de escritura horizontales, o la altura mínima en modos de escritura verticales. Impide que el elemento se reduzca por debajo de este tamaño. Más información sobre min-inline-size.
overflow"visible" | "hidden"Define el comportamiento de desbordamiento del elemento. - hidden: recorta el contenido cuando es más grande que el contenedor del elemento. El elemento no se podrá desplazar y los usuarios no podrán acceder al contenido recortado arrastrando ni usando la rueda del mouse. - visible: el contenido que sobrepasa el contenedor del elemento es visible.
paddingMaybeResponsive<MaybeAllValuesShorthandProperty<PaddingKeyword>>El relleno aplicado a todos los bordes del componente. Admite la sintaxis de 1 a 4 valores con valores relativos al flujo: - 1 valor se aplica a todos los lados - 2 valores se aplican a block (arriba/abajo) e inline (izquierda/derecha) - 3 valores se aplican a block-start (arriba), inline (izquierda/derecha) y block-end (abajo) - 4 valores se aplican a block-start (arriba), inline-end (derecha), block-end (abajo) e inline-start (izquierda) Ejemplos:* base, large none, base large-100 base small Usa auto para heredar el relleno del contenedor más cercano con el relleno eliminado. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingBlockMaybeResponsive<"" | MaybeTwoValuesShorthandProperty<PaddingKeyword>>El relleno en la dirección de bloque (arriba y abajo en modos de escritura horizontales). Acepta un solo valor para ambos lados o dos valores separados por espacios para block-start y block-end. Ejemplo:* large none aplica large arriba y none abajo. Sobrescribe el valor de bloque de padding. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingBlockEnd"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)El relleno block-end (abajo en modos de escritura horizontales). Sobrescribe el valor block-end de paddingBlock. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingBlockStart"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)El relleno block-start (arriba en modos de escritura horizontales). Sobrescribe el valor block-start de paddingBlock. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingInlineMaybeResponsive<"" | MaybeTwoValuesShorthandProperty<PaddingKeyword>>El relleno en la dirección en línea (izquierda y derecha en modos de escritura horizontales). Acepta un solo valor para ambos lados o dos valores separados por espacios para inline-start e inline-end. Ejemplo:* large none aplica large a la izquierda y none a la derecha. Sobrescribe el valor en línea de padding. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingInlineEnd"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)El relleno inline-end (derecha en modos de escritura LTR, izquierda en RTL). Sobrescribe el valor inline-end de paddingInline. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
paddingInlineStart"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)El relleno inline-start (izquierda en modos de escritura LTR, derecha en RTL). Sobrescribe el valor inline-start de paddingInline. También acepta una cadena de valor adaptable con el PaddingKeyword admitido como valor de consulta.
rowGap"base" | "small-200" | "small-100" | "small" | "large" | "large-100" | "small-500" | "small-400" … (6 more)Ajusta el espaciado entre elementos en el eje de bloque. Reemplaza el valor de fila de gap. Acepta: - Un único valor de SpacingKeyword, como large-100 - Una cadena de valor adaptable con el SpacingKeyword admitido como valor de consulta

Algunas columnas de tipo de arriba están truncadas para facilitar la lectura; la unión completa está disponible en los tipos de TypeScript generados de la biblioteca (src/lib/generated/types.ts).

Slots ​

SlotDescripción
defaultLos elementos hijos que se muestran dentro del componente de pila, organizados vertical u horizontalmente con un espaciado uniforme.

Publicado bajo la licencia MIT. Logo de Vue por Evan You, CC BY-NC-SA 4.0.