| | .preview-container { |
| | position: relative; |
| | padding: 1rem; |
| | min-height: 100px; |
| | display: flex; |
| | align-items: center; |
| | justify-content: center; |
| | background: repeating-conic-gradient(#80808010 0% 25%, transparent 0% 50%) 50% / 20px 20px; |
| | } |
| |
|
| | .preview-container img { |
| | max-width: 100%; |
| | max-height: 300px; |
| | height: auto; |
| | object-fit: contain; |
| | } |
| |
|
| | .effect-grid { |
| | display: grid; |
| | gap: 1rem; |
| | margin-top: 2rem; |
| | } |
| |
|
| | |
| | .effect-grid:not([data-vertical="true"]) { |
| | grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); |
| | } |
| |
|
| | |
| | .effect-grid[data-vertical="true"] { |
| | grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); |
| | } |
| |
|
| | .effect-item { |
| | border: 1px solid #dee2e6; |
| | border-radius: 0.5rem; |
| | padding: 1rem; |
| | text-align: center; |
| | display: flex; |
| | flex-direction: column; |
| | } |
| |
|
| | .effect-name { |
| | font-size: 1.1rem; |
| | margin-bottom: 1rem; |
| | font-weight: 500; |
| | } |
| |
|
| | .effect-item.error { |
| | border-color: #ffcdd2; |
| | } |
| |
|
| | .text-danger { |
| | color: #dc3545; |
| | } |
| |
|
| | |
| | .effect-renderer { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | pointer-events: none; |
| | } |
| |
|
| | .effect-renderer canvas { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | } |
| |
|
| | |
| | .particle-container { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | pointer-events: none; |
| | z-index: 1; |
| | } |
| |
|
| | |
| | .three-container { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | pointer-events: none; |
| | z-index: 2; |
| | } |
| |
|
| | |
| | @keyframes sparkle { |
| | 0%, 100% { opacity: 0; } |
| | 50% { opacity: 1; } |
| | } |
| |
|
| | @keyframes fire { |
| | 0% { transform: translateY(0) scale(1); } |
| | 100% { transform: translateY(-20px) scale(0.8); opacity: 0; } |
| | } |
| |
|
| | @keyframes electric { |
| | 0%, 100% { opacity: 1; } |
| | 50% { opacity: 0.7; } |
| | } |
| |
|
| | @keyframes underwater { |
| | 0% { transform: translateY(0) translateX(0); } |
| | 50% { transform: translateY(-10px) translateX(5px); } |
| | 100% { transform: translateY(0) translateX(0); } |
| | } |
| |
|
| | .btn-check-wrapper { |
| | display: inline-block; |
| | margin: 2px; |
| | } |
| |
|
| | .btn-check-wrapper .btn { |
| | margin: 0; |
| | white-space: nowrap; |
| | } |
| |
|
| | #fontTagFilter { |
| | display: flex; |
| | flex-direction: column; |
| | gap: 1rem; |
| | width: 100%; |
| | } |
| |
|
| | #fontTagFilter .btn { |
| | border-radius: 0.25rem; |
| | font-size: 0.875rem; |
| | padding: 0.25rem 0.5rem; |
| | } |
| |
|
| | |
| | .btn-check:checked + .btn-outline-primary { |
| | background-color: #0d6efd; |
| | color: white; |
| | } |
| |
|
| | .btn-check:checked + .btn-outline-success { |
| | background-color: #198754; |
| | color: white; |
| | } |
| |
|
| | .filter-group { |
| | margin-bottom: 1rem; |
| | width: 100%; |
| | } |
| |
|
| | .filter-group-label { |
| | font-size: 0.875rem; |
| | font-weight: 600; |
| | color: #6c757d; |
| | margin-bottom: 0.5rem; |
| | } |
| |
|
| | .btn-group-wrapper { |
| | display: flex; |
| | flex-wrap: wrap; |
| | gap: 0.25rem; |
| | } |
| |
|
| | .tag-count { |
| | font-size: 0.75rem; |
| | opacity: 0.8; |
| | } |
| |
|
| | |
| | .btn-check:checked + .btn-outline-primary .tag-count, |
| | .btn-outline-primary:hover .tag-count { |
| | opacity: 1; |
| | } |
| |
|
| | |
| | #postProcessContainer .card { |
| | border: 1px solid rgba(0,0,0,.125); |
| | transition: border-color 0.2s ease-in-out; |
| | } |
| |
|
| | #postProcessContainer .card:hover { |
| | border-color: rgba(0,0,0,.3); |
| | } |
| |
|
| | #postProcessContainer .card-header { |
| | background-color: rgba(0,0,0,.03); |
| | padding: 0.75rem 1rem; |
| | } |
| |
|
| | #postProcessContainer .card-body { |
| | padding: 1rem; |
| | } |
| |
|
| | #postProcessContainer .form-check { |
| | width: 100%; |
| | } |
| |
|
| | #postProcessContainer .form-check-label { |
| | font-weight: 500; |
| | cursor: pointer; |
| | } |
| |
|
| | #postProcessContainer .form-range { |
| | margin-top: 0.5rem; |
| | } |
| |
|
| | #postProcessContainer .range-value { |
| | text-align: center; |
| | font-size: 0.875rem; |
| | color: #6c757d; |
| | margin-top: 0.25rem; |
| | } |