- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css, js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img, fonts→assets/fonts; 删除 assets/vendor - libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向 - 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入 路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_* - 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化 - 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→ window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel, .zib-slider→.aksrt-slider, zib_menu_options meta 键等 - 自有 CSS 改名: legacy-utilities/compat-vars/footer shell - admin SPA 重建; 契约测试同步(路径/断言/文件更名) - 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用) 验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过; 契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
143 lines
2.8 KiB
CSS
143 lines
2.8 KiB
CSS
/**
|
||
* AKSRT Forms — 1:1 legacy Alignment
|
||
*
|
||
* 对齐 legacy .form-control:
|
||
* - 灰色背景 (#f5f6f7)
|
||
* - 透明边框
|
||
* - 34px 高度
|
||
* - 8px 圆角
|
||
* - focus 时粉色边框 + 光晕
|
||
*/
|
||
|
||
/* ===== Field Wrapper ===== */
|
||
.field {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 6px;
|
||
margin-bottom: var(--space-4);
|
||
}
|
||
|
||
.field-label {
|
||
font-size: var(--text-sm);
|
||
font-weight: 600;
|
||
color: var(--color-ink);
|
||
}
|
||
|
||
.field-help {
|
||
font-size: var(--text-xs);
|
||
color: var(--color-ink-3);
|
||
}
|
||
|
||
.field-error {
|
||
font-size: var(--text-xs);
|
||
color: var(--color-error);
|
||
}
|
||
|
||
/* ===== Input / Textarea / Select — 对齐 legacy .form-control ===== */
|
||
.input,
|
||
.textarea,
|
||
.select,
|
||
input[type="text"].form-input,
|
||
input[type="email"].form-input,
|
||
input[type="password"].form-input,
|
||
input[type="search"].form-input,
|
||
input[type="url"].form-input,
|
||
input[type="tel"].form-input,
|
||
textarea.form-textarea,
|
||
select.form-select {
|
||
width: 100%;
|
||
height: 34px;
|
||
padding: 6px 12px;
|
||
font-size: 14px;
|
||
color: var(--color-ink);
|
||
background: var(--surface-page);
|
||
border: 1px solid transparent;
|
||
border-radius: var(--radius);
|
||
transition: border-color var(--dur-fast) var(--ease),
|
||
box-shadow var(--dur-fast) var(--ease);
|
||
}
|
||
|
||
.textarea,
|
||
textarea.form-textarea {
|
||
height: auto;
|
||
min-height: 120px;
|
||
padding: 12px;
|
||
line-height: var(--leading-snug);
|
||
resize: vertical;
|
||
}
|
||
|
||
.input:hover,
|
||
.textarea:hover,
|
||
.select:hover {
|
||
border-color: var(--color-primary);
|
||
}
|
||
|
||
.input:focus,
|
||
.textarea:focus,
|
||
.select:focus {
|
||
outline: none;
|
||
border-color: var(--color-primary);
|
||
box-shadow: 0 0 2px 3px rgba(253, 83, 161, 0.4);
|
||
}
|
||
|
||
.input::placeholder,
|
||
.textarea::placeholder {
|
||
color: var(--color-ink-4);
|
||
}
|
||
|
||
/* ===== Select ===== */
|
||
.select,
|
||
select.form-select {
|
||
appearance: none;
|
||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23777' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
||
background-repeat: no-repeat;
|
||
background-position: right 12px center;
|
||
padding-right: 32px;
|
||
}
|
||
|
||
/* ===== Checkbox / Radio ===== */
|
||
.checkbox,
|
||
.radio {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
cursor: pointer;
|
||
font-size: var(--text-sm);
|
||
color: var(--color-ink-2);
|
||
}
|
||
|
||
.checkbox input,
|
||
.radio input {
|
||
width: 16px;
|
||
height: 16px;
|
||
accent-color: var(--color-primary);
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* ===== Input Group ===== */
|
||
.input-group {
|
||
display: flex;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.input-group .input {
|
||
border-radius: var(--radius) 0 0 var(--radius);
|
||
}
|
||
|
||
.input-group .btn {
|
||
border-radius: 0 var(--radius) var(--radius) 0;
|
||
}
|
||
|
||
/* ===== Form Layout ===== */
|
||
.form-row {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||
gap: var(--space-4);
|
||
}
|
||
|
||
.form-actions {
|
||
display: flex;
|
||
gap: var(--space-3);
|
||
margin-top: var(--space-5);
|
||
}
|