| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| .category { |
| background: linear-gradient(145deg, var(--card-bg-gradient-1), var(--card-bg-gradient-2)); |
| border-radius: var(--radius-xl); |
| padding: 1rem; |
| margin: 0 auto 1.2rem auto; |
| width: 100%; |
| max-width: var(--page-max-width); |
| position: relative; |
| z-index: 1; |
| opacity: 1; |
| box-shadow: 0 4px 20px var(--shadow-color); |
| border: 1px solid var(--border-color); |
| transition: |
| background var(--transition-normal), |
| box-shadow var(--transition-normal); |
| } |
|
|
| |
| .category-header { |
| border-radius: var(--radius-md); |
| padding: 0.4rem; |
| margin: -0.4rem -0.4rem 0.8rem -0.4rem; |
| transition: all var(--transition-normal); |
| } |
|
|
| |
| .category-header [data-editable='category-name'] > i, |
| .group-header [data-editable='group-name'] > i { |
| width: 1.25em; |
| min-width: 1.25em; |
| text-align: center; |
| flex: 0 0 1.25em; |
| } |
|
|
| |
| .group-header { |
| border-radius: var(--radius-md); |
| transition: all var(--transition-normal); |
| } |
|
|
| |
| .category-header[data-toggle='category'], |
| .group-header[data-toggle='group'] { |
| cursor: pointer; |
| user-select: none; |
| } |
|
|
| .category-header[data-toggle='category']:hover { |
| transform: translateY(-2px); |
| background: linear-gradient(145deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01)); |
| } |
|
|
| .group-header[data-toggle='group']:hover { |
| transform: translateY(-2px); |
| background: linear-gradient(145deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01)); |
| } |
|
|
| .category-header[data-toggle='category']:active { |
| transform: translateY(0); |
| } |
|
|
| .group-header[data-toggle='group']:active { |
| transform: translateY(0); |
| } |
|
|
| .category h2 { |
| font-size: 1.2rem; |
| margin-bottom: 0; |
| color: var(--text-bright); |
| display: flex; |
| align-items: center; |
| gap: 0.8rem; |
| letter-spacing: 0.3px; |
| transition: color 0.3s ease; |
| } |
|
|
| .category h2 > i { |
| color: var(--accent-color); |
| font-size: 1.3rem; |
| transition: all 0.3s ease; |
| } |
|
|
| .category-header[data-toggle='category']:hover h2 > i { |
| transform: scale(1.1); |
| color: var(--accent-hover); |
| } |
|
|
| |
|
|
| |
| .category-level-2, |
| .category-level-3, |
| .category-level-4, |
| .group-level-3, |
| .group-level-4 { |
| background: none; |
| border: none; |
| box-shadow: none; |
| padding: 0; |
| width: 100%; |
| margin: 0; |
| } |
|
|
| |
| .category-level-2::before, |
| .category-level-3::before, |
| .group-level-3::before, |
| .category-level-4::before, |
| .group-level-4::before { |
| content: ''; |
| position: absolute; |
| left: 0; |
| top: 0; |
| bottom: 0; |
| width: 2px; |
| background-color: var(--border-color); |
| opacity: 0.6; |
| } |
|
|
| |
| .category-level-2 { |
| margin-top: 0; |
| margin-bottom: 0; |
| padding-left: 1rem; |
| border-left: none; |
| position: relative; |
| } |
|
|
| |
| .category-level-2 .category-header { |
| margin: 0 -0.5rem 1rem -0.5rem; |
| padding: 0.5rem; |
| background: none; |
| border-radius: var(--radius-md); |
| } |
|
|
| .category-level-2 .category-header h3 { |
| font-size: 1.1rem; |
| font-weight: 600; |
| color: var(--text-bright); |
| display: flex; |
| align-items: center; |
| gap: 0.8rem; |
| } |
|
|
| .category-level-2 .category-header h3 > i { |
| color: var(--accent-color); |
| font-size: 1.2rem; |
| opacity: 0.9; |
| } |
|
|
| |
| .group-level-3, |
| .category-level-3 { |
| margin-top: 0; |
| margin-bottom: 0; |
| padding-left: 1rem; |
| position: relative; |
| } |
|
|
| |
| .group-level-3 .group-header, |
| .category-level-3 .category-header { |
| margin: 0 0 0.8rem 0; |
| padding: 0.3rem 0; |
| background: none; |
| } |
|
|
| .group-level-3 .group-header h4, |
| .category-level-3 .category-header h4 { |
| font-size: 1rem; |
| font-weight: 500; |
| color: var(--text-color); |
| display: flex; |
| align-items: center; |
| gap: 0.6rem; |
| } |
|
|
| .group-level-3 .group-header h4 i, |
| .category-level-3 .category-header h4 i { |
| color: var(--text-muted); |
| font-size: 1rem; |
| } |
|
|
| |
| .group-level-4, |
| .category-level-4 { |
| margin-top: 0; |
| margin-bottom: 0; |
| padding-left: 1rem; |
| position: relative; |
| } |
|
|
| |
| .subcategories-container > .category-level-2 + .category-level-2 { |
| margin-top: 1rem; |
| } |
|
|
| .groups-container > .group-level-3 + .group-level-3, |
| .groups-container > .category-level-3 + .category-level-3 { |
| margin-top: 0.8rem; |
| } |
|
|
| .subgroups-container > .group-level-4 + .group-level-4, |
| .subcategories-container > .category-level-4 + .category-level-4 { |
| margin-top: 0.6rem; |
| } |
|
|
| |
| .group-level-4 .group-header, |
| .category-level-4 .category-header { |
| margin: 0 0 0.6rem 0; |
| padding: 0.2rem 0; |
| background: none; |
| } |
|
|
| .group-level-4 .group-header h5, |
| .category-level-4 .category-header h5 { |
| font-size: 0.9rem; |
| font-weight: 500; |
| color: var(--text-muted); |
| display: flex; |
| align-items: center; |
| gap: 0.5rem; |
| } |
|
|
| .group-level-4 .group-header h5 i, |
| .category-level-4 .category-header h5 i { |
| font-size: 0.9rem; |
| opacity: 0.7; |
| } |
|
|
| |
| .category-level-2 .category-header:hover h3 > i, |
| .group-level-3 .group-header:hover h4 i, |
| .category-level-3 .category-header:hover h4 i, |
| .group-level-4 .group-header:hover h5 i, |
| .category-level-4 .category-header:hover h5 i { |
| transform: none; |
| } |
|
|
| |
| .category-header .toggle-icon, |
| .group-header .toggle-icon { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| width: 20px; |
| height: 20px; |
| margin-left: auto; |
| color: var(--text-muted); |
| font-size: 0.9rem; |
| } |
|
|
| .category-header .toggle-icon i, |
| .group-header .toggle-icon i { |
| transition: |
| transform 0.3s ease, |
| color 0.3s ease; |
| transform: rotate(0deg); |
| } |
|
|
| |
| .category:not(.collapsed) > .category-header .toggle-icon i, |
| .group:not(.collapsed) > .group-header .toggle-icon i { |
| transform: rotate(180deg); |
| color: var(--text-bright); |
| } |
|
|
| .category-header[data-toggle='category']:hover .toggle-icon i, |
| .group-header[data-toggle='group']:hover .toggle-icon i { |
| color: var(--accent-color); |
| } |
|
|
| |
| @media (hover: hover) and (pointer: fine) { |
| .category-header .toggle-icon, |
| .group-header .toggle-icon { |
| opacity: 0; |
| transition: opacity 0.2s ease; |
| } |
|
|
| .category-header[data-toggle='category']:hover .toggle-icon, |
| .category.collapsed > .category-header .toggle-icon, |
| .group-header[data-toggle='group']:hover .toggle-icon, |
| .group.collapsed > .group-header .toggle-icon { |
| opacity: 1; |
| } |
| } |
|
|
| |
| .category-content, |
| .group-content { |
| overflow: visible; |
| transition: |
| max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), |
| opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| max-height: 5000px; |
| opacity: 1; |
| } |
|
|
| .category.collapsed .category-content, |
| .group.collapsed .group-content { |
| overflow: hidden; |
| max-height: 0; |
| opacity: 0; |
| margin-top: 0; |
| } |
|
|
| |
| .category.collapsed > .category-header { |
| margin-bottom: -0.5rem; |
| } |
|
|
| .category-level-2.collapsed > .category-header { |
| margin-bottom: 0; |
| border-bottom: none; |
| } |
|
|
| .group-level-3.collapsed > .group-header, |
| .category-level-3.collapsed > .category-header { |
| margin-bottom: 0; |
| } |
|
|
| .group-level-4.collapsed > .group-header, |
| .category-level-4.collapsed > .category-header { |
| margin-bottom: 0; |
| } |
|
|
| |
|
|
| |
| .empty-content { |
| color: var(--text-muted); |
| font-style: italic; |
| text-align: center; |
| padding: 1rem; |
| font-size: 0.9rem; |
| } |
|
|
| |
| .subcategories-container, |
| .groups-container { |
| width: 100%; |
| } |
|
|
| |
| .category-content .subcategories-container + .sites-grid { |
| margin-top: 1.2rem; |
| padding-top: 1rem; |
| border-top: 1px solid var(--border-color); |
| } |
|
|
| |
| .category-content .groups-container + .sites-grid { |
| margin-top: 1.2rem; |
| padding-top: 1rem; |
| border-top: 1px solid var(--border-color); |
| } |
|
|
| |
| .category-content .subcategories-container:not(:last-child), |
| .category-content .groups-container:not(:last-child) { |
| margin-bottom: 0.6rem; |
| } |
|
|
| |
| .category-level-2 .sites-grid, |
| .group-level-3 .sites-grid, |
| .category-level-3 .sites-grid, |
| .group-level-4 .sites-grid, |
| .category-level-4 .sites-grid { |
| margin-top: 0; |
| gap: 0.75rem; |
| |
| grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .category-level-2 { |
| padding-left: 0.75rem; |
| } |
|
|
| .group-level-3, |
| .category-level-3 { |
| padding-left: 0.75rem; |
| } |
|
|
| .group-level-4, |
| .category-level-4 { |
| padding-left: 0.75rem; |
| } |
|
|
| .subcategories-container > .category-level-2 + .category-level-2 { |
| margin-top: 0.8rem; |
| } |
|
|
| .groups-container > .group-level-3 + .group-level-3, |
| .groups-container > .category-level-3 + .category-level-3 { |
| margin-top: 0.7rem; |
| } |
|
|
| .subgroups-container > .group-level-4 + .group-level-4, |
| .subcategories-container > .category-level-4 + .category-level-4 { |
| margin-top: 0.55rem; |
| } |
|
|
| .category-level-2 .sites-grid, |
| .group-level-3 .sites-grid, |
| .category-level-3 .sites-grid, |
| .group-level-4 .sites-grid, |
| .category-level-4 .sites-grid { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| gap: var(--spacing-sm); |
| } |
| } |
|
|
| @media (max-width: 480px) { |
| .category { |
| margin-left: 0.5rem; |
| margin-right: 0.5rem; |
| padding: 1rem; |
| } |
|
|
| .category-level-2, |
| .group-level-3, |
| .category-level-3 { |
| margin-left: 0; |
| padding-left: 0.75rem; |
| width: 100%; |
| } |
|
|
| .group-level-4, |
| .category-level-4 { |
| margin-left: 0; |
| padding-left: 0.75rem; |
| width: 100%; |
| } |
|
|
| .category-level-2 .sites-grid, |
| .group-level-3 .sites-grid, |
| .category-level-3 .sites-grid, |
| .group-level-4 .sites-grid, |
| .category-level-4 .sites-grid { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| gap: 0.5rem; |
| } |
| } |
|
|
| |
| .page-template-projects .gh-heatmap-category { |
| |
| --gh-text: var(--text-color); |
| --gh-text-muted: var(--text-muted); |
| --gh-level-0: rgba(255, 255, 255, 0.08); |
| --gh-level-1: rgba(55, 178, 77, 0.35); |
| --gh-level-2: rgba(55, 178, 77, 0.55); |
| --gh-level-3: rgba(55, 178, 77, 0.75); |
| --gh-level-4: rgba(55, 178, 77, 0.95); |
| --gh-radius: 3px; |
|
|
| margin: 0 auto 1.2rem auto; |
| } |
|
|
| .page-template-projects .gh-heatmap-wrapper { |
| margin-top: 0; |
| } |
|
|
| |
| html.theme-preload .page-template-projects .gh-heatmap-category, |
| body.light-theme .page-template-projects .gh-heatmap-category { |
| |
| --gh-level-0: #d8dee4; |
| --gh-level-1: #9be9a8; |
| --gh-level-2: #40c463; |
| --gh-level-3: #30a14e; |
| --gh-level-4: #216e39; |
| } |
|
|
| |
| .page-template-projects .gh-heatmap-username { |
| color: var(--text-muted); |
| font-weight: 400; |
| margin-left: 0.35rem; |
| } |
|
|
| |
| .page-template-projects .gh-heatmap-category .category-header { |
| margin-bottom: 0.8rem; |
| } |
|
|
| |
| .page-template-projects .gh-heatmap-category .gh-heatmap-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| gap: 0.8rem; |
| } |
|
|
| .page-template-projects .gh-heatmap-category .gh-heatmap-header h2 { |
| margin: 0; |
| } |
|
|
| |
| .page-template-projects .gh-heatmap-category .gh-legend { |
| justify-content: flex-end; |
| margin: 0; |
| } |
|
|
| .page-template-projects .gh-header { |
| display: none; |
| } |
|
|
| .page-template-projects .gh-legend { |
| display: flex; |
| align-items: center; |
| gap: 4px; |
| font-size: 0.75rem; |
| color: var(--gh-text-muted); |
| white-space: nowrap; |
| } |
|
|
| |
| .gh-text-mobile { |
| display: none; |
| } |
|
|
| @media (max-width: 480px) { |
| .gh-text-desktop { |
| display: none; |
| } |
|
|
| .gh-text-mobile { |
| display: inline; |
| } |
|
|
| .page-template-projects .gh-heatmap-category .gh-heatmap-header { |
| flex-wrap: wrap; |
| } |
|
|
| .page-template-projects .gh-heatmap-category .gh-legend { |
| gap: 2px; |
| font-size: 0.7rem; |
| } |
|
|
| .page-template-projects .gh-legend-item { |
| width: 8px; |
| height: 8px; |
| } |
| } |
|
|
| .page-template-projects .gh-legend-item { |
| width: 10px; |
| height: 10px; |
| border-radius: 2px; |
| } |
|
|
| .page-template-projects .gh-legend .level-0 { |
| background-color: var(--gh-level-0); |
| } |
|
|
| .page-template-projects .gh-legend .level-1 { |
| background-color: var(--gh-level-1); |
| } |
|
|
| .page-template-projects .gh-legend .level-2 { |
| background-color: var(--gh-level-2); |
| } |
|
|
| .page-template-projects .gh-legend .level-3 { |
| background-color: var(--gh-level-3); |
| } |
|
|
| .page-template-projects .gh-legend .level-4 { |
| background-color: var(--gh-level-4); |
| } |
|
|
| |
| .page-template-projects .gh-calendar { |
| border: none !important; |
| min-height: 0; |
| width: 100%; |
| |
| display: block; |
| } |
|
|
| |
| .page-template-projects .gh-calendar #js-contribution-activity-description { |
| |
| display: block; |
| width: 100%; |
| text-align: center; |
| margin: 0 0 12px 0; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .graph-before-activity-overview { |
| width: 100%; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .js-calendar-graph { |
| width: 100%; |
| |
| display: block; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .js-calendar-graph > div { |
| width: 100%; |
| max-width: 100%; |
| overflow-x: auto; |
| overflow-y: hidden; |
| -webkit-overflow-scrolling: touch; |
| |
| display: block; |
| padding-bottom: 10px; |
| } |
|
|
| .page-template-projects .gh-calendar .js-calendar-graph-svg { |
| width: 100%; |
| height: auto; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .day { |
| rx: var(--gh-radius); |
| ry: var(--gh-radius); |
| outline: none; |
| } |
|
|
| .page-template-projects .gh-calendar .day[data-level='0'] { |
| fill: var(--gh-level-0); |
| } |
|
|
| .page-template-projects .gh-calendar .day[data-level='1'] { |
| fill: var(--gh-level-1); |
| } |
|
|
| .page-template-projects .gh-calendar .day[data-level='2'] { |
| fill: var(--gh-level-2); |
| } |
|
|
| .page-template-projects .gh-calendar .day[data-level='3'] { |
| fill: var(--gh-level-3); |
| } |
|
|
| .page-template-projects .gh-calendar .day[data-level='4'] { |
| fill: var(--gh-level-4); |
| } |
|
|
| .page-template-projects .gh-calendar text { |
| fill: var(--gh-text-muted); |
| font-size: 10px; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .contrib-footer { |
| display: none !important; |
| } |
|
|
| .page-template-projects .gh-calendar.gh-calendar-error { |
| color: var(--gh-text-muted); |
| font-size: 0.85rem; |
| } |
|
|
| |
| .page-template-projects .gh-calendar table { |
| |
| |
| display: table; |
| |
| width: max-content; |
| min-width: max-content; |
| max-width: none; |
| table-layout: auto; |
| border-collapse: separate; |
| border-spacing: 5px !important; |
| |
| margin: 0 auto; |
| } |
|
|
| |
| .page-template-projects .gh-calendar table thead tr { |
| height: 20px !important; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .ContributionCalendar-label { |
| height: 16px; |
| position: relative; |
| padding-bottom: 4px; |
| font-size: 10px; |
| line-height: 10px; |
| font-weight: 400; |
| vertical-align: bottom; |
| } |
|
|
| @media (max-width: 600px) { |
| |
| .page-template-projects .gh-calendar table { |
| border-spacing: 3px !important; |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day { |
| width: 12px; |
| height: 12px; |
| min-width: 12px; |
| min-height: 12px; |
| } |
|
|
| .page-template-projects .gh-calendar #js-contribution-activity-description { |
| font-size: 0.95rem; |
| } |
| } |
|
|
| |
| .page-template-projects .gh-calendar .float-right.color-fg-muted.d-flex.flex-items-center { |
| display: none !important; |
| } |
|
|
| |
| .page-template-projects .gh-calendar .float-left { |
| display: none !important; |
| } |
|
|
| |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day { |
| |
| width: 15px; |
| height: 15px; |
| min-width: 15px; |
| min-height: 15px; |
| aspect-ratio: 1 / 1; |
| border-radius: var(--gh-radius); |
| background-color: var(--gh-level-0); |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day[data-level='0'] { |
| background-color: var(--gh-level-0) !important; |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day[data-level='1'] { |
| background-color: var(--gh-level-1) !important; |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day[data-level='2'] { |
| background-color: var(--gh-level-2) !important; |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day[data-level='3'] { |
| background-color: var(--gh-level-3) !important; |
| } |
|
|
| .page-template-projects .gh-calendar .ContributionCalendar-day[data-level='4'] { |
| background-color: var(--gh-level-4) !important; |
| } |
|
|
| |
| .page-template-projects .gh-calendar a[href^='#year-list'], |
| .page-template-projects .gh-calendar a[href*='year-list'], |
| .page-template-projects .gh-calendar a[href*='contributions-year'] { |
| |
| position: absolute; |
| width: 1px; |
| height: 1px; |
| padding: 0; |
| margin: -1px; |
| overflow: hidden; |
| clip: rect(0, 0, 0, 0); |
| white-space: nowrap; |
| border: 0; |
| } |
|
|
| |
| @media (max-width: 1200px) { |
| .welcome-section { |
| padding: 0 var(--spacing-lg); |
| margin-bottom: 2rem; |
| } |
|
|
| .category { |
| max-width: 1100px; |
| margin: 0 auto 2.5rem auto; |
| } |
| } |
|
|
| @media (max-width: 768px) { |
| .mobile-buttons { |
| display: flex; |
| } |
|
|
| :root { |
| |
| --mobile-top-button-size: 2.9rem; |
| } |
|
|
| .menu-toggle { |
| width: var(--mobile-top-button-size); |
| height: var(--mobile-top-button-size); |
| background: rgba(var(--card-bg-rgb), 0.65); |
| border: 1px solid var(--border-color); |
| border-radius: var(--radius-lg); |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| box-shadow: 0 4px 16px var(--shadow-color); |
| } |
|
|
| |
| .theme-toggle, |
| .category-toggle { |
| width: var(--mobile-top-button-size); |
| height: var(--mobile-top-button-size); |
| background: rgba(var(--card-bg-rgb), 0.65); |
| border: 1px solid var(--border-color); |
| border-radius: var(--radius-lg); |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| box-shadow: 0 4px 16px var(--shadow-color); |
| transition: all var(--transition-normal); |
| transition-timing-function: var(--transition-bounce); |
| } |
|
|
| .theme-toggle:hover, |
| .category-toggle:hover { |
| transform: translateY(-2px); |
| background: rgba(var(--card-bg-rgb), 0.75); |
| box-shadow: 0 6px 20px var(--shadow-color); |
| color: var(--accent-color); |
| } |
|
|
| .theme-toggle:active, |
| .category-toggle:active { |
| transform: translateY(0); |
| box-shadow: 0 2px 8px var(--shadow-color); |
| } |
|
|
| main.content { |
| margin-left: 0; |
| width: 100vw; |
| max-width: 100vw; |
| padding-top: calc(var(--spacing-md) + var(--mobile-top-button-size) + var(--spacing-sm)); |
| padding-top: calc( |
| env(safe-area-inset-top) + var(--spacing-md) + var(--mobile-top-button-size) + |
| var(--spacing-sm) |
| ); |
| |
| padding-left: calc(var(--spacing-sm) + var(--spacing-xs)); |
| padding-right: calc(var(--spacing-sm) + var(--spacing-xs)); |
| } |
|
|
| .sidebar { |
| transform: translateX(-100%); |
| box-shadow: none; |
| transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| max-width: 100vw; |
| overflow-x: hidden; |
| } |
|
|
| .sidebar .logo { |
| padding-top: 1.5rem; |
| display: flex; |
| align-items: center; |
| height: 60px; |
| } |
|
|
| |
| .sidebar-toggle { |
| display: none; |
| } |
|
|
| .sidebar.active { |
| transform: translateX(0); |
| box-shadow: 2px 0 10px var(--shadow-color); |
| z-index: 1000; |
| |
| } |
|
|
| |
| .sidebar.collapsed { |
| width: var(--sidebar-width); |
| } |
|
|
| .sidebar.collapsed .logo h1, |
| .sidebar.collapsed .nav-item .nav-text, |
| .sidebar.collapsed .nav-item .external-icon { |
| opacity: 1; |
| transform: none; |
| width: auto; |
| } |
|
|
| .sidebar.collapsed .sidebar-footer { |
| height: auto; |
| padding: 1rem 1.2rem; |
| visibility: visible; |
| pointer-events: auto; |
| border-top: 1px solid var(--border-color); |
| } |
|
|
| .sidebar.collapsed .sidebar-social { |
| padding: 0.2rem 1.2rem 0.8rem; |
| flex-direction: row; |
| } |
|
|
| .sidebar.collapsed .nav-item { |
| padding: 0.6rem 0.8rem; |
| justify-content: flex-start; |
| } |
|
|
| .sidebar.collapsed .nav-item .icon-container { |
| margin-right: 1rem; |
| } |
|
|
| |
| .search-container { |
| position: fixed; |
| top: var(--spacing-md); |
| top: calc(env(safe-area-inset-top) + var(--spacing-md)); |
| |
| left: calc(var(--spacing-md) + var(--mobile-top-button-size) + var(--spacing-sm)); |
| right: var(--spacing-md); |
| left: calc( |
| env(safe-area-inset-left) + var(--spacing-md) + var(--mobile-top-button-size) + |
| var(--spacing-sm) |
| ); |
| right: calc(env(safe-area-inset-right) + var(--spacing-md)); |
| width: auto; |
| padding: 0; |
| margin-bottom: 0; |
| box-shadow: none; |
| z-index: 900; |
| } |
|
|
| .search-box { |
| max-width: 100%; |
| } |
|
|
| .search-box input { |
| padding: 0.8rem 3rem 0.8rem 1rem; |
| font-size: 0.95rem; |
| } |
|
|
| .search-box::after { |
| right: 0.8rem; |
| } |
|
|
| .search-shortcut-hint { |
| right: 1.2rem; |
| font-size: 0.72rem; |
| padding: 0.1rem 0.35rem; |
| } |
|
|
| .search-engine-button { |
| width: 104px; |
| flex: 0 0 104px; |
| padding: 0 0.6rem; |
| } |
|
|
| .sidebar .logo h1, |
| .sidebar .nav-item span { |
| opacity: 1; |
| display: block; |
| } |
|
|
| |
| .welcome-section { |
| padding: 0 1rem; |
| margin-top: 1rem; |
| |
| } |
|
|
| .page { |
| padding-left: 0.15rem; |
| padding-right: 0.15rem; |
| } |
|
|
| .welcome-section h2 { |
| font-size: 1.5rem; |
| } |
|
|
| .welcome-section h3 { |
| font-size: 1rem; |
| background: none; |
| -webkit-background-clip: border-box; |
| background-clip: border-box; |
| animation: none; |
| color: var(--text-muted); |
| } |
|
|
| |
| .category-toggle { |
| bottom: 4rem; |
| bottom: calc(env(safe-area-inset-bottom) + 4rem); |
| right: 1rem; |
| right: calc(env(safe-area-inset-right) + 1rem); |
| } |
|
|
| |
| .search-toggle { |
| display: none; |
| } |
|
|
| |
| .category { |
| margin: 0 auto var(--spacing-lg) auto; |
| padding: var(--spacing-md); |
| width: 100%; |
| } |
|
|
| .sites-grid { |
| gap: var(--spacing-sm); |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| } |
|
|
| .site-card { |
| |
| flex-direction: row; |
| align-items: center; |
| text-align: left; |
| padding: 0.75rem 0.65rem; |
| gap: 0.6rem; |
| } |
|
|
| .site-card-icon { |
| width: 2.2rem; |
| height: 2.2rem; |
| } |
|
|
| .site-card .site-icon { |
| font-size: 1.5rem; |
| } |
|
|
| .site-card .favicon-icon, |
| .site-card .icon-placeholder, |
| .site-card .icon-fallback, |
| .site-card .icon-container { |
| width: 1.5rem; |
| height: 1.5rem; |
| } |
|
|
| .site-card .icon-placeholder, |
| .site-card .icon-fallback { |
| line-height: 1.5rem; |
| font-size: 1.3rem; |
| } |
|
|
| .site-card-content { |
| text-align: left; |
| } |
|
|
| .site-card h3 { |
| font-size: 1rem; |
| margin-bottom: 0.25rem; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| max-width: 100%; |
| } |
|
|
| .site-card p { |
| font-size: 0.9rem; |
| line-height: 1.4; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
|
|
| |
| .theme-toggle { |
| bottom: 1rem; |
| bottom: calc(env(safe-area-inset-bottom) + 1rem); |
| right: 1rem; |
| right: calc(env(safe-area-inset-right) + 1rem); |
| } |
|
|
| .sidebar .submenu { |
| margin-left: 1rem; |
| } |
|
|
| .sidebar.active .submenu-item { |
| padding: 0.5rem 0.6rem; |
| } |
|
|
| |
| .sidebar.collapsed .submenu { |
| display: none; |
| } |
| } |
|
|
| @media (max-width: 480px) { |
| .welcome-section { |
| padding: 0 1rem; |
| margin-bottom: 1rem; |
| } |
|
|
| .category { |
| margin: 0 auto 1.3rem auto; |
| padding: 0.95rem; |
| width: 100%; |
| } |
|
|
| .search-container { |
| left: calc(var(--spacing-md) + var(--mobile-top-button-size) + var(--spacing-sm)); |
| right: var(--spacing-md); |
| left: calc( |
| env(safe-area-inset-left) + var(--spacing-md) + var(--mobile-top-button-size) + |
| var(--spacing-sm) |
| ); |
| right: calc(env(safe-area-inset-right) + var(--spacing-md)); |
| } |
|
|
| .page { |
| padding-top: 1rem; |
| padding-left: 0.1rem; |
| padding-right: 0.1rem; |
| } |
|
|
| .sites-grid { |
| gap: 0.5rem; |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| } |
|
|
| .site-card { |
| padding: 0.75rem 0.5rem; |
| gap: 0.5rem; |
| } |
|
|
| .site-card-icon { |
| width: 2rem; |
| height: 2rem; |
| } |
|
|
| .site-card .site-icon { |
| font-size: 1.3rem; |
| } |
|
|
| .site-card .favicon-icon, |
| .site-card .icon-placeholder, |
| .site-card .icon-fallback, |
| .site-card .icon-container { |
| width: 1.35rem; |
| height: 1.35rem; |
| } |
|
|
| .site-card .icon-placeholder, |
| .site-card .icon-fallback { |
| line-height: 1.35rem; |
| font-size: 1.2rem; |
| } |
|
|
| .site-card h3 { |
| font-size: 1rem; |
| margin-bottom: 0.3rem; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| max-width: 100%; |
| } |
|
|
| .site-card p { |
| font-size: 0.9rem; |
| line-height: 1.2; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| } |
|
|
| @media (max-width: 400px) { |
| .category { |
| padding: 0.85rem; |
| margin: 0 0.05rem 1.2rem 0.05rem; |
| width: calc(100% - 0.1rem); |
| } |
|
|
| .sites-grid { |
| gap: 0.4rem; |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| } |
|
|
| .site-card { |
| padding: 0.6rem 0.4rem; |
| gap: 0.45rem; |
| } |
|
|
| .site-card-icon { |
| width: 1.9rem; |
| height: 1.9rem; |
| } |
|
|
| .site-card .site-icon { |
| font-size: 1.2rem; |
| } |
|
|
| .site-card .favicon-icon, |
| .site-card .icon-placeholder, |
| .site-card .icon-fallback, |
| .site-card .icon-container { |
| width: 1.25rem; |
| height: 1.25rem; |
| } |
|
|
| .site-card .icon-placeholder, |
| .site-card .icon-fallback { |
| line-height: 1.25rem; |
| font-size: 1.1rem; |
| } |
|
|
| .site-card h3 { |
| font-size: 1rem; |
| margin-bottom: 0.25rem; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| max-width: 100%; |
| } |
|
|
| .site-card p { |
| font-size: 0.9rem; |
| line-height: 1.15; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| } |
|
|
| |
| #search-results { |
| position: relative; |
| width: 100%; |
| display: none; |
| flex-direction: column; |
| align-items: center; |
| |
| z-index: 1; |
| transform: none !important; |
| |
| min-height: 400px; |
| |
| } |
|
|
| #search-results.active { |
| display: flex; |
| animation: fadeIn 0.3s ease-out forwards; |
| } |
|
|
| |
| .search-section { |
| width: 100%; |
| max-width: var(--page-max-width); |
| margin: 0 auto 2.5rem auto; |
| position: relative; |
| z-index: 1; |
| transform: none !important; |
| opacity: 1 !important; |
| } |
|
|
| |
| .search-section .sites-grid { |
| margin-top: 1rem; |
| } |
|
|
| |
| #search-results [data-section='projects'] .sites-grid { |
| grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); |
| gap: 24px; |
| } |
|
|
| #search-results [data-section='articles'] .sites-grid { |
| grid-template-columns: repeat(4, minmax(0, 1fr)); |
| } |
|
|
| @media (max-width: 1024px) { |
| #search-results [data-section='articles'] .sites-grid { |
| grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); |
| } |
| } |
|
|
| @media (max-width: 480px) { |
| #search-results [data-section='articles'] .sites-grid { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| gap: 0.5rem; |
| } |
| } |
|
|
| |
| .search-section .site-card { |
| max-width: 100%; |
| } |
|
|
| |
| .page { |
| opacity: 0; |
| transition: opacity 0.3s ease; |
| } |
|
|
| .page.active { |
| opacity: 1; |
| } |
|
|
| |
| @keyframes modalFadeIn { |
| from { |
| opacity: 0; |
| } |
|
|
| to { |
| opacity: 1; |
| } |
| } |
|
|
| @keyframes modalContentShow { |
| from { |
| opacity: 0; |
| transform: scale(0.9); |
| } |
|
|
| to { |
| opacity: 1; |
| transform: scale(1); |
| } |
| } |
|
|
| .sites-grid { |
| transition: gap 0.3s ease; |
| } |
|
|
| |
| .sidebar-social { |
| grid-area: social; |
| padding: 0.2rem 1.2rem 0.8rem; |
| display: flex; |
| justify-content: center; |
| flex-wrap: wrap; |
| gap: 0.9rem; |
| } |
|
|
| .social-icon { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| padding: 0.35rem; |
| border-radius: var(--radius-full); |
| color: var(--nav-item-color); |
| text-decoration: none; |
| transition: |
| color var(--transition-fast), |
| transform var(--transition-fast); |
| } |
|
|
| .social-icon:hover { |
| color: var(--accent-color); |
| transform: translateY(-1px); |
| } |
|
|
| .social-icon:active { |
| transform: translateY(0); |
| } |
|
|
| .social-icon:focus-visible { |
| outline: 2px solid rgba(118, 148, 185, 0.35); |
| outline-offset: 2px; |
| } |
|
|
| .social-icon i { |
| width: auto; |
| font-size: 1.2rem; |
| } |
|
|
| |
| .sidebar-footer { |
| grid-area: footer; |
| padding: 1rem 1.2rem; |
| padding-bottom: calc(1rem + env(safe-area-inset-bottom)); |
| text-align: center; |
| color: var(--text-muted); |
| font-size: 0.85rem; |
| border-top: 1px solid var(--border-color); |
| background-color: var(--sidebar-bg); |
| |
| transition: |
| background-color 0.3s ease, |
| color 0.3s ease, |
| opacity 0.3s ease; |
| } |
|
|
| .sidebar-footer .copyright { |
| margin: 0; |
| } |
|
|
| .sidebar.collapsed .sidebar-social { |
| padding: 0.2rem 0.5rem 0.8rem; |
| flex-direction: column; |
| align-items: center; |
| gap: 0.6rem; |
| } |
|
|
| .copyright a { |
| color: var(--accent-color); |
| text-decoration: none; |
| transition: all 0.3s ease; |
| } |
|
|
| .copyright a:hover { |
| color: var(--accent-hover); |
| text-decoration: underline; |
| } |
|
|
| |
| .nav-item-wrapper { |
| position: relative; |
| display: flex; |
| flex-direction: column; |
| width: 100%; |
| } |
|
|
| |
| .submenu { |
| max-height: 0; |
| overflow: hidden; |
| transition: max-height 0.3s ease; |
| margin-left: 1.5rem; |
| opacity: 0; |
| visibility: hidden; |
| } |
|
|
| |
| .nav-item-wrapper.expanded .submenu { |
| max-height: none; |
| overflow: visible; |
| opacity: 1; |
| visibility: visible; |
| } |
|
|