feat: unify project responsive layouts
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$root = Split-Path -Parent $PSScriptRoot
|
||||
$button = Get-Content -LiteralPath (Join-Path $root 'components/AppButton.vue') -Raw -Encoding UTF8
|
||||
|
||||
foreach ($token in @(
|
||||
'compact: { type: Boolean, default: false }',
|
||||
"'app-button--compact': compact",
|
||||
'@use "../styles/adaptive-frame-profiles.scss" as adaptive;',
|
||||
'@include adaptive.adaptive-scroll-button(primary);',
|
||||
'@include adaptive.adaptive-scroll-button(secondary);',
|
||||
'a01-scroll-primary-v3.png',
|
||||
'a01-scroll-secondary-v3.png'
|
||||
)) {
|
||||
if (-not $button.Contains($token)) { throw "AppButton compact contract missing: $token" }
|
||||
}
|
||||
|
||||
if ($button.Contains('border-image-slice: 56 300 fill;')) {
|
||||
throw 'AppButton must consume the shared adaptive frame profile instead of owning slice values'
|
||||
}
|
||||
|
||||
if ($button -notmatch '(?s)\.app-button--compact \.app-button__skin\s*\{[^}]*display:\s*none;') {
|
||||
throw 'AppButton compact mode must hide the aspectFit image skin'
|
||||
}
|
||||
if ($button -notmatch '(?s)\.app-button--compact \.app-button__label\s*\{[^}]*padding:\s*0;[^}]*font-size:\s*23rpx;[^}]*letter-spacing:\s*0;[^}]*white-space:\s*nowrap;') {
|
||||
throw 'AppButton compact label must preserve four-character action capacity'
|
||||
}
|
||||
|
||||
Write-Output 'APP-BUTTON-COMPACT-CONTRACT PASS'
|
||||
Reference in New Issue
Block a user