healthDS: Pulso🇧🇷🔓 Open-Source

Pulso Design System (RD Saúde)

RD Saúde's (formerly RaiaDrogasil) design system with real multi-brand theming: Raia teal #006F83 and Drogasil red #B6202F switchable via ThemeProvider, plus prime and rdsaudesistemas themes. Variable font RD Modern, 0.25rem pulse scale, ~50 React components on Ark UI and Radix.

Quick Reference

Colors

#006F83
#B6202F
#575757
#F2F2F2
#A23476

Typography

RD Modern

Light/Dark

Light + Dark

Design Philosophy

One brand, two colors: the same Button renders Raia teal or Drogasil red depending on theme, with proper hover/pressed states - flag recognition preserved at runtime. Danger deliberately coded in magenta, never competing with Drogasil red. Own spacing unit: 1 pulse = 0.25rem.

Live Preview

Fictitious landing page inspired by this design system — not affiliated with the brand.

DESIGN.md

Download DESIGN.md
---
version: alpha
name: "Pulso"
website: "https://pulso-storybook.rd.com.br"
description: >-
  Design system da RD Saúde (ex-RaiaDrogasil) com theming multi-marca real:
  Raia teal #006F83 e Drogasil vermelho #B6202F alternáveis via ThemeProvider,
  mais temas prime, rdsaudesistemas e subscription. Fonte variável RD Modern,
  escala "pulse" de 0.25rem, ~50 componentes React sobre Ark UI e Radix.
  Tokens públicos nos pacotes npm @rdsaude/*.
colors:
  primary-raia: "#006F83"
  primary-raia-hover: "#005261"
  primary-raia-pressed: "#003842"
  primary-drogasil: "#B6202F"
  primary-drogasil-hover: "#941925"
  primary-drogasil-pressed: "#6F151E"
  info-fill: "#E6F3FE"
  info-text: "#183349"
  success-fill: "#E6FEF1"
  success-text: "#18492E"
  success-alt: "#2A8352"
  warning-fill: "#FDF5E7"
  warning-text: "#55350C"
  danger-fill: "#FEE6F5"
  danger-alt: "#A23476"
  ink: "#303030"
  ink-secondary: "#575757"
  surface: "#FFFFFF"
  surface-1: "#F2F2F2"
  hairline: "#E6E6E6"
  special-assinatura: "#5F28BD"
  special-fastdelivery: "#D66E0F"
typography:
  caption:
    fontFamily: "RD Modern, sans-serif"
    fontSize: "0.75rem"
    fontWeight: 400
    lineHeight: "100%"
  body:
    fontFamily: "RD Modern, sans-serif"
    fontSize: "0.875rem"
    fontWeight: 400
    lineHeight: "140%"
  subtitle:
    fontFamily: "RD Modern, sans-serif"
    fontSize: "1rem"
    fontWeight: 500
    lineHeight: "150%"
  title:
    fontFamily: "RD Modern, sans-serif"
    fontSize: "1.25rem"
    fontWeight: 600
    lineHeight: "130%"
  big-number:
    fontFamily: "RD Modern, sans-serif"
    fontSize: "4rem"
    fontWeight: 700
    lineHeight: "100%"
rounded:
  tiny: "0.25rem"
  small: "0.5rem"
  medium: "0.75rem"
  large: "1rem"
  huge: "1.25rem"
  pill: "62.4375rem"
spacing:
  half-pulse: "0.125rem"
  pulse: "0.25rem"
  4x-pulse: "1rem"
  16x-pulse: "4rem"
---

## Overview

**Pulso** é o design system da **RD Saúde** (rebrand corporativo da RaiaDrogasil, out/2024), a maior farmacêutica varejista da América Latina com as bandeiras **Raia** e **Drogasil**. Distribuído publicamente via npm, alimenta as experiências digitais das farmácias, do programa Prime, da RD Saúde Sistemas e dos produtos por assinatura.

A assinatura técnica é o **theming multi-marca real**: o mesmo componente Button renderiza teal `#006F83` no tema `raia` e vermelho `#B6202F` no tema `drogasil`, com estados hover/pressed próprios — resolvidos pelo `ThemeProvider` em tempo de execução. Cinco temas oficiais: `raia`, `drogasil`, `prime`, `rdsaudesistemas`, `subscription`.

### Características-chave

- Cores de marca alternáveis por tema com rampas completas de interação (enabled/hovered/pressed)
- Tipografia **RD Modern** — família variável proprietária com pesos 400–800
- Unidade de espaçamento própria: **1 pulse = 0.25rem**, escalas stack/inline/padding-inset de 0.125rem a 8rem
- Perigo codificado em **magenta** (#A23476) de propósito — nunca competir com o vermelho Drogasil
- ~50 componentes React construídos sobre **Ark UI + Radix UI** com tailwind-variants e vaul
- Tokens públicos: `@raiadrogasil/pulso-design-tokens` (legado) → `@rdsaude/*` (atual)

## Colors

### Marca por tema

| Token | Raia | Drogasil |
|---|---|---|
| `{colors.primary-raia}` / `{colors.primary-drogasil}` | #006F83 | #B6202F |
| Hover | #005261 | #941925 |
| Pressed | #003842 | #6F151E |

### Semânticas (idênticas nos temas)

| Papel | Fill | Texto |
|---|---|---|
| Informativo | #E6F3FE | #183349 |
| Sucesso | #E6FEF1 | #18492E (alternativa sólida #2A8352) |
| Alerta | #FDF5E7 | #55350C |
| Perigo | #FEE6F5 | alternativa #A23476 |

### Neutras e especiais

Texto `{colors.ink}` #303030 / `{colors.ink-secondary}` #575757; superfícies #FFFFFF / {colors.surface-1} #F2F2F2 / {colors.hairline} #E6E6E6.

Cores especiais de produto: fastdelivery `{colors.special-fastdelivery}` #D66E0F · evaluate #F0A94C · assinatura `{colors.special-assinatura}` #5F28BD · clube #B34C1B · genérico #FEFAA4.

## Typography

**RD Modern** (variável) em cinco pesos documentados:

| Token | Tamanho | Weight | Line-height | Uso |
|---|---|---|---|---|
| `{typography.big-number}` | 4rem | 700 | 100% | Preços e números hero |
| `{typography.title}` | 1.25rem | 600 | 130% | Títulos |
| `{typography.subtitle}` | 1rem | 500 | 150% | Subtítulos |
| `{typography.body}` | 0.875rem | 400 | 140% | Corpo padrão |
| `{typography.caption}` | 0.75rem | 400 | 100% | Legendas |

Escala completa ("pulse sizes"): 0.75 · 0.875 · 1 · 1.25 · 1.5 · 1.75 · 2 · 2.25 · 2.5 · 2.75 · 3 · 4rem. Letter-spacing: 0 ou 5%.

## Layout

Unidade base **pulse**: `{spacing.pulse}` 0.25rem (meio-pulse 0.125rem disponível). Escalas semânticas de stack, inline e padding-inset cobrem 0.125rem→8rem em passos de 0.25rem. Bordas tokenizadas: 1px/2px/4px/8px equivalentes (.0625–.5rem).

## Elevation & Depth

Superfícies em 3 níveis neutros + sombras discretas; sheets inferiores (BottomSheet via vaul) e overlays seguem o padrão mobile-first das farmácias digitais.

## Shapes

Radius progressivo por complexidade:

| Token | Valor | Uso |
|---|---|---|
| `{rounded.tiny}` | 0.25rem | Chips pequenos |
| `{rounded.small}` | 0.5rem | Badges, tags |
| `{rounded.medium}` | 0.75rem | Inputs/form fields |
| `{rounded.large}` | 1rem | Cards |
| `{rounded.huge}` | 1.25rem | Modais, superfícies grandes |
| `{rounded.pill}` | 62.4375rem | Botões e CTAs pill |

## Components

~50 componentes React: Accordion, Button (+ButtonBadge), Checkbox/Radio/Switch, Select family, InputText/Password/Counter/MultiSelect, SearchBar, Link, OptionMenu, Pagination, Modal, SideSheet, BottomSheet, Popover, Tooltip, Toast, Snackbar, Chips, Tag, Stepper, ProgressIndicator, Refresh (loader), Rating, Coachmark, CardShape/CardCategory/CardInformative, ProductCard/ProductHeader, ListItem, Label, Logo, Icon/IconDualColor, Typography (BigNumber/Title/Subtitle/Body/Caption), Content, ThemeProvider.

Stack declarada: React 18 + Ark UI + Radix UI + tailwind-variants + vaul.

## Do's and Don'ts

**Do** envolver toda árvore de componentes num único `ThemeProvider` — misturar marcas na mesma tela quebra o reconhecimento de bandeira.

**Do** usar magenta para perigo mesmo no tema Raia — reserva o teal para ações.

**Do** consumir os tokens npm (`@rdsaude/pulso-design-tokens`) como fonte única de verdade.

**Don't** hardcode hex de marca; os valores mudam por tema e versão do design.

**Don't** usar o vermelho #B6202F decorativamente fora do tema Drogasil — ele significa ação primária ali.

## Known Gaps

- Documentação visual (Storybook pulso-storybook.rd.com.br) protegida contra automação — valores extraídos dos tokens CSS e type definitions dos pacotes npm
- Rampas completas dos temas prime/rdsaudesistemas/subscription não enumeradas nesta extração
- Motion/easing não capturados

---

## Attribution

| Campo | Valor |
|-------|-------|
| Source | [npm @raiadrogasil/pulso-design-tokens](https://www.npmjs.com/package/@raiadrogasil/pulso-design-tokens) |
| Componentes | [npm @rdsaude/pulso-react-components v3.19.1](https://www.npmjs.com/package/@rdsaude/pulso-react-components) |
| Storybook | [pulso-storybook.rd.com.br](https://pulso-storybook.rd.com.br/) |
| Catálogo | [Design Systems Brasileiros — Pulso](https://designsystemsbrasileiros.com/pulso/) |
| Method | Open-source tokens extraction (npm @rdsaude/*) |
| Date | 2026-08-21 |

This site is not affiliated with, endorsed by, or sponsored by any of the listed brands. Design tokens shown were extracted exclusively from publicly accessible information (CSS visible in browsers). No copyrighted content is reproduced. If you are a trademark owner and wish to request removal, see our Privacy Policy — Section 9.

Privacy Policy — Section 9