# Bloomberg Refresh 2024 — Visual Style & Component Guide
> Источник: `European, Middle Eastern & African Stocks - Bloomberg - Bloomberg Markets.html`
> Дата анализа: 2026-06-21
---
## 1. CSS Architecture
Bloomberg использует **CSS-variables через `@layer`** (`phx.components`). Все цвета и стили — через переменные, нет хардкода.
```css
@layer phx.components {
/* Font system */
--atomics-text-font-size: var(--_atomics-Text-font-size)
--atomics-text-font-family: var(--_atomics-Text-font-family)
--atomics-text-color: var(--_atomics-Text-color)
/* Skeleton/placeholder */
--atomics-skeleton-background-color: var(--phx-color-background-secondary)
}
```
Ключевая особенность: шрифты подгружаются через Google Fonts (Noto Sans JP для японских индексов). Для остальных — системный стек.
---
## 2. Table Structure
### Columns (left → right)
| # | Column | Content | Alignment | Class prefix |
|---|-------------|----------------------|-----------|---------------------------|
| 1 | Follow | Button (toggle) | center | `style_column__qFboh style_stickyCol__8nZn2` |
| 2 | Ticker ID | `SPEURO:IND` etc. | left | `style_column__qFboh` |
| 3 | Index Name | `S&P EUROPE 350 INDEX` | left | `style_column__qFboh` |
| 4 | Value | `2,581.91` | right | `style_column__qFboh style_end__Ug4Cn` |
| 5 | Change | `▲ 1.85` | right | `style_column__qFboh style_end__Ug4Cn` |
### Row structure
Each row is wrapped in `style_tableRow__YAQry style_row__rMjqo`.
The table has 3 main wrapper classes:
- `style_tableWrapper__Q1HVo style_table__SrH5K` — outer table
- `style_tableHeader__XgkzK style_header__VSpHj` — header row
- `style_tableRow__YAQry style_row__rMjqo` — data rows
### Cell classes
- `style_cell__1UrwH style_start__T_7tE` — left-aligned cell
- `style_cell__1UrwH style_end__0XcYw` — right-aligned cell (value + change)
- `style_cell__1UrwH style_stickyCol__8nZn2 style_start__L8R9v` — sticky column (Follow + ID)
### Section titles (region headers)
```
styles_sectionTitle__Vr2RB typography_coreHeadlineSm__9qq05
styles_sectionTitle__xBh4H
styles_sectionTitle__z1_bK typography_coreHeadlineSm__9qq05
```
Three sections in the page:
1. **Today in the Markets**
2. **Compare to Benchmarks**
3. **Market Summaries**
---
## 3. Change Component
### Three states
```css
media-ui-Change_positive-il7qv0BctMg-
media-ui-Change_negative-rQGvYj5WMsM-
media-ui-Change_neutral-nBYyHHGgsdY-
```
### Shared modifier classes
All change elements share these classes:
- `media-ui-Change_change-lMq4LV-1csY-` — wrapper
- `media-ui-Change_default-8hphe2lFPJo-` — default theme
- `media-ui-Change_refresh2024-EajM9IkrlnU-` — "refresh2024" design system
### Value display
- `media-ui-Change_changeValue-cRzdGNve3oU-` — numeric value
- `media-ui-Change_priceChange-OgFOGsx-jKI-` — price change (absolute points)
- Separate class for percentage change (appears in different context)
### Arrow SVG
```html
```
Key: **`fill="currentColor"`** — arrow inherits text color from parent.
---
## 4. Typography
### Name column (`style_stockName__8SqkX`)
- Font: system sans-serif (Inter-like)
- Size: ~14px
- Weight: 500 (medium)
- Color: `--atomics-text-color` (white/light gray)
- Behavior: ellipsis on overflow (truncates long names)
### Value column (`style_stockValue__fsPwb`)
- Font: monospace / tabular-nums
- Size: ~14-16px
- Weight: 500
- Alignment: right
- Number format: `1 234,56` (space = thousands separator, comma = decimal)
### Change column (`media-ui-Change_priceChange-*`)
- Size: ~12-13px (smaller than value)
- Weight: 400 (regular)
- Color: green (positive) / red (negative) / gray (neutral)
- Arrow: 12x10px, inherits color
### ID/Ticker column (`style_displayId__ZrwVL`)
- Size: ~11px
- Font: monospace
- Color: muted (#888)
---
## 5. Complete Component Hierarchy
```
style_tableWrapper__Q1HVo style_table__SrH5K
└── style_tableRow__YAQry style_row__rMjqo (header)
└── style_tableRow__YAQry style_row__rMjqo (data)
├── style_column__qFboh style_stickyCol__8nZn2 style_start__L8R9v
│ ├── style_stockId__blFSc (ticker like "SPEURO:IND")
│ └── Follow button
├── style_column__qFboh
│ └── style_stockName__8SqkX ("S&P EUROPE 350 INDEX")
├── style_column__qFboh style_end__Ug4Cn
│ └── style_stockValue__fsPwb ("2,581.91")
└── style_column__qFboh style_end__Ug4Cn
└── media-ui-Change_change-lMq4LV-1csY- media-ui-Change_default-* media-ui-Change_refresh2024-*
├── media-ui-Change_changeValue-* media-ui-Change_(positive|negative|neutral)-*
│ └── number (e.g. "1.85")
└── media-ui-Change_marketArrow-* media-ui-Change_(positive|negative|neutral)-*
└──