# Sistema de diseño Ripple

## Vista previa de la interfaz del sistema de diseño Ripple

Lee las notas de preparación, indica que estás listo y pasa directamente al siguiente paso pendiente.

## Referencia de diseño del sistema de diseño Ripple

Documentación publicada del diseño de Ripple verificada para este estudio: roles de color predeterminados, espaciado, pares de tamaño e interlineado tipográficos y colores de foco. Son referencias de diseño, no una afirmación de que se incluya una versión nativa de Ripple.

### Roles de color publicados

| Nombre / Regla | Valor / Configuración | Uso |
| --- | --- | --- |
| --rpl-clr-primary | #0052C2 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-primary-alt | #003174 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-accent | #0095EC | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-accent-alt | #E6F5FD | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-neutral-0 | #FFFFFF | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-neutral-100 | #F5F5F5 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-neutral-200 | #E6E6E6 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-neutral-700 | #333333 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-neutral-800 | #1A1A1A | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-type-default | #1A1A1A | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-link | #0052C2 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
| --rpl-clr-link-visited | #9F46B1 | Paleta predeterminada documentada de Ripple; los valores del tema pueden variar. Al aplicar un tema, conserva el nombre del rol. |
### Escala de espaciado publicada

| Nombre / Regla | Valor / Configuración | Uso |
| --- | --- | --- |
| --rpl-sp-1 | 4px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-2 | 8px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-3 | 12px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-4 | 16px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-5 | 20px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-6 | 24px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-7 | 28px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-8 | 32px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-9 | 40px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-10 | 48px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-11 | 56px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-12 | 64px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-13 | 80px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
| --rpl-sp-14 | 120px | Paso de espaciado documentado. Los pasos posteriores no se obtienen multiplicando el índice por cuatro. |
### Roles tipográficos y alternativa

| Nombre / Regla | Valor / Configuración | Uso |
| --- | --- | --- |
| rpl-type-font-family | VIC, Arial, Helvetica, sans-serif | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
| rpl-type-h1 | 32/36px small · 56/60px large · 700 | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
| rpl-type-h2 | 24/32px small · 32/40px large · 700 | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
| rpl-type-h3 | 20/28px small · 24/32px large · 700 | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
| rpl-type-p | 16/24px | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
| rpl-type-p-small | 14/20px | Pares de tamaño e interlineado de los roles tipográficos publicados. El ejemplo independiente usa la alternativa Arial documentada, no la fuente VIC. |
### Contraste del foco

| Nombre / Regla | Valor / Configuración | Uso |
| --- | --- | --- |
| --rpl-clr-focus | #FF9E1B | Colores de foco publicados. El ejemplo implementa su propio CSS de foco en lugar de importar las clases de utilidad de Ripple. |
| --rpl-clr-focus-contrast | #1A1A1A | Colores de foco publicados. El ejemplo implementa su propio CSS de foco en lugar de importar las clases de utilidad de Ripple. |
| --rpl-clr-dark | #1A1A1A | Colores de foco publicados. El ejemplo implementa su propio CSS de foco en lugar de importar las clases de utilidad de Ripple. |
## Guía completa del sistema de diseño Ripple

Una guía práctica para elegir, aplicar y revisar este sistema en una interfaz real.

Orientación completa, un punto de partida para la implementación y enlaces al código fuente.

## Fundamentos y alcance del entorno de ejecución del sistema de diseño Ripple

### Distingue las referencias de diseño del entorno de ejecución de componentes

> La referencia describe el sistema de diseño publicado de Ripple. La cronología del taller es una interpretación original y completa de HTML, CSS y JavaScript basada en valores seleccionados. No ejecuta componentes Vue de Ripple, no usa un espejo de paquetes sin documentar ni afirma ser un servicio del Gobierno de Victoria. Este límite se muestra en la vista previa y se mantiene en el código fuente descargable.

### Elige deliberadamente la integración nativa

Ripple publica una ruta de paquetes orientada a Vue y otra que solo incluye estilos mediante su paquete principal. La instalación oficial requiere acceso a GitHub Packages. La ruta de solo estilos sigue dejando el marcado y el comportamiento en manos de la aplicación. Para integrar esa distribución, sigue las instrucciones oficiales de acceso enlazadas y fija la versión que elijas; el estudio independiente de abajo no requiere autenticación ni instalación de paquetes.

## Roles de color y foco de teclado del sistema de diseño Ripple

### Mantén diferenciados la marca y el contenido

El encabezado de la cronología usa el valor primario más oscuro, el borde usa el color de acento y el texto de lectura usa el rol de texto neutro. En el código fuente proporcionado, corresponden a variables distintas de CSS. El panel de estado original usa la superficie de acento pálido. La referencia incluye tanto los nombres de los roles como sus valores, para que un cambio de tema futuro pueda actualizar la relación prevista en lugar de un conjunto de valores hexadecimales sin conexión entre sí.

### Haz que el foco de teclado se distinga a simple vista

El foco es naranja con contenido oscuro, no otro tono del azul predeterminado. La regla de foco original para botones y resúmenes cambia su superficie y dibuja un contorno oscuro. El foco de las casillas de verificación conserva un contorno. Esta es una implementación del enfoque de colores de foco publicado, no una afirmación de que el ejemplo importe las utilidades de foco nativas de Ripple ni de que garantice la accesibilidad en todos los temas posibles.

## Espaciado y tipografía adaptable del sistema de diseño Ripple

### Usa la secuencia de espaciado real

El código fuente usa los pasos con nombre de 8, 16, 24, 32 y 48px para marcar el ritmo de lectura. La referencia completa también registra pasos mayores; la secuencia deja de ser un simple múltiplo del índice, por lo que rpl-sp-9 es 40px, no 36px. El espacio entre columnas de la cuadrícula y el relleno de las secciones comparten deliberadamente valores de la escala, aunque cumplen funciones distintas en el diseño.

### Deja claros los límites de uso de fuentes

Ripple documenta VIC con Arial y Helvetica como alternativas. Este estudio no incluye ningún archivo de fuente VIC y usa Arial explícitamente. El encabezado cambia de 32/36px a 56/60px en el punto de ruptura de 992px del ejemplo, mientras que el texto del cuerpo mantiene 16/24px. Estos valores de tamaño e interlineado son referencias documentadas; la composición de la cronología es original y no debe describirse como un componente nativo idéntico píxel por píxel.

## Contenido de la cronología y divulgación progresiva del sistema de diseño Ripple

### Asigna una función distinta a cada etapa

La primera etapa define la decisión, la segunda prepara la participación y la tercera registra una acción. Las etiquetas de tiempo relativo indican la secuencia sin inventar plazos gubernamentales ni compromisos de servicio. Cada etapa tiene un resumen breve que permanece visible y notas de preparación adicionales en un elemento details nativo. La secuencia sigue siendo una lista ordenada, aunque sus marcadores visuales sean personalizados.

- El tiempo relativo describe la secuencia del taller.

- Los resúmenes visibles comunican el propósito de cada etapa.

- Las notas desplegables incluyen información secundaria.

- La preparación se indica mediante una casilla de verificación explícita.

### No confundas leer con estar preparado

Desplegar las notas de preparación no marca una etapa como completada. La casilla independiente indica si se está preparado, y el recuento de progreso solo se calcula a partir de los elementos marcados. Así se evita que alguien complete el trabajo por accidente con solo leerlo. El documento incluye todos los elementos y toda la lógica de estado, por lo que esta distinción se puede revisar y editar.

## Progreso, enfoque del siguiente paso y restablecimiento del sistema de diseño Ripple

### Determina la siguiente acción a partir del estado actual

Ir al siguiente paso pendiente busca la primera etapa sin marcar, despliega sus notas y enfoca su casilla. No omite una etapa solo porque el lector ya la haya abierto. Cuando se marcan las tres casillas, el botón para ir al siguiente paso se desactiva y el estado indica que todos los pasos de preparación están listos. Si se desmarca un elemento, la acción vuelve a estar disponible.

### Restablece juntos todos los estados relacionados

Restablecer desmarca las tres casillas, cierra las notas, actualiza el elemento de progreso y devuelve el foco a la primera casilla. No deja un aviso de tarea completada ni da a entender que se ha eliminado un registro remoto. En este estudio local, el estado se mantiene intencionadamente en la memoria, y la explicación visible indica que no se guarda ni se envía.

## Código fuente completo y verificación del sistema de diseño Ripple

### Ejecuta el estudio independiente

Guarda el documento completo proporcionado como index.html y sirve su directorio. Incluye sus propios tokens, marcado, contenido de ejemplo legible y código de interacción, por lo que no requiere recursos externos en tiempo de ejecución ni solicitudes de fuentes. Consulta los enlaces de referencia para revisar las API nativas de Ripple, las opciones de publicación y los recursos de marca autorizados antes de crear un servicio real.

1. Guarda el ejemplo completo de HTML como index.html.

2. Sirve el directorio localmente.

3. Prueba con el teclado el enfoque del siguiente paso, la finalización y el restablecimiento.

4. Para una integración nativa independiente de Ripple, usa el acceso oficial a los paquetes y fija las versiones.

### Verifica toda la transición de estado

Marca como listo el primer elemento, usa la acción para ir al siguiente paso y verifica que el foco pase a la segunda casilla y que sus notas estén desplegadas. Completa todos los elementos y confirma que la acción para ir al siguiente paso se desactive; después, desmarca un elemento y verifica que vuelva a estar disponible. Restablece y comprueba el progreso y los paneles desplegables. En una pantalla de ancho reducido, el panel de estado aparece debajo de la línea de tiempo y todos los controles siguen disponibles.

## Ejemplos de componentes del sistema de diseño Ripple

### index.html — línea de tiempo completa del taller

Todos los valores de tokens, estilos adaptables, contenido, progreso y comportamiento del foco en un único documento ejecutable.

```
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Workshop planning timeline</title><style>
:root{--rpl-clr-primary:#0052c2;--rpl-clr-primary-alt:#003174;--rpl-clr-accent:#0095ec;--rpl-clr-accent-alt:#e6f5fd;--rpl-clr-type-default:#1a1a1a;--rpl-clr-neutral-0:#fff;--rpl-clr-neutral-100:#f5f5f5;--rpl-clr-neutral-200:#e6e6e6;--rpl-clr-focus:#ff9e1b;--rpl-clr-focus-contrast:#1a1a1a;--rpl-sp-2:8px;--rpl-sp-4:16px;--rpl-sp-6:24px;--rpl-sp-8:32px;--rpl-sp-10:48px;--rpl-type-font-family:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--rpl-clr-neutral-0);color:var(--rpl-clr-type-default);font:16px/1.5 var(--rpl-type-font-family)}main{max-width:1160px;margin:auto;padding:var(--rpl-sp-8)}header{background:var(--rpl-clr-primary-alt);color:white;padding:var(--rpl-sp-8);border-bottom:8px solid var(--rpl-clr-accent)}.eyebrow{font-size:12px;letter-spacing:.08em;font-weight:700}h1{font-size:32px;line-height:36px;margin:16px 0;max-width:20ch}header p:last-child{max-width:65ch;margin-bottom:0}.layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:var(--rpl-sp-10);margin-top:var(--rpl-sp-8)}h2{font-size:24px;line-height:32px;margin:0 0 16px}h3{font-size:20px;line-height:28px;margin:0}.timeline{list-style:none;margin:0;padding:0 0 0 24px;border-left:2px solid var(--rpl-clr-primary);}.timeline>li{position:relative;padding:0 0 32px 8px}.timeline>li:before{content:'';position:absolute;width:14px;height:14px;background:var(--rpl-clr-primary);border:3px solid white;outline:2px solid var(--rpl-clr-primary);border-radius:50%;left:-32px;top:6px}.when{font-size:14px;font-weight:700;color:var(--rpl-clr-primary);margin:0 0 8px}.timeline p{margin:8px 0 16px}.timeline label{display:flex;align-items:flex-start;gap:8px;font-weight:700}.timeline input{width:20px;height:20px;flex-shrink:0;margin:2px 0;accent-color:var(--rpl-clr-primary)}details{background:var(--rpl-clr-neutral-100);margin:16px 0;padding:16px}summary{font-weight:700;cursor:pointer}details ul{padding-left:24px}.progress{background:var(--rpl-clr-accent-alt);padding:24px;align-self:start;border-top:4px solid var(--rpl-clr-primary)}progress{width:100%;height:16px;accent-color:var(--rpl-clr-primary)}button{font:700 16px/24px var(--rpl-type-font-family);padding:12px 16px;cursor:pointer;border:2px solid var(--rpl-clr-primary);background:var(--rpl-clr-primary);color:white;text-align:left;max-width:100%}button:hover{background:var(--rpl-clr-primary-alt)}.secondary{color:var(--rpl-clr-primary);background:white;margin-top:16px}button:disabled{cursor:default;opacity:.6}.progress button{width:100%;margin-top:16px}button:focus-visible,summary:focus-visible{outline:3px solid var(--rpl-clr-focus-contrast);outline-offset:2px;background:var(--rpl-clr-focus);color:var(--rpl-clr-focus-contrast);border-radius:0}input:focus-visible{outline:3px solid var(--rpl-clr-focus);outline-offset:3px}.note{font-size:14px;border-top:1px solid var(--rpl-clr-neutral-200);padding-top:24px;margin-top:8px;max-width:80ch}[hidden]{display:none!important}@media(min-width:992px){h1{font-size:56px;line-height:60px}h2{font-size:32px;line-height:40px}}@media(max-width:760px){main{padding:20px}header{padding:24px}.layout{grid-template-columns:1fr;gap:24px}.eyebrow{overflow-wrap:anywhere}}
</style></head><body><main><header><p class="eyebrow">OpenDesign · Workshop practice</p><h1>Make room for a useful conversation</h1><p>A short planning timeline for a team workshop. Mark what is ready and jump to the next unfinished step.</p></header><div class="layout"><section aria-labelledby="plan-heading"><h2 id="plan-heading">Your preparation timeline</h2><ol class="timeline">
<li><p class="when">One week before</p><h3>Define the decision</h3><p>Agree on the question the workshop should answer and the people who need to take part.</p><details><summary>Preparation notes</summary><ul><li>Write a one-sentence outcome.</li><li>Invite people with different perspectives on the decision.</li><li>Explain what is already decided and what is still open.</li></ul></details><label><input type="checkbox" data-step="0">The purpose and invitations are ready</label></li>
<li><p class="when">Two days before</p><h3>Prepare for participation</h3><p>Share a short agenda and offer a way to contribute before the session.</p><details><summary>Preparation notes</summary><ul><li>Send readable material in advance.</li><li>Check access needs and remote participation.</li><li>Choose someone to capture decisions.</li></ul></details><label><input type="checkbox" data-step="1">The agenda and access arrangements are ready</label></li>
<li><p class="when">On the day</p><h3>Leave with a next step</h3><p>Close with a clear decision, an owner and a date to review what happens next.</p><details><summary>Preparation notes</summary><ul><li>Leave time to compare different views.</li><li>Record unanswered questions separately.</li><li>Read back the agreed action before closing.</li></ul></details><label><input type="checkbox" data-step="2">The action and follow-up are recorded</label></li>
</ol></section><aside class="progress" aria-labelledby="progress-heading"><h2 id="progress-heading">Preparation status</h2><p id="count" role="status">0 of 3 steps ready</p><progress max="3" value="0" aria-label="Preparation progress"></progress><p id="next-note">Next: Define the decision</p><button id="next" type="button">Go to next unfinished step</button><button class="secondary" id="reset" type="button">Reset checklist</button></aside></div><p class="note">An original OpenDesign HTML/CSS study using published Ripple color, spacing and type values. It uses Arial, Ripple’s documented fallback, and does not run the Ripple Vue components or supply the VIC font. The checklist stays in this page and is not saved or sent.</p></main><script>
const checks=[...document.querySelectorAll('[data-step]')],names=['Define the decision','Prepare for participation','Leave with a next step'];const next=document.querySelector('#next');
function update(){let count=checks.filter(c=>c.checked).length,first=checks.findIndex(c=>!c.checked);document.querySelector('#count').textContent=`${count} of 3 steps ready`;document.querySelector('progress').value=count;document.querySelector('#next-note').textContent=first<0?'All three preparation steps are ready.':'Next: '+names[first];next.disabled=first<0;}
checks.forEach(c=>c.addEventListener('change',update));next.addEventListener('click',()=>{let check=checks.find(c=>!c.checked);if(check){check.closest('li').querySelector('details').open=true;check.focus();}});document.querySelector('#reset').addEventListener('click',()=>{checks.forEach(c=>c.checked=false);document.querySelectorAll('details').forEach(d=>d.open=false);update();checks[0].focus();});update();
</script></body></html>
```

Referencia de código

- Este es código de aplicación original, no el código fuente de un componente Vue de Ripple.

- No se necesita ningún recurso externo en tiempo de ejecución, solicitud de fuentes, cuenta ni envío de datos.

## Configuración del agente de IA del sistema de diseño Ripple

### Punto de partida para la implementación

Este comando sirve la interpretación independiente. Para usar Ripple de forma nativa, sigue las instrucciones oficiales de acceso a GitHub Packages y la configuración de Vue o solo de estilos que se indican en Fuentes.

```
# Save the complete example as index.html in an empty directory.
python3 -m http.server 8000
# Open http://localhost:8000/
```

### Una instrucción para tu proyecto

```
Crea la línea de tiempo completa y original del taller a partir del documento proporcionado. Conserva los valores de rol y espaciado documentados de Ripple, la alternativa explícita Arial, los estados diferenciados de lectura y preparación, el enfoque del siguiente paso pendiente, la finalización y el restablecimiento completo. Identifica el resultado como una interpretación de HTML/CSS, no como una implementación nativa de Vue de Ripple.
```

## Fuentes y alcance del sistema de diseño Ripple

Una interpretación de OpenDesign con HTML/CSS que utiliza valores de diseño publicados de Ripple y la alternativa Arial documentada. Esta vista previa no ejecuta componentes Vue de Ripple ni incluye recursos de la fuente VIC.

- Funciones del color Paleta predeterminada y roles de contenido.

- Espaciado La secuencia de espaciado completa publicada.

- Tipografía VIC, alternativas y pares tipográficos adaptables.

- Estados de foco Tratamiento de foco naranja y oscuro.

- Configuración nativa de solo estilos Acceso a paquetes y responsabilidades de la configuración de solo estilos.

- Tokens de diseño Nombres de roles y relaciones entre temas.

## Recursos relacionados con el sistema de diseño Ripple

### Scottish Government sistema de diseño

Aplica los roles tipográficos adaptables, de espaciado y de color del Gobierno escocés mediante un campo nativo con contador de caracteres que conserva el texto que supera el límite y permite corregirlo.

### Singapore Government sistema de diseño

Usa los SGDS Web Components actuales con tokens adaptables reales, temas de día y de noche, y controles nativos de cantidades con límites que mantienen sincronizado un plan local.

### Decanter

Compón páginas editoriales académicas con el preset de Tailwind de Decanter, una escala tipográfica adaptable y bordes de pantalla fluidos. Explora tarjetas de eventos originales con filtros de temas funcionales y resúmenes expandibles.


- [Referencia de implementación](https://www.ripple.sdp.vic.gov.au/design-system/design/design-tokens/)
- [Fuente](https://www.ripple.sdp.vic.gov.au/design-system/styles/colour/)
- [Fuente](https://www.ripple.sdp.vic.gov.au/design-system/styles/spacing/)
- [Fuente](https://www.ripple.sdp.vic.gov.au/design-system/styles/typography/)
- [Fuente](https://www.ripple.sdp.vic.gov.au/design-system/styles/focus-state/)
- [Referencia de código](https://www.ripple.sdp.vic.gov.au/design-system/design/design-tokens/)
- [Funciones del color Paleta predeterminada y roles de contenido.](https://www.ripple.sdp.vic.gov.au/design-system/styles/colour/)
- [Espaciado La secuencia de espaciado completa publicada.](https://www.ripple.sdp.vic.gov.au/design-system/styles/spacing/)
- [Tipografía VIC, alternativas y pares tipográficos adaptables.](https://www.ripple.sdp.vic.gov.au/design-system/styles/typography/)
- [Estados de foco Tratamiento de foco naranja y oscuro.](https://www.ripple.sdp.vic.gov.au/design-system/styles/focus-state/)
- [Configuración nativa de solo estilos Acceso a paquetes y responsabilidades de la configuración de solo estilos.](https://www.ripple.sdp.vic.gov.au/design-system/develop/usage/css-only/)
- [Tokens de diseño Nombres de roles y relaciones entre temas.](https://www.ripple.sdp.vic.gov.au/design-system/design/design-tokens/)
