# Sistema de design TDesign

## Visualização da interface do sistema de design TDesign

Valide uma regra, examine seu efeito local e remova-a. Nenhuma política é implantada.

## Referência de design do sistema de design TDesign

TDesign React com os temas e componentes atuais da ramificação pública develop. Os valores do tema são instantâneos do código-fonte, não uma garantia de compatibilidade com uma versão específica do pacote. A visualização independente é uma interpretação em HTML; o exemplo de React usa o pacote real API.

### Papéis do tema claro

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| --td-brand-color | #0052d9 | Ação primária, definida a partir da etapa 7 da marca. |
| --td-brand-color-hover | #366ef4 | Estado de foco da ação primária. |
| --td-brand-color-active | #003cab | Ação pressionada. |
| --td-brand-color-light | #f2f3ff | Superfície sutil de seleção. |
| --td-bg-color-page | #eee | Plano de fundo externo. |
| --td-bg-color-container | #fff | Painéis do editor e da tabela. |
| --td-text-color-primary | rgba(0,0,0,.9) | Texto principal. |
| --td-text-color-secondary | rgba(0,0,0,.6) | Texto complementar. |
| --td-border-level-1-color | #e8e8e8 | Divisórias. |
| --td-border-level-2-color | #ddd | Bordas dos controles. |
| --td-error-color | #d54941 | Papel do erro no campo. |
| --td-success-color | #2ba471 | Papel positivo; não deduza o contraste apenas pela cor. |
### Papéis tipográficos

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| --td-font-family | PingFang SC, Microsoft YaHei, Arial Regular | Pilha voltada para o sistema; esta declaração não baixa fontes. |
| --td-font-body-small | 12px / 20px | Rótulos secundários compactos. |
| --td-font-body-medium | 14px / 22px | Texto principal do console. |
| --td-font-body-large | 16px / 24px | Texto de leitura maior. |
| --td-font-title-medium | 600 16px / 24px | Título do painel. |
| --td-font-headline-small | 600 24px / 32px | Título da página. |
| --td-font-display-medium | 600 48px / 56px | Papel de destaque, desnecessário em um editor de políticas. |
### Tamanhos e espaçamento semântico

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| --td-size-1 … --td-size-8 | 2, 4, 6, 8, 12, 16, 20, 24px | Escala base não linear. |
| --td-size-9 … --td-size-16 | 28, 32, 36, 40, 48, 56, 64, 72px | Valores maiores da escala. |
| --td-comp-size-m | 32px | Alias de altura média do componente. |
| --td-comp-paddingLR-m | 12px | Alias de preenchimento horizontal médio. |
| --td-comp-paddingTB-l | 16px | Alias de preenchimento vertical grande. |
| --td-comp-margin-xl | 20px | O alias de espaçamento é diferente de padding xl. |
| --td-pop-padding-xxl | 16px | Alias de preenchimento de pop-up. |
### Tratamento dos cantos

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| --td-radius-small | 2px | Raio pequeno. |
| --td-radius-default | 3px | Raio padrão. |
| --td-radius-medium | 6px | Raio médio. |
| --td-radius-large | 9px | Raio grande. |
| --td-radius-extraLarge | 12px | Raio extragrande. |
| --td-radius-round | 999px | Estilo em formato de pílula. |
| --td-radius-circle | 50% | O tratamento circular exige dimensões iguais. |
### Contratos de Form e Table

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| Form.useForm() | [form] | Passe a instância para Form. |
| FormItem name | Registered field key | Deve corresponder aos campos enviados e aos erros definidos por setFields. |
| Form onSubmit | event.validateResult === true | Só atualize a aplicação após a validação bem-sucedida. |
| form.setFields | name + status + validateMessage | Defina um erro concreto para o campo. |
| FormItem for | Input association | O exemplo oficial de Switch usa for="status". |
### Configuração da tabela de dados

| Nome / Regra | Valor / Configuração | Uso |
| --- | --- | --- |
| rowKey | Stable unique data property | O exemplo gera um id uma única vez por regra. |
| columns[].colKey | Data key or custom cell key | Use uma coluna de ações dedicada. |
| columns[].cell | ({row,col,rowIndex,colIndex}) | Renderize controles específicos para cada linha. |
| tableLayout | fixed by default; auto available | Defina larguras de coluna adequadas a caminhos longos de recursos. |
| disableDataPage | false by default | A Table cuida da paginação local, a menos que ela seja explicitamente desativada. |
## Guia completo do sistema de design TDesign

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

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

## Sistema de design TDesign: um sistema de console com famílias de implementação explícitas

### Escolha a implementação de React

> TDesign tem implementações distintas para cada framework. Este exemplo usa intencionalmente tdesign-react, não um pacote Vue de nome semelhante nem o conjunto de componentes para dispositivos móveis. A folha de estilos global faz parte da integração: importar apenas um componente não fornece as regras de layout e tema mostradas.

A unidade funcional é um Form registrado ao lado de uma Table estruturada. Nome, caminho do recurso e estado de ativação são campos de dados; remover uma linha é uma ação da tabela. Seria falso afirmar que um API agora está protegido em toda a página, pois este exemplo não tem um sistema de autorização no backend.

Consulte a especificação de apoio

## Sistema de design TDesign: cores semânticas, incluindo diferenças reais do modo escuro

### A etapa sete da marca não é universal em todos os modos

No tema claro, o papel da marca é definido pela etapa sete; no tema escuro, pela etapa oito. Preserve a variável semântica no CSS da aplicação, em vez de copiar o azul claro para cada componente. O plano de fundo escuro é #181818 e o contêiner é #242424; são superfícies distintas.

A visualização permanece intencionalmente no modo claro. Em uma implementação nativa, defina theme-mode="dark" no elemento raiz do documento para usar as regras publicadas para o modo escuro; aplique o escopo de qualquer ilustração de política personalizada separadamente, em vez de recolorir todas as imagens com um filtro.

```
document.documentElement.setAttribute('theme-mode', 'dark');
// Restore the published light theme:
document.documentElement.setAttribute('theme-mode', 'light');
```

Referência de código

Consulte a especificação de apoio

## Sistema de design TDesign: tipografia compacta sem perder o significado dos campos

### Use os papéis tipográficos completos

O estilo Body medium define tamanho de 14px e altura de linha de 22px. Title medium acrescenta peso 600 em 16/24; o título pequeno usa 24/32. Cada estilo tem uma função distinta: dados da tabela, rótulos dos painéis e título da página não devem virar todos texto principal em negrito.

Os nomes das famílias de fontes do código-fonte correspondem a fontes do sistema. Acrescente um fallback sans-serif adequado à tipografia da aplicação e confira textos em chinês e latim ao mesmo tempo. Um caminho de recurso pode usar o estilo monoespaçado da aplicação sem que isso implique que seja um token tipográfico de TDesign.

Consulte a especificação de apoio

## Sistema de design TDesign: associe os aliases de tamanho à região correspondente

### Os nomes dos espaçamentos não são intercambiáveis

O preenchimento horizontal médio do componente corresponde a 12px, mas a margem extragrande do componente corresponde a 20px. Não converta todos os sufixos semânticos com base em uma única escala presumida. O editor usa preenchimento externo de 24px e espaçamento menor entre campos para manter os controles agrupados.

Na visualização independente, em telas estreitas, o editor fica acima da lista de regras. Esse ponto de quebra é uma decisão da aplicação, não uma garantia do framework. Caminhos longos de API quebram linha na lista, sem forçar a página inteira a ficar mais larga que a janela de visualização.

Consulte a especificação de apoio

## Sistema de design TDesign: registre, valide e então adicione uma regra

### Associe o erro do campo à respectiva chave

A instância de Form é passada ao componente Form; cada FormItem fornece o nome do campo. O manipulador de envio primeiro verifica validateResult e, em seguida, lê os campos coletados. As verificações da aplicação normalizam as strings e rejeitam caminhos duplicados, para que dois rótulos não configurem silenciosamente o mesmo endpoint de exemplo.

1. Registre name, path e enabled usando as chaves de FormItem.

2. Rejeite nomes ausentes e caminhos que não comecem com / antes de adicionar dados.

3. Use setFields com a mesma chave de campo para exibir o erro e manter os valores digitados disponíveis para correção.

4. Adicione um id estável somente após as verificações; informe que o resultado é local.

Consulte a especificação de apoio

## Sistema de design TDesign: preserve a identidade das linhas ao editar e remover

### Separe os dados exibidos das células de ação

A tabela recebe seu campo id por meio de rowKey. A coluna enabled converte um valor Boolean em texto legível, em vez de mostrar um ponto colorido sem rótulo. A coluna de ações renderiza um botão com o nome da linha, evitando que tecnologias assistivas encontrem três controles Remover indistinguíveis.

Para um conjunto pequeno de regras, a tabela completa pode permanecer sem paginação. Se a paginação for adicionada, diferencie o recorte local integrado dos dados controlados pelo servidor antes de definir disableDataPage. Reutilizar posições do array como identidade não é seguro, pois a remoção altera a ordem dos itens.

- name é o rótulo apresentado ao usuário; path é a identidade do recurso.

- enabled é um dado da aplicação e é exibido com texto explícito.

- actions é uma coluna personalizada e não precisa corresponder a uma propriedade armazenada.

Consulte a especificação de apoio

## Sistema de design TDesign: o estado local não é uma política implantada

### Teste o editor de políticas como um editor

A visualização offline usa controles nativos rotulados, uma região de status dinâmica e foco visível ao navegar pelo teclado. Ao enviar um nome vazio ou um caminho duplicado, o formulário deve permanecer aberto e indicar o problema específico. Remover uma regra altera apenas a lista local.

Um serviço de produção ainda precisa de validação no servidor, autorização, tratamento de conflitos, registro de auditoria e recuperação após uma rejeição de salvamento. Esses aspectos devem ser planejados em torno deste editor, não simulados com uma notificação de sucesso que afirme que a implantação foi concluída.

Consulte a especificação de apoio

## Sistema de design TDesign: integre o pacote e mantenha o exemplo fiel à realidade

### Use o exemplo nativo no código da aplicação

O exemplo de React importa os componentes reais Form, Input, Switch, Button e Table de TDesign. A visualização incorporada é uma interpretação independente em HTML/CSS, para funcionar sem baixar o pacote nem acessar a rede. As verificações de interação não comprovam que todas as dependências da biblioteca foram compiladas no seu projeto.

Os arquivos de tema vinculados são fontes atuais da ramificação de desenvolvimento. Confira a versão instalada no arquivo de lock e compare seus tokens antes de copiar substituições personalizadas. Esta página documenta intencionalmente os nomes dos papéis e a procedência do código-fonte para que mudanças futuras no tema possam ser avaliadas, em vez de ficarem ocultas atrás de uma paleta ilustrativa.

Consulte a especificação de apoio

## Exemplos de componentes do sistema de design TDesign

### Exemplo interativo completo e independente

Salve o documento completo como index.html e abra-o em um navegador. Interpretação independente de HTML/CSS dos tokens claros de TDesign e da composição de Form/Table; não é o ambiente de execução nativo de React.

```
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>TDesign API rule editor</title><style>
*{box-sizing:border-box}body{margin:0;background:#eee;color:rgba(0,0,0,.9);font:14px/22px Arial,sans-serif}header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #ddd}.mark{font-weight:700;color:#0052d9;font-size:20px}.tag{background:#f2f3ff;color:#003cab;padding:4px 8px;border-radius:3px}main{padding:24px;max-width:1100px;margin:auto}h1{font-size:24px;line-height:32px;margin:0 0 8px}h2{font-size:16px;line-height:24px;margin:0 0 20px}.sub{color:rgba(0,0,0,.6);margin:0 0 24px}.layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px}.panel{background:white;border:1px solid #e8e8e8;border-radius:6px;padding:24px}label{display:block;margin-bottom:6px}input[type=text]{width:100%;height:36px;border:1px solid #ddd;border-radius:3px;padding:0 12px;font:inherit;margin-bottom:4px}input:focus,button:focus-visible{outline:2px solid #0052d9;outline-offset:3px}.hint{font-size:12px;color:#666;margin:0 0 20px}.toggle{display:flex;gap:8px;align-items:center;margin:18px 0 24px}.toggle input{accent-color:#0052d9;width:18px;height:18px}.toggle label{margin:0}button{font:inherit;border:1px solid #ddd;border-radius:3px;padding:5px 12px;background:white;color:#0052d9;cursor:pointer}button:hover{background:#f2f3ff}.primary{background:#0052d9;color:white;border-color:#0052d9;width:100%;margin-top:8px}.primary:hover{background:#366ef4}.error{color:#ad352f;min-height:22px;margin:0}.listhead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8e8e8;padding-bottom:16px;margin-bottom:0}.listhead h2{margin:0}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:20px 0;border-bottom:1px solid #e8e8e8}.row strong{display:block;font-weight:600}.path{display:block;overflow-wrap:anywhere;font:12px/20px monospace;color:#666}.state{font-size:12px;color:#003cab}.row button{align-self:center;font-size:12px}.diagram{margin-top:24px;padding:16px;background:#f2f3ff;border-radius:3px;display:flex;align-items:center;gap:12px}.node{padding:8px 12px;background:white;border:1px solid #b5c7ff;border-radius:3px}.diagram span{color:#0052d9}.status{font-size:12px;color:#555;min-height:20px;margin:20px 0 0}.foot{font-size:12px;color:#666;margin:20px 0 0}#empty{padding:24px 0;color:#666}@media(max-width:680px){header{padding:16px}.layout{grid-template-columns:1fr}main{padding:20px 16px}.panel{padding:20px}.diagram{flex-wrap:wrap}.tag{font-size:12px}}
</style><header><span class="mark">T / Console</span><span class="tag">Local policy workspace</span></header><main><h1>API access rules</h1><p class="sub">Define which resources belong in your draft policy.</p><div class="layout"><section class="panel"><h2>Create a rule</h2><form id="editor" novalidate><label for="name">Rule name</label><input type="text" id="name" aria-describedby="error"><p class="hint">A short label your team can recognize.</p><label for="path">Resource path</label><input type="text" id="path" placeholder="/reports" aria-describedby="path-help error"><p class="hint" id="path-help">Start with /. Each path must be unique.</p><div class="toggle"><input id="enabled" type="checkbox" checked><label for="enabled">Enabled in this draft</label></div><p class="error" id="error" role="alert"></p><button class="primary">Add local rule</button></form><p class="foot">This editor does not connect to an API gateway.</p></section><section class="panel"><div class="listhead"><h2>Policy rules</h2><span id="count" class="tag"></span></div><div id="rules"></div><div class="diagram" aria-label="Illustrative policy flow"><div class="node">Client</div><span aria-hidden="true">→</span><div class="node">Policy draft</div><span aria-hidden="true">→</span><div class="node">Resource</div></div><p class="status" id="status" role="status">Two example rules are loaded locally.</p></section></div><p class="foot">HTML interpretation of TDesign light theme roles · Native React integration is provided in the guide.</p></main><script>
const $=id=>document.getElementById(id);let rules=[{id:1,name:'Reports read access',path:'/reports',enabled:true},{id:2,name:'Billing export',path:'/billing/export',enabled:false}];let next=3;
function render(){const host=$('rules');host.replaceChildren();$('count').textContent=rules.length+' rules';if(!rules.length){const p=document.createElement('p');p.id='empty';p.textContent='No rules in this draft. Add a resource to begin.';host.append(p)}for(const rule of rules){const row=document.createElement('div');row.className='row';const copy=document.createElement('div'),name=document.createElement('strong'),path=document.createElement('code'),state=document.createElement('span'),remove=document.createElement('button');name.textContent=rule.name;path.textContent=rule.path;path.className='path';state.textContent=rule.enabled?'Enabled':'Disabled';state.className='state';copy.append(name,path,state);remove.textContent='Remove';remove.setAttribute('aria-label','Remove '+rule.name);remove.onclick=()=>{rules=rules.filter(x=>x.id!==rule.id);render();$('status').textContent='Removed '+rule.name+' from this local draft.';$('name').focus()};row.append(copy,remove);host.append(row)}}
$('editor').onsubmit=e=>{e.preventDefault();$('error').textContent='';for(const id of ['name','path'])$(id).removeAttribute('aria-invalid');const name=$('name').value.trim(),path=$('path').value.trim();const fail=!name?['name','Enter a rule name.']:!path.startsWith('/')?['path','Start the resource path with /.']:rules.some(r=>r.path===path)?['path','This path already has a rule.']:null;if(fail){$('error').textContent=fail[1];$(fail[0]).setAttribute('aria-invalid','true');$(fail[0]).focus();return}rules.push({id:next++,name,path,enabled:$('enabled').checked});render();$('status').textContent='Added '+name+' locally. No policy was deployed.';$('name').value='';$('path').value='';$('name').focus()};render();
</script></html>
```

Referência de código

- As regras existem apenas na coleção de exemplo visível. O registro nativo de Form, os callbacks de validação e a renderização de Table são demonstrados separadamente em React.

### Editor de regras registradas e remoção específica por linha

Form coleta o nome, o caminho do recurso e o estado de ativação. A validação da aplicação detecta nomes vazios, caminhos malformados e recursos duplicados antes de adicionar uma linha à Table local.

```
// npm install tdesign-react react react-dom
// main.jsx — a client-side React entry point
import React, {useState} from 'react';
import {createRoot} from 'react-dom/client';
import {Button, Form, Input, Switch, Table} from 'tdesign-react';
import 'tdesign-react/es/style/index.css';
const {FormItem} = Form;
function AccessRules() {
  const [form] = Form.useForm();
  const [rules, setRules] = useState([]);
  const [notice, setNotice] = useState('No local rules yet.');
  const addRule = ({validateResult, fields}) => {
    if (validateResult !== true) return;
    const name = String(fields.name || '').trim();
    const path = String(fields.path || '').trim();
    const invalid = !name ? ['name','Enter a rule name.'] :
      !path.startsWith('/') ? ['path','Start the resource path with /.'] :
      rules.some(rule => rule.path === path) ? ['path','This path already has a rule.'] : null;
    if (invalid) {
      form.setFields([{name:invalid[0],status:'error',validateMessage:{type:'error',message:invalid[1]}}]);
      setNotice(invalid[1]); return;
    }
    setRules(previous => [...previous, {id:crypto.randomUUID(),name,path,enabled:!!fields.enabled}]);
    setNotice(`Added ${name} to this browser session. No access policy was deployed.`);
  };
  const columns = [
    {colKey:'name', title:'Rule'}, {colKey:'path', title:'Resource'},
    {colKey:'enabled', title:'State', cell:({row}) => row.enabled ? 'Enabled' : 'Disabled'},
    {colKey:'actions', title:'Action', cell:({row}) => <Button variant="text" onClick={() => {
      setRules(previous => previous.filter(item => item.id !== row.id));
      setNotice(`Removed ${row.name} locally.`);
    }}>Remove {row.name}</Button>}
  ];
  return <main style={{padding:24,maxWidth:960,margin:'auto',font:'var(--td-font-body-medium)'}}>
    <h1>API access rules</h1>
    <Form form={form} onSubmit={addRule} labelWidth={100}>
      <FormItem name="name" label="Rule name"><Input /></FormItem>
      <FormItem name="path" label="Resource path"><Input placeholder="/reports" /></FormItem>
      <FormItem name="enabled" label="Enabled" for="enabled"><Switch /></FormItem>
      <FormItem><Button type="submit" theme="primary">Add local rule</Button></FormItem>
    </Form>
    <p role="status">{notice}</p>
    <Table rowKey="id" data={rules} columns={columns} bordered hover />
  </main>;
}
createRoot(document.getElementById('root')).render(<AccessRules />);
```

Referência de código

- Os contratos das colunas de Table e de rowKey estão vinculados na especificação acima.

- Este exemplo altera apenas o estado local de React; um rótulo de ativação não é uma decisão de autorização.

- O exemplo de instalação/API foi conferido com a fonte oficial; a compilação do pacote é independente da prévia offline testada.

## Configuração do agente de IA do sistema de design TDesign

### Ponto de partida para implementação

Use o exemplo completo de entrada do cliente acima com um elemento raiz HTML. Importe tdesign-react/es/style/index.css uma única vez. Fixe as versões e teste com sua ferramenta de build antes de publicar.

```
npm install tdesign-react react react-dom
```

### Um prompt para seu projeto

```
Use Form e Table de tdesign-react para um editor de regras API. Preserve os papéis semânticos --td-*, as chaves de campo registradas, os IDs estáveis das linhas, a validação explícita e mensagens que descrevam com precisão o estado local.
```

## Fontes e escopo do sistema de design TDesign

Referência independente de OpenDesign. A prévia é uma interpretação offline, não é um software da Tencent nem um serviço de autorização implantado.

- TDesign React Instalação do pacote e família de implementação.

- Tema claro Mapeamentos semânticos de cores para o tema claro.

- Tema escuro Seletor da raiz do tema escuro e mapeamentos de papéis.

- Tipografia Definições de fonte, tamanho e altura da linha.

- Tokens de tamanho Aliases de espaçamento básico e semântico.

- Arredondamentos Valores de cantos publicados.

- Exemplo de formulário APIs para registro, envio e erros de campo.

- Tipos de Table Contratos de identidade das linhas e renderização de colunas.

## Recursos relacionados ao sistema de design TDesign

### Thumbtack Thumbprint

Crie uma interface de descoberta de serviços com os elementos primitivos documentados da v2 do Thumbprint: cartões compactos de prestadores, detalhes de comparação fáceis de ler, estados de seleção claros e uma lista de favoritos persistente.

### Twilio Paste

Crie um rascunho de notificação com o tema e os contratos de botões do Paste, uma escala de espaçamento verificada e uma distinção clara entre editar, revisar e realmente enviar uma mensagem.

### Visa Product sistema de design

Use o Nova CSS da Visa para criar uma opção clara de formato de extrato, com controles de opção nativos, cabeçalho em cor alternativa e resumo para revisão. Confira os valores exatos do tema 1.6.5, o espaçamento escalável e a integração completa da folha de estilos.


- [Referência de implementação](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/form/_example/base.tsx)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_light.less)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_font.less)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_size.less)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_radius.less)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/form/_example/base.tsx)
- [Fonte](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/table/type.ts)
- [Consulte a especificação de apoio](https://github.com/Tencent/tdesign-react)
- [Referência de código](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_dark.less)
- [Consulte a especificação de apoio](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_dark.less)
- [Consulte a especificação de apoio](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_font.less)
- [Consulte a especificação de apoio](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_size.less)
- [Consulte a especificação de apoio](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/form/_example/base.tsx)
- [Consulte a especificação de apoio](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/table/type.ts)
- [Referência de código](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/form/_example/base.tsx)
- [TDesign React Instalação do pacote e família de implementação.](https://github.com/Tencent/tdesign-react)
- [Tema claro Mapeamentos semânticos de cores para o tema claro.](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_light.less)
- [Tema escuro Seletor da raiz do tema escuro e mapeamentos de papéis.](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_dark.less)
- [Tipografia Definições de fonte, tamanho e altura da linha.](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_font.less)
- [Tokens de tamanho Aliases de espaçamento básico e semântico.](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_size.less)
- [Arredondamentos Valores de cantos publicados.](https://raw.githubusercontent.com/Tencent/tdesign-common/develop/style/web/theme/_radius.less)
- [Exemplo de formulário APIs para registro, envio e erros de campo.](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/form/_example/base.tsx)
- [Tipos de Table Contratos de identidade das linhas e renderização de colunas.](https://raw.githubusercontent.com/Tencent/tdesign-react/develop/packages/components/table/type.ts)
