Remove FIGMA_UI3_CDP_FINDINGS.md (research notes, not source)

This commit is contained in:
Danila Poyarkov 2026-02-28 08:15:22 +03:00
parent 2306457b5f
commit bed4e2fdd7

View file

@ -1,137 +0,0 @@
# Figma UI3 Layout — CDP Inspection Findings
Inspected via CDP on Figma desktop app (Feb 2026). Window: 1487×901, DPR 2.
## Overall Layout
```
┌─────────────────────────────────────────────────────────────────┐
│ Left Panel (309px) │ Canvas (936px CSS, 1872px WebGL)│ Right Panel (241px) │
│ │ │ │
│ File name header │ Single <canvas> element │ Tabs: Design │ Proto│
│ Tabs: File │ Assets │ class="gpu-view-content" │ Zoom: 100% button │
│ Pages list │ No WebGL context exposed │ │
│ Layers tree │ (Figma uses own GPU renderer) │ [Scroll container] │
│ (309×804 scroll area) │ │ (240×820) │
│ │ │ │
│ │ ┌──────────────────────┐ │ │
│ │ │ Toolbar (floating) │ │ │
│ │ │ centered at bottom │ │ │
│ │ └──────────────────────┘ │ │
└─────────────────────────────────────────────────────────────────┘
```
## Toolbar (Bottom, Floating)
Three rows discovered at different y-positions. The main design toolbar is at y≈849.
### Main Toolbar Row (y≈849) — Design Mode
| x | Tool | Flyout ▾ | Notes |
|-----|------------|----------|-------|
| 511 | Move | ▾ Move tools | Scale nested inside |
| 568 | Frame | ▾ Region tools | Section, Slice nested |
| 625 | Rectangle | ▾ Shape tools | Ellipse, Line, Star, Polygon, Arrow |
| 682 | Pen | ▾ Creation tools | Pencil nested |
| 739 | Text | — | |
| 779 | Comment | ▾ Comment tools | |
| 836 | Actions | — | AI/search menu (⚡) |
### View Toolbar Row (y≈801) — DevMode/Inspect
| x | Tool |
|-----|------|
| 511 | Move |
| 551 | Copy colors |
| 591 | Measurement |
| 631 | Annotation |
| 671 | Comment |
### Tool button specs
- Each button: 32×32px, class `toolbelt_button--topLevelButtonNew`
- Flyout chevrons: 16×32px, class `tool_group--flyoutChevron`
- Tool+chevron combined: 49×32px (32 icon + 16 chevron + 1px gap)
- All buttons are `<button>` with `aria-label`
## Left Panel (309px)
```
┌─ File name header (309×48) ──────────┐
│ [Figma logo] [File actions ⋯] │
├─ File browser toggle (309×44) ───────┤
│ │
├─ File name bar (309×53) ─────────────┤
│ "Project name" + "File name" │
├─ Tab strip (309×41) ─────────────────┤
│ [File] [Assets] │
├─ Pages section (309×234) ────────────┤
│ Collapsible list of pages │
├─ Layers tree (309×529) ──────────────┤
│ Class: object_row--row │
│ Each row: 309×32 │
│ - 16×32 expand caret (if has children)│
│ - Icon (node type) │
│ - Name text │
│ Virtual-scrolled │
└──────────────────────────────────────┘
```
Layer row class: `object_row--row--RUzis object_row--topLevel--SXq9o`
Has `aria-label` on icons: Rectangle, Frame, Auto layout, Section, Instance
## Right Panel (241px)
### Header (above scroll, 240×48)
- Tab strip: **Design** | **Prototype** (tabs__tabButton)
- Zoom button: "100%" (60×24), clickable
### Properties Sections (with a Rectangle selected)
Panel scroll area: 240×820, class `properties_panel--scrollContainer`
| y offset | Section | Content |
|----------|---------|---------|
| 0 | **Node header** | Type "Rectangle" + "Use as mask" toggle |
| 49 | **Position** | Section label |
| 89 | Alignment | 9-grid alignment buttons |
| 121 | Position X/Y | Two number inputs (88px each) |
| 153 | Rotation | Number input |
| 198 | **Layout** | Section with "Dimensions" subsection |
| 238 | Dimensions W/H | Two number inputs + lock aspect ratio |
| 283 | **Appearance** | "Hide" toggle |
| 368 | **Fill** | Color swatch + opacity input + visibility toggle |
| 453 | **Stroke** | Section (collapsed when empty) |
| 494 | **Effects** | Section (collapsed when empty) |
| 535 | **Export** | Section |
### Section ordering (top to bottom)
1. Node type + name + mask toggle
2. Position (X, Y)
3. Alignment (9-grid)
4. Rotation
5. Layout / Dimensions (W, H)
6. Appearance (opacity, hide)
7. Fill
8. Stroke
9. Effects
10. Export
## Canvas
- Single `<canvas>` element, no id, class `(none)`
- Parent: `div.view.gpu-view-content` with `inset: 0` (positioned absolutely)
- Physical size: 1872×1802 (2× DPR)
- CSS size: 936×901
- WebGL context: **not exposed** (Figma uses its own GPU rendering, likely via CanvasKit/Skia internally but doesn't expose the GL context to JS)
- Canvas receives all mouse/keyboard events
## CSS Variables
- **18,395 CSS variables** defined (massive design system)
- Figma uses CSS Modules with hashed class names (e.g., `toolbar--horizontalButton--lp3qk`)
## Key Findings for OpenPencil
1. **Toolbar is floating**, not pinned to window bottom edge — sits above canvas
2. **Three toolbar rows** exist: view tools, design tools, devmode tools (context-dependent)
3. **Tool groups with flyouts** — Move▾, Frame▾, Rectangle▾, Pen▾, Comment▾
4. **Properties panel sections** are ordered differently than our plan: Position → Alignment → Rotation → Layout/Dimensions → Appearance → Fill → Stroke → Effects → Export
5. **Zoom control** is in the right panel header, not the toolbar
6. **Left panel** has File/Assets tabs, then Pages, then Layers
7. **Canvas has no accessible WebGL context** — Figma's renderer is fully internal