/** * AKSRT Forms — 1:1 Zibll Alignment * * 对齐 zibll .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 — 对齐 zibll .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); }