Files
2026-02-05 12:54:57 +00:00

485 lines
8.9 KiB
CSS

:root {
--bg-color: #222222;
--container-bg: #353535;
--text-color: #ffffff;
--secondary-text: #e0e0e0;
--accent-color: #3672b6;
--accent-hover: #285a8c;
--input-bg: #232323;
--border-color: #444;
--success-color: #4caf50;
--upload-bg: #fafafa;
--upload-color: #4d4d4d;
--upload-hover-bg: #e6f0ff;
--upload-hover-color: #007bff;
}
body.light-mode {
--bg-color: #f5f5f5;
--container-bg: #ffffff;
--text-color: #333333;
--secondary-text: #555555;
--accent-color: #3672b6;
--accent-hover: #285a8c;
--input-bg: #f9f9f9;
--border-color: #dddddd;
--success-color: #4caf50;
--upload-bg: #ffffff;
--upload-color: #666666;
--upload-hover-bg: #e6f0ff;
--upload-hover-color: #007bff;
}
body {
font-family: Arial, sans-serif;
margin: 2em;
background: var(--bg-color);
}
.unselectable-label {
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
color: var(--accent-color);
}
#warning {
text-align: center;
color: var(--text-color);
}
.container,
.prompt-container,
.additional-container {
overflow-y: auto;
scrollbar-width: thin;
}
.additional-container {
position: relative;
}
/* Theme toggle button */
.theme-toggle-container {
position: absolute;
top: 10px;
right: 10px;
}
.theme-toggle-btn {
background: none;
border: none;
cursor: pointer;
color: var(--text-color);
padding: 5px;
border-radius: 50%;
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
transition: background-color 0.3s;
}
.theme-toggle-btn:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.theme-icon {
width: 24px;
height: 24px;
}
/* Civitai toggle button (top right of Models panel) */
.civitai-toggle-container {
position: absolute;
top: 10px;
right: 10px;
}
.civitai-toggle-btn {
background: none;
border: none;
cursor: pointer;
color: var(--text-color);
padding: 5px;
border-radius: 50%;
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
transition: background-color 0.3s;
}
.civitai-toggle-btn:hover {
background-color: rgba(255, 255, 255, 0.1);
}
body.light-mode .civitai-toggle-btn:hover {
background-color: rgba(0, 0, 0, 0.06);
}
.civitai-toggle-btn .civitai-icon {
width: 24px;
height: 24px;
}
.civitai-toggle-btn[aria-pressed="false"] .civitai-icon-on {
display: none;
}
.civitai-toggle-btn[aria-pressed="false"] .civitai-icon-off {
display: block !important;
opacity: 0.6;
}
/* Copy buttons */
.copy-row {
display: flex;
align-items: center;
gap: 0.5em;
margin-bottom: 0.25em;
}
.copy-btn {
background: none;
border: none;
cursor: pointer;
padding: 0.1em 0.2em;
transition: background 0.2s;
border-radius: 4px;
}
.copy-btn:hover,
.copy-btn:focus {
background: var(--border-color);
}
.copy-btn svg {
display: inline-block;
}
.btn-label {
margin-left: 0.5em;
color: var(--success-color);
font-size: 0.95em;
opacity: 0;
transition: opacity 0.5s;
pointer-events: none;
user-select: none;
}
/* Flex layout for main content */
.main-flex {
display: flex;
justify-content: center;
align-items: flex-start;
gap: 2em;
max-width: 90vw;
margin: 0 auto;
}
/* Left container (Image Metadata Extractor) */
.container {
max-width: 500px;
min-height: 500px;
width: 100%;
background: var(--container-bg);
padding: 2em;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
position: relative;
}
h1 {
text-align: center;
color: var(--text-color);
margin: 0;
}
h2 {
color: var(--text-color);
}
/* Upload area */
.upload-area {
border: 2px dashed #aaa;
border-radius: 8px;
padding: 2em;
text-align: center;
color: var(--upload-color);
background: var(--upload-bg);
cursor: pointer;
transition: border-color 0.2s, background 0.2s;
margin: 2em 0 2em 0;
position: relative;
}
.upload-area.dragover {
border-color: var(--upload-hover-color);
background: var(--upload-hover-bg);
color: var(--upload-hover-color);
}
.upload-area input[type="file"] {
display: none;
}
#image-preview {
display: block;
margin: 1em auto;
max-width: 100%;
max-height: 280px;
}
#metadata {
margin-top: 1.5em;
}
.metadata-list {
list-style: none;
padding: 0;
overflow-wrap: break-word;
}
.metadata-list li {
margin-bottom: 0.5em;
color: var(--secondary-text);
}
/* Prompt container (right side) */
.prompt-container,
.additional-container {
max-width: 500px;
min-height: 500px;
width: 100%;
background: var(--container-bg);
padding: 2em;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
gap: 1.5em;
}
.prompt-container h1 {
color: var(--text-color);
text-align: center;
}
.prompt-group {
display: flex;
flex-direction: column;
gap: 0.5em;
}
.prompt-group label {
color: var(--text-color);
font-weight: bold;
}
.prompt-group textarea {
resize: none;
min-height: 80px;
padding: 0.75em;
border-radius: 6px;
border: 1px solid var(--border-color);
background: var(--input-bg);
color: var(--secondary-text);
font-size: 1em;
transition: border-color 0.2s;
width: 100%;
box-sizing: border-box;
overflow: hidden;
}
.prompt-group textarea:focus {
border-color: var(--accent-color);
outline: none;
}
/* Additional container */
.prompt-info-list,
.model-info-list {
list-style: none;
padding: 0;
overflow-wrap: break-word;
min-height: 110px;
}
.prompt-info-list li,
.model-info-list li {
margin-bottom: .5em;
color: var(--secondary-text);
}
.civitai-hash-links a {
color: #ffffff;
text-decoration: underline;
font-weight: bold;
}
body.light-mode .civitai-hash-links a {
color: var(--text-color);
}
.expand-toggle-row {
display: flex;
align-items: center;
justify-content: center;
user-select: none;
cursor: pointer;
gap: .5em;
}
.expand-toggle-text {
font-weight: 600;
color: var(--accent-color);
cursor: pointer;
outline: none;
transition: color .2s;
}
.expand-toggle-text:hover {
color: var(--text-color);
}
.additional-container.collapsed .prompt-info-list {
display: none;
}
.model-info-list,
.additional-container.expanded .prompt-info-list {
display: block;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: thin;
}
.chevron {
transition: transform 0.3s;
}
.chevron-left.rotate {
transform: rotate(90deg);
}
.chevron-right.rotate {
transform: rotate(-90deg);
}
.metadata-code-block .chevron-right.rotate {
transform: rotate(90deg);
}
.metadata-code-block {
list-style: none;
border: 1px solid var(--border-color, #444);
border-radius: 8px;
overflow: hidden;
}
.metadata-code-block .expand-toggle-row {
justify-content: flex-start;
padding: 0.4em 0.5em;
}
.metadata-code-block-label {
display: inline-flex;
align-items: center;
gap: 0.5em;
}
.metadata-code-block-content {
overflow: hidden;
border-top: 1px solid var(--border-color, #444);
padding: 0 0.5em 0.5em;
}
.metadata-code-block-content pre {
margin: 0;
}
.metadata-code-block-content.collapsed {
display: none;
}
/* Footer styles */
.footer {
margin-top: 2.5em;
padding: 1em 0;
text-align: center;
color: #888;
font-size: 0.95em;
}
.footer a {
color: var(--accent-color);
text-decoration: none;
}
.footer a:hover {
text-decoration: underline;
}
/* Responsive adjustments */
@media (max-width: 900px) {
.main-flex {
flex-direction: column;
align-items: stretch;
gap: 2em;
}
.container,
.prompt-container {
max-width: 100%;
}
}
/* Go Up Arrow */
.scroll-arrow-btn {
position: fixed;
bottom: 32px;
right: 32px;
z-index: 1000;
background: var(--container-bg);
color: var(--text-color);
border: none;
border-radius: 50%;
width: 48px;
height: 48px;
font-size: 2rem;
cursor: pointer;
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
opacity: 0;
transition: opacity 0.3s;
display: none;
}
.scroll-arrow-btn.show {
opacity: 1;
}
/* Strip Metadata Button */
#strip-metadata-btn {
background: var(--accent-color);
color: #fff;
border: none;
padding: 0.5em 1.2em;
border-radius: 4px;
font-size: 1em;
font-weight: 600;
cursor: pointer;
margin: 0.5em auto auto 9.5em;
transition: background 0.2s, color 0.2s, box-shadow 0.2s;
box-shadow: 0 2px 6px rgba(0,0,0,0.08);
outline: none;
display: none;
}
#strip-metadata-btn:hover,
#strip-metadata-btn:focus {
background: var(--accent-hover);
color: var(--secondary-text);
box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}