/* assets/css/components.css */ /* Кнопки */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-lg); border: none; border-radius: var(--radius-md); font-weight: 500; text-decoration: none; cursor: pointer; transition: all 0.2s; font-size: 0.875rem; line-height: 1.25rem; } .btn-primary { background: var(--primary-500); color: var(--text-inverse); } .btn-primary:hover { background: var(--primary-600); transform: translateY(-1px); box-shadow: var(--shadow-md); } .btn-secondary { background: var(--secondary-500); color: var(--text-inverse); } .btn-secondary:hover { background: var(--secondary-600); } .btn-outline { background: transparent; border: 1px solid var(--border-medium); color: var(--text-secondary); } .btn-outline:hover { background: var(--gray-50); border-color: var(--primary-500); color: var(--primary-600); } /* Карточки */ .card { background: var(--bg-primary); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); border: 1px solid var(--border-light); overflow: hidden; transition: all 0.3s; } .card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); } .card-header { padding: var(--space-lg); border-bottom: 1px solid var(--border-light); } .card-body { padding: var(--space-lg); } .card-footer { padding: var(--space-lg); border-top: 1px solid var(--border-light); background: var(--bg-secondary); } /* Формы */ .form-group { display: flex; flex-direction: column; gap: var(--space-xs); margin-bottom: var(--space-md); } .form-label { font-weight: 500; color: var(--text-secondary); font-size: 0.875rem; } .form-input { padding: var(--space-sm) var(--space-md); border: 1px solid var(--border-medium); border-radius: var(--radius-md); font-size: 1rem; transition: all 0.2s; background: var(--bg-primary); } .form-input:focus { outline: none; border-color: var(--primary-500); box-shadow: 0 0 0 3px rgb(14 165 233 / 0.1); } .form-select { padding: var(--space-sm) var(--space-md); border: 1px solid var(--border-medium); border-radius: var(--radius-md); background: var(--bg-primary); cursor: pointer; } /* Бейджи и теги */ .badge { display: inline-flex; align-items: center; padding: 0.25rem 0.5rem; border-radius: var(--radius-sm); font-size: 0.75rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; } .badge-primary { background: var(--primary-100); color: var(--primary-700); } .badge-secondary { background: var(--secondary-100); color: var(--secondary-700); } .badge-accent { background: var(--accent-100); color: var(--accent-700); } .badge-success { background: var(--success-50); color: var(--success-600); } /* Навигация */ .nav-link { color: var(--text-secondary); text-decoration: none; padding: var(--space-sm) var(--space-md); border-radius: var(--radius-md); transition: all 0.2s; font-weight: 500; } .nav-link:hover { color: var(--primary-600); background: var(--primary-50); } .nav-link.active { color: var(--primary-600); background: var(--primary-50); } /* Дополнения для темной темы */ .form-input, .form-select { background: var(--bg-primary); border-color: var(--border-medium); color: var(--text-primary); transition: all 0.3s ease; } .form-input:focus, .form-select:focus { border-color: var(--primary-500); box-shadow: 0 0 0 3px rgb(14 165 233 / 0.1); } .card { background: var(--bg-primary); border-color: var(--border-light); transition: all 0.3s ease; } .btn-outline { background: transparent; border: 1px solid var(--border-medium); color: var(--text-secondary); } .btn-outline:hover { background: var(--bg-secondary); border-color: var(--primary-500); color: var(--primary-500); }