// ========================================================================== // Resume Builder Create Page Styles // Professional Resume Builder - Template Selection // ========================================================================== .resume-create-page { .page-header { margin-bottom: var(--spacing-xl); h1 { color: var(--color-dark); font-weight: 700; margin-bottom: 0.5rem; } .back-btn { padding: 0.75rem 1.5rem; font-weight: 500; border-radius: var(--border-radius-md); transition: all 0.2s ease; &:hover { transform: translateY(-1px); } } } } // Template Cards Grid .templates-grid { .template-card { background: var(--color-white); border: none; border-radius: var(--border-radius-lg); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); transition: all 0.3s ease; height: 100%; overflow: hidden; position: relative; &:hover { transform: translateY(-6px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.08); .template-overlay { opacity: 1; } } .template-preview { position: relative; height: 300px; background: linear-gradient(135deg, var(--color-gray-50) 0%, var(--color-gray-100) 100%); display: flex; align-items: center; justify-content: center; overflow: hidden; img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .preview-placeholder { text-align: center; color: var(--color-gray-400); i { font-size: 4rem; margin-bottom: var(--spacing-md); display: block; } p { font-size: 1.125rem; font-weight: 500; margin-bottom: 0; } } } .template-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(102, 126, 234, 0.9) 0%, rgba(59, 130, 246, 0.9) 100%); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; z-index: 2; .preview-btn { background: rgba(255, 255, 255, 0.2); border: 2px solid rgba(255, 255, 255, 0.6); color: var(--color-white); padding: 0.75rem 1.5rem; border-radius: var(--border-radius-md); font-weight: 600; text-decoration: none; transition: all 0.2s ease; backdrop-filter: blur(10px); &:hover { background: rgba(255, 255, 255, 0.3); border-color: rgba(255, 255, 255, 0.8); color: var(--color-white); transform: scale(1.05); } i { margin-right: 0.5rem; } } } .card-body { padding: var(--spacing-lg); } .template-header { display: flex; justify-content: between; align-items: start; margin-bottom: var(--spacing-md); .template-title { font-size: 1.25rem; font-weight: 600; color: var(--color-dark); margin-bottom: 0; flex-grow: 1; } .template-category { font-size: 0.75rem; font-weight: 500; padding: 0.375rem 0.75rem; border-radius: var(--border-radius-full); &.bg-primary { background: rgba(102, 126, 234, 0.1) !important; color: var(--brand-primary); } &.bg-success { background: rgba(34, 197, 94, 0.1) !important; color: var(--brand-success); } &.bg-warning { background: rgba(251, 191, 36, 0.1) !important; color: var(--brand-warning); } &.bg-info { background: rgba(59, 130, 246, 0.1) !important; color: var(--brand-info); } } } .template-description { color: var(--color-gray-600); font-size: 0.875rem; line-height: 1.5; margin-bottom: var(--spacing-lg); } .template-features { margin-bottom: var(--spacing-lg); .feature-list { list-style: none; padding: 0; margin: 0; li { font-size: 0.875rem; color: var(--color-gray-600); margin-bottom: 0.25rem; display: flex; align-items: center; i { color: var(--brand-success); margin-right: 0.5rem; font-size: 0.75rem; } } } } .template-actions { .select-btn { width: 100%; background: var(--brand-gradient); border: none; color: var(--color-white); padding: 0.875rem 1.5rem; font-weight: 600; border-radius: var(--border-radius-md); transition: all 0.3s ease; position: relative; overflow: hidden; &:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4); } &:active { transform: translateY(0); } &:disabled { opacity: 0.6; transform: none !important; box-shadow: none !important; } .btn-text { transition: opacity 0.2s ease; } .btn-loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; transition: opacity 0.2s ease; .spinner-border { width: 1.25rem; height: 1.25rem; } } &.loading { .btn-text { opacity: 0; } .btn-loading { opacity: 1; } } } .preview-link { display: block; text-align: center; color: var(--brand-primary); text-decoration: none; font-size: 0.875rem; font-weight: 500; margin-top: var(--spacing-sm); transition: color 0.2s ease; &:hover { color: var(--brand-primary-dark); text-decoration: underline; } i { margin-right: 0.25rem; } } } } } // Template Filters .template-filters { background: var(--color-white); border-radius: var(--border-radius-lg); padding: var(--spacing-lg); margin-bottom: var(--spacing-xl); box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.06); .filter-section { margin-bottom: var(--spacing-md); &:last-child { margin-bottom: 0; } .filter-label { font-weight: 600; color: var(--color-dark); margin-bottom: var(--spacing-sm); font-size: 0.875rem; } .filter-options { display: flex; flex-wrap: wrap; gap: 0.5rem; .filter-btn { background: var(--color-white); border: 1px solid var(--color-gray-300); color: var(--color-gray-600); padding: 0.5rem 1rem; border-radius: var(--border-radius-full); font-size: 0.875rem; font-weight: 500; transition: all 0.2s ease; cursor: pointer; &:hover { background: var(--color-gray-50); border-color: var(--color-gray-400); } &.active { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--color-white); &:hover { background: var(--brand-primary-dark); border-color: var(--brand-primary-dark); } } } } } } // Empty State .no-templates { text-align: center; padding: var(--spacing-4xl) var(--spacing-lg); .empty-icon { font-size: 4rem; color: var(--color-gray-300); margin-bottom: var(--spacing-lg); } h3 { color: var(--color-gray-700); font-weight: 600; margin-bottom: var(--spacing-md); } p { color: var(--color-gray-500); font-size: 1.1rem; margin-bottom: 0; max-width: 400px; margin-left: auto; margin-right: auto; } } // Loading States .templates-loading { .loading-card { background: var(--color-white); border-radius: var(--border-radius-lg); box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.06); height: 500px; .loading-preview { height: 300px; background: linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%); background-size: 200% 100%; animation: shimmer 2s infinite; } .loading-body { padding: var(--spacing-lg); .loading-title { height: 1.5rem; width: 70%; background: linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%); background-size: 200% 100%; animation: shimmer 2s infinite; border-radius: var(--border-radius-sm); margin-bottom: var(--spacing-sm); } .loading-description { height: 1rem; background: linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%); background-size: 200% 100%; animation: shimmer 2s infinite; border-radius: var(--border-radius-sm); margin-bottom: 0.5rem; &:last-of-type { width: 60%; margin-bottom: var(--spacing-lg); } } .loading-button { height: 3rem; background: linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%); background-size: 200% 100%; animation: shimmer 2s infinite; border-radius: var(--border-radius-md); } } } } // Responsive Design @include media-breakpoint-down(lg) { .template-filters { .filter-options { .filter-btn { flex: 1; text-align: center; min-width: auto; } } } } @include media-breakpoint-down(md) { .resume-create-page { .page-header { text-align: center; .back-btn { width: 100%; margin-top: var(--spacing-md); } } } .template-filters { .filter-section { .filter-options { .filter-btn { width: 100%; margin-bottom: 0.5rem; &:last-child { margin-bottom: 0; } } } } } .templates-grid { .template-card { .template-preview { height: 250px; } .template-header { flex-direction: column; align-items: flex-start; .template-category { margin-top: 0.5rem; } } } } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } // Template Selection Animations @keyframes selectTemplate { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } } .template-card.selecting { animation: selectTemplate 0.3s ease-in-out; } // Success State .template-selected { border: 2px solid var(--brand-success) !important; .template-overlay { background: linear-gradient(135deg, rgba(34, 197, 94, 0.9) 0%, rgba(22, 163, 74, 0.9) 100%); opacity: 1; .success-message { color: var(--color-white); text-align: center; i { font-size: 3rem; margin-bottom: var(--spacing-md); } h4 { font-weight: 600; margin-bottom: 0.5rem; } p { margin-bottom: 0; opacity: 0.9; } } } }