Educação · Novo recurso

Sistema de design Rivet.

Crie páginas universitárias com a escala real de tokens de Rivet, a anatomia de componentes de HTML e as interações nativas pelo teclado. Explore uma página compacta de detalhes de oficina com abas acessíveis sobre informações de visita.

Guia OpenDesign8 capítulos21 entradas de referênciaGuia de aplicação original
01

Prévia da interface do sistema de design Rivet

Alterne painéis curtos com informações da visita usando o ponteiro ou o teclado; os detalhes essenciais do evento permanecem visíveis.

Planeje uma visita à oficinaAbrir exemplo completo
Rivet 2.9.1 CSS nativo e JavaScript; conteúdo fictício original, fonte alternativa Arial e contêiner da aplicação. · Referência de implementação
02

Referência de design do sistema de design Rivet

Rivet 2.9.1 CSS publicado e documentação oficial de tokens/utilitários. As conversões para rem pressupõem uma raiz de 16px; o exemplo local usa fontes Arial/Georgia e define sua própria largura externa de 64rem.

Tipografia

Fonte
Nome / RegraValor / ConfiguraçãoUso
--rvt-font-sansBentonSans, system sans-serif fallbacksFonte institucional; a prévia usa Arial explicitamente.
--rvt-font-serifGeorgiaPro, Georgia, Times New Roman, Times, serifFunção serifada; a prévia usa Georgia, se necessário.
rvt-ts-12 / 14 / 16 / 18 / 20 / 23 / 2612 / 14 / 16 / 18 / 20 / 23 / 26pxUtilitários numéricos com raiz de 16px.
rvt-ts-29 / 32 / 36 / 41 / 46 / 5229 / 32 / 36 / 41 / 46 / 52pxValores maiores; aplique a elementos de texto.
rvt-lh-tight / base / loose1.2 / 1.5 / 1.65Opções de altura de linha sem unidade.
--rvt-font-regular / medium / bold400 / 500 / 700A disponibilidade do peso médio depende da fonte.

Espaçamento e formas

Fonte
Nome / RegraValor / ConfiguraçãoUso
--rvt-spacing-xxs / xs / sm / md4 / 8 / 16 / 24pxEspaçamentos pequenos e no nível dos componentes.
--rvt-spacing-lg / xl / xxl32 / 40 / 64pxEspaços maiores entre elementos da composição.
--rvt-spacing-3-xl / 4-xl128 / 192pxEspaçamento amplo para títulos, não para o preenchimento dos painéis.
--rvt-border-radius-sm / md / lg.125 / .25 / .5rem2 / 4 / 8px na raiz padrão.
--rvt-width-4-xl48rem (768px)O token de largura difere do token de espaçamento com o mesmo sufixo.

Paleta

Fonte
Nome / RegraValor / ConfiguraçãoUso
--rvt-color-black-500#243142 Cor escura de referência principal.
--rvt-color-black-000 / black-100#f8f9fa / #e2e7e9Referências de superfícies claras e divisórias.
--rvt-color-crimson-500 / crimson-600#990000 / #800000Referências da família carmesim.
--rvt-color-blue-500 / blue-600#006298 / #004f80Referências da família azul.
--rvt-color-green-500#056e41 Família verde; não indica sucesso por si só.

Pontos de quebra

Fonte
Nome / RegraValor / ConfiguraçãoUso
--rvt-breakpoint-sm30em / 480pxUtilitários -sm-up.
--rvt-breakpoint-md46.25em / 740pxUtilitários -md-up.
--rvt-breakpoint-lg67.5em / 1080pxUtilitários -lg-up.
--rvt-breakpoint-xl78.75em / 1260pxUtilitários -xl-up.
--rvt-breakpoint-xxl87.5em / 1400pxUtilitários -xxl-up.
03

Guia completo do sistema de design Rivet

Um guia prático para escolher, aplicar e avaliar este sistema em uma interface real.

DESIGN-indiana-rivet.md

Orientações completas, um ponto de partida para a implementação e links para o código-fonte.

Baixar o guia

Sistema de design Rivet para tarefas universitárias

Um sistema de componentes com ponto de entrada HTML

Rivet fornece CSS, JavaScript, classes utilitárias e layouts de página para interfaces da Indiana University. O exemplo funcional usa diretamente o pacote para navegador 2.9.1: não precisa de React nem de um compilador de componentes. O objetivo é criar uma pequena página de detalhes de uma oficina, com informações complementares sobre a visita, e não um painel disfarçado de inscrição para admissão.

Com base neste guia de OpenDesign

A identidade institucional e o conteúdo de exemplo permanecem separados. Esta página não reproduz uma assinatura visual da IU, não afirma registrar um visitante nem confirma a existência de um espaço real. Para um serviço universitário em produção, use a marca aprovada pela universidade e siga o processo de gestão de conteúdo. A licença do código não transforma detalhes de eventos inventados em informações oficiais.

Consulte a especificação de apoio

Escala tipográfica e funções das fontes do sistema de design Rivet

Aplique utilitários de tamanho exato ao texto

A família sem serifa de Rivet começa com BentonSans; a família com serifa começa com GeorgiaPro. O exemplo local usa deliberadamente Arial e Georgia como fontes alternativas e não faz solicitações de fontes remotas. Uma implementação em produção deve verificar as permissões institucionais e a forma de disponibilizar as fontes, em vez de copiar os arquivos de fonte desta prévia.

A escala numérica segue uma progressão de segunda maior arredondada. O título do exemplo usa rvt-ts-32 e o título do painel, rvt-ts-23; os tamanhos compilados são, respectivamente, 2rem e 1.4375rem. O texto-base tem 1rem. Use rvt-lh-base para uma altura de linha de 1.5, rvt-lh-tight para 1.2 e rvt-lh-loose para 1.65. Aplique essas classes aos elementos de texto para evitar que controles aninhados em um contêiner herdem uma escala de exibição indesejada.

Função neste exemploClasseValor com raiz de 16px
Títulorvt-ts-3232px
Título do painelrvt-ts-2323px
Corpo do textorvt-ts-1616px
Rótulo pequenorvt-ts-1414px

Consulte a especificação de apoio

Cores e superfícies do sistema de design Rivet

O carmesim não é a única cor

A paleta de referência diferencia crimson-500 (#990000) de blue-500 (#006298). O exemplo usa o carmesim com moderação em uma linha superior e controles nativos de Rivet para indicar interatividade. O texto usa black-500 (#243142), a superfície de informações complementares usa black-000 (#f8f9fa) e os divisores usam black-100 (#e2e7e9). Essas são entradas reais da paleta, não valores extraídos de uma captura de tela.

O nome de uma cor não garante que todas as combinações tenham contraste suficiente. Mantenha o indicador de foco nativo das abas e o estado selecionado junto com o conteúdo visível e o valor de aria-selected. Não indique um painel ativo apenas mudando o rótulo para carmesim. O aviso sobre o evento fictício do exemplo permanece como texto comum e legível, acima do seletor de abas.

Consulte a especificação de apoio

Espaçamento, larguras e cantos do sistema de design Rivet

Uma escala nomeada com grandes intervalos intencionais

O espaçamento de Rivet não consiste em incrementos consecutivos de quatro pixels. A escala vai de xxs, com 4px, a xs, com 8px; sm, com 16px; md, com 24px; lg, com 32px; xl, com 40px; xxl, com 64px; 3-xl, com 128px; e 4-xl, com 192px, usando uma raiz de 16px. O exemplo usa sm para a margem interna da página em dispositivos móveis, md para o espaçamento ao redor do painel e lg para a separação vertical entre seções principais.

O contêiner de leitura do exemplo, com largura máxima de 64rem, é uma escolha da aplicação, não um token de contêiner atribuído a Rivet. Dentro dele, o token de largura 4-xl é 48rem/768px; spacing-4-xl é 12rem/192px. O mesmo sufixo não indica a mesma dimensão. Radius-sm é .125rem, md é .25rem e lg é .5rem; não substitua todos os componentes por um estilo único de cartões com cantos muito arredondados.

Consulte a especificação de apoio

Abas: estrutura e estados do sistema de design Rivet

Associe os valores dos dados e depois inicialize

Um conjunto de abas tem um contêiner rvt-tabs, uma rvt-tabs__tablist com um aria-label descritivo, botões como acionadores e elementos rvt-tabs__panel como painéis correspondentes. Os valores de data-rvt-tab e data-rvt-tab-panel devem corresponder em cada par. O marcador de seleção inicial data-rvt-tab-init deve ficar em um painel, não em seu botão. Rivet pode gerar identificadores, mas os pares explícitos facilitam a inspeção deste exemplo.

Rivet.init() adiciona as funções das abas, o estado de seleção, as relações entre painéis e o comportamento do teclado. Não implemente outro manipulador de cliques que alterne independentemente a visibilidade: dois responsáveis pelo estado podem fazer com que a aba selecionada e o painel visível fiquem dessincronizados. A marcação completa abaixo contém conteúdo original e conciso e pode ser inserida entre as tags de folha de estilo e de script na configuração.

html
<div class="rvt-tabs" data-rvt-tabs="visit">
  <div class="rvt-tabs__tablist" aria-label="Plan your workshop visit" data-rvt-tablist>
    <button class="rvt-tabs__tab" data-rvt-tab="overview">Overview</button>
    <button class="rvt-tabs__tab" data-rvt-tab="arrival">Arrival</button>
    <button class="rvt-tabs__tab" data-rvt-tab="access">Access</button>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="overview" data-rvt-tab-init>
    <h2 class="rvt-ts-23 rvt-text-bold">A practical introduction to archives</h2>
    <p>Compare a photograph, a newspaper page, and a handwritten letter. A facilitator will explain how to record a source and distinguish an observation from an interpretation.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="arrival">
    <h2 class="rvt-ts-23 rvt-text-bold">Arrive at the learning studio</h2>
    <p>In this fictional example, the welcome desk opens at 9:45. The workshop starts at 10:00 in Room 204. Bring a notebook; all source materials are provided.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="access">
    <h2 class="rvt-ts-23 rvt-text-bold">Choose a comfortable way to participate</h2>
    <p>The example session offers large-print copies and a quiet reading space. Visitors can work with a partner or review material independently. These are specimen details, not verified campus facilities.</p>
  </div>
</div>

Referência de código

Consulte a especificação de apoio

O que deve ficar fora das abas no sistema de design Rivet

Mantenha visíveis as informações essenciais da visita

O título do evento, a data, a duração e o aviso de que se trata de um exemplo fictício permanecem fora das abas. O visitante não deve precisar abrir um painel oculto para descobrir se o conteúdo descreve uma reserva real. Cada painel contém um título curto e um parágrafo; os três rótulos são breves o bastante para caber em uma única linha em uma tela estreita.

As abas são apropriadas quando o conteúdo relacionado pode ser lido separadamente. Não são uma boa opção para comparar as taxas de vários programas ou dois planos de estudo, pois a alternância oculta um dos lados da comparação. Para esse caso, uma tabela ou uma lista aberta é uma composição melhor.

  • Use Visão geral, Chegada e Acessibilidade para apresentar explicações complementares que sejam úteis por si só.
  • Mantenha prazos, avisos de cancelamento e a ação principal visíveis fora dos painéis das abas.
  • Use uma tabela comparativa quando o leitor precisar analisar valores de várias categorias ao mesmo tempo.

Consulte a especificação de apoio

Uso responsivo e do teclado no sistema de design Rivet

Cinco pontos de quebra com abordagem mobile-first

Os pontos de quebra de Rivet são 30em, 46.25em, 67.5em, 78.75em e 87.5em. Com o tamanho inicial de fonte habitual de 16px, correspondem a 480, 740, 1080, 1260 e 1400px. O ponto de quebra médio é 740px, não o valor convencional de 768px adotado em outros sistemas. Os utilitários responsivos acrescentam o ponto de quebra seguido de -up, como em rvt-ts-32-md-up.

A faixa de abas não deve se dividir em várias linhas empilhadas. Mantenha os rótulos curtos e teste o texto real em telas estreitas; reduzir o tamanho da fonte para fazê-lo caber não substitui a escolha do componente de navegação adequado. Na interação nativa, as setas para a esquerda e para a direita movem o foco entre as abas e percorrem as opções em sequência circular. Enter ou Espaço ativa a aba em foco. Os elementos interativos dos painéis fechados não devem permanecer na ordem de tabulação.

Consulte a especificação de apoio

Instale e verifique o exemplo do sistema de design Rivet

Um pacote para navegador com uma inicialização

A instalação fornecida fixa a versão 2.9.1 e copia o CSS publicado e o JavaScript minificado para navegadores no diretório estático do site. Sirva esses arquivos antes de chamar Rivet.init(). Se uma estrutura de interface montar o HTML posteriormente, use o ciclo de vida documentado de integração do JavaScript, em vez de presumir que a verificação inicial da página encontrou os novos elementos.

A prévia independente executa localmente os arquivos oficiais CSS e JavaScript. A fonte alternativa e a largura do contêiner são substituições explícitas definidas pela aplicação. Não há solicitação de agendamento pela rede, persistência, análise de dados nem confirmação gerada. As abas nativas são toda a interação demonstrada.

  1. Carregue a folha de estilos local e confirme que os três acionadores e painéis das abas existem antes da inicialização.
  2. Inicialize o Rivet, alterne entre as abas com o ponteiro e repita usando as teclas de seta e Enter ou Espaço.
  3. Verifique a aba selecionada, o painel visível, o indicador de foco e a largura do documento em telas de desktop e em dispositivos móveis estreitos.

Consulte a especificação de apoio

Exemplos de componentes do sistema de design Rivet

Seletor de informações de visita com três painéis

Atributos de dados correspondentes explícitos e um painel inicial; o Rivet nativo controla o foco e a visibilidade.

html
<div class="rvt-tabs" data-rvt-tabs="visit">
  <div class="rvt-tabs__tablist" aria-label="Plan your workshop visit" data-rvt-tablist>
    <button class="rvt-tabs__tab" data-rvt-tab="overview">Overview</button>
    <button class="rvt-tabs__tab" data-rvt-tab="arrival">Arrival</button>
    <button class="rvt-tabs__tab" data-rvt-tab="access">Access</button>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="overview" data-rvt-tab-init>
    <h2 class="rvt-ts-23 rvt-text-bold">A practical introduction to archives</h2>
    <p>Compare a photograph, a newspaper page, and a handwritten letter. A facilitator will explain how to record a source and distinguish an observation from an interpretation.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="arrival">
    <h2 class="rvt-ts-23 rvt-text-bold">Arrive at the learning studio</h2>
    <p>In this fictional example, the welcome desk opens at 9:45. The workshop starts at 10:00 in Room 204. Bring a notebook; all source materials are provided.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="access">
    <h2 class="rvt-ts-23 rvt-text-bold">Choose a comfortable way to participate</h2>
    <p>The example session offers large-print copies and a quiet reading space. Visitors can work with a partner or review material independently. These are specimen details, not verified campus facilities.</p>
  </div>
</div>

Referência de código

  • Mantenha o título do evento e as informações essenciais fora dos painéis.
  • Inclua o CSS e o JavaScript publicados e chame Rivet.init() uma vez.
  • As teclas de seta movem o foco; Enter ou Espaço ativa a aba em foco.

Exemplo completo independente

O documento completo inclui layout, controles e inicialização. Extraia o arquivo de exemplo indicado para obter os recursos do fornecedor no caminho relativo exato e, em seguida, disponibilize-o por HTTP.

html
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Workshop visit — Rivet specimen</title><link rel="stylesheet" href="vendor/rivet-2.9.1/rivet.min.css"><style>:root{--rvt-font-sans:Arial,sans-serif;--rvt-font-serif:Georgia,serif}body,body *,body *::before,body *::after{font-family:Arial,sans-serif!important}body{border-top:8px solid #990000;margin:0;background:#fff;color:#243142}.shell{max-width:64rem;margin:auto;padding:2rem 1rem 3rem}.eyebrow{font-size:.875rem;letter-spacing:.06em;color:#4c5a69}.intro{max-width:48rem}.facts{display:flex;gap:1.5rem;flex-wrap:wrap;padding:1.5rem;margin:2rem 0;background:#f8f9fa;border:1px solid #e2e7e9}.facts p{margin:0}.facts strong{display:block;font-size:.875rem}.rvt-tabs__panel{min-height:13rem}footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #e2e7e9;font-size:.875rem;color:#4c5a69}h1{margin:.5rem 0 1rem}@media(min-width:46.25em){.shell{padding:3rem 2rem}.rvt-tabs__panel{min-height:12rem}}</style></head><body><main class="shell"><p class="eyebrow">LEARNING STUDIO · RIVET COMPONENT EXAMPLE</p><h1 class="rvt-ts-32 rvt-text-bold rvt-lh-tight">Reading the archive</h1><p class="intro rvt-ts-18">A hands-on introduction to working with historical sources. Explore the visit information below.</p><div class="facts"><p><strong>Session</strong>Saturday · 10:00–11:30</p><p><strong>Format</strong>Small-group workshop</p><p><strong>Location</strong>Learning studio · Room 204</p></div><p class="rvt-ts-14 rvt-m-bottom-lg">Fictional event for interface demonstration. No reservation is made.</p><div class="rvt-tabs" data-rvt-tabs="visit">
  <div class="rvt-tabs__tablist" aria-label="Plan your workshop visit" data-rvt-tablist>
    <button class="rvt-tabs__tab" data-rvt-tab="overview">Overview</button>
    <button class="rvt-tabs__tab" data-rvt-tab="arrival">Arrival</button>
    <button class="rvt-tabs__tab" data-rvt-tab="access">Access</button>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="overview" data-rvt-tab-init>
    <h2 class="rvt-ts-23 rvt-text-bold">A practical introduction to archives</h2>
    <p>Compare a photograph, a newspaper page, and a handwritten letter. A facilitator will explain how to record a source and distinguish an observation from an interpretation.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="arrival">
    <h2 class="rvt-ts-23 rvt-text-bold">Arrive at the learning studio</h2>
    <p>In this fictional example, the welcome desk opens at 9:45. The workshop starts at 10:00 in Room 204. Bring a notebook; all source materials are provided.</p>
  </div>
  <div class="rvt-tabs__panel" data-rvt-tab-panel="access">
    <h2 class="rvt-ts-23 rvt-text-bold">Choose a comfortable way to participate</h2>
    <p>The example session offers large-print copies and a quiet reading space. Visitors can work with a partner or review material independently. These are specimen details, not verified campus facilities.</p>
  </div>
</div><footer>Native Rivet 2.9.1 tabs · Arial font fallback · Original example content<br>Keyboard: use Left and Right to move between tabs, then Enter or Space to activate.</footer></main><script src="vendor/rivet-2.9.1/rivet.min.js"></script><script>Rivet.init();</script></body></html>

Referência de código

  • Baixe o exemplo completo em Fontes. O README informa o comando exato para iniciá-lo localmente.
  • Mantenha os caminhos do fornecedor relativos a este documento; o arquivo inclui todos os recursos usados nesta prévia.
04

Configuração do agente do sistema de design Rivet

Ponto de partida para implementação

Caminhos dos arquivos de navegador do rivet-core 2.9.1 publicados, verificados com base no guia oficial de primeiros passos. Ajuste o diretório público ao seu servidor; a prévia usa cópias locais e uma fonte alternativa. O ZIP completo do exemplo funcional, em Fontes, também inclui as dependências exatas da prévia e o documento completo. Extraia-o, execute python3 -m http.server 8080 nesse diretório e abra http://localhost:8080/indiana-rivet.html. Não abra exemplos baseados em módulos usando file://.

bash
npm install [email protected]
mkdir -p public/vendor/rivet
cp node_modules/rivet-core/css/rivet.min.css public/vendor/rivet/
cp node_modules/rivet-core/js/rivet.min.js public/vendor/rivet/

# Add these tags to the HTML served from public/:
# <link rel="stylesheet" href="/vendor/rivet/rivet.min.css">
# ...component markup...
# <script src="/vendor/rivet/rivet.min.js"></script>
# <script>Rivet.init();</script>

Um prompt para seu projeto

Prompt para agente de IA
Crie uma página de detalhes de oficina universitária Rivet 2.9.1 usando abas HTML nativas. Carregue rivet.min.css e rivet.min.js e chame Rivet.init(). Use valores correspondentes para data-rvt-tab/data-rvt-tab-panel, um rótulo significativo para a lista de abas e data-rvt-tab-init no primeiro painel. Mantenha o título, a data e os avisos essenciais fora das abas. Use texto corrido de 16px, títulos de painel de 23px, título de página de 32px e tokens de espaçamento Rivet. Respeite os pontos de quebra de 480/740/1080/1260/1400px. Mantenha os painéis concisos, preserve o comportamento de foco e seleção pelo teclado e identifique todos os detalhes inventados do evento como conteúdo demonstrativo. Não use marcas de identidade visual da IU sem autorização.
05

Fontes e escopo do sistema de design Rivet

Uma referência técnica Rivet e demonstração fictícia de oficina. O uso de marcas institucionais e fontes continua sujeito às regras da Indiana University; não há visita real nem possibilidade de agendamento.