/
set2701
/
Bautex_Design
Обзор
Документация
Войти
/
set2701
/
Bautex_Design
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
css/form.css
706 строк
15 KB
Stepan
Правки для формы и гридов
10 дек 2025, 10:00
10 дек 2025, 10:00
864cf2e
Код
Авторство
О чём код?
* { margin: 0; padding: 0; box-sizing: border-box; } /* Стилизация выделения текста */ ::selection { background-color: var(--brown-red); color: var(--white-white); } ::-moz-selection { background-color: var(--brown-red); color: var(--white-white); } header { width: 100%; background-color: var(--white); padding: 0.875rem 0; } .wrapper { max-width: 1300px; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; } .header-container { display: flex; justify-content: flex-end; width: 100%; } .menu-button { width: 1.875rem; padding: 1rem; display: flex; flex-direction: column; gap: 0.3125rem; border: none; background: none; cursor: pointer; margin: 0; order: 2; } .menu-line { width: 1.875rem; height: 0.0625rem; background-color: var(--brown); } /* Десктопная навигация - скрыта на мобильных, видна на десктопе */ .desktop-nav { display: none; } .form-section { padding: 3rem 0; width: 100%; } .form-container { max-width: 800px; width: 100%; margin: 0 auto; background-color: var(--white-white); padding: 3rem; border-radius: 0.9375rem; box-shadow: 0 4px 20px var(--black-rgba-03); border: 1px solid var(--brown-light); } .form-title { font-family: 'Prosto One', Helvetica, sans-serif; font-size: 3rem; font-weight: 400; color: var(--brown); margin-bottom: 2.5rem; text-align: center; line-height: 1.3; } .form-group { margin-bottom: 2.5rem; } .form-group-title { font-family: 'Prosto One', Helvetica, sans-serif; font-size: 2rem; font-weight: 400; color: var(--brown-dark); margin-bottom: 1.5rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--brown-red); } .form-field { margin-bottom: 1.5rem; } .form-field label { display: block; font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 1rem; font-weight: 500; color: var(--brown-dark); margin-bottom: 0.5rem; } .form-field label .required { color: var(--brown-red); margin-left: 0.25rem; } .form-field input[type="text"], .form-field input[type="email"], .form-field input[type="password"], .form-field input[type="tel"], .form-field input[type="date"] { width: 100%; max-width: 100%; padding: 0.75rem 1rem; font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 1rem; border: 1px solid var(--brown-light); border-radius: 0.3125rem; box-sizing: border-box; transition: all 0.3s ease; background-color: var(--white-white); color: var(--brown-dark); } /* Стилизация placeholder */ .form-field input::placeholder { color: var(--brown-light); font-weight: 300; opacity: 0.7; } .form-field input:focus { outline: none; border-color: var(--brown-red); box-shadow: 0 0 0 3px var(--brown-rgba-20); } .form-field input:required { border-left: 4px solid var(--brown-red); background-color: var(--brown-rgba-10); background-image: linear-gradient(45deg, transparent 95%, var(--brown-red) 95%); background-size: 8px 8px; } .form-field input[type="date"]:required:invalid { border-color: var(--brown-light) !important; border-left-color: var(--brown-red) !important; background-color: var(--brown-rgba-10) !important; background-image: linear-gradient(45deg, transparent 95%, var(--brown-red) 95%) !important; } .form-field input:required:invalid:not(:focus):not(:placeholder-shown) { border-color: #ff6b6b; border-left-color: #ff6b6b; background-color: rgba(255, 107, 107, 0.05); background-image: linear-gradient(45deg, transparent 95%, #ff6b6b 95%); } /* Исключение для поля даты - оно становится красным только после фокуса и если осталось пустым */ .form-field input[type="date"]:required:invalid:not(:focus) { border-color: var(--brown-light) !important; border-left-color: var(--brown-red) !important; background-color: var(--brown-rgba-10) !important; background-image: linear-gradient(45deg, transparent 95%, var(--brown-red) 95%) !important; } .form-field input:required:focus { border-left-color: var(--brown-dark); background-color: var(--brown-rgba-20); background-image: linear-gradient(45deg, transparent 95%, var(--brown-dark) 95%); } .form-field input:required:valid { border-left-color: var(--green-teal); background-color: rgba(29, 157, 126, 0.05); background-image: linear-gradient(45deg, transparent 95%, var(--green-teal) 95%); } /* Группы радио и чекбоксов */ .radio-group, .checkbox-group { display: flex; flex-direction: column; gap: 1rem; } .radio-option, .checkbox-option { display: flex; align-items: center; gap: 0.75rem; position: relative; min-height: 2.5rem; cursor: pointer; padding-left: 0; } .radio-option input[type="radio"] { position: relative; width: 1.2rem; height: 1.2rem; cursor: pointer; opacity: 1; z-index: 10; } .checkbox-option input[type="checkbox"] { position: relative; width: 1.2rem; height: 1.2rem; cursor: pointer; opacity: 1; z-index: 10; } .radio-option::before, .radio-option::after { display: none; } .checkbox-option::before, .checkbox-option::after { display: none; } .checkbox-option .checkmark { display: none; } .radio-option input[type="radio"]:checked + label::before, .radio-option input[type="radio"]:checked + label::after, .checkbox-option input[type="checkbox"]:checked ~ label::before, .checkbox-option input[type="checkbox"]:checked ~ label::after, .checkbox-option input[type="checkbox"]:checked ~ label .checkmark { display: none; } /* Текст для опций */ .radio-option label, .checkbox-option label { font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 1rem; font-weight: 400; color: var(--brown-dark); cursor: pointer; margin: 0; transition: all 0.3s ease; position: relative; padding-left: 0; z-index: 0; display: flex; align-items: center; gap: 0.75rem; } /* Анимация текста при выборе (оставляем только цвет) */ .radio-option input[type="radio"]:checked + label, .checkbox-option input[type="checkbox"]:checked + label { color: var(--brown-red); font-weight: 600; } .radio-option:hover::before, .checkbox-option:hover::before { display: none; } .radio-option:hover label, .checkbox-option:hover label { color: var(--brown); } .radio-option .ripple, .checkbox-option .ripple { display: none; } .checkbox-group.day-selection .checkbox-option::before, .checkbox-group.day-selection .checkbox-option::after, .checkbox-group.day-selection .checkbox-option input[type="checkbox"]:checked + label::before, .checkbox-group.day-selection .checkbox-option input[type="checkbox"]:checked + label::after { display: none; } /* Стили для стандартных радио-кнопок и чекбоксов */ .radio-option input[type="radio"], .checkbox-option input[type="checkbox"] { accent-color: var(--brown-red); margin: 0; } /* Увеличение стандартных радио-кнопок и чекбоксов */ .radio-option input[type="radio"] { width: 1.2rem; height: 1.2rem; } .checkbox-option input[type="checkbox"] { width: 1.2rem; height: 1.2rem; } /* Кнопки формы */ .form-buttons { display: flex; gap: 1.5rem; justify-content: center; margin-top: 3rem; } .btn-submit { background-color: var(--brown); color: var(--white-white); display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.875rem 1.75rem; font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 1rem; font-weight: 500; border: none; border-radius: 0.3125rem; cursor: pointer; transition: all 0.3s ease; min-width: 180px; } .btn-submit:hover { background-color: var(--brown-dark); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(115, 82, 52, 0.3); } .btn-reset { background-color: transparent; border: 1px solid var(--brown-dark); color: var(--brown-dark); display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.875rem 1.75rem; font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 1rem; font-weight: 500; border-radius: 0.3125rem; cursor: pointer; transition: all 0.3s ease; min-width: 180px; } .btn-reset:hover { background-color: var(--brown-rgba-10); border-color: var(--brown); color: var(--brown); transform: translateY(-2px); } /* Иконки Material Symbols */ .material-symbols-outlined { font-size: 1.25rem; vertical-align: middle; } .help-text { font-family: 'Gothic A1', Helvetica, sans-serif; font-size: 0.875rem; color: var(--brown-light); margin-top: 0.25rem; font-weight: 300; } input[type="date"] { appearance: none; -webkit-appearance: none; min-height: 44px; } input[type="date"]::-webkit-calendar-picker-indicator { background-color: var(--brown-light); border-radius: 0.25rem; padding: 0.25rem; cursor: pointer; transition: background-color 0.3s ease; } input[type="date"]::-webkit-calendar-picker-indicator:hover { background-color: var(--brown-red); } .footer-links { display: flex; flex-direction: column; gap: 1.25rem; align-items: flex-start; text-align: left; } .footer-logo-container { margin-top: 0; display: flex; justify-content: center; align-items: center; width: 50%; margin-left: auto; } /* Сам логотип с эффектами */ .footer-logo { transform: rotate(30deg) scale(1.5) skew(10deg, 5deg); transition: all 0.3s ease; display: inline-block; width: 120px; height: auto; } .footer-logo:hover { transform: rotate(35deg) scale(1.6) skew(12deg, 7deg); filter: brightness(1.2); } /* Для правого позиционирования как в примере */ .footer-logo.right { margin-left: auto; } /* Для десктопной версии с дополнительными эффектами */ @media (min-width: 1300px) { .footer-logo { width: 150px; transform: rotate(30deg) scale(1.8) skew(10deg, 5deg); } .footer-logo:hover { transform: rotate(35deg) scale(1.9) skew(12deg, 7deg); filter: brightness(1.3) drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2)); } } /* Мобильная версия */ @media (max-width: 768px) { .footer-logo-container { width: 100%; margin-left: 0; margin-top: 30px; justify-content: center; } .footer-logo { width: 100px; transform: rotate(30deg) scale(1.2) skew(8deg, 4deg); } .footer-logo:hover { transform: rotate(35deg) scale(1.3) skew(10deg, 5deg); } } @media (max-width: 425px) { header { padding: 0.75rem 0; } .wrapper { padding-left: 12px; padding-right: 12px; } .header-container { justify-content: flex-end; padding-right: 0; } .menu-button { margin-right: 0; order: 2; display: flex; } .desktop-nav { display: none !important; } .form-container { padding: 1.5rem; margin: 0; } .form-title { font-size: 2rem; } .form-group-title { font-size: 1.5rem; } .form-buttons { flex-direction: column; gap: 1rem; } .btn-submit, .btn-reset { width: 100%; min-width: auto; justify-content: center; } /* Адаптация логотипа для мобильных */ .footer-logo { width: 80px; transform: rotate(30deg) scale(1.2) skew(8deg, 4deg); } .footer-logo:hover { transform: rotate(35deg) scale(1.3) skew(10deg, 5deg); } } @media (max-width: 375px) { .wrapper { padding-left: 10px; padding-right: 10px; } .form-container { padding: 1.25rem; } .form-title { font-size: 1.75rem; } .form-group-title { font-size: 1.25rem; } .header-container { padding-right: 0; } .footer-logo { width: 70px; } } @media (max-width: 320px) { .wrapper { padding-left: 8px; padding-right: 8px; } .form-container { padding: 1rem; } .form-title { font-size: 1.5rem; } .form-group-title { font-size: 1.125rem; } .form-field input[type="text"], .form-field input[type="email"], .form-field input[type="password"], .form-field input[type="tel"], .form-field input[type="date"] { padding: 0.625rem 0.75rem; font-size: 0.875rem; } .btn-submit, .btn-reset { padding: 0.75rem 1rem; font-size: 0.875rem; } .menu-button { width: 1.5rem; padding: 0.75rem; } .menu-line { width: 1.5rem; } .footer-logo { width: 60px; } } @media (min-width: 426px) and (max-width: 768px) { .wrapper { padding-left: 20px; padding-right: 20px; } .form-container { padding: 2rem; } .form-title { font-size: 2.5rem; } .form-group-title { font-size: 1.75rem; } .header-container { justify-content: flex-end; padding-right: 0; } .menu-button { display: flex; margin-right: 0; order: 2; } .desktop-nav { display: none !important; } } @media (min-width: 769px) { .wrapper { padding-left: 32px; padding-right: 32px; } .form-container { padding: 4rem; } .form-title { font-size: 3.5rem; } .header-container { display: flex; justify-content: space-between; align-items: center; width: 100%; padding-right: 0; } .desktop-nav { display: flex !important; gap: 32px; order: 1; margin-right: auto; } .desktop-nav a { color: var(--brown); text-decoration: none; font-weight: 400; font-size: 1rem; white-space: nowrap; transition: color 0.3s ease; } .desktop-nav a:hover { color: var(--brown-red); } .footer-logo { width: 100px; } } @media (min-width: 1300px) { .wrapper { max-width: 1300px; } .form-title { font-size: 4rem; } } .current-page { color: var(--brown-red) !important; font-weight: 500 !important; text-decoration: underline !important; } .custom-checkbox, .custom-radio { display: none; }