/
nollieundergrob
/
PythonPackageStorage
Обзор
Документация
Войти
/
nollieundergrob
/
PythonPackageStorage
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
frontend/src/global.css
665 строк
16 KB
nollieundergrob
dsf
13 мар 2025, 07:56
13 мар 2025, 07:56
aabab4c
Код
Авторство
О чём код?
/* @import url('https://fonts.googleapis.com/css2?family=Consolas&display=swap'); */ *{ margin: 0; padding: 0; box-sizing: border-box; font-family: "Consolas", monospace; } .section { padding: 40px 20px; max-width: 800px; margin: 0 auto; /* Центрирование контейнера */ font-family: 'Consolas', sans-serif; } .sectionHeader { text-align: center; /* Заголовок по центру */ margin-bottom: 30px; position: relative; } .sectionHeader h2 { font-size: 2.2rem; font-weight: 700; color: #111827; position: relative; display: inline-block; } .sectionHeader h2::after { content: ''; position: absolute; width: 60px; height: 4px; background: #22c55e; bottom: -8px; left: 50%; transform: translateX(-50%); /* Центрирование линии под заголовком */ border-radius: 2px; transition: width 0.3s ease; } .sectionHeader:hover h2::after { width: 80px; } .libraryGrid { padding: 20px; background-color: #; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 15px; justify-content: center; /* Центрирование карточек */ } .libraryLink { text-decoration: none; } .libraryCard { display: flex; justify-content: center; align-items: center; flex-direction: column; padding: 20px; background-color: #4ade80; color: #ffffff; font-size: 14px; font-weight: bold; text-align: center; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease; opacity: 0; transform: scale(0.95); animation: fadeIn 0.3s forwards; } .libraryCard:hover { transform: scale(1.05); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); } .libraryCard:hover .libraryDescription { max-height: 150px; /* Устанавливаем максимальную высоту для полного отображения */ opacity: 1; /* Показываем описание */ transform: translateY(0); /* Возвращаем текст в исходное положение */ } .libraryName { margin-bottom: 3px; font-size: 28px; font-weight: 600; } .libraryDescription { max-height: 0; /* Начальная высота равна 0 */ overflow: hidden; /* Скрываем содержимое за пределами контейнера */ opacity: 0; /* Начальная прозрачность равна 0 */ transform: translateY(-10px); /* Немного поднимаем текст выше */ transition: max-height 0.3s ease, opacity 0.3s ease, transform 0.3s ease; /* Добавляем плавный переход */ color: rgba(255, 255, 255, 0.8); font-size: 0.8rem; max-width: 400px; white-space: normal; /* Разрешаем перенос строк */ } .versionBadge { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.2); color: white; font-size: 0.75rem; padding: 4px 8px; border-radius: 4px; font-weight: 500; } .python .versionBadge { background: rgba(59, 130, 246, 0.2); } .nodejs .versionBadge { background: rgba(220, 38, 38, 0.2); } /* Контейнер загрузки */ .LoadingContainter { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 100vh; /* Занимает весь экран */ background-color: #f3f4f6; /* Фон совпадает с основным фоном */ color: #111827; /* Цвет текста */ font-family: 'Consolas', sans-serif; /* Шрифт из ваших стилей */ } /* Спиннер (анимированный круг) */ .spinner { width: 40px; height: 40px; border: 4px solid #d1d5db; /* Серый цвет границы */ border-top: 4px solid #4ade80; /* Зелёный цвет анимации */ border-radius: 50%; /* Круглый вид */ animation: spin 1s linear infinite; /* Анимация вращения */ } /* Текст загрузки */ .LoadingText { margin-top: 15px; font-size: 16px; font-weight: bold; color: #111827; /* Цвет текста */ opacity: 0.8; /* Немного прозрачный */ animation: fadeIn 0.5s ease forwards; /* Плавное появление текста */ } /* Анимация вращения спиннера */ @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .SearchContainter{ display: flex; justify-content: center; margin-bottom: 20px; } .SearchInput { padding: 10px 15px; font-size: 16px; border: 1px solid #d1d5db; border-radius: 8px; width: 100%; max-width: 400px; transition: border-color 0.3s ease; } .search-input:focus { border-color: #4ade80; outline: none; } /* Анимация появления текста */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .container { max-width: 800px; margin: 0 auto; padding: 20px; background: #ffffff; border: 1px solid #e5e7eb; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); border-radius: 10px; } h1 { color: #111827; text-align: center; font-weight: 700; margin-bottom: 20px; } .install_panel { position: relative; margin-bottom: 20px; padding: 15px; background: #f9fafb; border: 1px solid #d1d5db; border-radius: 8px; font-family: monospace; font-size: 14px; } .accept { color: #16a34a; font-weight: bold; font-size: 16px; background-color: #dcfce7; padding: 10px; border: 1px solid #86efac; border-radius: 6px; margin-bottom: 10px; } .warning { color: #dc2626; font-weight: bold; font-size: 16px; background-color: #fee2e2; padding: 10px; border: 1px solid #f87171; border-radius: 6px; margin-bottom: 10px; } .copy-btn { background-color: #4ade80; color: white; border: none; margin-left: 10px; padding: 5px 10px; border-radius: 5px; font-size: 12px; cursor: pointer; } .copy-btn:hover { background-color: #22c55e; } .copy-text { background-color: #f3f4f6; color: #1f2937; font-family: 'Courier New', Courier, monospace; font-size: 14px; padding: 12px 15px; border: 1px solid #d1d5db; border-radius: 6px; text-wrap: wrap; margin-top: 5px; transition: 0.3s ease-in-out; } .copy-text:hover { transform: scale(1.02); /* Лёгкое увеличение */ box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); /* Тень */ border-color: #d1d5db; /* Зелёная рамка */ } .link { display: inline-block; padding: 8px 15px; margin: 10px 5px 30px 0; background-color: #4ade80; color: #fff; font-size: 14px; font-weight: 500; text-decoration: none; border-radius: 6px; } .link:hover { background-color: #22c55e; } .version-list { margin-top: 20px; } .version-list h2 { font-size: 18px; margin-bottom: 10px; } .version-list ul { list-style: none; padding: 0; } .version-list li { padding: 5px 0; } /* Стиль для выпадающего списка */.version-select { padding: 12px 20px; /* Увеличенный отступ для лучшей видимости */ font-size: 16px; /* Размер шрифта согласно вашей стилистике */ font-family: 'Consolas', monospace; /* Моноширинный шрифт для единообразия */ color: #1f2937; /* Темно-серый текст */ background-color: #f9fafb; /* Светлый фон */ border: 1px solid #d1d5db; /* Серая граница */ border-radius: 8px; /* Скругленные углы */ transition: all 0.3s ease; /* Плавные переходы для всех свойств */ appearance: none; /* Убираем стандартный вид стрелки */ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; /* Позиция стрелки */ background-size: 12px; /* Размер стрелки */ cursor: pointer; /* Курсор указывает на интерактивность */ width: 68.5%; /* Полная ширина для адаптивности */ } /* Стили для описания библиотеки */ .description { margin: 20px 0; padding: 15px; background-color: #f9fafb; /* Светлый фон */ border: 1px solid #d1d5db; /* Серая граница */ border-radius: 8px; /* Скругленные углы */ font-family: 'Consolas', monospace; /* Моноширинный шрифт */ font-size: 14px; /* Размер текста */ color: #374151; /* Темно-серый текст */ line-height: 1.6; /* Межстрочный интервал */ white-space: pre-wrap; /* Сохранение форматирования текста */ word-break: break-word; /* Перенос длинных слов */ transition: box-shadow 0.3s ease; /* Плавный переход */ } /* Эффект при наведении */ .description:hover { box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Легкая тень */ } /* Стиль для метки "latest" */.custom-select { position: relative; width: 200px; border: 1px solid #d1d5db; border-radius: 6px; overflow: hidden; } .selected-option { padding: 10px; cursor: pointer; background-color: #f9fafb; } .options { position: absolute; top: 100%; left: 0; width: 100%; max-height: 200px; overflow-y: auto; background-color: #fff; border: 1px solid #d1d5db; border-top: none; z-index: 1000; } .options li { padding: 10px; cursor: pointer; } .options li:hover { background-color: #f3f4f6; } .options li.latest { color: #16a34a; /* Зеленый цвет */ font-weight: bold; } /* Эффект при фокусе */ .version-select:focus { border-color: #4ade80; /* Зеленая граница при фокусе */ outline: none; /* Убираем стандартный outline */ box-shadow: 0 0 10px rgba(74, 222, 128, 0.3); /* Легкая тень */ } /* Эффект при наведении */ .version-select:hover { border-color: #4ade80; /* Зеленая граница при наведении */ } /* Адаптивность */ @media (max-width: 600px) { .version-select { font-size: 14px; /* Уменьшенный размер шрифта на мобильных устройствах */ padding: 10px 15px; /* Уменьшенные отступы */ } } .version-toggle { margin-bottom: 20px; font-size: 14px; color: #333; } .version-toggle label { display: flex; align-items: center; gap: 10px; } /* .version-toggle input[type="checkbox"] { width: 16px; height: 16px; } */ .versionRow{ display: flex; align-items: center; gap: 10px; } .checkbox_container{ display: flex; align-items: center; gap: 10px ; padding: 10px 20px; border:1px solid #d1d5db; border-radius: 7px; flex-direction: row-reverse; transition: 0.3s ease-in-out; } .version-select:hover{ transform: scale(1.01); /* Лёгкое увеличение */ box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); /* Тень */ border-color: #d1d5db; /* Зелёная рамка */ } .checkbox_container p{ font-weight: 700; text-align: center; } .checkbox_container.active { background-color: #dcfce7; border: 1px solid #86efac; color: #16a34a; } .checkbox_container input[type="checkbox"] { appearance: none; /* Убираем стандартный вид */ width: 20px; height: 20px; border: 2px solid #d1d5db; /* Серая граница */ background-size: 12px; border-radius: 4px; background-color: #ffffff; /* Белый фон */ cursor: pointer; transition: all 0.1s ease; } .checkbox_container input[type="checkbox"]:checked { background-color: #dcfce7; /* Зелёный фон */ border-color: #86efac; /* Темно-зелёная граница */ background-image: url('./components/succses_check.svg'); background-size: 12px; background-position: center; background-repeat: no-repeat; } .info_row{ display: flex; align-items: center; justify-content: space-between; gap: 10px ; } .info_row p{ text-align: center; max-width: 140px; } .mini-warning{ font-size: 10px; } .notification { position: fixed; bottom: 20px; right: 20px; padding: 15px 20px; font-size: 14px; font-weight: bold; color: #fff; border-radius: 8px; background-color: #4ade80; /* По умолчанию зелёный */ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; z-index: 1000; } /* Показ уведомления */ .notification.show { opacity: 1; transform: translateY(0); } /* Типы уведомлений */ .notification.success { background-color: #4ade80; /* Зелёный для успеха */ } .notification.error { background-color: #dc2626; /* Красный для ошибок */ } .copy_row{ display: flex; align-items: center; justify-content: space-between; } .copy_row p{ font-weight: 600; } /* Заголовок */ .sectionHeader { text-align: center; margin-bottom: 30px; position: relative; } .sectionHeader h1 { font-size: 2.2rem; font-weight: 700; color: #111827; position: relative; display: inline-block; } .sectionHeader h1::after { content: ''; position: absolute; width: 60px; height: 4px; background: #22c55e; bottom: -8px; left: 50%; transform: translateX(-50%); border-radius: 2px; transition: width 0.3s ease; } .sectionHeader:hover h1::after { width: 80px; } /* Панель управления */ .styled-form { display: flex; flex-direction: column; gap: 15px; margin-bottom: 20px; } /* Поле для поиска */ .search-input { padding: 10px 15px; font-size: 16px; border: 1px solid #d1d5db; border-radius: 8px; width: 100%; max-width: 400px; transition: border-color 0.3s ease; } .search-input:focus { border-color: #4ade80; outline: none; } /* Фильтр по типу */ .version-select { padding: 12px 20px; font-size: 16px; font-family: 'Consolas', monospace; color: #1f2937; background-color: #f9fafb; border: 1px solid #d1d5db; border-radius: 8px; transition: all 0.3s ease; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; background-size: 12px; cursor: pointer; width: 100%; } .version-select:focus { border-color: #4ade80; outline: none; box-shadow: 0 0 10px rgba(74, 222, 128, 0.3); } .version-select:hover { border-color: #4ade80; } /* Кнопки сортировки */ .btn_sub { padding: 10px 15px; font-size: 14px; font-weight: 500; color: #fff; background-color: #4ade80; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s ease; } .btn_sub:hover { background-color: #22c55e; } /* Адаптивность */ @media (max-width: 600px) { .version-select { font-size: 14px; padding: 10px 15px; } .btn_sub { font-size: 12px; padding: 8px 12px; } } @media (max-width: 600px) { .libraryGrid { grid-template-columns: 1fr; } .sectionHeader h2 { font-size: 1.8rem; } }