@su-record/vibe 2.8.39 → 2.8.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/vibe.figma/SKILL.md +103 -22
- package/skills/vibe.figma/templates/figma-handoff.md +37 -33
- package/skills/vibe.figma.convert/SKILL.md +65 -34
- package/skills/vibe.figma.convert/rubrics/conversion-rules.md +14 -5
- package/skills/vibe.figma.convert/templates/component.md +14 -16
- package/skills/vibe.figma.extract/SKILL.md +2 -2
- package/skills/vibe.figma.extract/rubrics/image-rules.md +69 -47
- package/skills/vibe.figma.analyze/SKILL.md +0 -10
- package/skills/vibe.figma.analyze/rubrics/analysis-dimensions.md +0 -53
- package/skills/vibe.figma.codegen/SKILL.md +0 -10
- package/skills/vibe.figma.codegen/rubrics/code-quality.md +0 -54
- package/skills/vibe.figma.consolidate/SKILL.md +0 -10
- package/skills/vibe.figma.consolidate/templates/consolidation-report.md +0 -95
- package/skills/vibe.figma.frame/SKILL.md +0 -10
- package/skills/vibe.figma.frame/rubrics/frame-selection.md +0 -55
- package/skills/vibe.figma.pipeline/SKILL.md +0 -11
- package/skills/vibe.figma.pipeline/rubrics/pipeline-stages.md +0 -96
- package/skills/vibe.figma.rules/SKILL.md +0 -10
- package/skills/vibe.figma.rules/rubrics/naming-conventions.md +0 -70
- package/skills/vibe.figma.style/SKILL.md +0 -10
- package/skills/vibe.figma.style/rubrics/style-mapping.md +0 -100
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Figma Style → CSS/Tailwind Mapping Rules
|
|
2
|
-
|
|
3
|
-
> This skill is merged into vibe.figma.convert. This rubric is the definitive reference for converting Figma design values to output CSS.
|
|
4
|
-
|
|
5
|
-
## Scale Factor Application
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
scaledValue = Math.round(figmaValue × scaleFactor)
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Apply to: `px` units only (font-size, padding, margin, gap, width, height, top, left, inset, border-radius, box-shadow offsets, letter-spacing, blur radius).
|
|
12
|
-
|
|
13
|
-
Never apply to: colors, opacity, unitless line-height, `%` values, z-index, degrees.
|
|
14
|
-
|
|
15
|
-
## Color Mapping
|
|
16
|
-
|
|
17
|
-
| Figma Token / Tailwind | CSS Output | Token Name |
|
|
18
|
-
|-----------------------|-----------|-----------|
|
|
19
|
-
| `text-[#1B3A1D]` | `color: #1B3A1D` | `$color-heading` |
|
|
20
|
-
| `text-white` | `color: #FFFFFF` | `$color-white` |
|
|
21
|
-
| `bg-[#0A1628]` | `background-color: #0A1628` | `$color-bg-dark` |
|
|
22
|
-
| `bg-[rgba(13,40,61,0.5)]` | `background: rgba(13,40,61,0.5)` | *(inline, no token)* |
|
|
23
|
-
| `var(--color/grayscale/950,#171716)` | `color: #171716` | Use fallback value |
|
|
24
|
-
| `border-[#E5E7EB]` | `border-color: #E5E7EB` | `$color-border` |
|
|
25
|
-
|
|
26
|
-
Create a `$color-*` token for any hex value that appears in 2+ selectors.
|
|
27
|
-
|
|
28
|
-
## Typography Mapping
|
|
29
|
-
|
|
30
|
-
| Figma / Tailwind | CSS Property | Scale? |
|
|
31
|
-
|-----------------|-------------|--------|
|
|
32
|
-
| `text-[48px]` | `font-size: 48px × SF` | Yes |
|
|
33
|
-
| `font-black` | `font-weight: 900` | No |
|
|
34
|
-
| `font-bold` | `font-weight: 700` | No |
|
|
35
|
-
| `font-semibold` | `font-weight: 600` | No |
|
|
36
|
-
| `font-medium` | `font-weight: 500` | No |
|
|
37
|
-
| `font-normal` | `font-weight: 400` | No |
|
|
38
|
-
| `leading-[1.4]` | `line-height: 1.4` | No (unitless) |
|
|
39
|
-
| `leading-[48px]` | `line-height: 48px × SF` | Yes (has unit) |
|
|
40
|
-
| `tracking-[-0.36px]` | `letter-spacing: -0.36px × SF` | Yes |
|
|
41
|
-
| `text-center` | `text-align: center` | No |
|
|
42
|
-
| `whitespace-nowrap` | `white-space: nowrap` | No |
|
|
43
|
-
| `font-[family-name:var(--font/family/pretendard,...)]` | `font-family: 'Pretendard', sans-serif` | No |
|
|
44
|
-
|
|
45
|
-
## Spacing Mapping
|
|
46
|
-
|
|
47
|
-
| Tailwind | CSS | Scale? |
|
|
48
|
-
|---------|-----|--------|
|
|
49
|
-
| `pt-[120px]` | `padding-top: 120px × SF` | Yes |
|
|
50
|
-
| `px-[24px]` | `padding-left: 24px × SF; padding-right: 24px × SF` | Yes |
|
|
51
|
-
| `gap-[24px]` | `gap: 24px × SF` | Yes |
|
|
52
|
-
| `mt-[16px]` | `margin-top: 16px × SF` | Yes |
|
|
53
|
-
| `rounded-[12px]` | `border-radius: 12px × SF` | Yes |
|
|
54
|
-
| `inset-0` | `inset: 0` | No |
|
|
55
|
-
| `inset-[-18.13%]` | `inset: -18.13%` | No (%) |
|
|
56
|
-
|
|
57
|
-
## Layout Mapping
|
|
58
|
-
|
|
59
|
-
| Tailwind | CSS |
|
|
60
|
-
|---------|-----|
|
|
61
|
-
| `flex` | `display: flex` |
|
|
62
|
-
| `flex-col` | `flex-direction: column` |
|
|
63
|
-
| `items-center` | `align-items: center` |
|
|
64
|
-
| `justify-center` | `justify-content: center` |
|
|
65
|
-
| `justify-between` | `justify-content: space-between` |
|
|
66
|
-
| `grid` | `display: grid` |
|
|
67
|
-
| `absolute` | `position: absolute` |
|
|
68
|
-
| `relative` | `position: relative` |
|
|
69
|
-
| `overflow-clip` | `overflow: clip` ← not `overflow: hidden` |
|
|
70
|
-
| `overflow-hidden` | `overflow: hidden` |
|
|
71
|
-
| `size-full` | `width: 100%; height: 100%` |
|
|
72
|
-
| `w-full` | `width: 100%` |
|
|
73
|
-
| `max-w-none` | `max-width: none` |
|
|
74
|
-
| `z-[10]` | `z-index: 10` |
|
|
75
|
-
| `pointer-events-none` | `pointer-events: none` |
|
|
76
|
-
|
|
77
|
-
## Visual Effects Mapping
|
|
78
|
-
|
|
79
|
-
| Tailwind | CSS | Scale? |
|
|
80
|
-
|---------|-----|--------|
|
|
81
|
-
| `opacity-40` | `opacity: 0.4` | No |
|
|
82
|
-
| `blur-[3.5px]` | `filter: blur(3.5px)` | Yes |
|
|
83
|
-
| `mix-blend-lighten` | `mix-blend-mode: lighten` | No |
|
|
84
|
-
| `mix-blend-multiply` | `mix-blend-mode: multiply` | No |
|
|
85
|
-
| `mix-blend-hue` | `mix-blend-mode: hue` | No |
|
|
86
|
-
| `rotate-[149.7deg]` | `transform: rotate(149.7deg)` | No |
|
|
87
|
-
| `-scale-y-100` | `transform: scaleY(-1)` | No |
|
|
88
|
-
| `shadow-[0_4px_24px_rgba(0,0,0,0.4)]` | `box-shadow: 0 4px × SF 24px × SF rgba(0,0,0,0.4)` | Partial (px only) |
|
|
89
|
-
| `object-cover` | `object-fit: cover` | No |
|
|
90
|
-
| `object-contain` | `object-fit: contain` | No |
|
|
91
|
-
|
|
92
|
-
## Token Promotion Rules
|
|
93
|
-
|
|
94
|
-
Promote a value to `_tokens.scss` when:
|
|
95
|
-
- A color appears in 2+ different selectors
|
|
96
|
-
- A font-size serves a named role (heading, body, caption)
|
|
97
|
-
- A spacing value appears in 3+ places
|
|
98
|
-
- A breakpoint threshold is used
|
|
99
|
-
|
|
100
|
-
Do not promote one-off values used in a single selector — write them inline.
|