Skip to content

Verify

Visual verification, Figma comparison, style capture, and report generation.

9 modules

ModuleDescription
Anotasi Tangkapan LayarGambar kotak berlabel pada tangkapan layar untuk menandai perbedaan
Tangkap Gaya ElemenTangkap gaya yang dihitung dari elemen browser
Bandingkan GayaBandingkan gaya yang ditangkap dengan nilai yang diharapkan
Ambil Gaya FigmaAmbil token desain dari Figma API (token tetap lokal)
Buat LaporanBuat laporan verifikasi dalam HTML/JSON/Markdown
Muat AturanMuat aturan verifikasi dari file YAML
Jalankan VerifikasiJalankan verifikasi desain lengkap: tangkap → bandingkan → laporan
Jalankan Verifikasi SpesifikasiVerifikasi spesifikasi dinamis - susun modul apa saja melalui YAML
Perbedaan VisualBandingkan desain referensi dengan situs dev secara visual, anotasi perbedaan

Modules

Anotasi Tangkapan Layar

verify.annotate

Gambar kotak berlabel pada tangkapan layar untuk menandai perbedaan

Parameters:

NameTypeRequiredDefaultDescription
image_pathstringYes-Jalur ke gambar tangkapan layar
annotationsarrayYes-Array anotasi: [{label, x, y, width, height, color?, description?}]
output_pathstringNo-Jalur keluaran untuk gambar yang dianotasi (default: menambahkan akhiran _annotated)

Output:

FieldTypeDescription
output_pathstringJalur ke gambar yang dianotasi
annotation_countintegerJumlah anotasi yang digambar

Tangkap Gaya Elemen

verify.capture

Tangkap gaya yang dihitung dari elemen browser

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to capture from
selectorstringYes-CSS selector
wait_forstringNo-Wait for selector before capture
viewport_widthnumberNo1280Viewport width
viewport_heightnumberNo800Viewport height

Output:

FieldTypeDescription
elementobjectCaptured element with styles
foundbooleanWhether element was found

Bandingkan Gaya

verify.compare

Bandingkan gaya yang ditangkap dengan nilai yang diharapkan

Parameters:

NameTypeRequiredDefaultDescription
actualobjectYes-Captured element styles (from verify.capture)
expectedobjectYes-Expected styles to compare against
selectorstringNo-Selector for reporting
size_tolerancenumberNo2.0Tolerance for size (px)
spacing_tolerancenumberNo2.0Tolerance for spacing (px)
font_size_tolerancenumberNo1.0Tolerance for font size (px)
color_tolerancenumberNo5Tolerance for color (0-255)
check_typographybooleanNoTrueCheck typography
check_colorsbooleanNoTrueCheck colors
check_spacingbooleanNoTrueCheck spacing
check_sizingbooleanNoFalseCheck sizing

Output:

FieldTypeDescription
passedbooleanWhether comparison passed
violationsarrayList of violations found
error_countnumberNumber of errors
warning_countnumberNumber of warnings

Ambil Gaya Figma

verify.figma

Ambil token desain dari Figma API (token tetap lokal)

Parameters:

NameTypeRequiredDefaultDescription
file_idstringYes-Figma file key (from URL)
node_idstringNo-Specific node ID to fetch
node_namestringNo-Find node by name
tokenstringNo-Figma token (or use FIGMA_TOKEN env var)

Output:

FieldTypeDescription
nodeobjectFigma node data
styleobjectExtracted style

Buat Laporan

verify.report

Buat laporan verifikasi dalam HTML/JSON/Markdown

Parameters:

NameTypeRequiredDefaultDescription
resultsarrayYes-Comparison results from verify.compare
namestringNoverify-reportReport name
urlstringNo-URL that was verified
formatstringNohtmlOutput format (html, json, markdown, all)
output_dirstringNo./verify-reportsOutput directory
screenshotsarrayNo-Screenshot paths to include

Output:

FieldTypeDescription
report_pathstringPath to generated report
summaryobjectSummary statistics

Muat Aturan

verify.ruleset

Muat aturan verifikasi dari file YAML

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to YAML ruleset file

Output:

FieldTypeDescription
rulesetobjectParsed ruleset
rules_countintegerNumber of rules

Jalankan Verifikasi

verify.run

Jalankan verifikasi desain lengkap: tangkap → bandingkan → laporan

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to verify
selectorsarrayNo-CSS selectors to verify
ruleset_pathstringNo-Path to YAML ruleset file
expected_stylesobjectNo-Expected styles per selector
figma_file_idstringNo-Figma file ID for comparison
figma_tokenstringNo-Figma token (or FIGMA_TOKEN env)
figma_mappingobjectNo-Selector to Figma node mapping
output_dirstringNo./verify-reportsOutput directory
report_formatstringNohtmlReport format
take_screenshotbooleanNoTrueCapture screenshot
viewport_widthnumberNo1280Viewport width
viewport_heightnumberNo800Viewport height

Output:

FieldTypeDescription
passedbooleanOverall verification passed
summaryobjectSummary statistics
report_pathstringPath to generated report

Example: Example

yaml
url: http://localhost:3000
selectors: ["button[type=\"submit\"]", "input[type=\"email\"]"]

Example: Example

yaml
url: http://localhost:3000
selectors: ["button.primary"]
figma_file_id: abc123xyz
figma_mapping: {"button.primary": "Primary Button"}

Example: Example

yaml
url: http://localhost:3000
ruleset_path: ./design-rules.yaml

Jalankan Verifikasi Spesifikasi

verify.spec

Verifikasi spesifikasi dinamis - susun modul apa saja melalui YAML

Parameters:

NameTypeRequiredDefaultDescription
ruleset_pathstringNo-Path to YAML ruleset file
rulesetobjectNo-Inline ruleset object

Output:

FieldTypeDescription
passedboolean
summaryobject
resultsarray

Perbedaan Visual

verify.visual_diff

Bandingkan desain referensi dengan situs dev secara visual, anotasi perbedaan

Parameters:

NameTypeRequiredDefaultDescription
reference_urlstringYes-URL atau jalur gambar lokal dari desain referensi
dev_urlstringYes-URL situs pengembangan untuk dibandingkan
output_dirstringNo./verify-reports/visual-diffDirektori keluaran untuk laporan
focus_areasarrayNo-Area yang difokuskan (misalnya ["header", "form login"])
viewport_widthnumberNo1280Lebar jendela tampilan browser
viewport_heightnumberNo800Tinggi jendela tampilan browser
modelstringNogpt-4oModel visi yang digunakan
api_keystringNo-Kunci API OpenAI (atau gunakan variabel lingkungan OPENAI_API_KEY)

Output:

FieldTypeDescription
similarity_scorenumberPersentase kesamaan (0-100)
annotationsarrayDaftar perbedaan yang dianotasi
annotated_imagestringJalur ke tangkapan layar yang dianotasi
report_pathstringJalur ke laporan HTML
summarystringRingkasan perbedaan

Released under the Apache 2.0 License.