Renan Crociari Design System
This design system defines the visual language of the project. Always adhere to these tokens and components when creating or modifying UI elements.
1. Design Tokens
Colors
Use CSS variables or their hex values if variables are unavailable in context.
| Token |
Variable |
Value |
Usage |
| White |
--typography-white |
#ffffff |
Light text, backgrounds |
| Green Light |
--typography-green-light |
#38C545 |
Primary actions, links, accents |
| Green Dark |
--typography-green-dark |
#099415 |
Darker state for green elements |
| Gradient 1 |
--typography-gradient-1 |
#25D16A |
Gradient Start |
| Gradient 2 |
--typography-gradient-2 |
#9EE825 |
Gradient End |
| Gray 200 |
--typography-gray-200 |
#222222 |
Primary text color |
| Gray 300 |
--typography-gray-300 |
#B6B6B6 |
Placeholders, muted text |
| Bg Gray Light |
--background-gray-light |
#f1f2f5 |
Page backgrounds |
| Bg Gray Medium |
--background-gray-medium |
#E9EAEE |
Component backgrounds, Footer |
| Border Gray |
--border-gray |
#E9EAEE |
Subtle borders |
| Border Red |
--border-red |
#FF6060 |
Error states |
Typography
Fonts
- Display:
Degular, sans-serif (--font-display) - Used for Headings
- Paragraph:
Source Serif, Georgia, serif (--font-paragraph) - Used for Body text
Scale & Line Height
| Class / Variable |
Size |
Line Height |
Weight |
Usage |
.hero / .display-xxxl |
60px (--font-xxxxl) |
60px |
700 |
Hero Headlines |
.display-xxl |
40px (--font-xxxl) |
44px |
700 |
Section Headlines |
.display-xl |
36px (--font-xxl) |
42px |
600 |
Card Titles |
.display-md |
22px (--font-xs) |
24px |
700 |
Subheadings |
.body-large |
22px (--font-xs) |
32px |
400 |
Introductory text |
.body-medium |
20px (--font-xxs) |
30px |
400 |
Standard body text |
.body-small |
18px (--font-xxxs) |
26px |
400 |
Captions, small links |
Helper Classes
.t-regular: font-weight 400
.t-semibold: font-weight 600
.t-bold: font-weight 700
.t-gray-200: Color Gray 200
.t-white: Color White
.t-green-light: Color Green Light
Spacing
Consistent spacing scale for margins and paddings.
--spacing-xxxs: 4px
--spacing-xxs: 8px
--spacing-xs: 16px
--spacing-md: 24px
--spacing-lg: 32px
--spacing-xl: 48px
--spacing-xxl: 64px
--spacing-xxxl: 80px
--spacing-xxxxl: 128px
Border Radius
--br-xxxs: 4px
--br-xxs: 8px
--br-xs: 16px
--br-md: 24px
2. Components
Buttons (.btn)
Base class .btn creates a flex container with consistent gap.
Variants
- Green Button (
.btn-green):
- Text gradient:
#25D16A to #9EE825
- Hover: Opacity change on text/icon
- Icon: SVG arrow fills with
--typography-green-light
- White Button (
.btn-white):
- White text
- Icon: White fill
- Gray Button (
.btn-gray-200):
Iconography in Buttons
Buttons typically include an SVG arrow.
- Standard: Arrow on right
- Backwards: Add
.btn-arrow-left to reverse arrow direction and placement.
- Animation: On hover, arrow translates x-axis by 2px (or -2px for left arrow).
Inputs
- Base Style:
- Padding:
24px 24px 24px 24px (Right padding 80px for icons)
- Border:
2px solid #AEB5C7
- Transition:
border 0.4s ease-in-out
- States:
- Focus: Border color
--typography-green-light
- Invalid: Border color
--border-red
- Placeholder: Color
#B6B6B6
Cards (.project-card)
Used for showcasing projects.
- Base: Height 800px, relative positioning, transition 0.6s.
- Content:
.project-card-content with significant padding (top 100px).
- Variants:
.card-1 to .card-5: Specific background colors and images.
- Hover: Background color shifts to a darker/richer shade.
Dialog / Modal (.dialog)
- Structure:
<dialog class="dialog">
- Styles:
- Fixed full screen (when open).
- Background: White.
- Signature Border: 16px solid with gradient from
#C8F686 to #75EF81.
- Animation: Fade in (0.8s).
3. Utility Classes
Margins
Format: .{property}-{size}
- Property:
mt (top), mb (bottom), ml (left), mr (right), my (vertical), mx (horizontal).
- Size: matches spacing tokens (
xxxs to xxxxl).
- Example:
.mt-xl adds 48px top margin.
Paddings
Format: .{property}-{size}
- Property:
pt, pb, pl, pr, py, vertical, px (horizontal).
- Size: matches spacing tokens.
- Example:
.py-md adds 24px vertical padding.
Layout
.wrapper: Max-width 1344px, centered, 32px padding on sides.
.visually-hidden: Standard accessible hiding pattern.
4. Global CSS Reset & Globals
box-sizing: border-box is applied generally (via normalization).
body: It has a distinctive 16px solid gradient border acting as a page frame.
a: Links default to --typography-green-light and have a transparent text-clip hover effect.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: design-system-123description: Official design system for the Renan Crociari portfolio project. Use this authentic source of truth for all UI implementation, ensuring consistency in colors, typography, spacing, and component usage. Use when this capability is needed.4---56# Renan Crociari Design System78This design system defines the visual language of the project. Always adhere to these tokens and components when creating or modifying UI elements.910## 1. Design Tokens1112### Colors13Use CSS variables or their hex values if variables are unavailable in context.1415| Token | Variable | Value | Usage |16|-------|----------|-------|-------|17| **White** | `--typography-white` | `#ffffff` | Light text, backgrounds |18| **Green Light** | `--typography-green-light` | `#38C545` | Primary actions, links, accents |19| **Green Dark** | `--typography-green-dark` | `#099415` | Darker state for green elements |20| **Gradient 1** | `--typography-gradient-1` | `#25D16A` | Gradient Start |21| **Gradient 2** | `--typography-gradient-2` | `#9EE825` | Gradient End |22| **Gray 200** | `--typography-gray-200` | `#222222` | Primary text color |23| **Gray 300** | `--typography-gray-300` | `#B6B6B6` | Placeholders, muted text |24| **Bg Gray Light** | `--background-gray-light` | `#f1f2f5` | Page backgrounds |25| **Bg Gray Medium** | `--background-gray-medium` | `#E9EAEE` | Component backgrounds, Footer |26| **Border Gray** | `--border-gray` | `#E9EAEE` | Subtle borders |27| **Border Red** | `--border-red` | `#FF6060` | Error states |2829### Typography30**Fonts**31- **Display**: `Degular`, sans-serif (`--font-display`) - Used for Headings32- **Paragraph**: `Source Serif`, `Georgia`, serif (`--font-paragraph`) - Used for Body text3334**Scale & Line Height**35| Class / Variable | Size | Line Height | Weight | Usage |36|------------------|------|-------------|--------|-------|37| `.hero` / `.display-xxxl` | 60px (`--font-xxxxl`) | 60px | 700 | Hero Headlines |38| `.display-xxl` | 40px (`--font-xxxl`) | 44px | 700 | Section Headlines |39| `.display-xl` | 36px (`--font-xxl`) | 42px | 600 | Card Titles |40| `.display-md` | 22px (`--font-xs`) | 24px | 700 | Subheadings |41| `.body-large` | 22px (`--font-xs`) | 32px | 400 | Introductory text |42| `.body-medium` | 20px (`--font-xxs`) | 30px | 400 | Standard body text |43| `.body-small` | 18px (`--font-xxxs`) | 26px | 400 | Captions, small links |4445**Helper Classes**46- `.t-regular`: font-weight 40047- `.t-semibold`: font-weight 60048- `.t-bold`: font-weight 70049- `.t-gray-200`: Color Gray 20050- `.t-white`: Color White51- `.t-green-light`: Color Green Light5253### Spacing54Consistent spacing scale for margins and paddings.55- `--spacing-xxxs`: 4px56- `--spacing-xxs`: 8px57- `--spacing-xs`: 16px58- `--spacing-md`: 24px59- `--spacing-lg`: 32px60- `--spacing-xl`: 48px61- `--spacing-xxl`: 64px62- `--spacing-xxxl`: 80px63- `--spacing-xxxxl`: 128px6465### Border Radius66- `--br-xxxs`: 4px67- `--br-xxs`: 8px68- `--br-xs`: 16px69- `--br-md`: 24px7071## 2. Components7273### Buttons (`.btn`)74Base class `.btn` creates a flex container with consistent gap.7576**Variants**77- **Green Button** (`.btn-green`):78 - Text gradient: `#25D16A` to `#9EE825`79 - Hover: Opacity change on text/icon80 - Icon: SVG arrow fills with `--typography-green-light`81- **White Button** (`.btn-white`):82 - White text83 - Icon: White fill84- **Gray Button** (`.btn-gray-200`):85 - Dark gray text (#222)8687**Iconography in Buttons**88Buttons typically include an SVG arrow.89- Standard: Arrow on right90- Backwards: Add `.btn-arrow-left` to reverse arrow direction and placement.91- Animation: On hover, arrow translates x-axis by 2px (or -2px for left arrow).9293### Inputs94- **Base Style**:95 - Padding: `24px 24px 24px 24px` (Right padding 80px for icons)96 - Border: `2px solid #AEB5C7`97 - Transition: `border 0.4s ease-in-out`98- **States**:99 - Focus: Border color `--typography-green-light`100 - Invalid: Border color `--border-red`101 - Placeholder: Color `#B6B6B6`102103### Cards (`.project-card`)104Used for showcasing projects.105- **Base**: Height 800px, relative positioning, transition 0.6s.106- **Content**: `.project-card-content` with significant padding (top 100px).107- **Variants**:108 - `.card-1` to `.card-5`: Specific background colors and images.109 - Hover: Background color shifts to a darker/richer shade.110111### Dialog / Modal (`.dialog`)112- **Structure**: `<dialog class="dialog">`113- **Styles**:114 - Fixed full screen (when open).115 - Background: White.116 - **Signature Border**: 16px solid with gradient from `#C8F686` to `#75EF81`.117- **Animation**: Fade in (0.8s).118119## 3. Utility Classes120121### Margins122Format: `.{property}-{size}`123- Property: `mt` (top), `mb` (bottom), `ml` (left), `mr` (right), `my` (vertical), `mx` (horizontal).124- Size: matches spacing tokens (`xxxs` to `xxxxl`).125- *Example*: `.mt-xl` adds 48px top margin.126127### Paddings128Format: `.{property}-{size}`129- Property: `pt`, `pb`, `pl`, `pr`, `py`, `vertical`, `px` (horizontal).130- Size: matches spacing tokens.131- *Example*: `.py-md` adds 24px vertical padding.132133### Layout134- `.wrapper`: Max-width 1344px, centered, 32px padding on sides.135- `.visually-hidden`: Standard accessible hiding pattern.136137## 4. Global CSS Reset & Globals138- `box-sizing: border-box` is applied generally (via normalization).139- `body`: It has a distinctive **16px solid gradient border** acting as a page frame.140- `a`: Links default to `--typography-green-light` and have a transparent text-clip hover effect.141142---143> Converted and distributed by [TomeVault](https://tomevault.io/claim/renancrociari) — claim your Tome and manage your conversions.144<!-- tomevault:4.0:skill_md:2026-04-14 -->