Files
ooodmdk/public/styles/global.css

659 lines
12 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@font-face {
font-family: "Gilroy";
src: url("/fonts/Gilroy-Bold.ttf") format("truetype");
font-weight: bold;
font-display: swap;
}
@font-face {
font-family: "Gilroy";
src: url("/fonts/Gilroy-Medium.ttf") format("truetype");
font-weight: 500;
font-display: swap;
}
@font-face {
font-family: "Nevduplenysh";
src: url("/fonts/Nevduplenysh.otf") format("opentype");
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* Базовые стили */
html {
scroll-behavior: smooth;
background: linear-gradient(135deg, #111827, #1f2937, #111827);
min-height: 100vh;
}
body {
background: linear-gradient(135deg, #111827, #1f2937, #111827);
color: #ffffff;
}
/* Отступы от фиксированного хедера */
.header-offset {
padding-top: 4rem; /* 64px */
}
@media (min-width: 320px) {
.header-offset {
padding-top: 4.5rem; /* 72px */
}
}
@media (min-width: 480px) {
.header-offset {
padding-top: 5rem; /* 80px */
}
}
@media (min-width: 640px) {
.header-offset {
padding-top: 5.5rem; /* 88px */
}
}
@media (min-width: 768px) {
.header-offset {
padding-top: 6rem; /* 96px */
}
}
@media (min-width: 1024px) {
.header-offset {
padding-top: 7rem; /* 112px */
}
}
/* Планшетные стили */
@media (min-width: 768px) and (max-width: 1023px) {
/* Оптимизация для планшетов */
.tablet-grid {
grid-template-columns: repeat(2, 1fr);
}
.tablet-text-lg {
font-size: 1.125rem;
}
.tablet-p-6 {
padding: 1.5rem;
}
.tablet-gap-6 {
gap: 1.5rem;
}
/* Увеличиваем размер кликабельных элементов для планшетов */
.tablet-touch-target {
min-height: 48px;
min-width: 48px;
}
}
/* Портретная ориентация планшетов */
@media (min-width: 768px) and (max-width: 1023px) and (orientation: portrait) {
.tablet-portrait-stack {
flex-direction: column;
}
.tablet-portrait-full {
width: 100%;
}
.tablet-portrait-center {
text-align: center;
}
}
/* Альбомная ориентация планшетов */
@media (min-width: 768px) and (max-width: 1023px) and (orientation: landscape) {
.tablet-landscape-grid {
grid-template-columns: repeat(3, 1fr);
}
.tablet-landscape-flex {
display: flex;
align-items: center;
}
}
/* Ноутбучные стили */
@media (min-width: 1024px) and (max-width: 1439px) {
/* Оптимизация для ноутбуков */
.laptop-grid {
grid-template-columns: repeat(3, 1fr);
}
.laptop-text-xl {
font-size: 1.25rem;
}
.laptop-p-8 {
padding: 2rem;
}
.laptop-gap-8 {
gap: 2rem;
}
/* Компактные отступы для ноутбуков */
.laptop-compact {
padding: 1rem 2rem;
}
.laptop-sidebar {
width: 280px;
}
}
/* Оптимизация для touch-устройств */
@media (hover: none) and (pointer: coarse) {
/* Увеличиваем размер кликабельных элементов */
button,
.btn,
a[role="button"],
input[type="button"],
input[type="submit"] {
min-height: 44px;
min-width: 44px;
padding: 12px 16px;
}
/* Убираем hover эффекты для touch-устройств */
.hover\:scale-105:hover {
transform: none;
}
/* Добавляем активные состояния для touch */
.touch-active:active {
transform: scale(0.95);
transition: transform 0.1s ease;
}
}
/* Улучшенная прокрутка для планшетов */
@media (min-width: 768px) and (max-width: 1023px) {
.scroll-smooth {
scroll-behavior: smooth;
}
/* Скрываем скроллбары на планшетах для более чистого вида */
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}
/* Адаптивная типографика */
@media (min-width: 768px) and (max-width: 1023px) {
.responsive-text-sm {
font-size: 0.875rem;
}
.responsive-text-base {
font-size: 1rem;
}
.responsive-text-lg {
font-size: 1.125rem;
}
.responsive-text-xl {
font-size: 1.25rem;
}
.responsive-text-2xl {
font-size: 1.5rem;
}
}
@media (min-width: 1024px) and (max-width: 1439px) {
.responsive-text-sm {
font-size: 0.875rem;
}
.responsive-text-base {
font-size: 1rem;
}
.responsive-text-lg {
font-size: 1.125rem;
}
.responsive-text-xl {
font-size: 1.25rem;
}
.responsive-text-2xl {
font-size: 1.5rem;
}
.responsive-text-3xl {
font-size: 1.875rem;
}
}
/* Кастомные стили */
.social-icon {
transition: transform 0.3s ease, opacity 0.3s ease;
}
.social-icon:hover {
transform: scale(1.1);
opacity: 0.8;
}
/* Анимации */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in {
animation: fadeIn 0.6s ease-out;
}
/* Специальные стили для модальных окон на планшетах */
@media (min-width: 768px) and (max-width: 1023px) {
.modal-tablet {
max-width: 90vw;
max-height: 90vh;
}
.modal-tablet .modal-content {
padding: 2rem;
}
.modal-tablet .modal-header {
font-size: 1.5rem;
}
.modal-tablet .modal-text {
font-size: 1rem;
}
}
/* Специальные стили для модальных окон на ноутбуках */
@media (min-width: 1024px) and (max-width: 1439px) {
.modal-laptop {
max-width: 80vw;
max-height: 85vh;
}
.modal-laptop .modal-content {
padding: 2.5rem;
}
.modal-laptop .modal-header {
font-size: 1.75rem;
}
.modal-laptop .modal-text {
font-size: 1.125rem;
}
}
/* Стили для загрузчика страницы */
#page-loader {
transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
/* Стили для контента страницы */
#page-content {
opacity: 1;
transition: opacity 0.3s ease-in;
}
/* Предотвращение белого фона во время загрузки */
html, body {
min-height: 100vh;
background: linear-gradient(135deg, #111827, #1f2937, #111827);
}
/* Анимация появления для загрузчика */
@keyframes fade-in {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in {
animation: fade-in 0.8s ease-out;
}
/* Улучшенная анимация bounce для точек загрузки */
@keyframes enhanced-bounce {
0%, 20%, 53%, 80%, 100% {
transform: translateY(0);
}
40%, 43% {
transform: translateY(-15px);
}
70% {
transform: translateY(-7px);
}
90% {
transform: translateY(-3px);
}
}
.animate-enhanced-bounce {
animation: enhanced-bounce 1.4s ease-in-out infinite;
}
/* Анимация пульсации для логотипа */
@keyframes logo-pulse {
0%, 100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.8;
transform: scale(1.05);
}
}
.animate-logo-pulse {
animation: logo-pulse 2s ease-in-out infinite;
}
/* Градиентная анимация для прогресс-бара */
@keyframes progress-shimmer {
0% {
background-position: -200px 0;
}
100% {
background-position: calc(200px + 100%) 0;
}
}
.progress-shimmer {
background: linear-gradient(
90deg,
#fbbf24 25%,
#f59e0b 50%,
#fbbf24 75%
);
background-size: 200px 100%;
animation: progress-shimmer 2s infinite;
}
/* Адаптивные стили для загрузчика */
/* Очень маленькие экраны (до 320px) */
@media (max-width: 319px) {
#page-loader .text-center {
padding: 0.5rem;
}
#page-loader h1 {
font-size: 1.25rem !important;
margin-bottom: 1rem !important;
}
#page-loader p {
font-size: 0.75rem !important;
}
#page-loader .w-64 {
width: 12rem !important;
}
#page-loader img {
height: 3rem !important;
}
#page-loader .w-3 {
width: 0.5rem !important;
height: 0.5rem !important;
}
}
/* Маленькие экраны (320px - 479px) */
@media (min-width: 320px) and (max-width: 479px) {
#page-loader .text-center {
padding: 0.75rem;
}
#page-loader h1 {
font-size: 1.5rem !important;
margin-bottom: 1.5rem !important;
}
#page-loader p {
font-size: 0.875rem !important;
}
#page-loader .w-64 {
width: 14rem !important;
}
#page-loader img {
height: 4rem !important;
}
}
/* Средние экраны (480px - 767px) */
@media (min-width: 480px) and (max-width: 767px) {
#page-loader .text-center {
padding: 1rem;
}
#page-loader h1 {
font-size: 2rem !important;
margin-bottom: 1.5rem !important;
}
#page-loader p {
font-size: 1rem !important;
}
#page-loader .w-64 {
width: 18rem !important;
}
#page-loader img {
height: 5rem !important;
}
}
/* Планшеты (768px - 1027px) */
@media (min-width: 768px) and (max-width: 1027px) {
#page-loader .text-center {
padding: 1.5rem;
}
#page-loader h1 {
font-size: 2.5rem !important;
margin-bottom: 2rem !important;
}
#page-loader p {
font-size: 1.125rem !important;
}
#page-loader .w-64 {
width: 24rem !important;
}
#page-loader img {
height: 6rem !important;
}
#page-loader .w-3 {
width: 1rem !important;
height: 1rem !important;
}
}
/* Ноутбуки (1028px - 1439px) */
@media (min-width: 1028px) and (max-width: 1439px) {
#page-loader .text-center {
padding: 2rem;
}
#page-loader h1 {
font-size: 3rem !important;
margin-bottom: 2rem !important;
}
#page-loader p {
font-size: 1.25rem !important;
}
#page-loader .w-64 {
width: 28rem !important;
}
#page-loader img {
height: 7rem !important;
}
#page-loader .w-3 {
width: 1.25rem !important;
height: 1.25rem !important;
}
}
/* Большие экраны (1440px+) */
@media (min-width: 1440px) {
#page-loader .text-center {
padding: 2.5rem;
}
#page-loader h1 {
font-size: 3.5rem !important;
margin-bottom: 2.5rem !important;
}
#page-loader p {
font-size: 1.5rem !important;
}
#page-loader .w-64 {
width: 32rem !important;
}
#page-loader img {
height: 8rem !important;
}
#page-loader .w-3 {
width: 1.5rem !important;
height: 1.5rem !important;
}
}
/* Дополнительные адаптивные стили для декоративных элементов */
@media (max-width: 479px) {
#page-loader .absolute.top-1\/4 {
width: 4rem !important;
height: 4rem !important;
}
#page-loader .absolute.bottom-1\/4 {
width: 5rem !important;
height: 5rem !important;
}
#page-loader .absolute.top-1\/2 {
width: 3rem !important;
height: 3rem !important;
}
}
@media (min-width: 480px) and (max-width: 767px) {
#page-loader .absolute.top-1\/4 {
width: 6rem !important;
height: 6rem !important;
}
#page-loader .absolute.bottom-1\/4 {
width: 7rem !important;
height: 7rem !important;
}
#page-loader .absolute.top-1\/2 {
width: 4rem !important;
height: 4rem !important;
}
}
/* Адаптивные стили для прогресс-бара */
@media (max-width: 319px) {
#page-loader .bg-gray-700 {
height: 0.375rem !important;
}
}
@media (min-width: 320px) and (max-width: 479px) {
#page-loader .bg-gray-700 {
height: 0.5rem !important;
}
}
@media (min-width: 480px) and (max-width: 767px) {
#page-loader .bg-gray-700 {
height: 0.625rem !important;
}
}
@media (min-width: 768px) and (max-width: 1027px) {
#page-loader .bg-gray-700 {
height: 0.75rem !important;
}
}
@media (min-width: 1028px) {
#page-loader .bg-gray-700 {
height: 1rem !important;
}
}
/* Адаптивные стили для отступов между элементами */
@media (max-width: 479px) {
#page-loader .mb-8 {
margin-bottom: 1rem !important;
}
#page-loader .mb-6 {
margin-bottom: 1rem !important;
}
#page-loader .mt-4 {
margin-top: 0.75rem !important;
}
}
@media (min-width: 480px) and (max-width: 767px) {
#page-loader .mb-8 {
margin-bottom: 1.5rem !important;
}
#page-loader .mb-6 {
margin-bottom: 1.25rem !important;
}
#page-loader .mt-4 {
margin-top: 1rem !important;
}
}