diff --git a/README.md b/README.md
index e4d3040..fcff917 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@ Módulo Drupal com ferramentas utilitárias reutilizáveis para outros módulos
- **Menu de configuração "Local Modules"**: Fornece uma seção centralizada em `/admin/config/local-modules` para configurações de módulos desenvolvidos internamente.
- **Bloco Share Links**: Bloco de compartilhamento em redes sociais extensível via hooks.
- **Condição de visibilidade "Usuário da página é o usuário logado"**: Restringe a exibição de qualquer bloco à situação em que o usuário autenticado é o mesmo da rota `/user/{id}`.
+- **Extensão Twig `site_tools_academic_icon`**: Função Twig para renderizar ícones SVG de plataformas acadêmicas (Lattes, ORCID, MathSciNet).
## Sub-módulos
@@ -117,6 +118,36 @@ O plugin `PageUserIsCurrentUser` adiciona uma condição de visibilidade reutili
Quando ativada, o bloco só é exibido se o usuário autenticado tiver o mesmo ID que o parâmetro `{id}` da rota `/user/{id}`. A opção **"Negar a condição"** inverte o comportamento (exibe para todos exceto o dono).
+## Extensão Twig: ícones de plataformas acadêmicas
+
+A função `site_tools_academic_icon(name)` retorna o SVG inline do ícone solicitado como marcação segura (sem necessidade de `|raw`).
+
+### Ícones disponíveis
+
+| Nome | Plataforma | Cor |
+|------|------------|-----|
+| `lattes` | Plataforma Lattes (CNPq) | `#005195` |
+| `orcid` | ORCID | `#a6ce39` |
+| `mathscinet` | MathSciNet (AMS) | `#0f4f96` |
+
+### Uso em templates Twig
+
+```twig
+{{ site_tools_academic_icon('lattes') }}
+{{ site_tools_academic_icon('orcid') }}
+{{ site_tools_academic_icon('mathscinet') }}
+```
+
+O SVG já inclui `aria-hidden="true"` e `focusable="false"`. Para acessibilidade, envolva o ícone em um `` com `aria-label`:
+
+```twig
+
+ {{ site_tools_academic_icon('lattes') }}
+
+```
+
## Sub-módulo: site_tools_msc_2020
Widget de campo (`FieldWidget`) para seleção hierárquica de termos do vocabulário **MSC 2020** (Mathematics Subject Classification), com até 3 níveis em cascata via AJAX.
diff --git a/site_tools.services.yml b/site_tools.services.yml
new file mode 100644
index 0000000..531fbd8
--- /dev/null
+++ b/site_tools.services.yml
@@ -0,0 +1,5 @@
+services:
+ site_tools.twig_extension.academic_icons:
+ class: Drupal\site_tools\TwigExtension\AcademicIconsExtension
+ tags:
+ - { name: twig.extension }
diff --git a/src/TwigExtension/AcademicIconsExtension.php b/src/TwigExtension/AcademicIconsExtension.php
new file mode 100644
index 0000000..c3f6dbf
--- /dev/null
+++ b/src/TwigExtension/AcademicIconsExtension.php
@@ -0,0 +1,90 @@
+renderIcon(...), [
+ 'is_safe' => ['html'],
+ ]),
+ ];
+ }
+
+ /**
+ * Retorna o SVG do ícone solicitado como Markup seguro.
+ *
+ * @param string $name
+ * Nome do ícone: 'lattes', 'orcid' ou 'mathscinet'.
+ *
+ * @return \Drupal\Component\Render\MarkupInterface
+ * Marcação SVG pronta para renderização.
+ */
+ public function renderIcon(string $name): MarkupInterface {
+ return Markup::create(match ($name) {
+ 'lattes' => $this->iconLattes(),
+ 'orcid' => $this->iconOrcid(),
+ 'mathscinet' => $this->iconMathSciNet(),
+ default => '',
+ });
+ }
+
+ /**
+ * Ícone da Plataforma Lattes (CNPq).
+ *
+ * Cor oficial CNPq: #005195.
+ */
+ protected function iconLattes(): string {
+ return <<<'SVG'
+
+SVG;
+ }
+
+ /**
+ * Ícone oficial ORCID.
+ */
+ protected function iconOrcid(): string {
+ return <<<'SVG'
+
+SVG;
+ }
+
+ /**
+ * Ícone MathSciNet (AMS).
+ */
+ protected function iconMathSciNet(): string {
+ return <<<'SVG'
+
+SVG;
+ }
+
+}