:root { --primary-color: #3498db; --primary-color-hover: #2980b9; --secondary-color: #2c3e50; --background-color: #f8f9fa; --text-color: #333333; --white: #ffffff; --black: #000000; --color-border: #ddd; --card-background: var(--white); --color-bg: var(--background-color); --color-text: var(--text-color); --color-card: var(--card-background); --color-accent: var(--primary-color); --color-accent-hover: var(--primary-color-hover); } /* Dark theme overrides - using both media query and class-based approach */ @media (prefers-color-scheme: dark) { :root { --color-card: #23272e; --background-color: #181a20; --color-text: #f5f6fa; --color-border: #333842; --color-accent: #4f8cff; } } /* Class-based theme overrides for explicit theme switching */ :root.dark, [data-theme="dark"] { --color-card: #23272e; --background-color: #181a20; --color-text: #f5f6fa; --color-border: #333842; --color-accent: #4f8cff; } :root.light, [data-theme="light"] { --color-bg: #fff; --color-card: #f8f8f8; --background-color: #f8f9fa; --color-text: #333333; --color-border: #ddd; --color-accent: #4f8cff; } * { box-sizing: border-box; margin: 0; padding: 0; } :global(html), :global(body) { background: var(--color-bg); color: var(--color-text); } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background-color: var(--color-bg); color: var(--color-text); line-height: 1.6; } .container { max-width: 1200px; margin: 0 auto; padding: 2rem; background: var(--color-bg); color: var(--color-text); } button { cursor: pointer; padding: 0.5rem 1rem; background-color: var(--color-accent); color: var(--white); border: none; border-radius: 4px; font-size: 0.9rem; transition: background-color 0.2s; } button:hover { background-color: var(--color-accent-hover); } .view-toggle { display: flex; gap: 0.2rem; } .view-toggle button { padding: 0.3rem 0.5rem; background: var(--color-card); color: var(--color-text); border: 1px solid var(--color-border); border-radius: 4px; font-size: 1rem; transition: background 0.2s, color 0.2s; cursor: pointer; display: flex; align-items: center; justify-content: center; } .view-toggle button.active, .view-toggle button:focus { background: var(--color-accent); color: var(--white); font-weight: bold; outline: 2px solid var(--color-border); } .search-bar { margin-bottom: 1.5rem; width: 100%; max-width: 500px; } .search-bar input { width: 100%; padding: 0.75rem; border: 1px solid var(--color-border); border-radius: 4px; font-size: 1rem; background: var(--color-card); color: var(--color-text); } .copy-btn, .copy-group .png-btn { background-color: var(--secondary-color); color: var(--white); font-weight: 500; letter-spacing: 0.02em; min-width: 2.5em; border-radius: 0; margin: 0; padding: 0.4em 1em; font-size: 0.95em; border-right: 1px solid var(--color-border); transition: background 0.2s, color 0.2s; text-wrap: nowrap; } .copy-btn:last-child, .copy-group .png-btn:last-child { border-right: none; } .copy-btn:focus, .copy-btn:hover, .copy-group .png-btn:focus, .copy-group .png-btn:hover { background: var(--black); color: var(--white); outline: none; } .download-btn, .download-group .png-btn { background: #27ae60; color: var(--white); font-weight: 500; letter-spacing: 0.02em; min-width: 2.5em; border-radius: 0; margin: 0; padding: 0.4em 1em; font-size: 0.95em; border-right: 1px solid var(--color-border); transition: background 0.2s, color 0.2s; } .download-btn:last-child, .download-group .png-btn:last-child { border-right: none; } .download-btn:focus, .download-btn:hover, .download-group .png-btn:focus, .download-group .png-btn:hover { background: #219150; color: var(--white); outline: none; } .copy-group, .download-group { display: inline-flex; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03); margin-right: 0.5em; } /* Shared color switcher and color circle styles */ .format-row { display: flex; align-items: center; gap: 1em; margin-bottom: 0.5em; justify-content: space-between; } .color-circle { width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-right: 4px; cursor: pointer; box-sizing: border-box; padding: 0; transition: box-shadow 0.2s; } .color-circle:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); } .color-circle.color-reset { background: none !important; } .color-switcher-preview, .color-switcher-inline, .color-switcher-under { display: flex; gap: 0.4em; align-items: center; } .color-switcher-preview { justify-content: center; } .color-switcher-preview.align-right { justify-content: flex-end; } .color-switcher-preview.align-left { justify-content: flex-start; } .color-switcher-inline { margin-left: auto; } .color-switcher-under { margin: 0.5em 0 0 0; } .logo-tag { display: inline-block; background: var(--color-accent); color: var(--white); border-radius: 12px; padding: 0.2em 0.8em; font-size: 0.85em; font-weight: 500; letter-spacing: 0.02em; margin-right: 0.3em; margin-top: 0.2em; margin-bottom: 0.2em; transition: background 0.2s; } .logo-actions { display: flex; align-items: center; gap: 0.5em; } .logo-info { flex: 1 1 auto; min-width: 0; background: var(--color-card); color: var(--color-text); padding: 0.5rem 1rem; border-radius: 4px; transition: background 0.2s, color 0.2s; } .logo-image, .logo-preview { display: flex; align-items: center; justify-content: center; background: var(--color-card); color: var(--color-text); border-radius: 4px; overflow: hidden; cursor: pointer; transition: background 0.2s, color 0.2s; } .logo-preview img, div.logo-image img { max-width: 80%; max-height: 80%; width: auto; height: auto; object-fit: contain; display: block; margin: 0 auto; } .logo-image svg { width: 100%; height: 100%; max-width: 100%; max-height: 100%; display: block; object-fit: contain; color: var(--color-text); } /* Modal styles */ .modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.7); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: var(--color-card); color: var(--color-text) !important; border-radius: 8px; padding: 1rem; max-width: 500px; width: 90%; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); border: 1px solid var(--color-border); transition: background 0.2s, color 0.2s; } .modal-content * { color: var(--color-text); } .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; color: var(--color-text); } .modal-header h2 { margin: 0; font-size: 1.5rem; color: var(--color-text); } .close-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--color-text); transition: color 0.2s; } .close-btn:hover { color: #f44336; } .modal-body { color: var(--color-text); } .preview-container { display: flex; align-items: center; justify-content: center; padding: 1rem; background-color: var(--color-card); color: var(--color-text); margin-bottom: 1rem; border-radius: 4px; overflow: hidden; border: 1px solid var(--color-border); } .preview-container img { max-width: 100%; max-height: 100%; object-fit: contain; } .logo-details { margin-top: 1rem; color: var(--color-text); } .logo-details p { margin: 0.5rem 0; font-size: 0.9rem; color: var(--color-text); } .logo-details strong, .logo-details span { color: var(--color-text); } /* Grid specific */ .logo-grid .logo-item .logo-image { width: 100%; } /* List specific */ .logo-list .logo-item .logo-image { width: 120px; min-width: 120px; height: 100px; border-right: 1px solid var(--color-border); } /* Row specific */ .logo-row { display: flex; align-items: center; padding: 0.5em 0.5em; border-bottom: 1px solid var(--color-border); gap: 1em; } .logo-row.grid { flex-direction: column; align-items: stretch; border-bottom: none; border-radius: 10px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); margin-bottom: 1em; padding: 1em; } .logo-row.list { flex-direction: row; align-items: center; border-radius: 0; box-shadow: none; margin-bottom: 0; padding: 0.5em 0.5em; } .logo-img { flex-shrink: 0; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; background: var(--color-card); border-radius: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); cursor: pointer; } /* Header styles */ .main-header { margin-bottom: 1.5rem; background: var(--color-card); color: var(--color-text); border-radius: 8px; padding: 1.2rem 1rem 0.7rem 1rem; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); } .header-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; } .header-controls { margin-top: 0.5rem; } .logo-count { font-family: system-ui, Arial, sans-serif; font-size: 0.6rem; font-weight: normal; color: var(--color-text); margin-left: 1rem; align-self: center; opacity: 0.7; } .theme-switcher { display: flex; align-items: center; gap: 0.2rem; margin-left: auto; } .theme-switch-group { display: flex; border-radius: 6px; overflow: hidden; border: 1px solid var(--color-border); background: var(--color-card); } .theme-switch-group button { background: none; border: none; color: var(--color-text); padding: 0.2em 0.7em; font-size: 1.1rem; border-radius: 0; transition: background 0.2s, color 0.2s; display: flex; align-items: center; justify-content: center; } .theme-switch-group button:first-child { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .theme-switch-group button:last-child { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .theme-switch-group button.active, .theme-switch-group button:focus { background: var(--color-accent); color: var(--white); font-weight: bold; outline: 2px solid var(--color-border); } .theme-switch-group button:hover { background: var(--color-accent); color: var(--color-accent-text); } .logos-container { width: 100%; } footer { margin-top: 3rem; text-align: center; font-size: 0.9rem; color: #888; background: transparent; } @media (max-width: 700px) { .header-row { flex-direction: column; align-items: stretch; gap: 0.5rem; } .main-header { padding: 1rem 0.5rem 0.5rem 0.5rem; } h1 { font-size: 1.1rem; } } .tag-filter { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; margin-left: 1rem; position: relative; } .tag-filter .selected-tag { background: var(--color-accent, #4f8cff); color: #fff; border: none; border-radius: 12px; padding: 0.2em 0.8em 0.2em 0.8em; font-size: 0.85em; font-weight: 500; letter-spacing: 0.02em; cursor: pointer; display: flex; align-items: center; gap: 0.3em; opacity: 1; transition: background 0.2s, color 0.2s; } .tag-filter .selected-tag .close { margin-left: 0.4em; font-size: 1.1em; font-weight: bold; cursor: pointer; opacity: 0.7; transition: opacity 0.2s; } .tag-filter .selected-tag .close:hover { opacity: 1; } .tag-dropdown { position: relative; display: inline-block; } .tag-dropdown .dropdown-toggle { background: var(--color-card); color: var(--color-text); border: 1px solid var(--color-border); border-radius: 12px; padding: 0.2em 0.8em; font-size: 0.85em; font-weight: 500; cursor: pointer; margin-left: 0.2em; transition: background 0.2s, color 0.2s; } .tag-dropdown .dropdown-list { position: absolute; left: 0; top: 110%; min-width: 120px; background: var(--color-card); color: var(--color-text); border: 1px solid var(--color-border); border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); z-index: 10; padding: 0.4em 0.2em; display: flex; flex-direction: column; gap: 0.2em; } .tag-dropdown .dropdown-tag { background: var(--color-accent, #4f8cff); color: #fff; border: none; border-radius: 12px; padding: 0.2em 0.8em; font-size: 0.85em; font-weight: 500; letter-spacing: 0.02em; cursor: pointer; opacity: 0.85; margin: 0.1em 0; text-align: left; transition: background 0.2s, color 0.2s; } .tag-dropdown .dropdown-tag:hover { opacity: 1; background: var(--color-accent, #4f8cff); } .tag-dropdown .no-tags { color: #888; font-size: 0.85em; padding: 0.3em 0.8em; text-align: center; }